@ossy/connected-components 0.0.1-alpha → 0.0.1
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/.storybook/main.js +19 -0
- package/.storybook/preview.js +13 -0
- package/build/cjs/index.js +656 -0
- package/build/esm/index.js +638 -0
- package/package.json +50 -14
- package/rollup.config.js +35 -0
- package/src/app/App.jsx +29 -0
- package/src/app/App.stories.jsx +36 -0
- package/src/app/AppSettings.jsx +22 -0
- package/src/app/index.js +3 -0
- package/src/app/useAnalytics.jsx +18 -0
- package/src/index.js +11 -0
- package/src/layout/Layout.jsx +25 -0
- package/src/layout/Layout.stories.jsx +16 -0
- package/src/layout/index.js +1 -0
- package/src/ossybot/Ossybot.jsx +67 -0
- package/src/ossybot/Ossybot.stories.jsx +26 -0
- package/src/ossybot/index.js +1 -0
- package/src/page/Page.jsx +33 -0
- package/src/page/Page.stories.jsx +17 -0
- package/src/page/index.js +1 -0
- package/src/page-data-loader/PageDataLoader.jsx +90 -0
- package/src/page-data-loader/PageDataLoader.stories.jsx +16 -0
- package/src/page-data-loader/index.js +1 -0
- package/src/pages-module/PagesModule.jsx +8 -0
- package/src/pages-module/PagesModule.stories.jsx +17 -0
- package/src/pages-module/index.js +1 -0
- package/src/resume/Resume.jsx +13 -0
- package/src/resume/Resume.stories.jsx +23 -0
- package/src/resume/Resume.template.js +80 -0
- package/src/resume/index.js +3 -0
- package/src/resume/useResume.js +112 -0
- package/src/section/Section.jsx +93 -0
- package/src/section/Section.stories.jsx +17 -0
- package/src/section/index.js +1 -0
- package/src/stories/Button.jsx +39 -0
- package/src/stories/Button.stories.js +49 -0
- package/src/stories/Configure.mdx +364 -0
- package/src/stories/Header.jsx +56 -0
- package/src/stories/Header.stories.js +29 -0
- package/src/stories/Page.jsx +69 -0
- package/src/stories/Page.stories.js +28 -0
- package/src/stories/assets/accessibility.png +0 -0
- package/src/stories/assets/accessibility.svg +1 -0
- package/src/stories/assets/addon-library.png +0 -0
- package/src/stories/assets/assets.png +0 -0
- package/src/stories/assets/avif-test-image.avif +0 -0
- package/src/stories/assets/context.png +0 -0
- package/src/stories/assets/discord.svg +1 -0
- package/src/stories/assets/docs.png +0 -0
- package/src/stories/assets/figma-plugin.png +0 -0
- package/src/stories/assets/github.svg +1 -0
- package/src/stories/assets/share.png +0 -0
- package/src/stories/assets/styling.png +0 -0
- package/src/stories/assets/testing.png +0 -0
- package/src/stories/assets/theming.png +0 -0
- package/src/stories/assets/tutorials.svg +1 -0
- package/src/stories/assets/youtube.svg +1 -0
- package/src/stories/button.css +30 -0
- package/src/stories/header.css +32 -0
- package/src/stories/page.css +68 -0
- package/src/theme-editor/ThemeEditor.jsx +132 -0
- package/src/theme-editor/ThemeEditor.stories.jsx +16 -0
- package/src/theme-editor/index.js +1 -0
- package/src/theme-provider/ThemeProvider.jsx +9 -0
- package/src/theme-provider/ThemeProvider.stories.jsx +16 -0
- package/src/theme-provider/index.js +1 -0
- package/src/use-active-page-location/index.js +1 -0
- package/src/use-active-page-location/useActivePageLocation.js +54 -0
- package/index.cjs.js +0 -1
- package/index.esm.js +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
.storybook-page {
|
|
2
|
+
margin: 0 auto;
|
|
3
|
+
padding: 48px 20px;
|
|
4
|
+
max-width: 600px;
|
|
5
|
+
color: #333;
|
|
6
|
+
font-size: 14px;
|
|
7
|
+
line-height: 24px;
|
|
8
|
+
font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.storybook-page h2 {
|
|
12
|
+
display: inline-block;
|
|
13
|
+
vertical-align: top;
|
|
14
|
+
margin: 0 0 4px;
|
|
15
|
+
font-weight: 700;
|
|
16
|
+
font-size: 32px;
|
|
17
|
+
line-height: 1;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.storybook-page p {
|
|
21
|
+
margin: 1em 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.storybook-page a {
|
|
25
|
+
color: inherit;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.storybook-page ul {
|
|
29
|
+
margin: 1em 0;
|
|
30
|
+
padding-left: 30px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.storybook-page li {
|
|
34
|
+
margin-bottom: 8px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.storybook-page .tip {
|
|
38
|
+
display: inline-block;
|
|
39
|
+
vertical-align: top;
|
|
40
|
+
margin-right: 10px;
|
|
41
|
+
border-radius: 1em;
|
|
42
|
+
background: #e7fdd8;
|
|
43
|
+
padding: 4px 12px;
|
|
44
|
+
color: #357a14;
|
|
45
|
+
font-weight: 700;
|
|
46
|
+
font-size: 11px;
|
|
47
|
+
line-height: 12px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.storybook-page .tip-wrapper {
|
|
51
|
+
margin-top: 40px;
|
|
52
|
+
margin-bottom: 40px;
|
|
53
|
+
font-size: 13px;
|
|
54
|
+
line-height: 20px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.storybook-page .tip-wrapper svg {
|
|
58
|
+
display: inline-block;
|
|
59
|
+
vertical-align: top;
|
|
60
|
+
margin-top: 3px;
|
|
61
|
+
margin-right: 4px;
|
|
62
|
+
width: 12px;
|
|
63
|
+
height: 12px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.storybook-page .tip-wrapper svg path {
|
|
67
|
+
fill: #1ea7fd;
|
|
68
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { useState, useMemo, useCallback, useEffect } from 'react'
|
|
2
|
+
import { useResource } from '@ossy/sdk-react'
|
|
3
|
+
import { Overlay, Button, useTheme, View, Text } from '@ossy/design-system'
|
|
4
|
+
|
|
5
|
+
const overlayStyles = {
|
|
6
|
+
background: 'transparent',
|
|
7
|
+
display: 'content',
|
|
8
|
+
pointerEvents: 'none'
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const blobStyles = {
|
|
12
|
+
boxShadow: '2px 2px 5px hsla(0, 0%, 0%, .2)',
|
|
13
|
+
borderRadius: '999px',
|
|
14
|
+
position: 'absolute',
|
|
15
|
+
right: 'var(--space-m)',
|
|
16
|
+
bottom: 'var(--space-m)',
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
transition: 'transform .5s',
|
|
19
|
+
pointerEvents: 'auto',
|
|
20
|
+
padding: 'var(--space-m)'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const editorContainerStyles = {
|
|
24
|
+
position: 'absolute',
|
|
25
|
+
right: '0',
|
|
26
|
+
top: '0',
|
|
27
|
+
height: '100%',
|
|
28
|
+
width: '100%',
|
|
29
|
+
display: 'flex',
|
|
30
|
+
justifyContent: 'flex-end',
|
|
31
|
+
alignItems: 'stretch',
|
|
32
|
+
padding: '8px 32px'
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const editorStyles = {
|
|
36
|
+
width: '100%',
|
|
37
|
+
maxWidth: '350px',
|
|
38
|
+
height: '100%',
|
|
39
|
+
boxShadow: '2px 2px 5px hsla(0, 0%, 0%, .2)',
|
|
40
|
+
padding: '16px 16px 76px 16px',
|
|
41
|
+
overflowX: 'none',
|
|
42
|
+
overflowY: 'auto',
|
|
43
|
+
pointerEvents: 'auto'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const ThemeSwitcher = () => {
|
|
47
|
+
const { activeTheme, setTheme, themes } = useTheme()
|
|
48
|
+
return (
|
|
49
|
+
<View gap="s">
|
|
50
|
+
<Text>Theme</Text>
|
|
51
|
+
<View layout="row-wrap" gap="s">
|
|
52
|
+
{
|
|
53
|
+
themes.map(themeName => <Button variant={themeName === activeTheme ? 'tag-active' : 'tag'} onClick={() => setTheme(themeName)}>{themeName}</Button>)
|
|
54
|
+
}
|
|
55
|
+
</View>
|
|
56
|
+
</View>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const ThemeEditor = () => {
|
|
61
|
+
const { updateResourceContent } = useResource('PCX53TaGviq4_8KvK-VOp')
|
|
62
|
+
const [isEditorOpen, setIsEditorOpen] = useState(false)
|
|
63
|
+
const [viewCount, setViewCount] = useState(0)
|
|
64
|
+
// const [theme, temporarilyUpdateTheme] = useTheme()
|
|
65
|
+
const theme = {}
|
|
66
|
+
const temporarilyUpdateTheme = () => {}
|
|
67
|
+
|
|
68
|
+
const toggleStyles = useMemo(() => !isEditorOpen
|
|
69
|
+
? blobStyles
|
|
70
|
+
: { ...blobStyles, transform: 'rotate(-45deg)' }, [isEditorOpen])
|
|
71
|
+
|
|
72
|
+
const onToggle = useCallback(() => {
|
|
73
|
+
setIsEditorOpen(!isEditorOpen)
|
|
74
|
+
}, [isEditorOpen, setIsEditorOpen])
|
|
75
|
+
|
|
76
|
+
const onThemeChange = (event) => {
|
|
77
|
+
|
|
78
|
+
const name = event.target.dataset.name
|
|
79
|
+
const updatedValue = event.target.value
|
|
80
|
+
|
|
81
|
+
if (!name) return
|
|
82
|
+
if (!updatedValue) return
|
|
83
|
+
|
|
84
|
+
temporarilyUpdateTheme(theme => ({
|
|
85
|
+
...theme,
|
|
86
|
+
[name]: updatedValue
|
|
87
|
+
}))
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const onSaveTheme = event => {
|
|
92
|
+
event.preventDefault()
|
|
93
|
+
updateResourceContent(theme)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (!isEditorOpen) return
|
|
98
|
+
const views = document.querySelectorAll('[data-view]')
|
|
99
|
+
views.forEach(view => view.style.border = '1px solid red')
|
|
100
|
+
setViewCount(views.length)
|
|
101
|
+
}, [isEditorOpen])
|
|
102
|
+
|
|
103
|
+
return (
|
|
104
|
+
<Overlay isVisible={true} style={overlayStyles}>
|
|
105
|
+
|
|
106
|
+
{
|
|
107
|
+
isEditorOpen && (
|
|
108
|
+
<div style={editorContainerStyles}>
|
|
109
|
+
<View surface="primary" roundness="m" gap="m" style={editorStyles}>
|
|
110
|
+
<View as="form" gap="s" onSubmit={onSaveTheme} onChange={onThemeChange}>
|
|
111
|
+
{Object.entries(theme).map(([name, value]) => (
|
|
112
|
+
<div style={{ marginBottom: '16px' }}>
|
|
113
|
+
<label style={{ display: 'block', fontFamily: 'sans-serif', marginBottom: '4px', fontWeight: 'bold' }}>{name}</label>
|
|
114
|
+
<input value={value} data-name={name} style={{ width: '100%', padding: '4px' }}/>
|
|
115
|
+
</div>
|
|
116
|
+
))}
|
|
117
|
+
<Button type="submit" variant="cta">
|
|
118
|
+
Save
|
|
119
|
+
</Button>
|
|
120
|
+
</View>
|
|
121
|
+
<ThemeSwitcher/>
|
|
122
|
+
<Text>Views: {viewCount}</Text>
|
|
123
|
+
</View>
|
|
124
|
+
</div>
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
<Button variant="cta" prefix="math-plus" style={toggleStyles} onClick={onToggle} />
|
|
129
|
+
|
|
130
|
+
</Overlay>
|
|
131
|
+
)
|
|
132
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { ThemeEditor } from './ThemeEditor.jsx'
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Connected components/ThemeEditor',
|
|
6
|
+
component: ThemeEditor,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
workspaceId: '36zDqF0TKZZ5KkJdyg7NH'
|
|
10
|
+
},
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const Story = props => <ThemeEditor {...props}/>
|
|
14
|
+
|
|
15
|
+
export const Default = Story.bind({})
|
|
16
|
+
Default.args = { }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ThemeEditor.jsx'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useResource, AsyncStatus } from '@ossy/sdk-react'
|
|
2
|
+
import { Theme } from '@ossy/design-system'
|
|
3
|
+
|
|
4
|
+
export const ThemeProvider = props => {
|
|
5
|
+
const { status, resource: theme } = useResource('PCX53TaGviq4_8KvK-VOp')
|
|
6
|
+
return status === AsyncStatus.Success
|
|
7
|
+
? <Theme theme={theme.data} {...props}/>
|
|
8
|
+
: <></>
|
|
9
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { ThemeProvider } from './ThemeProvider.jsx'
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Connected components/ThemeProvider',
|
|
6
|
+
component: ThemeProvider,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'fullscreen',
|
|
9
|
+
workspaceId: '36zDqF0TKZZ5KkJdyg7NH'
|
|
10
|
+
},
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const Story = props => <ThemeProvider {...props}/>
|
|
14
|
+
|
|
15
|
+
export const Default = Story.bind({})
|
|
16
|
+
Default.args = { }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ThemeProvider.jsx'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useActivePageLocation.js'
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useAppSettings } from '../app/AppSettings.jsx'
|
|
2
|
+
const appendSlash = string => string[string.length - 1] === '/'
|
|
3
|
+
? string : `${string}/`
|
|
4
|
+
|
|
5
|
+
const prependSlash = string => string[0] === '/'
|
|
6
|
+
? string : `/${string}`
|
|
7
|
+
|
|
8
|
+
const padWithSlash = string => appendSlash(prependSlash(string))
|
|
9
|
+
|
|
10
|
+
const Predicates = {
|
|
11
|
+
byLength: desiredLength => route => {
|
|
12
|
+
const routeParts = route.split('/').filter(x => !!x)
|
|
13
|
+
return routeParts.length === desiredLength
|
|
14
|
+
},
|
|
15
|
+
byParamPlaceHolders: activePathname => route => {
|
|
16
|
+
const routeParts = route.split('/').filter(x => !!x).reduce(
|
|
17
|
+
(parts, part) => part.startsWith(':') ? [...parts, '.+?'] : [...parts, part],
|
|
18
|
+
[]
|
|
19
|
+
).join('/')
|
|
20
|
+
|
|
21
|
+
const regex = new RegExp(`^${padWithSlash(routeParts)}$`)
|
|
22
|
+
const passes = regex.test(activePathname)
|
|
23
|
+
return passes
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const useActivePageLocation = (path) => {
|
|
28
|
+
console.log('useActivePageLocation path', path)
|
|
29
|
+
const { routes: pages } = useAppSettings()
|
|
30
|
+
|
|
31
|
+
if (!path) return
|
|
32
|
+
|
|
33
|
+
// TODO: this needs tests because I don't think it works right
|
|
34
|
+
const activePathname = path === '' ? '/' : padWithSlash(path)
|
|
35
|
+
const registeredPageRoutes = pages.map(page => padWithSlash(page.path))
|
|
36
|
+
const exactRouteMatch = registeredPageRoutes.find(route => route === activePathname)
|
|
37
|
+
let activePageLocation
|
|
38
|
+
|
|
39
|
+
if (!!exactRouteMatch) {
|
|
40
|
+
activePageLocation = exactRouteMatch
|
|
41
|
+
} else {
|
|
42
|
+
const activePathnameParts = activePathname.split('/').filter(x => !!x)
|
|
43
|
+
const dynamicRouteMatch = registeredPageRoutes.find(route => (
|
|
44
|
+
Predicates.byLength(activePathnameParts.length)(route) && Predicates.byParamPlaceHolders(activePathname)(route)
|
|
45
|
+
))
|
|
46
|
+
|
|
47
|
+
activePageLocation = dynamicRouteMatch
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
console.log('useActivePageLocation exactRouteMatch', exactRouteMatch)
|
|
51
|
+
console.log('useActivePageLocation activePageLocation', activePageLocation)
|
|
52
|
+
|
|
53
|
+
return activePageLocation
|
|
54
|
+
}
|
package/index.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Resume-220e98c1.js"),n=require("react-router-dom"),r=require("@ossy/cms-client-react");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("react-dom"),require("react-markdown"),require("react-syntax-highlighter"),require("react-syntax-highlighter/dist/esm/styles/hljs");var o=a(e),i={},c={},l={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r;"undefined"!=typeof window&&(void 0===window.gtag&&(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),(r=window).gtag.apply(r,t))};e.default=t}(l);var s={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=e||"";r&&(o=e.toString().trim().replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,(function(e,n,r){return n>0&&n+e.length!==r.length&&e.search(t)>-1&&":"!==r.charAt(n-2)&&("-"!==r.charAt(n+e.length)||"-"===r.charAt(n-1))&&r.charAt(n-1).search(/[^\s-]/)<0?e.toLowerCase():e.substr(1).search(/[A-Z]|\../)>-1?e:e.charAt(0).toUpperCase()+e.substr(1)})));a&&(o=function(e){if(function(e){return"string"==typeof e&&-1!==e.indexOf("@")}(e))return console.warn("This arg looks like an email address, redacting."),n;return e}(o));return o};var t=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i;var n="REDACTED (Potential Email Address)"}(s),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.GA4=void 0;var t=i(l),n=i(s),r=["eventCategory","eventAction","eventLabel","eventValue","hitType"],a=["title","location"],o=["page","hitType"];function i(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function u(e){return u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u(e)}function d(e){return function(e){if(Array.isArray(e))return y(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||m(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||m(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){if(e){if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(e,t):void 0}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,b(r.key),r)}}function h(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){var t=function(e,t){if("object"!==u(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==u(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===u(t)?t:String(t)}var _=function(){function e(){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),h(this,"reset",(function(){i.isInitialized=!1,i._testMode=!1,i._currentMeasurementId,i._hasLoadedGA=!1,i._isQueuing=!1,i._queueGtag=[]})),h(this,"_gtag",(function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];i._testMode||i._isQueuing?i._queueGtag.push(n):t.default.apply(void 0,n)})),h(this,"_loadGA",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"https://www.googletagmanager.com/gtag/js";if("undefined"!=typeof window&&"undefined"!=typeof document&&!i._hasLoadedGA){var r=document.createElement("script");r.async=!0,r.src="".concat(n,"?id=").concat(e),t&&r.setAttribute("nonce",t),document.body.appendChild(r),window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},i._hasLoadedGA=!0}})),h(this,"_toGtagOptions",(function(e){if(e){var t={cookieUpdate:"cookie_update",cookieExpires:"cookie_expires",cookieDomain:"cookie_domain",cookieFlags:"cookie_flags",userId:"user_id",clientId:"client_id",anonymizeIp:"anonymize_ip",contentGroup1:"content_group1",contentGroup2:"content_group2",contentGroup3:"content_group3",contentGroup4:"content_group4",contentGroup5:"content_group5",allowAdFeatures:"allow_google_signals",allowAdPersonalizationSignals:"allow_ad_personalization_signals",nonInteraction:"non_interaction",page:"page_path",hitCallback:"event_callback"};return Object.entries(e).reduce((function(e,n){var r=f(n,2),a=r[0],o=r[1];return t[a]?e[t[a]]=o:e[a]=o,e}),{})}})),h(this,"initialize",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Require GA_MEASUREMENT_ID");var n="string"==typeof e?[{trackingId:e}]:e;i._currentMeasurementId=n[0].trackingId;var r=t.gaOptions,a=t.gtagOptions,o=t.nonce,c=t.testMode,l=void 0!==c&&c,s=t.gtagUrl;if(i._testMode=l,l||i._loadGA(i._currentMeasurementId,o,s),i.isInitialized||(i._gtag("js",new Date),n.forEach((function(e){var t=p(p(p({},i._toGtagOptions(p(p({},r),e.gaOptions))),a),e.gtagOptions);Object.keys(t).length?i._gtag("config",e.trackingId,t):i._gtag("config",e.trackingId)}))),i.isInitialized=!0,!l){var u=d(i._queueGtag);for(i._queueGtag=[],i._isQueuing=!1;u.length;){var g=u.shift();i._gtag.apply(i,d(g)),"get"===g[0]&&(i._isQueuing=!0)}}})),h(this,"set",(function(e){e?"object"===u(e)?(0===Object.keys(e).length&&console.warn("empty `fieldsObject` given to .set()"),i._gaCommand("set",e)):console.warn("Expected `fieldsObject` arg to be an Object"):console.warn("`fieldsObject` is required in .set()")})),h(this,"_gaCommandSendEvent",(function(e,t,n,r,a){i._gtag("event",t,p(p({event_category:e,event_label:n,value:r},a&&{non_interaction:a.nonInteraction}),i._toGtagOptions(a)))})),h(this,"_gaCommandSendEventParameters",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommandSendEvent.apply(i,d(t.slice(1)));else{var a=t[0],o=a.eventCategory,l=a.eventAction,s=a.eventLabel,u=a.eventValue;a.hitType;var g=c(a,r);i._gaCommandSendEvent(o,l,s,u,g)}})),h(this,"_gaCommandSendTiming",(function(e,t,n,r){i._gtag("event","timing_complete",{name:t,value:n,event_category:e,event_label:r})})),h(this,"_gaCommandSendPageview",(function(e,t){if(t&&Object.keys(t).length){var n=i._toGtagOptions(t),r=n.title,o=n.location,l=c(n,a);i._gtag("event","page_view",p(p(p(p({},e&&{page_path:e}),r&&{page_title:r}),o&&{page_location:o}),l))}else e?i._gtag("event","page_view",{page_path:e}):i._gtag("event","page_view")})),h(this,"_gaCommandSendPageviewParameters",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommandSendPageview.apply(i,d(t.slice(1)));else{var r=t[0],a=r.page;r.hitType;var l=c(r,o);i._gaCommandSendPageview(a,l)}})),h(this,"_gaCommandSend",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r="string"==typeof t[0]?t[0]:t[0].hitType;switch(r){case"event":i._gaCommandSendEventParameters.apply(i,t);break;case"pageview":i._gaCommandSendPageviewParameters.apply(i,t);break;case"timing":i._gaCommandSendTiming.apply(i,d(t.slice(1)));break;case"screenview":case"transaction":case"item":case"social":case"exception":console.warn("Unsupported send command: ".concat(r));break;default:console.warn("Send command doesn't exist: ".concat(r))}})),h(this,"_gaCommandSet",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&(t[0]=h({},t[0],t[1])),i._gtag("set",i._toGtagOptions(t[0]))})),h(this,"_gaCommand",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];switch(e){case"send":i._gaCommandSend.apply(i,n);break;case"set":i._gaCommandSet.apply(i,n);break;default:console.warn("Command doesn't exist: ".concat(e))}})),h(this,"ga",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommand.apply(i,t);else{var r=t[0];i._gtag("get",i._currentMeasurementId,"client_id",(function(e){i._isQueuing=!1;var t=i._queueGtag;for(r({get:function(t){return"clientId"===t?e:"trackingId"===t?i._currentMeasurementId:"apiVersion"===t?"1":void 0}});t.length;){var n=t.shift();i._gtag.apply(i,d(n))}})),i._isQueuing=!0}return i.ga})),h(this,"event",(function(e,t){if("string"==typeof e)i._gtag("event",e,i._toGtagOptions(t));else{var r=e.action,a=e.category,o=e.label,c=e.value,l=e.nonInteraction,s=e.transport;if(!a||!r)return void console.warn("args.category AND args.action are required in event()");var u={hitType:"event",eventCategory:(0,n.default)(a),eventAction:(0,n.default)(r)};o&&(u.eventLabel=(0,n.default)(o)),void 0!==c&&("number"!=typeof c?console.warn("Expected `args.value` arg to be a Number."):u.eventValue=c),void 0!==l&&("boolean"!=typeof l?console.warn("`args.nonInteraction` must be a boolean."):u.nonInteraction=l),void 0!==s&&("string"!=typeof s?console.warn("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(s)&&console.warn("`args.transport` must be either one of these values: `beacon`, `xhr` or `image`"),u.transport=s)),i._gaCommand("send",u)}})),h(this,"send",(function(e){i._gaCommand("send",e)})),this.reset()}var i,l,s;return i=e,l=[{key:"gtag",value:function(){this._gtag.apply(this,arguments)}}],l&&v(i.prototype,l),s&&v(i,s),Object.defineProperty(i,"prototype",{writable:!1}),e}();e.GA4=_;var w=new _;e.default=w}(c),function(e){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ReactGAImplementation=void 0;var n=function(e,n){if(!n&&e&&e.__esModule)return e;if(null===e||"object"!==t(e)&&"function"!=typeof e)return{default:e};var a=r(n);if(a&&a.has(e))return a.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=i?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(o,c,l):o[c]=e[c]}o.default=e,a&&a.set(e,o);return o}(c);function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}var a=n.GA4;e.ReactGAImplementation=a;var o=n.default;e.default=o}(i);var u=t.getDefaultExportFromCjs(i);const d=({workspaceId:a,theme:i,themes:c,gaId:l,_apiUrl:s})=>{const d=n.useNavigate();e.useEffect((()=>{l&&(u.initialize(l),u.send({hitType:"pageview",page:window.location.pathname}))}),[l]);return o.default.createElement(t.Theme,{theme:i,themes:c},o.default.createElement(r.WorkspaceProvider,{workspaceId:a,_apiUrl:s},o.default.createElement("div",{onClick:e=>{if("A"!==e.target.tagName)return;const t=e.target.getAttribute("href");!(e.target.hasAttribute("target")||(t||"").includes("."))&&t&&(event.preventDefault(),l&&u.send({hitType:"pageview",page:t}),d(t))},style:{display:"contents"}},o.default.createElement(n.Outlet,null))))},g={sv:{tags:"Erfarenhet med",work:"Arbete",projects:"Projekt",education:"Utbildning",other:"Övrigt",download:"Ladda ner",all:"Alla"},en:{tags:"Experience with",work:"Work",projects:"Projects",education:"Education",other:"Other",download:"Download",all:"All"}},p=e=>{const t=e?.find((e=>e.type.startsWith("image/"))),{id:n,content:r}=e?.find((e=>"resume-summary"===e.type))||{content:{}},a={id:n,name:r.Name||r["Consultant Name"],role:r.Role,image:t?.content?.src,summary:r.Summary,tags:r?.Tags?.split(","),links:[]};return r.Mobile&&a.links.push({icon:"Call",label:r.Mobile}),r.Email&&a.links.push({icon:"Email",label:r.Email,href:`mailto:${r.Email}`}),r.Website&&a.links.push({icon:"Website",label:r.Website.replace("https://","").replace("http://",""),href:r.Website,target:"_blank"}),a},f=e=>e.filter((e=>"resume-experience"===e.type)).map((e=>({id:e.id,title:e.content.Title,subTitle:e.content["Sub Title"],date:e.content.Date,description:e.content.Description,website:e.content.Website,github:e.content.GitHub,tags:e.content?.Tags?.split(",")?.map((e=>e.trim())).filter((e=>!!e)),typeOfExperience:e.content["Type of experience"]}))),m=e=>{const{status:t,resources:n}=r.useResources(e);return{status:t,translations:g.en,profile:p(n),experiences:f(n)}};exports.App=({workspaceId:e,theme:t,themes:r,routes:a=[],gaId:i,_apiUrl:c})=>{const l=[{path:"/",element:o.default.createElement(d,{gaId:i,theme:t,themes:r,workspaceId:e,_apiUrl:c}),children:a.map((e=>"/"!==e.path||"/"===e.path&&e.children?e:{...e,index:!0}))}],s=global.__IS_STORYBOOK__?n.createMemoryRouter:n.createBrowserRouter;return o.default.createElement(n.RouterProvider,{router:s(l)})},exports.ConnectedResume=({path:e,...n})=>{const r=m(e);return"Success"===r.status?o.default.createElement(t.Resume,t._extends({},r,{profileCardVariant:"resume"},n)):o.default.createElement(o.default.Fragment,null)},exports.useConnectedResume=m;
|
package/index.esm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e,{useEffect as t}from"react";import{g as n,T as r,R as a,_ as o}from"../Resume-23a55554.js";import{RouterProvider as i,useNavigate as c,Outlet as l,createMemoryRouter as s,createBrowserRouter as u}from"react-router-dom";import{WorkspaceProvider as g,useResources as p}from"@ossy/cms-client-react";import"react-dom";import"react-markdown";import"react-syntax-highlighter";import"react-syntax-highlighter/dist/esm/styles/hljs";var d={},f={},m={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var t=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r;"undefined"!=typeof window&&(void 0===window.gtag&&(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),(r=window).gtag.apply(r,t))};e.default=t}(m);var y={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=e||"";r&&(o=e.toString().trim().replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,(function(e,n,r){return n>0&&n+e.length!==r.length&&e.search(t)>-1&&":"!==r.charAt(n-2)&&("-"!==r.charAt(n+e.length)||"-"===r.charAt(n-1))&&r.charAt(n-1).search(/[^\s-]/)<0?e.toLowerCase():e.substr(1).search(/[A-Z]|\../)>-1?e:e.charAt(0).toUpperCase()+e.substr(1)})));a&&(o=function(e){if(function(e){return"string"==typeof e&&-1!==e.indexOf("@")}(e))return console.warn("This arg looks like an email address, redacting."),n;return e}(o));return o};var t=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i;var n="REDACTED (Potential Email Address)"}(y),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.GA4=void 0;var t=i(m),n=i(y),r=["eventCategory","eventAction","eventLabel","eventValue","hitType"],a=["title","location"],o=["page","hitType"];function i(e){return e&&e.__esModule?e:{default:e}}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function s(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){h(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],l=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return c}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,b(r.key),r)}}function h(e,t,n){return(t=b(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){var t=function(e,t){if("object"!==l(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==l(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===l(t)?t:String(t)}var _=function(){function e(){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),h(this,"reset",(function(){i.isInitialized=!1,i._testMode=!1,i._currentMeasurementId,i._hasLoadedGA=!1,i._isQueuing=!1,i._queueGtag=[]})),h(this,"_gtag",(function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];i._testMode||i._isQueuing?i._queueGtag.push(n):t.default.apply(void 0,n)})),h(this,"_loadGA",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"https://www.googletagmanager.com/gtag/js";if("undefined"!=typeof window&&"undefined"!=typeof document&&!i._hasLoadedGA){var r=document.createElement("script");r.async=!0,r.src="".concat(n,"?id=").concat(e),t&&r.setAttribute("nonce",t),document.body.appendChild(r),window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},i._hasLoadedGA=!0}})),h(this,"_toGtagOptions",(function(e){if(e){var t={cookieUpdate:"cookie_update",cookieExpires:"cookie_expires",cookieDomain:"cookie_domain",cookieFlags:"cookie_flags",userId:"user_id",clientId:"client_id",anonymizeIp:"anonymize_ip",contentGroup1:"content_group1",contentGroup2:"content_group2",contentGroup3:"content_group3",contentGroup4:"content_group4",contentGroup5:"content_group5",allowAdFeatures:"allow_google_signals",allowAdPersonalizationSignals:"allow_ad_personalization_signals",nonInteraction:"non_interaction",page:"page_path",hitCallback:"event_callback"};return Object.entries(e).reduce((function(e,n){var r=p(n,2),a=r[0],o=r[1];return t[a]?e[t[a]]=o:e[a]=o,e}),{})}})),h(this,"initialize",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Require GA_MEASUREMENT_ID");var n="string"==typeof e?[{trackingId:e}]:e;i._currentMeasurementId=n[0].trackingId;var r=t.gaOptions,a=t.gtagOptions,o=t.nonce,c=t.testMode,l=void 0!==c&&c,u=t.gtagUrl;if(i._testMode=l,l||i._loadGA(i._currentMeasurementId,o,u),i.isInitialized||(i._gtag("js",new Date),n.forEach((function(e){var t=g(g(g({},i._toGtagOptions(g(g({},r),e.gaOptions))),a),e.gtagOptions);Object.keys(t).length?i._gtag("config",e.trackingId,t):i._gtag("config",e.trackingId)}))),i.isInitialized=!0,!l){var p=s(i._queueGtag);for(i._queueGtag=[],i._isQueuing=!1;p.length;){var d=p.shift();i._gtag.apply(i,s(d)),"get"===d[0]&&(i._isQueuing=!0)}}})),h(this,"set",(function(e){e?"object"===l(e)?(0===Object.keys(e).length&&console.warn("empty `fieldsObject` given to .set()"),i._gaCommand("set",e)):console.warn("Expected `fieldsObject` arg to be an Object"):console.warn("`fieldsObject` is required in .set()")})),h(this,"_gaCommandSendEvent",(function(e,t,n,r,a){i._gtag("event",t,g(g({event_category:e,event_label:n,value:r},a&&{non_interaction:a.nonInteraction}),i._toGtagOptions(a)))})),h(this,"_gaCommandSendEventParameters",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommandSendEvent.apply(i,s(t.slice(1)));else{var a=t[0],o=a.eventCategory,l=a.eventAction,u=a.eventLabel,g=a.eventValue;a.hitType;var p=c(a,r);i._gaCommandSendEvent(o,l,u,g,p)}})),h(this,"_gaCommandSendTiming",(function(e,t,n,r){i._gtag("event","timing_complete",{name:t,value:n,event_category:e,event_label:r})})),h(this,"_gaCommandSendPageview",(function(e,t){if(t&&Object.keys(t).length){var n=i._toGtagOptions(t),r=n.title,o=n.location,l=c(n,a);i._gtag("event","page_view",g(g(g(g({},e&&{page_path:e}),r&&{page_title:r}),o&&{page_location:o}),l))}else e?i._gtag("event","page_view",{page_path:e}):i._gtag("event","page_view")})),h(this,"_gaCommandSendPageviewParameters",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommandSendPageview.apply(i,s(t.slice(1)));else{var r=t[0],a=r.page;r.hitType;var l=c(r,o);i._gaCommandSendPageview(a,l)}})),h(this,"_gaCommandSend",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r="string"==typeof t[0]?t[0]:t[0].hitType;switch(r){case"event":i._gaCommandSendEventParameters.apply(i,t);break;case"pageview":i._gaCommandSendPageviewParameters.apply(i,t);break;case"timing":i._gaCommandSendTiming.apply(i,s(t.slice(1)));break;case"screenview":case"transaction":case"item":case"social":case"exception":console.warn("Unsupported send command: ".concat(r));break;default:console.warn("Send command doesn't exist: ".concat(r))}})),h(this,"_gaCommandSet",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&(t[0]=h({},t[0],t[1])),i._gtag("set",i._toGtagOptions(t[0]))})),h(this,"_gaCommand",(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];switch(e){case"send":i._gaCommandSend.apply(i,n);break;case"set":i._gaCommandSet.apply(i,n);break;default:console.warn("Command doesn't exist: ".concat(e))}})),h(this,"ga",(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];if("string"==typeof t[0])i._gaCommand.apply(i,t);else{var r=t[0];i._gtag("get",i._currentMeasurementId,"client_id",(function(e){i._isQueuing=!1;var t=i._queueGtag;for(r({get:function(t){return"clientId"===t?e:"trackingId"===t?i._currentMeasurementId:"apiVersion"===t?"1":void 0}});t.length;){var n=t.shift();i._gtag.apply(i,s(n))}})),i._isQueuing=!0}return i.ga})),h(this,"event",(function(e,t){if("string"==typeof e)i._gtag("event",e,i._toGtagOptions(t));else{var r=e.action,a=e.category,o=e.label,c=e.value,l=e.nonInteraction,s=e.transport;if(!a||!r)return void console.warn("args.category AND args.action are required in event()");var u={hitType:"event",eventCategory:(0,n.default)(a),eventAction:(0,n.default)(r)};o&&(u.eventLabel=(0,n.default)(o)),void 0!==c&&("number"!=typeof c?console.warn("Expected `args.value` arg to be a Number."):u.eventValue=c),void 0!==l&&("boolean"!=typeof l?console.warn("`args.nonInteraction` must be a boolean."):u.nonInteraction=l),void 0!==s&&("string"!=typeof s?console.warn("`args.transport` must be a string."):(-1===["beacon","xhr","image"].indexOf(s)&&console.warn("`args.transport` must be either one of these values: `beacon`, `xhr` or `image`"),u.transport=s)),i._gaCommand("send",u)}})),h(this,"send",(function(e){i._gaCommand("send",e)})),this.reset()}var i,u,d;return i=e,u=[{key:"gtag",value:function(){this._gtag.apply(this,arguments)}}],u&&v(i.prototype,u),d&&v(i,d),Object.defineProperty(i,"prototype",{writable:!1}),e}();e.GA4=_;var w=new _;e.default=w}(f),function(e){function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.ReactGAImplementation=void 0;var n=function(e,n){if(!n&&e&&e.__esModule)return e;if(null===e||"object"!==t(e)&&"function"!=typeof e)return{default:e};var a=r(n);if(a&&a.has(e))return a.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var l=i?Object.getOwnPropertyDescriptor(e,c):null;l&&(l.get||l.set)?Object.defineProperty(o,c,l):o[c]=e[c]}o.default=e,a&&a.set(e,o);return o}(f);function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}var a=n.GA4;e.ReactGAImplementation=a;var o=n.default;e.default=o}(d);var v=n(d);const h=({workspaceId:n,theme:a,themes:o,gaId:i,_apiUrl:s})=>{const u=c();t((()=>{i&&(v.initialize(i),v.send({hitType:"pageview",page:window.location.pathname}))}),[i]);return e.createElement(r,{theme:a,themes:o},e.createElement(g,{workspaceId:n,_apiUrl:s},e.createElement("div",{onClick:e=>{if("A"!==e.target.tagName)return;const t=e.target.getAttribute("href");!(e.target.hasAttribute("target")||(t||"").includes("."))&&t&&(event.preventDefault(),i&&v.send({hitType:"pageview",page:t}),u(t))},style:{display:"contents"}},e.createElement(l,null))))},b=({workspaceId:t,theme:n,themes:r,routes:a=[],gaId:o,_apiUrl:c})=>{const l=[{path:"/",element:e.createElement(h,{gaId:o,theme:n,themes:r,workspaceId:t,_apiUrl:c}),children:a.map((e=>"/"!==e.path||"/"===e.path&&e.children?e:{...e,index:!0}))}],g=global.__IS_STORYBOOK__?s:u;return e.createElement(i,{router:g(l)})},_={sv:{tags:"Erfarenhet med",work:"Arbete",projects:"Projekt",education:"Utbildning",other:"Övrigt",download:"Ladda ner",all:"Alla"},en:{tags:"Experience with",work:"Work",projects:"Projects",education:"Education",other:"Other",download:"Download",all:"All"}},w=e=>{const t=e?.find((e=>e.type.startsWith("image/"))),{id:n,content:r}=e?.find((e=>"resume-summary"===e.type))||{content:{}},a={id:n,name:r.Name||r["Consultant Name"],role:r.Role,image:t?.content?.src,summary:r.Summary,tags:r?.Tags?.split(","),links:[]};return r.Mobile&&a.links.push({icon:"Call",label:r.Mobile}),r.Email&&a.links.push({icon:"Email",label:r.Email,href:`mailto:${r.Email}`}),r.Website&&a.links.push({icon:"Website",label:r.Website.replace("https://","").replace("http://",""),href:r.Website,target:"_blank"}),a},O=e=>e.filter((e=>"resume-experience"===e.type)).map((e=>({id:e.id,title:e.content.Title,subTitle:e.content["Sub Title"],date:e.content.Date,description:e.content.Description,website:e.content.Website,github:e.content.GitHub,tags:e.content?.Tags?.split(",")?.map((e=>e.trim())).filter((e=>!!e)),typeOfExperience:e.content["Type of experience"]}))),j=e=>{const{status:t,resources:n}=p(e);return{status:t,translations:_.en,profile:w(n),experiences:O(n)}},A=({path:t,...n})=>{const r=j(t);return"Success"===r.status?e.createElement(a,o({},r,{profileCardVariant:"resume"},n)):e.createElement(e.Fragment,null)};export{b as App,A as ConnectedResume,j as useConnectedResume};
|