@universityofmaryland/web-elements-library 1.5.9 → 1.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/atomic/_types.d.ts +1 -1
- package/dist/atomic/_types.d.ts.map +1 -1
- package/dist/atomic/events/sign.d.ts.map +1 -1
- package/dist/atomic/events/sign.js +1 -7
- package/dist/atomic/events/sign.js.map +1 -1
- package/dist/atomic/events/sign.mjs +1 -6
- package/dist/atomic/events/sign.mjs.map +1 -1
- package/dist/atomic/layout/person/columns.d.ts +2 -2
- package/dist/atomic/layout/person/columns.d.ts.map +1 -1
- package/dist/atomic/layout/person/columns.js +7 -5
- package/dist/atomic/layout/person/columns.js.map +1 -1
- package/dist/atomic/layout/person/columns.mjs +7 -5
- package/dist/atomic/layout/person/columns.mjs.map +1 -1
- package/dist/atomic/text-lockup/contact.d.ts +1 -1
- package/dist/atomic/text-lockup/contact.d.ts.map +1 -1
- package/dist/atomic/text-lockup/contact.js +3 -3
- package/dist/atomic/text-lockup/contact.js.map +1 -1
- package/dist/atomic/text-lockup/contact.mjs +3 -3
- package/dist/atomic/text-lockup/contact.mjs.map +1 -1
- package/dist/atomic/text-lockup/person.d.ts.map +1 -1
- package/dist/atomic/text-lockup/person.js +3 -3
- package/dist/atomic/text-lockup/person.js.map +1 -1
- package/dist/atomic/text-lockup/person.mjs +3 -3
- package/dist/atomic/text-lockup/person.mjs.map +1 -1
- package/dist/composite/carousel/elements/overlay.js +2 -0
- package/dist/composite/carousel/elements/overlay.js.map +1 -1
- package/dist/composite/carousel/elements/overlay.mjs +2 -0
- package/dist/composite/carousel/elements/overlay.mjs.map +1 -1
- package/dist/composite/media/inline/caption.js +2 -0
- package/dist/composite/media/inline/caption.js.map +1 -1
- package/dist/composite/media/inline/caption.mjs +2 -0
- package/dist/composite/media/inline/caption.mjs.map +1 -1
- package/dist/composite/media/inline/standard.js +3 -0
- package/dist/composite/media/inline/standard.js.map +1 -1
- package/dist/composite/media/inline/standard.mjs +3 -0
- package/dist/composite/media/inline/standard.mjs.map +1 -1
- package/dist/composite/media/inline/wrapped.js +2 -0
- package/dist/composite/media/inline/wrapped.js.map +1 -1
- package/dist/composite/media/inline/wrapped.mjs +2 -0
- package/dist/composite/media/inline/wrapped.mjs.map +1 -1
- package/dist/composite/person/_types.d.ts +2 -2
- package/dist/composite/person/_types.d.ts.map +1 -1
- package/dist/composite/person/block.d.ts.map +1 -1
- package/dist/composite/person/block.js +1 -0
- package/dist/composite/person/block.js.map +1 -1
- package/dist/composite/person/block.mjs +1 -0
- package/dist/composite/person/block.mjs.map +1 -1
- package/dist/composite/person/list.d.ts +1 -1
- package/dist/composite/person/list.d.ts.map +1 -1
- package/dist/composite/person/list.js +5 -3
- package/dist/composite/person/list.js.map +1 -1
- package/dist/composite/person/list.mjs +5 -3
- package/dist/composite/person/list.mjs.map +1 -1
- package/dist/composite/person/tabular.d.ts +1 -1
- package/dist/composite/person/tabular.d.ts.map +1 -1
- package/dist/composite/person/tabular.js +3 -3
- package/dist/composite/person/tabular.js.map +1 -1
- package/dist/composite/person/tabular.mjs +3 -3
- package/dist/composite/person/tabular.mjs.map +1 -1
- package/dist/layout/grid-border.d.ts +9 -0
- package/dist/layout/grid-border.d.ts.map +1 -0
- package/dist/layout/grid-border.js +55 -0
- package/dist/layout/grid-border.js.map +1 -0
- package/dist/layout/grid-border.mjs +39 -0
- package/dist/layout/grid-border.mjs.map +1 -0
- package/dist/layout/grid-gap.d.ts +8 -0
- package/dist/layout/grid-gap.d.ts.map +1 -0
- package/dist/layout/grid-gap.js +31 -0
- package/dist/layout/grid-gap.js.map +1 -0
- package/dist/layout/grid-gap.mjs +32 -0
- package/dist/layout/grid-gap.mjs.map +1 -0
- package/dist/layout/grid-offset.d.ts +13 -0
- package/dist/layout/grid-offset.d.ts.map +1 -0
- package/dist/layout/grid-offset.js +71 -0
- package/dist/layout/grid-offset.js.map +1 -0
- package/dist/layout/grid-offset.mjs +72 -0
- package/dist/layout/grid-offset.mjs.map +1 -0
- package/dist/layout/grid.d.ts +8 -0
- package/dist/layout/grid.d.ts.map +1 -0
- package/dist/layout/grid.js +30 -0
- package/dist/layout/grid.js.map +1 -0
- package/dist/layout/grid.mjs +31 -0
- package/dist/layout/grid.mjs.map +1 -0
- package/dist/layout/index.d.ts +5 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/stacked.d.ts +10 -0
- package/dist/layout/stacked.d.ts.map +1 -0
- package/dist/layout/stacked.js +28 -0
- package/dist/layout/stacked.js.map +1 -0
- package/dist/layout/stacked.mjs +29 -0
- package/dist/layout/stacked.mjs.map +1 -0
- package/dist/layout.js +10 -0
- package/dist/layout.js.map +1 -1
- package/dist/layout.mjs +11 -1
- package/dist/layout.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"person.mjs","sources":["../../../source/atomic/text-lockup/person.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { type PersonTextLockupProps } from '../_types';\n\nexport default ({\n actions,\n association,\n isThemeDark,\n job,\n name,\n nameComposite,\n pronouns,\n subText,\n}: PersonTextLockupProps) => {\n const container = new ElementBuilder()\n .withClassName('text-lockup-person-container')\n .withStyles({\n element: {\n zIndex: '9',\n position: 'relative',\n },\n });\n\n if (nameComposite && !name) {\n container.withChild(nameComposite);\n }\n\n if (name) {\n const headlineStyles = {\n ...typography.sans.compose('larger', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameElement = new ElementBuilder(name)\n .styled(headlineStyles)\n .withStyles({\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: '4px',\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n container.withChild(nameElement);\n }\n\n if (job) {\n const jobElement = new ElementBuilder(job)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n lineHeight: `1.25em`,\n\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .build();\n\n container.withChild(jobElement);\n }\n\n if (association) {\n const associationElement = new ElementBuilder(association)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n lineHeight: '1.2em',\n display: 'block',\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n\n [`& + *`]: {\n marginTop: '4px',\n },\n\n [`& a:hover, a:focus`]: {\n textDecoration: 'underline',\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .build();\n\n container.withChild(associationElement);\n }\n\n if (pronouns) {\n pronouns.innerHTML = `<i>${pronouns.innerHTML}</i>`;\n const pronounsElement = new ElementBuilder(pronouns)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n\n [`& + *`]: {\n marginTop: '4px',\n },\n
|
|
1
|
+
{"version":3,"file":"person.mjs","sources":["../../../source/atomic/text-lockup/person.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport * as typography from '@universityofmaryland/web-styles-library/typography';\nimport * as layout from '@universityofmaryland/web-styles-library/layout';\nimport * as animationStyles from '@universityofmaryland/web-styles-library/animation';\nimport { theme } from '@universityofmaryland/web-utilities-library/theme';\nimport { wrapTextNodeInSpan } from '@universityofmaryland/web-utilities-library/dom';\nimport { type PersonTextLockupProps } from '../_types';\n\nexport default ({\n actions,\n association,\n isThemeDark,\n job,\n name,\n nameComposite,\n pronouns,\n subText,\n}: PersonTextLockupProps) => {\n const container = new ElementBuilder()\n .withClassName('text-lockup-person-container')\n .withStyles({\n element: {\n zIndex: '9',\n position: 'relative',\n },\n });\n\n if (nameComposite && !name) {\n container.withChild(nameComposite);\n }\n\n if (name) {\n const headlineStyles = {\n ...typography.sans.compose('larger', {\n theme: theme.fontColor(isThemeDark),\n }),\n ...animationStyles.line.composeSlideUnder({\n color: theme.foreground(isThemeDark),\n }),\n };\n\n const nameElement = new ElementBuilder(name)\n .styled(headlineStyles)\n .withStyles({\n element: {\n fontWeight: '700',\n\n [`& + *`]: {\n marginTop: '4px',\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .withModifier((el) => wrapTextNodeInSpan(el))\n .build();\n\n container.withChild(nameElement);\n }\n\n if (job) {\n const jobElement = new ElementBuilder(job)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n lineHeight: `1.25em`,\n\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .build();\n\n container.withChild(jobElement);\n }\n\n if (association) {\n const associationElement = new ElementBuilder(association)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n lineHeight: '1.2em',\n display: 'block',\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n\n [`& + *`]: {\n marginTop: '4px',\n },\n\n [`& a:hover, a:focus`]: {\n textDecoration: 'underline',\n },\n },\n subElement: {\n color: 'currentColor',\n },\n })\n .build();\n\n container.withChild(associationElement);\n }\n\n if (pronouns) {\n pronouns.innerHTML = `<i>${pronouns.innerHTML}</i>`;\n const pronounsElement = new ElementBuilder(pronouns)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n\n [`& + *`]: {\n marginTop: '4px',\n },\n\n [`& *`]: {\n color: 'currentColor',\n },\n },\n })\n .build();\n\n container.withChild(pronounsElement);\n }\n\n if (subText) {\n const subTextElement = new ElementBuilder(subText)\n .styled(\n typography.sans.compose('small', {\n theme: theme.fontColor(isThemeDark),\n }),\n )\n .withStyles({\n element: {\n ...(!isThemeDark && { color: `${token.color.gray.dark}` }),\n },\n siblingAfter: {\n marginTop: '4px',\n },\n })\n .build();\n\n container.withChild(subTextElement);\n }\n\n if (actions) {\n const actionsElement = new ElementBuilder(actions)\n .styled(layout.grid.inline.tabletRows)\n .withStyles({\n element: {\n marginTop: token.spacing.sm,\n },\n })\n .build();\n\n container.withChild(actionsElement);\n }\n\n return container.build();\n};\n"],"names":["animationStyles"],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ require("./blocks.js");
|
|
|
4
4
|
const fullScreen = require("./full-screen.js");
|
|
5
5
|
const image = require("./image.js");
|
|
6
6
|
const image$1 = require("../../../layout/image.js");
|
|
7
|
+
require("@universityofmaryland/web-builder-library");
|
|
8
|
+
require("@universityofmaryland/web-styles-library");
|
|
7
9
|
function _interopNamespaceDefault(e) {
|
|
8
10
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
9
11
|
if (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sources":["../../../../source/composite/carousel/elements/overlay.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as carouselElements from '../elements';\nimport { Image as LayoutImage } from 'layout';\n\nconst ELEMENT_CAROUSEL_OVERLAY_COINTAINER = 'carousel-overlay-container';\n\n// prettier-ignore\nconst OverlayImageContainerStyles = `\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${token.color.gray.dark};\n }\n\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} img {\n object-fit: contain;\n max-height: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_CAROUSEL_OVERLAY_ELEMENT = `\n ${LayoutImage.Styles}\n ${OverlayImageContainerStyles}\n`;\n\nconst CreateOverlaySlide = ({ images }: { images: HTMLImageElement[] }) =>\n images.map((image) => {\n const slide = document.createElement('div');\n const imageContainer = document.createElement('div');\n const imageBlock = LayoutImage.CreateElement({\n image,\n showCaption: true,\n });\n\n imageContainer.classList.add(ELEMENT_CAROUSEL_OVERLAY_COINTAINER);\n imageContainer.appendChild(imageBlock);\n\n slide.appendChild(imageContainer);\n\n return slide;\n });\n\nexport default ({ images }: { images: HTMLImageElement[] }) =>\n (() => {\n let styles = STYLES_CAROUSEL_OVERLAY_ELEMENT;\n\n const setFullScreen = (index: number) => {\n let canMove = true;\n\n const checkKeyEvents = (event: KeyboardEvent) => {\n if (!canMove) return;\n canMove = false;\n if (event.key == 'ArrowLeft') overlayCarousel.events.EventSlideLeft();\n if (event.key == 'ArrowRight') overlayCarousel.events.EventSlideRight();\n\n setTimeout(() => {\n canMove = true;\n }, 700);\n };\n\n overlayCarousel.events.EventMoveTo(index);\n setTimeout(() => fixedFullScreen.events.show(), 100);\n\n setTimeout(() => {\n overlayCarousel.events.EventResize();\n }, 100);\n\n isFullScreenEvents = window.addEventListener('keyup', checkKeyEvents);\n };\n\n const overlaySlides = CreateOverlaySlide({ images });\n\n const overlayCarousel = carouselElements.image({\n slides: overlaySlides,\n maxHeight: (window.innerHeight / 10) * 8,\n });\n\n styles += overlayCarousel.styles;\n\n const fixedFullScreen = carouselElements.fullScreen({\n content: overlayCarousel.element,\n callback: () => {\n if (isFullScreenEvents)\n window.removeEventListener('keyup', isFullScreenEvents);\n },\n });\n\n styles += fixedFullScreen.styles;\n\n let isFullScreenEvents: any = null;\n\n return {\n element: fixedFullScreen.element,\n styles,\n events: {\n setFullScreen,\n },\n };\n })();\n"],"names":["token","LayoutImage","image","carouselElements.image","carouselElements.fullScreen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"overlay.js","sources":["../../../../source/composite/carousel/elements/overlay.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as carouselElements from '../elements';\nimport { Image as LayoutImage } from 'layout';\n\nconst ELEMENT_CAROUSEL_OVERLAY_COINTAINER = 'carousel-overlay-container';\n\n// prettier-ignore\nconst OverlayImageContainerStyles = `\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${token.color.gray.dark};\n }\n\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} img {\n object-fit: contain;\n max-height: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_CAROUSEL_OVERLAY_ELEMENT = `\n ${LayoutImage.Styles}\n ${OverlayImageContainerStyles}\n`;\n\nconst CreateOverlaySlide = ({ images }: { images: HTMLImageElement[] }) =>\n images.map((image) => {\n const slide = document.createElement('div');\n const imageContainer = document.createElement('div');\n const imageBlock = LayoutImage.CreateElement({\n image,\n showCaption: true,\n });\n\n imageContainer.classList.add(ELEMENT_CAROUSEL_OVERLAY_COINTAINER);\n imageContainer.appendChild(imageBlock);\n\n slide.appendChild(imageContainer);\n\n return slide;\n });\n\nexport default ({ images }: { images: HTMLImageElement[] }) =>\n (() => {\n let styles = STYLES_CAROUSEL_OVERLAY_ELEMENT;\n\n const setFullScreen = (index: number) => {\n let canMove = true;\n\n const checkKeyEvents = (event: KeyboardEvent) => {\n if (!canMove) return;\n canMove = false;\n if (event.key == 'ArrowLeft') overlayCarousel.events.EventSlideLeft();\n if (event.key == 'ArrowRight') overlayCarousel.events.EventSlideRight();\n\n setTimeout(() => {\n canMove = true;\n }, 700);\n };\n\n overlayCarousel.events.EventMoveTo(index);\n setTimeout(() => fixedFullScreen.events.show(), 100);\n\n setTimeout(() => {\n overlayCarousel.events.EventResize();\n }, 100);\n\n isFullScreenEvents = window.addEventListener('keyup', checkKeyEvents);\n };\n\n const overlaySlides = CreateOverlaySlide({ images });\n\n const overlayCarousel = carouselElements.image({\n slides: overlaySlides,\n maxHeight: (window.innerHeight / 10) * 8,\n });\n\n styles += overlayCarousel.styles;\n\n const fixedFullScreen = carouselElements.fullScreen({\n content: overlayCarousel.element,\n callback: () => {\n if (isFullScreenEvents)\n window.removeEventListener('keyup', isFullScreenEvents);\n },\n });\n\n styles += fixedFullScreen.styles;\n\n let isFullScreenEvents: any = null;\n\n return {\n element: fixedFullScreen.element,\n styles,\n events: {\n setFullScreen,\n },\n };\n })();\n"],"names":["token","LayoutImage","image","carouselElements.image","carouselElements.fullScreen"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,sCAAsC;AAG5C,MAAM,8BAA8B;AAAA,KAC/B,mCAAmC;AAAA;AAAA;AAAA;AAAA,wBAIhBA,iBAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,KAGxC,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAOxC,MAAM,kCAAkC;AAAA,IACpCC,QAAY,MAAM;AAAA,IAClB,2BAA2B;AAAA;AAG/B,MAAM,qBAAqB,CAAC,EAAE,OAAA,MAC5B,OAAO,IAAI,CAACC,WAAU;AACpB,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,iBAAiB,SAAS,cAAc,KAAK;AACnD,QAAM,aAAaD,QAAY,cAAc;AAAA,IAC3C,OAAAC;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,iBAAe,UAAU,IAAI,mCAAmC;AAChE,iBAAe,YAAY,UAAU;AAErC,QAAM,YAAY,cAAc;AAEhC,SAAO;AACT,CAAC;AAEH,MAAA,UAAe,CAAC,EAAE,OAAA,OACf,MAAM;AACL,MAAI,SAAS;AAEb,QAAM,gBAAgB,CAAC,UAAkB;AACvC,QAAI,UAAU;AAEd,UAAM,iBAAiB,CAAC,UAAyB;AAC/C,UAAI,CAAC,QAAS;AACd,gBAAU;AACV,UAAI,MAAM,OAAO,YAAa,iBAAgB,OAAO,eAAA;AACrD,UAAI,MAAM,OAAO,aAAc,iBAAgB,OAAO,gBAAA;AAEtD,iBAAW,MAAM;AACf,kBAAU;AAAA,MACZ,GAAG,GAAG;AAAA,IACR;AAEA,oBAAgB,OAAO,YAAY,KAAK;AACxC,eAAW,MAAM,gBAAgB,OAAO,KAAA,GAAQ,GAAG;AAEnD,eAAW,MAAM;AACf,sBAAgB,OAAO,YAAA;AAAA,IACzB,GAAG,GAAG;AAEN,yBAAqB,OAAO,iBAAiB,SAAS,cAAc;AAAA,EACtE;AAEA,QAAM,gBAAgB,mBAAmB,EAAE,QAAQ;AAEnD,QAAM,kBAAkBC,MAAuB;AAAA,IAC7C,QAAQ;AAAA,IACR,WAAY,OAAO,cAAc,KAAM;AAAA,EAAA,CACxC;AAED,YAAU,gBAAgB;AAE1B,QAAM,kBAAkBC,WAA4B;AAAA,IAClD,SAAS,gBAAgB;AAAA,IACzB,UAAU,MAAM;AACd,UAAI;AACF,eAAO,oBAAoB,SAAS,kBAAkB;AAAA,IAC1D;AAAA,EAAA,CACD;AAED,YAAU,gBAAgB;AAE1B,MAAI,qBAA0B;AAE9B,SAAO;AAAA,IACL,SAAS,gBAAgB;AAAA,IACzB;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;;"}
|
|
@@ -3,6 +3,8 @@ import "./blocks.mjs";
|
|
|
3
3
|
import fullScreen from "./full-screen.mjs";
|
|
4
4
|
import image from "./image.mjs";
|
|
5
5
|
import LayoutImage from "../../../layout/image.mjs";
|
|
6
|
+
import "@universityofmaryland/web-builder-library";
|
|
7
|
+
import "@universityofmaryland/web-styles-library";
|
|
6
8
|
const ELEMENT_CAROUSEL_OVERLAY_COINTAINER = "carousel-overlay-container";
|
|
7
9
|
const OverlayImageContainerStyles = `
|
|
8
10
|
.${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.mjs","sources":["../../../../source/composite/carousel/elements/overlay.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as carouselElements from '../elements';\nimport { Image as LayoutImage } from 'layout';\n\nconst ELEMENT_CAROUSEL_OVERLAY_COINTAINER = 'carousel-overlay-container';\n\n// prettier-ignore\nconst OverlayImageContainerStyles = `\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${token.color.gray.dark};\n }\n\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} img {\n object-fit: contain;\n max-height: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_CAROUSEL_OVERLAY_ELEMENT = `\n ${LayoutImage.Styles}\n ${OverlayImageContainerStyles}\n`;\n\nconst CreateOverlaySlide = ({ images }: { images: HTMLImageElement[] }) =>\n images.map((image) => {\n const slide = document.createElement('div');\n const imageContainer = document.createElement('div');\n const imageBlock = LayoutImage.CreateElement({\n image,\n showCaption: true,\n });\n\n imageContainer.classList.add(ELEMENT_CAROUSEL_OVERLAY_COINTAINER);\n imageContainer.appendChild(imageBlock);\n\n slide.appendChild(imageContainer);\n\n return slide;\n });\n\nexport default ({ images }: { images: HTMLImageElement[] }) =>\n (() => {\n let styles = STYLES_CAROUSEL_OVERLAY_ELEMENT;\n\n const setFullScreen = (index: number) => {\n let canMove = true;\n\n const checkKeyEvents = (event: KeyboardEvent) => {\n if (!canMove) return;\n canMove = false;\n if (event.key == 'ArrowLeft') overlayCarousel.events.EventSlideLeft();\n if (event.key == 'ArrowRight') overlayCarousel.events.EventSlideRight();\n\n setTimeout(() => {\n canMove = true;\n }, 700);\n };\n\n overlayCarousel.events.EventMoveTo(index);\n setTimeout(() => fixedFullScreen.events.show(), 100);\n\n setTimeout(() => {\n overlayCarousel.events.EventResize();\n }, 100);\n\n isFullScreenEvents = window.addEventListener('keyup', checkKeyEvents);\n };\n\n const overlaySlides = CreateOverlaySlide({ images });\n\n const overlayCarousel = carouselElements.image({\n slides: overlaySlides,\n maxHeight: (window.innerHeight / 10) * 8,\n });\n\n styles += overlayCarousel.styles;\n\n const fixedFullScreen = carouselElements.fullScreen({\n content: overlayCarousel.element,\n callback: () => {\n if (isFullScreenEvents)\n window.removeEventListener('keyup', isFullScreenEvents);\n },\n });\n\n styles += fixedFullScreen.styles;\n\n let isFullScreenEvents: any = null;\n\n return {\n element: fixedFullScreen.element,\n styles,\n events: {\n setFullScreen,\n },\n };\n })();\n"],"names":["image","carouselElements.image","carouselElements.fullScreen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"overlay.mjs","sources":["../../../../source/composite/carousel/elements/overlay.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport * as carouselElements from '../elements';\nimport { Image as LayoutImage } from 'layout';\n\nconst ELEMENT_CAROUSEL_OVERLAY_COINTAINER = 'carousel-overlay-container';\n\n// prettier-ignore\nconst OverlayImageContainerStyles = `\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: ${token.color.gray.dark};\n }\n\n .${ELEMENT_CAROUSEL_OVERLAY_COINTAINER} img {\n object-fit: contain;\n max-height: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_CAROUSEL_OVERLAY_ELEMENT = `\n ${LayoutImage.Styles}\n ${OverlayImageContainerStyles}\n`;\n\nconst CreateOverlaySlide = ({ images }: { images: HTMLImageElement[] }) =>\n images.map((image) => {\n const slide = document.createElement('div');\n const imageContainer = document.createElement('div');\n const imageBlock = LayoutImage.CreateElement({\n image,\n showCaption: true,\n });\n\n imageContainer.classList.add(ELEMENT_CAROUSEL_OVERLAY_COINTAINER);\n imageContainer.appendChild(imageBlock);\n\n slide.appendChild(imageContainer);\n\n return slide;\n });\n\nexport default ({ images }: { images: HTMLImageElement[] }) =>\n (() => {\n let styles = STYLES_CAROUSEL_OVERLAY_ELEMENT;\n\n const setFullScreen = (index: number) => {\n let canMove = true;\n\n const checkKeyEvents = (event: KeyboardEvent) => {\n if (!canMove) return;\n canMove = false;\n if (event.key == 'ArrowLeft') overlayCarousel.events.EventSlideLeft();\n if (event.key == 'ArrowRight') overlayCarousel.events.EventSlideRight();\n\n setTimeout(() => {\n canMove = true;\n }, 700);\n };\n\n overlayCarousel.events.EventMoveTo(index);\n setTimeout(() => fixedFullScreen.events.show(), 100);\n\n setTimeout(() => {\n overlayCarousel.events.EventResize();\n }, 100);\n\n isFullScreenEvents = window.addEventListener('keyup', checkKeyEvents);\n };\n\n const overlaySlides = CreateOverlaySlide({ images });\n\n const overlayCarousel = carouselElements.image({\n slides: overlaySlides,\n maxHeight: (window.innerHeight / 10) * 8,\n });\n\n styles += overlayCarousel.styles;\n\n const fixedFullScreen = carouselElements.fullScreen({\n content: overlayCarousel.element,\n callback: () => {\n if (isFullScreenEvents)\n window.removeEventListener('keyup', isFullScreenEvents);\n },\n });\n\n styles += fixedFullScreen.styles;\n\n let isFullScreenEvents: any = null;\n\n return {\n element: fixedFullScreen.element,\n styles,\n events: {\n setFullScreen,\n },\n };\n })();\n"],"names":["image","carouselElements.image","carouselElements.fullScreen"],"mappings":";;;;;;;AAIA,MAAM,sCAAsC;AAG5C,MAAM,8BAA8B;AAAA,KAC/B,mCAAmC;AAAA;AAAA;AAAA;AAAA,wBAIhB,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA,KAGxC,mCAAmC;AAAA;AAAA;AAAA;AAAA;AAOxC,MAAM,kCAAkC;AAAA,IACpC,YAAY,MAAM;AAAA,IAClB,2BAA2B;AAAA;AAG/B,MAAM,qBAAqB,CAAC,EAAE,OAAA,MAC5B,OAAO,IAAI,CAACA,WAAU;AACpB,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,iBAAiB,SAAS,cAAc,KAAK;AACnD,QAAM,aAAa,YAAY,cAAc;AAAA,IAC3C,OAAAA;AAAA,IACA,aAAa;AAAA,EAAA,CACd;AAED,iBAAe,UAAU,IAAI,mCAAmC;AAChE,iBAAe,YAAY,UAAU;AAErC,QAAM,YAAY,cAAc;AAEhC,SAAO;AACT,CAAC;AAEH,MAAA,UAAe,CAAC,EAAE,OAAA,OACf,MAAM;AACL,MAAI,SAAS;AAEb,QAAM,gBAAgB,CAAC,UAAkB;AACvC,QAAI,UAAU;AAEd,UAAM,iBAAiB,CAAC,UAAyB;AAC/C,UAAI,CAAC,QAAS;AACd,gBAAU;AACV,UAAI,MAAM,OAAO,YAAa,iBAAgB,OAAO,eAAA;AACrD,UAAI,MAAM,OAAO,aAAc,iBAAgB,OAAO,gBAAA;AAEtD,iBAAW,MAAM;AACf,kBAAU;AAAA,MACZ,GAAG,GAAG;AAAA,IACR;AAEA,oBAAgB,OAAO,YAAY,KAAK;AACxC,eAAW,MAAM,gBAAgB,OAAO,KAAA,GAAQ,GAAG;AAEnD,eAAW,MAAM;AACf,sBAAgB,OAAO,YAAA;AAAA,IACzB,GAAG,GAAG;AAEN,yBAAqB,OAAO,iBAAiB,SAAS,cAAc;AAAA,EACtE;AAEA,QAAM,gBAAgB,mBAAmB,EAAE,QAAQ;AAEnD,QAAM,kBAAkBC,MAAuB;AAAA,IAC7C,QAAQ;AAAA,IACR,WAAY,OAAO,cAAc,KAAM;AAAA,EAAA,CACxC;AAED,YAAU,gBAAgB;AAE1B,QAAM,kBAAkBC,WAA4B;AAAA,IAClD,SAAS,gBAAgB;AAAA,IACzB,UAAU,MAAM;AACd,UAAI;AACF,eAAO,oBAAoB,SAAS,kBAAkB;AAAA,IAC1D;AAAA,EAAA,CACD;AAED,YAAU,gBAAgB;AAE1B,MAAI,qBAA0B;AAE9B,SAAO;AAAA,IACL,SAAS,gBAAgB;AAAA,IACzB;AAAA,IACA,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,EACF;AAEJ,GAAA;"}
|
|
@@ -3,6 +3,8 @@ const token = require("@universityofmaryland/web-token-library");
|
|
|
3
3
|
const performance = require("@universityofmaryland/web-utilities-library/performance");
|
|
4
4
|
const caption = require("../elements/caption.js");
|
|
5
5
|
const image = require("../../../layout/image.js");
|
|
6
|
+
require("@universityofmaryland/web-builder-library");
|
|
7
|
+
require("@universityofmaryland/web-styles-library");
|
|
6
8
|
function _interopNamespaceDefault(e) {
|
|
7
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
10
|
if (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caption.js","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["token","LayoutImage","CaptionContainer","caption","image","debounce"],"mappings":"
|
|
1
|
+
{"version":3,"file":"caption.js","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["token","LayoutImage","CaptionContainer","caption","image","debounce"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGfA,iBAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/BC,MAAY,MAAM;AAAA,IAClBC,QAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,WAAEC,WAAA,OAASC,SAAO,YAAA,IAAgB;AACxC,QAAM,aAAaD,aAAWA,cAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAIF,MAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAME,WAAU,iBAAiB;AAAA,MAC/B,IAAID,QAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIC,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAIC,SAAO;AACT,oBAAgB;AAAA,MACdH,MAAY,cAAc;AAAA,QAAA,OACxBG;AAAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMD,WAAU,gBAAgB;AAAA,QAC9B,IAAID,QAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIC,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEAC,aAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiBF,QAAiB,cAAc;AAAA,MAAA,SACpDC;AAAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACAE,YAAAA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
|
|
@@ -2,6 +2,8 @@ import * as token from "@universityofmaryland/web-token-library";
|
|
|
2
2
|
import { debounce } from "@universityofmaryland/web-utilities-library/performance";
|
|
3
3
|
import CaptionContainer from "../elements/caption.mjs";
|
|
4
4
|
import LayoutImage from "../../../layout/image.mjs";
|
|
5
|
+
import "@universityofmaryland/web-builder-library";
|
|
6
|
+
import "@universityofmaryland/web-styles-library";
|
|
5
7
|
const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-with-caption-container";
|
|
6
8
|
const ELEMENT_OBJECT_CAPTION_CONTAINER = "element-media-caption-container";
|
|
7
9
|
const ObjectContainer = `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caption.mjs","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["caption"],"mappings":"
|
|
1
|
+
{"version":3,"file":"caption.mjs","sources":["../../../../source/composite/media/inline/caption.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-with-caption-container';\nconst ELEMENT_OBJECT_CAPTION_CONTAINER = 'element-media-caption-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_CAPTION_CONTAINER} {\n display: flex;\n flex-direction: column;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst CreateMediaWithCaption = (props: TypeMediaInlineRequirements) =>\n (() => {\n const { caption, image, isThemeDark } = props;\n const hasCaption = caption && caption !== null;\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n caption.style.display = `block`;\n }\n };\n const eventResize = () => {\n sizeCaption();\n };\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n checkSizing();\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.display = `none`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n objectContainer.classList.add(ELEMENT_OBJECT_CAPTION_CONTAINER);\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 100);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaWithCaption;\n"],"names":["caption"],"mappings":";;;;;;AAaA,MAAM,iCAAiC;AACvC,MAAM,mCAAmC;AAGzC,MAAM,kBAAkB;AAAA,KACnB,gCAAgC;AAAA;AAAA;AAAA,sBAGf,MAAM,QAAQ,EAAE;AAAA;AAAA;AAAA;AAMtC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,eAAe;AAAA;AAGnB,MAAM,yBAAyB,CAAC,WAC7B,MAAM;AACL,QAAM,EAAE,SAAS,OAAO,YAAA,IAAgB;AACxC,QAAM,aAAa,WAAW,YAAY;AAC1C,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,kBAAkB,SAAS,cAAc,KAAK;AACpD,QAAM,cAAc,MAAM;AACxB,UAAM,iBAAiB,iBAAiB;AAAA,MACtC,IAAI,YAAY,SAAS,SAAS;AAAA,IAAA;AAEpC,UAAMA,WAAU,iBAAiB;AAAA,MAC/B,IAAI,iBAAiB,SAAS,SAAS;AAAA,IAAA;AAGzC,QAAIA,UAAS;AACXA,eAAQ,MAAM,QAAQ,GAAG,eAAe,WAAW;AACnDA,eAAQ,MAAM,UAAU;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,cAAc,MAAM;AACxB,gBAAA;AAAA,EACF;AAEA,MAAI,OAAO;AACT,oBAAgB;AAAA,MACd,YAAY,cAAc;AAAA,QACxB;AAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,OAAO,MAAM;AACjB,UAAM,cAAc,MAAM;AACxB,YAAMA,WAAU,gBAAgB;AAAA,QAC9B,IAAI,iBAAiB,SAAS,SAAS;AAAA,MAAA;AAGzC,UAAIA,UAAS;AACXA,iBAAQ,MAAM,UAAU;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO,iBAAiB,QAAQ,MAAM;AACpC,kBAAA;AAEA,iBAAW,MAAM;AACf,oBAAA;AAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH;AAEA,MAAI,YAAY;AACd,UAAM,iBAAiB,iBAAiB,cAAc;AAAA,MACpD;AAAA,MACA;AAAA,IAAA,CACD;AACD,mBAAe,MAAM,UAAU;AAC/B,oBAAgB,YAAY,cAAc;AAAA,EAC5C;AAEA,MAAI,gBAAgB,SAAS,SAAS,GAAG;AACvC,qBAAiB,YAAY,eAAe;AAAA,EAC9C;AAEA,kBAAgB,UAAU,IAAI,gCAAgC;AAC9D,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL;AAAA,IACA,SAAS,MAAM;AACb,kBAAA;AAAA,IACF,GAAG,EAAE;AAAA,EAAA;AAGP,aAAW,MAAM;AACf,gBAAA;AAAA,EACF,GAAG,GAAG;AAEN,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,MACN;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const image = require("../../../layout/image.js");
|
|
3
|
+
require("@universityofmaryland/web-builder-library");
|
|
4
|
+
require("@universityofmaryland/web-styles-library");
|
|
5
|
+
require("@universityofmaryland/web-token-library");
|
|
3
6
|
const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-inline-container";
|
|
4
7
|
const STYLES_MEDIA_INLINE_ELEMENT = `
|
|
5
8
|
.${ELEMENT_MEDIA_INLINE_CONTAINER} {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.js","sources":["../../../../source/composite/media/inline/standard.ts"],"sourcesContent":["import { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n};\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-container';\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n`;\n\nconst CreateMediaInline = (props: TypeMediaInlineRequirements) =>\n (() => {\n const elementContainer = document.createElement('div');\n const { image } = props;\n\n if (image) {\n elementContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n return {\n element: elementContainer,\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaInline;\n"],"names":["LayoutImage","image"],"mappings":"
|
|
1
|
+
{"version":3,"file":"standard.js","sources":["../../../../source/composite/media/inline/standard.ts"],"sourcesContent":["import { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n};\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-container';\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n`;\n\nconst CreateMediaInline = (props: TypeMediaInlineRequirements) =>\n (() => {\n const elementContainer = document.createElement('div');\n const { image } = props;\n\n if (image) {\n elementContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n return {\n element: elementContainer,\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaInline;\n"],"names":["LayoutImage","image"],"mappings":";;;;;AAMA,MAAM,iCAAiC;AAGvC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/BA,MAAY,MAAM;AAAA;AAGtB,MAAM,oBAAoB,CAAC,WACxB,MAAM;AACL,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,EAAA,OAAEC,YAAU;AAElB,MAAIA,SAAO;AACT,qBAAiB;AAAA,MACfD,MAAY,cAAc;AAAA,QAAA,OACxBC;AAAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;;"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import LayoutImage from "../../../layout/image.mjs";
|
|
2
|
+
import "@universityofmaryland/web-builder-library";
|
|
3
|
+
import "@universityofmaryland/web-styles-library";
|
|
4
|
+
import "@universityofmaryland/web-token-library";
|
|
2
5
|
const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-inline-container";
|
|
3
6
|
const STYLES_MEDIA_INLINE_ELEMENT = `
|
|
4
7
|
.${ELEMENT_MEDIA_INLINE_CONTAINER} {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.mjs","sources":["../../../../source/composite/media/inline/standard.ts"],"sourcesContent":["import { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n};\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-container';\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n`;\n\nconst CreateMediaInline = (props: TypeMediaInlineRequirements) =>\n (() => {\n const elementContainer = document.createElement('div');\n const { image } = props;\n\n if (image) {\n elementContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n return {\n element: elementContainer,\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaInline;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"standard.mjs","sources":["../../../../source/composite/media/inline/standard.ts"],"sourcesContent":["import { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineRequirements = {\n image?: HTMLImageElement | null;\n};\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-container';\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n`;\n\nconst CreateMediaInline = (props: TypeMediaInlineRequirements) =>\n (() => {\n const elementContainer = document.createElement('div');\n const { image } = props;\n\n if (image) {\n elementContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n return {\n element: elementContainer,\n styles: STYLES_MEDIA_INLINE_ELEMENT,\n };\n })();\n\nexport default CreateMediaInline;\n"],"names":[],"mappings":";;;;AAMA,MAAM,iCAAiC;AAGvC,MAAM,8BAA8B;AAAA,KAC/B,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/B,YAAY,MAAM;AAAA;AAGtB,MAAM,oBAAoB,CAAC,WACxB,MAAM;AACL,QAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,QAAM,EAAE,UAAU;AAElB,MAAI,OAAO;AACT,qBAAiB;AAAA,MACf,YAAY,cAAc;AAAA,QACxB;AAAA,QACA,aAAa;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL;AAEA,mBAAiB,UAAU,IAAI,8BAA8B;AAE7D,SAAO;AAAA,IACL,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAEZ,GAAA;"}
|
|
@@ -3,6 +3,8 @@ const token = require("@universityofmaryland/web-token-library");
|
|
|
3
3
|
const performance = require("@universityofmaryland/web-utilities-library/performance");
|
|
4
4
|
const caption = require("../elements/caption.js");
|
|
5
5
|
const image = require("../../../layout/image.js");
|
|
6
|
+
require("@universityofmaryland/web-builder-library");
|
|
7
|
+
require("@universityofmaryland/web-styles-library");
|
|
6
8
|
function _interopNamespaceDefault(e) {
|
|
7
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
8
10
|
if (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapped.js","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["token","LayoutImage","CaptionContainer","image","caption","objectContainer","debounce"],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrapped.js","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["token","LayoutImage","CaptionContainer","image","caption","objectContainer","debounce"],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import * as token from "@universityofmaryland/web-token-library";
|
|
|
2
2
|
import { debounce } from "@universityofmaryland/web-utilities-library/performance";
|
|
3
3
|
import CaptionContainer from "../elements/caption.mjs";
|
|
4
4
|
import LayoutImage from "../../../layout/image.mjs";
|
|
5
|
+
import "@universityofmaryland/web-builder-library";
|
|
6
|
+
import "@universityofmaryland/web-styles-library";
|
|
5
7
|
const BREAKPOINT = 400;
|
|
6
8
|
const ATTRIBUTE_IS_WRAPPING_TEXT = "is-wrapping-text";
|
|
7
9
|
const ELEMENT_MEDIA_INLINE_CONTAINER = "element-media-inline-wrapped-container";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapped.mjs","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["caption","objectContainer"],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrapped.mjs","sources":["../../../../source/composite/media/inline/wrapped.ts"],"sourcesContent":["import * as token from '@universityofmaryland/web-token-library';\nimport { debounce } from '@universityofmaryland/web-utilities-library/performance';\nimport CaptionContainer from '../elements/caption';\nimport { Image as LayoutImage } from 'layout';\n\nexport type TypeMediaInlineWrappedRequirements = {\n image?: HTMLImageElement | null;\n caption?: HTMLElement | null;\n wrappingText?: HTMLElement | null;\n isAlignmentRight?: boolean;\n isThemeDark?: boolean;\n};\n\nconst { spacing } = token;\n\nconst BREAKPOINT = 400;\n\nconst ATTRIBUTE_IS_WRAPPING_TEXT = 'is-wrapping-text';\n\nconst ELEMENT_MEDIA_INLINE_CONTAINER = 'element-media-inline-wrapped-container';\nconst ELEMENT_OBJECT_WRAPPED_CONTAINER = 'element-object-wrapped-container';\n\n// prettier-ignore\nconst ObjectContainer = `\n .${ELEMENT_OBJECT_WRAPPED_CONTAINER} {\n display: inline-block;\n padding-bottom: ${token.spacing.sm};\n max-width: 100%;\n }\n`;\n\n// prettier-ignore\nconst STYLES_MEDIA_INLINE_WRAPPED_ELEMENT = `\n .${ELEMENT_MEDIA_INLINE_CONTAINER} {\n display: inline-block;\n max-width: 100%;\n }\n\n ${LayoutImage.Styles}\n ${CaptionContainer.Styles}\n ${ObjectContainer}\n`;\n\nconst GetObjectSize = ({\n elementContainer,\n image,\n}: {\n elementContainer: HTMLElement;\n image: HTMLImageElement;\n}) => {\n const containerSize = elementContainer.offsetWidth;\n const imageWidth = image.naturalWidth;\n const isMediumView = containerSize > BREAKPOINT;\n let width = imageWidth;\n\n if (isMediumView) {\n const shouldMaxSized = imageWidth > containerSize / 2;\n if (shouldMaxSized) width = containerSize / 2;\n }\n\n return width;\n};\n\nconst CreateMediaInlineWrapped = (props: TypeMediaInlineWrappedRequirements) =>\n (() => {\n const { image, isAlignmentRight, isThemeDark, caption, wrappingText } =\n props;\n\n const elementContainer = document.createElement('div');\n const objectContainer = document.createElement('div');\n const hasWrappingtext = wrappingText && wrappingText !== null;\n const hasCaption = caption && caption !== null;\n const sizeCaption = () => {\n const imageContainer = elementContainer.querySelector(\n `.${LayoutImage.Elements.container}`,\n ) as HTMLElement;\n const caption = elementContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.width = `${imageContainer.offsetWidth}px`;\n }\n };\n const sizeObject = () => {\n const isAboveBreakPoint = elementContainer.offsetWidth > BREAKPOINT;\n const objectContainer = elementContainer.querySelector(\n `.${ELEMENT_OBJECT_WRAPPED_CONTAINER}`,\n ) as HTMLElement;\n\n if (!image) return;\n\n if (isAboveBreakPoint) {\n const objectSize = GetObjectSize({ elementContainer, image });\n\n objectContainer.style.width = `${objectSize}px`;\n objectContainer.style.display = 'inline-block';\n objectContainer.style.textAlign = 'left';\n\n if (isAlignmentRight) {\n objectContainer.style.float = `right`;\n objectContainer.style.paddingLeft = `${token.spacing.md}`;\n } else {\n objectContainer.style.float = 'left';\n objectContainer.style.paddingRight = `${token.spacing.md}`;\n }\n } else {\n objectContainer.style.width = '100%';\n objectContainer.style.float = 'none';\n objectContainer.style.textAlign = 'center';\n objectContainer.style.paddingLeft = `0`;\n objectContainer.style.paddingRight = `0`;\n }\n\n setTimeout(() => {\n sizeCaption();\n }, 100);\n };\n const eventResize = () => {\n if (hasWrappingtext) {\n sizeObject();\n }\n if (hasCaption) {\n sizeCaption();\n }\n };\n\n const load = () => {\n const checkSizing = () => {\n const caption = objectContainer.querySelector(\n `.${CaptionContainer.Elements.container}`,\n ) as HTMLElement;\n\n if (caption) {\n caption.style.opacity = `1`;\n }\n };\n\n image?.addEventListener('load', () => {\n eventResize();\n\n setTimeout(() => {\n checkSizing();\n }, 100);\n\n setTimeout(() => {\n checkSizing();\n }, 500);\n });\n };\n\n objectContainer.classList.add(ELEMENT_OBJECT_WRAPPED_CONTAINER);\n\n if (image) {\n objectContainer.appendChild(\n LayoutImage.CreateElement({\n image,\n showCaption: true,\n }),\n );\n }\n\n if (hasCaption) {\n const captionElement = CaptionContainer.CreateElement({\n caption,\n isThemeDark,\n });\n captionElement.style.opacity = `0`;\n objectContainer.appendChild(captionElement);\n }\n\n if (objectContainer.children.length > 0) {\n elementContainer.appendChild(objectContainer);\n }\n\n if (hasWrappingtext) {\n elementContainer.appendChild(wrappingText);\n elementContainer.setAttribute(ATTRIBUTE_IS_WRAPPING_TEXT, '');\n setTimeout(() => {\n sizeObject();\n }, 100);\n }\n\n elementContainer.classList.add(ELEMENT_MEDIA_INLINE_CONTAINER);\n\n window.addEventListener(\n 'resize',\n debounce(() => {\n eventResize();\n }, 20),\n );\n\n setTimeout(() => {\n eventResize();\n }, 200);\n\n return {\n element: elementContainer,\n events: {\n load,\n },\n styles: STYLES_MEDIA_INLINE_WRAPPED_ELEMENT,\n };\n })();\n\nexport default CreateMediaInlineWrapped;\n"],"names":["caption","objectContainer"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ interface PersonDisplay extends PersonTheme {
|
|
|
7
7
|
export interface PersonContact extends PersonTheme {
|
|
8
8
|
phone?: HTMLElement | null;
|
|
9
9
|
email?: HTMLElement | null;
|
|
10
|
-
|
|
10
|
+
linkedin?: HTMLElement | null;
|
|
11
11
|
address?: HTMLElement | null;
|
|
12
12
|
additionalContact?: HTMLElement | null;
|
|
13
13
|
}
|
|
@@ -20,7 +20,7 @@ export interface Person extends PersonContact, PersonDisplay {
|
|
|
20
20
|
actions?: HTMLElement | null;
|
|
21
21
|
}
|
|
22
22
|
export interface PersonCard extends Person {
|
|
23
|
-
image?: HTMLImageElement | null;
|
|
23
|
+
image?: HTMLImageElement | HTMLAnchorElement | null;
|
|
24
24
|
}
|
|
25
25
|
export interface PersonBio extends PersonCard {
|
|
26
26
|
description?: HTMLElement | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/composite/person/_types.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../source/composite/person/_types.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,MAAO,SAAQ,aAAa,EAAE,aAAa;IAC1D,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,UAAW,SAAQ,MAAM;IACxC,KAAK,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../source/composite/person/block.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAIjC,OAAO,UAAU,KAAG,YAAY,CAAC,WAAW,CAAC;AAA7D,
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../source/composite/person/block.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAIjC,OAAO,UAAU,KAAG,YAAY,CAAC,WAAW,CAAC;AAA7D,wBAsDE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.js","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nexport default (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n"],"names":["token","textLockup.person","textLockup.contact","imageFromSvg","iconPerson","ElementBuilder","assets.image.background","createMediaQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwBA,iBAAM,MAAM,iBAAiB,OAAO;AAElE,MAAA,QAAe,CAAC,UAAiD;AAC/D,QAAM,EAAE,OAAO,aAAa,YAAA,IAAgB;AAC5C,QAAM,oBAAoBC,OAAkB,KAAK;AACjD,QAAM,uBAAuBC,QAAmB,KAAK;AAErD,MAAI,QAAQ;AAEZ,MAAI,CAAC,OAAO;AACV,YAAQC,MAAAA,aAAa;AAAA,MACnB,KAAKC,OAAAA;AAAAA,IAAA,CACN;AAAA,EACH;AAEA,QAAM,iBAAiB,IAAIC,kBAAAA,eAAA,EACxB,cAAc,oBAAoB,EAClC;AAAA,IACCC,WAAwB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,QACZ,QAAQ;AAAA,MAAA;AAAA,IACV,CACD;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB,GAAGN,iBAAM,MAAM,KAAK,OAAO;AAAA,MAC5C,cAAc,GAAGA,iBAAM,QAAQ,EAAE;AAAA,MAEjC,GAAI,eAAe;AAAA,QACjB,iBAAiB,GAAGA,iBAAM,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,MAG7C,CAAC,cAAc,GAAG;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"block.js","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nexport default (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n transform: `none !important`,\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n"],"names":["token","textLockup.person","textLockup.contact","imageFromSvg","iconPerson","ElementBuilder","assets.image.background","createMediaQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwBA,iBAAM,MAAM,iBAAiB,OAAO;AAElE,MAAA,QAAe,CAAC,UAAiD;AAC/D,QAAM,EAAE,OAAO,aAAa,YAAA,IAAgB;AAC5C,QAAM,oBAAoBC,OAAkB,KAAK;AACjD,QAAM,uBAAuBC,QAAmB,KAAK;AAErD,MAAI,QAAQ;AAEZ,MAAI,CAAC,OAAO;AACV,YAAQC,MAAAA,aAAa;AAAA,MACnB,KAAKC,OAAAA;AAAAA,IAAA,CACN;AAAA,EACH;AAEA,QAAM,iBAAiB,IAAIC,kBAAAA,eAAA,EACxB,cAAc,oBAAoB,EAClC;AAAA,IACCC,WAAwB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,QACZ,QAAQ;AAAA,MAAA;AAAA,IACV,CACD;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB,GAAGN,iBAAM,MAAM,KAAK,OAAO;AAAA,MAC5C,cAAc,GAAGA,iBAAM,QAAQ,EAAE;AAAA,MAEjC,GAAI,eAAe;AAAA,QACjB,iBAAiB,GAAGA,iBAAM,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,MAG7C,CAAC,cAAc,GAAG;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,WAAW;AAAA,QAEX,GAAGO,OAAAA,iBAAiB,aAAa,uBAAuB;AAAA,UACtD,QAAQ;AAAA,QAAA,CACT;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD,EACA,MAAA;AAEH,SAAO,IAAIF,kBAAAA,eAAA,EACR,cAAc,cAAc,EAC5B,aAAa,gBAAgB,mBAAmB,oBAAoB,EACpE,MAAA;AACL;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.mjs","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nexport default (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n"],"names":["textLockup.person","textLockup.contact","iconPerson","imageContainer","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAElE,MAAA,QAAe,CAAC,UAAiD;AAC/D,QAAM,EAAE,OAAO,aAAa,YAAA,IAAgB;AAC5C,QAAM,oBAAoBA,OAAkB,KAAK;AACjD,QAAM,uBAAuBC,QAAmB,KAAK;AAErD,MAAI,QAAQ;AAEZ,MAAI,CAAC,OAAO;AACV,YAAQ,aAAa;AAAA,MACnB,KAAKC;AAAAA,IAAA,CACN;AAAA,EACH;AAEA,QAAMC,mBAAiB,IAAI,eAAA,EACxB,cAAc,oBAAoB,EAClC;AAAA,IACCC,eAAwB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,QACZ,QAAQ;AAAA,MAAA;AAAA,IACV,CACD;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB,GAAG,MAAM,MAAM,KAAK,OAAO;AAAA,MAC5C,cAAc,GAAG,MAAM,QAAQ,EAAE;AAAA,MAEjC,GAAI,eAAe;AAAA,QACjB,iBAAiB,GAAG,MAAM,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,MAG7C,CAAC,cAAc,GAAG;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ;AAAA,
|
|
1
|
+
{"version":3,"file":"block.mjs","sources":["../../../source/composite/person/block.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { imageFromSvg } from '@universityofmaryland/web-utilities-library/media';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { person as iconPerson } from '@universityofmaryland/web-icons-library/people';\nimport { assets, textLockup } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\n\nexport default (props: PersonCard): ElementModel<HTMLElement> => {\n const { image: personImage, isThemeDark } = props;\n const textLockupElement = textLockup.person(props);\n const contactLockupElement = textLockup.contact(props);\n\n let image = personImage;\n\n if (!image) {\n image = imageFromSvg({\n SVG: iconPerson,\n });\n }\n\n const imageContainer = new ElementBuilder()\n .withClassName('person-block-image')\n .withChild(\n assets.image.background({\n element: image,\n isScaled: false,\n customStyles: {\n height: 'auto',\n },\n }),\n )\n .withStyles({\n element: {\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: `${token.color.gray.lighter}`,\n marginBottom: `${token.spacing.md}`,\n\n ...(isThemeDark && {\n backgroundColor: `${token.color.gray.darker}`,\n }),\n\n ['& img, & svg']: {\n display: 'block',\n width: '100%',\n objectFit: 'contain',\n height: '140px !important',\n transform: `none !important`,\n\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n height: '200px !important',\n }),\n },\n },\n })\n .build();\n\n return new ElementBuilder()\n .withClassName('person-block')\n .withChildren(imageContainer, textLockupElement, contactLockupElement)\n .build();\n};\n"],"names":["textLockup.person","textLockup.contact","iconPerson","imageContainer","assets.image.background"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAElE,MAAA,QAAe,CAAC,UAAiD;AAC/D,QAAM,EAAE,OAAO,aAAa,YAAA,IAAgB;AAC5C,QAAM,oBAAoBA,OAAkB,KAAK;AACjD,QAAM,uBAAuBC,QAAmB,KAAK;AAErD,MAAI,QAAQ;AAEZ,MAAI,CAAC,OAAO;AACV,YAAQ,aAAa;AAAA,MACnB,KAAKC;AAAAA,IAAA,CACN;AAAA,EACH;AAEA,QAAMC,mBAAiB,IAAI,eAAA,EACxB,cAAc,oBAAoB,EAClC;AAAA,IACCC,eAAwB;AAAA,MACtB,SAAS;AAAA,MACT,UAAU;AAAA,MACV,cAAc;AAAA,QACZ,QAAQ;AAAA,MAAA;AAAA,IACV,CACD;AAAA,EAAA,EAEF,WAAW;AAAA,IACV,SAAS;AAAA,MACP,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,iBAAiB,GAAG,MAAM,MAAM,KAAK,OAAO;AAAA,MAC5C,cAAc,GAAG,MAAM,QAAQ,EAAE;AAAA,MAEjC,GAAI,eAAe;AAAA,QACjB,iBAAiB,GAAG,MAAM,MAAM,KAAK,MAAM;AAAA,MAAA;AAAA,MAG7C,CAAC,cAAc,GAAG;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,WAAW;AAAA,QAEX,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,UACtD,QAAQ;AAAA,QAAA,CACT;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD,EACA,MAAA;AAEH,SAAO,IAAI,eAAA,EACR,cAAc,cAAc,EAC5B,aAAaD,kBAAgB,mBAAmB,oBAAoB,EACpE,MAAA;AACL;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PersonCard } from './_types';
|
|
2
2
|
import { ElementModel } from '../../_types';
|
|
3
|
-
declare const _default: ({ actions, address, association, email, image, isThemeDark, job,
|
|
3
|
+
declare const _default: ({ actions, address, association, email, image, isThemeDark, job, linkedin, name, phone, pronouns, subText, }: PersonCard) => ElementModel<HTMLElement>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=list.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/person/list.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAMjC
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../source/composite/person/list.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;yBAMjC,8GAab,UAAU,KAAG,YAAY,CAAC,WAAW,CAAC;AAbzC,wBAsEE"}
|
|
@@ -56,7 +56,7 @@ const list = ({
|
|
|
56
56
|
image,
|
|
57
57
|
isThemeDark,
|
|
58
58
|
job,
|
|
59
|
-
|
|
59
|
+
linkedin,
|
|
60
60
|
name,
|
|
61
61
|
phone,
|
|
62
62
|
pronouns,
|
|
@@ -78,11 +78,13 @@ const list = ({
|
|
|
78
78
|
...styles.createMediaQuery("min-width", mediumBreakpointStart, {
|
|
79
79
|
display: "block",
|
|
80
80
|
width: "160px",
|
|
81
|
+
minWidth: "160px",
|
|
81
82
|
paddingRight: `${token__namespace.spacing.md}`,
|
|
82
83
|
alignSelf: "flex-start"
|
|
83
84
|
}),
|
|
84
85
|
...styles.createMediaQuery("min-width", mediumBreakpoint, {
|
|
85
|
-
width: "208px"
|
|
86
|
+
width: "208px",
|
|
87
|
+
minWidth: "208px"
|
|
86
88
|
})
|
|
87
89
|
},
|
|
88
90
|
image,
|
|
@@ -100,7 +102,7 @@ const list = ({
|
|
|
100
102
|
email,
|
|
101
103
|
isThemeDark,
|
|
102
104
|
job,
|
|
103
|
-
|
|
105
|
+
linkedin,
|
|
104
106
|
name,
|
|
105
107
|
phone,
|
|
106
108
|
pronouns,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nexport default ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n
|
|
1
|
+
{"version":3,"file":"list.js","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nexport default ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): ElementModel<HTMLElement> => {\n const builder = new ElementBuilder()\n .withClassName('person-list-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n customStyles: {\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n minWidth: '160px',\n paddingRight: `${token.spacing.md}`,\n alignSelf: 'flex-start',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n minWidth: '208px',\n }),\n },\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n builder.withChild(\n layout.person.columns.information({\n actions,\n address,\n association,\n customStyles: {},\n email,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["token","ElementBuilder","createMediaQuery","layout.person.columns.image","layout.person.columns.information"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAkBA,iBAAM,MAAM,iBAAiB,MAAM;AAC3D,MAAM,wBAAwBA,iBAAM,MAAM,iBAAiB,OAAO;AAClE,MAAM,mBAAmBA,iBAAM,MAAM,iBAAiB,MAAM;AAE5D,MAAA,OAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;AAC3C,QAAM,UAAU,IAAIC,kBAAAA,eAAA,EACjB,cAAc,uBAAuB,EACrC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAGC,OAAAA,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAI,OAAO;AACT,YAAQ;AAAA,MACNC,cAA4B;AAAA,QAC1B,cAAc;AAAA,UACZ,GAAGD,OAAAA,iBAAiB,aAAa,uBAAuB;AAAA,YACtD,SAAS;AAAA,YACT,OAAO;AAAA,YACP,UAAU;AAAA,YACV,cAAc,GAAGF,iBAAM,QAAQ,EAAE;AAAA,YACjC,WAAW;AAAA,UAAA,CACZ;AAAA,UAED,GAAGE,OAAAA,iBAAiB,aAAa,kBAAkB;AAAA,YACjD,OAAO;AAAA,YACP,UAAU;AAAA,UAAA,CACX;AAAA,QAAA;AAAA,QAEH;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,YAAQ;AAAA,MACNE,oBAAkC;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;;"}
|
|
@@ -38,7 +38,7 @@ const list = ({
|
|
|
38
38
|
image: image$1,
|
|
39
39
|
isThemeDark,
|
|
40
40
|
job,
|
|
41
|
-
|
|
41
|
+
linkedin,
|
|
42
42
|
name,
|
|
43
43
|
phone,
|
|
44
44
|
pronouns,
|
|
@@ -60,11 +60,13 @@ const list = ({
|
|
|
60
60
|
...createMediaQuery("min-width", mediumBreakpointStart, {
|
|
61
61
|
display: "block",
|
|
62
62
|
width: "160px",
|
|
63
|
+
minWidth: "160px",
|
|
63
64
|
paddingRight: `${token.spacing.md}`,
|
|
64
65
|
alignSelf: "flex-start"
|
|
65
66
|
}),
|
|
66
67
|
...createMediaQuery("min-width", mediumBreakpoint, {
|
|
67
|
-
width: "208px"
|
|
68
|
+
width: "208px",
|
|
69
|
+
minWidth: "208px"
|
|
68
70
|
})
|
|
69
71
|
},
|
|
70
72
|
image: image$1,
|
|
@@ -82,7 +84,7 @@ const list = ({
|
|
|
82
84
|
email,
|
|
83
85
|
isThemeDark,
|
|
84
86
|
job,
|
|
85
|
-
|
|
87
|
+
linkedin,
|
|
86
88
|
name,
|
|
87
89
|
phone,
|
|
88
90
|
pronouns,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.mjs","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nexport default ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n
|
|
1
|
+
{"version":3,"file":"list.mjs","sources":["../../../source/composite/person/list.ts"],"sourcesContent":["import { ElementBuilder } from '@universityofmaryland/web-builder-library';\nimport * as token from '@universityofmaryland/web-token-library';\nimport { createMediaQuery } from '@universityofmaryland/web-utilities-library/styles';\nimport { layout } from 'atomic';\nimport { PersonCard } from './_types';\nimport { type ElementModel } from '../../_types';\n\nconst smallBreakpoint = token.media.breakpointValues.small.max;\nconst mediumBreakpointStart = token.media.breakpointValues.medium.min;\nconst mediumBreakpoint = token.media.breakpointValues.large.min;\n\nexport default ({\n actions,\n address,\n association,\n email,\n image,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n}: PersonCard): ElementModel<HTMLElement> => {\n const builder = new ElementBuilder()\n .withClassName('person-list-container')\n .withStyles({\n element: {\n overflow: 'hidden',\n display: 'flex',\n\n ...createMediaQuery('max-width', smallBreakpoint, {\n flexDirection: 'column',\n }),\n },\n });\n\n if (image) {\n builder.withChild(\n layout.person.columns.image({\n customStyles: {\n ...createMediaQuery('min-width', mediumBreakpointStart, {\n display: 'block',\n width: '160px',\n minWidth: '160px',\n paddingRight: `${token.spacing.md}`,\n alignSelf: 'flex-start',\n }),\n\n ...createMediaQuery('min-width', mediumBreakpoint, {\n width: '208px',\n minWidth: '208px',\n }),\n },\n image,\n isThemeDark,\n }),\n );\n }\n\n if (name) {\n builder.withChild(\n layout.person.columns.information({\n actions,\n address,\n association,\n customStyles: {},\n email,\n isThemeDark,\n job,\n linkedin,\n name,\n phone,\n pronouns,\n subText,\n }),\n );\n }\n\n return builder.build();\n};\n"],"names":["image","layout.person.columns.image","layout.person.columns.information"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,kBAAkB,MAAM,MAAM,iBAAiB,MAAM;AAC3D,MAAM,wBAAwB,MAAM,MAAM,iBAAiB,OAAO;AAClE,MAAM,mBAAmB,MAAM,MAAM,iBAAiB,MAAM;AAE5D,MAAA,OAAe,CAAC;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAAA,OACAA;AAAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6C;AAC3C,QAAM,UAAU,IAAI,eAAA,EACjB,cAAc,uBAAuB,EACrC,WAAW;AAAA,IACV,SAAS;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,MAET,GAAG,iBAAiB,aAAa,iBAAiB;AAAA,QAChD,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA;AAAA,EACH,CACD;AAEH,MAAIA,SAAO;AACT,YAAQ;AAAA,MACNC,MAA4B;AAAA,QAC1B,cAAc;AAAA,UACZ,GAAG,iBAAiB,aAAa,uBAAuB;AAAA,YACtD,SAAS;AAAA,YACT,OAAO;AAAA,YACP,UAAU;AAAA,YACV,cAAc,GAAG,MAAM,QAAQ,EAAE;AAAA,YACjC,WAAW;AAAA,UAAA,CACZ;AAAA,UAED,GAAG,iBAAiB,aAAa,kBAAkB;AAAA,YACjD,OAAO;AAAA,YACP,UAAU;AAAA,UAAA,CACX;AAAA,QAAA;AAAA,QACH,OACAD;AAAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,MAAI,MAAM;AACR,YAAQ;AAAA,MACNE,YAAkC;AAAA,QAChC;AAAA,QACA;AAAA,QACA;AAAA,QACA,cAAc,CAAA;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,SAAO,QAAQ,MAAA;AACjB;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PersonCard } from './_types';
|
|
2
2
|
import { UMDElement } from '../../_types';
|
|
3
|
-
declare const _default: ({ actions, additionalContact, address, association, email, image, isThemeDark, job,
|
|
3
|
+
declare const _default: ({ actions, additionalContact, address, association, email, image, isThemeDark, job, linkedin, name, phone, pronouns, subText, }: PersonCard) => UMDElement;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=tabular.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../../source/composite/person/tabular.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;yBAI/B,
|
|
1
|
+
{"version":3,"file":"tabular.d.ts","sourceRoot":"","sources":["../../../source/composite/person/tabular.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;yBAI/B,iIAcb,UAAU,KAAG,UAAU;AAd1B,wBA8FE"}
|
|
@@ -57,7 +57,7 @@ const tabular = ({
|
|
|
57
57
|
image,
|
|
58
58
|
isThemeDark,
|
|
59
59
|
job,
|
|
60
|
-
|
|
60
|
+
linkedin,
|
|
61
61
|
name,
|
|
62
62
|
phone,
|
|
63
63
|
pronouns,
|
|
@@ -113,7 +113,7 @@ const tabular = ({
|
|
|
113
113
|
})
|
|
114
114
|
);
|
|
115
115
|
}
|
|
116
|
-
if (additionalContact || address || email ||
|
|
116
|
+
if (additionalContact || address || email || linkedin || phone) {
|
|
117
117
|
builder.withChild(
|
|
118
118
|
columns.contact({
|
|
119
119
|
additionalContact,
|
|
@@ -121,7 +121,7 @@ const tabular = ({
|
|
|
121
121
|
customStyles: {},
|
|
122
122
|
email,
|
|
123
123
|
isThemeDark,
|
|
124
|
-
|
|
124
|
+
linkedin,
|
|
125
125
|
phone
|
|
126
126
|
})
|
|
127
127
|
);
|