@cds/core 6.2.2 → 6.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-content.element.js.map +1 -1
- package/accordion/accordion-header.element.js.map +1 -1
- package/accordion/accordion-panel.element.js.map +1 -1
- package/accordion/accordion.element.js.map +1 -1
- package/accordion/register.js.map +1 -1
- package/alert/alert-actions.element.js.map +1 -1
- package/alert/alert-group.element.js.map +1 -1
- package/alert/alert.element.js.map +1 -1
- package/alert/register.js.map +1 -1
- package/badge/badge.element.js.map +1 -1
- package/badge/register.js.map +1 -1
- package/breadcrumb/breadcrumb.element.js.map +1 -1
- package/breadcrumb/register.js.map +1 -1
- package/button/button.element.js.map +1 -1
- package/button/icon-button.element.js.map +1 -1
- package/button/register.js.map +1 -1
- package/button-action/button-action.element.js.map +1 -1
- package/button-action/register.js.map +1 -1
- package/button-expand/button-expand.element.js.map +1 -1
- package/button-expand/register.js.map +1 -1
- package/button-handle/button-handle.element.js.map +1 -1
- package/button-handle/register.js.map +1 -1
- package/button-inline/button-inline.element.js.map +1 -1
- package/button-inline/register.js.map +1 -1
- package/button-sort/button-sort.element.js.map +1 -1
- package/button-sort/register.js.map +1 -1
- package/button-sort/utils.js.map +1 -1
- package/card/card.element.js.map +1 -1
- package/card/register.js.map +1 -1
- package/checkbox/checkbox-group.element.js.map +1 -1
- package/checkbox/checkbox.element.js.map +1 -1
- package/checkbox/register.js.map +1 -1
- package/datalist/datalist.element.js.map +1 -1
- package/datalist/register.js.map +1 -1
- package/date/date.element.js.map +1 -1
- package/date/register.js.map +1 -1
- package/demo/data/demo.service.js.map +1 -1
- package/demo/data/food.data.js.map +1 -1
- package/demo/data/infrastructure.data.js.map +1 -1
- package/demo/data/system.data.js.map +1 -1
- package/demo/index.js.map +1 -1
- package/demo/utils.js.map +1 -1
- package/divider/divider.element.js.map +1 -1
- package/divider/register.js.map +1 -1
- package/dropdown/dropdown.element.js.map +1 -1
- package/dropdown/register.js.map +1 -1
- package/file/file.element.js.map +1 -1
- package/file/register.js.map +1 -1
- package/forms/control/control.element.js.map +1 -1
- package/forms/control-action/control-action.element.js.map +1 -1
- package/forms/control-group/control-group.element.js.map +1 -1
- package/forms/control-inline/control-inline.element.js +1 -1
- package/forms/control-inline/control-inline.element.js.map +1 -1
- package/forms/control-label/control-label.element.js.map +1 -1
- package/forms/control-message/control-message.element.js.map +1 -1
- package/forms/form-group/form-group.element.js.map +1 -1
- package/forms/register.js.map +1 -1
- package/forms/utils/utils.js.map +1 -1
- package/forms/utils/validate.js.map +1 -1
- package/global.css +18 -18
- package/grid/cell/grid-cell.element.js.map +1 -1
- package/grid/column/grid-column-position.controller.js.map +1 -1
- package/grid/column/grid-column-size.controller.js.map +1 -1
- package/grid/column/grid-column.element.js.map +1 -1
- package/grid/detail/grid-detail.element.js.map +1 -1
- package/grid/footer/grid-footer.element.js.map +1 -1
- package/grid/grid/grid-layout.controller.js.map +1 -1
- package/grid/grid/grid.element.js.map +1 -1
- package/grid/pagination/grid-pagination.element.js.map +1 -1
- package/grid/placeholder/grid-placeholder.element.js.map +1 -1
- package/grid/register.js.map +1 -1
- package/grid/row/grid-row-position.controller.js.map +1 -1
- package/grid/row/grid-row.element.js.map +1 -1
- package/icon/collections/chart.js.map +1 -1
- package/icon/collections/commerce.js.map +1 -1
- package/icon/collections/core.js.map +1 -1
- package/icon/collections/essential.js.map +1 -1
- package/icon/collections/media.js.map +1 -1
- package/icon/collections/mini.js.map +1 -1
- package/icon/collections/social.js.map +1 -1
- package/icon/collections/technology.js.map +1 -1
- package/icon/collections/text-edit.js.map +1 -1
- package/icon/collections/travel.js.map +1 -1
- package/icon/icon.element.js.map +1 -1
- package/icon/icon.renderer.js.map +1 -1
- package/icon/icon.service.js.map +1 -1
- package/icon/register.js.map +1 -1
- package/icon/shapes/accessibility-1.js.map +1 -1
- package/icon/shapes/accessibility-2.js.map +1 -1
- package/icon/shapes/add-text.js.map +1 -1
- package/icon/shapes/administrator.js.map +1 -1
- package/icon/shapes/airplane.js.map +1 -1
- package/icon/shapes/alarm-clock.js.map +1 -1
- package/icon/shapes/alarm-off.js.map +1 -1
- package/icon/shapes/align-bottom.js.map +1 -1
- package/icon/shapes/align-center.js.map +1 -1
- package/icon/shapes/align-left-text.js.map +1 -1
- package/icon/shapes/align-left.js.map +1 -1
- package/icon/shapes/align-middle.js.map +1 -1
- package/icon/shapes/align-right-text.js.map +1 -1
- package/icon/shapes/align-right.js.map +1 -1
- package/icon/shapes/align-top.js.map +1 -1
- package/icon/shapes/angle-double.js.map +1 -1
- package/icon/shapes/angle.js.map +1 -1
- package/icon/shapes/animation.js.map +1 -1
- package/icon/shapes/announcement.js.map +1 -1
- package/icon/shapes/application.js.map +1 -1
- package/icon/shapes/applications.js.map +1 -1
- package/icon/shapes/archive.js.map +1 -1
- package/icon/shapes/arrow-mini.js.map +1 -1
- package/icon/shapes/arrow.js.map +1 -1
- package/icon/shapes/assign-user.js.map +1 -1
- package/icon/shapes/asterisk.js.map +1 -1
- package/icon/shapes/atom.js.map +1 -1
- package/icon/shapes/axis-chart.js.map +1 -1
- package/icon/shapes/backup-restore.js.map +1 -1
- package/icon/shapes/backup.js.map +1 -1
- package/icon/shapes/ban.js.map +1 -1
- package/icon/shapes/bank.js.map +1 -1
- package/icon/shapes/bar-chart.js.map +1 -1
- package/icon/shapes/bar-code.js.map +1 -1
- package/icon/shapes/bars.js.map +1 -1
- package/icon/shapes/battery.js.map +1 -1
- package/icon/shapes/bell-curve.js.map +1 -1
- package/icon/shapes/bell.js.map +1 -1
- package/icon/shapes/beta.js.map +1 -1
- package/icon/shapes/bicycle.js.map +1 -1
- package/icon/shapes/birthday-cake.js.map +1 -1
- package/icon/shapes/bitcoin.js.map +1 -1
- package/icon/shapes/block-quote.js.map +1 -1
- package/icon/shapes/block.js.map +1 -1
- package/icon/shapes/blocks-group.js.map +1 -1
- package/icon/shapes/bluetooth-off.js.map +1 -1
- package/icon/shapes/bluetooth.js.map +1 -1
- package/icon/shapes/boat.js.map +1 -1
- package/icon/shapes/bold.js.map +1 -1
- package/icon/shapes/bolt.js.map +1 -1
- package/icon/shapes/book.js.map +1 -1
- package/icon/shapes/bookmark.js.map +1 -1
- package/icon/shapes/box-plot.js.map +1 -1
- package/icon/shapes/briefcase.js.map +1 -1
- package/icon/shapes/bubble-chart.js.map +1 -1
- package/icon/shapes/bubble-exclamation.js.map +1 -1
- package/icon/shapes/bug.js.map +1 -1
- package/icon/shapes/building.js.map +1 -1
- package/icon/shapes/bullet-list.js.map +1 -1
- package/icon/shapes/bullseye.js.map +1 -1
- package/icon/shapes/bundle.js.map +1 -1
- package/icon/shapes/calculator.js.map +1 -1
- package/icon/shapes/calendar-mini.js.map +1 -1
- package/icon/shapes/calendar.js.map +1 -1
- package/icon/shapes/camera.js.map +1 -1
- package/icon/shapes/campervan.js.map +1 -1
- package/icon/shapes/capacitor.js.map +1 -1
- package/icon/shapes/car.js.map +1 -1
- package/icon/shapes/caravan.js.map +1 -1
- package/icon/shapes/cd-dvd.js.map +1 -1
- package/icon/shapes/center-text.js.map +1 -1
- package/icon/shapes/certificate.js.map +1 -1
- package/icon/shapes/chat-bubble.js.map +1 -1
- package/icon/shapes/check-circle-mini.js.map +1 -1
- package/icon/shapes/check-circle.js.map +1 -1
- package/icon/shapes/check-mini.js.map +1 -1
- package/icon/shapes/check.js.map +1 -1
- package/icon/shapes/checkbox-list.js.map +1 -1
- package/icon/shapes/child-arrow.js.map +1 -1
- package/icon/shapes/ci-cd.js.map +1 -1
- package/icon/shapes/circle-arrow.js.map +1 -1
- package/icon/shapes/circle.js.map +1 -1
- package/icon/shapes/clipboard.js.map +1 -1
- package/icon/shapes/clock.js.map +1 -1
- package/icon/shapes/clone.js.map +1 -1
- package/icon/shapes/cloud-chart.js.map +1 -1
- package/icon/shapes/cloud-network.js.map +1 -1
- package/icon/shapes/cloud-scale.js.map +1 -1
- package/icon/shapes/cloud-traffic.js.map +1 -1
- package/icon/shapes/cloud.js.map +1 -1
- package/icon/shapes/cluster.js.map +1 -1
- package/icon/shapes/code.js.map +1 -1
- package/icon/shapes/cog.js.map +1 -1
- package/icon/shapes/coin-bag.js.map +1 -1
- package/icon/shapes/collapse-card.js.map +1 -1
- package/icon/shapes/color-palette.js.map +1 -1
- package/icon/shapes/color-picker.js.map +1 -1
- package/icon/shapes/compass.js.map +1 -1
- package/icon/shapes/computer.js.map +1 -1
- package/icon/shapes/connect.js.map +1 -1
- package/icon/shapes/container-volume.js.map +1 -1
- package/icon/shapes/container.js.map +1 -1
- package/icon/shapes/contract.js.map +1 -1
- package/icon/shapes/control-lun.js.map +1 -1
- package/icon/shapes/copy-to-clipboard.js.map +1 -1
- package/icon/shapes/copy.js.map +1 -1
- package/icon/shapes/cpu.js.map +1 -1
- package/icon/shapes/credit-card.js.map +1 -1
- package/icon/shapes/crosshairs.js.map +1 -1
- package/icon/shapes/crown.js.map +1 -1
- package/icon/shapes/cursor-arrow.js.map +1 -1
- package/icon/shapes/cursor-hand-click.js.map +1 -1
- package/icon/shapes/cursor-hand-grab.js.map +1 -1
- package/icon/shapes/cursor-hand-open.js.map +1 -1
- package/icon/shapes/cursor-hand.js.map +1 -1
- package/icon/shapes/cursor-move.js.map +1 -1
- package/icon/shapes/curve-chart.js.map +1 -1
- package/icon/shapes/dashboard.js.map +1 -1
- package/icon/shapes/data-cluster.js.map +1 -1
- package/icon/shapes/deploy.js.map +1 -1
- package/icon/shapes/detail-collapse.js.map +1 -1
- package/icon/shapes/detail-expand.js.map +1 -1
- package/icon/shapes/details.js.map +1 -1
- package/icon/shapes/devices.js.map +1 -1
- package/icon/shapes/digital-signature.js.map +1 -1
- package/icon/shapes/disconnect.js.map +1 -1
- package/icon/shapes/display.js.map +1 -1
- package/icon/shapes/dollar-bill.js.map +1 -1
- package/icon/shapes/dollar.js.map +1 -1
- package/icon/shapes/dot-circle.js.map +1 -1
- package/icon/shapes/download-cloud.js.map +1 -1
- package/icon/shapes/download.js.map +1 -1
- package/icon/shapes/drag-handle-corner.js.map +1 -1
- package/icon/shapes/drag-handle.js.map +1 -1
- package/icon/shapes/e-check.js.map +1 -1
- package/icon/shapes/ellipsis-horizontal.js.map +1 -1
- package/icon/shapes/ellipsis-vertical.js.map +1 -1
- package/icon/shapes/employee-group.js.map +1 -1
- package/icon/shapes/employee.js.map +1 -1
- package/icon/shapes/envelope.js.map +1 -1
- package/icon/shapes/eraser.js.map +1 -1
- package/icon/shapes/error-mini.js.map +1 -1
- package/icon/shapes/error-standard.js.map +1 -1
- package/icon/shapes/euro.js.map +1 -1
- package/icon/shapes/event-mini.js.map +1 -1
- package/icon/shapes/event.js.map +1 -1
- package/icon/shapes/exclamation-circle.js.map +1 -1
- package/icon/shapes/exclamation-triangle.js.map +1 -1
- package/icon/shapes/expand-card.js.map +1 -1
- package/icon/shapes/export.js.map +1 -1
- package/icon/shapes/eye-hide.js.map +1 -1
- package/icon/shapes/eye.js.map +1 -1
- package/icon/shapes/factory.js.map +1 -1
- package/icon/shapes/fast-forward.js.map +1 -1
- package/icon/shapes/ferry.js.map +1 -1
- package/icon/shapes/file-group.js.map +1 -1
- package/icon/shapes/file-settings.js.map +1 -1
- package/icon/shapes/file-share-2.js.map +1 -1
- package/icon/shapes/file-share.js.map +1 -1
- package/icon/shapes/file-zip.js.map +1 -1
- package/icon/shapes/file.js.map +1 -1
- package/icon/shapes/film-strip.js.map +1 -1
- package/icon/shapes/filter-2.js.map +1 -1
- package/icon/shapes/filter-grid-circle-mini.js.map +1 -1
- package/icon/shapes/filter-grid-circle.js.map +1 -1
- package/icon/shapes/filter-grid-mini.js.map +1 -1
- package/icon/shapes/filter-grid.js.map +1 -1
- package/icon/shapes/filter-off.js.map +1 -1
- package/icon/shapes/filter.js.map +1 -1
- package/icon/shapes/firewall.js.map +1 -1
- package/icon/shapes/first-aid.js.map +1 -1
- package/icon/shapes/fish.js.map +1 -1
- package/icon/shapes/flag.js.map +1 -1
- package/icon/shapes/flame.js.map +1 -1
- package/icon/shapes/flask.js.map +1 -1
- package/icon/shapes/floppy.js.map +1 -1
- package/icon/shapes/folder-open.js.map +1 -1
- package/icon/shapes/folder.js.map +1 -1
- package/icon/shapes/font-size.js.map +1 -1
- package/icon/shapes/forking.js.map +1 -1
- package/icon/shapes/form.js.map +1 -1
- package/icon/shapes/fuel.js.map +1 -1
- package/icon/shapes/gavel.js.map +1 -1
- package/icon/shapes/grid-chart.js.map +1 -1
- package/icon/shapes/grid-view.js.map +1 -1
- package/icon/shapes/half-star.js.map +1 -1
- package/icon/shapes/happy-face.js.map +1 -1
- package/icon/shapes/hard-disk.js.map +1 -1
- package/icon/shapes/hard-drive-disks.js.map +1 -1
- package/icon/shapes/hard-drive.js.map +1 -1
- package/icon/shapes/hashtag.js.map +1 -1
- package/icon/shapes/headphones.js.map +1 -1
- package/icon/shapes/heart-broken.js.map +1 -1
- package/icon/shapes/heart.js.map +1 -1
- package/icon/shapes/heat-map.js.map +1 -1
- package/icon/shapes/helix.js.map +1 -1
- package/icon/shapes/help-info.js.map +1 -1
- package/icon/shapes/help.js.map +1 -1
- package/icon/shapes/highlighter.js.map +1 -1
- package/icon/shapes/history.js.map +1 -1
- package/icon/shapes/home.js.map +1 -1
- package/icon/shapes/host-group.js.map +1 -1
- package/icon/shapes/host.js.map +1 -1
- package/icon/shapes/hourglass.js.map +1 -1
- package/icon/shapes/id-badge.js.map +1 -1
- package/icon/shapes/image-gallery.js.map +1 -1
- package/icon/shapes/image.js.map +1 -1
- package/icon/shapes/import.js.map +1 -1
- package/icon/shapes/inbox.js.map +1 -1
- package/icon/shapes/indent.js.map +1 -1
- package/icon/shapes/inductor.js.map +1 -1
- package/icon/shapes/info-circle-mini.js.map +1 -1
- package/icon/shapes/info-circle.js.map +1 -1
- package/icon/shapes/info-standard.js.map +1 -1
- package/icon/shapes/install.js.map +1 -1
- package/icon/shapes/internet-of-things.js.map +1 -1
- package/icon/shapes/italic.js.map +1 -1
- package/icon/shapes/justify-text.js.map +1 -1
- package/icon/shapes/key.js.map +1 -1
- package/icon/shapes/keyboard.js.map +1 -1
- package/icon/shapes/landscape.js.map +1 -1
- package/icon/shapes/language.js.map +1 -1
- package/icon/shapes/launchpad.js.map +1 -1
- package/icon/shapes/layers.js.map +1 -1
- package/icon/shapes/library.js.map +1 -1
- package/icon/shapes/lightbulb.js.map +1 -1
- package/icon/shapes/line-chart.js.map +1 -1
- package/icon/shapes/link.js.map +1 -1
- package/icon/shapes/list.js.map +1 -1
- package/icon/shapes/lock.js.map +1 -1
- package/icon/shapes/login.js.map +1 -1
- package/icon/shapes/logout.js.map +1 -1
- package/icon/shapes/map-marker.js.map +1 -1
- package/icon/shapes/map.js.map +1 -1
- package/icon/shapes/media-changer.js.map +1 -1
- package/icon/shapes/memory.js.map +1 -1
- package/icon/shapes/microphone-mute.js.map +1 -1
- package/icon/shapes/microphone.js.map +1 -1
- package/icon/shapes/minus-circle.js.map +1 -1
- package/icon/shapes/minus.js.map +1 -1
- package/icon/shapes/mobile.js.map +1 -1
- package/icon/shapes/moon.js.map +1 -1
- package/icon/shapes/mouse.js.map +1 -1
- package/icon/shapes/music-note.js.map +1 -1
- package/icon/shapes/namespace.js.map +1 -1
- package/icon/shapes/network-globe.js.map +1 -1
- package/icon/shapes/network-settings.js.map +1 -1
- package/icon/shapes/network-switch.js.map +1 -1
- package/icon/shapes/neutral-face.js.map +1 -1
- package/icon/shapes/new.js.map +1 -1
- package/icon/shapes/no-access.js.map +1 -1
- package/icon/shapes/no-wifi.js.map +1 -1
- package/icon/shapes/node-group.js.map +1 -1
- package/icon/shapes/node.js.map +1 -1
- package/icon/shapes/nodes.js.map +1 -1
- package/icon/shapes/note.js.map +1 -1
- package/icon/shapes/number-list.js.map +1 -1
- package/icon/shapes/nvme.js.map +1 -1
- package/icon/shapes/objects.js.map +1 -1
- package/icon/shapes/on-holiday.js.map +1 -1
- package/icon/shapes/organization.js.map +1 -1
- package/icon/shapes/outdent.js.map +1 -1
- package/icon/shapes/paint-roller.js.map +1 -1
- package/icon/shapes/paperclip.js.map +1 -1
- package/icon/shapes/paste.js.map +1 -1
- package/icon/shapes/pause.js.map +1 -1
- package/icon/shapes/pdf-file.js.map +1 -1
- package/icon/shapes/pencil.js.map +1 -1
- package/icon/shapes/peso.js.map +1 -1
- package/icon/shapes/phone-handset.js.map +1 -1
- package/icon/shapes/picture.js.map +1 -1
- package/icon/shapes/pie-chart.js.map +1 -1
- package/icon/shapes/piggy-bank.js.map +1 -1
- package/icon/shapes/pin.js.map +1 -1
- package/icon/shapes/pinboard.js.map +1 -1
- package/icon/shapes/play.js.map +1 -1
- package/icon/shapes/plugin.js.map +1 -1
- package/icon/shapes/plus-circle.js.map +1 -1
- package/icon/shapes/plus.js.map +1 -1
- package/icon/shapes/pod.js.map +1 -1
- package/icon/shapes/pop-out.js.map +1 -1
- package/icon/shapes/portrait.js.map +1 -1
- package/icon/shapes/pound.js.map +1 -1
- package/icon/shapes/power.js.map +1 -1
- package/icon/shapes/printer.js.map +1 -1
- package/icon/shapes/process-on-vm.js.map +1 -1
- package/icon/shapes/qr-code.js.map +1 -1
- package/icon/shapes/rack-server.js.map +1 -1
- package/icon/shapes/radar.js.map +1 -1
- package/icon/shapes/recycle.js.map +1 -1
- package/icon/shapes/redo.js.map +1 -1
- package/icon/shapes/refresh.js.map +1 -1
- package/icon/shapes/repeat.js.map +1 -1
- package/icon/shapes/replay-all.js.map +1 -1
- package/icon/shapes/replay-one.js.map +1 -1
- package/icon/shapes/resistor.js.map +1 -1
- package/icon/shapes/resize.js.map +1 -1
- package/icon/shapes/resource-pool.js.map +1 -1
- package/icon/shapes/rewind.js.map +1 -1
- package/icon/shapes/router.js.map +1 -1
- package/icon/shapes/ruble.js.map +1 -1
- package/icon/shapes/ruler-pencil.js.map +1 -1
- package/icon/shapes/rupee.js.map +1 -1
- package/icon/shapes/sad-face.js.map +1 -1
- package/icon/shapes/scatter-plot.js.map +1 -1
- package/icon/shapes/scissors.js.map +1 -1
- package/icon/shapes/script-execute.js.map +1 -1
- package/icon/shapes/script-schedule.js.map +1 -1
- package/icon/shapes/scroll.js.map +1 -1
- package/icon/shapes/search.js.map +1 -1
- package/icon/shapes/share.js.map +1 -1
- package/icon/shapes/shield-check.js.map +1 -1
- package/icon/shapes/shield-x.js.map +1 -1
- package/icon/shapes/shield.js.map +1 -1
- package/icon/shapes/shopping-bag.js.map +1 -1
- package/icon/shapes/shopping-cart.js.map +1 -1
- package/icon/shapes/shrink.js.map +1 -1
- package/icon/shapes/shuffle.js.map +1 -1
- package/icon/shapes/slider.js.map +1 -1
- package/icon/shapes/snowflake.js.map +1 -1
- package/icon/shapes/sort-by.js.map +1 -1
- package/icon/shapes/squid.js.map +1 -1
- package/icon/shapes/ssd.js.map +1 -1
- package/icon/shapes/star.js.map +1 -1
- package/icon/shapes/step-forward-2.js.map +1 -1
- package/icon/shapes/step-forward.js.map +1 -1
- package/icon/shapes/stop.js.map +1 -1
- package/icon/shapes/storage-adapter.js.map +1 -1
- package/icon/shapes/storage.js.map +1 -1
- package/icon/shapes/store.js.map +1 -1
- package/icon/shapes/strikethrough.js.map +1 -1
- package/icon/shapes/subscript.js.map +1 -1
- package/icon/shapes/success-standard.js.map +1 -1
- package/icon/shapes/sun.js.map +1 -1
- package/icon/shapes/superscript.js.map +1 -1
- package/icon/shapes/switch.js.map +1 -1
- package/icon/shapes/sync.js.map +1 -1
- package/icon/shapes/table.js.map +1 -1
- package/icon/shapes/tablet.js.map +1 -1
- package/icon/shapes/tag.js.map +1 -1
- package/icon/shapes/tags.js.map +1 -1
- package/icon/shapes/talk-bubbles.js.map +1 -1
- package/icon/shapes/tape-drive.js.map +1 -1
- package/icon/shapes/target.js.map +1 -1
- package/icon/shapes/tasks.js.map +1 -1
- package/icon/shapes/terminal.js.map +1 -1
- package/icon/shapes/text-color.js.map +1 -1
- package/icon/shapes/text.js.map +1 -1
- package/icon/shapes/thermometer.js.map +1 -1
- package/icon/shapes/thin-client.js.map +1 -1
- package/icon/shapes/thumbs-down.js.map +1 -1
- package/icon/shapes/thumbs-up.js.map +1 -1
- package/icon/shapes/tick-chart.js.map +1 -1
- package/icon/shapes/timeline.js.map +1 -1
- package/icon/shapes/times-circle.js.map +1 -1
- package/icon/shapes/times-mini.js.map +1 -1
- package/icon/shapes/times.js.map +1 -1
- package/icon/shapes/tools.js.map +1 -1
- package/icon/shapes/trailer.js.map +1 -1
- package/icon/shapes/trash.js.map +1 -1
- package/icon/shapes/tree-view.js.map +1 -1
- package/icon/shapes/tree.js.map +1 -1
- package/icon/shapes/truck.js.map +1 -1
- package/icon/shapes/two-way-arrows.js.map +1 -1
- package/icon/shapes/unarchive.js.map +1 -1
- package/icon/shapes/underline.js.map +1 -1
- package/icon/shapes/undo.js.map +1 -1
- package/icon/shapes/uninstall.js.map +1 -1
- package/icon/shapes/unknown-status.js.map +1 -1
- package/icon/shapes/unknown.js.map +1 -1
- package/icon/shapes/unlink.js.map +1 -1
- package/icon/shapes/unlock.js.map +1 -1
- package/icon/shapes/unpin.js.map +1 -1
- package/icon/shapes/update.js.map +1 -1
- package/icon/shapes/upload-cloud.js.map +1 -1
- package/icon/shapes/upload.js.map +1 -1
- package/icon/shapes/usb.js.map +1 -1
- package/icon/shapes/user.js.map +1 -1
- package/icon/shapes/users.js.map +1 -1
- package/icon/shapes/video-camera.js.map +1 -1
- package/icon/shapes/video-gallery.js.map +1 -1
- package/icon/shapes/view-cards.js.map +1 -1
- package/icon/shapes/view-columns.js.map +1 -1
- package/icon/shapes/view-list.js.map +1 -1
- package/icon/shapes/vm-bug-inverse.js.map +1 -1
- package/icon/shapes/vm-bug.js.map +1 -1
- package/icon/shapes/vm.js.map +1 -1
- package/icon/shapes/vmw-app.js.map +1 -1
- package/icon/shapes/volume-down.js.map +1 -1
- package/icon/shapes/volume-mute.js.map +1 -1
- package/icon/shapes/volume-up.js.map +1 -1
- package/icon/shapes/volume.js.map +1 -1
- package/icon/shapes/wallet.js.map +1 -1
- package/icon/shapes/wand.js.map +1 -1
- package/icon/shapes/warning-mini.js.map +1 -1
- package/icon/shapes/warning-standard.js.map +1 -1
- package/icon/shapes/wifi.js.map +1 -1
- package/icon/shapes/window-close.js.map +1 -1
- package/icon/shapes/window-max.js.map +1 -1
- package/icon/shapes/window-min.js.map +1 -1
- package/icon/shapes/window-restore.js.map +1 -1
- package/icon/shapes/won.js.map +1 -1
- package/icon/shapes/world.js.map +1 -1
- package/icon/shapes/wrench.js.map +1 -1
- package/icon/shapes/xls-file.js.map +1 -1
- package/icon/shapes/yen.js.map +1 -1
- package/icon/shapes/zoom-in.js.map +1 -1
- package/icon/shapes/zoom-out.js.map +1 -1
- package/icon/utils/icon.classnames.js.map +1 -1
- package/icon/utils/icon.svg-helpers.js.map +1 -1
- package/input/index.js.map +1 -1
- package/input/input-group.element.js.map +1 -1
- package/input/input.element.js.map +1 -1
- package/input/register.js.map +1 -1
- package/internal/base/button.base.js.map +1 -1
- package/internal/base/focus-trap.base.js.map +1 -1
- package/internal/controllers/active.controller.js.map +1 -1
- package/internal/controllers/aria-button.controller.js.map +1 -1
- package/internal/controllers/aria-disabled.controller.js.map +1 -1
- package/internal/controllers/aria-expanded.controller.js.map +1 -1
- package/internal/controllers/aria-grid.controller.js.map +1 -1
- package/internal/controllers/aria-modal.controller.js.map +1 -1
- package/internal/controllers/aria-multiselectable.controller.js.map +1 -1
- package/internal/controllers/aria-popup-trigger.controller.js.map +1 -1
- package/internal/controllers/aria-popup.controller.js.map +1 -1
- package/internal/controllers/aria-pressed.controller.js.map +1 -1
- package/internal/controllers/aria-selected.controller.js.map +1 -1
- package/internal/controllers/button-anchor.controller.js.map +1 -1
- package/internal/controllers/button-submit.controller.js.map +1 -1
- package/internal/controllers/closable.controller.js.map +1 -1
- package/internal/controllers/draggable-list.controller.js.map +1 -1
- package/internal/controllers/first-focus.controller.js.map +1 -1
- package/internal/controllers/grid-range-selection.controller.js.map +1 -1
- package/internal/controllers/inline-focus-trap.controller.js.map +1 -1
- package/internal/controllers/key-navigation-grid.controller.js.map +1 -1
- package/internal/controllers/key-navigation-list.controller.js.map +1 -1
- package/internal/controllers/key-navigation.utils.js.map +1 -1
- package/internal/controllers/layer.controller.js.map +1 -1
- package/internal/controllers/responsive.controller.js.map +1 -1
- package/internal/controllers/scrollable-list-visibility.controller.js.map +1 -1
- package/internal/controllers/touch.controller.js.map +1 -1
- package/internal/controllers/trigger.controller.js.map +1 -1
- package/internal/decorators/animate.js.map +1 -1
- package/internal/decorators/element.js.map +1 -1
- package/internal/decorators/event.js.map +1 -1
- package/internal/decorators/global-style.js.map +1 -1
- package/internal/decorators/i18n.js.map +1 -1
- package/internal/decorators/id.js.map +1 -1
- package/internal/decorators/property.js.map +1 -1
- package/internal/decorators/query-slot.js.map +1 -1
- package/internal/decorators/utils.js.map +1 -1
- package/internal/directives/spread-props.js.map +1 -1
- package/internal/i18n/utils.js.map +1 -1
- package/internal/index.js.map +1 -1
- package/internal/motion/animations/cds-accordion-panel-open.js.map +1 -1
- package/internal/motion/animations/cds-component-shake.js.map +1 -1
- package/internal/motion/animations/cds-dropdown-open.js.map +1 -1
- package/internal/motion/animations/cds-modal-enter.js.map +1 -1
- package/internal/motion/animations/cds-navigation-group-open.js.map +1 -1
- package/internal/motion/animations/cds-navigation-open.js.map +1 -1
- package/internal/motion/animations/cds-overlay-hinge-example.js.map +1 -1
- package/internal/motion/animations/cds-tree-item-expand.js.map +1 -1
- package/internal/motion/animations/keyframes/fade-in-and-slide-down.js.map +1 -1
- package/internal/motion/animations/keyframes/fade-in.js.map +1 -1
- package/internal/motion/animations/keyframes/hinge.js.map +1 -1
- package/internal/motion/animations/keyframes/shake.js.map +1 -1
- package/internal/motion/interfaces.js.map +1 -1
- package/internal/motion/motion.service.js.map +1 -1
- package/internal/motion/utils.js.map +1 -1
- package/internal/positioning/interfaces.js.map +1 -1
- package/internal/positioning/utils.js.map +1 -1
- package/internal/services/focus-trap-tracker.service.js.map +1 -1
- package/internal/services/global.service.js.map +1 -1
- package/internal/services/i18n.service.js.map +1 -1
- package/internal/services/keycodes.service.js.map +1 -1
- package/internal/services/log.service.js.map +1 -1
- package/internal/utils/__.js.map +1 -1
- package/internal/utils/a11y.js.map +1 -1
- package/internal/utils/array.js.map +1 -1
- package/internal/utils/async.js.map +1 -1
- package/internal/utils/browser.js.map +1 -1
- package/internal/utils/color.js.map +1 -1
- package/internal/utils/conditional.js.map +1 -1
- package/internal/utils/css.js.map +1 -1
- package/internal/utils/dom.js.map +1 -1
- package/internal/utils/enum.js.map +1 -1
- package/internal/utils/environment.js.map +1 -1
- package/internal/utils/event-subject.js.map +1 -1
- package/internal/utils/events.js.map +1 -1
- package/internal/utils/exists.js.map +1 -1
- package/internal/utils/focus.js.map +1 -1
- package/internal/utils/framework.js.map +1 -1
- package/internal/utils/global.js +1 -1
- package/internal/utils/global.js.map +1 -1
- package/internal/utils/identity.js.map +1 -1
- package/internal/utils/keycodes.js.map +1 -1
- package/internal/utils/lit.js.map +1 -1
- package/internal/utils/math.js.map +1 -1
- package/internal/utils/metadata.js.map +1 -1
- package/internal/utils/registration.js.map +1 -1
- package/internal/utils/responsive.js.map +1 -1
- package/internal/utils/size.js.map +1 -1
- package/internal/utils/string.js.map +1 -1
- package/internal/utils/supports.js.map +1 -1
- package/internal/utils/traversal.js.map +1 -1
- package/internal-components/close-button/close-button.element.js.map +1 -1
- package/internal-components/close-button/register.js.map +1 -1
- package/internal-components/overlay/overlay.element.js.map +1 -1
- package/internal-components/overlay/register.js.map +1 -1
- package/internal-components/panel/panel.element.js.map +1 -1
- package/internal-components/panel/register.js.map +1 -1
- package/internal-components/popup/pointer.element.js.map +1 -1
- package/internal-components/popup/popup.element.js.map +1 -1
- package/internal-components/popup/register.js.map +1 -1
- package/internal-components/popup/utils/pointer.utils.js.map +1 -1
- package/internal-components/split-handle/register.js.map +1 -1
- package/internal-components/split-handle/split-handle.element.js.map +1 -1
- package/internal-components/visual-checkbox/register.js.map +1 -1
- package/internal-components/visual-checkbox/visual-checkbox.element.js.map +1 -1
- package/list/list.css +2 -2
- package/modal/modal-actions.element.js.map +1 -1
- package/modal/modal-content.element.js.map +1 -1
- package/modal/modal-header-actions.element.js.map +1 -1
- package/modal/modal-header.element.js.map +1 -1
- package/modal/modal.element.js.map +1 -1
- package/modal/register.js.map +1 -1
- package/navigation/navigation-group.element.js.map +1 -1
- package/navigation/navigation-item.element.js.map +1 -1
- package/navigation/navigation-start.element.js.map +1 -1
- package/navigation/navigation.element.js.map +1 -1
- package/navigation/register.js.map +1 -1
- package/navigation/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/pagination/pagination-button.element.js.map +1 -1
- package/pagination/pagination.element.js.map +1 -1
- package/pagination/register.js.map +1 -1
- package/pagination/utils.js.map +1 -1
- package/password/password.element.js.map +1 -1
- package/password/register.js.map +1 -1
- package/polyfills/aria-reflect.js.map +1 -1
- package/polyfills/at.js.map +1 -1
- package/progress-circle/progress-circle.element.js.map +1 -1
- package/progress-circle/progress-circle.utils.js.map +1 -1
- package/progress-circle/register.js.map +1 -1
- package/radio/radio-group.element.js.map +1 -1
- package/radio/radio.element.js.map +1 -1
- package/radio/register.js.map +1 -1
- package/range/range.element.js.map +1 -1
- package/range/register.js.map +1 -1
- package/search/register.js.map +1 -1
- package/search/search.element.js.map +1 -1
- package/select/register.js.map +1 -1
- package/select/select.element.js.map +1 -1
- package/selection-panels/checkbox/checkbox-panel.element.js.map +1 -1
- package/selection-panels/checkbox/register.js.map +1 -1
- package/selection-panels/radio/radio-panel.element.js.map +1 -1
- package/selection-panels/radio/register.js.map +1 -1
- package/signpost/register.js.map +1 -1
- package/signpost/signpost.element.js.map +1 -1
- package/styles/module.layout.css +11 -11
- package/styles/module.reset.css +1 -1
- package/styles/module.typography.css +5 -5
- package/styles/shim.clr-ui.css +17 -2
- package/styles/shim.clr-ui.min.css +6 -2
- package/styles/theme.dark.css +1 -1
- package/styles/theme.high-contrast.css +2 -2
- package/styles/theme.low-motion.css +2 -2
- package/table/table.css +2 -2
- package/tag/register.js.map +1 -1
- package/tag/tag.element.js.map +1 -1
- package/test/utils.js.map +1 -1
- package/test/web-test-server.js.map +1 -1
- package/test-dropdown/register.js.map +1 -1
- package/test-dropdown/test-dropdown.element.js.map +1 -1
- package/textarea/register.js.map +1 -1
- package/textarea/textarea.element.js.map +1 -1
- package/time/register.js.map +1 -1
- package/time/time.element.js.map +1 -1
- package/toggle/register.js.map +1 -1
- package/toggle/toggle-group.element.js.map +1 -1
- package/toggle/toggle.element.js.map +1 -1
- package/tree-view/register.js.map +1 -1
- package/tree-view/tree-item.element.js.map +1 -1
- package/tree-view/tree.element.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread-props.js","sources":["../../../../src/internal/directives/spread-props.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"spread-props.js","sources":["../../../../src/internal/directives/spread-props.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { Directive, directive } from 'lit/directive.js';\n/*\n @experimental\n Only use within storybook demos\n*/\nexport class SpreadProps extends Directive {\n render() {\n return '';\n }\n update(part, params) {\n Object.entries(params[0])\n .filter(([k, v]) => v !== part.element[k])\n .forEach(([k, v]) => (part.element[k] = v));\n return this.render();\n }\n}\nexport const spreadProps = directive(SpreadProps);\n"],"names":["SpreadProps","Directive","render","update","part","params","Object","entries","filter","k","v","element","forEach","this","spreadProps","directive"],"mappings":"4DAUO,MAAMA,UAAoBC,EAC7BC,SACI,MAAO,GAEXC,OAAOC,EAAMC,GAIT,OAHAC,OAAOC,QAAQF,EAAO,IACjBG,QAAO,EAAEC,EAAGC,KAAOA,IAAMN,EAAKO,QAAQF,KACtCG,SAAQ,EAAEH,EAAGC,KAAQN,EAAKO,QAAQF,GAAKC,IACrCG,KAAKX,UAGR,MAACY,EAAcC,EAAUf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/internal/i18n/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/internal/i18n/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { getCssPropertyValue } from '../utils/css.js';\nexport function getElementLanguageDirection(element) {\n return getCssPropertyValue('direction', element);\n}\n"],"names":["getElementLanguageDirection","element","getCssPropertyValue"],"mappings":"sDAMO,SAASA,EAA4BC,GACxC,OAAOC,EAAoB,YAAaD"}
|
package/internal/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/internal/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/internal/index.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport '@cds/core/polyfills';\nimport styles from './base/base.element.scss';\n/** @internal private module to Clarity Core */\nexport const baseStyles = styles;\nexport * from './base/button.base.js';\nexport * from './base/focus-trap.base.js';\nexport * from './utils/color.js';\nexport * from './controllers/active.controller.js';\nexport * from './controllers/aria-button.controller.js';\nexport * from './controllers/aria-disabled.controller.js';\nexport * from './controllers/aria-expanded.controller.js';\nexport * from './controllers/aria-popup.controller.js';\nexport * from './controllers/aria-popup-trigger.controller.js';\nexport * from './controllers/aria-pressed.controller.js';\nexport * from './controllers/aria-selected.controller.js';\nexport * from './controllers/button-anchor.controller.js';\nexport * from './controllers/button-submit.controller.js';\nexport * from './controllers/closable.controller.js';\nexport * from './controllers/first-focus.controller.js';\nexport * from './controllers/inline-focus-trap.controller.js';\nexport * from './utils/css.js';\nexport * from './utils/dom.js';\nexport * from './utils/registration.js';\nexport * from './controllers/active.controller.js';\nexport * from './controllers/aria-button.controller.js';\nexport * from './controllers/aria-disabled.controller.js';\nexport * from './controllers/aria-grid.controller.js';\nexport * from './controllers/aria-modal.controller.js';\nexport * from './controllers/aria-multiselectable.controller.js';\nexport * from './controllers/aria-popup.controller.js';\nexport * from './controllers/aria-popup-trigger.controller.js';\nexport * from './controllers/aria-pressed.controller.js';\nexport * from './controllers/aria-selected.controller.js';\nexport * from './controllers/button-anchor.controller.js';\nexport * from './controllers/button-submit.controller.js';\nexport * from './controllers/closable.controller.js';\nexport * from './controllers/draggable-list.controller.js';\nexport * from './controllers/first-focus.controller.js';\nexport * from './controllers/inline-focus-trap.controller.js';\nexport * from './controllers/grid-range-selection.controller.js';\nexport * from './controllers/key-navigation-grid.controller.js';\nexport * from './controllers/key-navigation-list.controller.js';\nexport * from './controllers/layer.controller.js';\nexport * from './controllers/responsive.controller.js';\nexport * from './controllers/scrollable-list-visibility.controller.js';\nexport * from './controllers/touch.controller.js';\nexport * from './controllers/trigger.controller.js';\nexport * from './decorators/animate.js';\nexport * from './decorators/query-slot.js';\nexport * from './decorators/property.js';\nexport * from './decorators/element.js';\nexport * from './decorators/event.js';\nexport * from './directives/spread-props.js';\nexport * from './decorators/id.js';\nexport * from './decorators/i18n.js';\nexport * from './decorators/global-style.js';\nexport * from './services/focus-trap-tracker.service.js';\nexport * from './services/global.service.js';\nexport * from './services/i18n.service.js';\nexport * from './services/log.service.js';\nexport * from './utils/async.js';\nexport * from './utils/a11y.js';\nexport * from './utils/array.js';\nexport * from './utils/browser.js';\nexport * from './services/keycodes.service.js';\nexport * from './utils/conditional.js';\nexport * from './utils/enum.js';\nexport * from './utils/exists.js';\nexport * from './utils/focus.js';\nexport * from './utils/framework.js';\nexport * from './i18n/utils.js';\nexport * from './positioning/utils.js';\nexport * from './positioning/interfaces.js';\nexport * from './utils/identity.js';\nexport * from './utils/keycodes.js';\nexport * from './utils/lit.js';\nexport * from './utils/math.js';\nexport * from './utils/metadata.js';\nexport * from './utils/responsive.js';\nexport * from './utils/size.js';\nexport * from './utils/string.js';\nexport * from './utils/supports.js';\nexport * from './utils/traversal.js';\nexport * from './utils/events.js';\nexport * from './utils/event-subject.js';\nexport * from './utils/traversal.js';\nexport * from './interfaces/interfaces.js';\nexport * from './motion/interfaces.js';\nexport * from './motion/motion.service.js';\nexport * from './motion/utils.js';\nexport { AnimationModalEnterConfig, AnimationModalEnterName } from './motion/animations/cds-modal-enter.js';\nexport { AnimationAccordionPanelOpenConfig, AnimationAccordionPanelOpenName, } from './motion/animations/cds-accordion-panel-open.js';\nexport { AnimationHingeConfig, AnimationHingeName } from './motion/animations/cds-overlay-hinge-example.js';\nexport { AnimationShakeConfig, AnimationShakeName } from './motion/animations/cds-component-shake.js';\nexport { AnimationNavigationGroupOpenConfig, AnimationNavigationGroupOpenName, } from './motion/animations/cds-navigation-group-open.js';\nexport { AnimationNavigationOpenConfig, AnimationNavigationOpenName } from './motion/animations/cds-navigation-open.js';\nexport { AnimationTreeItemExpandConfig, AnimationTreeItemExpandName, } from './motion/animations/cds-tree-item-expand.js';\nexport { AnimationResponsivePopupEnterConfig, AnimationResponsivePopupEnterName, } from './motion/animations/cds-dropdown-open.js';\n"],"names":["baseStyles","styles"],"mappings":"uzSAQY,MAACA,EAAaC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-accordion-panel-open.js","sources":["../../../../../src/internal/motion/animations/cds-accordion-panel-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-accordion-panel-open.js","sources":["../../../../../src/internal/motion/animations/cds-accordion-panel-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const AnimationAccordionPanelOpenName = 'cds-accordion-panel-open';\nexport const AnimationAccordionPanelOpenConfig = [\n {\n target: '.accordion-content',\n animation: [\n { opacity: 0, height: '0' },\n { opacity: 1, height: 'from:cds-accordion-content' },\n ],\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n];\n"],"names":["AnimationAccordionPanelOpenName","AnimationAccordionPanelOpenConfig","target","animation","opacity","height","options","duration","easing","fill"],"mappings":"AAKY,MAACA,EAAkC,2BAClCC,EAAoC,CAC7C,CACIC,OAAQ,qBACRC,UAAW,CACP,CAAEC,QAAS,EAAGC,OAAQ,KACtB,CAAED,QAAS,EAAGC,OAAQ,+BAE1BC,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-component-shake.js","sources":["../../../../../src/internal/motion/animations/cds-component-shake.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-component-shake.js","sources":["../../../../../src/internal/motion/animations/cds-component-shake.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { shakeKeyframes } from './keyframes/shake.js';\nexport const AnimationShakeName = 'cds-component-shake';\nexport const AnimationShakeConfig = [\n {\n target: '.private-host',\n animation: shakeKeyframes,\n options: {\n duration: 1200,\n easing: 'ease-in-out',\n endDelay: 50,\n },\n },\n];\n"],"names":["AnimationShakeName","AnimationShakeConfig","target","animation","shakeKeyframes","options","duration","easing","endDelay"],"mappings":"sDAMY,MAACA,EAAqB,sBACrBC,EAAuB,CAChC,CACIC,OAAQ,gBACRC,UAAWC,EACXC,QAAS,CACLC,SAAU,KACVC,OAAQ,cACRC,SAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-dropdown-open.js","sources":["../../../../../src/internal/motion/animations/cds-dropdown-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-dropdown-open.js","sources":["../../../../../src/internal/motion/animations/cds-dropdown-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { fadeInKeyframes } from './keyframes/fade-in.js';\nexport const AnimationResponsivePopupEnterName = 'cds-responsive-popup-enter';\nexport const AnimationResponsivePopupEnterConfig = [\n {\n target: '.overlay-backdrop',\n onlyIf: 'isLayered:false responsive:true',\n animation: fadeInKeyframes,\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n {\n target: '.private-host',\n onlyIf: 'responsive:true',\n animation: [\n // holy moly! this little offset here is REQUIRED. without it, the transforms remain in a bad state.\n { opacity: 0 },\n { opacity: 0, marginBottom: '-100%', offset: 0.001 },\n { opacity: 1, marginBottom: '0' },\n ],\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n {\n target: '.private-host',\n onlyIf: 'responsive:false',\n animation: [{ opacity: 0 }, { opacity: 1 }],\n options: {\n duration: 0,\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n];\n"],"names":["AnimationResponsivePopupEnterName","AnimationResponsivePopupEnterConfig","target","onlyIf","animation","fadeInKeyframes","options","duration","easing","fill","opacity","marginBottom","offset"],"mappings":"yDAMY,MAACA,EAAoC,6BACpCC,EAAsC,CAC/C,CACIC,OAAQ,oBACRC,OAAQ,kCACRC,UAAWC,EACXC,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM,aAGd,CACIP,OAAQ,gBACRC,OAAQ,kBACRC,UAAW,CAEP,CAAEM,QAAS,GACX,CAAEA,QAAS,EAAGC,aAAc,QAASC,OAAQ,MAC7C,CAAEF,QAAS,EAAGC,aAAc,MAEhCL,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM,aAGd,CACIP,OAAQ,gBACRC,OAAQ,mBACRC,UAAW,CAAC,CAAEM,QAAS,GAAK,CAAEA,QAAS,IACvCJ,QAAS,CACLC,SAAU,EACVC,OAAQ,qBACRC,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-modal-enter.js","sources":["../../../../../src/internal/motion/animations/cds-modal-enter.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-modal-enter.js","sources":["../../../../../src/internal/motion/animations/cds-modal-enter.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { fadeInKeyframes } from './keyframes/fade-in.js';\nimport { fadeAndSlideInKeyframes } from './keyframes/fade-in-and-slide-down.js';\nexport const AnimationModalEnterName = 'cds-modal-enter';\nexport const AnimationModalEnterConfig = [\n {\n target: '.overlay-backdrop',\n onlyIf: 'isLayered:false',\n animation: fadeInKeyframes,\n options: {\n duration: '--backdrop-animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n {\n target: '.private-host',\n animation: fadeAndSlideInKeyframes,\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n endDelay: 50,\n },\n },\n];\n"],"names":["AnimationModalEnterName","AnimationModalEnterConfig","target","onlyIf","animation","fadeInKeyframes","options","duration","easing","fill","fadeAndSlideInKeyframes","endDelay"],"mappings":"yIAOY,MAACA,EAA0B,kBAC1BC,EAA4B,CACrC,CACIC,OAAQ,oBACRC,OAAQ,kBACRC,UAAWC,EACXC,QAAS,CACLC,SAAU,gCACVC,OAAQ,qBACRC,KAAM,aAGd,CACIP,OAAQ,gBACRE,UAAWM,EACXJ,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM,WACNE,SAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-navigation-group-open.js","sources":["../../../../../src/internal/motion/animations/cds-navigation-group-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-navigation-group-open.js","sources":["../../../../../src/internal/motion/animations/cds-navigation-group-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const AnimationNavigationGroupOpenName = 'cds-navigation-group-open';\nexport const AnimationNavigationGroupOpenConfig = [\n {\n target: '.navigation-group-items',\n animation: [\n { opacity: 0, height: '0' },\n { opacity: 1, height: 'from:cds-navigation-group' },\n ],\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n];\n"],"names":["AnimationNavigationGroupOpenName","AnimationNavigationGroupOpenConfig","target","animation","opacity","height","options","duration","easing","fill"],"mappings":"AAKY,MAACA,EAAmC,4BACnCC,EAAqC,CAC9C,CACIC,OAAQ,0BACRC,UAAW,CACP,CAAEC,QAAS,EAAGC,OAAQ,KACtB,CAAED,QAAS,EAAGC,OAAQ,8BAE1BC,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-navigation-open.js","sources":["../../../../../src/internal/motion/animations/cds-navigation-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-navigation-open.js","sources":["../../../../../src/internal/motion/animations/cds-navigation-open.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const AnimationNavigationOpenName = 'cds-navigation-open';\nexport const AnimationNavigationOpenConfig = [\n {\n target: 'cds-navigation',\n animation: [{ width: 'var(--collapsed-width)' }, { width: 'var(--expanded-width)' }],\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n];\n"],"names":["AnimationNavigationOpenName","AnimationNavigationOpenConfig","target","animation","width","options","duration","easing","fill"],"mappings":"AAKY,MAACA,EAA8B,sBAC9BC,EAAgC,CACzC,CACIC,OAAQ,iBACRC,UAAW,CAAC,CAAEC,MAAO,0BAA4B,CAAEA,MAAO,0BAC1DC,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-overlay-hinge-example.js","sources":["../../../../../src/internal/motion/animations/cds-overlay-hinge-example.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-overlay-hinge-example.js","sources":["../../../../../src/internal/motion/animations/cds-overlay-hinge-example.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { hingeKeyframes } from './keyframes/hinge.js';\nexport const AnimationHingeName = 'cds-modal-hinge-exit';\nexport const AnimationHingeConfig = [\n {\n target: '.overlay-backdrop',\n onlyIf: 'isLayered:false',\n animation: [{ opacity: 1, offset: 0.8 }, { opacity: 0 }],\n options: {\n duration: 1200,\n easing: 'ease-in-out',\n fill: 'forwards',\n },\n },\n {\n target: '.private-host',\n animation: hingeKeyframes,\n options: {\n duration: 1200,\n easing: 'ease-in-out',\n fill: 'forwards',\n endDelay: 50,\n },\n },\n];\n"],"names":["AnimationHingeName","AnimationHingeConfig","target","onlyIf","animation","opacity","offset","options","duration","easing","fill","hingeKeyframes","endDelay"],"mappings":"sDAMY,MAACA,EAAqB,uBACrBC,EAAuB,CAChC,CACIC,OAAQ,oBACRC,OAAQ,kBACRC,UAAW,CAAC,CAAEC,QAAS,EAAGC,OAAQ,IAAO,CAAED,QAAS,IACpDE,QAAS,CACLC,SAAU,KACVC,OAAQ,cACRC,KAAM,aAGd,CACIR,OAAQ,gBACRE,UAAWO,EACXJ,QAAS,CACLC,SAAU,KACVC,OAAQ,cACRC,KAAM,WACNE,SAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cds-tree-item-expand.js","sources":["../../../../../src/internal/motion/animations/cds-tree-item-expand.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"cds-tree-item-expand.js","sources":["../../../../../src/internal/motion/animations/cds-tree-item-expand.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const AnimationTreeItemExpandName = 'cds-tree-item-expand';\nexport const AnimationTreeItemExpandConfig = [\n {\n target: '.item-children',\n animation: [\n { opacity: 0, height: '0' },\n { opacity: 1, height: 'from:item-children' },\n ],\n options: {\n duration: '--animation-duration',\n easing: '--animation-easing',\n fill: 'forwards',\n },\n },\n];\n"],"names":["AnimationTreeItemExpandName","AnimationTreeItemExpandConfig","target","animation","opacity","height","options","duration","easing","fill"],"mappings":"AAKY,MAACA,EAA8B,uBAC9BC,EAAgC,CACzC,CACIC,OAAQ,iBACRC,UAAW,CACP,CAAEC,QAAS,EAAGC,OAAQ,KACtB,CAAED,QAAS,EAAGC,OAAQ,uBAE1BC,QAAS,CACLC,SAAU,uBACVC,OAAQ,qBACRC,KAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fade-in-and-slide-down.js","sources":["../../../../../../src/internal/motion/animations/keyframes/fade-in-and-slide-down.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"fade-in-and-slide-down.js","sources":["../../../../../../src/internal/motion/animations/keyframes/fade-in-and-slide-down.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const fadeAndSlideInKeyframes = [\n { opacity: 0, transform: 'translateY(-15rem)' },\n { opacity: 1, transform: 'translateY(0)' },\n];\n"],"names":["fadeAndSlideInKeyframes","opacity","transform"],"mappings":"AAKY,MAACA,EAA0B,CACnC,CAAEC,QAAS,EAAGC,UAAW,sBACzB,CAAED,QAAS,EAAGC,UAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fade-in.js","sources":["../../../../../../src/internal/motion/animations/keyframes/fade-in.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"fade-in.js","sources":["../../../../../../src/internal/motion/animations/keyframes/fade-in.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const fadeInKeyframes = [{ opacity: 0 }, { opacity: 1 }];\n"],"names":["fadeInKeyframes","opacity"],"mappings":"AAKY,MAACA,EAAkB,CAAC,CAAEC,QAAS,GAAK,CAAEA,QAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hinge.js","sources":["../../../../../../src/internal/motion/animations/keyframes/hinge.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"hinge.js","sources":["../../../../../../src/internal/motion/animations/keyframes/hinge.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const hingeKeyframes = [\n { transformOrigin: 'top left', transform: 'rotate3d(0, 0, 1, 80deg)', offset: 0.2 },\n { transformOrigin: 'top left', transform: 'rotate3d(0, 0, 1, 60deg)', offset: 0.4 },\n { transformOrigin: 'top left', transform: 'rotate3d(0, 0, 1, 80deg)', offset: 0.6 },\n { transformOrigin: 'top left', transform: 'rotate3d(0, 0, 1, 60deg)', opacity: 1, offset: 0.8 },\n { transformOrigin: 'top left', opacity: 0, transform: 'translate3d(0, 700px, 0)' },\n];\n"],"names":["hingeKeyframes","transformOrigin","transform","offset","opacity"],"mappings":"AAKY,MAACA,EAAiB,CAC1B,CAAEC,gBAAiB,WAAYC,UAAW,2BAA4BC,OAAQ,IAC9E,CAAEF,gBAAiB,WAAYC,UAAW,2BAA4BC,OAAQ,IAC9E,CAAEF,gBAAiB,WAAYC,UAAW,2BAA4BC,OAAQ,IAC9E,CAAEF,gBAAiB,WAAYC,UAAW,2BAA4BE,QAAS,EAAGD,OAAQ,IAC1F,CAAEF,gBAAiB,WAAYG,QAAS,EAAGF,UAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shake.js","sources":["../../../../../../src/internal/motion/animations/keyframes/shake.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"shake.js","sources":["../../../../../../src/internal/motion/animations/keyframes/shake.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nexport const shakeKeyframes = [\n { transform: 'translate3d(0, 0, 0)' },\n { transform: 'translate3d(-10px, 0, 0)', offset: 0.1 },\n { transform: 'translate3d(10px, 0, 0)', offset: 0.2 },\n { transform: 'translate3d(-10px, 0, 0)', offset: 0.3 },\n { transform: 'translate3d(10px, 0, 0)', offset: 0.4 },\n { transform: 'translate3d(-10px, 0, 0)', offset: 0.5 },\n { transform: 'translate3d(10px, 0, 0)', offset: 0.6 },\n { transform: 'translate3d(-10px, 0, 0)', offset: 0.7 },\n { transform: 'translate3d(10px, 0, 0)', offset: 0.8 },\n { transform: 'translate3d(-10px, 0, 0)', offset: 0.9 },\n { transform: 'translate3d(0, 0, 0)' },\n];\n"],"names":["shakeKeyframes","transform","offset"],"mappings":"AAKY,MAACA,EAAiB,CAC1B,CAAEC,UAAW,wBACb,CAAEA,UAAW,2BAA4BC,OAAQ,IACjD,CAAED,UAAW,0BAA2BC,OAAQ,IAChD,CAAED,UAAW,2BAA4BC,OAAQ,IACjD,CAAED,UAAW,0BAA2BC,OAAQ,IAChD,CAAED,UAAW,2BAA4BC,OAAQ,IACjD,CAAED,UAAW,0BAA2BC,OAAQ,IAChD,CAAED,UAAW,2BAA4BC,OAAQ,IACjD,CAAED,UAAW,0BAA2BC,OAAQ,IAChD,CAAED,UAAW,2BAA4BC,OAAQ,IACjD,CAAED,UAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sources":["../../../../src/internal/motion/interfaces.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"interfaces.js","sources":["../../../../src/internal/motion/interfaces.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n/* GLOBALS */\nexport var AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[\"ready\"] = \"ready\";\n AnimationStatus[\"active\"] = \"active\";\n AnimationStatus[\"start\"] = \"starting\";\n AnimationStatus[\"end\"] = \"done\";\n})(AnimationStatus || (AnimationStatus = {}));\nexport const CLARITY_MOTION_ENTER_LEAVE_PROPERTY = 'hidden';\nexport const CLARITY_MOTION_REVERSE_ANIMATION_LABEL = 'reverse';\nexport const CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX = '-' + CLARITY_MOTION_REVERSE_ANIMATION_LABEL;\nexport const CLARITY_MOTION_FALLBACK_DURATION_IN_MS = 300;\nexport const CLARITY_MOTION_FALLBACK_EASING = 'linear';\nexport const PRIVATE_ANIMATION_STATUS_ATTR_NAME = '_cds-animation-status';\n"],"names":["AnimationStatus","CLARITY_MOTION_ENTER_LEAVE_PROPERTY","CLARITY_MOTION_REVERSE_ANIMATION_LABEL","CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX","CLARITY_MOTION_FALLBACK_DURATION_IN_MS","CLARITY_MOTION_FALLBACK_EASING","PRIVATE_ANIMATION_STATUS_ATTR_NAME"],"mappings":"AAMU,IAACA,GACX,SAAWA,GACPA,EAAuB,MAAI,QAC3BA,EAAwB,OAAI,SAC5BA,EAAuB,MAAI,WAC3BA,EAAqB,IAAI,OAJ7B,CAKGA,IAAoBA,EAAkB,KAC7B,MAACC,EAAsC,SACtCC,EAAyC,UACzCC,EAA0C,WAC1CC,EAAyC,IACzCC,EAAiC,SACjCC,EAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion.service.js","sources":["../../../../src/internal/motion/motion.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"motion.service.js","sources":["../../../../src/internal/motion/motion.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { GlobalStateService } from '../services/global.service.js';\n/**\n *\n * The ClarityMotion service is a static class that gives users the ability to retrieve\n * and override animation configurations based on the Web Animations API that are targeted\n * at a CSS selector defined in the configuration.\n *\n */\nexport class ClarityMotion {\n /**\n * Returns a readonly reference of the registry of animations.\n */\n static get registry() {\n return { ...GlobalStateService.state.motionRegistry };\n }\n static has(name) {\n return !!name && !!ClarityMotion.registry[name];\n }\n static get(name) {\n return ClarityMotion.registry[name] || [];\n }\n static add(animationName, animationConfig) {\n if (!animationName || !animationConfig) {\n return;\n }\n GlobalStateService.state.motionRegistry = {\n ...GlobalStateService.state.motionRegistry,\n [animationName]: animationConfig,\n };\n }\n}\n"],"names":["ClarityMotion","registry","GlobalStateService","state","motionRegistry","static","name","animationName","animationConfig"],"mappings":"mEAaO,MAAMA,EAIEC,sBACP,MAAO,IAAKC,EAAmBC,MAAMC,gBAEzCC,WAAWC,GACP,QAASA,KAAUN,EAAcC,SAASK,GAE9CD,WAAWC,GACP,OAAON,EAAcC,SAASK,IAAS,GAE3CD,WAAWE,EAAeC,GACjBD,GAAkBC,IAGvBN,EAAmBC,MAAMC,eAAiB,IACnCF,EAAmBC,MAAMC,eAC5BG,CAACA,GAAgBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/internal/motion/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { AnimationStatus, CLARITY_MOTION_ENTER_LEAVE_PROPERTY, CLARITY_MOTION_FALLBACK_DURATION_IN_MS, CLARITY_MOTION_FALLBACK_EASING, CLARITY_MOTION_REVERSE_ANIMATION_LABEL, CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX, } from './interfaces.js';\nimport { LogService } from '../services/log.service.js';\nimport { ClarityMotion } from './motion.service.js';\nimport clone from 'ramda/es/clone.js';\nimport { getCssPropertyValue, isCssPropertyName } from '../utils/css.js';\nimport { isPrefixedBy, isSuffixedBy, getNumericValueFromCssSecondsStyleValue, removePrefix } from '../utils/string.js';\nimport { queryChildFromLightOrShadowDom } from '../utils/dom.js';\nimport { allPropertiesPass } from '../utils/identity.js';\nimport { getMillisecondsFromSeconds } from '../utils/math.js';\n/**\n * runPropertyAnimations() is a utility function called by the @animate(). It is a single point of entry\n * to execute the property-driven animations found in components like the accordion and overlay.\n *\n * Other utilities here are exported to break up the unit tests covering the animation/motion\n * library. While they could be called or used in isolation, it is not recommended for most use cases.\n *\n * runPropertyAnimations returns a boolean so that we know if it ran successfully or not. This is\n * mostly to make testing the function easier.\n *\n * @internal\n */\n/* c8 ignore next */\nexport async function runPropertyAnimations(props, hostEl) {\n if (!hostEl._animations) {\n LogService.warn(`${hostEl.tagName.toLocaleLowerCase()} is trying to animate but no animations are defined.`);\n return false;\n }\n // this runs through animations for each property sequentially\n // animations passed into getPropertyAnimations are the Property-Driven Animations\n // passed into the @animate decorator\n // { hidden: { true: 'cds-modal-enter-reverse', false: 'enter' }, status: { error: 'cds-component-shake' } }\n // getPropertyAnimations transforms the @animate decorator config into an array of\n // tuples so they are easier to work with.\n // ['hidden', { true: 'cds-modal-enter-reverse', false: 'enter' }], ['status', { error: 'cds-component-shake' }]\n // * inactive animations are filtered out\n const propertyAnimations = getPropertyAnimations(hostEl._animations, props);\n const animationsRan = await Promise.all(propertyAnimations.map((propNameAnimationTuple) => {\n const [propname, propertyAnimationsByValue] = propNameAnimationTuple;\n if (props.get(propname) === hostEl[propname]) {\n // a weird/unlikely state where an update is sent but the property value didn't actually change\n return false;\n }\n // gets animations to run based on the property's value\n const animatedPropertyValueAsString = propertyAnimationsByValue[hostEl[propname].toString()];\n const cdsMotionValue = hostEl.cdsMotion;\n // looping through each tuple value in order, getAnimationConfigForPropertyValue()\n // returns a tuple with the animation name from Clarity Motion and the TargetedAnimation\n // config (also returned from the Clarity Motion service)\n // ['enter-reverse', [ { target: '.private-host', animation: [ { opacity: 0 }, { opacity: 1 } ], options: { duration: 300 }}]\n const [motionName, returnedMotion] = getAnimationConfigForPropertyValue(animatedPropertyValueAsString, getInlineOverride(cdsMotionValue, propname, hostEl[propname].toString()));\n let motionForMyValue = clone(returnedMotion); // have to jump through this hoop to keep typescript happy\n // jumps out if there are no animation routines\n if (motionForMyValue.length < 1) {\n return false;\n }\n motionForMyValue = setAnimationConfigOptions(motionName, motionForMyValue, hostEl);\n // loops through animation config and runs them; assigns the promises to an array we can Promise.all() at the end\n const animations = getAnimationPromiseInstructions(animatedPropertyValueAsString, motionForMyValue, hostEl);\n return Promise.all(animations).then(() => {\n resolveAnimationEndStatus(animatedPropertyValueAsString, hostEl);\n return true;\n });\n }))\n .then(result => {\n return result.indexOf(true) > -1;\n })\n .catch(() => {\n return false;\n });\n return animationsRan;\n}\n// --- CONTROL FLOW UTILS ---\n/* c8 ignore next */\nexport function setAnimationStartStatus(animatedPropertyValueAsString, hostEl) {\n // accesses and manipulates the private animation status attr;\n if (hostEl.getAttribute('_cds-animation-status') !== AnimationStatus.active) {\n hostEl.setAttribute('_cds-animation-status', AnimationStatus.active);\n // this is here so we only emit the start event once, right when the whole animation starts...\n hostEl.cdsMotionChange.emit(`${animatedPropertyValueAsString} animation ${AnimationStatus.start}`);\n }\n}\n/* c8 ignore next */\nexport function resolveAnimationEndStatus(animatedPropertyValueAsString, hostEl) {\n // sets super secret animation attr back to 'ready'\n hostEl.setAttribute('_cds-animation-status', AnimationStatus.ready); // A\n // emits the name of the animation and that it ended\n hostEl.cdsMotionChange.emit(`${animatedPropertyValueAsString} animation ${AnimationStatus.end}`); // A\n}\n/* c8 ignore next */\nexport function setAnimationConfigOptions(motionName, motionForMyValue, hostEl) {\n const cdsMotionValue = hostEl.cdsMotion;\n const animationsAreTurnedOff = !cdsMotionValue || cdsMotionValue === 'off';\n // the following set of functions – reverseAnimationConfig(), zeroOutAnimationConfig(),\n // setAnimationDuration(), setAnimationEasing() – modify the \"options\" portion of the animation routine\n // in the tuple above that is returned from getAnimationConfigForPropertyValue\n if (animationIsReversed(motionName)) {\n motionForMyValue = reverseAnimationConfig(motionForMyValue);\n }\n if (animationsAreTurnedOff) {\n // cdsMotion is turned off, so zero out the duration\n motionForMyValue = zeroOutAnimationConfig(motionForMyValue);\n }\n else {\n // sets duration and easing based on CSS properties, passed values, or a global fallback\n motionForMyValue = setAnimationDuration(motionForMyValue, hostEl);\n motionForMyValue = setAnimationEasing(motionForMyValue, hostEl);\n }\n return motionForMyValue;\n}\n/* c8 ignore next */\nexport function getAnimationPromiseInstructions(animatedPropertyValueAsString, motionConfigs, hostEl) {\n return motionConfigs\n .filter(config => !config.onlyIf || allPropertiesPass(hostEl, config.onlyIf))\n .map(config => {\n setAnimationStartStatus(animatedPropertyValueAsString, hostEl);\n return new Promise(resolve => {\n const animationPlayer = getAnimationTarget(hostEl, config.target).animate(getAnimationKeyframesOrPropertyIndexedFrames(config.animation, hostEl), config.options || {});\n const listener = () => {\n resolve('animation finished');\n animationPlayer.removeEventListener('finish', listener);\n };\n animationPlayer.addEventListener('finish', listener);\n });\n });\n}\n/* c8 ignore next */\nexport function getAnimationTarget(hostEl, targetSelector) {\n return queryChildFromLightOrShadowDom(hostEl, targetSelector) || hostEl;\n}\n/* c8 ignore next */\nexport function getAnimationKeyframesOrPropertyIndexedFrames(animationConfig, hostEl) {\n return !Array.isArray(animationConfig) ? animationConfig : sizeDimensionKeyframes(animationConfig, hostEl);\n}\n// --- REVERSING UTILS ---\n// string -> boolean\n/* c8 ignore next */\nexport function animationIsReversed(nameOfAnimation) {\n return isSuffixedBy(nameOfAnimation, CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX);\n}\n// { target: '.my-selector', animation: [<keyframes>], options: { duration: 500 }} ->\n// { target: '.my-selector', animation: [<keyframes>], options: { duration: 500, direction: 'reverse' }}\n/* c8 ignore next */\nexport function reverseAnimationConfig(config) {\n return config.map((anim) => {\n if (anim.options) {\n anim.options.direction = CLARITY_MOTION_REVERSE_ANIMATION_LABEL;\n }\n else {\n anim.options = { direction: CLARITY_MOTION_REVERSE_ANIMATION_LABEL };\n }\n return anim;\n });\n}\n// 'my-animation' -> 'my-animation-reverse'\n/* c8 ignore next */\nexport function reverseAnimation(animationName) {\n return [animationName, '-', CLARITY_MOTION_REVERSE_ANIMATION_LABEL].join('');\n}\n// --- ANIMATION CONFIG RETRIEVAL ---\n// returns an animation name from a stringified @animate decorator config passed into the\n// cds-motion attr. looks it up by property first and value second. returns empty string\n// if no animation name matches the property and property value.\n/* c8 ignore next */\nexport function getInlineOverride(cdsMotionValue, propName, propValue) {\n if (!cdsMotionValue || !propName || typeof propValue === 'undefined') {\n return '';\n }\n if (cdsMotionValue === 'on' || cdsMotionValue === 'off') {\n return '';\n }\n let inlineOverride;\n try {\n inlineOverride = JSON.parse(cdsMotionValue);\n }\n catch (e) {\n return '';\n }\n const overrideValue = inlineOverride[propName] && inlineOverride[propName][propValue];\n return overrideValue ? overrideValue : '';\n}\n// 'i-am-reverse' -> 'i-am'\n/* c8 ignore next */\nexport function extractAnimationNameIfReversed(name) {\n return animationIsReversed(name) ? name.slice(0, -1 * CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX.length) : name;\n}\n// if the name retrieved from the cds-motion config is present in Clarity Motion, it is returned\n/* c8 ignore next */\nexport function getAnimationFromOverrideOrDecorator(decoratorValue, overrideValue) {\n if (!overrideValue) {\n return decoratorValue;\n }\n return ClarityMotion.has(extractAnimationNameIfReversed(overrideValue)) ? overrideValue : decoratorValue;\n}\n// ('animation-name') -> ['animation-name', [ { target: '.an-element', animation: [<keyframes>], options: { ... }}]];\n// ('animation-name', 'name-retrieved-from-cds-motion-config') ->\n// ['name-retrieved-from-cds-motion-config', [ { target: ..., animation: [<keyframes>], options: { ... }}]];0\n/* c8 ignore next */\nexport function getAnimationConfigForPropertyValue(nameOfAnimationFromObject, cdsMotionOverride) {\n const nameOfAnimation = getAnimationFromOverrideOrDecorator(nameOfAnimationFromObject, cdsMotionOverride);\n return [nameOfAnimation, clone(ClarityMotion.get(extractAnimationNameIfReversed(nameOfAnimation)))];\n}\n// --- SETTING ANIMATION CONFIG VALUES ---\n/* c8 ignore next */\nexport function setAnimationDuration(config, hostEl) {\n return setAnimationProperty('duration', hostEl, config, CLARITY_MOTION_FALLBACK_DURATION_IN_MS, (val) => {\n return getMillisecondsFromSeconds(getNumericValueFromCssSecondsStyleValue(val));\n });\n}\n/* c8 ignore next */\nexport function setAnimationEasing(config, hostEl) {\n /* c8 ignore next */\n return setAnimationProperty('easing', hostEl, config, CLARITY_MOTION_FALLBACK_EASING);\n}\n/* c8 ignore next */\nexport function zeroOutAnimationConfig(config) {\n /* c8 ignore next */\n return config.map(anim => {\n if (anim.options) {\n anim.options.duration = 0;\n anim.options.easing = CLARITY_MOTION_FALLBACK_EASING;\n }\n else {\n anim.options = { duration: 0, easing: CLARITY_MOTION_FALLBACK_EASING };\n }\n return anim;\n });\n}\n/* c8 ignore next */\nexport function setAnimationProperty(propertyName, hostEl, config, staticFallback, valueConverter) {\n return config.map((anim) => {\n if (anim.options) {\n if (!anim.options[propertyName]) {\n anim.options[propertyName] = staticFallback;\n }\n else if (isCssPropertyName(anim.options[propertyName])) {\n const myConfigOption = anim.options[propertyName];\n let valFromProperty = getCssPropertyValue(myConfigOption, hostEl);\n if (!valFromProperty) {\n valFromProperty = staticFallback;\n }\n else if (valueConverter) {\n valFromProperty = valueConverter(valFromProperty);\n }\n anim.options[propertyName] = valFromProperty;\n }\n // else fallthrough not required because option is already set to intended value\n }\n else {\n const newConfigOptions = {};\n newConfigOptions[propertyName] = staticFallback;\n anim.options = newConfigOptions;\n }\n return anim;\n });\n}\n// -- TRANSFORM PROPERTY-DRIVEN ANIMATION OBJECTS TO ANIMATION CONFIG OBJECTS ---\n/* c8 ignore next */\nexport function sizeDimensionKeyframes(animationKeyframes, hostEl) {\n if (!Array.isArray(animationKeyframes)) {\n return animationKeyframes;\n }\n return animationKeyframes.map((kf) => {\n if (Object.prototype.hasOwnProperty.call(kf, 'height') && isPrefixedBy(kf?.height?.toString() || '', 'from:')) {\n const selector = removePrefix(kf?.height?.toString() || '', 'from:');\n const measureTarget = queryChildFromLightOrShadowDom(hostEl, selector) || null;\n kf.height = !measureTarget ? 'auto' : measureTarget.getBoundingClientRect().height + 'px';\n }\n if (Object.prototype.hasOwnProperty.call(kf, 'width') && isPrefixedBy(kf?.width?.toString() || '', 'from:')) {\n const selector = removePrefix(kf?.width?.toString() || '', 'from:');\n const measureTarget = queryChildFromLightOrShadowDom(hostEl, selector) || null;\n kf.width = !measureTarget ? 'auto' : measureTarget.getBoundingClientRect().width + 'px';\n }\n return kf;\n });\n}\n/* c8 ignore next */\nexport function filterAnimationsByUpdatedProperties(animations, updatingProps) {\n if (animations === null || animations === undefined) {\n return null;\n }\n let objectIsEmpty = true;\n const returnObject = {};\n Object.getOwnPropertyNames(animations).forEach((prop) => {\n // test here against undefined value because Lit is running initializations\n // with properties with an \"undefined\" value. as a result of this change,\n // animations should only run on explicitly set values...\n if (updatingProps.has(prop) && updatingProps.get(prop) !== undefined) {\n returnObject[prop] = clone(animations[prop]);\n objectIsEmpty = false;\n }\n });\n return objectIsEmpty ? null : returnObject;\n}\n/* c8 ignore next */\nexport function flattenAndSortAnimations(hiddenAndNotAnimationTuple, isHiding) {\n if (hiddenAndNotAnimationTuple === null || hiddenAndNotAnimationTuple === undefined) {\n return [];\n }\n const [hiddenAnimations, otherAnimations] = hiddenAndNotAnimationTuple;\n if (hiddenAnimations.length > 0) {\n if (isHiding) {\n // hiding hostEl\n return [].concat(otherAnimations, hiddenAnimations);\n }\n else {\n // showing hostEl\n return [].concat(hiddenAnimations, otherAnimations);\n }\n }\n else {\n return otherAnimations;\n }\n}\n/* c8 ignore next */\nexport function getHidingAndNonHidingPropertyAnimations(animations) {\n const hiddenAnimations = [];\n const otherAnimations = [];\n Object.getOwnPropertyNames(animations || {}).forEach((prop) => {\n const animationTuple = [prop, clone(animations[prop])];\n if (prop === CLARITY_MOTION_ENTER_LEAVE_PROPERTY) {\n hiddenAnimations.push(animationTuple);\n }\n else {\n otherAnimations.push(animationTuple);\n }\n });\n return [hiddenAnimations, otherAnimations];\n}\n/* c8 ignore next */\nexport function getPropertyAnimations(animations, updatingProps) {\n const activeAnimations = filterAnimationsByUpdatedProperties(animations || {}, updatingProps);\n if (activeAnimations === null) {\n return [];\n }\n const hidingAndOtherAnimationsAsTuple = getHidingAndNonHidingPropertyAnimations(activeAnimations);\n const isHiding = updatingProps.get(CLARITY_MOTION_ENTER_LEAVE_PROPERTY);\n return flattenAndSortAnimations(hidingAndOtherAnimationsAsTuple, isHiding);\n}\n"],"names":["async","runPropertyAnimations","props","hostEl","_animations","LogService","warn","tagName","toLocaleLowerCase","propertyAnimations","getPropertyAnimations","Promise","all","map","propNameAnimationTuple","propname","propertyAnimationsByValue","get","animatedPropertyValueAsString","toString","cdsMotionValue","cdsMotion","motionName","returnedMotion","getAnimationConfigForPropertyValue","getInlineOverride","motionForMyValue","clone","length","setAnimationConfigOptions","animations","getAnimationPromiseInstructions","then","resolveAnimationEndStatus","result","indexOf","catch","setAnimationStartStatus","getAttribute","AnimationStatus","active","setAttribute","cdsMotionChange","emit","start","ready","end","animationsAreTurnedOff","animationIsReversed","reverseAnimationConfig","zeroOutAnimationConfig","setAnimationEasing","setAnimationDuration","motionConfigs","filter","config","onlyIf","allPropertiesPass","resolve","animationPlayer","getAnimationTarget","target","animate","getAnimationKeyframesOrPropertyIndexedFrames","animation","options","listener","removeEventListener","addEventListener","targetSelector","queryChildFromLightOrShadowDom","animationConfig","Array","isArray","sizeDimensionKeyframes","nameOfAnimation","isSuffixedBy","CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX","anim","direction","CLARITY_MOTION_REVERSE_ANIMATION_LABEL","reverseAnimation","animationName","propName","propValue","inlineOverride","JSON","parse","e","extractAnimationNameIfReversed","name","slice","getAnimationFromOverrideOrDecorator","decoratorValue","overrideValue","ClarityMotion","has","nameOfAnimationFromObject","cdsMotionOverride","setAnimationProperty","CLARITY_MOTION_FALLBACK_DURATION_IN_MS","val","getMillisecondsFromSeconds","getNumericValueFromCssSecondsStyleValue","CLARITY_MOTION_FALLBACK_EASING","duration","easing","propertyName","staticFallback","valueConverter","isCssPropertyName","myConfigOption","valFromProperty","getCssPropertyValue","newConfigOptions","animationKeyframes","kf","Object","prototype","hasOwnProperty","call","isPrefixedBy","height","selector","removePrefix","measureTarget","getBoundingClientRect","width","filterAnimationsByUpdatedProperties","updatingProps","objectIsEmpty","returnObject","getOwnPropertyNames","forEach","prop","undefined","flattenAndSortAnimations","hiddenAndNotAnimationTuple","isHiding","hiddenAnimations","otherAnimations","concat","getHidingAndNonHidingPropertyAnimations","animationTuple","CLARITY_MOTION_ENTER_LEAVE_PROPERTY","push","activeAnimations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/internal/motion/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { AnimationStatus, CLARITY_MOTION_ENTER_LEAVE_PROPERTY, CLARITY_MOTION_FALLBACK_DURATION_IN_MS, CLARITY_MOTION_FALLBACK_EASING, CLARITY_MOTION_REVERSE_ANIMATION_LABEL, CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX, } from './interfaces.js';\nimport { LogService } from '../services/log.service.js';\nimport { ClarityMotion } from './motion.service.js';\nimport clone from 'ramda/es/clone.js';\nimport { getCssPropertyValue, isCssPropertyName } from '../utils/css.js';\nimport { isPrefixedBy, isSuffixedBy, getNumericValueFromCssSecondsStyleValue, removePrefix } from '../utils/string.js';\nimport { queryChildFromLightOrShadowDom } from '../utils/dom.js';\nimport { allPropertiesPass } from '../utils/identity.js';\nimport { getMillisecondsFromSeconds } from '../utils/math.js';\n/**\n * runPropertyAnimations() is a utility function called by the @animate(). It is a single point of entry\n * to execute the property-driven animations found in components like the accordion and overlay.\n *\n * Other utilities here are exported to break up the unit tests covering the animation/motion\n * library. While they could be called or used in isolation, it is not recommended for most use cases.\n *\n * runPropertyAnimations returns a boolean so that we know if it ran successfully or not. This is\n * mostly to make testing the function easier.\n *\n * @internal\n */\n/* c8 ignore next */\nexport async function runPropertyAnimations(props, hostEl) {\n if (!hostEl._animations) {\n LogService.warn(`${hostEl.tagName.toLocaleLowerCase()} is trying to animate but no animations are defined.`);\n return false;\n }\n // this runs through animations for each property sequentially\n // animations passed into getPropertyAnimations are the Property-Driven Animations\n // passed into the @animate decorator\n // { hidden: { true: 'cds-modal-enter-reverse', false: 'enter' }, status: { error: 'cds-component-shake' } }\n // getPropertyAnimations transforms the @animate decorator config into an array of\n // tuples so they are easier to work with.\n // ['hidden', { true: 'cds-modal-enter-reverse', false: 'enter' }], ['status', { error: 'cds-component-shake' }]\n // * inactive animations are filtered out\n const propertyAnimations = getPropertyAnimations(hostEl._animations, props);\n const animationsRan = await Promise.all(propertyAnimations.map((propNameAnimationTuple) => {\n const [propname, propertyAnimationsByValue] = propNameAnimationTuple;\n if (props.get(propname) === hostEl[propname]) {\n // a weird/unlikely state where an update is sent but the property value didn't actually change\n return false;\n }\n // gets animations to run based on the property's value\n const animatedPropertyValueAsString = propertyAnimationsByValue[hostEl[propname].toString()];\n const cdsMotionValue = hostEl.cdsMotion;\n // looping through each tuple value in order, getAnimationConfigForPropertyValue()\n // returns a tuple with the animation name from Clarity Motion and the TargetedAnimation\n // config (also returned from the Clarity Motion service)\n // ['enter-reverse', [ { target: '.private-host', animation: [ { opacity: 0 }, { opacity: 1 } ], options: { duration: 300 }}]\n const [motionName, returnedMotion] = getAnimationConfigForPropertyValue(animatedPropertyValueAsString, getInlineOverride(cdsMotionValue, propname, hostEl[propname].toString()));\n let motionForMyValue = clone(returnedMotion); // have to jump through this hoop to keep typescript happy\n // jumps out if there are no animation routines\n if (motionForMyValue.length < 1) {\n return false;\n }\n motionForMyValue = setAnimationConfigOptions(motionName, motionForMyValue, hostEl);\n // loops through animation config and runs them; assigns the promises to an array we can Promise.all() at the end\n const animations = getAnimationPromiseInstructions(animatedPropertyValueAsString, motionForMyValue, hostEl);\n return Promise.all(animations).then(() => {\n resolveAnimationEndStatus(animatedPropertyValueAsString, hostEl);\n return true;\n });\n }))\n .then(result => {\n return result.indexOf(true) > -1;\n })\n .catch(() => {\n return false;\n });\n return animationsRan;\n}\n// --- CONTROL FLOW UTILS ---\n/* c8 ignore next */\nexport function setAnimationStartStatus(animatedPropertyValueAsString, hostEl) {\n // accesses and manipulates the private animation status attr;\n if (hostEl.getAttribute('_cds-animation-status') !== AnimationStatus.active) {\n hostEl.setAttribute('_cds-animation-status', AnimationStatus.active);\n // this is here so we only emit the start event once, right when the whole animation starts...\n hostEl.cdsMotionChange.emit(`${animatedPropertyValueAsString} animation ${AnimationStatus.start}`);\n }\n}\n/* c8 ignore next */\nexport function resolveAnimationEndStatus(animatedPropertyValueAsString, hostEl) {\n // sets super secret animation attr back to 'ready'\n hostEl.setAttribute('_cds-animation-status', AnimationStatus.ready); // A\n // emits the name of the animation and that it ended\n hostEl.cdsMotionChange.emit(`${animatedPropertyValueAsString} animation ${AnimationStatus.end}`); // A\n}\n/* c8 ignore next */\nexport function setAnimationConfigOptions(motionName, motionForMyValue, hostEl) {\n const cdsMotionValue = hostEl.cdsMotion;\n const animationsAreTurnedOff = !cdsMotionValue || cdsMotionValue === 'off';\n // the following set of functions – reverseAnimationConfig(), zeroOutAnimationConfig(),\n // setAnimationDuration(), setAnimationEasing() – modify the \"options\" portion of the animation routine\n // in the tuple above that is returned from getAnimationConfigForPropertyValue\n if (animationIsReversed(motionName)) {\n motionForMyValue = reverseAnimationConfig(motionForMyValue);\n }\n if (animationsAreTurnedOff) {\n // cdsMotion is turned off, so zero out the duration\n motionForMyValue = zeroOutAnimationConfig(motionForMyValue);\n }\n else {\n // sets duration and easing based on CSS properties, passed values, or a global fallback\n motionForMyValue = setAnimationDuration(motionForMyValue, hostEl);\n motionForMyValue = setAnimationEasing(motionForMyValue, hostEl);\n }\n return motionForMyValue;\n}\n/* c8 ignore next */\nexport function getAnimationPromiseInstructions(animatedPropertyValueAsString, motionConfigs, hostEl) {\n return motionConfigs\n .filter(config => !config.onlyIf || allPropertiesPass(hostEl, config.onlyIf))\n .map(config => {\n setAnimationStartStatus(animatedPropertyValueAsString, hostEl);\n return new Promise(resolve => {\n const animationPlayer = getAnimationTarget(hostEl, config.target).animate(getAnimationKeyframesOrPropertyIndexedFrames(config.animation, hostEl), config.options || {});\n const listener = () => {\n resolve('animation finished');\n animationPlayer.removeEventListener('finish', listener);\n };\n animationPlayer.addEventListener('finish', listener);\n });\n });\n}\n/* c8 ignore next */\nexport function getAnimationTarget(hostEl, targetSelector) {\n return queryChildFromLightOrShadowDom(hostEl, targetSelector) || hostEl;\n}\n/* c8 ignore next */\nexport function getAnimationKeyframesOrPropertyIndexedFrames(animationConfig, hostEl) {\n return !Array.isArray(animationConfig) ? animationConfig : sizeDimensionKeyframes(animationConfig, hostEl);\n}\n// --- REVERSING UTILS ---\n// string -> boolean\n/* c8 ignore next */\nexport function animationIsReversed(nameOfAnimation) {\n return isSuffixedBy(nameOfAnimation, CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX);\n}\n// { target: '.my-selector', animation: [<keyframes>], options: { duration: 500 }} ->\n// { target: '.my-selector', animation: [<keyframes>], options: { duration: 500, direction: 'reverse' }}\n/* c8 ignore next */\nexport function reverseAnimationConfig(config) {\n return config.map((anim) => {\n if (anim.options) {\n anim.options.direction = CLARITY_MOTION_REVERSE_ANIMATION_LABEL;\n }\n else {\n anim.options = { direction: CLARITY_MOTION_REVERSE_ANIMATION_LABEL };\n }\n return anim;\n });\n}\n// 'my-animation' -> 'my-animation-reverse'\n/* c8 ignore next */\nexport function reverseAnimation(animationName) {\n return [animationName, '-', CLARITY_MOTION_REVERSE_ANIMATION_LABEL].join('');\n}\n// --- ANIMATION CONFIG RETRIEVAL ---\n// returns an animation name from a stringified @animate decorator config passed into the\n// cds-motion attr. looks it up by property first and value second. returns empty string\n// if no animation name matches the property and property value.\n/* c8 ignore next */\nexport function getInlineOverride(cdsMotionValue, propName, propValue) {\n if (!cdsMotionValue || !propName || typeof propValue === 'undefined') {\n return '';\n }\n if (cdsMotionValue === 'on' || cdsMotionValue === 'off') {\n return '';\n }\n let inlineOverride;\n try {\n inlineOverride = JSON.parse(cdsMotionValue);\n }\n catch (e) {\n return '';\n }\n const overrideValue = inlineOverride[propName] && inlineOverride[propName][propValue];\n return overrideValue ? overrideValue : '';\n}\n// 'i-am-reverse' -> 'i-am'\n/* c8 ignore next */\nexport function extractAnimationNameIfReversed(name) {\n return animationIsReversed(name) ? name.slice(0, -1 * CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX.length) : name;\n}\n// if the name retrieved from the cds-motion config is present in Clarity Motion, it is returned\n/* c8 ignore next */\nexport function getAnimationFromOverrideOrDecorator(decoratorValue, overrideValue) {\n if (!overrideValue) {\n return decoratorValue;\n }\n return ClarityMotion.has(extractAnimationNameIfReversed(overrideValue)) ? overrideValue : decoratorValue;\n}\n// ('animation-name') -> ['animation-name', [ { target: '.an-element', animation: [<keyframes>], options: { ... }}]];\n// ('animation-name', 'name-retrieved-from-cds-motion-config') ->\n// ['name-retrieved-from-cds-motion-config', [ { target: ..., animation: [<keyframes>], options: { ... }}]];0\n/* c8 ignore next */\nexport function getAnimationConfigForPropertyValue(nameOfAnimationFromObject, cdsMotionOverride) {\n const nameOfAnimation = getAnimationFromOverrideOrDecorator(nameOfAnimationFromObject, cdsMotionOverride);\n return [nameOfAnimation, clone(ClarityMotion.get(extractAnimationNameIfReversed(nameOfAnimation)))];\n}\n// --- SETTING ANIMATION CONFIG VALUES ---\n/* c8 ignore next */\nexport function setAnimationDuration(config, hostEl) {\n return setAnimationProperty('duration', hostEl, config, CLARITY_MOTION_FALLBACK_DURATION_IN_MS, (val) => {\n return getMillisecondsFromSeconds(getNumericValueFromCssSecondsStyleValue(val));\n });\n}\n/* c8 ignore next */\nexport function setAnimationEasing(config, hostEl) {\n /* c8 ignore next */\n return setAnimationProperty('easing', hostEl, config, CLARITY_MOTION_FALLBACK_EASING);\n}\n/* c8 ignore next */\nexport function zeroOutAnimationConfig(config) {\n /* c8 ignore next */\n return config.map(anim => {\n if (anim.options) {\n anim.options.duration = 0;\n anim.options.easing = CLARITY_MOTION_FALLBACK_EASING;\n }\n else {\n anim.options = { duration: 0, easing: CLARITY_MOTION_FALLBACK_EASING };\n }\n return anim;\n });\n}\n/* c8 ignore next */\nexport function setAnimationProperty(propertyName, hostEl, config, staticFallback, valueConverter) {\n return config.map((anim) => {\n if (anim.options) {\n if (!anim.options[propertyName]) {\n anim.options[propertyName] = staticFallback;\n }\n else if (isCssPropertyName(anim.options[propertyName])) {\n const myConfigOption = anim.options[propertyName];\n let valFromProperty = getCssPropertyValue(myConfigOption, hostEl);\n if (!valFromProperty) {\n valFromProperty = staticFallback;\n }\n else if (valueConverter) {\n valFromProperty = valueConverter(valFromProperty);\n }\n anim.options[propertyName] = valFromProperty;\n }\n // else fallthrough not required because option is already set to intended value\n }\n else {\n const newConfigOptions = {};\n newConfigOptions[propertyName] = staticFallback;\n anim.options = newConfigOptions;\n }\n return anim;\n });\n}\n// -- TRANSFORM PROPERTY-DRIVEN ANIMATION OBJECTS TO ANIMATION CONFIG OBJECTS ---\n/* c8 ignore next */\nexport function sizeDimensionKeyframes(animationKeyframes, hostEl) {\n if (!Array.isArray(animationKeyframes)) {\n return animationKeyframes;\n }\n return animationKeyframes.map((kf) => {\n if (Object.prototype.hasOwnProperty.call(kf, 'height') && isPrefixedBy(kf?.height?.toString() || '', 'from:')) {\n const selector = removePrefix(kf?.height?.toString() || '', 'from:');\n const measureTarget = queryChildFromLightOrShadowDom(hostEl, selector) || null;\n kf.height = !measureTarget ? 'auto' : measureTarget.getBoundingClientRect().height + 'px';\n }\n if (Object.prototype.hasOwnProperty.call(kf, 'width') && isPrefixedBy(kf?.width?.toString() || '', 'from:')) {\n const selector = removePrefix(kf?.width?.toString() || '', 'from:');\n const measureTarget = queryChildFromLightOrShadowDom(hostEl, selector) || null;\n kf.width = !measureTarget ? 'auto' : measureTarget.getBoundingClientRect().width + 'px';\n }\n return kf;\n });\n}\n/* c8 ignore next */\nexport function filterAnimationsByUpdatedProperties(animations, updatingProps) {\n if (animations === null || animations === undefined) {\n return null;\n }\n let objectIsEmpty = true;\n const returnObject = {};\n Object.getOwnPropertyNames(animations).forEach((prop) => {\n // test here against undefined value because Lit is running initializations\n // with properties with an \"undefined\" value. as a result of this change,\n // animations should only run on explicitly set values...\n if (updatingProps.has(prop) && updatingProps.get(prop) !== undefined) {\n returnObject[prop] = clone(animations[prop]);\n objectIsEmpty = false;\n }\n });\n return objectIsEmpty ? null : returnObject;\n}\n/* c8 ignore next */\nexport function flattenAndSortAnimations(hiddenAndNotAnimationTuple, isHiding) {\n if (hiddenAndNotAnimationTuple === null || hiddenAndNotAnimationTuple === undefined) {\n return [];\n }\n const [hiddenAnimations, otherAnimations] = hiddenAndNotAnimationTuple;\n if (hiddenAnimations.length > 0) {\n if (isHiding) {\n // hiding hostEl\n return [].concat(otherAnimations, hiddenAnimations);\n }\n else {\n // showing hostEl\n return [].concat(hiddenAnimations, otherAnimations);\n }\n }\n else {\n return otherAnimations;\n }\n}\n/* c8 ignore next */\nexport function getHidingAndNonHidingPropertyAnimations(animations) {\n const hiddenAnimations = [];\n const otherAnimations = [];\n Object.getOwnPropertyNames(animations || {}).forEach((prop) => {\n const animationTuple = [prop, clone(animations[prop])];\n if (prop === CLARITY_MOTION_ENTER_LEAVE_PROPERTY) {\n hiddenAnimations.push(animationTuple);\n }\n else {\n otherAnimations.push(animationTuple);\n }\n });\n return [hiddenAnimations, otherAnimations];\n}\n/* c8 ignore next */\nexport function getPropertyAnimations(animations, updatingProps) {\n const activeAnimations = filterAnimationsByUpdatedProperties(animations || {}, updatingProps);\n if (activeAnimations === null) {\n return [];\n }\n const hidingAndOtherAnimationsAsTuple = getHidingAndNonHidingPropertyAnimations(activeAnimations);\n const isHiding = updatingProps.get(CLARITY_MOTION_ENTER_LEAVE_PROPERTY);\n return flattenAndSortAnimations(hidingAndOtherAnimationsAsTuple, isHiding);\n}\n"],"names":["async","runPropertyAnimations","props","hostEl","_animations","LogService","warn","tagName","toLocaleLowerCase","propertyAnimations","getPropertyAnimations","Promise","all","map","propNameAnimationTuple","propname","propertyAnimationsByValue","get","animatedPropertyValueAsString","toString","cdsMotionValue","cdsMotion","motionName","returnedMotion","getAnimationConfigForPropertyValue","getInlineOverride","motionForMyValue","clone","length","setAnimationConfigOptions","animations","getAnimationPromiseInstructions","then","resolveAnimationEndStatus","result","indexOf","catch","setAnimationStartStatus","getAttribute","AnimationStatus","active","setAttribute","cdsMotionChange","emit","start","ready","end","animationsAreTurnedOff","animationIsReversed","reverseAnimationConfig","zeroOutAnimationConfig","setAnimationEasing","setAnimationDuration","motionConfigs","filter","config","onlyIf","allPropertiesPass","resolve","animationPlayer","getAnimationTarget","target","animate","getAnimationKeyframesOrPropertyIndexedFrames","animation","options","listener","removeEventListener","addEventListener","targetSelector","queryChildFromLightOrShadowDom","animationConfig","Array","isArray","sizeDimensionKeyframes","nameOfAnimation","isSuffixedBy","CLARITY_MOTION_REVERSE_ANIMATION_SUFFIX","anim","direction","CLARITY_MOTION_REVERSE_ANIMATION_LABEL","reverseAnimation","animationName","propName","propValue","inlineOverride","JSON","parse","e","extractAnimationNameIfReversed","name","slice","getAnimationFromOverrideOrDecorator","decoratorValue","overrideValue","ClarityMotion","has","nameOfAnimationFromObject","cdsMotionOverride","setAnimationProperty","CLARITY_MOTION_FALLBACK_DURATION_IN_MS","val","getMillisecondsFromSeconds","getNumericValueFromCssSecondsStyleValue","CLARITY_MOTION_FALLBACK_EASING","duration","easing","propertyName","staticFallback","valueConverter","isCssPropertyName","myConfigOption","valFromProperty","getCssPropertyValue","newConfigOptions","animationKeyframes","kf","Object","prototype","hasOwnProperty","call","isPrefixedBy","height","selector","removePrefix","measureTarget","getBoundingClientRect","width","filterAnimationsByUpdatedProperties","updatingProps","objectIsEmpty","returnObject","getOwnPropertyNames","forEach","prop","undefined","flattenAndSortAnimations","hiddenAndNotAnimationTuple","isHiding","hiddenAnimations","otherAnimations","concat","getHidingAndNonHidingPropertyAnimations","animationTuple","CLARITY_MOTION_ENTER_LEAVE_PROPERTY","push","activeAnimations"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sources":["../../../../src/internal/positioning/interfaces.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"interfaces.js","sources":["../../../../src/internal/positioning/interfaces.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n// ordered so the highest default priority has the largest integer. this allows for number sums to be\n// followed downward without risk of preference knocking things out of whack.\nexport var Positions;\n(function (Positions) {\n Positions[Positions[\"Responsive\"] = 0] = \"Responsive\";\n Positions[Positions[\"Top\"] = 1] = \"Top\";\n Positions[Positions[\"Left\"] = 2] = \"Left\";\n Positions[Positions[\"TopOrLeft\"] = 3] = \"TopOrLeft\";\n Positions[Positions[\"Right\"] = 4] = \"Right\";\n Positions[Positions[\"TopOrRight\"] = 5] = \"TopOrRight\";\n Positions[Positions[\"Horizontal\"] = 6] = \"Horizontal\";\n Positions[Positions[\"TopOrHorizontal\"] = 7] = \"TopOrHorizontal\";\n Positions[Positions[\"Bottom\"] = 8] = \"Bottom\";\n Positions[Positions[\"Vertical\"] = 9] = \"Vertical\";\n Positions[Positions[\"BottomOrLeft\"] = 10] = \"BottomOrLeft\";\n Positions[Positions[\"VerticalOrLeft\"] = 11] = \"VerticalOrLeft\";\n Positions[Positions[\"BottomOrRight\"] = 12] = \"BottomOrRight\";\n Positions[Positions[\"VerticalOrRight\"] = 13] = \"VerticalOrRight\";\n Positions[Positions[\"BottomOrHorizontal\"] = 14] = \"BottomOrHorizontal\";\n Positions[Positions[\"All\"] = 15] = \"All\";\n})(Positions || (Positions = {}));\n"],"names":["Positions"],"mappings":"AAOU,IAACA,GACX,SAAWA,GACPA,EAAUA,EAAsB,WAAI,GAAK,aACzCA,EAAUA,EAAe,IAAI,GAAK,MAClCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAsB,WAAI,GAAK,aACzCA,EAAUA,EAAsB,WAAI,GAAK,aACzCA,EAAUA,EAA2B,gBAAI,GAAK,kBAC9CA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,IAAM,eAC5CA,EAAUA,EAA0B,eAAI,IAAM,iBAC9CA,EAAUA,EAAyB,cAAI,IAAM,gBAC7CA,EAAUA,EAA2B,gBAAI,IAAM,kBAC/CA,EAAUA,EAA8B,mBAAI,IAAM,qBAClDA,EAAUA,EAAe,IAAI,IAAM,MAhBvC,CAiBGA,IAAcA,EAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/internal/positioning/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { Positions, } from './interfaces.js';\nimport { capitalizeFirstLetter, removePrefix, transformSpacedStringToArray } from '../utils/string.js';\nimport { getWindowDimensions, setAttributes } from '../utils/dom.js';\nimport { isNil } from '../utils/identity.js';\nimport { getCssPropertyValue, updateElementStyles } from '../utils/css.js';\nimport { sumAndSubtract } from '../utils/math.js';\nimport { getEnumValueFromStringKey } from '../utils/enum.js';\nexport function getPopupOffsetOrDefaultOffsets(existingMainAxisOffset, existingCrossAxisOffset, pointer, pointerAlign, anchorAlign) {\n const returnObj = { mainAxisOffset: 0, crossAxisOffset: 0 };\n const isDefaultPointerType = pointer && pointer.type === 'default';\n if (!isNil(existingMainAxisOffset)) {\n returnObj.mainAxisOffset = existingMainAxisOffset;\n }\n else {\n if (isDefaultPointerType) {\n returnObj.mainAxisOffset = -10;\n }\n }\n if (!isNil(existingCrossAxisOffset)) {\n returnObj.crossAxisOffset = existingCrossAxisOffset;\n }\n else {\n if (isDefaultPointerType && pointerAlign === 'end' && anchorAlign === 'start') {\n returnObj.crossAxisOffset = -10;\n }\n }\n return returnObj;\n}\nexport function setPopupPosition(component) {\n // have to pre-emptively remove stealth attr so that measurements won't take responsive width/height\n // as the popup's actual width/height\n component.removeAttribute('responsive');\n const offsets = getPopupOffsetOrDefaultOffsets(component.mainAxisOffset, component.crossAxisOffset, component.pointer, component.pointerAlign, component.anchorAlign);\n const myPosition = getPopupPosition(component.orientation, component.anchorRect, component.anchorAlign, component.pointer, component.pointerAlign, component.contentWrapper, offsets.mainAxisOffset, offsets.crossAxisOffset);\n if (myPosition === false) {\n // have to manually set this here because the CSS needs it and the work needs to\n // happen outside of the update loop\n setAttributes(component, ['responsive', ''], ['_position-at', false]);\n updateElementStyles(component.hostWrapper, ['position', ''], ['top', ''], ['left', '']);\n updateElementStyles(component.pointerWrapper, ['visibility', 'hidden']);\n }\n else {\n if (component.pointer) {\n const positionedPointer = myPosition.pointer;\n updateElementStyles(component.pointerWrapper, ['visibility', 'visible']);\n setAttributes(component, ['_pointer-type', component.pointer.type || false]);\n setAttributes(component, ['_position-at', positionedPointer.location]);\n }\n else {\n updateElementStyles(component.pointerWrapper, ['visibility', 'hidden']);\n setAttributes(component, ['_position-at', false], ['_pointer-type', false]);\n }\n const posTop = myPosition.popup.top + 'px';\n const posLeft = myPosition.popup.left + 'px';\n updateElementStyles(component.hostWrapper, ['position', 'absolute'], ['top', posTop], ['left', posLeft]);\n }\n}\nexport function getOrientationTuple(orientationPrefs) {\n const preferredPositions = [];\n const deniedPositions = [];\n /* c8 ignore next */\n for (const userPref of transformSpacedStringToArray(orientationPrefs)) {\n if (userPref === 'none') {\n return [[], 0];\n }\n else if (userPref.indexOf('only:') > -1) {\n return [\n [getEnumValueFromStringKey(Positions, removePrefix(userPref, 'only:'), capitalizeFirstLetter)],\n 0,\n ];\n }\n else if (userPref.indexOf('not:') > -1) {\n deniedPositions.push(getEnumValueFromStringKey(Positions, removePrefix(userPref, 'not:'), capitalizeFirstLetter));\n }\n else {\n const positionVal = getEnumValueFromStringKey(Positions, userPref, capitalizeFirstLetter);\n deniedPositions.push(positionVal);\n preferredPositions.push(positionVal);\n }\n }\n return [preferredPositions, sumAndSubtract(0, [Positions.All], deniedPositions)];\n}\nexport function getCrossAxisOrderOfPreference(preference) {\n switch (preference) {\n case 'mid':\n return [1, 0, 2];\n case 'end':\n return [2, 1, 0];\n case 'start':\n default:\n return [0, 1, 2];\n }\n}\nexport function checkNextPosition(whichPosition, positions, anchorAlignPref) {\n if (positions === false) {\n return false;\n }\n const positionToCheck = positions[Positions[whichPosition]?.toLowerCase()];\n if (!positionToCheck) {\n return false;\n }\n const [startOfAnchor, middleOfAnchor, endOfAnchor] = positionToCheck;\n if (startOfAnchor === false && middleOfAnchor === false && endOfAnchor === false) {\n return false;\n }\n for (const i of getCrossAxisOrderOfPreference(anchorAlignPref)) {\n if (positionToCheck[i]) {\n return Object.assign({}, positionToCheck[i]);\n }\n }\n return false;\n}\nexport function getNextDefaultPosition(currentPositionTotal) {\n const defaults = [Positions.Bottom, Positions.Right, Positions.Left, Positions.Top, Positions.Responsive];\n for (const position of defaults) {\n if (currentPositionTotal >= position) {\n return [position, currentPositionTotal - position];\n }\n }\n return [0, 0];\n}\nexport function getNextPosition(userPrefs, prefTotal) {\n if (userPrefs.length < 1) {\n const [positionIndexToCheck, newPrefTotal] = getNextDefaultPosition(prefTotal);\n return [positionIndexToCheck, userPrefs, newPrefTotal];\n }\n return [userPrefs[0], userPrefs.slice(1), userPrefs[0] !== Positions.Responsive ? prefTotal : 0];\n}\n/* c8 ignore next */\nexport function getPointerPosition(workingPositionRelativeToAnchor) {\n switch (workingPositionRelativeToAnchor.toLowerCase()) {\n case 'top':\n return 'popup-bottom';\n case 'bottom':\n return 'popup-top';\n case 'left':\n return 'popup-right';\n case 'right':\n default:\n return 'popup-left';\n }\n}\nexport function getPointerAlignment(popupPosition, pointerAlign) {\n let myAligns;\n if (popupPosition === 'popup-bottom' || popupPosition === 'popup-top') {\n myAligns = { start: 'pointer-left', mid: 'pointer-center', end: 'pointer-right' };\n }\n else {\n myAligns = { start: 'pointer-top', mid: 'pointer-mid', end: 'pointer-bottom' };\n }\n return myAligns[pointerAlign];\n}\nexport function getBestPositionForPreferences(positions, preferences, anchorAlignPref) {\n let [arrayOfUserPrefs, currentPrefTotal] = preferences;\n let returnPref = null;\n while (returnPref === null) {\n const [positionToCheck, newArrayOfUserPrefs, newCurrentPrefTotal] = getNextPosition(arrayOfUserPrefs, currentPrefTotal);\n const positionWillWork = checkNextPosition(positionToCheck, positions, anchorAlignPref);\n switch (true) {\n case positionWillWork !== false:\n returnPref = Object.assign({}, positionWillWork, {\n pointer: { location: getPointerPosition(Positions[positionToCheck]) },\n });\n break;\n case positionWillWork === false && newCurrentPrefTotal === 0:\n // tested all positions; none of them work\n returnPref = false;\n break;\n case positionWillWork === false:\n // this position won't work but there are more positions to check!\n arrayOfUserPrefs = newArrayOfUserPrefs;\n currentPrefTotal = newCurrentPrefTotal;\n break;\n }\n }\n return returnPref;\n}\nexport function getPopupPosition(orientationPrefs, anchorRect, anchorAlign, pointer, pointerAlign, popup, mainAxisOffset, crossAxisOffset) {\n if (!anchorRect) {\n return false; // anchor does not exist; force responsive\n }\n // we have to use offsetHeight/Width here because the DOMRect shifts dimensions when the pointer is rotated\n // the caveat with using offsetHeight/Width is that the values are rounded to an integer\n // that does not seem to be a big risk, however, because these pointers are created by users.\n // if there is a rounding issue, it's likely because a rem sizing has something set to a fractional value\n // and any rounding error would likely be negligible in effect\n const pointerHeight = pointer ? pointer.offsetHeight : 0;\n const windowDims = getWindowDimensions();\n /* c8 ignore next 3 */\n if (windowDims.width <= parseInt(getCssPropertyValue('--cds-global-layout-width-xs-static'), 10)) {\n return false;\n }\n const positions = getPositions(anchorRect, pointerHeight, pointerAlign, popup.getBoundingClientRect(), windowDims, mainAxisOffset, crossAxisOffset);\n const myPosition = getBestPositionForPreferences(positions, getOrientationTuple(orientationPrefs), anchorAlign);\n if (myPosition === false) {\n return false;\n }\n const pointerLocationRelativeToAnchor = myPosition.pointer.location;\n const pointerLocation = pointerLocationRelativeToAnchor + ' ' + getPointerAlignment(pointerLocationRelativeToAnchor, pointerAlign);\n const pointerObj = { pointer: { size: pointerHeight, location: pointerLocation } };\n return Object.assign({}, myPosition, pointerObj);\n}\nexport function getPositions(anchorRect, pointerHeight, pointerAlign, popupRect, windowDims, mainAxisOffset, crossAxisOffset) {\n return {\n top: getPositionConfig('top', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n right: getPositionConfig('right', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n bottom: getPositionConfig('bottom', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n left: getPositionConfig('left', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n };\n}\n// TODO: convert arguments list to a config object?\nexport function getPositionConfig(cardinalPos, pointerAlign, anchor, popup, pointerHeight, win, mainAxisOffset, crossAxisOffset) {\n let mainAxisPosition;\n switch (cardinalPos) {\n case 'top':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.top, pointerHeight, popup.height, mainAxisOffset, 0);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.left, anchor.width, popup.width, crossAxisOffset, 0, win.width, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: mainAxisPosition,\n left: crossAxisPos,\n },\n };\n }\n });\n }\n case 'bottom':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.bottom, 0, // pointer doesn't need to be in this calc\n popup.height, mainAxisOffset, win.height);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.left, anchor.width, popup.width, crossAxisOffset, 0, win.width, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: mainAxisPosition,\n left: crossAxisPos,\n },\n };\n }\n });\n }\n case 'left':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.left, pointerHeight, popup.width, mainAxisOffset, 0);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.top, anchor.height, popup.height, crossAxisOffset, 0, win.height, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: crossAxisPos,\n left: mainAxisPosition,\n },\n };\n }\n });\n }\n case 'right':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.right, 0, // pointer doesn't need to be in this calc\n popup.width, mainAxisOffset, win.width);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.top, anchor.height, popup.height, crossAxisOffset, 0, win.height, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: crossAxisPos,\n left: mainAxisPosition,\n },\n };\n }\n });\n }\n }\n}\nexport function getMainAxisPosition(startPos, pointer, popup, offset, limit) {\n return limit === 0\n ? sumAndSubtract(startPos, [], [pointer, popup, offset])\n : sumAndSubtract(startPos, [pointer, popup, offset], []);\n}\nexport function testMainAxisPosition(pos, startPos, limit) {\n if (limit === 0) {\n // -- for positions that *pull* (a.k.a top and left) --\n // if limit is zero, see if position is above zero and return it\n return pos > limit && pos;\n }\n else {\n // -- for positions that *push* (a.k.a. bottom and right)\n // if limit is not zero, position is the start + popup dimension;\n // return start position if position is less than the limit\n return pos < limit && startPos; // needs offsets!\n }\n}\nexport function getCrossAxisPosition(position, startPos, anchorAlign, anchorWidth, offset, popup = 0) {\n switch (position) {\n case 'mid':\n return startPos + anchorAlign * anchorWidth - 0.5 * popup + offset;\n case 'end':\n return startPos + anchorAlign * anchorWidth - offset;\n case 'start':\n return startPos + anchorAlign * anchorWidth + offset;\n }\n}\nexport function testCrossAxisPosition(axisAlign, position, popup, limit) {\n const [limitMin, limitMax] = limit;\n switch (axisAlign) {\n case 'mid':\n return position > limitMin && position + popup < limitMax ? position : false;\n case 'end': {\n const pulledPosition = position - popup;\n return pulledPosition > limitMin ? pulledPosition : false;\n }\n case 'start':\n return position + popup < limitMax ? position : false;\n }\n}\nexport function getPositionOrViolationFromCrossAxis(startPos, anchorLength, popupLength, offset, limitMinimum, limitMaximum, pointerPosition) {\n const anchorAlignments = [0, 0.5, 1];\n return anchorAlignments.map((anchorAlignment) => {\n return testCrossAxisPosition(pointerPosition, getCrossAxisPosition(pointerPosition, startPos, anchorAlignment, anchorLength, offset, popupLength), popupLength, [limitMinimum, limitMaximum]);\n });\n}\nexport function getMainAxisPositionOrViolation(startPos, pointerLength, popupLength, offset, limit = 0) {\n return testMainAxisPosition(getMainAxisPosition(startPos, pointerLength, popupLength, offset, limit), // returned by *pull* positions\n startPos + offset, // only returned with *push* positions\n limit);\n}\n"],"names":["getPopupOffsetOrDefaultOffsets","existingMainAxisOffset","existingCrossAxisOffset","pointer","pointerAlign","anchorAlign","returnObj","mainAxisOffset","crossAxisOffset","isDefaultPointerType","type","isNil","setPopupPosition","component","removeAttribute","offsets","myPosition","getPopupPosition","orientation","anchorRect","contentWrapper","setAttributes","updateElementStyles","hostWrapper","pointerWrapper","positionedPointer","location","posTop","popup","top","posLeft","left","getOrientationTuple","orientationPrefs","preferredPositions","deniedPositions","userPref","transformSpacedStringToArray","indexOf","getEnumValueFromStringKey","Positions","removePrefix","capitalizeFirstLetter","push","positionVal","sumAndSubtract","All","getCrossAxisOrderOfPreference","preference","checkNextPosition","whichPosition","positions","anchorAlignPref","positionToCheck","toLowerCase","startOfAnchor","middleOfAnchor","endOfAnchor","i","Object","assign","getNextDefaultPosition","currentPositionTotal","defaults","Bottom","Right","Left","Top","Responsive","position","getNextPosition","userPrefs","prefTotal","length","positionIndexToCheck","newPrefTotal","slice","getPointerPosition","workingPositionRelativeToAnchor","getPointerAlignment","popupPosition","myAligns","start","mid","end","getBestPositionForPreferences","preferences","arrayOfUserPrefs","currentPrefTotal","returnPref","newArrayOfUserPrefs","newCurrentPrefTotal","positionWillWork","pointerHeight","offsetHeight","windowDims","getWindowDimensions","width","parseInt","getCssPropertyValue","getPositions","getBoundingClientRect","pointerLocationRelativeToAnchor","pointerLocation","size","popupRect","getPositionConfig","right","bottom","cardinalPos","anchor","win","mainAxisPosition","getMainAxisPositionOrViolation","height","getPositionOrViolationFromCrossAxis","map","crossAxisPos","getMainAxisPosition","startPos","offset","limit","testMainAxisPosition","pos","getCrossAxisPosition","anchorWidth","testCrossAxisPosition","axisAlign","limitMin","limitMax","pulledPosition","anchorLength","popupLength","limitMinimum","limitMaximum","pointerPosition","anchorAlignment","pointerLength"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/internal/positioning/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { Positions, } from './interfaces.js';\nimport { capitalizeFirstLetter, removePrefix, transformSpacedStringToArray } from '../utils/string.js';\nimport { getWindowDimensions, setAttributes } from '../utils/dom.js';\nimport { isNil } from '../utils/identity.js';\nimport { getCssPropertyValue, updateElementStyles } from '../utils/css.js';\nimport { sumAndSubtract } from '../utils/math.js';\nimport { getEnumValueFromStringKey } from '../utils/enum.js';\nexport function getPopupOffsetOrDefaultOffsets(existingMainAxisOffset, existingCrossAxisOffset, pointer, pointerAlign, anchorAlign) {\n const returnObj = { mainAxisOffset: 0, crossAxisOffset: 0 };\n const isDefaultPointerType = pointer && pointer.type === 'default';\n if (!isNil(existingMainAxisOffset)) {\n returnObj.mainAxisOffset = existingMainAxisOffset;\n }\n else {\n if (isDefaultPointerType) {\n returnObj.mainAxisOffset = -10;\n }\n }\n if (!isNil(existingCrossAxisOffset)) {\n returnObj.crossAxisOffset = existingCrossAxisOffset;\n }\n else {\n if (isDefaultPointerType && pointerAlign === 'end' && anchorAlign === 'start') {\n returnObj.crossAxisOffset = -10;\n }\n }\n return returnObj;\n}\nexport function setPopupPosition(component) {\n // have to pre-emptively remove stealth attr so that measurements won't take responsive width/height\n // as the popup's actual width/height\n component.removeAttribute('responsive');\n const offsets = getPopupOffsetOrDefaultOffsets(component.mainAxisOffset, component.crossAxisOffset, component.pointer, component.pointerAlign, component.anchorAlign);\n const myPosition = getPopupPosition(component.orientation, component.anchorRect, component.anchorAlign, component.pointer, component.pointerAlign, component.contentWrapper, offsets.mainAxisOffset, offsets.crossAxisOffset);\n if (myPosition === false) {\n // have to manually set this here because the CSS needs it and the work needs to\n // happen outside of the update loop\n setAttributes(component, ['responsive', ''], ['_position-at', false]);\n updateElementStyles(component.hostWrapper, ['position', ''], ['top', ''], ['left', '']);\n updateElementStyles(component.pointerWrapper, ['visibility', 'hidden']);\n }\n else {\n if (component.pointer) {\n const positionedPointer = myPosition.pointer;\n updateElementStyles(component.pointerWrapper, ['visibility', 'visible']);\n setAttributes(component, ['_pointer-type', component.pointer.type || false]);\n setAttributes(component, ['_position-at', positionedPointer.location]);\n }\n else {\n updateElementStyles(component.pointerWrapper, ['visibility', 'hidden']);\n setAttributes(component, ['_position-at', false], ['_pointer-type', false]);\n }\n const posTop = myPosition.popup.top + 'px';\n const posLeft = myPosition.popup.left + 'px';\n updateElementStyles(component.hostWrapper, ['position', 'absolute'], ['top', posTop], ['left', posLeft]);\n }\n}\nexport function getOrientationTuple(orientationPrefs) {\n const preferredPositions = [];\n const deniedPositions = [];\n /* c8 ignore next */\n for (const userPref of transformSpacedStringToArray(orientationPrefs)) {\n if (userPref === 'none') {\n return [[], 0];\n }\n else if (userPref.indexOf('only:') > -1) {\n return [\n [getEnumValueFromStringKey(Positions, removePrefix(userPref, 'only:'), capitalizeFirstLetter)],\n 0,\n ];\n }\n else if (userPref.indexOf('not:') > -1) {\n deniedPositions.push(getEnumValueFromStringKey(Positions, removePrefix(userPref, 'not:'), capitalizeFirstLetter));\n }\n else {\n const positionVal = getEnumValueFromStringKey(Positions, userPref, capitalizeFirstLetter);\n deniedPositions.push(positionVal);\n preferredPositions.push(positionVal);\n }\n }\n return [preferredPositions, sumAndSubtract(0, [Positions.All], deniedPositions)];\n}\nexport function getCrossAxisOrderOfPreference(preference) {\n switch (preference) {\n case 'mid':\n return [1, 0, 2];\n case 'end':\n return [2, 1, 0];\n case 'start':\n default:\n return [0, 1, 2];\n }\n}\nexport function checkNextPosition(whichPosition, positions, anchorAlignPref) {\n if (positions === false) {\n return false;\n }\n const positionToCheck = positions[Positions[whichPosition]?.toLowerCase()];\n if (!positionToCheck) {\n return false;\n }\n const [startOfAnchor, middleOfAnchor, endOfAnchor] = positionToCheck;\n if (startOfAnchor === false && middleOfAnchor === false && endOfAnchor === false) {\n return false;\n }\n for (const i of getCrossAxisOrderOfPreference(anchorAlignPref)) {\n if (positionToCheck[i]) {\n return Object.assign({}, positionToCheck[i]);\n }\n }\n return false;\n}\nexport function getNextDefaultPosition(currentPositionTotal) {\n const defaults = [Positions.Bottom, Positions.Right, Positions.Left, Positions.Top, Positions.Responsive];\n for (const position of defaults) {\n if (currentPositionTotal >= position) {\n return [position, currentPositionTotal - position];\n }\n }\n return [0, 0];\n}\nexport function getNextPosition(userPrefs, prefTotal) {\n if (userPrefs.length < 1) {\n const [positionIndexToCheck, newPrefTotal] = getNextDefaultPosition(prefTotal);\n return [positionIndexToCheck, userPrefs, newPrefTotal];\n }\n return [userPrefs[0], userPrefs.slice(1), userPrefs[0] !== Positions.Responsive ? prefTotal : 0];\n}\n/* c8 ignore next */\nexport function getPointerPosition(workingPositionRelativeToAnchor) {\n switch (workingPositionRelativeToAnchor.toLowerCase()) {\n case 'top':\n return 'popup-bottom';\n case 'bottom':\n return 'popup-top';\n case 'left':\n return 'popup-right';\n case 'right':\n default:\n return 'popup-left';\n }\n}\nexport function getPointerAlignment(popupPosition, pointerAlign) {\n let myAligns;\n if (popupPosition === 'popup-bottom' || popupPosition === 'popup-top') {\n myAligns = { start: 'pointer-left', mid: 'pointer-center', end: 'pointer-right' };\n }\n else {\n myAligns = { start: 'pointer-top', mid: 'pointer-mid', end: 'pointer-bottom' };\n }\n return myAligns[pointerAlign];\n}\nexport function getBestPositionForPreferences(positions, preferences, anchorAlignPref) {\n let [arrayOfUserPrefs, currentPrefTotal] = preferences;\n let returnPref = null;\n while (returnPref === null) {\n const [positionToCheck, newArrayOfUserPrefs, newCurrentPrefTotal] = getNextPosition(arrayOfUserPrefs, currentPrefTotal);\n const positionWillWork = checkNextPosition(positionToCheck, positions, anchorAlignPref);\n switch (true) {\n case positionWillWork !== false:\n returnPref = Object.assign({}, positionWillWork, {\n pointer: { location: getPointerPosition(Positions[positionToCheck]) },\n });\n break;\n case positionWillWork === false && newCurrentPrefTotal === 0:\n // tested all positions; none of them work\n returnPref = false;\n break;\n case positionWillWork === false:\n // this position won't work but there are more positions to check!\n arrayOfUserPrefs = newArrayOfUserPrefs;\n currentPrefTotal = newCurrentPrefTotal;\n break;\n }\n }\n return returnPref;\n}\nexport function getPopupPosition(orientationPrefs, anchorRect, anchorAlign, pointer, pointerAlign, popup, mainAxisOffset, crossAxisOffset) {\n if (!anchorRect) {\n return false; // anchor does not exist; force responsive\n }\n // we have to use offsetHeight/Width here because the DOMRect shifts dimensions when the pointer is rotated\n // the caveat with using offsetHeight/Width is that the values are rounded to an integer\n // that does not seem to be a big risk, however, because these pointers are created by users.\n // if there is a rounding issue, it's likely because a rem sizing has something set to a fractional value\n // and any rounding error would likely be negligible in effect\n const pointerHeight = pointer ? pointer.offsetHeight : 0;\n const windowDims = getWindowDimensions();\n /* c8 ignore next 3 */\n if (windowDims.width <= parseInt(getCssPropertyValue('--cds-global-layout-width-xs-static'), 10)) {\n return false;\n }\n const positions = getPositions(anchorRect, pointerHeight, pointerAlign, popup.getBoundingClientRect(), windowDims, mainAxisOffset, crossAxisOffset);\n const myPosition = getBestPositionForPreferences(positions, getOrientationTuple(orientationPrefs), anchorAlign);\n if (myPosition === false) {\n return false;\n }\n const pointerLocationRelativeToAnchor = myPosition.pointer.location;\n const pointerLocation = pointerLocationRelativeToAnchor + ' ' + getPointerAlignment(pointerLocationRelativeToAnchor, pointerAlign);\n const pointerObj = { pointer: { size: pointerHeight, location: pointerLocation } };\n return Object.assign({}, myPosition, pointerObj);\n}\nexport function getPositions(anchorRect, pointerHeight, pointerAlign, popupRect, windowDims, mainAxisOffset, crossAxisOffset) {\n return {\n top: getPositionConfig('top', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n right: getPositionConfig('right', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n bottom: getPositionConfig('bottom', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n left: getPositionConfig('left', pointerAlign, anchorRect, popupRect, pointerHeight, windowDims, mainAxisOffset, crossAxisOffset),\n };\n}\n// TODO: convert arguments list to a config object?\nexport function getPositionConfig(cardinalPos, pointerAlign, anchor, popup, pointerHeight, win, mainAxisOffset, crossAxisOffset) {\n let mainAxisPosition;\n switch (cardinalPos) {\n case 'top':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.top, pointerHeight, popup.height, mainAxisOffset, 0);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.left, anchor.width, popup.width, crossAxisOffset, 0, win.width, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: mainAxisPosition,\n left: crossAxisPos,\n },\n };\n }\n });\n }\n case 'bottom':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.bottom, 0, // pointer doesn't need to be in this calc\n popup.height, mainAxisOffset, win.height);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.left, anchor.width, popup.width, crossAxisOffset, 0, win.width, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: mainAxisPosition,\n left: crossAxisPos,\n },\n };\n }\n });\n }\n case 'left':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.left, pointerHeight, popup.width, mainAxisOffset, 0);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.top, anchor.height, popup.height, crossAxisOffset, 0, win.height, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: crossAxisPos,\n left: mainAxisPosition,\n },\n };\n }\n });\n }\n case 'right':\n mainAxisPosition = getMainAxisPositionOrViolation(anchor.right, 0, // pointer doesn't need to be in this calc\n popup.width, mainAxisOffset, win.width);\n if (mainAxisPosition === false) {\n return false;\n }\n else {\n return getPositionOrViolationFromCrossAxis(anchor.top, anchor.height, popup.height, crossAxisOffset, 0, win.height, pointerAlign).map((crossAxisPos) => {\n if (crossAxisPos === false) {\n return false;\n }\n else {\n return {\n popup: {\n top: crossAxisPos,\n left: mainAxisPosition,\n },\n };\n }\n });\n }\n }\n}\nexport function getMainAxisPosition(startPos, pointer, popup, offset, limit) {\n return limit === 0\n ? sumAndSubtract(startPos, [], [pointer, popup, offset])\n : sumAndSubtract(startPos, [pointer, popup, offset], []);\n}\nexport function testMainAxisPosition(pos, startPos, limit) {\n if (limit === 0) {\n // -- for positions that *pull* (a.k.a top and left) --\n // if limit is zero, see if position is above zero and return it\n return pos > limit && pos;\n }\n else {\n // -- for positions that *push* (a.k.a. bottom and right)\n // if limit is not zero, position is the start + popup dimension;\n // return start position if position is less than the limit\n return pos < limit && startPos; // needs offsets!\n }\n}\nexport function getCrossAxisPosition(position, startPos, anchorAlign, anchorWidth, offset, popup = 0) {\n switch (position) {\n case 'mid':\n return startPos + anchorAlign * anchorWidth - 0.5 * popup + offset;\n case 'end':\n return startPos + anchorAlign * anchorWidth - offset;\n case 'start':\n return startPos + anchorAlign * anchorWidth + offset;\n }\n}\nexport function testCrossAxisPosition(axisAlign, position, popup, limit) {\n const [limitMin, limitMax] = limit;\n switch (axisAlign) {\n case 'mid':\n return position > limitMin && position + popup < limitMax ? position : false;\n case 'end': {\n const pulledPosition = position - popup;\n return pulledPosition > limitMin ? pulledPosition : false;\n }\n case 'start':\n return position + popup < limitMax ? position : false;\n }\n}\nexport function getPositionOrViolationFromCrossAxis(startPos, anchorLength, popupLength, offset, limitMinimum, limitMaximum, pointerPosition) {\n const anchorAlignments = [0, 0.5, 1];\n return anchorAlignments.map((anchorAlignment) => {\n return testCrossAxisPosition(pointerPosition, getCrossAxisPosition(pointerPosition, startPos, anchorAlignment, anchorLength, offset, popupLength), popupLength, [limitMinimum, limitMaximum]);\n });\n}\nexport function getMainAxisPositionOrViolation(startPos, pointerLength, popupLength, offset, limit = 0) {\n return testMainAxisPosition(getMainAxisPosition(startPos, pointerLength, popupLength, offset, limit), // returned by *pull* positions\n startPos + offset, // only returned with *push* positions\n limit);\n}\n"],"names":["getPopupOffsetOrDefaultOffsets","existingMainAxisOffset","existingCrossAxisOffset","pointer","pointerAlign","anchorAlign","returnObj","mainAxisOffset","crossAxisOffset","isDefaultPointerType","type","isNil","setPopupPosition","component","removeAttribute","offsets","myPosition","getPopupPosition","orientation","anchorRect","contentWrapper","setAttributes","updateElementStyles","hostWrapper","pointerWrapper","positionedPointer","location","posTop","popup","top","posLeft","left","getOrientationTuple","orientationPrefs","preferredPositions","deniedPositions","userPref","transformSpacedStringToArray","indexOf","getEnumValueFromStringKey","Positions","removePrefix","capitalizeFirstLetter","push","positionVal","sumAndSubtract","All","getCrossAxisOrderOfPreference","preference","checkNextPosition","whichPosition","positions","anchorAlignPref","positionToCheck","toLowerCase","startOfAnchor","middleOfAnchor","endOfAnchor","i","Object","assign","getNextDefaultPosition","currentPositionTotal","defaults","Bottom","Right","Left","Top","Responsive","position","getNextPosition","userPrefs","prefTotal","length","positionIndexToCheck","newPrefTotal","slice","getPointerPosition","workingPositionRelativeToAnchor","getPointerAlignment","popupPosition","myAligns","start","mid","end","getBestPositionForPreferences","preferences","arrayOfUserPrefs","currentPrefTotal","returnPref","newArrayOfUserPrefs","newCurrentPrefTotal","positionWillWork","pointerHeight","offsetHeight","windowDims","getWindowDimensions","width","parseInt","getCssPropertyValue","getPositions","getBoundingClientRect","pointerLocationRelativeToAnchor","pointerLocation","size","popupRect","getPositionConfig","right","bottom","cardinalPos","anchor","win","mainAxisPosition","getMainAxisPositionOrViolation","height","getPositionOrViolationFromCrossAxis","map","crossAxisPos","getMainAxisPosition","startPos","offset","limit","testMainAxisPosition","pos","getCrossAxisPosition","anchorWidth","testCrossAxisPosition","axisAlign","limitMin","limitMax","pulledPosition","anchorLength","popupLength","limitMinimum","limitMaximum","pointerPosition","anchorAlignment","pointerLength"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-trap-tracker.service.js","sources":["../../../../src/internal/services/focus-trap-tracker.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"focus-trap-tracker.service.js","sources":["../../../../src/internal/services/focus-trap-tracker.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { arrayTail } from '../utils/array.js';\nimport { setAttributes } from '../utils/dom.js';\nimport { GlobalStateService } from './global.service.js';\nexport const CDS_FOCUS_TRAP_DOCUMENT_ATTR = 'cds-focus-trap';\n/**\n * FocusTrapTrackerService is a static class that keeps track of the active element with focus trap,\n * in case there are multiple in a given page.\n */\nexport class FocusTrapTrackerService {\n static getTrapElements() {\n return [...GlobalStateService.state.focusTrapItems];\n }\n static setTrapElements(elements) {\n const htmlEl = document.querySelector('html');\n if (htmlEl !== null) {\n setAttributes(htmlEl, [CDS_FOCUS_TRAP_DOCUMENT_ATTR, elements.length ? '' : false]);\n }\n GlobalStateService.state.focusTrapItems = [...elements];\n }\n static removeTrapElement(element) {\n const currentTrapEls = this.getTrapElements();\n if (currentTrapEls.length < 1) {\n return;\n }\n this.setTrapElements([...this.getTrapElements().filter(e => e.focusTrapId !== element.focusTrapId)]);\n }\n static setCurrent(element) {\n if (!element?.focusTrapId) {\n return;\n }\n this.setTrapElements([...this.getTrapElements().filter(e => e.focusTrapId !== element.focusTrapId), element]);\n }\n static activatePreviousCurrent() {\n this.setTrapElements([...this.getTrapElements()].slice(0, -1));\n }\n static getCurrent() {\n return arrayTail(this.getTrapElements()) || null;\n }\n}\n"],"names":["CDS_FOCUS_TRAP_DOCUMENT_ATTR","FocusTrapTrackerService","static","GlobalStateService","state","focusTrapItems","elements","htmlEl","document","querySelector","setAttributes","length","element","this","getTrapElements","setTrapElements","filter","e","focusTrapId","slice","arrayTail"],"mappings":"uJAQY,MAACA,EAA+B,iBAKrC,MAAMC,EACTC,yBACI,MAAO,IAAIC,EAAmBC,MAAMC,gBAExCH,uBAAuBI,GACnB,MAAMC,EAASC,SAASC,cAAc,QACvB,OAAXF,GACAG,EAAcH,EAAQ,CAZU,mBAYqBD,EAASK,QAAS,KAE3ER,EAAmBC,MAAMC,eAAiB,IAAIC,GAElDJ,yBAAyBU,GACEC,KAAKC,kBACTH,OAAS,GAG5BE,KAAKE,gBAAgB,IAAIF,KAAKC,kBAAkBE,QAAOC,GAAKA,EAAEC,cAAgBN,EAAQM,gBAE1FhB,kBAAkBU,GACTA,GAASM,aAGdL,KAAKE,gBAAgB,IAAIF,KAAKC,kBAAkBE,QAAOC,GAAKA,EAAEC,cAAgBN,EAAQM,cAAcN,IAExGV,iCACIW,KAAKE,gBAAgB,IAAIF,KAAKC,mBAAmBK,MAAM,GAAI,IAE/DjB,oBACI,OAAOkB,EAAUP,KAAKC,oBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.service.js","sources":["../../../../src/internal/services/global.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"global.service.js","sources":["../../../../src/internal/services/global.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { EventSubject } from '../utils/event-subject.js';\nimport { setupCDSGlobal } from '../utils/global.js';\nimport { LogService } from './log.service.js';\nconst stateUpdates = new EventSubject();\nstateUpdates.listener = document.addEventListener('CDS_STATE_UPDATE', (e) => stateUpdates.emit(e.detail));\nexport class GlobalStateService {\n static get state() {\n setupCDSGlobal();\n return window.CDS._state;\n }\n static getValue(key) {\n return GlobalStateService.state[key];\n }\n static setValue(key, val) {\n GlobalStateService.state[key] = val;\n }\n static log() {\n LogService.log(JSON.stringify(GlobalStateService.state, null, 2));\n }\n}\nGlobalStateService.stateUpdates = stateUpdates.toEventObservable();\n"],"names":["stateUpdates","EventSubject","listener","document","addEventListener","e","emit","detail","GlobalStateService","state","setupCDSGlobal","window","CDS","_state","static","key","val","LogService","log","JSON","stringify","toEventObservable"],"mappings":"2JAQA,MAAMA,EAAe,IAAIC,EACzBD,EAAaE,SAAWC,SAASC,iBAAiB,oBAAqBC,GAAML,EAAaM,KAAKD,EAAEE,UAC1F,MAAMC,EACEC,mBAEP,OADAC,IACOC,OAAOC,IAAIC,OAEtBC,gBAAgBC,GACZ,OAAOP,EAAmBC,MAAMM,GAEpCD,gBAAgBC,EAAKC,GACjBR,EAAmBC,MAAMM,GAAOC,EAEpCF,aACIG,EAAWC,IAAIC,KAAKC,UAAUZ,EAAmBC,MAAO,KAAM,KAGtED,EAAmBR,aAAeA,EAAaqB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.service.js","sources":["../../../../src/internal/services/i18n.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"i18n.service.js","sources":["../../../../src/internal/services/i18n.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { GlobalStateService } from './global.service.js';\nimport { interpolateNaively } from '../utils/string.js';\nimport { mergeObjects, objectNaiveDeepEquals } from '../utils/identity.js';\nexport const componentStringsDefault = {\n actions: {\n sort: 'Sort',\n expand: 'Expand',\n close: 'Close',\n resize: 'Resize',\n filter: 'Filter',\n },\n alert: {\n closeButtonAriaLabel: 'Close',\n loading: 'Loading',\n info: 'Info',\n success: 'Success',\n warning: 'Warning',\n danger: 'Error',\n },\n dropdown: {\n open: 'Open',\n },\n file: {\n browse: 'browse',\n files: 'files',\n removeFile: 'remove file',\n },\n modal: {\n closeButtonAriaLabel: 'Close modal',\n contentStart: 'Beginning of modal content',\n contentBox: 'Scrollable modal body',\n contentEnd: 'End of modal content',\n },\n navigation: {\n navigationElement: 'navigation',\n navigationLabel: 'navigation menu',\n navigationAbridgedText: 'View abridged menu',\n navigationUnabridgedText: 'View unabridged menu',\n },\n overlay: {\n closeButtonAriaLabel: 'Close dialog',\n contentStart: 'Beginning of dialog content',\n contentEnd: 'End of dialog content',\n },\n popup: {\n closeButtonAriaLabel: 'Close popup',\n contentStart: 'Beginning of popup content',\n contentEnd: 'End of popup content',\n },\n password: {\n showButtonAriaLabel: 'Show password',\n hideButtonAriaLabel: 'Hide password',\n },\n progress: {\n loading: 'Loading',\n looping: 'Loading',\n },\n treeview: {\n loading: 'Loading',\n },\n grid: {\n resizeColumn: 'Resize Column',\n closeDetails: 'Close Details',\n noData: 'No Results Found',\n rowDetailStart: 'Start of row details',\n rowDetailEnd: 'End of row details',\n footerEnd: 'End of grid rows',\n action: 'Action',\n dropTarget: 'Drop Item',\n pagination: {\n label: 'grid pagination',\n firstPage: 'go to first page',\n previousPage: 'go to previous page',\n nextPage: 'go to next page',\n lastPage: 'go to last page',\n pageSize: 'rows per page',\n page: 'page',\n },\n },\n};\n/**\n * I18nService is a static class that gives users the ability to use and override\n * strings within the components for internationalization / globalization. One\n * can override default values globally for their application or override per\n * component instance as needed.\n *\n * Use the localize method to override values globally. For per component instance,\n * use the i18n decorator.\n */\nexport class I18nService {\n static get keys() {\n // intialize registry if not yet set\n if (Object.keys(GlobalStateService.state.i18nRegistry).length === 0) {\n GlobalStateService.state.i18nRegistry = mergeObjects(componentStringsDefault, GlobalStateService.state.i18nRegistry);\n }\n return mergeObjects(componentStringsDefault, GlobalStateService.state.i18nRegistry);\n }\n static findKey(keyValueObj) {\n const keyVals = I18nService.keys;\n return Object.keys(keyVals).find(key => objectNaiveDeepEquals(keyVals[key], keyValueObj));\n }\n static get(key) {\n if (!key) {\n return {};\n }\n return I18nService.keys[key] || {};\n }\n /** @private */\n static reset() {\n // largely useful for unit testing\n GlobalStateService.state.i18nRegistry = mergeObjects({}, componentStringsDefault);\n }\n static hydrate(i18nObject, componentInstance) {\n return JSON.parse(interpolateNaively(JSON.stringify(i18nObject), componentInstance));\n }\n static localize(overrides) {\n GlobalStateService.state.i18nRegistry = mergeObjects(componentStringsDefault, GlobalStateService.state.i18nRegistry, overrides);\n }\n}\n"],"names":["componentStringsDefault","actions","sort","expand","close","resize","filter","alert","closeButtonAriaLabel","loading","info","success","warning","danger","dropdown","open","file","browse","files","removeFile","modal","contentStart","contentBox","contentEnd","navigation","navigationElement","navigationLabel","navigationAbridgedText","navigationUnabridgedText","overlay","popup","password","showButtonAriaLabel","hideButtonAriaLabel","progress","looping","treeview","grid","resizeColumn","closeDetails","noData","rowDetailStart","rowDetailEnd","footerEnd","action","dropTarget","pagination","label","firstPage","previousPage","nextPage","lastPage","pageSize","page","I18nService","keys","Object","GlobalStateService","state","i18nRegistry","length","mergeObjects","static","keyValueObj","keyVals","find","key","objectNaiveDeepEquals","i18nObject","componentInstance","JSON","parse","interpolateNaively","stringify","overrides"],"mappings":"gMAQY,MAACA,EAA0B,CACnCC,QAAS,CACLC,KAAM,OACNC,OAAQ,SACRC,MAAO,QACPC,OAAQ,SACRC,OAAQ,UAEZC,MAAO,CACHC,qBAAsB,QACtBC,QAAS,UACTC,KAAM,OACNC,QAAS,UACTC,QAAS,UACTC,OAAQ,SAEZC,SAAU,CACNC,KAAM,QAEVC,KAAM,CACFC,OAAQ,SACRC,MAAO,QACPC,WAAY,eAEhBC,MAAO,CACHZ,qBAAsB,cACtBa,aAAc,6BACdC,WAAY,wBACZC,WAAY,wBAEhBC,WAAY,CACRC,kBAAmB,aACnBC,gBAAiB,kBACjBC,uBAAwB,qBACxBC,yBAA0B,wBAE9BC,QAAS,CACLrB,qBAAsB,eACtBa,aAAc,8BACdE,WAAY,yBAEhBO,MAAO,CACHtB,qBAAsB,cACtBa,aAAc,6BACdE,WAAY,wBAEhBQ,SAAU,CACNC,oBAAqB,gBACrBC,oBAAqB,iBAEzBC,SAAU,CACNzB,QAAS,UACT0B,QAAS,WAEbC,SAAU,CACN3B,QAAS,WAEb4B,KAAM,CACFC,aAAc,gBACdC,aAAc,gBACdC,OAAQ,mBACRC,eAAgB,uBAChBC,aAAc,qBACdC,UAAW,mBACXC,OAAQ,SACRC,WAAY,YACZC,WAAY,CACRC,MAAO,kBACPC,UAAW,mBACXC,aAAc,sBACdC,SAAU,kBACVC,SAAU,kBACVC,SAAU,gBACVC,KAAM,UAaX,MAAMC,EACEC,kBAKP,OAHkE,IAA9DC,OAAOD,KAAKE,EAAmBC,MAAMC,cAAcC,SACnDH,EAAmBC,MAAMC,aAAeE,EAAa7D,EAAyByD,EAAmBC,MAAMC,eAEpGE,EAAa7D,EAAyByD,EAAmBC,MAAMC,cAE1EG,eAAeC,GACX,MAAMC,EAAUV,EAAYC,KAC5B,OAAOC,OAAOD,KAAKS,GAASC,MAAKC,GAAOC,EAAsBH,EAAQE,GAAMH,KAEhFD,WAAWI,GACP,OAAKA,GAGEZ,EAAYC,KAAKW,IAFb,GAKfJ,eAEIL,EAAmBC,MAAMC,aAAeE,EAAa,GAAI7D,GAE7D8D,eAAeM,EAAYC,GACvB,OAAOC,KAAKC,MAAMC,EAAmBF,KAAKG,UAAUL,GAAaC,IAErEP,gBAAgBY,GACZjB,EAAmBC,MAAMC,aAAeE,EAAa7D,EAAyByD,EAAmBC,MAAMC,aAAce"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycodes.service.js","sources":["../../../../src/internal/services/keycodes.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"keycodes.service.js","sources":["../../../../src/internal/services/keycodes.service.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { deepClone } from '../utils/identity.js';\nconst keyCodeRegistry = new Map([\n ['arrow-left', 'ArrowLeft'],\n ['arrow-right', 'ArrowRight'],\n ['arrow-up', 'ArrowUp'],\n ['arrow-down', 'ArrowDown'],\n ['tab', 'Tab'],\n ['enter', 'Enter'],\n ['escape', 'Escape'],\n ['space', ' '],\n ['home', 'Home'],\n ['end', 'End'],\n]);\n/**\n * KeyCodes is a static class that gives users the ability to lookup and even store\n * keycodes for their applications.\n *\n * @privateRemarks\n *\n * The key codes dictionary/hashmap is private to this module. There is no way to access it directly\n * outside of the module.\n *\n */\nexport class KeyCodeService {\n /**\n * keycodes() returns a clone of the key codes dictionary/hashmap, not the actual registry.\n * Performing actions on the return value of the keycodes getter will not be reflected in the\n * actual keycodes dictionary!\n */\n static get keycodes() {\n return deepClone(keyCodeRegistry);\n }\n static add(keycode, code) {\n keyCodeRegistry.set(keycode, code);\n }\n static has(keycode) {\n return keyCodeRegistry.has(keycode);\n }\n static getCode(keycode, keyCodeRegistry = this.keycodes) {\n return getKeycodeFromRegistry(keycode, keyCodeRegistry);\n }\n}\nexport function getKeycodeFromRegistry(codeToLookup, registry) {\n return registry.get(codeToLookup) || '';\n}\n"],"names":["keyCodeRegistry","Map","KeyCodeService","keycodes","deepClone","static","keycode","code","set","has","this","getKeycodeFromRegistry","codeToLookup","registry","get"],"mappings":"iDAMA,MAAMA,EAAkB,IAAIC,IAAI,CAC5B,CAAC,aAAc,aACf,CAAC,cAAe,cAChB,CAAC,WAAY,WACb,CAAC,aAAc,aACf,CAAC,MAAO,OACR,CAAC,QAAS,SACV,CAAC,SAAU,UACX,CAAC,QAAS,KACV,CAAC,OAAQ,QACT,CAAC,MAAO,SAYL,MAAMC,EAMEC,sBACP,OAAOC,EAAUJ,GAErBK,WAAWC,EAASC,GAChBP,EAAgBQ,IAAIF,EAASC,GAEjCF,WAAWC,GACP,OAAON,EAAgBS,IAAIH,GAE/BD,eAAeC,EAASN,EAAkBU,KAAKP,UAC3C,OAAOQ,EAAuBL,EAASN,IAGxC,SAASW,EAAuBC,EAAcC,GACjD,OAAOA,EAASC,IAAIF,IAAiB"}
|