@telia-ace/widget-types-grid 1.0.30-experimental.3 → 1.0.30-experimental.4

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.
package/dist/index.js CHANGED
@@ -538,7 +538,7 @@ class Pt {
538
538
  }
539
539
  render() {
540
540
  const { widgetDOMElement: e, triggerDOMElement: n } = this.options, o = this.container.get("$widget");
541
- return e.getAttribute("data-rendered") === "true" ? Promise.resolve() : (n && this.options.triggerType === P.Badge && Dt(n), import("./render.6ad0b099.js").then((s) => s.default(o.name, this.container, e)).then(() => {
541
+ return e.getAttribute("data-rendered") === "true" ? Promise.resolve() : (n && this.options.triggerType === P.Badge && Dt(n), import("./render.deb2456b.js").then((s) => s.default(o.name, this.container, e)).then(() => {
542
542
  if (e.setAttribute("data-rendered", "true"), n && this.options.triggerType === P.Badge) {
543
543
  const i = this.options.triggerOptions.openTooltip;
544
544
  be(n, i);
@@ -691,7 +691,9 @@ class tn extends Xe {
691
691
  v.Local
692
692
  ).then((n = {}) => p(p({}, this.container.get("$settings")), n))), Ze(this, "load", this.handleBootstrapping), this.container.registerAsync(
693
693
  "componentResolver",
694
- () => Tt(this.container)
694
+ () => Tt(this.container).then(() => {
695
+ this.events.dispatch("widget:component-resolver-registered", {});
696
+ })
695
697
  ), this.container.registerAsync("router", () => Vt(this.container)), this.container.registerAsync("actionResolver", () => It(this.container)), this.container.register("matchMedia", window.matchMedia), this.container.registerAsync("components", () => zt(this.container));
696
698
  }
697
699
  initialize() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ui/determine-slide-direction.ts","../src/ui/switch.tsx","../src/ui/animated-view.tsx","../src/ui/view.tsx","../src/ui/styles.ts","../src/ui/resolvable-component.tsx","../src/ui/use-component-node-properties.ts","../src/ui/_component.tsx","../src/ui/detached-component.tsx","../src/ui/not-found.tsx","../src/utils/component-tag-from-type.ts","../src/utils/resolve-component.ts","../src/ui/html-element-handlers.ts","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts"],"sourcesContent":["export enum SlideDirection {\n back = 'back',\n forth = 'forth',\n}\n\nexport interface RouteStructure {\n name: string;\n children: RouteStructure[];\n}\n\n/**\n * Recursively find the parents of a nested route\n * @param routeName Name of route to find\n * @param routes Routes to look in\n * @param trail Trail of parents\n * @param level Level of the array currently looking in\n */\nexport const findParentRoutes = (\n routeName: string,\n routes: RouteStructure[],\n trail: string[] = [],\n level: number = 0\n): string[] | null => {\n let found: any = null;\n\n routes.forEach((route, index) => {\n if (!found) {\n if (route.name === routeName) {\n found = route;\n } else {\n trail[level] = route.name;\n found = findParentRoutes(routeName, route.children, trail, level + 1);\n }\n }\n });\n\n if (!found) {\n return null;\n }\n\n return trail;\n};\n\n/**\n * Determine if the sliding animation should back or forth\n * @param currentRouteName Name of current route\n * @param nextRouteName Name of route to transition to\n * @param routeRanking Hierarchical route ranking for the widget\n */\nexport const determineSlideDirection = (\n currentRouteName: string,\n nextRouteName: string,\n routeRanking: RouteRanking\n): SlideDirection => {\n if (\n typeof routeRanking[currentRouteName] === 'number' &&\n typeof routeRanking[nextRouteName] === 'number' &&\n routeRanking[currentRouteName] > routeRanking[nextRouteName]\n ) {\n return SlideDirection.back;\n }\n return SlideDirection.forth;\n};\n\nexport type RouteRanking = { [key: string]: number };\n","import { ViewDefinition } from '@telia-ace/widget-core';\nimport React from 'react';\nimport { Route, Switch as RouteSwitch } from 'react-router';\n\ntype Props = {\n location?: any;\n views: { [key: string]: ViewDefinition };\n render: (viewName: string) => JSX.Element | null;\n};\n\nconst Switch: React.FC<Props> = ({ views, location, render }) => {\n return (\n <RouteSwitch\n location={\n location\n ? {\n ...location,\n pathname: location.pathname.split('?')[0],\n }\n : location\n }\n >\n {[\n ...Object.keys(views).filter((key) => !!views[key].path),\n ...Object.keys(views).filter((key) => !views[key].path),\n ].map((name) => {\n const { path } = views[name];\n\n if (!path) {\n return <Route key={name} render={() => render(name)} />;\n }\n\n if (Array.isArray(path)) {\n return path.map((path: string) => (\n <Route key={name} exact path={path} render={() => render(name)} />\n ));\n }\n return <Route key={name} exact path={path} render={() => render(name)} />;\n })}\n </RouteSwitch>\n );\n};\n\nexport default Switch;\n","import styled from '@emotion/styled';\nimport { WidgetSettings } from '@telia-ace/widget-core';\nimport {\n Grid,\n transitionComposer,\n useComponentNode,\n useContainer,\n useContext,\n useProperties,\n useRouteData,\n useRouter,\n useScroll,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useState } from 'react';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { TransitionStatus } from 'react-transition-group/Transition';\nimport { determineSlideDirection, RouteRanking, SlideDirection } from './determine-slide-direction';\nimport Switch from './switch';\nimport Component from './_component';\n\ntype Props = {\n className?: string;\n};\n\nconst StyledViewContainer = styled.div`\n position: relative;\n width: 100%;\n flex: 1;\n`;\n\nconst StyledView = styled(Grid)<{ scrollableCss?: any; animationCss?: any }>`\n position: absolute;\n left: 0;\n right: 0;\n ${(p) => !!p.animationCss && p.animationCss}\n ${(p) => !!p.scrollableCss && p.scrollableCss}\n`;\n\nconst routeHierarchy: RouteRanking = {\n index: 1,\n search: 2,\n browse: 3,\n guide: 4,\n contact: 5,\n 'contact-method': 6,\n conversation: 7,\n};\n\nconst AnimatedView: React.FC<Props> = ({ className = '', ...other }) => {\n const [routeName, setRouteName] = useState('index');\n const [transitionDirection, setTransitionDirection] = useState(SlideDirection.forth);\n const nextRoute = useRouteData();\n const router = useRouter();\n\n const properties = useProperties();\n const context = useContext();\n const container = useContainer();\n const node = useComponentNode();\n\n const { gap = '0' } = context;\n const { columns = 1, animation = 'none', scrollable = false, ...areaProperties } = properties;\n\n const [scrollableCss, elem] = useScroll(scrollable);\n\n if (!node || !router) {\n return null;\n }\n\n const { location } = router;\n\n if (nextRoute.name !== routeName && nextRoute.name !== '' && animation) {\n setTransitionDirection(determineSlideDirection(routeName, nextRoute.name, routeHierarchy));\n setRouteName(nextRoute.name);\n }\n\n const { views }: WidgetSettings = container.get('$settings');\n\n if (!Object.keys(views).length) {\n return null;\n }\n\n const renderView = (name: string, transitionState?: any, direction?: SlideDirection) => {\n const animationStyles = getAnimation(transitionState, direction);\n const childNode = node.getChildren(name)[0];\n\n return (\n <StyledView\n {...other}\n {...areaProperties}\n scrollableCss={scrollableCss}\n ref={elem}\n columns={columns}\n gap={gap}\n {...animationStyles}\n className={appendClassNames(className, 'humany-view')}\n >\n <Component id={childNode.id} branch=\"default\" />\n </StyledView>\n );\n };\n\n const getAnimation = (transitionState?: any, direction?: SlideDirection) => {\n if (animation === 'slide' || animation === 'fade') {\n return {\n animationCss: transitionComposer.composeViewTransition(\n transitionState,\n animation,\n direction\n ),\n ['data-state']: transitionState,\n };\n }\n return;\n };\n\n return (\n <StyledViewContainer className=\"humany-animated-view\">\n <TransitionGroup\n component={null}\n childFactory={(child) =>\n React.cloneElement(child, { direction: transitionDirection })\n }\n >\n <Transition\n key={routeName}\n timeout={{ enter: 500, exit: 500 }}\n onEnter={(node: HTMLElement) => node?.clientHeight}\n unmountOnExit={true}\n direction={SlideDirection.forth}\n >\n {/* @ts-ignore */}\n {(state: TransitionStatus, { direction }: { direction: SlideDirection }) => (\n <Switch\n views={views}\n location={location}\n render={(name) => renderView(name, state, direction)}\n />\n )}\n </Transition>\n </TransitionGroup>\n </StyledViewContainer>\n );\n};\n\nexport default AnimatedView;\n","import styled from '@emotion/styled';\nimport { WidgetSettings } from '@telia-ace/widget-core';\nimport {\n Grid,\n useComponentNode,\n useContainer,\n useContext,\n useProperties,\n useScroll,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport Switch from './switch';\nimport Component from './_component';\n\ntype Props = {\n className?: string;\n};\n\nconst StyledView = styled(Grid)<{ scrollableCss?: string }>`\n ${(p) => !!p.scrollableCss && p.scrollableCss}\n`;\n\nconst View: React.FC<Props> = ({ className = '', ...other }) => {\n const properties = useProperties();\n const context = useContext();\n const container = useContainer();\n const node = useComponentNode();\n\n const { views }: WidgetSettings = container.get('$settings');\n\n const { gap = '0' } = context;\n const { columns = 1, animation = 'none', scrollable = false, ...areaProperties } = properties;\n\n const [scrollableCss, elem] = useScroll(scrollable);\n\n if (!node) {\n return null;\n }\n\n return (\n <StyledView\n {...other}\n {...areaProperties}\n scrollableCss={scrollableCss}\n ref={elem}\n columns={columns}\n gap={gap}\n className={appendClassNames(className, 'humany-view')}\n >\n <Switch\n views={views}\n render={(name) => {\n const childNode = node.getChildren(name)[0];\n return <Component id={childNode.id} node={childNode} branch=\"default\" />;\n }}\n />\n </StyledView>\n );\n};\n\nexport default View;\n","import { css, Theme } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { paddedBorderTabStyle } from '@telia-ace/widget-ui';\nimport AnimatedView from './animated-view';\nimport View from './view';\n\nexport const styling = (p: { 'data-width'?: number; 'data-indent'?: number; theme: Theme }) => css`\n outline: none;\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n outline: none;\n }\n\n grid-column: ${p['data-indent']\n ? `${p['data-indent'] + 1} / ${p['data-indent'] + (p['data-width'] || 0) + 1}`\n : `span ${p['data-width']}`};\n\n ${p.theme.fonts?.type &&\n `\n font-family: ${p.theme.fonts.type};\n\n input, textarea {\n font-family: ${p.theme.fonts.type};\n }\n `}\n\n ${p.theme.fonts?.base &&\n `\n font-size: ${p.theme.fonts.base};\n `}\n\n &:focus-visible {\n ${paddedBorderTabStyle(p)};\n }\n`;\n\nexport const StyledView = styled(View)`\n ${(p) => styling(p)}\n`;\n\nexport const StyledAnimatedView = styled(AnimatedView)`\n ${(p) => styling(p)}\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n filterCssPropsStyle,\n Typography,\n useComponent,\n useComponentDescriptor,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef, Suspense, useMemo } from 'react';\nimport { styling } from './styles';\n\ntype Props = {\n role?: string;\n 'data-width': number;\n 'data-indent': number;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst NonResolvedComponentWrapper = styled.div<Props>`\n text-align: center;\n ${(p) =>\n typeof p.theme.colors?.warning !== 'undefined' &&\n css`\n color: ${p.theme.colors?.warning};\n border: 2px dashed ${p.theme.colors?.warning};\n `}\n ${(p) =>\n typeof p.theme.borderRadius !== 'undefined' && `border-radius: ${p.theme.borderRadius};`}\n ${(p) => styling(p)}\n`;\n\nconst ResolvableComponent = forwardRef<HTMLElement, Props>(\n ({ className = '', children, ...other }, ref) => {\n const ResolvedComponent = useComponent();\n const { name, type, id } = useComponentDescriptor();\n\n const StyledResolvableComponent = useMemo(() => {\n if (ResolvedComponent) {\n return styled(ResolvedComponent)<any>`\n ${styling}\n ${filterCssPropsStyle}\n `;\n }\n return null;\n }, [ResolvedComponent]);\n\n if (typeof ResolvedComponent === 'undefined') {\n return null;\n }\n\n if (ResolvedComponent === null || StyledResolvableComponent === null) {\n if (process.env.NODE_ENV !== 'production') {\n return (\n <NonResolvedComponentWrapper\n {...other}\n title={`type: ${type}, definition-id: ${name}, instance-id: ${id}`}\n className={appendClassNames(className, 'humany-non-resolved-component')}\n >\n <Typography variant=\"h5\">Non Resolved Component Type</Typography>\n </NonResolvedComponentWrapper>\n );\n }\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <StyledResolvableComponent\n ref={ref}\n {...other}\n className={appendClassNames(\n className,\n 'humany-component',\n `humany-component-${name}`\n )}\n >\n {children}\n </StyledResolvableComponent>\n </Suspense>\n );\n }\n);\n\nexport default ResolvableComponent;\n","import { ComponentNodeProperties } from '@telia-ace/widget-core';\nimport { useComponentNode, useComponentPlatform, useIsMounted } from '@telia-ace/widget-ui';\nimport { useEffect, useState } from 'react';\n\nexport default (id: string) => {\n const node = useComponentNode(id);\n const components = useComponentPlatform();\n const [properties, setProperties] = useState<ComponentNodeProperties>({});\n const isMounted = useIsMounted();\n\n useEffect(() => {\n if (node && isMounted.current) {\n setProperties(node.attributes.properties);\n }\n }, [node, id, isMounted]);\n\n useEffect(() => {\n if (components) {\n const unsubscribe = components.events.subscribe(\n 'components:properties-changed',\n (event, data) => {\n if (node === data.node && isMounted.current) {\n setProperties(data.node.attributes.properties);\n }\n }\n );\n\n return () => {\n unsubscribe();\n };\n }\n }, [components, isMounted, id, node]);\n\n return properties;\n};\n","import { Theme, ThemeProvider } from '@emotion/react';\nimport { asDescriptor, ComponentDescriptor, ComponentNode, Size } from '@telia-ace/widget-core';\nimport {\n ComponentNodeContext,\n ComponentPropertyContext,\n filterCssProps,\n useColumns,\n useComponentPlatform,\n useContainer,\n useContext,\n useLayout,\n} from '@telia-ace/widget-ui';\nimport React, { forwardRef, useEffect, useState } from 'react';\nimport ResolvableComponent from './resolvable-component';\nimport { StyledAnimatedView, StyledView } from './styles';\nimport useComponentNodeProperties from './use-component-node-properties';\n\ntype Props = {\n className?: string;\n id: string;\n branch: string;\n node?: ComponentNode;\n ariaLabel?: string;\n tabIndex?: number;\n context?: { [key: string]: any };\n};\n\nconst isVisible = (size: Size, node?: ComponentNode) => {\n if (node) {\n return true;\n }\n if (typeof size === 'string') {\n return size === 'full';\n }\n return size > 0;\n};\n\nconst Component = forwardRef<HTMLElement, Props>(\n (\n { className = '', id, branch, node, ariaLabel, tabIndex, context: extraContext, ...other },\n ref\n ) => {\n const components = useComponentPlatform();\n const container = useContainer();\n const [descriptor, setDescriptor] = useState<ComponentDescriptor>();\n\n const columns = useColumns();\n const context = useContext(id);\n const properties = useComponentNodeProperties(id);\n const { size = 'none', indent = 0 } = useLayout(id);\n const visible = isVisible(size, node);\n\n useEffect(() => {\n if (components) {\n if (id && !node) {\n const componentNode = components.nodes.get(id);\n if (componentNode) {\n setDescriptor(asDescriptor(componentNode, branch));\n\n if (visible) {\n const unmount = componentNode.mount(container);\n return () => {\n unmount();\n };\n }\n }\n } else if (node) {\n setDescriptor(asDescriptor(node, branch));\n const unmount = node.mount(container);\n return () => {\n unmount();\n };\n }\n }\n }, [components, id, node, visible]);\n\n if (!descriptor || !visible) {\n return null;\n }\n\n const mergedContexts = { ...context, ...(extraContext || {}) };\n const {\n cardinal,\n fonts: contextFonts = {},\n accessibility = {},\n ...restContext\n } = mergedContexts;\n\n const fonts = {\n type: contextFonts.type,\n base: contextFonts.base || '16px',\n small: contextFonts.small || '0.8em',\n normal: contextFonts.normal || '1em',\n medium: contextFonts.medium || '1.2em',\n large: contextFonts.large || '1.6em',\n huge: contextFonts.huge || '2.5em',\n };\n\n const theme: Theme = {\n ...restContext,\n fonts,\n accessibility: {\n ...accessibility,\n },\n };\n\n if (typeof cardinal === 'number') {\n theme.sizes = {\n cardinal,\n small: `${cardinal}px`,\n normal: `${cardinal * 3}px`,\n medium: `${cardinal * 5}px`,\n large: `${cardinal * 8}px`,\n };\n }\n\n return (\n <ThemeProvider theme={theme}>\n <ComponentNodeContext.Provider value={descriptor}>\n <ComponentPropertyContext.Provider value={properties}>\n {(() => {\n const props = {\n 'data-width':\n size === 'full' ? columns : Math.min(size as number, columns),\n 'data-indent': indent,\n 'data-name': descriptor.name,\n 'data-node-id': descriptor.id,\n 'data-component-type': descriptor.type,\n 'aria-label': ariaLabel,\n tabIndex: tabIndex,\n id: descriptor.id,\n role: properties && properties.role,\n ...other,\n };\n switch (descriptor.type) {\n case 'view': {\n return typeof properties.animation === 'string' &&\n properties.animation !== 'none' ? (\n <StyledAnimatedView {...props} className={className} />\n ) : (\n <StyledView {...props} className={className} />\n );\n }\n default: {\n const cssProps = filterCssProps(properties);\n\n return (\n <ResolvableComponent\n ref={ref}\n {...props}\n {...cssProps}\n className={className}\n />\n );\n }\n }\n })()}\n </ComponentPropertyContext.Provider>\n </ComponentNodeContext.Provider>\n </ThemeProvider>\n );\n }\n);\n\nexport default Component;\n","import { ComponentNode, ComponentPlatform } from '@telia-ace/widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport React, { useEffect, useState } from 'react';\nimport Component from './_component';\n\ntype Props = {\n builder: (components: ComponentPlatform) => Promise<ComponentNode>;\n};\nconst DetachedComponent: React.FC<Props> = ({ builder }) => {\n const container = useContainer();\n const [node, setNode] = useState<ComponentNode | null>(null);\n\n useEffect(() => {\n container.getAsync('components').then((components: ComponentPlatform) => {\n return builder(components).then((createdNode) => {\n setNode(createdNode);\n });\n });\n }, []);\n\n useEffect(() => {\n return () => {\n if (node) {\n container.getAsync('components').then((components: ComponentPlatform) => {\n components.nodes.detached = components.nodes.detached.filter(\n (n) => n.id !== node.id\n );\n });\n }\n };\n }, [node]);\n\n if (!node) {\n return null;\n }\n\n return <Component id={node.id} node={node} branch=\"default\" />;\n};\n\nexport default DetachedComponent;\n","import { useTheme } from '@emotion/react';\nimport { ComponentPlatform } from '@telia-ace/widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport React from 'react';\n\nconst DetachedComponent = React.lazy(() => import('./detached-component'));\n\ntype Props = {\n showSearch?: boolean;\n};\nconst NotFound: React.FC<Props> = ({ showSearch = false }) => {\n const themeContext = useTheme();\n const container = useContainer();\n\n return (\n <React.Suspense fallback={null}>\n <DetachedComponent\n builder={(components: ComponentPlatform) => {\n return container.get('settings').then((settings: any) => {\n const { properties, context } = Object.keys(settings.components).reduce<{\n properties: any;\n context: any;\n }>(\n (acc, key) => {\n if (settings.components[key].type === 'not-found') {\n acc.properties = settings.components[key].properties;\n acc.context = settings.components[key].context;\n }\n\n return acc;\n },\n { properties: {}, context: {} }\n );\n\n properties.showSearch = showSearch;\n const node = components.createNode('area', { detached: true });\n node.name = 'not-found-area';\n node.writeLayout({\n size: 'full',\n });\n\n if (showSearch) {\n const searchComponentProps = Object.keys(settings.components).reduce(\n (acc, key) => {\n if (settings.components[key].type === 'search') {\n return settings.components[key].properties;\n }\n\n return acc;\n },\n {}\n );\n const searchNode = components.createNode('search', { detached: true });\n searchNode.writeLayout({ size: 'full' });\n searchNode.writeProperties({\n 'css-margin-bottom': themeContext?.sizes?.normal || '15px',\n ...searchComponentProps,\n });\n node.appendChild(searchNode);\n }\n\n const notFoundNode = components.createNode('not-found', { detached: true });\n notFoundNode.writeLayout({ size: 'full' });\n notFoundNode.writeProperties(properties);\n notFoundNode.writeContext(context);\n node.appendChild(notFoundNode);\n\n return node;\n });\n }}\n />\n </React.Suspense>\n );\n};\n\nexport default NotFound;\n","export const componentTagFromType = (type: string) => {\n const componentTagPrefix = 'w';\n return `${componentTagPrefix}-${type}`;\n};\n","import { asDescriptor, ComponentPlatform, ComponentResolver } from '@telia-ace/widget-core';\nimport { componentTagFromType } from './component-tag-from-type';\n\nexport const resolveComponent = async (\n nodeId: string,\n resolver: ComponentResolver,\n platform: ComponentPlatform\n) => {\n const node = platform.nodes.get(nodeId);\n\n if (!resolver) {\n console.warn('Could not find resolver. Make sure it is registered on the container.');\n return;\n }\n\n if (!node) {\n console.warn(`Unable to find node with id: ${nodeId}`);\n return;\n }\n\n const descriptor = asDescriptor(node);\n if (!descriptor?.type) {\n console.warn(`Could not get descriptor for: ${node.name}`);\n return;\n }\n\n const componentTag = componentTagFromType(descriptor.type);\n\n // if its already resolved\n if (customElements.get(componentTag)) {\n return;\n }\n\n const create = resolver.getComponent(descriptor.type);\n if (!create) {\n console.warn('Component is missing or using incorrect import.');\n return;\n }\n\n const result = await create();\n\n if (!customElements.get(componentTag)) {\n try {\n customElements.define(componentTag, result.default);\n } catch (error) {\n console.log('error', error);\n }\n }\n\n return customElements.whenDefined(componentTag).then(() => {\n return {\n nodeId: nodeId,\n tag: componentTag,\n };\n });\n\n // return {\n // nodeId: nodeId,\n // tag: componentTag,\n // };\n};\n","// tslint:disable max-line-length\nexport const renderSymbol = (symbol?: { type: string; content: string }) => {\n if (symbol) {\n const { type, content } = symbol;\n switch (type) {\n case 'FontAwesome':\n return `<i class=\"humany-icon fa fa-${content}\"></i>`;\n case 'Uri':\n return `<i class=\"humany-icon humany-custom-icon\" style=\"background: url(${content}) no-repeat center center;background-size: contain;\"></i>`;\n default:\n return '';\n }\n }\n};\n\nconst triggerTabHandler = (triggerDOMElement: HTMLElement) => {\n const toggleTabbing = (element: HTMLElement, tabbing: boolean) => {\n if (!element) {\n return;\n }\n\n if (tabbing) {\n element.classList.add('humany-tabbing');\n } else {\n element.classList.remove('humany-tabbing');\n }\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n toggleTabbing(triggerDOMElement, true);\n } else if (\n !(\n e.key === 'Enter' &&\n document.activeElement &&\n document.activeElement.classList.contains('humany-trigger')\n )\n ) {\n toggleTabbing(triggerDOMElement, false);\n }\n };\n\n const handleClick = (e: MouseEvent) => {\n if (\n document.activeElement &&\n document.activeElement.classList.contains('humany-trigger') &&\n document.activeElement.classList.contains('humany-tabbing')\n ) {\n return;\n }\n toggleTabbing(triggerDOMElement, false);\n };\n\n document.addEventListener('keydown', handleKeydown);\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n document.removeEventListener('click', handleClick);\n };\n};\n\nexport type TriggerElementOptions = {\n symbol?: { type: string; content: string };\n widgetName: string;\n label?: string;\n ariaLabel?: string;\n tooltip?: string;\n};\n\nexport function createTriggerElement(element: HTMLElement, options: TriggerElementOptions) {\n const { symbol, widgetName, label = '', ariaLabel = '', tooltip = '' } = options;\n\n element.classList.add('humany-trigger');\n element.classList.add(`humany_${widgetName}`);\n\n if (label.length) {\n element.classList.add('humany-has-text');\n }\n\n if (ariaLabel.length && !element.getAttribute('aria-label')) {\n element.setAttribute('aria-label', ariaLabel);\n }\n\n if (ariaLabel.length && !element.getAttribute('tabindex')) {\n element.setAttribute('tabindex', '0');\n }\n\n if (tooltip.length && !element.getAttribute('title')) {\n element.setAttribute('title', tooltip);\n }\n\n const symbolHtml = renderSymbol(symbol) || '';\n element.innerHTML = `${symbolHtml}\n <span class=\"humany-close\">\n <svg width=\"18\" height=\"9\" viewBox=\"0 0 18 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\" fill=\"white\"/>\n </svg>\n </span>\n <span class=\"humany-loader\">\n <svg viewBox=\"25 25 50 50\">\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\" />\n </svg>\n </span>\n ${label.length ? `<span>${label}</span>` : ''}`;\n\n setTimeout(() => element && (element as HTMLElement).classList.add('humany-rendered'));\n\n return triggerTabHandler(element);\n}\n\nexport function setInactive(elements: HTMLElement | HTMLElement[], title?: string) {\n if (elements instanceof HTMLElement) {\n if (title) {\n elements.setAttribute('title', title);\n }\n elements.classList.remove('humany-active');\n elements.classList.remove('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n if (title) {\n e.setAttribute('title', title);\n }\n e.classList.remove('humany-active');\n e.classList.remove('humany-loading');\n });\n }\n}\nexport function setLoading(elements: HTMLElement | HTMLElement[]) {\n if (elements instanceof HTMLElement) {\n elements.classList.remove('humany-active');\n elements.classList.add('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n e.classList.remove('humany-active');\n e.classList.add('humany-loading');\n });\n }\n}\nexport function setActive(elements: HTMLElement | HTMLElement[], title?: string) {\n if (elements instanceof HTMLElement) {\n if (title) {\n elements.setAttribute('title', title);\n }\n elements.classList.add('humany-active');\n elements.classList.remove('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n if (title) {\n e.setAttribute('title', title);\n }\n e.classList.add('humany-active');\n e.classList.remove('humany-loading');\n });\n }\n}\n","import { ViewOutletOptions } from './view-outlet';\n\nenum ProvidedElements {\n None = 'none',\n WidgetDOM = 'widgetDOM',\n TriggerDOM = 'triggerDOM',\n Both = 'both',\n}\n\nexport enum TriggerType {\n Inline = 'inline',\n Link = 'link',\n Badge = 'badge',\n Unsupported = 'unsupported',\n}\n\nexport const determineProvidedElements = (\n widgetDOMElement?: HTMLElement,\n triggerDOMElement?: HTMLElement\n): ProvidedElements => {\n if (widgetDOMElement && triggerDOMElement) {\n return ProvidedElements.Both;\n }\n if (widgetDOMElement) {\n return ProvidedElements.WidgetDOM;\n }\n if (triggerDOMElement) {\n return ProvidedElements.TriggerDOM;\n }\n return ProvidedElements.None;\n};\n\nexport const determineTriggerType = (triggerDefinition?: any) => {\n if (!triggerDefinition) {\n return TriggerType.Inline;\n }\n if (typeof triggerDefinition === 'boolean' && triggerDefinition) {\n return TriggerType.Link;\n }\n if (typeof triggerDefinition === 'object' && !Array.isArray(triggerDefinition)) {\n return TriggerType.Badge;\n }\n return TriggerType.Unsupported;\n};\n\ntype PrepareDOMElementsOutput = ViewOutletOptions & {\n callback?: () => void;\n};\n\nexport const prepareDOMElements = (\n name: string,\n providedWidgetElement?: HTMLElement,\n providedTriggerElement?: HTMLElement,\n triggerDefinition?: any,\n waitWithReplace: boolean = false\n): PrepareDOMElementsOutput => {\n const providedElements = determineProvidedElements(\n providedWidgetElement,\n providedTriggerElement\n );\n const triggerType = determineTriggerType(triggerDefinition);\n\n const cachedOriginals = {\n widgetDOMElement: providedWidgetElement ? providedWidgetElement.cloneNode(true) : undefined,\n triggerDOMElement: providedTriggerElement\n ? providedTriggerElement.cloneNode(true)\n : undefined,\n };\n\n const output: PrepareDOMElementsOutput = {\n triggerType,\n cachedOriginals,\n widgetDOMElement: document.createElement('div'),\n };\n\n switch (providedElements) {\n case ProvidedElements.Both: {\n output.widgetDOMElement = providedWidgetElement || document.createElement('div');\n if (triggerType !== TriggerType.Inline) {\n output.triggerDOMElement = providedTriggerElement;\n }\n break;\n }\n case ProvidedElements.WidgetDOM: {\n output.widgetDOMElement = providedWidgetElement || document.createElement('div');\n if (triggerType !== TriggerType.Inline) {\n const triggerElement = document.body.appendChild(document.createElement('a'));\n if (triggerType === TriggerType.Link) {\n triggerElement.innerText = name;\n }\n output.triggerDOMElement = triggerElement;\n }\n break;\n }\n case ProvidedElements.TriggerDOM: {\n const widgetElement = document.createElement('div');\n output.widgetDOMElement = widgetElement;\n if (triggerType === TriggerType.Inline) {\n // replace with widgetDOMElement in the DOM\n widgetElement.id = providedTriggerElement?.id || '';\n if (waitWithReplace) {\n widgetElement.style.display = 'none';\n providedTriggerElement?.parentNode?.appendChild(widgetElement);\n\n output.callback = () => {\n providedTriggerElement?.parentNode?.replaceChild(\n widgetElement,\n providedTriggerElement\n );\n widgetElement.style.display =\n providedTriggerElement?.style.display || 'block';\n };\n } else {\n providedTriggerElement?.parentNode?.replaceChild(\n widgetElement,\n providedTriggerElement\n );\n }\n output.cachedOriginals.widgetDOMElement = providedTriggerElement;\n output.cachedOriginals.triggerDOMElement = undefined;\n } else {\n output.widgetDOMElement = document.body.appendChild(widgetElement);\n output.triggerDOMElement = providedTriggerElement;\n }\n break;\n }\n case ProvidedElements.None: {\n const widgetElement = document.body.appendChild(document.createElement('div'));\n output.widgetDOMElement = widgetElement;\n if (triggerType !== TriggerType.Inline) {\n const triggerElement = document.body.appendChild(document.createElement('a'));\n if (triggerType === TriggerType.Link) {\n triggerElement.innerText = name;\n }\n output.triggerDOMElement = triggerElement;\n }\n break;\n }\n }\n\n return output;\n};\n","import { readStorage, StorageMedium } from '@telia-ace/widget-services';\nimport { Symbol } from '@telia-ace/widget-ui';\nimport { notifyDataLoaded } from '@telia-ace/widget-utilities';\nimport { Container, Widget } from '@webprovisions/platform';\nimport { createTriggerElement, setActive, setLoading } from './html-element-handlers';\nimport { TriggerType } from './prepare-dom';\n\nconst MODALS_STORAGE_KEY = 'modals';\n\nexport type BadgeOptions = {\n symbol?: Symbol;\n label?: string;\n ariaLabel?: string;\n openTooltip?: string;\n closedTooltip?: string;\n};\n\nexport type ViewOutletOptions = {\n widgetDOMElement: HTMLElement;\n triggerDOMElement?: HTMLElement;\n triggerOptions?: BadgeOptions | boolean;\n triggerType: TriggerType;\n cachedOriginals: {\n widgetDOMElement?: Node;\n triggerDOMElement?: Node;\n };\n};\n\ntype Modals = {\n name: string;\n ref?: HTMLElement;\n selector?: string;\n};\n\nexport class ViewOutlet {\n container: Container;\n private unsubscribe: (() => void)[] = [];\n\n constructor(container: Container, public options: ViewOutletOptions) {\n this.container = container.createChild(this);\n this.container.register('widgetDOMElement', this.options.widgetDOMElement);\n this.container.register('triggerDOMElement', this.options.triggerDOMElement);\n\n const widget: Widget = this.container.get('$widget');\n this.options.widgetDOMElement.classList.add('humany-widget');\n this.options.widgetDOMElement.classList.add(`humany_${widget.name}`);\n\n const widgetDOMElements = container.get('widgetDOMElements') || [];\n container.register('widgetDOMElements', [\n ...widgetDOMElements,\n this.options.widgetDOMElement,\n ]);\n }\n\n /**\n * Renders the view outlet to the DOM.\n */\n render() {\n const { widgetDOMElement, triggerDOMElement } = this.options;\n\n const widget: Widget = this.container.get('$widget');\n\n if (widgetDOMElement.getAttribute('data-rendered') === 'true') {\n return Promise.resolve();\n }\n\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\n setLoading(triggerDOMElement);\n }\n\n return import('./render')\n .then((module) => module.default(widget.name, this.container, widgetDOMElement))\n .then(() => {\n widgetDOMElement.setAttribute('data-rendered', 'true');\n\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\n const tooltip = (this.options.triggerOptions as BadgeOptions).openTooltip;\n setActive(triggerDOMElement, tooltip);\n }\n notifyDataLoaded(this.container, widgetDOMElement);\n\n const widgets = this.container.get('$environment').widgets.all();\n\n readStorage<Modals[]>(\n this.container,\n MODALS_STORAGE_KEY,\n StorageMedium.Session\n ).then((modals) => {\n if (modals) {\n modals.forEach((modal) => {\n if (\n widgets.find(\n (w: Widget) => w.name === modal.name && w.state === 'activated'\n )\n ) {\n widget.events.dispatch('widget:modal-opened', modal);\n }\n });\n }\n });\n });\n }\n\n renderBadge(options: BadgeOptions) {\n const { triggerDOMElement } = this.options;\n\n if (!triggerDOMElement) {\n return;\n }\n\n if (!triggerDOMElement.getAttribute('role')) {\n triggerDOMElement.setAttribute('role', 'button');\n }\n\n const { name }: Widget = this.container.get('$widget');\n\n const { label, symbol, ariaLabel, closedTooltip, openTooltip } = options;\n\n const triggerOptions = { closedTooltip, openTooltip };\n this.options.triggerOptions = triggerOptions;\n\n const removeTriggerListeners = createTriggerElement(triggerDOMElement, {\n label,\n symbol,\n ariaLabel,\n widgetName: name,\n tooltip: closedTooltip,\n });\n this.unsubscribe.push(removeTriggerListeners);\n }\n\n dispose() {\n return import('./unmount').then((module) => {\n const { triggerDOMElement, widgetDOMElement } = this.options;\n module.default(widgetDOMElement);\n\n if (this.options.cachedOriginals.widgetDOMElement) {\n if (widgetDOMElement) {\n widgetDOMElement.parentNode?.replaceChild(\n this.options.cachedOriginals.widgetDOMElement,\n widgetDOMElement\n );\n }\n }\n if (this.options.cachedOriginals.triggerDOMElement) {\n if (triggerDOMElement) {\n triggerDOMElement.parentNode?.replaceChild(\n this.options.cachedOriginals.triggerDOMElement,\n triggerDOMElement\n );\n }\n }\n\n this.unsubscribe.forEach((unsubscribe) => {\n unsubscribe();\n });\n\n widgetDOMElement.parentNode?.removeChild(widgetDOMElement);\n triggerDOMElement?.parentNode?.removeChild(triggerDOMElement);\n });\n }\n}\n","import {\n ChangesetOptions,\n ChangesetProvider,\n ComponentNodeAttributes,\n ComponentNodeSettings,\n ComponentPlatform,\n ComponentQuery,\n ComponentQueryRule,\n createComponentModel,\n WidgetSettings,\n} from '@telia-ace/widget-core';\nimport {\n createStorageWriter,\n readStorage,\n StorageCategory,\n StorageMedium,\n StorageWriter,\n} from '@telia-ace/widget-services';\nimport { lock } from '@telia-ace/widget-utilities';\nimport { Container, Widget, WidgetState } from '@webprovisions/platform';\n\nconst STORAGE_KEY = 'changesets';\n\ntype ChangesetItem = {\n rules: ComponentQueryRule[];\n attributes: Partial<ComponentNodeAttributes>;\n options: ChangesetOptions;\n};\n\ntype ChangesetItemBag = {\n items?: { [key: string]: ChangesetItem };\n keys?: string[];\n};\n\nconst convertSettingsToAttributes = (\n settings: Partial<ComponentNodeSettings>\n): Partial<ComponentNodeAttributes> => {\n const attributes: Partial<ComponentNodeAttributes> = { tags: settings.tags };\n if (settings.context && typeof settings.context !== 'function') {\n attributes.context = settings.context;\n }\n if (settings.properties && typeof settings.properties !== 'function') {\n attributes.properties = settings.properties;\n }\n if (settings.layout && typeof settings.layout !== 'function') {\n attributes.layout = settings.layout;\n }\n\n return attributes;\n};\n\nexport class LocalStorageChangesetProvider implements ChangesetProvider {\n constructor(private container: Container, private storageWriter: StorageWriter) {}\n\n static create(container: Container): Promise<LocalStorageChangesetProvider> {\n return createStorageWriter(container, STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n }).then((storageWriter) => new LocalStorageChangesetProvider(container, storageWriter));\n }\n\n write(\n key: string,\n target: ComponentQuery,\n attributes: Partial<ComponentNodeSettings>,\n options: ChangesetOptions\n ): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n const existingIndex = keys.indexOf(key);\n if (existingIndex > -1) {\n keys.splice(existingIndex, 1);\n }\n keys.push(key);\n items[key] = {\n options,\n attributes: convertSettingsToAttributes(attributes),\n rules: target.rules,\n };\n return this.storageWriter({ keys, items });\n });\n });\n }\n\n remove(key: string): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n const indexToRemove = keys.indexOf(key);\n if (indexToRemove > -1) {\n keys.splice(indexToRemove, 1);\n delete items[key];\n return this.storageWriter(bag);\n }\n });\n });\n }\n\n load(platform: ComponentPlatform): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n keys.forEach((key) => {\n const item = items[key];\n if (item) {\n const { rules, attributes, options } = item;\n platform.write({\n attributes,\n options,\n target: new ComponentQuery(platform, rules),\n });\n }\n });\n });\n });\n }\n}\n\nexport const createPlatform = (widget: Widget): Promise<ComponentPlatform> => {\n const { container } = widget;\n return LocalStorageChangesetProvider.create(container).then((localStorage) => {\n const settings: WidgetSettings = container.get('$settings');\n const providers = { localStorage };\n const platform = new ComponentPlatform(widget, providers);\n const destructComponentModel = createComponentModel(platform, settings);\n\n widget.events.subscribe('widget:state-change', (event, data: { state: WidgetState }) => {\n if (data.state === WidgetState.Deactivating) {\n destructComponentModel();\n }\n });\n\n return platform;\n });\n};\n","import { WidgetSettings } from '@telia-ace/widget-core';\nimport { Container } from '@webprovisions/platform';\nimport { createPlatform } from './component-platform-factory';\n\nexport const createRoutingService = (container: Container) => {\n return import('@telia-ace/widget-routing').then(({ RoutingService, HistoryMode }) => {\n return container.get('settings').then((settings: WidgetSettings) => {\n const {\n routing: { initialPath = '/', mode = HistoryMode.scopedHash, basePath },\n views,\n } = settings;\n\n const routingService = new RoutingService(container, {\n initialPath,\n mode,\n routes: Object.keys(views).map((name) => ({\n name,\n path: views[name].path,\n })),\n basePath,\n });\n return routingService;\n });\n });\n};\n\nexport const createStorageService = (container: Container) => {\n return import('@telia-ace/widget-services').then(({ StorageProvider }) => {\n return new StorageProvider();\n });\n};\n\nexport const createActionResolver = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ActionResolver }) => {\n return new ActionResolver(container);\n });\n};\n\nexport const createComponentResolver = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ComponentResolver }) => {\n return new ComponentResolver(container);\n });\n};\n\nexport const createComponentPlatform = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ComponentPlatform, createComponentModel }) => {\n return createPlatform(container.get('$widget'));\n });\n};\n","import {\n ActionResolver,\n ComponentPlatform,\n WidgetRenderState,\n WidgetSettings,\n} from '@telia-ace/widget-core';\nimport { onWidgetUrl, RouteData, RoutingService } from '@telia-ace/widget-routing';\nimport {\n createStorageWriter,\n readStorage,\n StorageCategory,\n StorageMedium,\n StorageScope,\n} from '@telia-ace/widget-services';\nimport { removeNullAndUndefinedValues, uuid } from '@telia-ace/widget-utilities';\nimport { BootstrappingActivationData, supportBootstrapping } from '@webprovisions/bootstrapping';\nimport { Container, EventSubscriptionCancellation, WidgetType } from '@webprovisions/platform';\nimport { BadgeOptions, ViewOutlet, ViewOutletOptions } from '././ui/view-outlet';\nimport {\n createActionResolver,\n createComponentPlatform,\n createComponentResolver,\n createRoutingService,\n createStorageService,\n} from './services';\nimport { setActive, setInactive } from './ui/html-element-handlers';\nimport { determineTriggerType, prepareDOMElements, TriggerType } from './ui/prepare-dom';\n\nconst SETTINGS_STORAGE_KEY = '$settings';\nconst OPEN_STORAGE_KEY = 'open';\nconst STICKY_WIDGET_STORAGE_KEY = 'activeStickyWidget';\n\nexport enum InitialRenderState {\n Open = 'open',\n Closed = 'closed',\n Hidden = 'hidden',\n Storage = 'storage',\n}\n\nexport type RenderData = {\n widgetDOMElement?: HTMLElement;\n triggerDOMElement?: HTMLElement;\n key?: string;\n open?: boolean;\n withRenderState?: InitialRenderState;\n};\n\nexport type AttachData = {\n widgetDOMElement?: HTMLElement;\n triggerDOMElement?: HTMLElement;\n key?: string;\n withRenderState?: InitialRenderState;\n};\n\nexport default class Widget extends WidgetType {\n outlets = new Map<string, ViewOutlet>();\n activated: Promise<void> | undefined = undefined;\n subs: EventSubscriptionCancellation[] = [];\n\n constructor(container: Container) {\n super(container);\n\n this.container.registerAsync('storage', () => createStorageService(this.container));\n\n this.container.registerFactory('settings', () => {\n return readStorage<Partial<WidgetSettings>>(\n this.container,\n SETTINGS_STORAGE_KEY,\n StorageMedium.Local\n ).then((settings = {}) => {\n return {\n ...this.container.get('$settings'),\n ...settings,\n };\n });\n });\n\n supportBootstrapping(this as any, 'load', this.handleBootstrapping);\n\n this.container.registerAsync('componentResolver', () =>\n createComponentResolver(this.container)\n );\n this.container.registerAsync('router', () => createRoutingService(this.container));\n this.container.registerAsync('actionResolver', () => createActionResolver(this.container));\n this.container.register('matchMedia', window.matchMedia);\n this.container.registerAsync('components', () => createComponentPlatform(this.container));\n }\n\n handleBootstrapping = (activationData: BootstrappingActivationData) => {\n const options = {\n triggerDOMElement: activationData.sourceDOMElement,\n withRenderState: InitialRenderState.Storage,\n };\n\n this.container.get('settings').then((settings: any) => {\n const { activate } = settings;\n const shouldActivate =\n typeof activate === 'undefined' || activate === null || activate === true;\n\n if (shouldActivate) {\n this.activated = (this.activated || this.widget.activate()).then(() =>\n this.attach(options)\n );\n }\n });\n };\n\n initialize() {\n const promises = this.container.getManyAsync(\n 'actionResolver',\n 'router',\n 'components'\n ) as Promise<{\n actionResolver: ActionResolver;\n router: RoutingService;\n components: ComponentPlatform;\n }>;\n\n return Promise.all([promises, this.container.get('settings')]).then(\n ([{ actionResolver, router, components }, settings]) => {\n actionResolver.subscribe(this.widget.name, (origin, action, value) =>\n this.onAction(action, value)\n );\n\n const switchViewNodes = (routeName: string) => {\n components.nodes.query({ type: 'view' }).forEach((viewNode) => {\n components.setSwitch(viewNode, routeName);\n });\n };\n\n const initialRoute = router.getInitialRoute()?.name || 'index';\n switchViewNodes(initialRoute);\n\n this.events.subscribe('widget:data-loaded', (e, { element }) => {\n if (this.widget.container.get('seoConfiguration')) {\n this.events.dispatch('widget:preloaded-replaced', {\n element,\n });\n }\n });\n\n this.events.subscribe(\n 'router:change',\n (e, { previous = { routeData: {} }, next = { routeData: {} } }) => {\n const { routeData: prevData }: { routeData: RouteData } = previous;\n const { routeData: nextData }: { routeData: RouteData } = next;\n\n const notFoundView = Object.keys(settings.views).reduce((acc, key) => {\n const view = settings.views[key];\n if (typeof view.path === 'undefined') {\n return key;\n }\n return acc;\n }, '');\n\n // route not found\n if (!nextData.name && notFoundView) {\n switchViewNodes(notFoundView);\n } else {\n switchViewNodes(nextData.name);\n }\n\n removeNullAndUndefinedValues(prevData && prevData.params);\n removeNullAndUndefinedValues(nextData && nextData.params);\n\n this.container\n .getAsync('actionResolver')\n .then((actionResolver: ActionResolver) => {\n actionResolver.action(this.widget.name, 'routeChange', {\n next: nextData,\n previous: prevData,\n });\n });\n }\n );\n\n return router.initialize();\n }\n );\n }\n\n attach(attachData: AttachData = {}) {\n return this.container.get('settings').then(({ trigger }: WidgetSettings) => {\n const {\n widgetDOMElement,\n key = uuid(),\n triggerDOMElement,\n withRenderState,\n } = attachData;\n\n const triggerType = determineTriggerType(trigger);\n\n // This could probably be defined already when bootstrapping occurs,\n // Webprovisions knows when a widget is prerendered,\n // see \"queryPrerenderedTargets in @webprovisions/bootstrapping\"\n const waitWithReplace =\n triggerType === TriggerType.Inline &&\n (triggerDOMElement?.childElementCount || 0) > 0;\n\n const outletOptions = prepareDOMElements(\n this.widget.name,\n widgetDOMElement,\n triggerDOMElement,\n trigger,\n waitWithReplace\n );\n\n if (this.outlets.size < 1 && !withRenderState) {\n this.setRenderState('unset');\n }\n\n const swap = () => {\n const isReady = () =>\n widgetDOMElement.querySelectorAll('[data-loading=true]').length === 0;\n const [widgetDOMElement] = this.widget.container.get('widgetDOMElements');\n\n const watcher = (mutations: MutationRecord[], observer: MutationObserver) => {\n if (isReady()) {\n if (outletOptions.callback) {\n outletOptions.callback();\n }\n observer.disconnect();\n }\n };\n const options = {\n attributes: true,\n subtree: true,\n childList: true,\n };\n\n if (isReady()) {\n outletOptions.callback && outletOptions.callback();\n }\n const observer = new MutationObserver(watcher);\n\n observer.observe(widgetDOMElement, options);\n };\n\n if (waitWithReplace) {\n this.widget.container.getAsync('dataClient').then(({ events }: any) => {\n events.subscribe('data-client:fetched', (event: any, data: any) => {\n if (data.unresolvedQueries === 0) {\n swap();\n }\n });\n });\n }\n\n const outlet = this.getOrCreateViewOutlet(key, outletOptions);\n this.outlets.set(key, outlet);\n this.widget.events.dispatch('widget:attached', {}, { bubbles: true });\n\n if (outletOptions.triggerType === TriggerType.Badge && trigger) {\n outletOptions.triggerDOMElement?.setAttribute('aria-expanded', 'false');\n outlet?.renderBadge(trigger);\n }\n\n if (outletOptions.triggerType !== TriggerType.Inline) {\n outletOptions.triggerDOMElement?.addEventListener('click', (event: any) => {\n event.preventDefault();\n this.container\n .get('settings')\n .then(({ trigger: updatedTrigger }: WidgetSettings) => {\n outlet\n .render()\n .then(() => this.renderState())\n .then((renderState) => {\n if (\n updatedTrigger &&\n updatedTrigger.action &&\n updatedTrigger.action === 'hide'\n ) {\n return renderState === WidgetRenderState.open\n ? this.hide()\n : this.open();\n }\n return renderState === WidgetRenderState.open\n ? this.close()\n : this.open();\n });\n });\n });\n }\n\n if (this.outlets.size > 1) {\n return this.renderState().then((state: WidgetRenderState) => {\n // new outlets should have the same state as existing ones\n this.triggerStateIfApplicable(state);\n });\n }\n\n if (withRenderState) {\n if (withRenderState === InitialRenderState.Storage) {\n return this.renderState().then((state: WidgetRenderState) => {\n if (outletOptions.triggerType === TriggerType.Inline) {\n this.triggerStateIfApplicable('open');\n return;\n }\n this.triggerStateIfApplicable(state);\n });\n }\n return this.triggerStateIfApplicable(withRenderState);\n }\n });\n }\n\n detach(key?: string) {\n if (key) {\n if (this.outlets.has(key)) {\n const outlet = this.outlets.get(key);\n outlet?.dispose();\n this.outlets.delete(key);\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`detach(): Could not find View Outlet with key ${key}`);\n }\n return;\n }\n this.outlets.forEach((outlet) => {\n outlet.dispose();\n });\n this.outlets.clear();\n }\n\n private triggerStateIfApplicable(input: string) {\n return this.container.getAsync('router').then((router) => {\n switch (input) {\n case 'closed':\n this.close();\n break;\n case 'open':\n this.open();\n break;\n case 'hidden':\n this.hide();\n router.start();\n break;\n default:\n return;\n }\n });\n }\n\n private getOrCreateViewOutlet(key: string, options: ViewOutletOptions): ViewOutlet {\n return (\n this.outlets.has(key) ? this.outlets.get(key) : new ViewOutlet(this.container, options)\n )!;\n }\n\n render(renderData: RenderData = {}) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('widget.render() is deprecated. Use widget.attach() instead.');\n }\n if (renderData.open) {\n const options: AttachData = {\n ...renderData,\n withRenderState: InitialRenderState.Open,\n };\n return this.attach(options);\n }\n return this.attach(renderData);\n }\n\n activate(data?: any) {\n if (data?.override) {\n this.setSettings(() => data.override);\n }\n // TODO: this is considered a hack, remove apiNotificationPriorityBy\n // when there is a better way to get notifications from backend\n if (data?.apiNotificationPriorityBy) {\n this.container.register('apiNotificationPriorityBy', data.apiNotificationPriorityBy);\n }\n }\n\n setSettings(\n fn: (settings: WidgetSettings) => Promise<Partial<WidgetSettings>>\n ): Promise<WidgetSettings> {\n return Promise.all([\n this.container.get('settings'),\n createStorageWriter(this.container, SETTINGS_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n }),\n ]).then(([settings, write]) => {\n return Promise.resolve(fn(settings)).then((override) => {\n return write(override).then(() => {\n const updated = { ...settings, ...override };\n this.widget.events.dispatch('widget:settings-updated', updated);\n return updated;\n });\n });\n });\n }\n\n clearSettings(): Promise<void> {\n return createStorageWriter(\n this.container,\n SETTINGS_STORAGE_KEY,\n StorageCategory.Necessary,\n { medium: StorageMedium.Local }\n )\n .then((write) => write())\n .then(() => this.container.get('settings'))\n .then((settings) => {\n this.widget.events.dispatch('widget:settings-updated', settings);\n });\n }\n\n action({ action, value }: { action: string; value?: any }) {\n return this.container.getAsync('actionResolver').then((actionResolver: ActionResolver) => {\n actionResolver.action(this.widget.name, action, value);\n });\n }\n\n renderState(): Promise<WidgetRenderState> {\n if (onWidgetUrl(this.container)) {\n return Promise.resolve(WidgetRenderState.open);\n }\n const readSessionOpen = () =>\n readStorage<WidgetRenderState>(\n this.container,\n OPEN_STORAGE_KEY,\n StorageMedium.Session\n ).then((value = WidgetRenderState.closed) => value);\n\n const readLocalOpen = () =>\n readStorage<WidgetRenderState>(\n this.container,\n OPEN_STORAGE_KEY,\n StorageMedium.Session\n ).then((value = WidgetRenderState.closed) => value);\n\n return this.container.getAsync('router').then((routing: RoutingService) => {\n if (routing.isSticky()) {\n return readLocalOpen().then((localOpen) => {\n return localOpen === WidgetRenderState.open ? localOpen : readSessionOpen();\n });\n }\n return readSessionOpen();\n });\n }\n\n hide(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'hide(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n this.outlets.forEach((outlet) => outlet.render());\n return this.action({ action: 'hide' }).then(() => {\n this.setTriggerState(false);\n });\n }\n\n open(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'open(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n this.outlets.forEach((outlet) => outlet.render());\n return this.action({ action: 'open' }).then(() => {\n this.widget.events.dispatch('tracking:widget-rendered', {});\n return this.onOpen();\n });\n }\n\n close(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'close(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n return this.action({ action: 'close' }).then(() => this.onClose());\n }\n\n show(): Promise<void> {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'show(): Command is deprecated and will be removed in the future. Use open() instead.'\n );\n }\n return this.open();\n }\n\n private onAction(action: string, value: any) {\n switch (action) {\n case 'close':\n case 'open':\n case 'hide':\n const newState =\n action === 'open'\n ? WidgetRenderState.open\n : action === 'close'\n ? WidgetRenderState.closed\n : WidgetRenderState.hidden;\n\n return this.setRenderState(newState).then(() => {\n this.setTriggerState(newState === WidgetRenderState.open);\n if (newState !== WidgetRenderState.hidden) {\n newState === WidgetRenderState.open ? this.onOpen() : this.onClose();\n } else {\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'false')\n );\n }\n });\n }\n }\n\n private setRenderState(newState: string): Promise<void> {\n const { invoke, events } = this.container.get('$widget');\n return Promise.all([\n createStorageWriter(this.container, OPEN_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Session,\n }),\n createStorageWriter(this.container, OPEN_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n duration: { minutes: 5 },\n }),\n this.container.getAsync('router'),\n invoke('renderState'),\n ]).then(([writeSessionOpen, writeLocalOpen, routing, previousRenderState]) => {\n if (newState === 'unset' || !newState) {\n writeLocalOpen();\n writeSessionOpen();\n } else {\n if (routing.isSticky()) {\n writeLocalOpen(newState);\n }\n writeSessionOpen(newState);\n }\n events.dispatch('widget:render-state-changed', {\n previous: previousRenderState,\n next: newState,\n });\n });\n }\n\n private onOpen(): Promise<void> {\n return this.container.getAsync('router').then((router: RoutingService) => {\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'true')\n );\n return router.start();\n });\n }\n\n private onClose(): Promise<void> {\n const services = this.container.getManyAsync('router', 'components') as Promise<{\n router: RoutingService;\n components: ComponentPlatform;\n }>;\n\n const resetActivateProp = () => {\n return this.container.get('settings').then((widgetSettings: WidgetSettings) => {\n const { activate } = this.container.get('$settings');\n if (widgetSettings.activate !== activate) {\n return this.setSettings(() => Promise.resolve({ activate }));\n }\n return Promise.resolve();\n });\n };\n\n return resetActivateProp()\n .then(() => {\n return services;\n })\n .then(\n ({\n router,\n components,\n }: {\n router: RoutingService;\n components: ComponentPlatform;\n }) => {\n const visibleNodes = components.nodes.visible;\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'false')\n );\n\n if (\n visibleNodes.filter(\n (c) =>\n c.attributes.properties.animation &&\n c.attributes.properties.animation !== 'none'\n ).length\n ) {\n return new Promise<RoutingService>((resolve) => {\n setTimeout(() => {\n resolve(router);\n }, 200);\n });\n }\n\n return Promise.resolve(router);\n }\n )\n .then((router: RoutingService) => router.stop());\n }\n\n private setTriggerState(open: boolean) {\n this.outlets.forEach((outlet) => {\n const {\n options: { triggerDOMElement, triggerOptions },\n } = outlet;\n const { openTooltip, closedTooltip } = (triggerOptions as BadgeOptions) || {};\n if (triggerDOMElement) {\n open\n ? setActive(triggerDOMElement, openTooltip)\n : setInactive(triggerDOMElement, closedTooltip);\n }\n });\n }\n\n deactivate() {\n this.subs.forEach((s) => s());\n\n const promises: Promise<void>[] = [];\n this.outlets.forEach((outlet) => promises.push(outlet.dispose()));\n\n return readStorage<string>(\n this.container,\n STICKY_WIDGET_STORAGE_KEY,\n StorageMedium.Local\n ).then((value) => {\n /**\n * Remove stored sticky widget from implementation's localStorage if applicable\n */\n if (value === this.widget.name) {\n return createStorageWriter(\n this.container,\n STICKY_WIDGET_STORAGE_KEY,\n StorageCategory.Necessary,\n {\n medium: StorageMedium.Local,\n scope: StorageScope.Implementation,\n }\n )\n .then((write) => write())\n .then(() => Promise.all(promises));\n }\n return Promise.all(promises);\n });\n }\n}\n"],"names":["SlideDirection","determineSlideDirection","currentRouteName","nextRouteName","routeRanking","Switch","views","location","render","React","RouteSwitch","__spreadProps","__spreadValues","key","name","path","Route","Switch$1","StyledViewContainer","styled","StyledView","Grid","p","routeHierarchy","AnimatedView","_a","_b","className","other","__objRest","routeName","setRouteName","useState","transitionDirection","setTransitionDirection","nextRoute","useRouteData","router","useRouter","properties","useProperties","context","useContext","container","useContainer","node","useComponentNode","gap","columns","animation","scrollable","areaProperties","scrollableCss","elem","useScroll","renderView","transitionState","direction","animationStyles","getAnimation","childNode","appendClassNames","Component","transitionComposer","TransitionGroup","child","Transition","state","AnimatedView$1","View","View$1","styling","css","paddedBorderTabStyle","StyledAnimatedView","NonResolvedComponentWrapper","_c","ResolvableComponent","forwardRef","ref","children","ResolvedComponent","useComponent","type","id","useComponentDescriptor","StyledResolvableComponent","useMemo","filterCssPropsStyle","Typography","Suspense","ResolvableComponent$1","useComponentNodeProperties","components","useComponentPlatform","setProperties","isMounted","useIsMounted","useEffect","unsubscribe","event","data","isVisible","size","branch","ariaLabel","tabIndex","extraContext","descriptor","setDescriptor","useColumns","indent","useLayout","visible","componentNode","asDescriptor","unmount","cardinal","contextFonts","accessibility","restContext","fonts","theme","ThemeProvider","ComponentNodeContext","ComponentPropertyContext","props","cssProps","filterCssProps","Component$1","DetachedComponent","builder","setNode","createdNode","n","DetachedComponent$2","detachedComponent","NotFound","showSearch","themeContext","useTheme","settings","acc","searchComponentProps","searchNode","notFoundNode","NotFound$1","componentTagFromType","resolveComponent","nodeId","resolver","platform","__async","componentTag","create","result","error","renderSymbol","symbol","content","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","e","handleClick","createTriggerElement","options","widgetName","label","tooltip","symbolHtml","setInactive","elements","title","setLoading","setActive","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","providedWidgetElement","providedTriggerElement","waitWithReplace","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","MODALS_STORAGE_KEY","ViewOutlet","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","w","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","_d","STORAGE_KEY","convertSettingsToAttributes","attributes","LocalStorageChangesetProvider","storageWriter","createStorageWriter","StorageCategory","target","lock","bag","keys","items","existingIndex","indexToRemove","item","rules","ComponentQuery","createPlatform","localStorage","providers","ComponentPlatform","destructComponentModel","createComponentModel","WidgetState","createRoutingService","RoutingService","HistoryMode","initialPath","mode","basePath","createStorageService","StorageProvider","createActionResolver","ActionResolver","createComponentResolver","ComponentResolver","createComponentPlatform","SETTINGS_STORAGE_KEY","OPEN_STORAGE_KEY","STICKY_WIDGET_STORAGE_KEY","Widget","WidgetType","activationData","activate","supportBootstrapping","promises","actionResolver","origin","action","value","switchViewNodes","viewNode","initialRoute","previous","next","prevData","nextData","notFoundView","removeNullAndUndefinedValues","attachData","trigger","uuid","withRenderState","outletOptions","swap","isReady","watcher","mutations","observer","events","outlet","updatedTrigger","renderState","WidgetRenderState","input","renderData","fn","write","override","updated","onWidgetUrl","readSessionOpen","readLocalOpen","routing","localOpen","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","visibleNodes","c","resolve","open","s","StorageScope"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/ui/determine-slide-direction.ts","../src/ui/switch.tsx","../src/ui/animated-view.tsx","../src/ui/view.tsx","../src/ui/styles.ts","../src/ui/resolvable-component.tsx","../src/ui/use-component-node-properties.ts","../src/ui/_component.tsx","../src/ui/detached-component.tsx","../src/ui/not-found.tsx","../src/utils/component-tag-from-type.ts","../src/utils/resolve-component.ts","../src/ui/html-element-handlers.ts","../src/ui/prepare-dom.ts","../src/ui/view-outlet.ts","../src/component-platform-factory.ts","../src/services.ts","../src/widget.ts"],"sourcesContent":["export enum SlideDirection {\n back = 'back',\n forth = 'forth',\n}\n\nexport interface RouteStructure {\n name: string;\n children: RouteStructure[];\n}\n\n/**\n * Recursively find the parents of a nested route\n * @param routeName Name of route to find\n * @param routes Routes to look in\n * @param trail Trail of parents\n * @param level Level of the array currently looking in\n */\nexport const findParentRoutes = (\n routeName: string,\n routes: RouteStructure[],\n trail: string[] = [],\n level: number = 0\n): string[] | null => {\n let found: any = null;\n\n routes.forEach((route, index) => {\n if (!found) {\n if (route.name === routeName) {\n found = route;\n } else {\n trail[level] = route.name;\n found = findParentRoutes(routeName, route.children, trail, level + 1);\n }\n }\n });\n\n if (!found) {\n return null;\n }\n\n return trail;\n};\n\n/**\n * Determine if the sliding animation should back or forth\n * @param currentRouteName Name of current route\n * @param nextRouteName Name of route to transition to\n * @param routeRanking Hierarchical route ranking for the widget\n */\nexport const determineSlideDirection = (\n currentRouteName: string,\n nextRouteName: string,\n routeRanking: RouteRanking\n): SlideDirection => {\n if (\n typeof routeRanking[currentRouteName] === 'number' &&\n typeof routeRanking[nextRouteName] === 'number' &&\n routeRanking[currentRouteName] > routeRanking[nextRouteName]\n ) {\n return SlideDirection.back;\n }\n return SlideDirection.forth;\n};\n\nexport type RouteRanking = { [key: string]: number };\n","import { ViewDefinition } from '@telia-ace/widget-core';\nimport React from 'react';\nimport { Route, Switch as RouteSwitch } from 'react-router';\n\ntype Props = {\n location?: any;\n views: { [key: string]: ViewDefinition };\n render: (viewName: string) => JSX.Element | null;\n};\n\nconst Switch: React.FC<Props> = ({ views, location, render }) => {\n return (\n <RouteSwitch\n location={\n location\n ? {\n ...location,\n pathname: location.pathname.split('?')[0],\n }\n : location\n }\n >\n {[\n ...Object.keys(views).filter((key) => !!views[key].path),\n ...Object.keys(views).filter((key) => !views[key].path),\n ].map((name) => {\n const { path } = views[name];\n\n if (!path) {\n return <Route key={name} render={() => render(name)} />;\n }\n\n if (Array.isArray(path)) {\n return path.map((path: string) => (\n <Route key={name} exact path={path} render={() => render(name)} />\n ));\n }\n return <Route key={name} exact path={path} render={() => render(name)} />;\n })}\n </RouteSwitch>\n );\n};\n\nexport default Switch;\n","import styled from '@emotion/styled';\nimport { WidgetSettings } from '@telia-ace/widget-core';\nimport {\n Grid,\n transitionComposer,\n useComponentNode,\n useContainer,\n useContext,\n useProperties,\n useRouteData,\n useRouter,\n useScroll,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { useState } from 'react';\nimport { Transition, TransitionGroup } from 'react-transition-group';\nimport { TransitionStatus } from 'react-transition-group/Transition';\nimport { determineSlideDirection, RouteRanking, SlideDirection } from './determine-slide-direction';\nimport Switch from './switch';\nimport Component from './_component';\n\ntype Props = {\n className?: string;\n};\n\nconst StyledViewContainer = styled.div`\n position: relative;\n width: 100%;\n flex: 1;\n`;\n\nconst StyledView = styled(Grid)<{ scrollableCss?: any; animationCss?: any }>`\n position: absolute;\n left: 0;\n right: 0;\n ${(p) => !!p.animationCss && p.animationCss}\n ${(p) => !!p.scrollableCss && p.scrollableCss}\n`;\n\nconst routeHierarchy: RouteRanking = {\n index: 1,\n search: 2,\n browse: 3,\n guide: 4,\n contact: 5,\n 'contact-method': 6,\n conversation: 7,\n};\n\nconst AnimatedView: React.FC<Props> = ({ className = '', ...other }) => {\n const [routeName, setRouteName] = useState('index');\n const [transitionDirection, setTransitionDirection] = useState(SlideDirection.forth);\n const nextRoute = useRouteData();\n const router = useRouter();\n\n const properties = useProperties();\n const context = useContext();\n const container = useContainer();\n const node = useComponentNode();\n\n const { gap = '0' } = context;\n const { columns = 1, animation = 'none', scrollable = false, ...areaProperties } = properties;\n\n const [scrollableCss, elem] = useScroll(scrollable);\n\n if (!node || !router) {\n return null;\n }\n\n const { location } = router;\n\n if (nextRoute.name !== routeName && nextRoute.name !== '' && animation) {\n setTransitionDirection(determineSlideDirection(routeName, nextRoute.name, routeHierarchy));\n setRouteName(nextRoute.name);\n }\n\n const { views }: WidgetSettings = container.get('$settings');\n\n if (!Object.keys(views).length) {\n return null;\n }\n\n const renderView = (name: string, transitionState?: any, direction?: SlideDirection) => {\n const animationStyles = getAnimation(transitionState, direction);\n const childNode = node.getChildren(name)[0];\n\n return (\n <StyledView\n {...other}\n {...areaProperties}\n scrollableCss={scrollableCss}\n ref={elem}\n columns={columns}\n gap={gap}\n {...animationStyles}\n className={appendClassNames(className, 'humany-view')}\n >\n <Component id={childNode.id} branch=\"default\" />\n </StyledView>\n );\n };\n\n const getAnimation = (transitionState?: any, direction?: SlideDirection) => {\n if (animation === 'slide' || animation === 'fade') {\n return {\n animationCss: transitionComposer.composeViewTransition(\n transitionState,\n animation,\n direction\n ),\n ['data-state']: transitionState,\n };\n }\n return;\n };\n\n return (\n <StyledViewContainer className=\"humany-animated-view\">\n <TransitionGroup\n component={null}\n childFactory={(child) =>\n React.cloneElement(child, { direction: transitionDirection })\n }\n >\n <Transition\n key={routeName}\n timeout={{ enter: 500, exit: 500 }}\n onEnter={(node: HTMLElement) => node?.clientHeight}\n unmountOnExit={true}\n direction={SlideDirection.forth}\n >\n {/* @ts-ignore */}\n {(state: TransitionStatus, { direction }: { direction: SlideDirection }) => (\n <Switch\n views={views}\n location={location}\n render={(name) => renderView(name, state, direction)}\n />\n )}\n </Transition>\n </TransitionGroup>\n </StyledViewContainer>\n );\n};\n\nexport default AnimatedView;\n","import styled from '@emotion/styled';\nimport { WidgetSettings } from '@telia-ace/widget-core';\nimport {\n Grid,\n useComponentNode,\n useContainer,\n useContext,\n useProperties,\n useScroll,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport Switch from './switch';\nimport Component from './_component';\n\ntype Props = {\n className?: string;\n};\n\nconst StyledView = styled(Grid)<{ scrollableCss?: string }>`\n ${(p) => !!p.scrollableCss && p.scrollableCss}\n`;\n\nconst View: React.FC<Props> = ({ className = '', ...other }) => {\n const properties = useProperties();\n const context = useContext();\n const container = useContainer();\n const node = useComponentNode();\n\n const { views }: WidgetSettings = container.get('$settings');\n\n const { gap = '0' } = context;\n const { columns = 1, animation = 'none', scrollable = false, ...areaProperties } = properties;\n\n const [scrollableCss, elem] = useScroll(scrollable);\n\n if (!node) {\n return null;\n }\n\n return (\n <StyledView\n {...other}\n {...areaProperties}\n scrollableCss={scrollableCss}\n ref={elem}\n columns={columns}\n gap={gap}\n className={appendClassNames(className, 'humany-view')}\n >\n <Switch\n views={views}\n render={(name) => {\n const childNode = node.getChildren(name)[0];\n return <Component id={childNode.id} node={childNode} branch=\"default\" />;\n }}\n />\n </StyledView>\n );\n};\n\nexport default View;\n","import { css, Theme } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { paddedBorderTabStyle } from '@telia-ace/widget-ui';\nimport AnimatedView from './animated-view';\nimport View from './view';\n\nexport const styling = (p: { 'data-width'?: number; 'data-indent'?: number; theme: Theme }) => css`\n outline: none;\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n outline: none;\n }\n\n grid-column: ${p['data-indent']\n ? `${p['data-indent'] + 1} / ${p['data-indent'] + (p['data-width'] || 0) + 1}`\n : `span ${p['data-width']}`};\n\n ${p.theme.fonts?.type &&\n `\n font-family: ${p.theme.fonts.type};\n\n input, textarea {\n font-family: ${p.theme.fonts.type};\n }\n `}\n\n ${p.theme.fonts?.base &&\n `\n font-size: ${p.theme.fonts.base};\n `}\n\n &:focus-visible {\n ${paddedBorderTabStyle(p)};\n }\n`;\n\nexport const StyledView = styled(View)`\n ${(p) => styling(p)}\n`;\n\nexport const StyledAnimatedView = styled(AnimatedView)`\n ${(p) => styling(p)}\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n filterCssPropsStyle,\n Typography,\n useComponent,\n useComponentDescriptor,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React, { forwardRef, Suspense, useMemo } from 'react';\nimport { styling } from './styles';\n\ntype Props = {\n role?: string;\n 'data-width': number;\n 'data-indent': number;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst NonResolvedComponentWrapper = styled.div<Props>`\n text-align: center;\n ${(p) =>\n typeof p.theme.colors?.warning !== 'undefined' &&\n css`\n color: ${p.theme.colors?.warning};\n border: 2px dashed ${p.theme.colors?.warning};\n `}\n ${(p) =>\n typeof p.theme.borderRadius !== 'undefined' && `border-radius: ${p.theme.borderRadius};`}\n ${(p) => styling(p)}\n`;\n\nconst ResolvableComponent = forwardRef<HTMLElement, Props>(\n ({ className = '', children, ...other }, ref) => {\n const ResolvedComponent = useComponent();\n const { name, type, id } = useComponentDescriptor();\n\n const StyledResolvableComponent = useMemo(() => {\n if (ResolvedComponent) {\n return styled(ResolvedComponent)<any>`\n ${styling}\n ${filterCssPropsStyle}\n `;\n }\n return null;\n }, [ResolvedComponent]);\n\n if (typeof ResolvedComponent === 'undefined') {\n return null;\n }\n\n if (ResolvedComponent === null || StyledResolvableComponent === null) {\n if (process.env.NODE_ENV !== 'production') {\n return (\n <NonResolvedComponentWrapper\n {...other}\n title={`type: ${type}, definition-id: ${name}, instance-id: ${id}`}\n className={appendClassNames(className, 'humany-non-resolved-component')}\n >\n <Typography variant=\"h5\">Non Resolved Component Type</Typography>\n </NonResolvedComponentWrapper>\n );\n }\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <StyledResolvableComponent\n ref={ref}\n {...other}\n className={appendClassNames(\n className,\n 'humany-component',\n `humany-component-${name}`\n )}\n >\n {children}\n </StyledResolvableComponent>\n </Suspense>\n );\n }\n);\n\nexport default ResolvableComponent;\n","import { ComponentNodeProperties } from '@telia-ace/widget-core';\nimport { useComponentNode, useComponentPlatform, useIsMounted } from '@telia-ace/widget-ui';\nimport { useEffect, useState } from 'react';\n\nexport default (id: string) => {\n const node = useComponentNode(id);\n const components = useComponentPlatform();\n const [properties, setProperties] = useState<ComponentNodeProperties>({});\n const isMounted = useIsMounted();\n\n useEffect(() => {\n if (node && isMounted.current) {\n setProperties(node.attributes.properties);\n }\n }, [node, id, isMounted]);\n\n useEffect(() => {\n if (components) {\n const unsubscribe = components.events.subscribe(\n 'components:properties-changed',\n (event, data) => {\n if (node === data.node && isMounted.current) {\n setProperties(data.node.attributes.properties);\n }\n }\n );\n\n return () => {\n unsubscribe();\n };\n }\n }, [components, isMounted, id, node]);\n\n return properties;\n};\n","import { Theme, ThemeProvider } from '@emotion/react';\nimport { asDescriptor, ComponentDescriptor, ComponentNode, Size } from '@telia-ace/widget-core';\nimport {\n ComponentNodeContext,\n ComponentPropertyContext,\n filterCssProps,\n useColumns,\n useComponentPlatform,\n useContainer,\n useContext,\n useLayout,\n} from '@telia-ace/widget-ui';\nimport React, { forwardRef, useEffect, useState } from 'react';\nimport ResolvableComponent from './resolvable-component';\nimport { StyledAnimatedView, StyledView } from './styles';\nimport useComponentNodeProperties from './use-component-node-properties';\n\ntype Props = {\n className?: string;\n id: string;\n branch: string;\n node?: ComponentNode;\n ariaLabel?: string;\n tabIndex?: number;\n context?: { [key: string]: any };\n};\n\nconst isVisible = (size: Size, node?: ComponentNode) => {\n if (node) {\n return true;\n }\n if (typeof size === 'string') {\n return size === 'full';\n }\n return size > 0;\n};\n\nconst Component = forwardRef<HTMLElement, Props>(\n (\n { className = '', id, branch, node, ariaLabel, tabIndex, context: extraContext, ...other },\n ref\n ) => {\n const components = useComponentPlatform();\n const container = useContainer();\n const [descriptor, setDescriptor] = useState<ComponentDescriptor>();\n\n const columns = useColumns();\n const context = useContext(id);\n const properties = useComponentNodeProperties(id);\n const { size = 'none', indent = 0 } = useLayout(id);\n const visible = isVisible(size, node);\n\n useEffect(() => {\n if (components) {\n if (id && !node) {\n const componentNode = components.nodes.get(id);\n if (componentNode) {\n setDescriptor(asDescriptor(componentNode, branch));\n\n if (visible) {\n const unmount = componentNode.mount(container);\n return () => {\n unmount();\n };\n }\n }\n } else if (node) {\n setDescriptor(asDescriptor(node, branch));\n const unmount = node.mount(container);\n return () => {\n unmount();\n };\n }\n }\n }, [components, id, node, visible]);\n\n if (!descriptor || !visible) {\n return null;\n }\n\n const mergedContexts = { ...context, ...(extraContext || {}) };\n const {\n cardinal,\n fonts: contextFonts = {},\n accessibility = {},\n ...restContext\n } = mergedContexts;\n\n const fonts = {\n type: contextFonts.type,\n base: contextFonts.base || '16px',\n small: contextFonts.small || '0.8em',\n normal: contextFonts.normal || '1em',\n medium: contextFonts.medium || '1.2em',\n large: contextFonts.large || '1.6em',\n huge: contextFonts.huge || '2.5em',\n };\n\n const theme: Theme = {\n ...restContext,\n fonts,\n accessibility: {\n ...accessibility,\n },\n };\n\n if (typeof cardinal === 'number') {\n theme.sizes = {\n cardinal,\n small: `${cardinal}px`,\n normal: `${cardinal * 3}px`,\n medium: `${cardinal * 5}px`,\n large: `${cardinal * 8}px`,\n };\n }\n\n return (\n <ThemeProvider theme={theme}>\n <ComponentNodeContext.Provider value={descriptor}>\n <ComponentPropertyContext.Provider value={properties}>\n {(() => {\n const props = {\n 'data-width':\n size === 'full' ? columns : Math.min(size as number, columns),\n 'data-indent': indent,\n 'data-name': descriptor.name,\n 'data-node-id': descriptor.id,\n 'data-component-type': descriptor.type,\n 'aria-label': ariaLabel,\n tabIndex: tabIndex,\n id: descriptor.id,\n role: properties && properties.role,\n ...other,\n };\n switch (descriptor.type) {\n case 'view': {\n return typeof properties.animation === 'string' &&\n properties.animation !== 'none' ? (\n <StyledAnimatedView {...props} className={className} />\n ) : (\n <StyledView {...props} className={className} />\n );\n }\n default: {\n const cssProps = filterCssProps(properties);\n\n return (\n <ResolvableComponent\n ref={ref}\n {...props}\n {...cssProps}\n className={className}\n />\n );\n }\n }\n })()}\n </ComponentPropertyContext.Provider>\n </ComponentNodeContext.Provider>\n </ThemeProvider>\n );\n }\n);\n\nexport default Component;\n","import { ComponentNode, ComponentPlatform } from '@telia-ace/widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport React, { useEffect, useState } from 'react';\nimport Component from './_component';\n\ntype Props = {\n builder: (components: ComponentPlatform) => Promise<ComponentNode>;\n};\nconst DetachedComponent: React.FC<Props> = ({ builder }) => {\n const container = useContainer();\n const [node, setNode] = useState<ComponentNode | null>(null);\n\n useEffect(() => {\n container.getAsync('components').then((components: ComponentPlatform) => {\n return builder(components).then((createdNode) => {\n setNode(createdNode);\n });\n });\n }, []);\n\n useEffect(() => {\n return () => {\n if (node) {\n container.getAsync('components').then((components: ComponentPlatform) => {\n components.nodes.detached = components.nodes.detached.filter(\n (n) => n.id !== node.id\n );\n });\n }\n };\n }, [node]);\n\n if (!node) {\n return null;\n }\n\n return <Component id={node.id} node={node} branch=\"default\" />;\n};\n\nexport default DetachedComponent;\n","import { useTheme } from '@emotion/react';\nimport { ComponentPlatform } from '@telia-ace/widget-core';\nimport { useContainer } from '@telia-ace/widget-ui';\nimport React from 'react';\n\nconst DetachedComponent = React.lazy(() => import('./detached-component'));\n\ntype Props = {\n showSearch?: boolean;\n};\nconst NotFound: React.FC<Props> = ({ showSearch = false }) => {\n const themeContext = useTheme();\n const container = useContainer();\n\n return (\n <React.Suspense fallback={null}>\n <DetachedComponent\n builder={(components: ComponentPlatform) => {\n return container.get('settings').then((settings: any) => {\n const { properties, context } = Object.keys(settings.components).reduce<{\n properties: any;\n context: any;\n }>(\n (acc, key) => {\n if (settings.components[key].type === 'not-found') {\n acc.properties = settings.components[key].properties;\n acc.context = settings.components[key].context;\n }\n\n return acc;\n },\n { properties: {}, context: {} }\n );\n\n properties.showSearch = showSearch;\n const node = components.createNode('area', { detached: true });\n node.name = 'not-found-area';\n node.writeLayout({\n size: 'full',\n });\n\n if (showSearch) {\n const searchComponentProps = Object.keys(settings.components).reduce(\n (acc, key) => {\n if (settings.components[key].type === 'search') {\n return settings.components[key].properties;\n }\n\n return acc;\n },\n {}\n );\n const searchNode = components.createNode('search', { detached: true });\n searchNode.writeLayout({ size: 'full' });\n searchNode.writeProperties({\n 'css-margin-bottom': themeContext?.sizes?.normal || '15px',\n ...searchComponentProps,\n });\n node.appendChild(searchNode);\n }\n\n const notFoundNode = components.createNode('not-found', { detached: true });\n notFoundNode.writeLayout({ size: 'full' });\n notFoundNode.writeProperties(properties);\n notFoundNode.writeContext(context);\n node.appendChild(notFoundNode);\n\n return node;\n });\n }}\n />\n </React.Suspense>\n );\n};\n\nexport default NotFound;\n","export const componentTagFromType = (type: string) => {\n const componentTagPrefix = 'w';\n return `${componentTagPrefix}-${type}`;\n};\n","import { asDescriptor, ComponentPlatform, ComponentResolver } from '@telia-ace/widget-core';\nimport { componentTagFromType } from './component-tag-from-type';\n\nexport const resolveComponent = async (\n nodeId: string,\n resolver: ComponentResolver,\n platform: ComponentPlatform\n) => {\n const node = platform.nodes.get(nodeId);\n\n if (!resolver) {\n console.warn('Could not find resolver. Make sure it is registered on the container.');\n return;\n }\n\n if (!node) {\n console.warn(`Unable to find node with id: ${nodeId}`);\n return;\n }\n\n const descriptor = asDescriptor(node);\n if (!descriptor?.type) {\n console.warn(`Could not get descriptor for: ${node.name}`);\n return;\n }\n\n const componentTag = componentTagFromType(descriptor.type);\n\n // if its already resolved\n if (customElements.get(componentTag)) {\n return;\n }\n\n const create = resolver.getComponent(descriptor.type);\n if (!create) {\n console.warn('Component is missing or using incorrect import.');\n return;\n }\n\n const result = await create();\n\n if (!customElements.get(componentTag)) {\n try {\n customElements.define(componentTag, result.default);\n } catch (error) {\n console.log('error', error);\n }\n }\n\n return customElements.whenDefined(componentTag).then(() => {\n return {\n nodeId: nodeId,\n tag: componentTag,\n };\n });\n\n // return {\n // nodeId: nodeId,\n // tag: componentTag,\n // };\n};\n","// tslint:disable max-line-length\nexport const renderSymbol = (symbol?: { type: string; content: string }) => {\n if (symbol) {\n const { type, content } = symbol;\n switch (type) {\n case 'FontAwesome':\n return `<i class=\"humany-icon fa fa-${content}\"></i>`;\n case 'Uri':\n return `<i class=\"humany-icon humany-custom-icon\" style=\"background: url(${content}) no-repeat center center;background-size: contain;\"></i>`;\n default:\n return '';\n }\n }\n};\n\nconst triggerTabHandler = (triggerDOMElement: HTMLElement) => {\n const toggleTabbing = (element: HTMLElement, tabbing: boolean) => {\n if (!element) {\n return;\n }\n\n if (tabbing) {\n element.classList.add('humany-tabbing');\n } else {\n element.classList.remove('humany-tabbing');\n }\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n toggleTabbing(triggerDOMElement, true);\n } else if (\n !(\n e.key === 'Enter' &&\n document.activeElement &&\n document.activeElement.classList.contains('humany-trigger')\n )\n ) {\n toggleTabbing(triggerDOMElement, false);\n }\n };\n\n const handleClick = (e: MouseEvent) => {\n if (\n document.activeElement &&\n document.activeElement.classList.contains('humany-trigger') &&\n document.activeElement.classList.contains('humany-tabbing')\n ) {\n return;\n }\n toggleTabbing(triggerDOMElement, false);\n };\n\n document.addEventListener('keydown', handleKeydown);\n document.addEventListener('click', handleClick);\n\n return () => {\n document.removeEventListener('keydown', handleKeydown);\n document.removeEventListener('click', handleClick);\n };\n};\n\nexport type TriggerElementOptions = {\n symbol?: { type: string; content: string };\n widgetName: string;\n label?: string;\n ariaLabel?: string;\n tooltip?: string;\n};\n\nexport function createTriggerElement(element: HTMLElement, options: TriggerElementOptions) {\n const { symbol, widgetName, label = '', ariaLabel = '', tooltip = '' } = options;\n\n element.classList.add('humany-trigger');\n element.classList.add(`humany_${widgetName}`);\n\n if (label.length) {\n element.classList.add('humany-has-text');\n }\n\n if (ariaLabel.length && !element.getAttribute('aria-label')) {\n element.setAttribute('aria-label', ariaLabel);\n }\n\n if (ariaLabel.length && !element.getAttribute('tabindex')) {\n element.setAttribute('tabindex', '0');\n }\n\n if (tooltip.length && !element.getAttribute('title')) {\n element.setAttribute('title', tooltip);\n }\n\n const symbolHtml = renderSymbol(symbol) || '';\n element.innerHTML = `${symbolHtml}\n <span class=\"humany-close\">\n <svg width=\"18\" height=\"9\" viewBox=\"0 0 18 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\" fill=\"white\"/>\n </svg>\n </span>\n <span class=\"humany-loader\">\n <svg viewBox=\"25 25 50 50\">\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\" />\n </svg>\n </span>\n ${label.length ? `<span>${label}</span>` : ''}`;\n\n setTimeout(() => element && (element as HTMLElement).classList.add('humany-rendered'));\n\n return triggerTabHandler(element);\n}\n\nexport function setInactive(elements: HTMLElement | HTMLElement[], title?: string) {\n if (elements instanceof HTMLElement) {\n if (title) {\n elements.setAttribute('title', title);\n }\n elements.classList.remove('humany-active');\n elements.classList.remove('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n if (title) {\n e.setAttribute('title', title);\n }\n e.classList.remove('humany-active');\n e.classList.remove('humany-loading');\n });\n }\n}\nexport function setLoading(elements: HTMLElement | HTMLElement[]) {\n if (elements instanceof HTMLElement) {\n elements.classList.remove('humany-active');\n elements.classList.add('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n e.classList.remove('humany-active');\n e.classList.add('humany-loading');\n });\n }\n}\nexport function setActive(elements: HTMLElement | HTMLElement[], title?: string) {\n if (elements instanceof HTMLElement) {\n if (title) {\n elements.setAttribute('title', title);\n }\n elements.classList.add('humany-active');\n elements.classList.remove('humany-loading');\n } else if (elements instanceof Array) {\n elements.forEach((e) => {\n if (title) {\n e.setAttribute('title', title);\n }\n e.classList.add('humany-active');\n e.classList.remove('humany-loading');\n });\n }\n}\n","import { ViewOutletOptions } from './view-outlet';\n\nenum ProvidedElements {\n None = 'none',\n WidgetDOM = 'widgetDOM',\n TriggerDOM = 'triggerDOM',\n Both = 'both',\n}\n\nexport enum TriggerType {\n Inline = 'inline',\n Link = 'link',\n Badge = 'badge',\n Unsupported = 'unsupported',\n}\n\nexport const determineProvidedElements = (\n widgetDOMElement?: HTMLElement,\n triggerDOMElement?: HTMLElement\n): ProvidedElements => {\n if (widgetDOMElement && triggerDOMElement) {\n return ProvidedElements.Both;\n }\n if (widgetDOMElement) {\n return ProvidedElements.WidgetDOM;\n }\n if (triggerDOMElement) {\n return ProvidedElements.TriggerDOM;\n }\n return ProvidedElements.None;\n};\n\nexport const determineTriggerType = (triggerDefinition?: any) => {\n if (!triggerDefinition) {\n return TriggerType.Inline;\n }\n if (typeof triggerDefinition === 'boolean' && triggerDefinition) {\n return TriggerType.Link;\n }\n if (typeof triggerDefinition === 'object' && !Array.isArray(triggerDefinition)) {\n return TriggerType.Badge;\n }\n return TriggerType.Unsupported;\n};\n\ntype PrepareDOMElementsOutput = ViewOutletOptions & {\n callback?: () => void;\n};\n\nexport const prepareDOMElements = (\n name: string,\n providedWidgetElement?: HTMLElement,\n providedTriggerElement?: HTMLElement,\n triggerDefinition?: any,\n waitWithReplace: boolean = false\n): PrepareDOMElementsOutput => {\n const providedElements = determineProvidedElements(\n providedWidgetElement,\n providedTriggerElement\n );\n const triggerType = determineTriggerType(triggerDefinition);\n\n const cachedOriginals = {\n widgetDOMElement: providedWidgetElement ? providedWidgetElement.cloneNode(true) : undefined,\n triggerDOMElement: providedTriggerElement\n ? providedTriggerElement.cloneNode(true)\n : undefined,\n };\n\n const output: PrepareDOMElementsOutput = {\n triggerType,\n cachedOriginals,\n widgetDOMElement: document.createElement('div'),\n };\n\n switch (providedElements) {\n case ProvidedElements.Both: {\n output.widgetDOMElement = providedWidgetElement || document.createElement('div');\n if (triggerType !== TriggerType.Inline) {\n output.triggerDOMElement = providedTriggerElement;\n }\n break;\n }\n case ProvidedElements.WidgetDOM: {\n output.widgetDOMElement = providedWidgetElement || document.createElement('div');\n if (triggerType !== TriggerType.Inline) {\n const triggerElement = document.body.appendChild(document.createElement('a'));\n if (triggerType === TriggerType.Link) {\n triggerElement.innerText = name;\n }\n output.triggerDOMElement = triggerElement;\n }\n break;\n }\n case ProvidedElements.TriggerDOM: {\n const widgetElement = document.createElement('div');\n output.widgetDOMElement = widgetElement;\n if (triggerType === TriggerType.Inline) {\n // replace with widgetDOMElement in the DOM\n widgetElement.id = providedTriggerElement?.id || '';\n if (waitWithReplace) {\n widgetElement.style.display = 'none';\n providedTriggerElement?.parentNode?.appendChild(widgetElement);\n\n output.callback = () => {\n providedTriggerElement?.parentNode?.replaceChild(\n widgetElement,\n providedTriggerElement\n );\n widgetElement.style.display =\n providedTriggerElement?.style.display || 'block';\n };\n } else {\n providedTriggerElement?.parentNode?.replaceChild(\n widgetElement,\n providedTriggerElement\n );\n }\n output.cachedOriginals.widgetDOMElement = providedTriggerElement;\n output.cachedOriginals.triggerDOMElement = undefined;\n } else {\n output.widgetDOMElement = document.body.appendChild(widgetElement);\n output.triggerDOMElement = providedTriggerElement;\n }\n break;\n }\n case ProvidedElements.None: {\n const widgetElement = document.body.appendChild(document.createElement('div'));\n output.widgetDOMElement = widgetElement;\n if (triggerType !== TriggerType.Inline) {\n const triggerElement = document.body.appendChild(document.createElement('a'));\n if (triggerType === TriggerType.Link) {\n triggerElement.innerText = name;\n }\n output.triggerDOMElement = triggerElement;\n }\n break;\n }\n }\n\n return output;\n};\n","import { readStorage, StorageMedium } from '@telia-ace/widget-services';\nimport { Symbol } from '@telia-ace/widget-ui';\nimport { notifyDataLoaded } from '@telia-ace/widget-utilities';\nimport { Container, Widget } from '@webprovisions/platform';\nimport { createTriggerElement, setActive, setLoading } from './html-element-handlers';\nimport { TriggerType } from './prepare-dom';\n\nconst MODALS_STORAGE_KEY = 'modals';\n\nexport type BadgeOptions = {\n symbol?: Symbol;\n label?: string;\n ariaLabel?: string;\n openTooltip?: string;\n closedTooltip?: string;\n};\n\nexport type ViewOutletOptions = {\n widgetDOMElement: HTMLElement;\n triggerDOMElement?: HTMLElement;\n triggerOptions?: BadgeOptions | boolean;\n triggerType: TriggerType;\n cachedOriginals: {\n widgetDOMElement?: Node;\n triggerDOMElement?: Node;\n };\n};\n\ntype Modals = {\n name: string;\n ref?: HTMLElement;\n selector?: string;\n};\n\nexport class ViewOutlet {\n container: Container;\n private unsubscribe: (() => void)[] = [];\n\n constructor(container: Container, public options: ViewOutletOptions) {\n this.container = container.createChild(this);\n this.container.register('widgetDOMElement', this.options.widgetDOMElement);\n this.container.register('triggerDOMElement', this.options.triggerDOMElement);\n\n const widget: Widget = this.container.get('$widget');\n this.options.widgetDOMElement.classList.add('humany-widget');\n this.options.widgetDOMElement.classList.add(`humany_${widget.name}`);\n\n const widgetDOMElements = container.get('widgetDOMElements') || [];\n container.register('widgetDOMElements', [\n ...widgetDOMElements,\n this.options.widgetDOMElement,\n ]);\n }\n\n /**\n * Renders the view outlet to the DOM.\n */\n render() {\n const { widgetDOMElement, triggerDOMElement } = this.options;\n\n const widget: Widget = this.container.get('$widget');\n\n if (widgetDOMElement.getAttribute('data-rendered') === 'true') {\n return Promise.resolve();\n }\n\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\n setLoading(triggerDOMElement);\n }\n\n return import('./render')\n .then((module) => module.default(widget.name, this.container, widgetDOMElement))\n .then(() => {\n widgetDOMElement.setAttribute('data-rendered', 'true');\n\n if (triggerDOMElement && this.options.triggerType === TriggerType.Badge) {\n const tooltip = (this.options.triggerOptions as BadgeOptions).openTooltip;\n setActive(triggerDOMElement, tooltip);\n }\n notifyDataLoaded(this.container, widgetDOMElement);\n\n const widgets = this.container.get('$environment').widgets.all();\n\n readStorage<Modals[]>(\n this.container,\n MODALS_STORAGE_KEY,\n StorageMedium.Session\n ).then((modals) => {\n if (modals) {\n modals.forEach((modal) => {\n if (\n widgets.find(\n (w: Widget) => w.name === modal.name && w.state === 'activated'\n )\n ) {\n widget.events.dispatch('widget:modal-opened', modal);\n }\n });\n }\n });\n });\n }\n\n renderBadge(options: BadgeOptions) {\n const { triggerDOMElement } = this.options;\n\n if (!triggerDOMElement) {\n return;\n }\n\n if (!triggerDOMElement.getAttribute('role')) {\n triggerDOMElement.setAttribute('role', 'button');\n }\n\n const { name }: Widget = this.container.get('$widget');\n\n const { label, symbol, ariaLabel, closedTooltip, openTooltip } = options;\n\n const triggerOptions = { closedTooltip, openTooltip };\n this.options.triggerOptions = triggerOptions;\n\n const removeTriggerListeners = createTriggerElement(triggerDOMElement, {\n label,\n symbol,\n ariaLabel,\n widgetName: name,\n tooltip: closedTooltip,\n });\n this.unsubscribe.push(removeTriggerListeners);\n }\n\n dispose() {\n return import('./unmount').then((module) => {\n const { triggerDOMElement, widgetDOMElement } = this.options;\n module.default(widgetDOMElement);\n\n if (this.options.cachedOriginals.widgetDOMElement) {\n if (widgetDOMElement) {\n widgetDOMElement.parentNode?.replaceChild(\n this.options.cachedOriginals.widgetDOMElement,\n widgetDOMElement\n );\n }\n }\n if (this.options.cachedOriginals.triggerDOMElement) {\n if (triggerDOMElement) {\n triggerDOMElement.parentNode?.replaceChild(\n this.options.cachedOriginals.triggerDOMElement,\n triggerDOMElement\n );\n }\n }\n\n this.unsubscribe.forEach((unsubscribe) => {\n unsubscribe();\n });\n\n widgetDOMElement.parentNode?.removeChild(widgetDOMElement);\n triggerDOMElement?.parentNode?.removeChild(triggerDOMElement);\n });\n }\n}\n","import {\n ChangesetOptions,\n ChangesetProvider,\n ComponentNodeAttributes,\n ComponentNodeSettings,\n ComponentPlatform,\n ComponentQuery,\n ComponentQueryRule,\n createComponentModel,\n WidgetSettings,\n} from '@telia-ace/widget-core';\nimport {\n createStorageWriter,\n readStorage,\n StorageCategory,\n StorageMedium,\n StorageWriter,\n} from '@telia-ace/widget-services';\nimport { lock } from '@telia-ace/widget-utilities';\nimport { Container, Widget, WidgetState } from '@webprovisions/platform';\n\nconst STORAGE_KEY = 'changesets';\n\ntype ChangesetItem = {\n rules: ComponentQueryRule[];\n attributes: Partial<ComponentNodeAttributes>;\n options: ChangesetOptions;\n};\n\ntype ChangesetItemBag = {\n items?: { [key: string]: ChangesetItem };\n keys?: string[];\n};\n\nconst convertSettingsToAttributes = (\n settings: Partial<ComponentNodeSettings>\n): Partial<ComponentNodeAttributes> => {\n const attributes: Partial<ComponentNodeAttributes> = { tags: settings.tags };\n if (settings.context && typeof settings.context !== 'function') {\n attributes.context = settings.context;\n }\n if (settings.properties && typeof settings.properties !== 'function') {\n attributes.properties = settings.properties;\n }\n if (settings.layout && typeof settings.layout !== 'function') {\n attributes.layout = settings.layout;\n }\n\n return attributes;\n};\n\nexport class LocalStorageChangesetProvider implements ChangesetProvider {\n constructor(private container: Container, private storageWriter: StorageWriter) {}\n\n static create(container: Container): Promise<LocalStorageChangesetProvider> {\n return createStorageWriter(container, STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n }).then((storageWriter) => new LocalStorageChangesetProvider(container, storageWriter));\n }\n\n write(\n key: string,\n target: ComponentQuery,\n attributes: Partial<ComponentNodeSettings>,\n options: ChangesetOptions\n ): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n const existingIndex = keys.indexOf(key);\n if (existingIndex > -1) {\n keys.splice(existingIndex, 1);\n }\n keys.push(key);\n items[key] = {\n options,\n attributes: convertSettingsToAttributes(attributes),\n rules: target.rules,\n };\n return this.storageWriter({ keys, items });\n });\n });\n }\n\n remove(key: string): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n const indexToRemove = keys.indexOf(key);\n if (indexToRemove > -1) {\n keys.splice(indexToRemove, 1);\n delete items[key];\n return this.storageWriter(bag);\n }\n });\n });\n }\n\n load(platform: ComponentPlatform): Promise<any> {\n return lock(this)(() => {\n return readStorage<ChangesetItemBag>(\n this.container,\n STORAGE_KEY,\n StorageMedium.Local\n ).then((bag = {}) => {\n const { keys = [], items = {} } = bag;\n keys.forEach((key) => {\n const item = items[key];\n if (item) {\n const { rules, attributes, options } = item;\n platform.write({\n attributes,\n options,\n target: new ComponentQuery(platform, rules),\n });\n }\n });\n });\n });\n }\n}\n\nexport const createPlatform = (widget: Widget): Promise<ComponentPlatform> => {\n const { container } = widget;\n return LocalStorageChangesetProvider.create(container).then((localStorage) => {\n const settings: WidgetSettings = container.get('$settings');\n const providers = { localStorage };\n const platform = new ComponentPlatform(widget, providers);\n const destructComponentModel = createComponentModel(platform, settings);\n\n widget.events.subscribe('widget:state-change', (event, data: { state: WidgetState }) => {\n if (data.state === WidgetState.Deactivating) {\n destructComponentModel();\n }\n });\n\n return platform;\n });\n};\n","import { WidgetSettings } from '@telia-ace/widget-core';\nimport { Container } from '@webprovisions/platform';\nimport { createPlatform } from './component-platform-factory';\n\nexport const createRoutingService = (container: Container) => {\n return import('@telia-ace/widget-routing').then(({ RoutingService, HistoryMode }) => {\n return container.get('settings').then((settings: WidgetSettings) => {\n const {\n routing: { initialPath = '/', mode = HistoryMode.scopedHash, basePath },\n views,\n } = settings;\n\n const routingService = new RoutingService(container, {\n initialPath,\n mode,\n routes: Object.keys(views).map((name) => ({\n name,\n path: views[name].path,\n })),\n basePath,\n });\n return routingService;\n });\n });\n};\n\nexport const createStorageService = (container: Container) => {\n return import('@telia-ace/widget-services').then(({ StorageProvider }) => {\n return new StorageProvider();\n });\n};\n\nexport const createActionResolver = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ActionResolver }) => {\n return new ActionResolver(container);\n });\n};\n\nexport const createComponentResolver = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ComponentResolver }) => {\n return new ComponentResolver(container);\n });\n};\n\nexport const createComponentPlatform = (container: Container) => {\n return import('@telia-ace/widget-core').then(({ ComponentPlatform, createComponentModel }) => {\n return createPlatform(container.get('$widget'));\n });\n};\n","import {\n ActionResolver,\n ComponentPlatform,\n WidgetRenderState,\n WidgetSettings,\n} from '@telia-ace/widget-core';\nimport { onWidgetUrl, RouteData, RoutingService } from '@telia-ace/widget-routing';\nimport {\n createStorageWriter,\n readStorage,\n StorageCategory,\n StorageMedium,\n StorageScope,\n} from '@telia-ace/widget-services';\nimport { removeNullAndUndefinedValues, uuid } from '@telia-ace/widget-utilities';\nimport { BootstrappingActivationData, supportBootstrapping } from '@webprovisions/bootstrapping';\nimport { Container, EventSubscriptionCancellation, WidgetType } from '@webprovisions/platform';\nimport { BadgeOptions, ViewOutlet, ViewOutletOptions } from '././ui/view-outlet';\nimport {\n createActionResolver,\n createComponentPlatform,\n createComponentResolver,\n createRoutingService,\n createStorageService,\n} from './services';\nimport { setActive, setInactive } from './ui/html-element-handlers';\nimport { determineTriggerType, prepareDOMElements, TriggerType } from './ui/prepare-dom';\n\nconst SETTINGS_STORAGE_KEY = '$settings';\nconst OPEN_STORAGE_KEY = 'open';\nconst STICKY_WIDGET_STORAGE_KEY = 'activeStickyWidget';\n\nexport enum InitialRenderState {\n Open = 'open',\n Closed = 'closed',\n Hidden = 'hidden',\n Storage = 'storage',\n}\n\nexport type RenderData = {\n widgetDOMElement?: HTMLElement;\n triggerDOMElement?: HTMLElement;\n key?: string;\n open?: boolean;\n withRenderState?: InitialRenderState;\n};\n\nexport type AttachData = {\n widgetDOMElement?: HTMLElement;\n triggerDOMElement?: HTMLElement;\n key?: string;\n withRenderState?: InitialRenderState;\n};\n\nexport default class Widget extends WidgetType {\n outlets = new Map<string, ViewOutlet>();\n activated: Promise<void> | undefined = undefined;\n subs: EventSubscriptionCancellation[] = [];\n\n constructor(container: Container) {\n super(container);\n\n this.container.registerAsync('storage', () => createStorageService(this.container));\n\n this.container.registerFactory('settings', () => {\n return readStorage<Partial<WidgetSettings>>(\n this.container,\n SETTINGS_STORAGE_KEY,\n StorageMedium.Local\n ).then((settings = {}) => {\n return {\n ...this.container.get('$settings'),\n ...settings,\n };\n });\n });\n\n supportBootstrapping(this as any, 'load', this.handleBootstrapping);\n\n this.container.registerAsync('componentResolver', () =>\n createComponentResolver(this.container).then(() => {\n this.events.dispatch('widget:component-resolver-registered', {});\n })\n );\n this.container.registerAsync('router', () => createRoutingService(this.container));\n this.container.registerAsync('actionResolver', () => createActionResolver(this.container));\n this.container.register('matchMedia', window.matchMedia);\n this.container.registerAsync('components', () => createComponentPlatform(this.container));\n }\n\n handleBootstrapping = (activationData: BootstrappingActivationData) => {\n const options = {\n triggerDOMElement: activationData.sourceDOMElement,\n withRenderState: InitialRenderState.Storage,\n };\n\n this.container.get('settings').then((settings: any) => {\n const { activate } = settings;\n const shouldActivate =\n typeof activate === 'undefined' || activate === null || activate === true;\n\n if (shouldActivate) {\n this.activated = (this.activated || this.widget.activate()).then(() =>\n this.attach(options)\n );\n }\n });\n };\n\n initialize() {\n const promises = this.container.getManyAsync(\n 'actionResolver',\n 'router',\n 'components'\n ) as Promise<{\n actionResolver: ActionResolver;\n router: RoutingService;\n components: ComponentPlatform;\n }>;\n\n return Promise.all([promises, this.container.get('settings')]).then(\n ([{ actionResolver, router, components }, settings]) => {\n actionResolver.subscribe(this.widget.name, (origin, action, value) =>\n this.onAction(action, value)\n );\n\n const switchViewNodes = (routeName: string) => {\n components.nodes.query({ type: 'view' }).forEach((viewNode) => {\n components.setSwitch(viewNode, routeName);\n });\n };\n\n const initialRoute = router.getInitialRoute()?.name || 'index';\n switchViewNodes(initialRoute);\n\n this.events.subscribe('widget:data-loaded', (e, { element }) => {\n if (this.widget.container.get('seoConfiguration')) {\n this.events.dispatch('widget:preloaded-replaced', {\n element,\n });\n }\n });\n\n this.events.subscribe(\n 'router:change',\n (e, { previous = { routeData: {} }, next = { routeData: {} } }) => {\n const { routeData: prevData }: { routeData: RouteData } = previous;\n const { routeData: nextData }: { routeData: RouteData } = next;\n\n const notFoundView = Object.keys(settings.views).reduce((acc, key) => {\n const view = settings.views[key];\n if (typeof view.path === 'undefined') {\n return key;\n }\n return acc;\n }, '');\n\n // route not found\n if (!nextData.name && notFoundView) {\n switchViewNodes(notFoundView);\n } else {\n switchViewNodes(nextData.name);\n }\n\n removeNullAndUndefinedValues(prevData && prevData.params);\n removeNullAndUndefinedValues(nextData && nextData.params);\n\n this.container\n .getAsync('actionResolver')\n .then((actionResolver: ActionResolver) => {\n actionResolver.action(this.widget.name, 'routeChange', {\n next: nextData,\n previous: prevData,\n });\n });\n }\n );\n\n return router.initialize();\n }\n );\n }\n\n attach(attachData: AttachData = {}) {\n return this.container.get('settings').then(({ trigger }: WidgetSettings) => {\n const {\n widgetDOMElement,\n key = uuid(),\n triggerDOMElement,\n withRenderState,\n } = attachData;\n\n const triggerType = determineTriggerType(trigger);\n\n // This could probably be defined already when bootstrapping occurs,\n // Webprovisions knows when a widget is prerendered,\n // see \"queryPrerenderedTargets in @webprovisions/bootstrapping\"\n const waitWithReplace =\n triggerType === TriggerType.Inline &&\n (triggerDOMElement?.childElementCount || 0) > 0;\n\n const outletOptions = prepareDOMElements(\n this.widget.name,\n widgetDOMElement,\n triggerDOMElement,\n trigger,\n waitWithReplace\n );\n\n if (this.outlets.size < 1 && !withRenderState) {\n this.setRenderState('unset');\n }\n\n const swap = () => {\n const isReady = () =>\n widgetDOMElement.querySelectorAll('[data-loading=true]').length === 0;\n const [widgetDOMElement] = this.widget.container.get('widgetDOMElements');\n\n const watcher = (mutations: MutationRecord[], observer: MutationObserver) => {\n if (isReady()) {\n if (outletOptions.callback) {\n outletOptions.callback();\n }\n observer.disconnect();\n }\n };\n const options = {\n attributes: true,\n subtree: true,\n childList: true,\n };\n\n if (isReady()) {\n outletOptions.callback && outletOptions.callback();\n }\n const observer = new MutationObserver(watcher);\n\n observer.observe(widgetDOMElement, options);\n };\n\n if (waitWithReplace) {\n this.widget.container.getAsync('dataClient').then(({ events }: any) => {\n events.subscribe('data-client:fetched', (event: any, data: any) => {\n if (data.unresolvedQueries === 0) {\n swap();\n }\n });\n });\n }\n\n const outlet = this.getOrCreateViewOutlet(key, outletOptions);\n this.outlets.set(key, outlet);\n this.widget.events.dispatch('widget:attached', {}, { bubbles: true });\n\n if (outletOptions.triggerType === TriggerType.Badge && trigger) {\n outletOptions.triggerDOMElement?.setAttribute('aria-expanded', 'false');\n outlet?.renderBadge(trigger);\n }\n\n if (outletOptions.triggerType !== TriggerType.Inline) {\n outletOptions.triggerDOMElement?.addEventListener('click', (event: any) => {\n event.preventDefault();\n this.container\n .get('settings')\n .then(({ trigger: updatedTrigger }: WidgetSettings) => {\n outlet\n .render()\n .then(() => this.renderState())\n .then((renderState) => {\n if (\n updatedTrigger &&\n updatedTrigger.action &&\n updatedTrigger.action === 'hide'\n ) {\n return renderState === WidgetRenderState.open\n ? this.hide()\n : this.open();\n }\n return renderState === WidgetRenderState.open\n ? this.close()\n : this.open();\n });\n });\n });\n }\n\n if (this.outlets.size > 1) {\n return this.renderState().then((state: WidgetRenderState) => {\n // new outlets should have the same state as existing ones\n this.triggerStateIfApplicable(state);\n });\n }\n\n if (withRenderState) {\n if (withRenderState === InitialRenderState.Storage) {\n return this.renderState().then((state: WidgetRenderState) => {\n if (outletOptions.triggerType === TriggerType.Inline) {\n this.triggerStateIfApplicable('open');\n return;\n }\n this.triggerStateIfApplicable(state);\n });\n }\n return this.triggerStateIfApplicable(withRenderState);\n }\n });\n }\n\n detach(key?: string) {\n if (key) {\n if (this.outlets.has(key)) {\n const outlet = this.outlets.get(key);\n outlet?.dispose();\n this.outlets.delete(key);\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`detach(): Could not find View Outlet with key ${key}`);\n }\n return;\n }\n this.outlets.forEach((outlet) => {\n outlet.dispose();\n });\n this.outlets.clear();\n }\n\n private triggerStateIfApplicable(input: string) {\n return this.container.getAsync('router').then((router) => {\n switch (input) {\n case 'closed':\n this.close();\n break;\n case 'open':\n this.open();\n break;\n case 'hidden':\n this.hide();\n router.start();\n break;\n default:\n return;\n }\n });\n }\n\n private getOrCreateViewOutlet(key: string, options: ViewOutletOptions): ViewOutlet {\n return (\n this.outlets.has(key) ? this.outlets.get(key) : new ViewOutlet(this.container, options)\n )!;\n }\n\n render(renderData: RenderData = {}) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('widget.render() is deprecated. Use widget.attach() instead.');\n }\n if (renderData.open) {\n const options: AttachData = {\n ...renderData,\n withRenderState: InitialRenderState.Open,\n };\n return this.attach(options);\n }\n return this.attach(renderData);\n }\n\n activate(data?: any) {\n if (data?.override) {\n this.setSettings(() => data.override);\n }\n // TODO: this is considered a hack, remove apiNotificationPriorityBy\n // when there is a better way to get notifications from backend\n if (data?.apiNotificationPriorityBy) {\n this.container.register('apiNotificationPriorityBy', data.apiNotificationPriorityBy);\n }\n }\n\n setSettings(\n fn: (settings: WidgetSettings) => Promise<Partial<WidgetSettings>>\n ): Promise<WidgetSettings> {\n return Promise.all([\n this.container.get('settings'),\n createStorageWriter(this.container, SETTINGS_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n }),\n ]).then(([settings, write]) => {\n return Promise.resolve(fn(settings)).then((override) => {\n return write(override).then(() => {\n const updated = { ...settings, ...override };\n this.widget.events.dispatch('widget:settings-updated', updated);\n return updated;\n });\n });\n });\n }\n\n clearSettings(): Promise<void> {\n return createStorageWriter(\n this.container,\n SETTINGS_STORAGE_KEY,\n StorageCategory.Necessary,\n { medium: StorageMedium.Local }\n )\n .then((write) => write())\n .then(() => this.container.get('settings'))\n .then((settings) => {\n this.widget.events.dispatch('widget:settings-updated', settings);\n });\n }\n\n action({ action, value }: { action: string; value?: any }) {\n return this.container.getAsync('actionResolver').then((actionResolver: ActionResolver) => {\n actionResolver.action(this.widget.name, action, value);\n });\n }\n\n renderState(): Promise<WidgetRenderState> {\n if (onWidgetUrl(this.container)) {\n return Promise.resolve(WidgetRenderState.open);\n }\n const readSessionOpen = () =>\n readStorage<WidgetRenderState>(\n this.container,\n OPEN_STORAGE_KEY,\n StorageMedium.Session\n ).then((value = WidgetRenderState.closed) => value);\n\n const readLocalOpen = () =>\n readStorage<WidgetRenderState>(\n this.container,\n OPEN_STORAGE_KEY,\n StorageMedium.Session\n ).then((value = WidgetRenderState.closed) => value);\n\n return this.container.getAsync('router').then((routing: RoutingService) => {\n if (routing.isSticky()) {\n return readLocalOpen().then((localOpen) => {\n return localOpen === WidgetRenderState.open ? localOpen : readSessionOpen();\n });\n }\n return readSessionOpen();\n });\n }\n\n hide(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'hide(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n this.outlets.forEach((outlet) => outlet.render());\n return this.action({ action: 'hide' }).then(() => {\n this.setTriggerState(false);\n });\n }\n\n open(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'open(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n this.outlets.forEach((outlet) => outlet.render());\n return this.action({ action: 'open' }).then(() => {\n this.widget.events.dispatch('tracking:widget-rendered', {});\n return this.onOpen();\n });\n }\n\n close(): Promise<void> {\n if (this.outlets.size < 1) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'close(): No-op as no view outlets are registered. Invoke the attach() command first.'\n );\n }\n return Promise.resolve();\n }\n return this.action({ action: 'close' }).then(() => this.onClose());\n }\n\n show(): Promise<void> {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n 'show(): Command is deprecated and will be removed in the future. Use open() instead.'\n );\n }\n return this.open();\n }\n\n private onAction(action: string, value: any) {\n switch (action) {\n case 'close':\n case 'open':\n case 'hide':\n const newState =\n action === 'open'\n ? WidgetRenderState.open\n : action === 'close'\n ? WidgetRenderState.closed\n : WidgetRenderState.hidden;\n\n return this.setRenderState(newState).then(() => {\n this.setTriggerState(newState === WidgetRenderState.open);\n if (newState !== WidgetRenderState.hidden) {\n newState === WidgetRenderState.open ? this.onOpen() : this.onClose();\n } else {\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'false')\n );\n }\n });\n }\n }\n\n private setRenderState(newState: string): Promise<void> {\n const { invoke, events } = this.container.get('$widget');\n return Promise.all([\n createStorageWriter(this.container, OPEN_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Session,\n }),\n createStorageWriter(this.container, OPEN_STORAGE_KEY, StorageCategory.Necessary, {\n medium: StorageMedium.Local,\n duration: { minutes: 5 },\n }),\n this.container.getAsync('router'),\n invoke('renderState'),\n ]).then(([writeSessionOpen, writeLocalOpen, routing, previousRenderState]) => {\n if (newState === 'unset' || !newState) {\n writeLocalOpen();\n writeSessionOpen();\n } else {\n if (routing.isSticky()) {\n writeLocalOpen(newState);\n }\n writeSessionOpen(newState);\n }\n events.dispatch('widget:render-state-changed', {\n previous: previousRenderState,\n next: newState,\n });\n });\n }\n\n private onOpen(): Promise<void> {\n return this.container.getAsync('router').then((router: RoutingService) => {\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'true')\n );\n return router.start();\n });\n }\n\n private onClose(): Promise<void> {\n const services = this.container.getManyAsync('router', 'components') as Promise<{\n router: RoutingService;\n components: ComponentPlatform;\n }>;\n\n const resetActivateProp = () => {\n return this.container.get('settings').then((widgetSettings: WidgetSettings) => {\n const { activate } = this.container.get('$settings');\n if (widgetSettings.activate !== activate) {\n return this.setSettings(() => Promise.resolve({ activate }));\n }\n return Promise.resolve();\n });\n };\n\n return resetActivateProp()\n .then(() => {\n return services;\n })\n .then(\n ({\n router,\n components,\n }: {\n router: RoutingService;\n components: ComponentPlatform;\n }) => {\n const visibleNodes = components.nodes.visible;\n this.outlets.forEach((outlet) =>\n outlet.options.triggerDOMElement?.setAttribute('aria-expanded', 'false')\n );\n\n if (\n visibleNodes.filter(\n (c) =>\n c.attributes.properties.animation &&\n c.attributes.properties.animation !== 'none'\n ).length\n ) {\n return new Promise<RoutingService>((resolve) => {\n setTimeout(() => {\n resolve(router);\n }, 200);\n });\n }\n\n return Promise.resolve(router);\n }\n )\n .then((router: RoutingService) => router.stop());\n }\n\n private setTriggerState(open: boolean) {\n this.outlets.forEach((outlet) => {\n const {\n options: { triggerDOMElement, triggerOptions },\n } = outlet;\n const { openTooltip, closedTooltip } = (triggerOptions as BadgeOptions) || {};\n if (triggerDOMElement) {\n open\n ? setActive(triggerDOMElement, openTooltip)\n : setInactive(triggerDOMElement, closedTooltip);\n }\n });\n }\n\n deactivate() {\n this.subs.forEach((s) => s());\n\n const promises: Promise<void>[] = [];\n this.outlets.forEach((outlet) => promises.push(outlet.dispose()));\n\n return readStorage<string>(\n this.container,\n STICKY_WIDGET_STORAGE_KEY,\n StorageMedium.Local\n ).then((value) => {\n /**\n * Remove stored sticky widget from implementation's localStorage if applicable\n */\n if (value === this.widget.name) {\n return createStorageWriter(\n this.container,\n STICKY_WIDGET_STORAGE_KEY,\n StorageCategory.Necessary,\n {\n medium: StorageMedium.Local,\n scope: StorageScope.Implementation,\n }\n )\n .then((write) => write())\n .then(() => Promise.all(promises));\n }\n return Promise.all(promises);\n });\n }\n}\n"],"names":["SlideDirection","determineSlideDirection","currentRouteName","nextRouteName","routeRanking","Switch","views","location","render","React","RouteSwitch","__spreadProps","__spreadValues","key","name","path","Route","Switch$1","StyledViewContainer","styled","StyledView","Grid","p","routeHierarchy","AnimatedView","_a","_b","className","other","__objRest","routeName","setRouteName","useState","transitionDirection","setTransitionDirection","nextRoute","useRouteData","router","useRouter","properties","useProperties","context","useContext","container","useContainer","node","useComponentNode","gap","columns","animation","scrollable","areaProperties","scrollableCss","elem","useScroll","renderView","transitionState","direction","animationStyles","getAnimation","childNode","appendClassNames","Component","transitionComposer","TransitionGroup","child","Transition","state","AnimatedView$1","View","View$1","styling","css","paddedBorderTabStyle","StyledAnimatedView","NonResolvedComponentWrapper","_c","ResolvableComponent","forwardRef","ref","children","ResolvedComponent","useComponent","type","id","useComponentDescriptor","StyledResolvableComponent","useMemo","filterCssPropsStyle","Typography","Suspense","ResolvableComponent$1","useComponentNodeProperties","components","useComponentPlatform","setProperties","isMounted","useIsMounted","useEffect","unsubscribe","event","data","isVisible","size","branch","ariaLabel","tabIndex","extraContext","descriptor","setDescriptor","useColumns","indent","useLayout","visible","componentNode","asDescriptor","unmount","cardinal","contextFonts","accessibility","restContext","fonts","theme","ThemeProvider","ComponentNodeContext","ComponentPropertyContext","props","cssProps","filterCssProps","Component$1","DetachedComponent","builder","setNode","createdNode","n","DetachedComponent$2","detachedComponent","NotFound","showSearch","themeContext","useTheme","settings","acc","searchComponentProps","searchNode","notFoundNode","NotFound$1","componentTagFromType","resolveComponent","nodeId","resolver","platform","__async","componentTag","create","result","error","renderSymbol","symbol","content","triggerTabHandler","triggerDOMElement","toggleTabbing","element","tabbing","handleKeydown","e","handleClick","createTriggerElement","options","widgetName","label","tooltip","symbolHtml","setInactive","elements","title","setLoading","setActive","TriggerType","determineProvidedElements","widgetDOMElement","determineTriggerType","triggerDefinition","prepareDOMElements","providedWidgetElement","providedTriggerElement","waitWithReplace","providedElements","triggerType","cachedOriginals","output","triggerElement","widgetElement","MODALS_STORAGE_KEY","ViewOutlet","widget","widgetDOMElements","module","notifyDataLoaded","widgets","readStorage","StorageMedium","modals","modal","w","closedTooltip","openTooltip","triggerOptions","removeTriggerListeners","_d","STORAGE_KEY","convertSettingsToAttributes","attributes","LocalStorageChangesetProvider","storageWriter","createStorageWriter","StorageCategory","target","lock","bag","keys","items","existingIndex","indexToRemove","item","rules","ComponentQuery","createPlatform","localStorage","providers","ComponentPlatform","destructComponentModel","createComponentModel","WidgetState","createRoutingService","RoutingService","HistoryMode","initialPath","mode","basePath","createStorageService","StorageProvider","createActionResolver","ActionResolver","createComponentResolver","ComponentResolver","createComponentPlatform","SETTINGS_STORAGE_KEY","OPEN_STORAGE_KEY","STICKY_WIDGET_STORAGE_KEY","Widget","WidgetType","activationData","activate","supportBootstrapping","promises","actionResolver","origin","action","value","switchViewNodes","viewNode","initialRoute","previous","next","prevData","nextData","notFoundView","removeNullAndUndefinedValues","attachData","trigger","uuid","withRenderState","outletOptions","swap","isReady","watcher","mutations","observer","events","outlet","updatedTrigger","renderState","WidgetRenderState","input","renderData","fn","write","override","updated","onWidgetUrl","readSessionOpen","readLocalOpen","routing","localOpen","newState","invoke","writeSessionOpen","writeLocalOpen","previousRenderState","services","widgetSettings","visibleNodes","c","resolve","open","s","StorageScope"],"mappings":"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"}
@@ -469,4 +469,4 @@ const qt = (n, t, e) => {
469
469
  export {
470
470
  qt as default
471
471
  };
472
- //# sourceMappingURL=render.6ad0b099.js.map
472
+ //# sourceMappingURL=render.deb2456b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.6ad0b099.js","sources":["../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../node_modules/.pnpm/lit-html@2.6.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-html@2.6.0/node_modules/lit-html/static.js","../src/utils/get-widget.ts","../src/controllers/widget-controller.ts","../src/mixins/provider.ts","../src/ui/widget-root.ts","../src/ui/render.ts"],"sourcesContent":["/**\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)}};function e(e){return(n,t)=>void 0!==t?((i,e,n)=>{e.constructor.createProperty(n,i)})(e,n,t):i(e,n)}export{e as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.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","/**\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$${(Math.random()+\"\").slice(9)}$`,n=\"?\"+o,l=`<${n}>`,h=document,r=(t=\"\")=>h.createComment(t),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,c=t=>u(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,a=/-->/g,f=/>/g,_=RegExp(\">|[ \\t\\n\\f\\r](?:([^\\\\s\\\"'>=/]+)([ \\t\\n\\f\\r]*=[ \\t\\n\\f\\r]*(?:[^ \\t\\n\\f\\r\\\"'`<>=]|(\\\"|')|))|$)\",\"g\"),m=/'/g,p=/\"/g,$=/^(?:script|style|textarea|title)$/i,g=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),y=g(1),w=g(2),x=Symbol.for(\"lit-noChange\"),b=Symbol.for(\"lit-nothing\"),T=new WeakMap,A=h.createTreeWalker(h,129,null,!1),E=(t,i)=>{const s=t.length-1,n=[];let h,r=2===i?\"<svg>\":\"\",d=v;for(let i=0;i<s;i++){const s=t[i];let e,u,c=-1,g=0;for(;g<s.length&&(d.lastIndex=g,u=d.exec(s),null!==u);)g=d.lastIndex,d===v?\"!--\"===u[1]?d=a:void 0!==u[1]?d=f:void 0!==u[2]?($.test(u[2])&&(h=RegExp(\"</\"+u[2],\"g\")),d=_):void 0!==u[3]&&(d=_):d===_?\">\"===u[0]?(d=null!=h?h:v,c=-1):void 0===u[1]?c=-2:(c=d.lastIndex-u[2].length,e=u[1],d=void 0===u[3]?_:'\"'===u[3]?p:m):d===p||d===m?d=_:d===a||d===f?d=v:(d=_,h=void 0);const y=d===_&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=d===v?s+l:c>=0?(n.push(e),s.slice(0,c)+\"$lit$\"+s.slice(c)+o+y):s+o+(-2===c?(n.push(void 0),i):y)}const u=r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==e?e.createHTML(u):u,n]};class C{constructor({strings:t,_$litType$:i},e){let l;this.parts=[];let h=0,d=0;const u=t.length-1,c=this.parts,[v,a]=E(t,i);if(this.el=C.createElement(v,e),A.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(l=A.nextNode())&&c.length<u;){if(1===l.nodeType){if(l.hasAttributes()){const t=[];for(const i of l.getAttributeNames())if(i.endsWith(\"$lit$\")||i.startsWith(o)){const s=a[d++];if(t.push(i),void 0!==s){const t=l.getAttribute(s.toLowerCase()+\"$lit$\").split(o),i=/([.?@])?(.*)/.exec(s);c.push({type:1,index:h,name:i[2],strings:t,ctor:\".\"===i[1]?M:\"?\"===i[1]?k:\"@\"===i[1]?H:S})}else c.push({type:6,index:h})}for(const i of t)l.removeAttribute(i)}if($.test(l.tagName)){const t=l.textContent.split(o),i=t.length-1;if(i>0){l.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)l.append(t[s],r()),A.nextNode(),c.push({type:2,index:++h});l.append(t[i],r())}}}else if(8===l.nodeType)if(l.data===n)c.push({type:2,index:h});else{let t=-1;for(;-1!==(t=l.data.indexOf(o,t+1));)c.push({type:7,index:h}),t+=o.length-1}h++}}static createElement(t,i){const s=h.createElement(\"template\");return s.innerHTML=t,s}}function P(t,i,s=t,e){var o,n,l,h;if(i===x)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=P(t,r._$AS(t,i.values),r,e)),i}class V{constructor(t,i){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:h).importNode(s,!0);A.currentNode=o;let n=A.nextNode(),l=0,r=0,d=e[0];for(;void 0!==d;){if(l===d.index){let i;2===d.type?i=new N(n,n.nextSibling,this,t):1===d.type?i=new d.ctor(n,d.name,d.strings,this,t):6===d.type&&(i=new I(n,this,t)),this.u.push(i),d=e[++r]}l!==(null==d?void 0:d.index)&&(n=A.nextNode(),l++)}return o}p(t){let i=0;for(const s of this.u)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class N{constructor(t,i,s,e){var o;this.type=2,this._$AH=b,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cm=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._$Cm}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=P(this,t,i),d(t)?t===b||null==t||\"\"===t?(this._$AH!==b&&this._$AR(),this._$AH=b):t!==this._$AH&&t!==x&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):c(t)?this.k(t):this.g(t)}O(t,i=this._$AB){return this._$AA.parentNode.insertBefore(t,i)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==b&&d(this._$AH)?this._$AA.nextSibling.data=t:this.T(h.createTextNode(t)),this._$AH=t}$(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=C.createElement(e.h,this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.p(s);else{const t=new V(o,this),i=t.v(this.options);t.p(s),this.T(i),this._$AH=t}}_$AC(t){let i=T.get(t.strings);return void 0===i&&T.set(t.strings,i=new C(t)),i}k(t){u(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 N(this.O(r()),this.O(r()),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._$Cm=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class S{constructor(t,i,s,e,o){this.type=1,this._$AH=b,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=b}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=P(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==x,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=P(this,e[s+l],i,l),h===x&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===b?t=b:t!==b&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===b?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class M extends S{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===b?void 0:t}}const R=s?s.emptyScript:\"\";class k extends S{constructor(){super(...arguments),this.type=4}j(t){t&&t!==b?this.element.setAttribute(this.name,R):this.element.removeAttribute(this.name)}}class H extends S{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=P(this,t,i,0))&&void 0!==s?s:b)===x)return;const e=this._$AH,o=t===b&&e!==b||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==b&&(e===b||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 I{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){P(this,t)}}const L={P:\"$lit$\",A:o,M:n,C:1,L:E,R:V,D:c,V:P,I:N,H:S,N:k,U:H,B:M,F:I},z=i.litHtmlPolyfillSupport;null==z||z(C,N),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.6.0\");const Z=(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 N(i.insertBefore(r(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{L as _$LH,y as html,x as noChange,b as nothing,Z as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{html as t,svg as r}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=Symbol.for(\"\"),l=t=>{if((null==t?void 0:t.r)===e)return null==t?void 0:t._$litStatic$},o=t=>({_$litStatic$:t,r:e}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,l)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[l+1]),t[0]),r:e}),s=new Map,a=t=>(r,...e)=>{const o=e.length;let i,a;const n=[],u=[];let c,$=0,f=!1;for(;$<o;){for(c=r[$];$<o&&void 0!==(a=e[$],i=l(a));)c+=i+r[++$],f=!0;u.push(a),n.push(c),$++}if($===o&&n.push(r[o]),f){const t=n.join(\"$$lit$$\");void 0===(r=s.get(t))&&(n.raw=n,s.set(t,r=n)),e=u}return t(r,...e)},n=a(t),u=a(r);export{n as html,i as literal,u as svg,o as unsafeStatic,a as withStatic};\n//# sourceMappingURL=static.js.map\n","// export const getWidget = (elem: HTMLElement) => {\n// const widgetEl = elem.closest('.humany-widget');\n// console.log('elem', widgetEl);\n\n// if (!widgetEl) {\n// return;\n// }\n\n// const widgetName = Array.from(widgetEl.classList).reduce<string | undefined>(\n// (acc, className) => {\n// if (className.indexOf('humany_') === 0) {\n// acc = className.replace('humany_', '');\n// }\n// return acc;\n// },\n// undefined\n// );\n\n// if (!widgetName) {\n// return;\n// }\n\n// const widget = (window as any).humany.widgets.find(widgetName);\n// return widget;\n// };\n\nexport const getWidget = (elem: HTMLElement): any => {\n const root = elem.getRootNode() as any;\n\n if (elem.getAttribute('widgetname')) {\n const widget = (window as any).humany.widgets.find(\n elem.getAttribute('widgetname')\n );\n\n return widget;\n } else if (elem.classList.contains('humany-widget')) {\n const widgetName = Array.from(elem.classList).reduce<string | undefined>(\n (acc, className) => {\n if (className.indexOf('humany_') === 0) {\n acc = className.replace('humany_', '');\n }\n return acc;\n },\n undefined\n );\n const widget = (window as any).humany.widgets.find(widgetName);\n\n return widget;\n }\n\n if (!root.host) {\n return null;\n }\n\n return getWidget(root.host);\n\n // const widgetEl = elem.closest('.humany-widget');\n // console.log('elem', widgetEl);\n\n // if (!widgetEl) {\n // return;\n // }\n\n // const widgetName = Array.from(widgetEl.classList).reduce<string | undefined>(\n // (acc, className) => {\n // if (className.indexOf('humany_') === 0) {\n // acc = className.replace('humany_', '');\n // }\n // return acc;\n // },\n // undefined\n // );\n\n // if (!widgetName) {\n // return;\n // }\n\n // const widget = (window as any).humany.widgets.find(widgetName);\n // return widget;\n};\n","import { Widget } from '@webprovisions/platform';\nimport { getWidget } from '../utils/get-widget';\n\nexport class WidgetController {\n host: any;\n widget: Widget | undefined;\n\n constructor(host: any) {\n (this.host = host).addController(this);\n }\n\n hostConnected() {\n this.widget = getWidget(this.host);\n }\n}\n","import { LitElement } from 'lit';\n\nexport declare class ProviderInterface {\n provideInstance(key: string, instance: any): void;\n}\n\ntype Constructor<T = {}> = new (...args: any[]) => T;\n\nexport const Provider = <T extends Constructor<LitElement>>(Base: T) => {\n class ProviderClass extends Base {\n _instances = new Map();\n\n constructor(...args: any[]) {\n super();\n\n this.addEventListener('request-instance', (event: any) => {\n const key = event.detail.key;\n console.log('listener fired');\n\n if (this._instances.has(key)) {\n event.detail.instance = this._instances.get(key);\n event.stopPropagation();\n }\n });\n }\n\n provideInstance(key: string, instance: any) {\n console.log('providing instance', key, instance);\n this._instances.set(key, instance);\n }\n }\n\n return ProviderClass as Constructor<ProviderInterface> & T;\n};\n","import { ComponentPlatform, ComponentResolver } from '@telia-ace/widget-core';\nimport { EventSubscriptionCancellation } from '@webprovisions/platform';\nimport { css, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { html, unsafeStatic } from 'lit/static-html.js';\nimport { WidgetController } from '../controllers/widget-controller';\nimport { Provider } from '../mixins/provider';\nimport { resolveComponent } from '../utils/resolve-component';\n// import {\n// GuideList,\n// Paragraph,\n// ItemList,\n// List,\n// SymbolBadge,\n// Text,\n// Html,\n// Button,\n// Typography,\n// TextLink,\n// } from 'ui'; // TODO: this is not how we want to register the ui elements\n\n// @customElement('widget-root')\nexport class WidgetRoot extends Provider(LitElement) {\n controller = new WidgetController(this);\n platform: ComponentPlatform | undefined;\n unsubscribe: EventSubscriptionCancellation | undefined;\n\n static styles = [\n css`\n :host {\n --gap: 0;\n --fonts-type: 'Lato';\n --fonts-small: 0.9em;\n --fonts-normal: 1em;\n --fonts-medium: 1.1em;\n --fonts-huge: 1.4em;\n --fonts-large: 1.1em;\n --colors-accent: #fafafa;\n --colors-link: #990ae3;\n --colors-primary: #990ae3;\n --colors-text: #333333;\n --colors-textLight: #767676;\n --colors-warning: #cc0000;\n --accessibility-border: 2px dashed #990ae3;\n --accessibility-colors-inactiveText: #990ae3;\n --accessibility-colors-activeText: #ffffff;\n --inputBorder: 1px solid #000000;\n --border: 1px solid #000000;\n --borderRadius: 5px;\n --boxShadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n --cardinal: 3px;\n --size-small: var(--cardinal);\n --size-normal: calc(var(--cardinal) * 3);\n --size-medium: calc(var(--cardinal) * 5);\n --size-large: calc(var(--cardinal) * 8);\n --size-huge: calc(var(--cardinal) * 12);\n\n --typography-h1: h2;\n }\n `,\n ];\n\n @state()\n declare _entry: string | null;\n @property()\n declare widgetName: string;\n\n @state()\n declare _child: { tag: string; nodeId: string } | null;\n\n constructor() {\n super();\n this._child = null;\n this._entry = null;\n // this._installRoutes();\n }\n\n // _installRoutes() {\n // page('/browse', this._browseRoute);\n // page('*', this._notFoundRoute);\n // page();\n // }\n\n // _browseRoute() {\n // console.log('browse route');\n // }\n\n // _notFoundRoute() {\n // console.log('not found route');\n // }\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.controller.widget) {\n this.provideInstance('container', this.controller.widget.container);\n\n Promise.all([\n ComponentPlatform.getInstance(this.controller.widget.container),\n this.controller.widget.container.getAsync('componentResolver'),\n ]).then(async (values) => {\n this.platform = values[0];\n const resolver: ComponentResolver = values[1];\n\n this.unsubscribe = this.platform.events.subscribe(\n 'components:root-children-changed',\n (event: any, { node }: any) => {\n if (node.parent && node.parent.type === 'root') {\n this._entry = node.parent.children.default[0].id;\n }\n }\n );\n\n this._entry = this.platform.nodes.root.children.default[0].id || null;\n\n if (!this._entry) {\n console.warn('Could not get node ID for entry node on the ComponentPlatform.');\n return;\n }\n\n this._child =\n (await resolveComponent(this._entry, resolver, this.platform)) || null;\n });\n }\n }\n\n render() {\n // return html`<div>WidgetRootx</div>`;\n if (!this._child) {\n return nothing;\n }\n\n return html` <${unsafeStatic(this._child.tag)} nodeId=${this._child.nodeId} /> `;\n }\n}\n","import { Container } from '@webprovisions/platform';\nimport './widget-component';\nimport { WidgetRoot } from './widget-root';\n\ncustomElements.define('widget-root', WidgetRoot);\n\nexport default (widgetName: string, container: Container, element: HTMLElement) => {\n const root = document.createElement('widget-root');\n root.setAttribute('widgetName', widgetName);\n element.appendChild(root);\n};\n"],"names":["i","e","__spreadProps","__spreadValues","n","t","r","s","o","l","h","d","u","c","v","a","f","_","m","p","$","g","y","b","T","A","E","C","M","k","H","P","V","N","I","R","z","getWidget","elem","root","widgetName","acc","className","WidgetController","host","Provider","Base","ProviderClass","args","event","key","instance","WidgetRoot","LitElement","ComponentPlatform","values","__async","resolver","node","resolveComponent","html","unsafeStatic","nothing","css","__decorateClass","state","property","render","container","element"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMA,KAAE,CAACA,GAAEC,MAAeA,EAAE,SAAb,YAAmBA,EAAE,cAAY,EAAE,WAAUA,EAAE,cAAYC,EAAAC,EAAA,IAAIF,IAAJ,EAAM,SAASG,GAAE;AAAC,EAAAA,EAAE,eAAeH,EAAE,KAAID,CAAC;AAAC,EAAC,KAAE,EAAC,MAAK,SAAQ,KAAI,UAAS,WAAU,OAAM,YAAW,IAAG,aAAYC,EAAE,KAAI,cAAa;AAAC,EAAY,OAAOA,EAAE,eAArB,eAAmC,KAAKA,EAAE,OAAKA,EAAE,YAAY,KAAK,IAAI;AAAE,GAAE,SAASG,GAAE;AAAC,EAAAA,EAAE,eAAeH,EAAE,KAAID,CAAC;AAAC,EAAC;AAAE,SAASC,EAAEA,GAAE;AAAC,SAAM,CAACG,GAAEC,MAAaA,MAAT,UAAY,CAACL,GAAEC,GAAEG,MAAI;AAAC,IAAAH,EAAE,YAAY,eAAeG,GAAEJ,CAAC;AAAA,EAAC,GAAGC,GAAEG,GAAEC,CAAC,IAAEL,GAAEC,GAAEG,CAAC;AAAC;ACJra;AAAA;AAAA;AAAA;AAAA;AAIG,SAASC,EAAEA,GAAE;AAAC,SAAOC,EAAEJ,EAAAC,EAAA,IAAIE,IAAJ,EAAM,OAAM,GAAE,EAAC;AAAC;ACJ1C;AAAA;AAAA;AAAA;AAAA;AAIG,IAAID;AAAAA,EAAyBA,IAAE,OAAO,qBAAjB,QAA4CA,MAAT,SAAW,SAAOA,EAAE,UAAU,qBAAxE;ACLjB;AAAA;AAAA;AAAA;AAAA;AAKA,IAAIC;AAAO,MAACL,IAAE,QAAOO,IAAEP,EAAE,cAAaC,IAAEM,IAAEA,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAF,MAAGA,EAAC,CAAC,IAAE,QAAOG,IAAE,QAAQ,KAAK,OAAM,IAAG,IAAI,MAAM,CAAC,MAAKJ,IAAE,MAAII,GAAEC,KAAE,IAAIL,MAAKM,IAAE,UAASJ,IAAE,CAACD,IAAE,OAAKK,EAAE,cAAcL,CAAC,GAAEM,IAAE,CAAAN,MAAUA,MAAP,QAAoB,OAAOA,KAAjB,YAAgC,OAAOA,KAAnB,YAAqBO,IAAE,MAAM,SAAQC,KAAE,CAAAR,MAAGO,EAAEP,CAAC,KAAe,QAAaA,KAAN,OAAQ,SAAOA,EAAE,OAAO,cAA3C,YAAsDS,IAAE,uDAAsDC,IAAE,QAAOC,IAAE,MAAKC,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,2BAA+F,GAAG,GAAEC,IAAE,MAAKC,IAAE,MAAKC,IAAE,sCAAqCC,KAAE,CAAAhB,MAAG,CAACL,MAAKO,OAAK,EAAC,YAAWF,GAAE,SAAQL,GAAE,QAAOO,EAAC,IAAGe,KAAED,GAAE,CAAC,GAAS,IAAE,OAAO,IAAI,cAAc,GAAEE,IAAE,OAAO,IAAI,aAAa,GAAEC,IAAE,oBAAI,WAAQC,IAAEf,EAAE,iBAAiBA,GAAE,KAAI,MAAK,EAAE,GAAEgB,KAAE,CAACrB,GAAEL,MAAI;AAAC,QAAMO,IAAEF,EAAE,SAAO,GAAED,IAAE,CAAA;AAAG,MAAIM,GAAE,IAAMV,MAAJ,IAAM,UAAQ,IAAGW,IAAEG;AAAE,WAAQd,IAAE,GAAEA,IAAEO,GAAEP,KAAI;AAAC,UAAMO,IAAEF,EAAEL;AAAG,QAAIC,GAAEW,GAAEC,IAAE,IAAGQ,IAAE;AAAE,WAAKA,IAAEd,EAAE,WAASI,EAAE,YAAUU,GAAET,IAAED,EAAE,KAAKJ,CAAC,GAASK,MAAP;AAAW,MAAAS,IAAEV,EAAE,WAAUA,MAAIG,IAAUF,EAAE,OAAV,QAAaD,IAAEI,IAAWH,EAAE,OAAX,SAAcD,IAAEK,IAAWJ,EAAE,OAAX,UAAeQ,EAAE,KAAKR,EAAE,EAAE,MAAIF,IAAE,OAAO,OAAKE,EAAE,IAAG,GAAG,IAAGD,IAAEM,KAAYL,EAAE,OAAX,WAAgBD,IAAEM,KAAGN,MAAIM,IAAQL,EAAE,OAAR,OAAYD,IAAQD,KAAN,OAAQA,IAAEI,GAAED,IAAE,MAAaD,EAAE,OAAX,SAAcC,IAAE,MAAIA,IAAEF,EAAE,YAAUC,EAAE,GAAG,QAAOX,IAAEW,EAAE,IAAGD,IAAWC,EAAE,OAAX,SAAcK,IAAQL,EAAE,OAAR,MAAWO,IAAED,KAAGP,MAAIQ,KAAGR,MAAIO,IAAEP,IAAEM,IAAEN,MAAII,KAAGJ,MAAIK,IAAEL,IAAEG,KAAGH,IAAEM,GAAEP,IAAE;AAAQ,UAAMY,IAAEX,MAAIM,KAAGZ,EAAEL,IAAE,GAAG,WAAW,IAAI,IAAE,MAAI;AAAG,SAAGW,MAAIG,IAAEP,IAAEE,KAAEI,KAAG,KAAGT,EAAE,KAAKH,CAAC,GAAEM,EAAE,MAAM,GAAEM,CAAC,IAAE,UAAQN,EAAE,MAAMM,CAAC,IAAEL,IAAEc,KAAGf,IAAEC,KAAQK,MAAL,MAAQT,EAAE,KAAK,MAAM,GAAEJ,KAAGsB;AAAA,EAAE;AAAC,QAAMV,IAAE,KAAGP,EAAEE,MAAI,UAAYP,MAAJ,IAAM,WAAS;AAAI,MAAG,CAAC,MAAM,QAAQK,CAAC,KAAG,CAACA,EAAE,eAAe,KAAK;AAAE,UAAM,MAAM,gCAAgC;AAAE,SAAM,CAAUJ,MAAT,SAAWA,EAAE,WAAWW,CAAC,IAAEA,GAAER,CAAC;AAAC;AAAE,MAAMuB,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQ,GAAE,YAAW3B,EAAC,GAAEC,GAAE;AAAC,QAAIQ;AAAE,SAAK,QAAM,CAAE;AAAC,QAAIC,IAAE,GAAEC,IAAE;AAAE,UAAMC,IAAE,EAAE,SAAO,GAAEC,IAAE,KAAK,OAAM,CAACC,GAAEC,CAAC,IAAEW,GAAE,GAAE1B,CAAC;AAAE,QAAG,KAAK,KAAG2B,EAAE,cAAcb,GAAEb,CAAC,GAAEwB,EAAE,cAAY,KAAK,GAAG,SAAYzB,MAAJ,GAAM;AAAC,YAAMK,IAAE,KAAK,GAAG,SAAQL,IAAEK,EAAE;AAAW,MAAAL,EAAE,OAAQ,GAACK,EAAE,OAAO,GAAGL,EAAE,UAAU;AAAA,IAAC;AAAC,YAAaS,IAAEgB,EAAE,SAAU,OAAtB,QAAyBZ,EAAE,SAAOD,KAAG;AAAC,UAAOH,EAAE,aAAN,GAAe;AAAC,YAAGA,EAAE,cAAa,GAAG;AAAC,gBAAMJ,IAAE,CAAE;AAAC,qBAAUL,KAAKS,EAAE,kBAAmB;AAAC,gBAAGT,EAAE,SAAS,OAAO,KAAGA,EAAE,WAAWQ,CAAC,GAAE;AAAC,oBAAMD,IAAEQ,EAAEJ;AAAK,kBAAGN,EAAE,KAAKL,CAAC,GAAWO,MAAT,QAAW;AAAC,sBAAMF,IAAEI,EAAE,aAAaF,EAAE,YAAW,IAAG,OAAO,EAAE,MAAMC,CAAC,GAAER,IAAE,eAAe,KAAKO,CAAC;AAAE,gBAAAM,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,GAAE,MAAKV,EAAE,IAAG,SAAQK,GAAE,MAAWL,EAAE,OAAR,MAAW4B,KAAQ5B,EAAE,OAAR,MAAW6B,KAAQ7B,EAAE,OAAR,MAAW8B,KAAE,EAAC,CAAC;AAAA,cAAC;AAAM,gBAAAjB,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC;AAAA,YAAC;AAAC,qBAAUV,KAAKK;AAAE,YAAAI,EAAE,gBAAgBT,CAAC;AAAA,QAAC;AAAC,YAAGoB,EAAE,KAAKX,EAAE,OAAO,GAAE;AAAC,gBAAMJ,IAAEI,EAAE,YAAY,MAAMD,CAAC,GAAER,IAAEK,EAAE,SAAO;AAAE,cAAGL,IAAE,GAAE;AAAC,YAAAS,EAAE,cAAYF,IAAEA,EAAE,cAAY;AAAG,qBAAQA,IAAE,GAAEA,IAAEP,GAAEO;AAAI,cAAAE,EAAE,OAAOJ,EAAEE,IAAGD,EAAC,CAAE,GAAEmB,EAAE,YAAWZ,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAEH,EAAC,CAAC;AAAE,YAAAD,EAAE,OAAOJ,EAAEL,IAAGM,EAAC,CAAE;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAaG,EAAE,aAAN;AAAe,YAAGA,EAAE,SAAOL;AAAE,UAAAS,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC;AAAA,aAAM;AAAC,cAAIL,IAAE;AAAG,kBAAWA,IAAEI,EAAE,KAAK,QAAQD,GAAEH,IAAE,CAAC,OAA5B;AAAgC,YAAAQ,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC,GAAEL,KAAGG,EAAE,SAAO;AAAA,QAAC;AAAC,MAAAE;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAEV,GAAE;AAAC,UAAM,IAAEU,EAAE,cAAc,UAAU;AAAE,WAAO,EAAE,YAAU,GAAE;AAAA,EAAC;AAAC;AAAC,SAASqB,EAAE1B,GAAEL,GAAEO,IAAEF,GAAEJ,GAAE;AAAC,MAAIO,GAAEJ,GAAEK,GAAEC;AAAE,MAAGV,MAAI;AAAE,WAAOA;AAAE,MAAIM,IAAWL,MAAT,UAAmBO,IAAED,EAAE,UAAZ,QAA4BC,MAAT,SAAW,SAAOA,EAAEP,KAAGM,EAAE;AAAK,QAAMK,IAAED,EAAEX,CAAC,IAAE,SAAOA,EAAE;AAAgB,UAAaM,KAAN,OAAQ,SAAOA,EAAE,iBAAeM,OAAYR,IAAQE,KAAN,OAAQ,SAAOA,EAAE,UAA3B,QAA2CF,MAAT,UAAYA,EAAE,KAAKE,GAAE,EAAE,GAAWM,MAAT,SAAWN,IAAE,UAAQA,IAAE,IAAIM,EAAEP,CAAC,GAAEC,EAAE,KAAKD,GAAEE,GAAEN,CAAC,IAAYA,MAAT,WAAoBQ,KAAGC,IAAEH,GAAG,UAAhB,QAAgCE,MAAT,SAAWA,IAAEC,EAAE,OAAK,CAAE,GAAET,KAAGK,IAAEC,EAAE,OAAKD,IAAYA,MAAT,WAAaN,IAAE+B,EAAE1B,GAAEC,EAAE,KAAKD,GAAEL,EAAE,MAAM,GAAEM,GAAEL,CAAC,IAAGD;AAAC;AAAC,MAAMgC,GAAC;AAAA,EAAC,YAAY,GAAEhC,GAAE;AAAC,SAAK,IAAE,CAAE,GAAC,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIA;AAAE,UAAK,EAAC,IAAG,EAAC,SAAQ,EAAC,GAAE,OAAMC,EAAC,IAAE,KAAK,MAAKO,MAAWR,IAAQ,KAAN,OAAQ,SAAO,EAAE,mBAA3B,QAAoDA,MAAT,SAAWA,IAAEU,GAAG,WAAW,GAAE,EAAE;AAAE,IAAAe,EAAE,cAAYjB;AAAE,QAAIJ,IAAEqB,EAAE,SAAQ,GAAGhB,IAAE,GAAEH,IAAE,GAAEK,IAAEV,EAAE;AAAG,WAAcU,MAAT,UAAY;AAAC,UAAGF,MAAIE,EAAE,OAAM;AAAC,YAAIX;AAAE,QAAIW,EAAE,SAAN,IAAWX,IAAE,IAAIiC,EAAE7B,GAAEA,EAAE,aAAY,MAAK,CAAC,IAAMO,EAAE,SAAN,IAAWX,IAAE,IAAIW,EAAE,KAAKP,GAAEO,EAAE,MAAKA,EAAE,SAAQ,MAAK,CAAC,IAAMA,EAAE,SAAN,MAAaX,IAAE,IAAIkC,GAAE9B,GAAE,MAAK,CAAC,IAAG,KAAK,EAAE,KAAKJ,CAAC,GAAEW,IAAEV,EAAE,EAAEK;AAAA,MAAE;AAAC,MAAAG,OAAWE,KAAN,OAAQ,SAAOA,EAAE,WAASP,IAAEqB,EAAE,SAAQ,GAAGhB;AAAA,IAAI;AAAC,WAAOD;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIR,IAAE;AAAE,eAAU,KAAK,KAAK;AAAE,MAAS,MAAT,WAAsB,EAAE,YAAX,UAAoB,EAAE,KAAK,GAAE,GAAEA,CAAC,GAAEA,KAAG,EAAE,QAAQ,SAAO,KAAG,EAAE,KAAK,EAAEA,EAAE,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAMiC,EAAC;AAAA,EAAC,YAAY,GAAEjC,GAAE,GAAEC,GAAE;AAAC,QAAIO;AAAE,SAAK,OAAK,GAAE,KAAK,OAAKe,GAAE,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKvB,GAAE,KAAK,OAAK,GAAE,KAAK,UAAQC,GAAE,KAAK,QAAaO,IAAQP,KAAN,OAAQ,SAAOA,EAAE,iBAA3B,QAAkDO,MAAT,UAAYA;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI,GAAER;AAAE,YAAeA,KAAU,IAAE,KAAK,UAAf,QAA+B,MAAT,SAAW,SAAO,EAAE,UAApD,QAAoEA,MAAT,SAAWA,IAAE,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK,KAAK;AAAW,UAAMA,IAAE,KAAK;AAAK,WAAgBA,MAAT,UAAiB,EAAE,aAAP,OAAkB,IAAEA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEA,IAAE,MAAK;AAAC,QAAE+B,EAAE,MAAK,GAAE/B,CAAC,GAAEW,EAAE,CAAC,IAAE,MAAIY,KAAS,KAAN,QAAc,MAAL,MAAQ,KAAK,SAAOA,KAAG,KAAK,KAAM,GAAC,KAAK,OAAKA,KAAG,MAAI,KAAK,QAAM,MAAI,KAAG,KAAK,EAAE,CAAC,IAAW,EAAE,eAAX,SAAsB,KAAK,EAAE,CAAC,IAAW,EAAE,aAAX,SAAoB,KAAK,EAAE,CAAC,IAAEV,GAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAEb,IAAE,KAAK,MAAK;AAAC,WAAO,KAAK,KAAK,WAAW,aAAa,GAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAO,MAAI,KAAK,KAAI,GAAG,KAAK,OAAK,KAAK,EAAE,CAAC;AAAA,EAAE;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAOuB,KAAGZ,EAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAK,IAAE,KAAK,EAAED,EAAE,eAAe,CAAC,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIV;AAAE,UAAK,EAAC,QAAO,GAAE,YAAWC,EAAC,IAAE,GAAEO,IAAY,OAAOP,KAAjB,WAAmB,KAAK,KAAK,CAAC,KAAYA,EAAE,OAAX,WAAgBA,EAAE,KAAG0B,EAAE,cAAc1B,EAAE,GAAE,KAAK,OAAO,IAAGA;AAAG,UAAYD,IAAE,KAAK,UAAf,QAA+BA,MAAT,SAAW,SAAOA,EAAE,UAAQQ;AAAE,WAAK,KAAK,EAAE,CAAC;AAAA,SAAM;AAAC,YAAMH,IAAE,IAAI2B,GAAExB,GAAE,IAAI,GAAER,IAAEK,EAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,EAAE,EAAE,CAAC,GAAE,KAAK,EAAEL,CAAC,GAAE,KAAK,OAAKK;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,QAAIL,IAAEwB,EAAE,IAAI,EAAE,OAAO;AAAE,WAAgBxB,MAAT,UAAYwB,EAAE,IAAI,EAAE,SAAQxB,IAAE,IAAI2B,EAAE,CAAC,CAAC,GAAE3B;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,IAAAY,EAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAE,GAAC,KAAK,KAAM;AAAE,UAAMZ,IAAE,KAAK;AAAK,QAAI,GAAEC,IAAE;AAAE,eAAUO,KAAK;AAAE,MAAAP,MAAID,EAAE,SAAOA,EAAE,KAAK,IAAE,IAAIiC,EAAE,KAAK,EAAE3B,EAAG,CAAA,GAAE,KAAK,EAAEA,EAAC,CAAE,GAAE,MAAK,KAAK,OAAO,CAAC,IAAE,IAAEN,EAAEC,IAAG,EAAE,KAAKO,CAAC,GAAEP;AAAI,IAAAA,IAAED,EAAE,WAAS,KAAK,KAAK,KAAG,EAAE,KAAK,aAAYC,CAAC,GAAED,EAAE,SAAOC;AAAA,EAAE;AAAA,EAAC,KAAK,IAAE,KAAK,KAAK,aAAYD,GAAE;AAAC,QAAI;AAAE,UAAY,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,KAAK,MAAK,IAAG,IAAGA,CAAC,GAAE,KAAG,MAAI,KAAK,QAAM;AAAC,YAAM,IAAE,EAAE;AAAY,QAAE,OAAQ,GAAC,IAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,QAAIA;AAAE,IAAS,KAAK,SAAd,WAAqB,KAAK,OAAK,IAAUA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,KAAK,MAAK,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAY,GAAEA,GAAE,GAAEC,GAAEO,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAKe,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQ,GAAE,KAAK,OAAKvB,GAAE,KAAK,OAAKC,GAAE,KAAK,UAAQO,GAAE,EAAE,SAAO,KAAQ,EAAE,OAAP,MAAgB,EAAE,OAAP,MAAW,KAAK,OAAK,MAAM,EAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQ,KAAG,KAAK,OAAKe;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEvB,IAAE,MAAK,GAAEC,GAAE;AAAC,UAAMO,IAAE,KAAK;AAAQ,QAAIJ,IAAE;AAAG,QAAYI,MAAT;AAAW,UAAEuB,EAAE,MAAK,GAAE/B,GAAE,CAAC,GAAEI,IAAE,CAACO,EAAE,CAAC,KAAG,MAAI,KAAK,QAAM,MAAI,GAAEP,MAAI,KAAK,OAAK;AAAA,SAAO;AAAC,YAAMH,IAAE;AAAE,UAAI,GAAE;AAAE,WAAI,IAAEO,EAAE,IAAG,IAAE,GAAE,IAAEA,EAAE,SAAO,GAAE;AAAI,YAAEuB,EAAE,MAAK9B,EAAE,IAAE,IAAGD,GAAE,CAAC,GAAE,MAAI,MAAI,IAAE,KAAK,KAAK,KAAII,MAAIA,IAAE,CAACO,EAAE,CAAC,KAAG,MAAI,KAAK,KAAK,KAAI,MAAIY,IAAE,IAAEA,IAAE,MAAIA,MAAI,MAAU,KAAN,OAAQ,IAAE,MAAIf,EAAE,IAAE,KAAI,KAAK,KAAK,KAAG;AAAA,IAAC;AAAC,IAAAJ,KAAG,CAACH,KAAG,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAIsB,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAW,KAAN,OAAQ,IAAE,EAAE;AAAA,EAAC;AAAC;AAAC,MAAMK,WAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,KAAK,QAAM,MAAIL,IAAE,SAAO;AAAA,EAAC;AAAC;AAAC,MAAMY,KAAE5B,IAAEA,EAAE,cAAY;AAAG,MAAMsB,WAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAG,MAAIN,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAKY,EAAC,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI;AAAA,EAAC;AAAC;AAAC,MAAML,WAAU,EAAC;AAAA,EAAC,YAAY,GAAE9B,GAAE,GAAEC,GAAEO,GAAE;AAAC,UAAM,GAAER,GAAE,GAAEC,GAAEO,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAER,IAAE,MAAK;AAAC,QAAI;AAAE,SAAI,KAAU,IAAE+B,EAAE,MAAK,GAAE/B,GAAE,CAAC,OAAtB,QAAmC,MAAT,SAAW,IAAEuB,OAAK;AAAE;AAAO,UAAMtB,IAAE,KAAK,MAAKO,IAAE,MAAIe,KAAGtB,MAAIsB,KAAG,EAAE,YAAUtB,EAAE,WAAS,EAAE,SAAOA,EAAE,QAAM,EAAE,YAAUA,EAAE,SAAQG,IAAE,MAAImB,MAAItB,MAAIsB,KAAGf;AAAG,IAAAA,KAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKP,CAAC,GAAEG,KAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAK,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,QAAIJ,GAAE;AAAE,IAAY,OAAO,KAAK,QAAxB,aAA6B,KAAK,KAAK,MAAa,KAAUA,IAAE,KAAK,aAAf,QAAkCA,MAAT,SAAW,SAAOA,EAAE,UAAvD,QAAuE,MAAT,SAAW,IAAE,KAAK,SAAQ,CAAC,IAAE,KAAK,KAAK,YAAY,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMkC,GAAC;AAAA,EAAC,YAAY,GAAElC,GAAE,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKA,GAAE,KAAK,UAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE;AAAC,IAAA+B,EAAE,MAAK,CAAC;AAAA,EAAC;AAAC;AAAM,MAAmEK,IAAEpC,EAAE;AAA6BoC,KAAN,QAASA,EAAET,GAAEM,CAAC,KAAW5B,IAAEL,EAAE,qBAAZ,QAAuCK,MAAT,SAAWA,IAAEL,EAAE,kBAAgB,IAAI,KAAK,OAAO;ACJz5O;AAAA;AAAA;AAAA;AAAA;AAIQ,MAACC,IAAE,OAAO,IAAI,EAAE,GAAEQ,KAAE,CAAAJ,MAAG;AAAC,OAAUA,KAAN,OAAQ,SAAOA,EAAE,OAAKJ;AAAE,WAAaI,KAAN,OAAQ,SAAOA,EAAE;AAAY,GAAEG,KAAE,CAAAH,OAAI,EAAC,cAAaA,GAAE,GAAEJ,EAAC,IAAyTM,IAAE,oBAAI,OAAIQ,KAAE,CAAAV,MAAG,CAACC,MAAK,MAAI;AAAC,QAAME,IAAE,EAAE;AAAO,MAAI,GAAEO;AAAE,QAAMX,IAAE,CAAA,GAAGQ,IAAE,CAAA;AAAG,MAAIC,GAAEO,IAAE,GAAEJ,IAAE;AAAG,SAAKI,IAAEZ,KAAG;AAAC,SAAIK,IAAEP,EAAEc,IAAGA,IAAEZ,MAAaO,IAAE,EAAEK,KAAG,IAAEX,GAAEM,CAAC,OAAtB;AAA0B,MAAAF,KAAG,IAAEP,EAAE,EAAEc,IAAGJ,IAAE;AAAG,IAAAJ,EAAE,KAAKG,CAAC,GAAEX,EAAE,KAAKS,CAAC,GAAEO;AAAA,EAAG;AAAC,MAAGA,MAAIZ,KAAGJ,EAAE,KAAKE,EAAEE,EAAE,GAAEQ,GAAE;AAAC,UAAMX,IAAED,EAAE,KAAK,SAAS;AAAE,KAAUE,IAAEC,EAAE,IAAIF,CAAC,OAAnB,WAAwBD,EAAE,MAAIA,GAAEG,EAAE,IAAIF,GAAEC,IAAEF,CAAC,IAAG,IAAEQ;AAAA,EAAC;AAAC,SAAOP,EAAEC,GAAE,GAAG,CAAC;AAAC,GAAEF,KAAEW,GAAEV,EAAC,GCqBptBgC,KAAY,CAACC,MAA2B;AAC7C,QAAAC,IAAOD,EAAK;AAEd,MAAAA,EAAK,aAAa,YAAY;AAKzB,WAJS,OAAe,OAAO,QAAQ;AAAA,MAC5CA,EAAK,aAAa,YAAY;AAAA,IAAA;AAIvB,MAAAA,EAAK,UAAU,SAAS,eAAe,GAAG;AACnD,UAAME,IAAa,MAAM,KAAKF,EAAK,SAAS,EAAE;AAAA,MAC5C,CAACG,GAAKC,OACAA,EAAU,QAAQ,SAAS,MAAM,MAC7BD,IAAAC,EAAU,QAAQ,WAAW,EAAE,IAEhCD;AAAA,MAET;AAAA,IAAA;AAIK,WAFS,OAAe,OAAO,QAAQ,KAAKD,CAAU;AAAA,EAG/D;AAEI,SAACD,EAAK,OAIHF,GAAUE,EAAK,IAAI,IAHjB;AA4BX;AC5EO,MAAMI,GAAiB;AAAA,EAI5B,YAAYC,GAAW;AACrB,KAAC,KAAK,OAAOA,GAAM,cAAc,IAAI;AAAA,EACvC;AAAA,EAEA,gBAAgB;AACT,SAAA,SAASP,GAAU,KAAK,IAAI;AAAA,EACnC;AACF;ACNa,MAAAQ,KAAW,CAAoCC,MAAY;AACtE,QAAMC,UAAsBD,EAAK;AAAA,IAG/B,eAAeE,GAAa;AACpB,eAHR,KAAA,iCAAiB,OAKV,KAAA,iBAAiB,oBAAoB,CAACC,MAAe;AAClD,cAAAC,IAAMD,EAAM,OAAO;AACzB,gBAAQ,IAAI,gBAAgB,GAExB,KAAK,WAAW,IAAIC,CAAG,MACzBD,EAAM,OAAO,WAAW,KAAK,WAAW,IAAIC,CAAG,GAC/CD,EAAM,gBAAgB;AAAA,MACxB,CACD;AAAA,IACH;AAAA,IAEA,gBAAgBC,GAAaC,GAAe;AAClC,cAAA,IAAI,sBAAsBD,GAAKC,CAAQ,GAC1C,KAAA,WAAW,IAAID,GAAKC,CAAQ;AAAA,IACnC;AAAA,EACF;AAEO,SAAAJ;AACT;;;;;;ACXa,MAAAK,UAAmBP,GAASQ,EAAU,EAAE;AAAA,EAgDjD,cAAc;AACJ,aAhDG,KAAA,aAAA,IAAIV,GAAiB,IAAI,GAiDlC,KAAK,SAAS,MACd,KAAK,SAAS;AAAA,EAElB;AAAA,EAgBA,oBAAoB;AAChB,UAAM,kBAAkB,GAEpB,KAAK,WAAW,WAChB,KAAK,gBAAgB,aAAa,KAAK,WAAW,OAAO,SAAS,GAElE,QAAQ,IAAI;AAAA,MACRW,GAAkB,YAAY,KAAK,WAAW,OAAO,SAAS;AAAA,MAC9D,KAAK,WAAW,OAAO,UAAU,SAAS,mBAAmB;AAAA,IAAA,CAChE,EAAE,KAAK,CAAOC,MAAWC,EAAA;AACtB,WAAK,WAAWD,EAAO;AACvB,YAAME,IAA8BF,EAAO;AAavC,UAXC,KAAA,cAAc,KAAK,SAAS,OAAO;AAAA,QACpC;AAAA,QACA,CAACN,GAAY,EAAE,MAAAS,QAAgB;AAC3B,UAAIA,EAAK,UAAUA,EAAK,OAAO,SAAS,WACpC,KAAK,SAASA,EAAK,OAAO,SAAS,QAAQ,GAAG;AAAA,QAEtD;AAAA,MAAA,GAGC,KAAA,SAAS,KAAK,SAAS,MAAM,KAAK,SAAS,QAAQ,GAAG,MAAM,MAE7D,CAAC,KAAK,QAAQ;AACd,gBAAQ,KAAK,gEAAgE;AAC7E;AAAA,MACJ;AAEK,WAAA,UACA,MAAMC,GAAiB,KAAK,QAAQF,GAAU,KAAK,QAAQ,MAAM;AAAA,IAAA,EACzE;AAAA,EAET;AAAA,EAEA,SAAS;AAED,WAAC,KAAK,SAIHG,OAASC,GAAa,KAAK,OAAO,GAAG,YAAY,KAAK,OAAO,eAHzDC;AAAA,EAIf;AACJ;AAhHaV,EAKF,SAAS;AAAA,EACZW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCJ;AAGQC,EAAA;AAAA,EADPC,EAAM;AAAA,GAxCEb,EAyCD,WAAA,UAAA,CAAA;AAEAY,EAAA;AAAA,EADPE,EAAS;AAAA,GA1CDd,EA2CD,WAAA,cAAA,CAAA;AAGAY,EAAA;AAAA,EADPC,EAAM;AAAA,GA7CEb,EA8CD,WAAA,UAAA,CAAA;AChEZ,eAAe,OAAO,eAAeA,CAAU;AAE/C,MAAAe,KAAe,CAAC3B,GAAoB4B,GAAsBC,MAAyB;AACzE,QAAA9B,IAAO,SAAS,cAAc,aAAa;AAC5C,EAAAA,EAAA,aAAa,cAAcC,CAAU,GAC1C6B,EAAQ,YAAY9B,CAAI;AAC5B;"}
1
+ {"version":3,"file":"render.deb2456b.js","sources":["../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/state.js","../../../node_modules/.pnpm/@lit+reactive-element@1.6.0/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../../../node_modules/.pnpm/lit-html@2.6.0/node_modules/lit-html/lit-html.js","../../../node_modules/.pnpm/lit-html@2.6.0/node_modules/lit-html/static.js","../src/utils/get-widget.ts","../src/controllers/widget-controller.ts","../src/mixins/provider.ts","../src/ui/widget-root.ts","../src/ui/render.ts"],"sourcesContent":["/**\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)}};function e(e){return(n,t)=>void 0!==t?((i,e,n)=>{e.constructor.createProperty(n,i)})(e,n,t):i(e,n)}export{e as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.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","/**\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$${(Math.random()+\"\").slice(9)}$`,n=\"?\"+o,l=`<${n}>`,h=document,r=(t=\"\")=>h.createComment(t),d=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,c=t=>u(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,a=/-->/g,f=/>/g,_=RegExp(\">|[ \\t\\n\\f\\r](?:([^\\\\s\\\"'>=/]+)([ \\t\\n\\f\\r]*=[ \\t\\n\\f\\r]*(?:[^ \\t\\n\\f\\r\\\"'`<>=]|(\\\"|')|))|$)\",\"g\"),m=/'/g,p=/\"/g,$=/^(?:script|style|textarea|title)$/i,g=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),y=g(1),w=g(2),x=Symbol.for(\"lit-noChange\"),b=Symbol.for(\"lit-nothing\"),T=new WeakMap,A=h.createTreeWalker(h,129,null,!1),E=(t,i)=>{const s=t.length-1,n=[];let h,r=2===i?\"<svg>\":\"\",d=v;for(let i=0;i<s;i++){const s=t[i];let e,u,c=-1,g=0;for(;g<s.length&&(d.lastIndex=g,u=d.exec(s),null!==u);)g=d.lastIndex,d===v?\"!--\"===u[1]?d=a:void 0!==u[1]?d=f:void 0!==u[2]?($.test(u[2])&&(h=RegExp(\"</\"+u[2],\"g\")),d=_):void 0!==u[3]&&(d=_):d===_?\">\"===u[0]?(d=null!=h?h:v,c=-1):void 0===u[1]?c=-2:(c=d.lastIndex-u[2].length,e=u[1],d=void 0===u[3]?_:'\"'===u[3]?p:m):d===p||d===m?d=_:d===a||d===f?d=v:(d=_,h=void 0);const y=d===_&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=d===v?s+l:c>=0?(n.push(e),s.slice(0,c)+\"$lit$\"+s.slice(c)+o+y):s+o+(-2===c?(n.push(void 0),i):y)}const u=r+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==e?e.createHTML(u):u,n]};class C{constructor({strings:t,_$litType$:i},e){let l;this.parts=[];let h=0,d=0;const u=t.length-1,c=this.parts,[v,a]=E(t,i);if(this.el=C.createElement(v,e),A.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(l=A.nextNode())&&c.length<u;){if(1===l.nodeType){if(l.hasAttributes()){const t=[];for(const i of l.getAttributeNames())if(i.endsWith(\"$lit$\")||i.startsWith(o)){const s=a[d++];if(t.push(i),void 0!==s){const t=l.getAttribute(s.toLowerCase()+\"$lit$\").split(o),i=/([.?@])?(.*)/.exec(s);c.push({type:1,index:h,name:i[2],strings:t,ctor:\".\"===i[1]?M:\"?\"===i[1]?k:\"@\"===i[1]?H:S})}else c.push({type:6,index:h})}for(const i of t)l.removeAttribute(i)}if($.test(l.tagName)){const t=l.textContent.split(o),i=t.length-1;if(i>0){l.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)l.append(t[s],r()),A.nextNode(),c.push({type:2,index:++h});l.append(t[i],r())}}}else if(8===l.nodeType)if(l.data===n)c.push({type:2,index:h});else{let t=-1;for(;-1!==(t=l.data.indexOf(o,t+1));)c.push({type:7,index:h}),t+=o.length-1}h++}}static createElement(t,i){const s=h.createElement(\"template\");return s.innerHTML=t,s}}function P(t,i,s=t,e){var o,n,l,h;if(i===x)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=P(t,r._$AS(t,i.values),r,e)),i}class V{constructor(t,i){this.u=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:h).importNode(s,!0);A.currentNode=o;let n=A.nextNode(),l=0,r=0,d=e[0];for(;void 0!==d;){if(l===d.index){let i;2===d.type?i=new N(n,n.nextSibling,this,t):1===d.type?i=new d.ctor(n,d.name,d.strings,this,t):6===d.type&&(i=new I(n,this,t)),this.u.push(i),d=e[++r]}l!==(null==d?void 0:d.index)&&(n=A.nextNode(),l++)}return o}p(t){let i=0;for(const s of this.u)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class N{constructor(t,i,s,e){var o;this.type=2,this._$AH=b,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cm=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._$Cm}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=P(this,t,i),d(t)?t===b||null==t||\"\"===t?(this._$AH!==b&&this._$AR(),this._$AH=b):t!==this._$AH&&t!==x&&this.g(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):c(t)?this.k(t):this.g(t)}O(t,i=this._$AB){return this._$AA.parentNode.insertBefore(t,i)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}g(t){this._$AH!==b&&d(this._$AH)?this._$AA.nextSibling.data=t:this.T(h.createTextNode(t)),this._$AH=t}$(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=C.createElement(e.h,this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.p(s);else{const t=new V(o,this),i=t.v(this.options);t.p(s),this.T(i),this._$AH=t}}_$AC(t){let i=T.get(t.strings);return void 0===i&&T.set(t.strings,i=new C(t)),i}k(t){u(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 N(this.O(r()),this.O(r()),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._$Cm=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class S{constructor(t,i,s,e,o){this.type=1,this._$AH=b,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=b}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=P(this,t,i,0),n=!d(t)||t!==this._$AH&&t!==x,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=P(this,e[s+l],i,l),h===x&&(h=this._$AH[l]),n||(n=!d(h)||h!==this._$AH[l]),h===b?t=b:t!==b&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===b?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class M extends S{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===b?void 0:t}}const R=s?s.emptyScript:\"\";class k extends S{constructor(){super(...arguments),this.type=4}j(t){t&&t!==b?this.element.setAttribute(this.name,R):this.element.removeAttribute(this.name)}}class H extends S{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=P(this,t,i,0))&&void 0!==s?s:b)===x)return;const e=this._$AH,o=t===b&&e!==b||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==b&&(e===b||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 I{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){P(this,t)}}const L={P:\"$lit$\",A:o,M:n,C:1,L:E,R:V,D:c,V:P,I:N,H:S,N:k,U:H,B:M,F:I},z=i.litHtmlPolyfillSupport;null==z||z(C,N),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.6.0\");const Z=(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 N(i.insertBefore(r(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{L as _$LH,y as html,x as noChange,b as nothing,Z as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{html as t,svg as r}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=Symbol.for(\"\"),l=t=>{if((null==t?void 0:t.r)===e)return null==t?void 0:t._$litStatic$},o=t=>({_$litStatic$:t,r:e}),i=(t,...r)=>({_$litStatic$:r.reduce(((r,e,l)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\\n take care to ensure page security.`)})(e)+t[l+1]),t[0]),r:e}),s=new Map,a=t=>(r,...e)=>{const o=e.length;let i,a;const n=[],u=[];let c,$=0,f=!1;for(;$<o;){for(c=r[$];$<o&&void 0!==(a=e[$],i=l(a));)c+=i+r[++$],f=!0;u.push(a),n.push(c),$++}if($===o&&n.push(r[o]),f){const t=n.join(\"$$lit$$\");void 0===(r=s.get(t))&&(n.raw=n,s.set(t,r=n)),e=u}return t(r,...e)},n=a(t),u=a(r);export{n as html,i as literal,u as svg,o as unsafeStatic,a as withStatic};\n//# sourceMappingURL=static.js.map\n","// export const getWidget = (elem: HTMLElement) => {\n// const widgetEl = elem.closest('.humany-widget');\n// console.log('elem', widgetEl);\n\n// if (!widgetEl) {\n// return;\n// }\n\n// const widgetName = Array.from(widgetEl.classList).reduce<string | undefined>(\n// (acc, className) => {\n// if (className.indexOf('humany_') === 0) {\n// acc = className.replace('humany_', '');\n// }\n// return acc;\n// },\n// undefined\n// );\n\n// if (!widgetName) {\n// return;\n// }\n\n// const widget = (window as any).humany.widgets.find(widgetName);\n// return widget;\n// };\n\nexport const getWidget = (elem: HTMLElement): any => {\n const root = elem.getRootNode() as any;\n\n if (elem.getAttribute('widgetname')) {\n const widget = (window as any).humany.widgets.find(\n elem.getAttribute('widgetname')\n );\n\n return widget;\n } else if (elem.classList.contains('humany-widget')) {\n const widgetName = Array.from(elem.classList).reduce<string | undefined>(\n (acc, className) => {\n if (className.indexOf('humany_') === 0) {\n acc = className.replace('humany_', '');\n }\n return acc;\n },\n undefined\n );\n const widget = (window as any).humany.widgets.find(widgetName);\n\n return widget;\n }\n\n if (!root.host) {\n return null;\n }\n\n return getWidget(root.host);\n\n // const widgetEl = elem.closest('.humany-widget');\n // console.log('elem', widgetEl);\n\n // if (!widgetEl) {\n // return;\n // }\n\n // const widgetName = Array.from(widgetEl.classList).reduce<string | undefined>(\n // (acc, className) => {\n // if (className.indexOf('humany_') === 0) {\n // acc = className.replace('humany_', '');\n // }\n // return acc;\n // },\n // undefined\n // );\n\n // if (!widgetName) {\n // return;\n // }\n\n // const widget = (window as any).humany.widgets.find(widgetName);\n // return widget;\n};\n","import { Widget } from '@webprovisions/platform';\nimport { getWidget } from '../utils/get-widget';\n\nexport class WidgetController {\n host: any;\n widget: Widget | undefined;\n\n constructor(host: any) {\n (this.host = host).addController(this);\n }\n\n hostConnected() {\n this.widget = getWidget(this.host);\n }\n}\n","import { LitElement } from 'lit';\n\nexport declare class ProviderInterface {\n provideInstance(key: string, instance: any): void;\n}\n\ntype Constructor<T = {}> = new (...args: any[]) => T;\n\nexport const Provider = <T extends Constructor<LitElement>>(Base: T) => {\n class ProviderClass extends Base {\n _instances = new Map();\n\n constructor(...args: any[]) {\n super();\n\n this.addEventListener('request-instance', (event: any) => {\n const key = event.detail.key;\n console.log('listener fired');\n\n if (this._instances.has(key)) {\n event.detail.instance = this._instances.get(key);\n event.stopPropagation();\n }\n });\n }\n\n provideInstance(key: string, instance: any) {\n console.log('providing instance', key, instance);\n this._instances.set(key, instance);\n }\n }\n\n return ProviderClass as Constructor<ProviderInterface> & T;\n};\n","import { ComponentPlatform, ComponentResolver } from '@telia-ace/widget-core';\nimport { EventSubscriptionCancellation } from '@webprovisions/platform';\nimport { css, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { html, unsafeStatic } from 'lit/static-html.js';\nimport { WidgetController } from '../controllers/widget-controller';\nimport { Provider } from '../mixins/provider';\nimport { resolveComponent } from '../utils/resolve-component';\n// import {\n// GuideList,\n// Paragraph,\n// ItemList,\n// List,\n// SymbolBadge,\n// Text,\n// Html,\n// Button,\n// Typography,\n// TextLink,\n// } from 'ui'; // TODO: this is not how we want to register the ui elements\n\n// @customElement('widget-root')\nexport class WidgetRoot extends Provider(LitElement) {\n controller = new WidgetController(this);\n platform: ComponentPlatform | undefined;\n unsubscribe: EventSubscriptionCancellation | undefined;\n\n static styles = [\n css`\n :host {\n --gap: 0;\n --fonts-type: 'Lato';\n --fonts-small: 0.9em;\n --fonts-normal: 1em;\n --fonts-medium: 1.1em;\n --fonts-huge: 1.4em;\n --fonts-large: 1.1em;\n --colors-accent: #fafafa;\n --colors-link: #990ae3;\n --colors-primary: #990ae3;\n --colors-text: #333333;\n --colors-textLight: #767676;\n --colors-warning: #cc0000;\n --accessibility-border: 2px dashed #990ae3;\n --accessibility-colors-inactiveText: #990ae3;\n --accessibility-colors-activeText: #ffffff;\n --inputBorder: 1px solid #000000;\n --border: 1px solid #000000;\n --borderRadius: 5px;\n --boxShadow: 0px 0px 10px rgba(0, 0, 0, 0.1);\n --cardinal: 3px;\n --size-small: var(--cardinal);\n --size-normal: calc(var(--cardinal) * 3);\n --size-medium: calc(var(--cardinal) * 5);\n --size-large: calc(var(--cardinal) * 8);\n --size-huge: calc(var(--cardinal) * 12);\n\n --typography-h1: h2;\n }\n `,\n ];\n\n @state()\n declare _entry: string | null;\n @property()\n declare widgetName: string;\n\n @state()\n declare _child: { tag: string; nodeId: string } | null;\n\n constructor() {\n super();\n this._child = null;\n this._entry = null;\n // this._installRoutes();\n }\n\n // _installRoutes() {\n // page('/browse', this._browseRoute);\n // page('*', this._notFoundRoute);\n // page();\n // }\n\n // _browseRoute() {\n // console.log('browse route');\n // }\n\n // _notFoundRoute() {\n // console.log('not found route');\n // }\n\n connectedCallback() {\n super.connectedCallback();\n\n if (this.controller.widget) {\n this.provideInstance('container', this.controller.widget.container);\n\n Promise.all([\n ComponentPlatform.getInstance(this.controller.widget.container),\n this.controller.widget.container.getAsync('componentResolver'),\n ]).then(async (values) => {\n this.platform = values[0];\n const resolver: ComponentResolver = values[1];\n\n this.unsubscribe = this.platform.events.subscribe(\n 'components:root-children-changed',\n (event: any, { node }: any) => {\n if (node.parent && node.parent.type === 'root') {\n this._entry = node.parent.children.default[0].id;\n }\n }\n );\n\n this._entry = this.platform.nodes.root.children.default[0].id || null;\n\n if (!this._entry) {\n console.warn('Could not get node ID for entry node on the ComponentPlatform.');\n return;\n }\n\n this._child =\n (await resolveComponent(this._entry, resolver, this.platform)) || null;\n });\n }\n }\n\n render() {\n // return html`<div>WidgetRootx</div>`;\n if (!this._child) {\n return nothing;\n }\n\n return html` <${unsafeStatic(this._child.tag)} nodeId=${this._child.nodeId} /> `;\n }\n}\n","import { Container } from '@webprovisions/platform';\nimport './widget-component';\nimport { WidgetRoot } from './widget-root';\n\ncustomElements.define('widget-root', WidgetRoot);\n\nexport default (widgetName: string, container: Container, element: HTMLElement) => {\n const root = document.createElement('widget-root');\n root.setAttribute('widgetName', widgetName);\n element.appendChild(root);\n};\n"],"names":["i","e","__spreadProps","__spreadValues","n","t","r","s","o","l","h","d","u","c","v","a","f","_","m","p","$","g","y","b","T","A","E","C","M","k","H","P","V","N","I","R","z","getWidget","elem","root","widgetName","acc","className","WidgetController","host","Provider","Base","ProviderClass","args","event","key","instance","WidgetRoot","LitElement","ComponentPlatform","values","__async","resolver","node","resolveComponent","html","unsafeStatic","nothing","css","__decorateClass","state","property","render","container","element"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,MAAMA,KAAE,CAACA,GAAEC,MAAeA,EAAE,SAAb,YAAmBA,EAAE,cAAY,EAAE,WAAUA,EAAE,cAAYC,EAAAC,EAAA,IAAIF,IAAJ,EAAM,SAASG,GAAE;AAAC,EAAAA,EAAE,eAAeH,EAAE,KAAID,CAAC;AAAC,EAAC,KAAE,EAAC,MAAK,SAAQ,KAAI,UAAS,WAAU,OAAM,YAAW,IAAG,aAAYC,EAAE,KAAI,cAAa;AAAC,EAAY,OAAOA,EAAE,eAArB,eAAmC,KAAKA,EAAE,OAAKA,EAAE,YAAY,KAAK,IAAI;AAAE,GAAE,SAASG,GAAE;AAAC,EAAAA,EAAE,eAAeH,EAAE,KAAID,CAAC;AAAC,EAAC;AAAE,SAASC,EAAEA,GAAE;AAAC,SAAM,CAACG,GAAEC,MAAaA,MAAT,UAAY,CAACL,GAAEC,GAAEG,MAAI;AAAC,IAAAH,EAAE,YAAY,eAAeG,GAAEJ,CAAC;AAAA,EAAC,GAAGC,GAAEG,GAAEC,CAAC,IAAEL,GAAEC,GAAEG,CAAC;AAAC;ACJra;AAAA;AAAA;AAAA;AAAA;AAIG,SAASC,EAAEA,GAAE;AAAC,SAAOC,EAAEJ,EAAAC,EAAA,IAAIE,IAAJ,EAAM,OAAM,GAAE,EAAC;AAAC;ACJ1C;AAAA;AAAA;AAAA;AAAA;AAIG,IAAID;AAAAA,EAAyBA,IAAE,OAAO,qBAAjB,QAA4CA,MAAT,SAAW,SAAOA,EAAE,UAAU,qBAAxE;ACLjB;AAAA;AAAA;AAAA;AAAA;AAKA,IAAIC;AAAO,MAACL,IAAE,QAAOO,IAAEP,EAAE,cAAaC,IAAEM,IAAEA,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAF,MAAGA,EAAC,CAAC,IAAE,QAAOG,IAAE,QAAQ,KAAK,OAAM,IAAG,IAAI,MAAM,CAAC,MAAKJ,IAAE,MAAII,GAAEC,KAAE,IAAIL,MAAKM,IAAE,UAASJ,IAAE,CAACD,IAAE,OAAKK,EAAE,cAAcL,CAAC,GAAEM,IAAE,CAAAN,MAAUA,MAAP,QAAoB,OAAOA,KAAjB,YAAgC,OAAOA,KAAnB,YAAqBO,IAAE,MAAM,SAAQC,KAAE,CAAAR,MAAGO,EAAEP,CAAC,KAAe,QAAaA,KAAN,OAAQ,SAAOA,EAAE,OAAO,cAA3C,YAAsDS,IAAE,uDAAsDC,IAAE,QAAOC,IAAE,MAAKC,IAAE,OAAO;AAAA;AAAA;AAAA;AAAA,2BAA+F,GAAG,GAAEC,IAAE,MAAKC,IAAE,MAAKC,IAAE,sCAAqCC,KAAE,CAAAhB,MAAG,CAACL,MAAKO,OAAK,EAAC,YAAWF,GAAE,SAAQL,GAAE,QAAOO,EAAC,IAAGe,KAAED,GAAE,CAAC,GAAS,IAAE,OAAO,IAAI,cAAc,GAAEE,IAAE,OAAO,IAAI,aAAa,GAAEC,IAAE,oBAAI,WAAQC,IAAEf,EAAE,iBAAiBA,GAAE,KAAI,MAAK,EAAE,GAAEgB,KAAE,CAACrB,GAAEL,MAAI;AAAC,QAAMO,IAAEF,EAAE,SAAO,GAAED,IAAE,CAAA;AAAG,MAAIM,GAAE,IAAMV,MAAJ,IAAM,UAAQ,IAAGW,IAAEG;AAAE,WAAQd,IAAE,GAAEA,IAAEO,GAAEP,KAAI;AAAC,UAAMO,IAAEF,EAAEL;AAAG,QAAIC,GAAEW,GAAEC,IAAE,IAAGQ,IAAE;AAAE,WAAKA,IAAEd,EAAE,WAASI,EAAE,YAAUU,GAAET,IAAED,EAAE,KAAKJ,CAAC,GAASK,MAAP;AAAW,MAAAS,IAAEV,EAAE,WAAUA,MAAIG,IAAUF,EAAE,OAAV,QAAaD,IAAEI,IAAWH,EAAE,OAAX,SAAcD,IAAEK,IAAWJ,EAAE,OAAX,UAAeQ,EAAE,KAAKR,EAAE,EAAE,MAAIF,IAAE,OAAO,OAAKE,EAAE,IAAG,GAAG,IAAGD,IAAEM,KAAYL,EAAE,OAAX,WAAgBD,IAAEM,KAAGN,MAAIM,IAAQL,EAAE,OAAR,OAAYD,IAAQD,KAAN,OAAQA,IAAEI,GAAED,IAAE,MAAaD,EAAE,OAAX,SAAcC,IAAE,MAAIA,IAAEF,EAAE,YAAUC,EAAE,GAAG,QAAOX,IAAEW,EAAE,IAAGD,IAAWC,EAAE,OAAX,SAAcK,IAAQL,EAAE,OAAR,MAAWO,IAAED,KAAGP,MAAIQ,KAAGR,MAAIO,IAAEP,IAAEM,IAAEN,MAAII,KAAGJ,MAAIK,IAAEL,IAAEG,KAAGH,IAAEM,GAAEP,IAAE;AAAQ,UAAMY,IAAEX,MAAIM,KAAGZ,EAAEL,IAAE,GAAG,WAAW,IAAI,IAAE,MAAI;AAAG,SAAGW,MAAIG,IAAEP,IAAEE,KAAEI,KAAG,KAAGT,EAAE,KAAKH,CAAC,GAAEM,EAAE,MAAM,GAAEM,CAAC,IAAE,UAAQN,EAAE,MAAMM,CAAC,IAAEL,IAAEc,KAAGf,IAAEC,KAAQK,MAAL,MAAQT,EAAE,KAAK,MAAM,GAAEJ,KAAGsB;AAAA,EAAE;AAAC,QAAMV,IAAE,KAAGP,EAAEE,MAAI,UAAYP,MAAJ,IAAM,WAAS;AAAI,MAAG,CAAC,MAAM,QAAQK,CAAC,KAAG,CAACA,EAAE,eAAe,KAAK;AAAE,UAAM,MAAM,gCAAgC;AAAE,SAAM,CAAUJ,MAAT,SAAWA,EAAE,WAAWW,CAAC,IAAEA,GAAER,CAAC;AAAC;AAAE,MAAMuB,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQ,GAAE,YAAW3B,EAAC,GAAEC,GAAE;AAAC,QAAIQ;AAAE,SAAK,QAAM,CAAE;AAAC,QAAIC,IAAE,GAAEC,IAAE;AAAE,UAAMC,IAAE,EAAE,SAAO,GAAEC,IAAE,KAAK,OAAM,CAACC,GAAEC,CAAC,IAAEW,GAAE,GAAE1B,CAAC;AAAE,QAAG,KAAK,KAAG2B,EAAE,cAAcb,GAAEb,CAAC,GAAEwB,EAAE,cAAY,KAAK,GAAG,SAAYzB,MAAJ,GAAM;AAAC,YAAMK,IAAE,KAAK,GAAG,SAAQL,IAAEK,EAAE;AAAW,MAAAL,EAAE,OAAQ,GAACK,EAAE,OAAO,GAAGL,EAAE,UAAU;AAAA,IAAC;AAAC,YAAaS,IAAEgB,EAAE,SAAU,OAAtB,QAAyBZ,EAAE,SAAOD,KAAG;AAAC,UAAOH,EAAE,aAAN,GAAe;AAAC,YAAGA,EAAE,cAAa,GAAG;AAAC,gBAAMJ,IAAE,CAAE;AAAC,qBAAUL,KAAKS,EAAE,kBAAmB;AAAC,gBAAGT,EAAE,SAAS,OAAO,KAAGA,EAAE,WAAWQ,CAAC,GAAE;AAAC,oBAAMD,IAAEQ,EAAEJ;AAAK,kBAAGN,EAAE,KAAKL,CAAC,GAAWO,MAAT,QAAW;AAAC,sBAAMF,IAAEI,EAAE,aAAaF,EAAE,YAAW,IAAG,OAAO,EAAE,MAAMC,CAAC,GAAER,IAAE,eAAe,KAAKO,CAAC;AAAE,gBAAAM,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,GAAE,MAAKV,EAAE,IAAG,SAAQK,GAAE,MAAWL,EAAE,OAAR,MAAW4B,KAAQ5B,EAAE,OAAR,MAAW6B,KAAQ7B,EAAE,OAAR,MAAW8B,KAAE,EAAC,CAAC;AAAA,cAAC;AAAM,gBAAAjB,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC;AAAA,YAAC;AAAC,qBAAUV,KAAKK;AAAE,YAAAI,EAAE,gBAAgBT,CAAC;AAAA,QAAC;AAAC,YAAGoB,EAAE,KAAKX,EAAE,OAAO,GAAE;AAAC,gBAAMJ,IAAEI,EAAE,YAAY,MAAMD,CAAC,GAAER,IAAEK,EAAE,SAAO;AAAE,cAAGL,IAAE,GAAE;AAAC,YAAAS,EAAE,cAAYF,IAAEA,EAAE,cAAY;AAAG,qBAAQA,IAAE,GAAEA,IAAEP,GAAEO;AAAI,cAAAE,EAAE,OAAOJ,EAAEE,IAAGD,EAAC,CAAE,GAAEmB,EAAE,YAAWZ,EAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAEH,EAAC,CAAC;AAAE,YAAAD,EAAE,OAAOJ,EAAEL,IAAGM,EAAC,CAAE;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAaG,EAAE,aAAN;AAAe,YAAGA,EAAE,SAAOL;AAAE,UAAAS,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC;AAAA,aAAM;AAAC,cAAIL,IAAE;AAAG,kBAAWA,IAAEI,EAAE,KAAK,QAAQD,GAAEH,IAAE,CAAC,OAA5B;AAAgC,YAAAQ,EAAE,KAAK,EAAC,MAAK,GAAE,OAAMH,EAAC,CAAC,GAAEL,KAAGG,EAAE,SAAO;AAAA,QAAC;AAAC,MAAAE;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAc,GAAEV,GAAE;AAAC,UAAM,IAAEU,EAAE,cAAc,UAAU;AAAE,WAAO,EAAE,YAAU,GAAE;AAAA,EAAC;AAAC;AAAC,SAASqB,EAAE1B,GAAEL,GAAEO,IAAEF,GAAEJ,GAAE;AAAC,MAAIO,GAAEJ,GAAEK,GAAEC;AAAE,MAAGV,MAAI;AAAE,WAAOA;AAAE,MAAIM,IAAWL,MAAT,UAAmBO,IAAED,EAAE,UAAZ,QAA4BC,MAAT,SAAW,SAAOA,EAAEP,KAAGM,EAAE;AAAK,QAAMK,IAAED,EAAEX,CAAC,IAAE,SAAOA,EAAE;AAAgB,UAAaM,KAAN,OAAQ,SAAOA,EAAE,iBAAeM,OAAYR,IAAQE,KAAN,OAAQ,SAAOA,EAAE,UAA3B,QAA2CF,MAAT,UAAYA,EAAE,KAAKE,GAAE,EAAE,GAAWM,MAAT,SAAWN,IAAE,UAAQA,IAAE,IAAIM,EAAEP,CAAC,GAAEC,EAAE,KAAKD,GAAEE,GAAEN,CAAC,IAAYA,MAAT,WAAoBQ,KAAGC,IAAEH,GAAG,UAAhB,QAAgCE,MAAT,SAAWA,IAAEC,EAAE,OAAK,CAAE,GAAET,KAAGK,IAAEC,EAAE,OAAKD,IAAYA,MAAT,WAAaN,IAAE+B,EAAE1B,GAAEC,EAAE,KAAKD,GAAEL,EAAE,MAAM,GAAEM,GAAEL,CAAC,IAAGD;AAAC;AAAC,MAAMgC,GAAC;AAAA,EAAC,YAAY,GAAEhC,GAAE;AAAC,SAAK,IAAE,CAAE,GAAC,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIA;AAAE,UAAK,EAAC,IAAG,EAAC,SAAQ,EAAC,GAAE,OAAMC,EAAC,IAAE,KAAK,MAAKO,MAAWR,IAAQ,KAAN,OAAQ,SAAO,EAAE,mBAA3B,QAAoDA,MAAT,SAAWA,IAAEU,GAAG,WAAW,GAAE,EAAE;AAAE,IAAAe,EAAE,cAAYjB;AAAE,QAAIJ,IAAEqB,EAAE,SAAQ,GAAGhB,IAAE,GAAEH,IAAE,GAAEK,IAAEV,EAAE;AAAG,WAAcU,MAAT,UAAY;AAAC,UAAGF,MAAIE,EAAE,OAAM;AAAC,YAAIX;AAAE,QAAIW,EAAE,SAAN,IAAWX,IAAE,IAAIiC,EAAE7B,GAAEA,EAAE,aAAY,MAAK,CAAC,IAAMO,EAAE,SAAN,IAAWX,IAAE,IAAIW,EAAE,KAAKP,GAAEO,EAAE,MAAKA,EAAE,SAAQ,MAAK,CAAC,IAAMA,EAAE,SAAN,MAAaX,IAAE,IAAIkC,GAAE9B,GAAE,MAAK,CAAC,IAAG,KAAK,EAAE,KAAKJ,CAAC,GAAEW,IAAEV,EAAE,EAAEK;AAAA,MAAE;AAAC,MAAAG,OAAWE,KAAN,OAAQ,SAAOA,EAAE,WAASP,IAAEqB,EAAE,SAAQ,GAAGhB;AAAA,IAAI;AAAC,WAAOD;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIR,IAAE;AAAE,eAAU,KAAK,KAAK;AAAE,MAAS,MAAT,WAAsB,EAAE,YAAX,UAAoB,EAAE,KAAK,GAAE,GAAEA,CAAC,GAAEA,KAAG,EAAE,QAAQ,SAAO,KAAG,EAAE,KAAK,EAAEA,EAAE,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAMiC,EAAC;AAAA,EAAC,YAAY,GAAEjC,GAAE,GAAEC,GAAE;AAAC,QAAIO;AAAE,SAAK,OAAK,GAAE,KAAK,OAAKe,GAAE,KAAK,OAAK,QAAO,KAAK,OAAK,GAAE,KAAK,OAAKvB,GAAE,KAAK,OAAK,GAAE,KAAK,UAAQC,GAAE,KAAK,QAAaO,IAAQP,KAAN,OAAQ,SAAOA,EAAE,iBAA3B,QAAkDO,MAAT,UAAYA;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,QAAI,GAAER;AAAE,YAAeA,KAAU,IAAE,KAAK,UAAf,QAA+B,MAAT,SAAW,SAAO,EAAE,UAApD,QAAoEA,MAAT,SAAWA,IAAE,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,aAAY;AAAC,QAAI,IAAE,KAAK,KAAK;AAAW,UAAMA,IAAE,KAAK;AAAK,WAAgBA,MAAT,UAAiB,EAAE,aAAP,OAAkB,IAAEA,EAAE,aAAY;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEA,IAAE,MAAK;AAAC,QAAE+B,EAAE,MAAK,GAAE/B,CAAC,GAAEW,EAAE,CAAC,IAAE,MAAIY,KAAS,KAAN,QAAc,MAAL,MAAQ,KAAK,SAAOA,KAAG,KAAK,KAAM,GAAC,KAAK,OAAKA,KAAG,MAAI,KAAK,QAAM,MAAI,KAAG,KAAK,EAAE,CAAC,IAAW,EAAE,eAAX,SAAsB,KAAK,EAAE,CAAC,IAAW,EAAE,aAAX,SAAoB,KAAK,EAAE,CAAC,IAAEV,GAAE,CAAC,IAAE,KAAK,EAAE,CAAC,IAAE,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAEb,IAAE,KAAK,MAAK;AAAC,WAAO,KAAK,KAAK,WAAW,aAAa,GAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAO,MAAI,KAAK,KAAI,GAAG,KAAK,OAAK,KAAK,EAAE,CAAC;AAAA,EAAE;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,SAAOuB,KAAGZ,EAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAK,IAAE,KAAK,EAAED,EAAE,eAAe,CAAC,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,QAAIV;AAAE,UAAK,EAAC,QAAO,GAAE,YAAWC,EAAC,IAAE,GAAEO,IAAY,OAAOP,KAAjB,WAAmB,KAAK,KAAK,CAAC,KAAYA,EAAE,OAAX,WAAgBA,EAAE,KAAG0B,EAAE,cAAc1B,EAAE,GAAE,KAAK,OAAO,IAAGA;AAAG,UAAYD,IAAE,KAAK,UAAf,QAA+BA,MAAT,SAAW,SAAOA,EAAE,UAAQQ;AAAE,WAAK,KAAK,EAAE,CAAC;AAAA,SAAM;AAAC,YAAMH,IAAE,IAAI2B,GAAExB,GAAE,IAAI,GAAER,IAAEK,EAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,EAAE,EAAE,CAAC,GAAE,KAAK,EAAEL,CAAC,GAAE,KAAK,OAAKK;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAK,GAAE;AAAC,QAAIL,IAAEwB,EAAE,IAAI,EAAE,OAAO;AAAE,WAAgBxB,MAAT,UAAYwB,EAAE,IAAI,EAAE,SAAQxB,IAAE,IAAI2B,EAAE,CAAC,CAAC,GAAE3B;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,IAAAY,EAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAE,GAAC,KAAK,KAAM;AAAE,UAAMZ,IAAE,KAAK;AAAK,QAAI,GAAEC,IAAE;AAAE,eAAUO,KAAK;AAAE,MAAAP,MAAID,EAAE,SAAOA,EAAE,KAAK,IAAE,IAAIiC,EAAE,KAAK,EAAE3B,EAAG,CAAA,GAAE,KAAK,EAAEA,EAAC,CAAE,GAAE,MAAK,KAAK,OAAO,CAAC,IAAE,IAAEN,EAAEC,IAAG,EAAE,KAAKO,CAAC,GAAEP;AAAI,IAAAA,IAAED,EAAE,WAAS,KAAK,KAAK,KAAG,EAAE,KAAK,aAAYC,CAAC,GAAED,EAAE,SAAOC;AAAA,EAAE;AAAA,EAAC,KAAK,IAAE,KAAK,KAAK,aAAYD,GAAE;AAAC,QAAI;AAAE,UAAY,IAAE,KAAK,UAAf,QAA+B,MAAT,UAAY,EAAE,KAAK,MAAK,IAAG,IAAGA,CAAC,GAAE,KAAG,MAAI,KAAK,QAAM;AAAC,YAAM,IAAE,EAAE;AAAY,QAAE,OAAQ,GAAC,IAAE;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAa,GAAE;AAAC,QAAIA;AAAE,IAAS,KAAK,SAAd,WAAqB,KAAK,OAAK,IAAUA,IAAE,KAAK,UAAf,QAA+BA,MAAT,UAAYA,EAAE,KAAK,MAAK,CAAC;AAAA,EAAE;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAY,GAAEA,GAAE,GAAEC,GAAEO,GAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAKe,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQ,GAAE,KAAK,OAAKvB,GAAE,KAAK,OAAKC,GAAE,KAAK,UAAQO,GAAE,EAAE,SAAO,KAAQ,EAAE,OAAP,MAAgB,EAAE,OAAP,MAAW,KAAK,OAAK,MAAM,EAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQ,KAAG,KAAK,OAAKe;AAAA,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAEvB,IAAE,MAAK,GAAEC,GAAE;AAAC,UAAMO,IAAE,KAAK;AAAQ,QAAIJ,IAAE;AAAG,QAAYI,MAAT;AAAW,UAAEuB,EAAE,MAAK,GAAE/B,GAAE,CAAC,GAAEI,IAAE,CAACO,EAAE,CAAC,KAAG,MAAI,KAAK,QAAM,MAAI,GAAEP,MAAI,KAAK,OAAK;AAAA,SAAO;AAAC,YAAMH,IAAE;AAAE,UAAI,GAAE;AAAE,WAAI,IAAEO,EAAE,IAAG,IAAE,GAAE,IAAEA,EAAE,SAAO,GAAE;AAAI,YAAEuB,EAAE,MAAK9B,EAAE,IAAE,IAAGD,GAAE,CAAC,GAAE,MAAI,MAAI,IAAE,KAAK,KAAK,KAAII,MAAIA,IAAE,CAACO,EAAE,CAAC,KAAG,MAAI,KAAK,KAAK,KAAI,MAAIY,IAAE,IAAEA,IAAE,MAAIA,MAAI,MAAU,KAAN,OAAQ,IAAE,MAAIf,EAAE,IAAE,KAAI,KAAK,KAAK,KAAG;AAAA,IAAC;AAAC,IAAAJ,KAAG,CAACH,KAAG,KAAK,EAAE,CAAC;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,UAAIsB,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAW,KAAN,OAAQ,IAAE,EAAE;AAAA,EAAC;AAAC;AAAC,MAAMK,WAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAK,QAAQ,KAAK,QAAM,MAAIL,IAAE,SAAO;AAAA,EAAC;AAAC;AAAC,MAAMY,KAAE5B,IAAEA,EAAE,cAAY;AAAG,MAAMsB,WAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAE,GAAE;AAAC,SAAG,MAAIN,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAKY,EAAC,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI;AAAA,EAAC;AAAC;AAAC,MAAML,WAAU,EAAC;AAAA,EAAC,YAAY,GAAE9B,GAAE,GAAEC,GAAEO,GAAE;AAAC,UAAM,GAAER,GAAE,GAAEC,GAAEO,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAK,GAAER,IAAE,MAAK;AAAC,QAAI;AAAE,SAAI,KAAU,IAAE+B,EAAE,MAAK,GAAE/B,GAAE,CAAC,OAAtB,QAAmC,MAAT,SAAW,IAAEuB,OAAK;AAAE;AAAO,UAAMtB,IAAE,KAAK,MAAKO,IAAE,MAAIe,KAAGtB,MAAIsB,KAAG,EAAE,YAAUtB,EAAE,WAAS,EAAE,SAAOA,EAAE,QAAM,EAAE,YAAUA,EAAE,SAAQG,IAAE,MAAImB,MAAItB,MAAIsB,KAAGf;AAAG,IAAAA,KAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKP,CAAC,GAAEG,KAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAK,CAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,YAAY,GAAE;AAAC,QAAIJ,GAAE;AAAE,IAAY,OAAO,KAAK,QAAxB,aAA6B,KAAK,KAAK,MAAa,KAAUA,IAAE,KAAK,aAAf,QAAkCA,MAAT,SAAW,SAAOA,EAAE,UAAvD,QAAuE,MAAT,SAAW,IAAE,KAAK,SAAQ,CAAC,IAAE,KAAK,KAAK,YAAY,CAAC;AAAA,EAAC;AAAC;AAAC,MAAMkC,GAAC;AAAA,EAAC,YAAY,GAAElC,GAAE,GAAE;AAAC,SAAK,UAAQ,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKA,GAAE,KAAK,UAAQ;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAK,GAAE;AAAC,IAAA+B,EAAE,MAAK,CAAC;AAAA,EAAC;AAAC;AAAM,MAAmEK,IAAEpC,EAAE;AAA6BoC,KAAN,QAASA,EAAET,GAAEM,CAAC,KAAW5B,IAAEL,EAAE,qBAAZ,QAAuCK,MAAT,SAAWA,IAAEL,EAAE,kBAAgB,IAAI,KAAK,OAAO;ACJz5O;AAAA;AAAA;AAAA;AAAA;AAIQ,MAACC,IAAE,OAAO,IAAI,EAAE,GAAEQ,KAAE,CAAAJ,MAAG;AAAC,OAAUA,KAAN,OAAQ,SAAOA,EAAE,OAAKJ;AAAE,WAAaI,KAAN,OAAQ,SAAOA,EAAE;AAAY,GAAEG,KAAE,CAAAH,OAAI,EAAC,cAAaA,GAAE,GAAEJ,EAAC,IAAyTM,IAAE,oBAAI,OAAIQ,KAAE,CAAAV,MAAG,CAACC,MAAK,MAAI;AAAC,QAAME,IAAE,EAAE;AAAO,MAAI,GAAEO;AAAE,QAAMX,IAAE,CAAA,GAAGQ,IAAE,CAAA;AAAG,MAAIC,GAAEO,IAAE,GAAEJ,IAAE;AAAG,SAAKI,IAAEZ,KAAG;AAAC,SAAIK,IAAEP,EAAEc,IAAGA,IAAEZ,MAAaO,IAAE,EAAEK,KAAG,IAAEX,GAAEM,CAAC,OAAtB;AAA0B,MAAAF,KAAG,IAAEP,EAAE,EAAEc,IAAGJ,IAAE;AAAG,IAAAJ,EAAE,KAAKG,CAAC,GAAEX,EAAE,KAAKS,CAAC,GAAEO;AAAA,EAAG;AAAC,MAAGA,MAAIZ,KAAGJ,EAAE,KAAKE,EAAEE,EAAE,GAAEQ,GAAE;AAAC,UAAMX,IAAED,EAAE,KAAK,SAAS;AAAE,KAAUE,IAAEC,EAAE,IAAIF,CAAC,OAAnB,WAAwBD,EAAE,MAAIA,GAAEG,EAAE,IAAIF,GAAEC,IAAEF,CAAC,IAAG,IAAEQ;AAAA,EAAC;AAAC,SAAOP,EAAEC,GAAE,GAAG,CAAC;AAAC,GAAEF,KAAEW,GAAEV,EAAC,GCqBptBgC,KAAY,CAACC,MAA2B;AAC7C,QAAAC,IAAOD,EAAK;AAEd,MAAAA,EAAK,aAAa,YAAY;AAKzB,WAJS,OAAe,OAAO,QAAQ;AAAA,MAC5CA,EAAK,aAAa,YAAY;AAAA,IAAA;AAIvB,MAAAA,EAAK,UAAU,SAAS,eAAe,GAAG;AACnD,UAAME,IAAa,MAAM,KAAKF,EAAK,SAAS,EAAE;AAAA,MAC5C,CAACG,GAAKC,OACAA,EAAU,QAAQ,SAAS,MAAM,MAC7BD,IAAAC,EAAU,QAAQ,WAAW,EAAE,IAEhCD;AAAA,MAET;AAAA,IAAA;AAIK,WAFS,OAAe,OAAO,QAAQ,KAAKD,CAAU;AAAA,EAG/D;AAEI,SAACD,EAAK,OAIHF,GAAUE,EAAK,IAAI,IAHjB;AA4BX;AC5EO,MAAMI,GAAiB;AAAA,EAI5B,YAAYC,GAAW;AACrB,KAAC,KAAK,OAAOA,GAAM,cAAc,IAAI;AAAA,EACvC;AAAA,EAEA,gBAAgB;AACT,SAAA,SAASP,GAAU,KAAK,IAAI;AAAA,EACnC;AACF;ACNa,MAAAQ,KAAW,CAAoCC,MAAY;AACtE,QAAMC,UAAsBD,EAAK;AAAA,IAG/B,eAAeE,GAAa;AACpB,eAHR,KAAA,iCAAiB,OAKV,KAAA,iBAAiB,oBAAoB,CAACC,MAAe;AAClD,cAAAC,IAAMD,EAAM,OAAO;AACzB,gBAAQ,IAAI,gBAAgB,GAExB,KAAK,WAAW,IAAIC,CAAG,MACzBD,EAAM,OAAO,WAAW,KAAK,WAAW,IAAIC,CAAG,GAC/CD,EAAM,gBAAgB;AAAA,MACxB,CACD;AAAA,IACH;AAAA,IAEA,gBAAgBC,GAAaC,GAAe;AAClC,cAAA,IAAI,sBAAsBD,GAAKC,CAAQ,GAC1C,KAAA,WAAW,IAAID,GAAKC,CAAQ;AAAA,IACnC;AAAA,EACF;AAEO,SAAAJ;AACT;;;;;;ACXa,MAAAK,UAAmBP,GAASQ,EAAU,EAAE;AAAA,EAgDjD,cAAc;AACJ,aAhDG,KAAA,aAAA,IAAIV,GAAiB,IAAI,GAiDlC,KAAK,SAAS,MACd,KAAK,SAAS;AAAA,EAElB;AAAA,EAgBA,oBAAoB;AAChB,UAAM,kBAAkB,GAEpB,KAAK,WAAW,WAChB,KAAK,gBAAgB,aAAa,KAAK,WAAW,OAAO,SAAS,GAElE,QAAQ,IAAI;AAAA,MACRW,GAAkB,YAAY,KAAK,WAAW,OAAO,SAAS;AAAA,MAC9D,KAAK,WAAW,OAAO,UAAU,SAAS,mBAAmB;AAAA,IAAA,CAChE,EAAE,KAAK,CAAOC,MAAWC,EAAA;AACtB,WAAK,WAAWD,EAAO;AACvB,YAAME,IAA8BF,EAAO;AAavC,UAXC,KAAA,cAAc,KAAK,SAAS,OAAO;AAAA,QACpC;AAAA,QACA,CAACN,GAAY,EAAE,MAAAS,QAAgB;AAC3B,UAAIA,EAAK,UAAUA,EAAK,OAAO,SAAS,WACpC,KAAK,SAASA,EAAK,OAAO,SAAS,QAAQ,GAAG;AAAA,QAEtD;AAAA,MAAA,GAGC,KAAA,SAAS,KAAK,SAAS,MAAM,KAAK,SAAS,QAAQ,GAAG,MAAM,MAE7D,CAAC,KAAK,QAAQ;AACd,gBAAQ,KAAK,gEAAgE;AAC7E;AAAA,MACJ;AAEK,WAAA,UACA,MAAMC,GAAiB,KAAK,QAAQF,GAAU,KAAK,QAAQ,MAAM;AAAA,IAAA,EACzE;AAAA,EAET;AAAA,EAEA,SAAS;AAED,WAAC,KAAK,SAIHG,OAASC,GAAa,KAAK,OAAO,GAAG,YAAY,KAAK,OAAO,eAHzDC;AAAA,EAIf;AACJ;AAhHaV,EAKF,SAAS;AAAA,EACZW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCJ;AAGQC,EAAA;AAAA,EADPC,EAAM;AAAA,GAxCEb,EAyCD,WAAA,UAAA,CAAA;AAEAY,EAAA;AAAA,EADPE,EAAS;AAAA,GA1CDd,EA2CD,WAAA,cAAA,CAAA;AAGAY,EAAA;AAAA,EADPC,EAAM;AAAA,GA7CEb,EA8CD,WAAA,UAAA,CAAA;AChEZ,eAAe,OAAO,eAAeA,CAAU;AAE/C,MAAAe,KAAe,CAAC3B,GAAoB4B,GAAsBC,MAAyB;AACzE,QAAA9B,IAAO,SAAS,cAAc,aAAa;AAC5C,EAAAA,EAAA,aAAa,cAAcC,CAAU,GAC1C6B,EAAQ,YAAY9B,CAAI;AAC5B;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/widget-types-grid",
3
- "version": "1.0.30-experimental.3",
3
+ "version": "1.0.30-experimental.4",
4
4
  "description": "Type definition for Grid widget.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -23,12 +23,12 @@
23
23
  "dependencies": {
24
24
  "@open-wc/dedupe-mixin": "^1.3.1",
25
25
  "@open-wc/lit-helpers": "^0.5.1",
26
- "@telia-ace/widget-core": "1.0.21-experimental.3",
27
- "@telia-ace/widget-forms": "1.0.28-experimental.3",
28
- "@telia-ace/widget-routing": "1.0.22-experimental.3",
29
- "@telia-ace/widget-services": "1.0.21-experimental.3",
30
- "@telia-ace/widget-ui": "1.0.28-experimental.3",
31
- "@telia-ace/widget-utilities": "1.0.10-experimental.3",
26
+ "@telia-ace/widget-core": "1.0.21-experimental.4",
27
+ "@telia-ace/widget-forms": "1.0.28-experimental.4",
28
+ "@telia-ace/widget-routing": "1.0.22-experimental.4",
29
+ "@telia-ace/widget-services": "1.0.21-experimental.4",
30
+ "@telia-ace/widget-ui": "1.0.28-experimental.4",
31
+ "@telia-ace/widget-utilities": "1.0.10-experimental.4",
32
32
  "@webprovisions/bootstrapping": "^1.0.12",
33
33
  "@webprovisions/platform": "^1.1.2",
34
34
  "lit": "^2.6.0",
@@ -48,7 +48,7 @@
48
48
  "@emotion/cache": "^11.10.5",
49
49
  "@emotion/react": "^11.10.5",
50
50
  "@emotion/styled": "^11.10.5",
51
- "@telia-ace/widget-developer-tools": "1.0.16-experimental.3",
51
+ "@telia-ace/widget-developer-tools": "1.0.16-experimental.4",
52
52
  "@types/react": "^18.0.26",
53
53
  "@types/react-dom": "^18.0.10",
54
54
  "@types/react-router": "^5.1.20",