@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":"draggable-list.controller.js","sources":["../../../../src/internal/controllers/draggable-list.controller.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 { querySelectorRoots } from '../utils/dom.js';\nimport { onChildListMutation, onFirstInteraction } from '../utils/events.js';\nimport { createId } from '../utils/identity.js';\nimport { KeyNavigationListController } from './key-navigation-list.controller.js';\nlet dragSrcEl = null;\n/**\n * Provides support for HTML5 native drag and drop to a component\n */\nexport function draggableList(config) {\n return (target) => target.addInitializer((instance) => new DraggableListController(instance, config));\n}\nexport class DraggableListController {\n constructor(host, config) {\n this.host = host;\n this.id = `__${createId()}`;\n this.host.addController(this);\n this.config = {\n layout: 'both',\n item: '',\n dropZone: '',\n manageFocus: true,\n manageTabindex: false,\n ...config,\n };\n }\n get items() {\n return querySelectorRoots(this.host, `${this.config.item}[draggable=\"true\"]`);\n }\n get dropZones() {\n return querySelectorRoots(this.host, `${this.config.dropZone}[draggable=\"false\"]`);\n }\n async hostConnected() {\n await this.host.updateComplete;\n onFirstInteraction(this.host).then(() => {\n this.addDragEventListeners(this.items);\n this.initializeKeyListController();\n this.host.addEventListener('click', async (e) => this.clickItem(e));\n this.host.addEventListener('cdsKeyChange', (e) => this.focusItem(e));\n this.host.shadowRoot?.addEventListener('click', async (e) => this.clickItem(e));\n this.host.shadowRoot?.addEventListener('cdsKeyChange', (e) => this.focusItem(e));\n this.observer = onChildListMutation(this.host, mutation => {\n if (mutation) {\n const items = Array.from(mutation.addedNodes).filter(i => i.draggable);\n if (items.length) {\n this.addDragEventListeners(items);\n }\n }\n });\n });\n }\n hostDisconnected() {\n this.observer?.disconnect();\n }\n initializeKeyListController() {\n Object.defineProperty(this.host, this.id, { get: () => this.items.map(i => i.querySelector('[cds-draggable]')) });\n new KeyNavigationListController(this.host, {\n layout: this.config.layout,\n keyListItems: this.id,\n manageFocus: this.config.manageFocus,\n manageTabindex: this.config.manageTabindex,\n });\n }\n clickItem(e) {\n const handle = Array.from(e.composedPath()).find((e) => e.getAttribute && e.getAttribute('cds-draggable') === 'handle');\n const from = e.composedPath()[0].closest('[draggable]');\n if (handle && from) {\n if (handle.ariaPressed === 'true') {\n from.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.currentTarget, from, null, 'grabbed', 'touch');\n }\n else if (handle.ariaPressed === 'false') {\n from.removeAttribute('cds-draggable');\n dispatchDraggableChange(e.currentTarget, from, null, 'dropped', 'touch');\n }\n }\n }\n focusItem(e) {\n if (e.detail.keyListItems === this.id &&\n e.detail.previousItem?.closest('[draggable]').getAttribute('cds-draggable') === 'active') {\n const from = e.detail.previousItem?.closest('[draggable]');\n const target = e.detail.activeItem.closest('[draggable]');\n if (e.detail.activeItem.getAttribute('cds-draggable') === 'handle' && from !== target) {\n e.detail.previousItem.ariaPressed = 'false';\n e.detail.activeItem.ariaPressed = 'true';\n e.detail.previousItem.pressed = false;\n e.detail.activeItem.pressed = true;\n from.removeAttribute('cds-draggable');\n target.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.detail.activeItem, from, target, 'reordered', 'key');\n }\n }\n }\n addDragEventListeners(items) {\n items.filter(i => !i.cdsDraggableItem).forEach(item => addHandlers(item));\n this.dropZones\n .filter(i => !i.cdsDraggableItem)\n .forEach(elem => {\n elem.addEventListener('dragover', handleDragOver, false);\n elem.addEventListener('dragleave', handleDragLeave, false);\n elem.addEventListener('drop', handleDrop, false);\n elem.cdsDraggableItem = 'dropzone';\n });\n }\n}\nasync function dispatchDraggableChange(host, from, target, type, interaction) {\n if (host?.updateComplete) {\n await host.updateComplete;\n }\n host.dispatchEvent(new CustomEvent('cdsDraggableChange', { detail: { from, target, type, interaction }, bubbles: true }));\n}\nfunction handleDragStart(e) {\n dragSrcEl = e.currentTarget;\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setDragImage(e.currentTarget, 0, 0);\n e.currentTarget.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.currentTarget, e.currentTarget, null, 'grabbed', 'touch');\n}\nfunction handleDragOver(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.dataTransfer.dropEffect = 'move';\n if (dragSrcEl !== e.currentTarget) {\n e.currentTarget.setAttribute('cds-draggable', 'target');\n }\n return false;\n}\nfunction handleDrop(e) {\n const from = dragSrcEl;\n const target = e.currentTarget;\n from?.removeAttribute('cds-draggable');\n target?.removeAttribute('cds-draggable');\n dispatchDraggableChange(e.currentTarget, from, target, 'reordered', 'touch');\n return false;\n}\nfunction handleDragLeave(e) {\n if (e.currentTarget.getAttribute('cds-draggable') === 'target') {\n e.currentTarget.removeAttribute('cds-draggable');\n }\n}\nfunction addHandlers(elem) {\n elem.cdsDraggableItem = 'item';\n elem.addEventListener('dragstart', handleDragStart, false);\n elem.addEventListener('dragover', handleDragOver, false);\n elem.addEventListener('drop', handleDrop, false);\n elem.addEventListener('dragleave', handleDragLeave, false);\n elem.addEventListener('dragend', (e) => e.currentTarget.removeAttribute('cds-draggable'), false);\n}\n"],"names":["dragSrcEl","draggableList","config","target","addInitializer","instance","DraggableListController","constructor","host","this","id","createId","addController","layout","item","dropZone","manageFocus","manageTabindex","items","querySelectorRoots","dropZones","async","updateComplete","onFirstInteraction","then","addDragEventListeners","initializeKeyListController","addEventListener","e","clickItem","focusItem","shadowRoot","observer","onChildListMutation","mutation","Array","from","addedNodes","filter","i","draggable","length","hostDisconnected","disconnect","Object","defineProperty","get","map","querySelector","KeyNavigationListController","keyListItems","handle","composedPath","find","getAttribute","closest","ariaPressed","setAttribute","dispatchDraggableChange","currentTarget","removeAttribute","detail","previousItem","activeItem","pressed","cdsDraggableItem","forEach","addHandlers","elem","handleDragStart","handleDragOver","handleDrop","handleDragLeave","type","interaction","dispatchEvent","CustomEvent","bubbles","dataTransfer","effectAllowed","setDragImage","preventDefault","dropEffect"],"mappings":"wQASA,IAAIA,EAAY,KAIT,SAASC,EAAcC,GAC1B,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAAwBD,EAAUH,KAE1F,MAAMI,EACTC,YAAYC,EAAMN,GACdO,KAAKD,KAAOA,EACZC,KAAKC,GAAK,KAAKC,IACfF,KAAKD,KAAKI,cAAcH,MACxBA,KAAKP,OAAS,CACVW,OAAQ,OACRC,KAAM,GACNC,SAAU,GACVC,aAAa,EACbC,gBAAgB,KACbf,GAGPgB,YACA,OAAOC,EAAmBV,KAAKD,KAASC,KAAKP,OAAOY,KAAf,sBAErCM,gBACA,OAAOD,EAAmBV,KAAKD,KAASC,KAAKP,OAAOa,SAAf,uBAEzCM,4BACUZ,KAAKD,KAAKc,eAChBC,EAAmBd,KAAKD,MAAMgB,MAAK,KAC/Bf,KAAKgB,sBAAsBhB,KAAKS,OAChCT,KAAKiB,8BACLjB,KAAKD,KAAKmB,iBAAiB,SAASN,MAAOO,GAAMnB,KAAKoB,UAAUD,KAChEnB,KAAKD,KAAKmB,iBAAiB,gBAAiBC,GAAMnB,KAAKqB,UAAUF,KACjEnB,KAAKD,KAAKuB,YAAYJ,iBAAiB,SAASN,MAAOO,GAAMnB,KAAKoB,UAAUD,KAC5EnB,KAAKD,KAAKuB,YAAYJ,iBAAiB,gBAAiBC,GAAMnB,KAAKqB,UAAUF,KAC7EnB,KAAKuB,SAAWC,EAAoBxB,KAAKD,MAAM0B,IAC3C,GAAIA,EAAU,CACV,MAAMhB,EAAQiB,MAAMC,KAAKF,EAASG,YAAYC,QAAOC,GAAKA,EAAEC,YACxDtB,EAAMuB,QACNhC,KAAKgB,sBAAsBP,UAM/CwB,mBACIjC,KAAKuB,UAAUW,aAEnBjB,8BACIkB,OAAOC,eAAepC,KAAKD,KAAMC,KAAKC,GAAI,CAAEoC,IAAK,IAAMrC,KAAKS,MAAM6B,KAAIR,GAAKA,EAAES,cAAc,uBAC3F,IAAIC,EAA4BxC,KAAKD,KAAM,CACvCK,OAAQJ,KAAKP,OAAOW,OACpBqC,aAAczC,KAAKC,GACnBM,YAAaP,KAAKP,OAAOc,YACzBC,eAAgBR,KAAKP,OAAOe,iBAGpCY,UAAUD,GACN,MAAMuB,EAAShB,MAAMC,KAAKR,EAAEwB,gBAAgBC,MAAMzB,GAAMA,EAAE0B,cAAoD,WAApC1B,EAAE0B,aAAa,mBACnFlB,EAAOR,EAAEwB,eAAe,GAAGG,QAAQ,eACrCJ,GAAUf,IACiB,SAAvBe,EAAOK,aACPpB,EAAKqB,aAAa,gBAAiB,UACnCC,EAAwB9B,EAAE+B,cAAevB,EAAM,KAAM,UAAW,UAEpC,UAAvBe,EAAOK,cACZpB,EAAKwB,gBAAgB,iBACrBF,EAAwB9B,EAAE+B,cAAevB,EAAM,KAAM,UAAW,WAI5EN,UAAUF,GACN,GAAIA,EAAEiC,OAAOX,eAAiBzC,KAAKC,IACiD,WAAhFkB,EAAEiC,OAAOC,cAAcP,QAAQ,eAAeD,aAAa,iBAA+B,CAC1F,MAAMlB,EAAOR,EAAEiC,OAAOC,cAAcP,QAAQ,eACtCpD,EAASyB,EAAEiC,OAAOE,WAAWR,QAAQ,eACe,WAAtD3B,EAAEiC,OAAOE,WAAWT,aAAa,kBAAiClB,IAASjC,IAC3EyB,EAAEiC,OAAOC,aAAaN,YAAc,QACpC5B,EAAEiC,OAAOE,WAAWP,YAAc,OAClC5B,EAAEiC,OAAOC,aAAaE,SAAU,EAChCpC,EAAEiC,OAAOE,WAAWC,SAAU,EAC9B5B,EAAKwB,gBAAgB,iBACrBzD,EAAOsD,aAAa,gBAAiB,UACrCC,EAAwB9B,EAAEiC,OAAOE,WAAY3B,EAAMjC,EAAQ,YAAa,SAIpFsB,sBAAsBP,GAClBA,EAAMoB,QAAOC,IAAMA,EAAE0B,mBAAkBC,SAAQpD,IAAQqD,OA+C1CC,EA/CsDtD,GAgDlEmD,iBAAmB,OACxBG,EAAKzC,iBAAiB,YAAa0C,GAAiB,GACpDD,EAAKzC,iBAAiB,WAAY2C,GAAgB,GAClDF,EAAKzC,iBAAiB,OAAQ4C,GAAY,GAC1CH,EAAKzC,iBAAiB,YAAa6C,GAAiB,QACpDJ,EAAKzC,iBAAiB,WAAYC,GAAMA,EAAE+B,cAAcC,gBAAgB,mBAAkB,GAN9F,IAAqBQ,KA9Cb3D,KAAKW,UACAkB,QAAOC,IAAMA,EAAE0B,mBACfC,SAAQE,IACTA,EAAKzC,iBAAiB,WAAY2C,GAAgB,GAClDF,EAAKzC,iBAAiB,YAAa6C,GAAiB,GACpDJ,EAAKzC,iBAAiB,OAAQ4C,GAAY,GAC1CH,EAAKH,iBAAmB,eAIpC5C,eAAeqC,EAAwBlD,EAAM4B,EAAMjC,EAAQsE,EAAMC,GACzDlE,GAAMc,sBACAd,EAAKc,eAEfd,EAAKmE,cAAc,IAAIC,YAAY,qBAAsB,CAAEf,OAAQ,CAAEzB,KAAAA,EAAMjC,OAAAA,EAAQsE,KAAAA,EAAMC,YAAAA,GAAeG,SAAS,KAErH,SAASR,EAAgBzC,GACrB5B,EAAY4B,EAAE+B,cACd/B,EAAEkD,aAAaC,cAAgB,OAC/BnD,EAAEkD,aAAaE,aAAapD,EAAE+B,cAAe,EAAG,GAChD/B,EAAE+B,cAAcF,aAAa,gBAAiB,UAC9CC,EAAwB9B,EAAE+B,cAAe/B,EAAE+B,cAAe,KAAM,UAAW,SAE/E,SAASW,EAAe1C,GAQpB,OAPIA,EAAEqD,gBACFrD,EAAEqD,iBAENrD,EAAEkD,aAAaI,WAAa,OACxBlF,IAAc4B,EAAE+B,eAChB/B,EAAE+B,cAAcF,aAAa,gBAAiB,WAE3C,EAEX,SAASc,EAAW3C,GAChB,MAAMQ,EAAOpC,EACPG,EAASyB,EAAE+B,cAIjB,OAHAvB,GAAMwB,gBAAgB,iBACtBzD,GAAQyD,gBAAgB,iBACxBF,EAAwB9B,EAAE+B,cAAevB,EAAMjC,EAAQ,YAAa,UAC7D,EAEX,SAASqE,EAAgB5C,GACiC,WAAlDA,EAAE+B,cAAcL,aAAa,kBAC7B1B,EAAE+B,cAAcC,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"draggable-list.controller.js","sources":["../../../../src/internal/controllers/draggable-list.controller.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 { querySelectorRoots } from '../utils/dom.js';\nimport { onChildListMutation, onFirstInteraction } from '../utils/events.js';\nimport { createId } from '../utils/identity.js';\nimport { KeyNavigationListController } from './key-navigation-list.controller.js';\nlet dragSrcEl = null;\n/**\n * Provides support for HTML5 native drag and drop to a component\n */\nexport function draggableList(config) {\n return (target) => target.addInitializer((instance) => new DraggableListController(instance, config));\n}\nexport class DraggableListController {\n constructor(host, config) {\n this.host = host;\n this.id = `__${createId()}`;\n this.host.addController(this);\n this.config = {\n layout: 'both',\n item: '',\n dropZone: '',\n manageFocus: true,\n manageTabindex: false,\n ...config,\n };\n }\n get items() {\n return querySelectorRoots(this.host, `${this.config.item}[draggable=\"true\"]`);\n }\n get dropZones() {\n return querySelectorRoots(this.host, `${this.config.dropZone}[draggable=\"false\"]`);\n }\n async hostConnected() {\n await this.host.updateComplete;\n onFirstInteraction(this.host).then(() => {\n this.addDragEventListeners(this.items);\n this.initializeKeyListController();\n this.host.addEventListener('click', async (e) => this.clickItem(e));\n this.host.addEventListener('cdsKeyChange', (e) => this.focusItem(e));\n this.host.shadowRoot?.addEventListener('click', async (e) => this.clickItem(e));\n this.host.shadowRoot?.addEventListener('cdsKeyChange', (e) => this.focusItem(e));\n this.observer = onChildListMutation(this.host, mutation => {\n if (mutation) {\n const items = Array.from(mutation.addedNodes).filter(i => i.draggable);\n if (items.length) {\n this.addDragEventListeners(items);\n }\n }\n });\n });\n }\n hostDisconnected() {\n this.observer?.disconnect();\n }\n initializeKeyListController() {\n Object.defineProperty(this.host, this.id, { get: () => this.items.map(i => i.querySelector('[cds-draggable]')) });\n new KeyNavigationListController(this.host, {\n layout: this.config.layout,\n keyListItems: this.id,\n manageFocus: this.config.manageFocus,\n manageTabindex: this.config.manageTabindex,\n });\n }\n clickItem(e) {\n const handle = Array.from(e.composedPath()).find((e) => e.getAttribute && e.getAttribute('cds-draggable') === 'handle');\n const from = e.composedPath()[0].closest('[draggable]');\n if (handle && from) {\n if (handle.ariaPressed === 'true') {\n from.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.currentTarget, from, null, 'grabbed', 'touch');\n }\n else if (handle.ariaPressed === 'false') {\n from.removeAttribute('cds-draggable');\n dispatchDraggableChange(e.currentTarget, from, null, 'dropped', 'touch');\n }\n }\n }\n focusItem(e) {\n if (e.detail.keyListItems === this.id &&\n e.detail.previousItem?.closest('[draggable]').getAttribute('cds-draggable') === 'active') {\n const from = e.detail.previousItem?.closest('[draggable]');\n const target = e.detail.activeItem.closest('[draggable]');\n if (e.detail.activeItem.getAttribute('cds-draggable') === 'handle' && from !== target) {\n e.detail.previousItem.ariaPressed = 'false';\n e.detail.activeItem.ariaPressed = 'true';\n e.detail.previousItem.pressed = false;\n e.detail.activeItem.pressed = true;\n from.removeAttribute('cds-draggable');\n target.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.detail.activeItem, from, target, 'reordered', 'key');\n }\n }\n }\n addDragEventListeners(items) {\n items.filter(i => !i.cdsDraggableItem).forEach(item => addHandlers(item));\n this.dropZones\n .filter(i => !i.cdsDraggableItem)\n .forEach(elem => {\n elem.addEventListener('dragover', handleDragOver, false);\n elem.addEventListener('dragleave', handleDragLeave, false);\n elem.addEventListener('drop', handleDrop, false);\n elem.cdsDraggableItem = 'dropzone';\n });\n }\n}\nasync function dispatchDraggableChange(host, from, target, type, interaction) {\n if (host?.updateComplete) {\n await host.updateComplete;\n }\n host.dispatchEvent(new CustomEvent('cdsDraggableChange', { detail: { from, target, type, interaction }, bubbles: true }));\n}\nfunction handleDragStart(e) {\n dragSrcEl = e.currentTarget;\n e.dataTransfer.effectAllowed = 'move';\n e.dataTransfer.setDragImage(e.currentTarget, 0, 0);\n e.currentTarget.setAttribute('cds-draggable', 'active');\n dispatchDraggableChange(e.currentTarget, e.currentTarget, null, 'grabbed', 'touch');\n}\nfunction handleDragOver(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n e.dataTransfer.dropEffect = 'move';\n if (dragSrcEl !== e.currentTarget) {\n e.currentTarget.setAttribute('cds-draggable', 'target');\n }\n return false;\n}\nfunction handleDrop(e) {\n const from = dragSrcEl;\n const target = e.currentTarget;\n from?.removeAttribute('cds-draggable');\n target?.removeAttribute('cds-draggable');\n dispatchDraggableChange(e.currentTarget, from, target, 'reordered', 'touch');\n return false;\n}\nfunction handleDragLeave(e) {\n if (e.currentTarget.getAttribute('cds-draggable') === 'target') {\n e.currentTarget.removeAttribute('cds-draggable');\n }\n}\nfunction addHandlers(elem) {\n elem.cdsDraggableItem = 'item';\n elem.addEventListener('dragstart', handleDragStart, false);\n elem.addEventListener('dragover', handleDragOver, false);\n elem.addEventListener('drop', handleDrop, false);\n elem.addEventListener('dragleave', handleDragLeave, false);\n elem.addEventListener('dragend', (e) => e.currentTarget.removeAttribute('cds-draggable'), false);\n}\n"],"names":["dragSrcEl","draggableList","config","target","addInitializer","instance","DraggableListController","constructor","host","this","id","createId","addController","layout","item","dropZone","manageFocus","manageTabindex","items","querySelectorRoots","dropZones","async","updateComplete","onFirstInteraction","then","addDragEventListeners","initializeKeyListController","addEventListener","e","clickItem","focusItem","shadowRoot","observer","onChildListMutation","mutation","Array","from","addedNodes","filter","i","draggable","length","hostDisconnected","disconnect","Object","defineProperty","get","map","querySelector","KeyNavigationListController","keyListItems","handle","composedPath","find","getAttribute","closest","ariaPressed","setAttribute","dispatchDraggableChange","currentTarget","removeAttribute","detail","previousItem","activeItem","pressed","cdsDraggableItem","forEach","addHandlers","elem","handleDragStart","handleDragOver","handleDrop","handleDragLeave","type","interaction","dispatchEvent","CustomEvent","bubbles","dataTransfer","effectAllowed","setDragImage","preventDefault","dropEffect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"first-focus.controller.js","sources":["../../../../src/internal/controllers/first-focus.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"first-focus.controller.js","sources":["../../../../src/internal/controllers/first-focus.controller.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 { focusable, focusElement, ignoreFocus } from '../utils/focus.js';\nimport { listenForAttributeChange } from '../utils/events.js';\nimport { getFlattenedDOMTree } from '../utils/traversal.js';\n/**\n * Provides a focus first behavior to any component via the cds-first-focus attribute\n */\nexport function firstFocus(config = { fallback: 'focusable' }) {\n return (target) => target.addInitializer((instance) => new FirstFocusController(instance, config));\n}\nexport class FirstFocusController {\n constructor(host, config = { fallback: 'focusable' }) {\n this.host = host;\n this.config = config;\n this.host.addController(this);\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.observer = listenForAttributeChange(this.host, 'hidden', () => this.cdsFocusFirst());\n this.cdsFocusFirst();\n }\n hostDisconnected() {\n this.observer?.disconnect();\n }\n cdsFocusFirst() {\n if (!ignoreFocus(this.host)) {\n const root = this.host.shadowRoot ? this.host.shadowRoot : this.host;\n const rootHost = root.querySelector('.private-host') ?? this.host;\n const elements = getFlattenedDOMTree(root).filter(i => !i.hasAttribute('cds-focus-boundary'));\n const firstFocus = elements.find(i => i.hasAttribute('cds-first-focus'));\n const focusableElement = this.config.fallback === 'focusable'\n ? elements.find(i => focusable(i) && !i.classList.contains('private-host'))\n : null;\n const host = this.config.fallback === 'none' ? null : rootHost;\n const focus = firstFocus ?? focusableElement ?? host;\n if (focus) {\n focusElement(focus);\n }\n }\n }\n}\n"],"names":["firstFocus","config","fallback","target","addInitializer","instance","FirstFocusController","constructor","host","this","addController","async","updateComplete","observer","listenForAttributeChange","cdsFocusFirst","hostDisconnected","disconnect","ignoreFocus","root","shadowRoot","rootHost","querySelector","elements","getFlattenedDOMTree","filter","i","hasAttribute","find","focusableElement","focusable","classList","contains","focus","focusElement"],"mappings":"2MAWO,SAASA,EAAWC,EAAS,CAAEC,SAAU,cAC5C,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAAqBD,EAAUJ,KAEvF,MAAMK,EACTC,YAAYC,EAAMP,EAAS,CAAEC,SAAU,cACnCO,KAAKD,KAAOA,EACZC,KAAKR,OAASA,EACdQ,KAAKD,KAAKE,cAAcD,MAE5BE,4BACUF,KAAKD,KAAKI,eAChBH,KAAKI,SAAWC,EAAyBL,KAAKD,KAAM,UAAU,IAAMC,KAAKM,kBACzEN,KAAKM,gBAETC,mBACIP,KAAKI,UAAUI,aAEnBF,gBACI,IAAKG,EAAYT,KAAKD,MAAO,CACzB,MAAMW,EAAOV,KAAKD,KAAKY,WAAaX,KAAKD,KAAKY,WAAaX,KAAKD,KAC1Da,EAAWF,EAAKG,cAAc,kBAAoBb,KAAKD,KACvDe,EAAWC,EAAoBL,GAAMM,QAAOC,IAAMA,EAAEC,aAAa,wBACjE3B,EAAauB,EAASK,MAAKF,GAAKA,EAAEC,aAAa,qBAC/CE,EAA4C,cAAzBpB,KAAKR,OAAOC,SAC/BqB,EAASK,MAAKF,GAAKI,EAAUJ,KAAOA,EAAEK,UAAUC,SAAS,kBACzD,KACAxB,EAAgC,SAAzBC,KAAKR,OAAOC,SAAsB,KAAOmB,EAChDY,EAAQjC,GAAc6B,GAAoBrB,EAC5CyB,GACAC,EAAaD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-range-selection.controller.js","sources":["../../../../src/internal/controllers/grid-range-selection.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"grid-range-selection.controller.js","sources":["../../../../src/internal/controllers/grid-range-selection.controller.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/**\n * Given a 2d array grid structure provide a highlight/range selection of given cells\n */\nexport function gridRangeSelection() {\n return (target) => target.addInitializer((instance) => new GridRangeSelectionController(instance));\n}\nexport class GridRangeSelectionController {\n constructor(host) {\n this.host = host;\n this.selectionActive = false;\n host.addController(this);\n }\n get enabled() {\n return this.host.rangeSelection !== false && !Array.from(this.host.rows).find(r => r.draggable);\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.setupKeyboardListeners();\n this.setupMouseEvents();\n }\n setupMouseEvents() {\n const root = this.host.grid.shadowRoot ? this.host.grid.shadowRoot : this.host.grid;\n root.addEventListener('mousedown', (e) => {\n // preserve right click for context menus & keyboard mouse control https://apple.stackexchange.com/questions/32715/how-do-i-open-the-context-menu-from-a-mac-keyboard\n if (this.enabled && e.buttons === 1 && !e.ctrlKey) {\n this.setFirstCell(e);\n }\n });\n root.addEventListener('mouseover', (e) => {\n if (this.enabled) {\n this.setActiveCell(e.composedPath().find((i) => Array.from(this.host.cells).includes(i)));\n }\n });\n root.addEventListener('mouseup', () => {\n if (this.enabled) {\n this.stopSelection();\n }\n });\n }\n setupKeyboardListeners() {\n this.host.addEventListener('cdsKeyChange', (e) => {\n if (this.enabled && e.detail.code) {\n this.setActiveCell(e.detail.activeItem);\n if (!e.detail.shiftKey) {\n this.stopSelection();\n this.resetAllActiveCells();\n this.host.dispatchEvent(new CustomEvent('rangeSelectionChange', { detail: [] }));\n }\n }\n });\n this.host.addEventListener('keydown', (e) => {\n if (this.enabled && e.code === 'ShiftLeft' && e.shiftKey && !this.selectionActive) {\n this.setFirstCell(e);\n }\n });\n }\n setFirstCell(e) {\n const firstCell = e.composedPath().find((i) => Array.from(this.host.cells).includes(i));\n if (firstCell) {\n this.firstCell = firstCell;\n this.selectionActive = true;\n this.resetAllActiveCells();\n }\n }\n setActiveCell(activeCell) {\n if (activeCell && this.selectionActive) {\n this.activeCell = activeCell;\n this.calculateSelection();\n }\n }\n stopSelection() {\n this.selectionActive = false;\n }\n resetAllActiveCells() {\n this.host.cells.forEach(cell => cell.removeAttribute('highlight'));\n }\n calculateSelection() {\n const x1 = parseInt(this.firstCell.ariaColIndex);\n const x2 = parseInt(this.activeCell.ariaColIndex);\n const y1 = parseInt(this.firstCell.parentElement?.ariaRowIndex);\n const y2 = parseInt(this.activeCell.parentElement?.ariaRowIndex);\n this.resetAllActiveCells();\n this.host.cells.forEach((cell) => {\n const colIndex = parseInt(cell.ariaColIndex);\n const rowIndex = parseInt(cell.parentElement?.ariaRowIndex);\n if ((x1 <= x2 && colIndex >= x1 && colIndex <= x2) || (x1 >= x2 && colIndex <= x1 && colIndex >= x2)) {\n if ((y1 <= y2 && rowIndex >= y1 && rowIndex <= y2) || (y1 >= y2 && rowIndex <= y1 && rowIndex >= y2)) {\n cell.setAttribute('highlight', '');\n }\n }\n });\n this.host.dispatchEvent(new CustomEvent('rangeSelectionChange', {\n detail: Array.from(this.host.cells).filter(c => c.hasAttribute('highlight')),\n }));\n }\n}\n"],"names":["gridRangeSelection","target","addInitializer","instance","GridRangeSelectionController","constructor","host","this","selectionActive","addController","enabled","rangeSelection","Array","from","rows","find","r","draggable","async","updateComplete","setupKeyboardListeners","setupMouseEvents","root","grid","shadowRoot","addEventListener","e","buttons","ctrlKey","setFirstCell","setActiveCell","composedPath","i","cells","includes","stopSelection","detail","code","activeItem","shiftKey","resetAllActiveCells","dispatchEvent","CustomEvent","firstCell","activeCell","calculateSelection","forEach","cell","removeAttribute","x1","parseInt","ariaColIndex","x2","y1","parentElement","ariaRowIndex","y2","colIndex","rowIndex","setAttribute","filter","c","hasAttribute"],"mappings":"AAQO,SAASA,IACZ,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAA6BD,KAErF,MAAMC,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKC,iBAAkB,EACvBF,EAAKG,cAAcF,MAEnBG,cACA,OAAoC,IAA7BH,KAAKD,KAAKK,iBAA6BC,MAAMC,KAAKN,KAAKD,KAAKQ,MAAMC,MAAKC,GAAKA,EAAEC,YAEzFC,4BACUX,KAAKD,KAAKa,eAChBZ,KAAKa,yBACLb,KAAKc,mBAETA,mBACI,MAAMC,EAAOf,KAAKD,KAAKiB,KAAKC,WAAajB,KAAKD,KAAKiB,KAAKC,WAAajB,KAAKD,KAAKiB,KAC/ED,EAAKG,iBAAiB,aAAcC,IAE5BnB,KAAKG,SAAyB,IAAdgB,EAAEC,UAAkBD,EAAEE,SACtCrB,KAAKsB,aAAaH,MAG1BJ,EAAKG,iBAAiB,aAAcC,IAC5BnB,KAAKG,SACLH,KAAKuB,cAAcJ,EAAEK,eAAehB,MAAMiB,GAAMpB,MAAMC,KAAKN,KAAKD,KAAK2B,OAAOC,SAASF,SAG7FV,EAAKG,iBAAiB,WAAW,KACzBlB,KAAKG,SACLH,KAAK4B,mBAIjBf,yBACIb,KAAKD,KAAKmB,iBAAiB,gBAAiBC,IACpCnB,KAAKG,SAAWgB,EAAEU,OAAOC,OACzB9B,KAAKuB,cAAcJ,EAAEU,OAAOE,YACvBZ,EAAEU,OAAOG,WACVhC,KAAK4B,gBACL5B,KAAKiC,sBACLjC,KAAKD,KAAKmC,cAAc,IAAIC,YAAY,uBAAwB,CAAEN,OAAQ,WAItF7B,KAAKD,KAAKmB,iBAAiB,WAAYC,IAC/BnB,KAAKG,SAAsB,cAAXgB,EAAEW,MAAwBX,EAAEa,WAAahC,KAAKC,iBAC9DD,KAAKsB,aAAaH,MAI9BG,aAAaH,GACT,MAAMiB,EAAYjB,EAAEK,eAAehB,MAAMiB,GAAMpB,MAAMC,KAAKN,KAAKD,KAAK2B,OAAOC,SAASF,KAChFW,IACApC,KAAKoC,UAAYA,EACjBpC,KAAKC,iBAAkB,EACvBD,KAAKiC,uBAGbV,cAAcc,GACNA,GAAcrC,KAAKC,kBACnBD,KAAKqC,WAAaA,EAClBrC,KAAKsC,sBAGbV,gBACI5B,KAAKC,iBAAkB,EAE3BgC,sBACIjC,KAAKD,KAAK2B,MAAMa,SAAQC,GAAQA,EAAKC,gBAAgB,eAEzDH,qBACI,MAAMI,EAAKC,SAAS3C,KAAKoC,UAAUQ,cAC7BC,EAAKF,SAAS3C,KAAKqC,WAAWO,cAC9BE,EAAKH,SAAS3C,KAAKoC,UAAUW,eAAeC,cAC5CC,EAAKN,SAAS3C,KAAKqC,WAAWU,eAAeC,cACnDhD,KAAKiC,sBACLjC,KAAKD,KAAK2B,MAAMa,SAASC,IACrB,MAAMU,EAAWP,SAASH,EAAKI,cACzBO,EAAWR,SAASH,EAAKO,eAAeC,eACzCN,GAAMG,GAAMK,GAAYR,GAAMQ,GAAYL,GAAQH,GAAMG,GAAMK,GAAYR,GAAMQ,GAAYL,KACxFC,GAAMG,GAAME,GAAYL,GAAMK,GAAYF,GAAQH,GAAMG,GAAME,GAAYL,GAAMK,GAAYF,IAC7FT,EAAKY,aAAa,YAAa,OAI3CpD,KAAKD,KAAKmC,cAAc,IAAIC,YAAY,uBAAwB,CAC5DN,OAAQxB,MAAMC,KAAKN,KAAKD,KAAK2B,OAAO2B,QAAOC,GAAKA,EAAEC,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-focus-trap.controller.js","sources":["../../../../src/internal/controllers/inline-focus-trap.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"inline-focus-trap.controller.js","sources":["../../../../src/internal/controllers/inline-focus-trap.controller.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 { html } from 'lit';\nimport { getFlattenedFocusableItems } from '../utils/traversal.js';\nimport { renderAfter, renderBefore } from '../utils/lit.js';\nimport { ignoreFocus } from '../utils/focus.js';\n/**\n * Focus Trap that given a DOM element creates a flattened tree traversal\n * between both Shadow DOM and Light DOM\n *\n * safari https://bugs.webkit.org/show_bug.cgi?id=174667\n */\nexport function focusTrap() {\n return (target) => target.addInitializer((instance) => new InlineFocusTrapController(instance));\n}\nexport class InlineFocusTrapController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n get focusableItems() {\n return getFlattenedFocusableItems(this.root).filter(e => !e.hasAttribute('cds-focus-boundary') && (this.root.contains(e) || e.closest('[cds-focus-trap]') === this.host));\n }\n get root() {\n return (this.host.shadowRoot ? this.host.shadowRoot : this.host);\n }\n get styles() {\n return html `<style cds-focus-style>\n :host(:host:focus-within) [cds-focus-boundary],\n :host(:focus-within) [cds-focus-boundary] {\n display: block !important;\n }\n </style>`;\n }\n boundary(index) {\n return html `<div\n @focusin=${() => this.focusableItems.at(index)?.focus()}\n test=${index}\n cds-focus-boundary\n tabindex=\"0\"\n style=\"display:none;position:absolute;width:1px;height:1px;clip:rect(0,0,0,0)\"\n >\n boundary\n </div>`;\n }\n async hostConnected() {\n await this.host.updateComplete;\n if (!ignoreFocus(this.host)) {\n renderBefore(this.styles, this.root);\n renderBefore(this.boundary(-1), this.root);\n renderAfter(this.boundary(0), this.root);\n this.host.setAttribute('cds-focus-trap', '');\n }\n }\n}\n"],"names":["focusTrap","target","addInitializer","instance","InlineFocusTrapController","constructor","host","this","addController","focusableItems","getFlattenedFocusableItems","root","filter","e","hasAttribute","contains","closest","shadowRoot","styles","html","boundary","index","at","focus","async","updateComplete","ignoreFocus","renderBefore","renderAfter","setAttribute"],"mappings":"8MAeO,SAASA,IACZ,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAA0BD,KAElF,MAAMC,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKD,KAAKE,cAAcD,MAExBE,qBACA,OAAOC,EAA2BH,KAAKI,MAAMC,QAAOC,IAAMA,EAAEC,aAAa,wBAA0BP,KAAKI,KAAKI,SAASF,IAAMA,EAAEG,QAAQ,sBAAwBT,KAAKD,QAEnKK,WACA,OAAQJ,KAAKD,KAAKW,WAAaV,KAAKD,KAAKW,WAAaV,KAAKD,KAE3DY,aACA,OAAOC,CAAK,mJAOhBC,SAASC,GACL,OAAOF,CAAK,kBACH,IAAMZ,KAAKE,eAAea,GAAGD,IAAQE,kBACzCF,mIAQTG,4BACUjB,KAAKD,KAAKmB,eACXC,EAAYnB,KAAKD,QAClBqB,EAAapB,KAAKW,OAAQX,KAAKI,MAC/BgB,EAAapB,KAAKa,UAAU,GAAIb,KAAKI,MACrCiB,EAAYrB,KAAKa,SAAS,GAAIb,KAAKI,MACnCJ,KAAKD,KAAKuB,aAAa,iBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-navigation-grid.controller.js","sources":["../../../../src/internal/controllers/key-navigation-grid.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"key-navigation-grid.controller.js","sources":["../../../../src/internal/controllers/key-navigation-grid.controller.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 { onChildListMutation, onFirstInteraction } from '../utils/events.js';\nimport { getFlattenedDOMTree, getFlattenedFocusableItems } from '../utils/traversal.js';\nimport { contextMenuClick } from '../utils/dom.js';\nimport { validKeyNavigationCode } from '../utils/keycodes.js';\nimport { focusElement, getActiveElement, initializeKeyListItems, setActiveKeyListItem, simpleFocusable, } from '../utils/focus.js';\nimport { getNextKeyGridItem } from './key-navigation.utils.js';\n/**\n * Given a 2d array grid structure provide keyboard navigation following aria grid spec\n * https://w3c.github.io/aria-practices/#gridNav_focus\n */\nexport function keyNavigationGrid() {\n return (target) => target.addInitializer((instance) => new KeyNavigationGridController(instance));\n}\nexport class KeyNavigationGridController {\n constructor(host) {\n this.host = host;\n this.observers = [];\n this.host.addController(this);\n }\n get hostGrid() {\n return this.host.keyNavGrid ? this.host.keyNavGrid : this.host;\n }\n get hostRows() {\n const rows = Array.from(this.host.rows);\n if (this.host.columnRow) {\n rows.unshift(this.host.columnRow);\n }\n return rows;\n }\n get hostCells() {\n const cells = Array.from(this.host.cells);\n if (this.host.columns) {\n cells.unshift(...Array.from(this.host.columns));\n }\n return cells;\n }\n get activeCell() {\n return Array.from(this.hostCells).find(i => i.tabIndex === 0);\n }\n async hostConnected() {\n await this.host.updateComplete;\n onFirstInteraction(this.host).then(() => {\n initializeKeyListItems(this.hostCells);\n this.hostGrid.addEventListener('mouseup', (e) => this.clickCell(e));\n this.hostGrid.addEventListener('keydown', (e) => this.keynavCell(e));\n this.hostGrid.addEventListener('keyup', (e) => this.updateCellActivation(e));\n });\n this.observers.push(onChildListMutation(this.host, () => initializeKeyListItems(this.hostCells)));\n }\n hostDisconnected() {\n this.observers.forEach(o => o?.disconnect());\n }\n clickCell(e) {\n if (!contextMenuClick(e)) {\n const activeCell = e.composedPath().find(i => this.hostCells.find(c => c === i));\n if (activeCell) {\n this.setActiveCell(e, activeCell);\n }\n }\n }\n keynavCell(e) {\n if (validKeyNavigationCode(e) && simpleFocusable(getActiveElement())) {\n const { x, y } = getNextKeyGridItem(this.hostCells, this.hostRows, {\n code: e.code,\n ctrlKey: e.ctrlKey,\n dir: this.host.dir,\n });\n const nextCell = Array.from(getFlattenedDOMTree(this.hostRows[y])).filter(c => !!this.hostCells.find(i => i === c))[x];\n this.setActiveCell(e, nextCell);\n e.preventDefault();\n }\n }\n setActiveCell(e, activeCell) {\n setActiveKeyListItem(this.hostCells, activeCell);\n // https://w3c.github.io/aria-practices/#gridNav_focus\n const items = getFlattenedFocusableItems(activeCell);\n const simpleItems = items.filter(i => simpleFocusable(i));\n if (simpleItems.length === 1 && items.length === 1) {\n focusElement(simpleItems[0]);\n }\n else {\n focusElement(activeCell);\n }\n activeCell.dispatchEvent(new CustomEvent('cdsKeyChange', {\n bubbles: true,\n detail: { code: e.code, shiftKey: e.shiftKey, activeItem: activeCell },\n }));\n }\n updateCellActivation(e) {\n if (e.code === 'Escape') {\n this.activeCell?.focus();\n }\n if (e.code === 'Enter' && this.activeCell === e.composedPath()[0]) {\n getFlattenedFocusableItems(this.activeCell)[0]?.focus();\n }\n }\n}\n"],"names":["keyNavigationGrid","target","addInitializer","instance","KeyNavigationGridController","constructor","host","this","observers","addController","hostGrid","keyNavGrid","hostRows","rows","Array","from","columnRow","unshift","hostCells","cells","columns","activeCell","find","i","tabIndex","async","updateComplete","onFirstInteraction","then","initializeKeyListItems","addEventListener","e","clickCell","keynavCell","updateCellActivation","push","onChildListMutation","hostDisconnected","forEach","o","disconnect","contextMenuClick","composedPath","c","setActiveCell","validKeyNavigationCode","simpleFocusable","getActiveElement","x","y","getNextKeyGridItem","code","ctrlKey","dir","nextCell","getFlattenedDOMTree","filter","preventDefault","setActiveKeyListItem","items","getFlattenedFocusableItems","simpleItems","length","focusElement","dispatchEvent","CustomEvent","bubbles","detail","shiftKey","activeItem","focus"],"mappings":"+eAeO,SAASA,IACZ,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAA4BD,KAEpF,MAAMC,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKC,UAAY,GACjBD,KAAKD,KAAKG,cAAcF,MAExBG,eACA,OAAOH,KAAKD,KAAKK,WAAaJ,KAAKD,KAAKK,WAAaJ,KAAKD,KAE1DM,eACA,MAAMC,EAAOC,MAAMC,KAAKR,KAAKD,KAAKO,MAIlC,OAHIN,KAAKD,KAAKU,WACVH,EAAKI,QAAQV,KAAKD,KAAKU,WAEpBH,EAEPK,gBACA,MAAMC,EAAQL,MAAMC,KAAKR,KAAKD,KAAKa,OAInC,OAHIZ,KAAKD,KAAKc,SACVD,EAAMF,WAAWH,MAAMC,KAAKR,KAAKD,KAAKc,UAEnCD,EAEPE,iBACA,OAAOP,MAAMC,KAAKR,KAAKW,WAAWI,MAAKC,GAAoB,IAAfA,EAAEC,WAElDC,4BACUlB,KAAKD,KAAKoB,eAChBC,EAAmBpB,KAAKD,MAAMsB,MAAK,KAC/BC,EAAuBtB,KAAKW,WAC5BX,KAAKG,SAASoB,iBAAiB,WAAYC,GAAMxB,KAAKyB,UAAUD,KAChExB,KAAKG,SAASoB,iBAAiB,WAAYC,GAAMxB,KAAK0B,WAAWF,KACjExB,KAAKG,SAASoB,iBAAiB,SAAUC,GAAMxB,KAAK2B,qBAAqBH,QAE7ExB,KAAKC,UAAU2B,KAAKC,EAAoB7B,KAAKD,MAAM,IAAMuB,EAAuBtB,KAAKW,cAEzFmB,mBACI9B,KAAKC,UAAU8B,SAAQC,GAAKA,GAAGC,eAEnCR,UAAUD,GACN,IAAKU,EAAiBV,GAAI,CACtB,MAAMV,EAAaU,EAAEW,eAAepB,MAAKC,GAAKhB,KAAKW,UAAUI,MAAKqB,GAAKA,IAAMpB,MACzEF,GACAd,KAAKqC,cAAcb,EAAGV,IAIlCY,WAAWF,GACP,GAAIc,EAAuBd,IAAMe,EAAgBC,KAAqB,CAClE,MAAMC,EAAEA,EAACC,EAAEA,GAAMC,EAAmB3C,KAAKW,UAAWX,KAAKK,SAAU,CAC/DuC,KAAMpB,EAAEoB,KACRC,QAASrB,EAAEqB,QACXC,IAAK9C,KAAKD,KAAK+C,MAEbC,EAAWxC,MAAMC,KAAKwC,EAAoBhD,KAAKK,SAASqC,KAAKO,QAAOb,KAAOpC,KAAKW,UAAUI,MAAKC,GAAKA,IAAMoB,MAAIK,GACpHzC,KAAKqC,cAAcb,EAAGuB,GACtBvB,EAAE0B,kBAGVb,cAAcb,EAAGV,GACbqC,EAAqBnD,KAAKW,UAAWG,GAErC,MAAMsC,EAAQC,EAA2BvC,GACnCwC,EAAcF,EAAMH,QAAOjC,GAAKuB,EAAgBvB,KAC3B,IAAvBsC,EAAYC,QAAiC,IAAjBH,EAAMG,OAClCC,EAAaF,EAAY,IAGzBE,EAAa1C,GAEjBA,EAAW2C,cAAc,IAAIC,YAAY,eAAgB,CACrDC,SAAS,EACTC,OAAQ,CAAEhB,KAAMpB,EAAEoB,KAAMiB,SAAUrC,EAAEqC,SAAUC,WAAYhD,MAGlEa,qBAAqBH,GACF,WAAXA,EAAEoB,MACF5C,KAAKc,YAAYiD,QAEN,UAAXvC,EAAEoB,MAAoB5C,KAAKc,aAAeU,EAAEW,eAAe,IAC3DkB,EAA2BrD,KAAKc,YAAY,IAAIiD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-navigation-list.controller.js","sources":["../../../../src/internal/controllers/key-navigation-list.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"key-navigation-list.controller.js","sources":["../../../../src/internal/controllers/key-navigation-list.controller.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 { focusElement, initializeKeyListItems, setActiveKeyListItem } from '../utils/focus.js';\nimport { validKeyNavigationCode } from '../utils/keycodes.js';\nimport { getFlattenedFocusableItems } from '../utils/traversal.js';\nimport { getNextKeyListItem } from './key-navigation.utils.js';\n/**\n * Provides key list naviation behavior\n * https://webaim.org/techniques/keyboard/\n */\nexport function keyNavigationList(config = {}) {\n return (target) => {\n target.addInitializer((instance) => {\n if (!instance.keyNavigationListController) {\n instance.keyNavigationListController = new KeyNavigationListController(instance, config);\n }\n });\n };\n}\nexport class KeyNavigationListController {\n constructor(host, config = {}) {\n this.host = host;\n this.host.addController(this);\n this.config = {\n keyListItems: 'keyListItems',\n layout: 'horizontal',\n manageFocus: true,\n manageTabindex: true,\n loop: false,\n dir: this.host.getAttribute('rtl'),\n ...config,\n };\n }\n get listItems() {\n return this.host[this.config.keyListItems];\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.initializeTabIndex();\n this.host.addEventListener('click', (e) => this.clickItem(e));\n this.host.addEventListener('keydown', (e) => this.focusItem(e));\n this.host.shadowRoot?.addEventListener('click', (e) => this.clickItem(e));\n this.host.shadowRoot?.addEventListener('keydown', (e) => this.focusItem(e));\n }\n initializeTabIndex() {\n if (this.config.manageFocus && this.config.manageTabindex) {\n initializeKeyListItems(this.listItems);\n }\n }\n clickItem(e) {\n const activeItem = this.getActiveItem(e);\n if (activeItem) {\n this.setActiveItem(e, activeItem);\n }\n }\n focusItem(e) {\n if (validKeyNavigationCode(e)) {\n const activeItem = this.getActiveItem(e);\n if (activeItem) {\n const { next, previous } = getNextKeyListItem(activeItem, Array.from(this.listItems), {\n ...this.config,\n code: e.code,\n });\n if (next !== previous) {\n // todo: test for only emiting when position has changed\n this.setActiveItem(e, this.listItems[next], this.listItems[previous]);\n }\n }\n }\n }\n getActiveItem(e) {\n return Array.from(this.listItems).find(c => c === e.target.closest(this.listItems[0].tagName.toLocaleLowerCase()) ?? c === e.target);\n }\n setActiveItem(e, activeItem, previousItem) {\n if (this.config.manageFocus) {\n if (this.config.manageTabindex) {\n setActiveKeyListItem(this.listItems, activeItem);\n }\n const items = getFlattenedFocusableItems(activeItem);\n const item = items[0] ?? activeItem;\n focusElement(item);\n e.preventDefault();\n }\n activeItem.dispatchEvent(new CustomEvent('cdsKeyChange', {\n bubbles: true,\n detail: {\n activeItem,\n previousItem,\n code: e.code,\n metaKey: e.ctrlKey || e.metaKey,\n keyListItems: this.config.keyListItems,\n },\n }));\n }\n}\n"],"names":["keyNavigationList","config","target","addInitializer","instance","keyNavigationListController","KeyNavigationListController","constructor","host","this","addController","keyListItems","layout","manageFocus","manageTabindex","loop","dir","getAttribute","listItems","async","updateComplete","initializeTabIndex","addEventListener","e","clickItem","focusItem","shadowRoot","initializeKeyListItems","activeItem","getActiveItem","setActiveItem","validKeyNavigationCode","next","previous","getNextKeyListItem","Array","from","code","find","c","closest","tagName","toLocaleLowerCase","previousItem","setActiveKeyListItem","item","getFlattenedFocusableItems","focusElement","preventDefault","dispatchEvent","CustomEvent","bubbles","detail","metaKey","ctrlKey"],"mappings":"uSAaO,SAASA,EAAkBC,EAAS,IACvC,OAAQC,IACJA,EAAOC,gBAAgBC,IACdA,EAASC,8BACVD,EAASC,4BAA8B,IAAIC,EAA4BF,EAAUH,QAK1F,MAAMK,EACTC,YAAYC,EAAMP,EAAS,IACvBQ,KAAKD,KAAOA,EACZC,KAAKD,KAAKE,cAAcD,MACxBA,KAAKR,OAAS,CACVU,aAAc,eACdC,OAAQ,aACRC,aAAa,EACbC,gBAAgB,EAChBC,MAAM,EACNC,IAAKP,KAAKD,KAAKS,aAAa,UACzBhB,GAGPiB,gBACA,OAAOT,KAAKD,KAAKC,KAAKR,OAAOU,cAEjCQ,4BACUV,KAAKD,KAAKY,eAChBX,KAAKY,qBACLZ,KAAKD,KAAKc,iBAAiB,SAAUC,GAAMd,KAAKe,UAAUD,KAC1Dd,KAAKD,KAAKc,iBAAiB,WAAYC,GAAMd,KAAKgB,UAAUF,KAC5Dd,KAAKD,KAAKkB,YAAYJ,iBAAiB,SAAUC,GAAMd,KAAKe,UAAUD,KACtEd,KAAKD,KAAKkB,YAAYJ,iBAAiB,WAAYC,GAAMd,KAAKgB,UAAUF,KAE5EF,qBACQZ,KAAKR,OAAOY,aAAeJ,KAAKR,OAAOa,gBACvCa,EAAuBlB,KAAKS,WAGpCM,UAAUD,GACN,MAAMK,EAAanB,KAAKoB,cAAcN,GAClCK,GACAnB,KAAKqB,cAAcP,EAAGK,GAG9BH,UAAUF,GACN,GAAIQ,EAAuBR,GAAI,CAC3B,MAAMK,EAAanB,KAAKoB,cAAcN,GACtC,GAAIK,EAAY,CACZ,MAAMI,KAAEA,EAAIC,SAAEA,GAAaC,EAAmBN,EAAYO,MAAMC,KAAK3B,KAAKS,WAAY,IAC/ET,KAAKR,OACRoC,KAAMd,EAAEc,OAERL,IAASC,GAETxB,KAAKqB,cAAcP,EAAGd,KAAKS,UAAUc,GAAOvB,KAAKS,UAAUe,MAK3EJ,cAAcN,GACV,OAAOY,MAAMC,KAAK3B,KAAKS,WAAWoB,MAAKC,GAAKA,IAAMhB,EAAErB,OAAOsC,QAAQ/B,KAAKS,UAAU,GAAGuB,QAAQC,sBAAwBH,IAAMhB,EAAErB,SAEjI4B,cAAcP,EAAGK,EAAYe,GACzB,GAAIlC,KAAKR,OAAOY,YAAa,CACrBJ,KAAKR,OAAOa,gBACZ8B,EAAqBnC,KAAKS,UAAWU,GAEzC,MACMiB,EADQC,EAA2BlB,GACtB,IAAMA,EACzBmB,EAAaF,GACbtB,EAAEyB,iBAENpB,EAAWqB,cAAc,IAAIC,YAAY,eAAgB,CACrDC,SAAS,EACTC,OAAQ,CACJxB,WAAAA,EACAe,aAAAA,EACAN,KAAMd,EAAEc,KACRgB,QAAS9B,EAAE+B,SAAW/B,EAAE8B,QACxB1C,aAAcF,KAAKR,OAAOU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-navigation.utils.js","sources":["../../../../src/internal/controllers/key-navigation.utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"key-navigation.utils.js","sources":["../../../../src/internal/controllers/key-navigation.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 { KeyNavigationCode } from '../utils/keycodes.js';\nimport { getFlattenedDOMTree } from '../utils/traversal.js';\n// todo cory: unit test\nexport function getNextKeyGridItem(cells, rows, config) {\n const currentCell = cells.find(i => i.tabIndex === 0);\n const currentRow = rows.find(r => getFlattenedDOMTree(r).find(c => c === currentCell));\n const currentRowCells = Array.from(getFlattenedDOMTree(currentRow)).filter(c => !!cells.find(i => i === c));\n const numOfRows = rows.length - 1;\n const numOfColumns = currentRowCells.length - 1;\n const { code, ctrlKey, dir } = config;\n let x = currentRowCells.indexOf(currentCell);\n let y = rows.indexOf(currentRow);\n const inlineStart = dir === 'rtl' ? KeyNavigationCode.ArrowRight : KeyNavigationCode.ArrowLeft;\n const inlineEnd = dir === 'rtl' ? KeyNavigationCode.ArrowLeft : KeyNavigationCode.ArrowRight;\n if (code === KeyNavigationCode.ArrowUp && y !== 0) {\n y = y - 1;\n }\n else if (code === KeyNavigationCode.ArrowDown && y < numOfRows) {\n y = y + 1;\n }\n else if (code === inlineStart && x !== 0) {\n x = x - 1;\n }\n else if (code === inlineEnd && x < numOfColumns) {\n x = x + 1;\n }\n else if (code === KeyNavigationCode.End) {\n x = numOfColumns;\n if (ctrlKey) {\n y = numOfRows;\n }\n }\n else if (code === KeyNavigationCode.Home) {\n x = 0;\n if (ctrlKey) {\n y = 0;\n }\n }\n else if (code === KeyNavigationCode.PageUp) {\n y = y - 4 > 0 ? y - 4 : 0;\n }\n else if (code === KeyNavigationCode.PageDown) {\n y = y + 4 < numOfRows ? y + 4 : numOfRows;\n }\n return { x, y };\n}\nexport function getNextKeyListItem(item, items, config) {\n // todo: cory test\n const { code, layout, loop, dir } = config;\n let i = items.indexOf(item);\n const previous = i;\n const inlineStart = dir === 'rtl' ? KeyNavigationCode.ArrowRight : KeyNavigationCode.ArrowLeft;\n const inlineEnd = dir === 'rtl' ? KeyNavigationCode.ArrowLeft : KeyNavigationCode.ArrowRight;\n const numOfItems = items.length - 1;\n if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i !== 0) {\n i = i - 1;\n }\n else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowUp && i === 0 && loop) {\n i = numOfItems;\n }\n else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i < numOfItems) {\n i = i + 1;\n }\n else if (layout !== 'horizontal' && code === KeyNavigationCode.ArrowDown && i === numOfItems && loop) {\n i = 0;\n }\n else if (layout !== 'vertical' && code === inlineStart && i !== 0) {\n i = i - 1;\n }\n else if (layout !== 'vertical' && code === inlineEnd && i < numOfItems) {\n i = i + 1;\n }\n else if (code === KeyNavigationCode.End) {\n i = numOfItems;\n }\n else if (code === KeyNavigationCode.Home) {\n i = 0;\n }\n else if (code === KeyNavigationCode.PageUp) {\n i = i - 4 > 0 ? i - 4 : 0;\n }\n else if (code === KeyNavigationCode.PageDown) {\n i = i + 4 < numOfItems ? i + 4 : numOfItems;\n }\n return { next: i, previous };\n}\n"],"names":["getNextKeyGridItem","cells","rows","config","currentCell","find","i","tabIndex","currentRow","r","getFlattenedDOMTree","c","currentRowCells","Array","from","filter","numOfRows","length","numOfColumns","code","ctrlKey","dir","x","indexOf","y","inlineStart","KeyNavigationCode","ArrowRight","ArrowLeft","inlineEnd","ArrowUp","ArrowDown","End","Home","PageUp","PageDown","getNextKeyListItem","item","items","layout","loop","previous","numOfItems","next"],"mappings":"qHAQO,SAASA,EAAmBC,EAAOC,EAAMC,GAC5C,MAAMC,EAAcH,EAAMI,MAAKC,GAAoB,IAAfA,EAAEC,WAChCC,EAAaN,EAAKG,MAAKI,GAAKC,EAAoBD,GAAGJ,MAAKM,GAAKA,IAAMP,MACnEQ,EAAkBC,MAAMC,KAAKJ,EAAoBF,IAAaO,QAAOJ,KAAOV,EAAMI,MAAKC,GAAKA,IAAMK,MAClGK,EAAYd,EAAKe,OAAS,EAC1BC,EAAeN,EAAgBK,OAAS,GACxCE,KAAEA,EAAIC,QAAEA,EAAOC,IAAEA,GAAQlB,EAC/B,IAAImB,EAAIV,EAAgBW,QAAQnB,GAC5BoB,EAAItB,EAAKqB,QAAQf,GACrB,MAAMiB,EAAsB,QAARJ,EAAgBK,EAAkBC,WAAaD,EAAkBE,UAC/EC,EAAoB,QAARR,EAAgBK,EAAkBE,UAAYF,EAAkBC,WA+BlF,OA9BIR,IAASO,EAAkBI,SAAiB,IAANN,EACtCA,GAAQ,EAEHL,IAASO,EAAkBK,WAAaP,EAAIR,EACjDQ,GAAQ,EAEHL,IAASM,GAAqB,IAANH,EAC7BA,GAAQ,EAEHH,IAASU,GAAaP,EAAIJ,EAC/BI,GAAQ,EAEHH,IAASO,EAAkBM,KAChCV,EAAIJ,EACAE,IACAI,EAAIR,IAGHG,IAASO,EAAkBO,MAChCX,EAAI,EACAF,IACAI,EAAI,IAGHL,IAASO,EAAkBQ,OAChCV,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAEnBL,IAASO,EAAkBS,WAChCX,EAAIA,EAAI,EAAIR,EAAYQ,EAAI,EAAIR,GAE7B,CAAEM,EAAAA,EAAGE,EAAAA,GAET,SAASY,EAAmBC,EAAMC,EAAOnC,GAE5C,MAAMgB,KAAEA,EAAIoB,OAAEA,EAAMC,KAAEA,EAAInB,IAAEA,GAAQlB,EACpC,IAAIG,EAAIgC,EAAMf,QAAQc,GACtB,MAAMI,EAAWnC,EACXmB,EAAsB,QAARJ,EAAgBK,EAAkBC,WAAaD,EAAkBE,UAC/EC,EAAoB,QAARR,EAAgBK,EAAkBE,UAAYF,EAAkBC,WAC5Ee,EAAaJ,EAAMrB,OAAS,EA+BlC,MA9Be,eAAXsB,GAA2BpB,IAASO,EAAkBI,SAAiB,IAANxB,EACjEA,GAAQ,EAEQ,eAAXiC,GAA2BpB,IAASO,EAAkBI,SAAiB,IAANxB,GAAWkC,EACjFlC,EAAIoC,EAEY,eAAXH,GAA2BpB,IAASO,EAAkBK,WAAazB,EAAIoC,EAC5EpC,GAAQ,EAEQ,eAAXiC,GAA2BpB,IAASO,EAAkBK,WAAazB,IAAMoC,GAAcF,EAC5FlC,EAAI,EAEY,aAAXiC,GAAyBpB,IAASM,GAAqB,IAANnB,EACtDA,GAAQ,EAEQ,aAAXiC,GAAyBpB,IAASU,GAAavB,EAAIoC,EACxDpC,GAAQ,EAEHa,IAASO,EAAkBM,IAChC1B,EAAIoC,EAECvB,IAASO,EAAkBO,KAChC3B,EAAI,EAECa,IAASO,EAAkBQ,OAChC5B,EAAIA,EAAI,EAAI,EAAIA,EAAI,EAAI,EAEnBa,IAASO,EAAkBS,WAChC7B,EAAIA,EAAI,EAAIoC,EAAapC,EAAI,EAAIoC,GAE9B,CAAEC,KAAMrC,EAAGmC,SAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer.controller.js","sources":["../../../../src/internal/controllers/layer.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"layer.controller.js","sources":["../../../../src/internal/controllers/layer.controller.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 { listenForAttributeChange } from '../utils/events.js';\nimport { GlobalStateService } from '../services/global.service.js';\n/**\n * LayerController provides manage layer tracking for components. Ensures any component\n * that may be a layer on top of other components is given a ordered index relative\n * to other existing layers on the page.\n *\n * This makes layer tracking easier for CSS, such as targeting the top or bottom\n * layer element or setting a z-index ordering.\n */\nexport function layer() {\n return (target) => {\n target.addInitializer((instance) => {\n if (!instance.layerController) {\n instance.layerController = new LayerController(instance);\n }\n });\n };\n}\nexport class LayerController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n get isActiveLayer() {\n return this.layers[this.layers.length - 1] === this.host;\n }\n get layerIndex() {\n const index = this.layers.indexOf(this.host);\n return index === -1 ? null : index;\n }\n get layers() {\n return [...GlobalStateService.state.layerElements];\n }\n set layers(layers) {\n GlobalStateService.state.layerElements = [...layers];\n }\n hostConnected() {\n if (!this.host.hasAttribute('_demo-mode')) {\n this.updateLayer();\n this.observer = listenForAttributeChange(this.host, 'hidden', () => this.updateLayer());\n }\n }\n hostDisconnected() {\n this.observer?.disconnect();\n this.removeLayer();\n }\n updateLayer() {\n if (this.host.hasAttribute('hidden')) {\n this.removeLayer();\n }\n else {\n this.addLayer();\n }\n this.layers.forEach((layer, i) => layer.setAttribute('cds-layer', `${i}`));\n }\n addLayer() {\n if (!this.layers.find(layer => this.host === layer)) {\n this.layers = [...this.layers, this.host];\n // We do this so that screen-readers can make their way through nested/layered overlays.\n // It sets a virtual cursor trap on the top-most overlay.\n if (this.host.ariaModal === 'true') {\n this.layers.filter(layer => layer.ariaModal === 'true').forEach(layer => (layer.role = 'region'));\n this.host.role = 'dialog';\n }\n }\n }\n removeLayer() {\n this.layers = this.layers.filter(layer => layer !== this.host);\n this.host.removeAttribute('cds-layer');\n const nextModal = this.layers.find(layer => layer.ariaModal === 'true');\n if (nextModal) {\n nextModal.role = 'dialog';\n }\n }\n}\n"],"names":["layer","target","addInitializer","instance","layerController","LayerController","constructor","host","this","addController","isActiveLayer","layers","length","layerIndex","index","indexOf","GlobalStateService","state","layerElements","hostConnected","hasAttribute","updateLayer","observer","listenForAttributeChange","hostDisconnected","disconnect","removeLayer","addLayer","forEach","i","setAttribute","find","ariaModal","filter","role","removeAttribute","nextModal"],"mappings":"iIAeO,SAASA,IACZ,OAAQC,IACJA,EAAOC,gBAAgBC,IACdA,EAASC,kBACVD,EAASC,gBAAkB,IAAIC,EAAgBF,QAKxD,MAAME,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKD,KAAKE,cAAcD,MAExBE,oBACA,OAAOF,KAAKG,OAAOH,KAAKG,OAAOC,OAAS,KAAOJ,KAAKD,KAEpDM,iBACA,MAAMC,EAAQN,KAAKG,OAAOI,QAAQP,KAAKD,MACvC,OAAkB,IAAXO,EAAe,KAAOA,EAE7BH,aACA,MAAO,IAAIK,EAAmBC,MAAMC,eAEpCP,WAAOA,GACPK,EAAmBC,MAAMC,cAAgB,IAAIP,GAEjDQ,gBACSX,KAAKD,KAAKa,aAAa,gBACxBZ,KAAKa,cACLb,KAAKc,SAAWC,EAAyBf,KAAKD,KAAM,UAAU,IAAMC,KAAKa,iBAGjFG,mBACIhB,KAAKc,UAAUG,aACfjB,KAAKkB,cAETL,cACQb,KAAKD,KAAKa,aAAa,UACvBZ,KAAKkB,cAGLlB,KAAKmB,WAETnB,KAAKG,OAAOiB,SAAQ,CAAC5B,EAAO6B,IAAM7B,EAAM8B,aAAa,YAAa,GAAGD,KAEzEF,WACSnB,KAAKG,OAAOoB,MAAK/B,GAASQ,KAAKD,OAASP,MACzCQ,KAAKG,OAAS,IAAIH,KAAKG,OAAQH,KAAKD,MAGR,SAAxBC,KAAKD,KAAKyB,YACVxB,KAAKG,OAAOsB,QAAOjC,GAA6B,SAApBA,EAAMgC,YAAsBJ,SAAQ5B,GAAUA,EAAMkC,KAAO,WACvF1B,KAAKD,KAAK2B,KAAO,WAI7BR,cACIlB,KAAKG,OAASH,KAAKG,OAAOsB,QAAOjC,GAASA,IAAUQ,KAAKD,OACzDC,KAAKD,KAAK4B,gBAAgB,aAC1B,MAAMC,EAAY5B,KAAKG,OAAOoB,MAAK/B,GAA6B,SAApBA,EAAMgC,YAC9CI,IACAA,EAAUF,KAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsive.controller.js","sources":["../../../../src/internal/controllers/responsive.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"responsive.controller.js","sources":["../../../../src/internal/controllers/responsive.controller.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/**\n * Provides a `cdsResizeChange` event when component dimensions are resized\n */\nexport function responsive(config = { skipFirst: false }) {\n return (target) => target.addInitializer((instance) => new ResponsiveController(instance, config));\n}\nexport class ResponsiveController {\n constructor(host, config = { skipFirst: false }) {\n this.host = host;\n this.skipFirst = false;\n this.host.addController(this);\n this.skipFirst = !!config.skipFirst;\n this.resizeElement = config.element ? config.element : this.host;\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.observer = new ResizeObserver(entries => {\n window.requestAnimationFrame(() => {\n if (this.skipFirst) {\n this.skipFirst = false;\n }\n else {\n this.host.dispatchEvent(new CustomEvent('cdsResizeChange', { detail: entries[0].contentRect }));\n this.host.requestUpdate();\n }\n });\n });\n this.observer.observe(this.resizeElement);\n }\n hostDisconnected() {\n this.observer?.disconnect();\n }\n}\n"],"names":["responsive","config","skipFirst","target","addInitializer","instance","ResponsiveController","constructor","host","this","addController","resizeElement","element","async","updateComplete","observer","ResizeObserver","entries","window","requestAnimationFrame","dispatchEvent","CustomEvent","detail","contentRect","requestUpdate","observe","hostDisconnected","disconnect"],"mappings":"AAQO,SAASA,EAAWC,EAAS,CAAEC,WAAW,IAC7C,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAAqBD,EAAUJ,KAEvF,MAAMK,EACTC,YAAYC,EAAMP,EAAS,CAAEC,WAAW,IACpCO,KAAKD,KAAOA,EACZC,KAAKP,WAAY,EACjBO,KAAKD,KAAKE,cAAcD,MACxBA,KAAKP,YAAcD,EAAOC,UAC1BO,KAAKE,cAAgBV,EAAOW,QAAUX,EAAOW,QAAUH,KAAKD,KAEhEK,4BACUJ,KAAKD,KAAKM,eAChBL,KAAKM,SAAW,IAAIC,gBAAeC,IAC/BC,OAAOC,uBAAsB,KACrBV,KAAKP,UACLO,KAAKP,WAAY,GAGjBO,KAAKD,KAAKY,cAAc,IAAIC,YAAY,kBAAmB,CAAEC,OAAQL,EAAQ,GAAGM,eAChFd,KAAKD,KAAKgB,uBAItBf,KAAKM,SAASU,QAAQhB,KAAKE,eAE/Be,mBACIjB,KAAKM,UAAUY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollable-list-visibility.controller.js","sources":["../../../../src/internal/controllers/scrollable-list-visibility.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"scrollable-list-visibility.controller.js","sources":["../../../../src/internal/controllers/scrollable-list-visibility.controller.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/**\n * List items default to `content-visibility: auto` for lazy initial render.\n * On scroll set all row items to `content-visibility: visible` for eager render.\n * This allows fast first render and smooth eager rendering anytime after for items within a bounded scroll box.\n */\nexport function scrollableVisibility() {\n return (target) => target.addInitializer((instance) => new ScrollableVisibilityController(instance));\n}\nexport class ScrollableVisibilityController {\n constructor(host) {\n this.host = host;\n this.host.addController(this);\n }\n get root() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.root.addEventListener('scroll', () => this.host.style.setProperty('--row-content-visibility', 'visibile'), {\n once: true,\n capture: true,\n });\n }\n}\n"],"names":["scrollableVisibility","target","addInitializer","instance","ScrollableVisibilityController","constructor","host","this","addController","root","shadowRoot","async","updateComplete","addEventListener","style","setProperty","once","capture"],"mappings":"AAUO,SAASA,IACZ,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAA+BD,KAEvF,MAAMC,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKD,KAAKE,cAAcD,MAExBE,WACA,OAAOF,KAAKD,KAAKI,WAAaH,KAAKD,KAAKI,WAAaH,KAAKD,KAE9DK,4BACUJ,KAAKD,KAAKM,eAChBL,KAAKE,KAAKI,iBAAiB,UAAU,IAAMN,KAAKD,KAAKQ,MAAMC,YAAY,2BAA4B,aAAa,CAC5GC,MAAM,EACNC,SAAS"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touch.controller.js","sources":["../../../../src/internal/controllers/touch.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"touch.controller.js","sources":["../../../../src/internal/controllers/touch.controller.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 { getOffesetDifference } from '../utils/math.js';\n/**\n * @internal Provides all nessesary events for basic touch gestures\n *\n * @event cdsTouchStart\n * @event cdsTouchMove\n * @event cdsTouchEnd\n */\nexport function touch() {\n return (target) => target.addInitializer((instance) => new TouchController(instance));\n}\nexport class TouchController {\n constructor(host) {\n this.host = host;\n this.moveHandler = this.move.bind(this);\n this.endHandler = this.end.bind(this);\n this.host.addController(this);\n }\n async hostConnected() {\n await this.host.updateComplete;\n this.host.addEventListener('pointerdown', (e) => this.start(e), { passive: true });\n }\n start(e) {\n if (e.path.find((el) => el === this.host)) {\n this.startPosition = { x: e.clientX, y: e.clientY };\n document.addEventListener('pointerup', this.endHandler, { passive: true });\n document.addEventListener('pointermove', this.moveHandler, { passive: true });\n this.host.dispatchEvent(new CustomEvent('cdsTouchStart', { detail: { ...this.startPosition } }));\n }\n }\n end(e) {\n if (this.startPosition) {\n const detail = this.getCoordinates(e);\n document.removeEventListener('pointerup', this.endHandler, false);\n document.removeEventListener('pointermove', this.moveHandler, false);\n this.host.dispatchEvent(new CustomEvent('cdsTouchEnd', { detail }));\n }\n }\n move(e) {\n requestAnimationFrame(() => {\n const detail = this.getCoordinates(e);\n this.startPosition = { x: e.clientX, y: e.clientY };\n this.host.dispatchEvent(new CustomEvent('cdsTouchMove', { detail }));\n });\n }\n getCoordinates(e) {\n return {\n x: e.clientX,\n y: e.clientY,\n offsetX: getOffesetDifference(this.startPosition.x, e.clientX),\n offsetY: getOffesetDifference(this.startPosition.y, e.clientY),\n };\n }\n}\n"],"names":["touch","target","addInitializer","instance","TouchController","constructor","host","this","moveHandler","move","bind","endHandler","end","addController","async","updateComplete","addEventListener","e","start","passive","path","find","el","startPosition","x","clientX","y","clientY","document","dispatchEvent","CustomEvent","detail","getCoordinates","removeEventListener","requestAnimationFrame","offsetX","getOffesetDifference","offsetY"],"mappings":"wDAaO,SAASA,IACZ,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAAgBD,KAExE,MAAMC,EACTC,YAAYC,GACRC,KAAKD,KAAOA,EACZC,KAAKC,YAAcD,KAAKE,KAAKC,KAAKH,MAClCA,KAAKI,WAAaJ,KAAKK,IAAIF,KAAKH,MAChCA,KAAKD,KAAKO,cAAcN,MAE5BO,4BACUP,KAAKD,KAAKS,eAChBR,KAAKD,KAAKU,iBAAiB,eAAgBC,GAAMV,KAAKW,MAAMD,IAAI,CAAEE,SAAS,IAE/ED,MAAMD,GACEA,EAAEG,KAAKC,MAAMC,GAAOA,IAAOf,KAAKD,SAChCC,KAAKgB,cAAgB,CAAEC,EAAGP,EAAEQ,QAASC,EAAGT,EAAEU,SAC1CC,SAASZ,iBAAiB,YAAaT,KAAKI,WAAY,CAAEQ,SAAS,IACnES,SAASZ,iBAAiB,cAAeT,KAAKC,YAAa,CAAEW,SAAS,IACtEZ,KAAKD,KAAKuB,cAAc,IAAIC,YAAY,gBAAiB,CAAEC,OAAQ,IAAKxB,KAAKgB,mBAGrFX,IAAIK,GACA,GAAIV,KAAKgB,cAAe,CACpB,MAAMQ,EAASxB,KAAKyB,eAAef,GACnCW,SAASK,oBAAoB,YAAa1B,KAAKI,YAAY,GAC3DiB,SAASK,oBAAoB,cAAe1B,KAAKC,aAAa,GAC9DD,KAAKD,KAAKuB,cAAc,IAAIC,YAAY,cAAe,CAAEC,OAAAA,MAGjEtB,KAAKQ,GACDiB,uBAAsB,KAClB,MAAMH,EAASxB,KAAKyB,eAAef,GACnCV,KAAKgB,cAAgB,CAAEC,EAAGP,EAAEQ,QAASC,EAAGT,EAAEU,SAC1CpB,KAAKD,KAAKuB,cAAc,IAAIC,YAAY,eAAgB,CAAEC,OAAAA,QAGlEC,eAAef,GACX,MAAO,CACHO,EAAGP,EAAEQ,QACLC,EAAGT,EAAEU,QACLQ,QAASC,EAAqB7B,KAAKgB,cAAcC,EAAGP,EAAEQ,SACtDY,QAASD,EAAqB7B,KAAKgB,cAAcG,EAAGT,EAAEU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.controller.js","sources":["../../../../src/internal/controllers/trigger.controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"trigger.controller.js","sources":["../../../../src/internal/controllers/trigger.controller.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 { listenForAttributeChange } from '../utils/events.js';\nimport { getActiveElement } from '../utils/focus.js';\n/**\n * The TriggerController will track the last known interacted element\n * when the host component was created or shown. This is used for when a component\n * needs to know the element that \"triggered\" the interaction.\n *\n * Examples include, popover types, closable types and draggable types.\n */\nexport function triggerable(config = { focus: true }) {\n return (target) => target.addInitializer((instance) => new TriggerController(instance, config));\n}\nexport class TriggerController {\n constructor(host, config = { focus: true }) {\n this.host = host;\n this.config = config;\n this.activeElement = getActiveElement();\n this.host.addController(this);\n }\n get current() {\n return this.host.trigger ? this._current : this.activeElement;\n }\n get prev() {\n return this._prev;\n }\n async hostConnected() {\n this.observer = listenForAttributeChange(this.host, 'hidden', () => {\n const activeElement = getActiveElement();\n if (!this.host.hidden && activeElement) {\n this.activeElement = activeElement;\n }\n else {\n this.focusCurrent();\n }\n });\n }\n hostUpdate() {\n if (this._current !== this.host.trigger) {\n this._prev = this._current;\n this._current = this.host.trigger ? this.host.trigger : this.activeElement;\n }\n }\n hostDisconnected() {\n this.focusCurrent();\n this.observer?.disconnect();\n }\n focusCurrent() {\n if (this.config.focus) {\n this.current?.focus();\n }\n }\n}\n"],"names":["triggerable","config","focus","target","addInitializer","instance","TriggerController","constructor","host","this","activeElement","getActiveElement","addController","current","trigger","_current","prev","_prev","async","observer","listenForAttributeChange","hidden","focusCurrent","hostUpdate","hostDisconnected","disconnect"],"mappings":"mHAcO,SAASA,EAAYC,EAAS,CAAEC,OAAO,IAC1C,OAAQC,GAAWA,EAAOC,gBAAgBC,GAAa,IAAIC,EAAkBD,EAAUJ,KAEpF,MAAMK,EACTC,YAAYC,EAAMP,EAAS,CAAEC,OAAO,IAChCO,KAAKD,KAAOA,EACZC,KAAKR,OAASA,EACdQ,KAAKC,cAAgBC,IACrBF,KAAKD,KAAKI,cAAcH,MAExBI,cACA,OAAOJ,KAAKD,KAAKM,QAAUL,KAAKM,SAAWN,KAAKC,cAEhDM,WACA,OAAOP,KAAKQ,MAEhBC,sBACIT,KAAKU,SAAWC,EAAyBX,KAAKD,KAAM,UAAU,KAC1D,MAAME,EAAgBC,KACjBF,KAAKD,KAAKa,QAAUX,EACrBD,KAAKC,cAAgBA,EAGrBD,KAAKa,kBAIjBC,aACQd,KAAKM,WAAaN,KAAKD,KAAKM,UAC5BL,KAAKQ,MAAQR,KAAKM,SAClBN,KAAKM,SAAWN,KAAKD,KAAKM,QAAUL,KAAKD,KAAKM,QAAUL,KAAKC,eAGrEc,mBACIf,KAAKa,eACLb,KAAKU,UAAUM,aAEnBH,eACQb,KAAKR,OAAOC,OACZO,KAAKI,SAASX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate.js","sources":["../../../../src/internal/decorators/animate.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"animate.js","sources":["../../../../src/internal/decorators/animate.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, PRIVATE_ANIMATION_STATUS_ATTR_NAME, } from '../motion/interfaces.js';\nimport { runPropertyAnimations } from '../motion/utils.js';\nimport { isJestTest } from '../utils/environment.js';\n// decorator factory that extends the component constructor to inject animations code into it\nexport function animate(config) {\n if (isJestTest()) {\n return function () {\n // jsdom doesn't like the class returned from the decorator below\n // do nothing\n };\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n return function _animationDecorator(constructor) {\n return class extends constructor {\n constructor() {\n super(...arguments);\n this._animationReady = false;\n this._animationDemoMode = false;\n this._animations = config;\n }\n updated(props) {\n super.updated(props);\n if (!this._animationReady && !this.hasAttribute(PRIVATE_ANIMATION_STATUS_ATTR_NAME)) {\n // this prevents animations from loading onpageload\n this.setAttribute(PRIVATE_ANIMATION_STATUS_ATTR_NAME, AnimationStatus.ready);\n this._animationReady = true;\n return;\n }\n if (this._animationDemoMode === true || this.hasAttribute('_demo-mode')) {\n // ignore if element has the _demo-mode attribute set;\n // _demo-mode is used for docs, static examples, and stories\n // _demo-mode is not intended for external use\n this._animationDemoMode = true;\n return;\n }\n runPropertyAnimations(props, this);\n }\n };\n };\n}\n"],"names":["animate","config","isJestTest","constructor","super","this","_animationReady","_animationDemoMode","_animations","updated","props","hasAttribute","PRIVATE_ANIMATION_STATUS_ATTR_NAME","setAttribute","AnimationStatus","ready","runPropertyAnimations"],"mappings":"kNASO,SAASA,EAAQC,GACpB,OAAIC,IACO,aAMJ,SAA6BC,GAChC,OAAO,cAAcA,EACjBA,cACIC,oBACAC,KAAKC,iBAAkB,EACvBD,KAAKE,oBAAqB,EAC1BF,KAAKG,YAAcP,EAEvBQ,QAAQC,GAEJ,GADAN,MAAMK,QAAQC,IACTL,KAAKC,kBAAoBD,KAAKM,aAAaC,GAI5C,OAFAP,KAAKQ,aAAaD,EAAoCE,EAAgBC,YACtEV,KAAKC,iBAAkB,IAGK,IAA5BD,KAAKE,oBAA+BF,KAAKM,aAAa,cAItDN,KAAKE,oBAAqB,EAG9BS,EAAsBN,EAAOL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sources":["../../../../src/internal/decorators/element.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"element.js","sources":["../../../../src/internal/decorators/element.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 { registerElementSafely } from './../utils/registration.js';\nimport { classLegacyDecorator, classStandardDecorator } from './utils.js';\n/**\n * @experimental\n * experimental decorator, waiting on Angular issue to be resolved https://github.com/angular/angular/issues/31495\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * ```\n * @customElement('my-element')\n * class MyElement {\n * render() {\n * return html``;\n * }\n * }\n * ```\n */\nexport const customElement = (tagName) => (classOrDescriptor) => {\n return typeof classOrDescriptor === 'function'\n ? classLegacyDecorator(tagName, classOrDescriptor, (tagName, classDef) => registerElementSafely(tagName, classDef))\n : classStandardDecorator(tagName, classOrDescriptor, (tagName, classDef) => registerElementSafely(tagName, classDef));\n};\n"],"names":["customElement","tagName","classOrDescriptor","classLegacyDecorator","classDef","registerElementSafely","classStandardDecorator"],"mappings":"+IAqBY,MAACA,EAAiBC,GAAaC,GACH,mBAAtBA,EACRC,EAAqBF,EAASC,GAAmB,CAACD,EAASG,IAAaC,EAAsBJ,EAASG,KACvGE,EAAuBL,EAASC,GAAmB,CAACD,EAASG,IAAaC,EAAsBJ,EAASG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sources":["../../../../src/internal/decorators/event.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"event.js","sources":["../../../../src/internal/decorators/event.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 class EventEmitter {\n constructor(target, eventName) {\n this.target = target;\n this.eventName = eventName;\n }\n emit(value, options) {\n this.target.dispatchEvent(new CustomEvent(this.eventName, { detail: value, ...options }));\n }\n}\n// Legacy TS Decorator\nfunction legacyEvent(descriptor, protoOrDescriptor, name) {\n Object.defineProperty(protoOrDescriptor, name, descriptor);\n}\n// TC39 Decorators proposal\nfunction standardEvent(descriptor, element) {\n return {\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n };\n}\nexport function event() {\n return (protoOrDescriptor, name) => {\n const descriptor = {\n get() {\n return new EventEmitter(this, name !== undefined ? name : protoOrDescriptor.key);\n },\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyEvent(descriptor, protoOrDescriptor, name)\n : standardEvent(descriptor, protoOrDescriptor);\n };\n}\n"],"names":["EventEmitter","constructor","target","eventName","this","emit","value","options","dispatchEvent","CustomEvent","detail","event","protoOrDescriptor","name","descriptor","get","undefined","key","enumerable","configurable","Object","defineProperty","legacyEvent","element","kind","placement","standardEvent"],"mappings":"AAKO,MAAMA,EACTC,YAAYC,EAAQC,GAChBC,KAAKF,OAASA,EACdE,KAAKD,UAAYA,EAErBE,KAAKC,EAAOC,GACRH,KAAKF,OAAOM,cAAc,IAAIC,YAAYL,KAAKD,UAAW,CAAEO,OAAQJ,KAAUC,MAgB/E,SAASI,IACZ,MAAO,CAACC,EAAmBC,KACvB,MAAMC,EAAa,CACfC,MACI,OAAO,IAAIf,EAAaI,UAAeY,IAATH,EAAqBA,EAAOD,EAAkBK,MAEhFC,YAAY,EACZC,cAAc,GAElB,YAAgBH,IAATH,EArBf,SAAqBC,EAAYF,EAAmBC,GAChDO,OAAOC,eAAeT,EAAmBC,EAAMC,GAqBrCQ,CAAYR,EAAYF,EAAmBC,GAlBzD,SAAuBC,EAAYS,GAC/B,MAAO,CACHC,KAAM,SACNC,UAAW,YACXR,IAAKM,EAAQN,IACbH,WAAAA,GAcMY,CAAcZ,EAAYF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-style.js","sources":["../../../../src/internal/decorators/global-style.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"global-style.js","sources":["../../../../src/internal/decorators/global-style.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// Legacy TS Decorator\nfunction legacyEvent(descriptor, protoOrDescriptor, name) {\n Object.defineProperty(protoOrDescriptor, name, descriptor);\n}\n// TC39 Decorators proposal\nfunction standardEvent(descriptor, element) {\n return {\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n };\n}\n/**\n * Appends a global `<style>` tag to the light DOM of a given custom element.\n * This is useful for when styles need to be applied that are not supported\n * withing a `::slotted()` selector such as ::-vendor style selectors.\n */\nexport function globalStyle() {\n return (protoOrDescriptor, name) => {\n const targetConnectedCallback = protoOrDescriptor.connectedCallback;\n function connectedCallback() {\n this[`__${name}StyleTag`] = document.createElement('style');\n this.prepend(this[`__${name}StyleTag`]);\n this[`__${name}StyleTag`].innerText = this[`__${name}GlobalStyle`].toString();\n if (targetConnectedCallback) {\n targetConnectedCallback.apply(this);\n }\n }\n protoOrDescriptor.connectedCallback = connectedCallback;\n const setter = function (value) {\n this[`__${name}GlobalStyle`] = value;\n };\n const descriptor = {\n set: setter,\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyEvent(descriptor, protoOrDescriptor, name)\n : standardEvent(descriptor, protoOrDescriptor);\n };\n}\n"],"names":["globalStyle","protoOrDescriptor","name","targetConnectedCallback","connectedCallback","this","document","createElement","prepend","innerText","toString","apply","descriptor","set","value","enumerable","configurable","undefined","Object","defineProperty","legacyEvent","element","kind","placement","key","standardEvent"],"mappings":"AAuBO,SAASA,IACZ,MAAO,CAACC,EAAmBC,KACvB,MAAMC,EAA0BF,EAAkBG,kBASlDH,EAAkBG,kBARlB,WACIC,KAAK,KAAKH,aAAkBI,SAASC,cAAc,SACnDF,KAAKG,QAAQH,KAAK,KAAKH,cACvBG,KAAK,KAAKH,aAAgBO,UAAYJ,KAAK,KAAKH,gBAAmBQ,WAC/DP,GACAA,EAAwBQ,MAAMN,OAItC,MAGMO,EAAa,CACfC,IAJW,SAAUC,GACrBT,KAAK,KAAKH,gBAAqBY,GAI/BC,YAAY,EACZC,cAAc,GAElB,YAAgBC,IAATf,EArCf,SAAqBU,EAAYX,EAAmBC,GAChDgB,OAAOC,eAAelB,EAAmBC,EAAMU,GAqCrCQ,CAAYR,EAAYX,EAAmBC,GAlCzD,SAAuBU,EAAYS,GAC/B,MAAO,CACHC,KAAM,SACNC,UAAW,YACXC,IAAKH,EAAQG,IACbZ,WAAAA,GA8BMa,CAAcb,EAAYX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sources":["../../../../src/internal/decorators/i18n.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"i18n.js","sources":["../../../../src/internal/decorators/i18n.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 { property } from './property.js';\nimport { GlobalStateService } from '../services/global.service.js';\nimport { I18nService } from '../services/i18n.service.js';\nimport { isNilOrEmpty, mergeObjects, objectNaiveDeepEquals } from '../utils/identity.js';\nimport { LogService } from '../services/log.service.js';\n// Legacy TS Decorator\nfunction legacyI18n(descriptor, protoOrDescriptor, name) {\n // NOTE: ALWAYS GOES HERE IN STORYBOOK (A.K.A. TS RUNTIME)\n const desc = Object.defineProperty(protoOrDescriptor, name, descriptor);\n return property({ type: Object, attribute: 'cds-i18n' })(desc, name);\n // NOTE: REFLECT DOES NOTHING FOR US HERE\n}\n// TC39 Decorators proposal\nfunction standardI18n(descriptor, element) {\n const desc = {\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n };\n return property({ type: Object })(desc);\n}\n/**\n * A property decorator which accesses a set of string values for use\n * inside the element's template. The values can be overridden at runtime\n * by changing the property value that's reflected through the attribute value.\n *\n * @example\n *\n * class MyElement {\n * @i18n()\n * i18n = {\n * \"open\" : \"Open my element\",\n * \"close\" : \"Close my element\"\n * };\n * }\n *\n */\nexport function i18n() {\n return (protoOrDescriptor, name) => {\n const targetConnectedCallback = protoOrDescriptor.connectedCallback;\n const targetDisconnectedCallback = protoOrDescriptor.disconnectedCallback;\n function connectedCallback() {\n protoOrDescriptor.__i18nSub = GlobalStateService.stateUpdates.subscribe(update => {\n if (update.key === 'i18nRegistry') {\n this.requestUpdate(name);\n }\n });\n if (targetConnectedCallback) {\n targetConnectedCallback.apply(this);\n }\n }\n function disconnectedCallback() {\n protoOrDescriptor.__i18nSub.unsubscribe();\n if (targetDisconnectedCallback) {\n targetDisconnectedCallback.apply(this);\n }\n }\n protoOrDescriptor.connectedCallback = connectedCallback;\n protoOrDescriptor.disconnectedCallback = disconnectedCallback;\n const descriptor = {\n get() {\n const i18nObj = mergeObjects(I18nService.keys[this.__i18nKey], this.__i18n || {});\n return I18nService.hydrate(i18nObj, this);\n },\n set(value) {\n const newValues = getI18nValues(value, this);\n const testKey = I18nService.findKey(newValues);\n const strat = getI18nUpdateStrategy(testKey || '', this.__i18nKey, newValues, this.__i18n);\n if (typeof strat.key !== 'undefined') {\n this.__i18nKey = strat.key + '';\n }\n if (typeof strat.values !== 'undefined') {\n this.__i18n = { ...strat.values };\n }\n if (strat.update === true) {\n this.requestUpdate();\n }\n this.requestUpdate(name);\n },\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyI18n(descriptor, protoOrDescriptor, name)\n : standardI18n(descriptor, protoOrDescriptor);\n };\n}\nexport function getI18nValues(values, component) {\n if (isNilOrEmpty(values)) {\n let returnVal = {};\n if (component.hasAttribute('cds-i18n')) {\n const stringVal = component.getAttribute('cds-i18n') + '';\n if (isNilOrEmpty(stringVal)) {\n returnVal = {};\n }\n else {\n try {\n returnVal = JSON.parse(stringVal);\n }\n catch {\n LogService.warn('Clarity i18n: Invalid JSON passed to cds-i18n');\n returnVal = {};\n }\n }\n }\n return returnVal;\n }\n else {\n return values;\n }\n}\nexport function getI18nUpdateStrategy(newKey, oldKey, newValues, oldValues) {\n if (!isNilOrEmpty(newKey)) {\n if (newKey === oldKey) {\n return { update: false, values: {} };\n }\n else {\n return { update: true, key: newKey, values: {} };\n }\n }\n else if (!objectNaiveDeepEquals(newValues, oldValues)) {\n return { update: true, values: newValues };\n }\n return { update: false };\n}\n"],"names":["i18n","protoOrDescriptor","name","targetConnectedCallback","connectedCallback","targetDisconnectedCallback","disconnectedCallback","__i18nSub","GlobalStateService","stateUpdates","subscribe","update","key","this","requestUpdate","apply","unsubscribe","descriptor","get","i18nObj","mergeObjects","I18nService","keys","__i18nKey","__i18n","hydrate","set","value","newValues","getI18nValues","strat","getI18nUpdateStrategy","findKey","values","enumerable","configurable","undefined","desc","Object","defineProperty","property","type","attribute","legacyI18n","element","kind","placement","standardI18n","component","isNilOrEmpty","returnVal","hasAttribute","stringVal","getAttribute","JSON","parse","LogService","warn","newKey","oldKey","oldValues","objectNaiveDeepEquals"],"mappings":"+TA2CO,SAASA,IACZ,MAAO,CAACC,EAAmBC,KACvB,MAAMC,EAA0BF,EAAkBG,kBAC5CC,EAA6BJ,EAAkBK,qBAiBrDL,EAAkBG,kBAhBlB,WACIH,EAAkBM,UAAYC,EAAmBC,aAAaC,WAAUC,IACjD,iBAAfA,EAAOC,KACPC,KAAKC,cAAcZ,MAGvBC,GACAA,EAAwBY,MAAMF,OAUtCZ,EAAkBK,qBAPlB,WACIL,EAAkBM,UAAUS,cACxBX,GACAA,EAA2BU,MAAMF,OAKzC,MAAMI,EAAa,CACfC,MACI,MAAMC,EAAUC,EAAaC,EAAYC,KAAKT,KAAKU,WAAYV,KAAKW,QAAU,IAC9E,OAAOH,EAAYI,QAAQN,EAASN,OAExCa,IAAIC,GACA,MAAMC,EAAYC,EAAcF,EAAOd,MAEjCiB,EAAQC,EADEV,EAAYW,QAAQJ,IACW,GAAIf,KAAKU,UAAWK,EAAWf,KAAKW,aAC1D,IAAdM,EAAMlB,MACbC,KAAKU,UAAYO,EAAMlB,IAAM,SAEL,IAAjBkB,EAAMG,SACbpB,KAAKW,OAAS,IAAKM,EAAMG,UAER,IAAjBH,EAAMnB,QACNE,KAAKC,gBAETD,KAAKC,cAAcZ,IAEvBgC,YAAY,EACZC,cAAc,GAElB,YAAgBC,IAATlC,EA7Ef,SAAoBe,EAAYhB,EAAmBC,GAE/C,MAAMmC,EAAOC,OAAOC,eAAetC,EAAmBC,EAAMe,GAC5D,OAAOuB,EAAS,CAAEC,KAAMH,OAAQI,UAAW,YAApCF,CAAkDH,EAAMnC,GA2ErDyC,CAAW1B,EAAYhB,EAAmBC,GAvExD,SAAsBe,EAAY2B,GAC9B,MAAMP,EAAO,CACTQ,KAAM,SACNC,UAAW,YACXlC,IAAKgC,EAAQhC,IACbK,WAAAA,GAEJ,OAAOuB,EAAS,CAAEC,KAAMH,QAAjBE,CAA2BH,GAiExBU,CAAa9B,EAAYhB,IAGhC,SAAS4B,EAAcI,EAAQe,GAClC,GAAIC,EAAahB,GAAS,CACtB,IAAIiB,EAAY,GAChB,GAAIF,EAAUG,aAAa,YAAa,CACpC,MAAMC,EAAYJ,EAAUK,aAAa,YAAc,GACvD,GAAIJ,EAAaG,GACbF,EAAY,QAGZ,IACIA,EAAYI,KAAKC,MAAMH,GAE3B,MACII,EAAWC,KAAK,iDAChBP,EAAY,IAIxB,OAAOA,EAGP,OAAOjB,EAGR,SAASF,EAAsB2B,EAAQC,EAAQ/B,EAAWgC,GAC7D,OAAKX,EAAaS,GAQRG,EAAsBjC,EAAWgC,GAGpC,CAAEjD,QAAQ,GAFN,CAAEA,QAAQ,EAAMsB,OAAQL,GAR3B8B,IAAWC,EACJ,CAAEhD,QAAQ,EAAOsB,OAAQ,IAGzB,CAAEtB,QAAQ,EAAMC,IAAK8C,EAAQzB,OAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sources":["../../../../src/internal/decorators/id.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"id.js","sources":["../../../../src/internal/decorators/id.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 { createId } from './../utils/identity.js';\nconst legacyId = (descriptor, proto, name) => {\n Object.defineProperty(proto, name, descriptor);\n};\nconst standardId = (descriptor, element) => ({\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n});\nexport function id() {\n return (protoOrDescriptor, name) => {\n const descriptor = {\n get() {\n const propertyName = name !== undefined ? name : protoOrDescriptor.key;\n if (!this[`__${propertyName}`]) {\n // _ is used to ensure number is not first since this can create an invalid css selector\n this[`__${propertyName}`] = createId();\n }\n return this[`__${propertyName}`];\n },\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyId(descriptor, protoOrDescriptor, name)\n : standardId(descriptor, protoOrDescriptor);\n };\n}\n"],"names":["id","protoOrDescriptor","name","descriptor","get","propertyName","undefined","key","this","createId","enumerable","configurable","proto","Object","defineProperty","legacyId","element","kind","placement","standardId"],"mappings":"gDAeO,SAASA,IACZ,MAAO,CAACC,EAAmBC,KACvB,MAAMC,EAAa,CACfC,MACI,MAAMC,OAAwBC,IAATJ,EAAqBA,EAAOD,EAAkBM,IAKnE,OAJKC,KAAK,KAAKH,KAEXG,KAAK,KAAKH,GAAkBI,KAEzBD,KAAK,KAAKH,IAErBK,YAAY,EACZC,cAAc,GAElB,YAAgBL,IAATJ,EAvBE,EAACC,EAAYS,EAAOV,KACjCW,OAAOC,eAAeF,EAAOV,EAAMC,IAuBzBY,CAASZ,EAAYF,EAAmBC,GArBnC,EAACC,EAAYa,MAC5BC,KAAM,SACNC,UAAW,YACXX,IAAKS,EAAQT,IACbJ,WAAAA,IAkBUgB,CAAWhB,EAAYF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.js","sources":["../../../../src/internal/decorators/property.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"property.js","sources":["../../../../src/internal/decorators/property.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 { property as _property } from 'lit/decorators/property.js';\nimport { camelCaseToKebabCase, kebabCaseToPascalCase, capitalizeFirstLetter } from '../utils/string.js';\nimport { LogService } from '../services/log.service.js';\nimport { getAngularVersion, getReactVersion, getVueVersion } from '../utils/framework.js';\nimport { isNilOrEmpty } from '../utils/identity.js';\nimport { coerceBooleanProperty } from '../utils/dom.js';\n/**\n * https://developers.google.com/web/fundamentals/web-components/best-practices\n */\nexport function getDefaultOptions(propertyKey, options) {\n const type = options ? options.type : options;\n switch (type) {\n case Array:\n return { reflect: false, ...options };\n case Object:\n return { reflect: false, ...options };\n case String:\n return {\n reflect: true,\n attribute: camelCaseToKebabCase(propertyKey),\n converter: {\n toAttribute: (value) => (value ? value : null),\n },\n ...options,\n };\n case Number:\n return { reflect: true, attribute: camelCaseToKebabCase(propertyKey), ...options };\n case Boolean:\n return {\n reflect: true,\n attribute: camelCaseToKebabCase(propertyKey),\n converter: {\n // Mimic standard HTML boolean attributes + support \"false\" attribute values\n // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes\n toAttribute: (value) => (value ? '' : null),\n fromAttribute: (value) => coerceBooleanProperty(value),\n },\n ...options,\n };\n case Date: {\n return {\n // Parse date strings from attributes but do not reflect back into attribute\n reflect: false,\n converter: {\n fromAttribute: (value) => new Date(value),\n },\n ...options,\n };\n }\n default:\n return { ...options };\n }\n}\nexport function requirePropertyCheck(protoOrDescriptor, name, options) {\n const targetFirstUpdated = protoOrDescriptor.firstUpdated;\n function firstUpdated(props) {\n if (options && options.required && isNilOrEmpty(this[name])) {\n const message = options.requiredMessage || getRequiredMessage(options.required, name, this.tagName);\n if (options.required === 'error') {\n throw new Error(message);\n }\n else {\n LogService.warn(message, this);\n }\n }\n if (targetFirstUpdated) {\n targetFirstUpdated.apply(this, [props]);\n }\n }\n protoOrDescriptor.firstUpdated = firstUpdated;\n}\n/**\n * In React, DOM attributes and properties are camelCase, except for aria- and data- attributes\n * https://reactjs.org/docs/dom-elements.html\n *\n * This will format aria attributes as kebab case, otherwise returning the original property name\n */\nfunction getReactPropertyName(propertyName) {\n if (propertyName.startsWith('aria')) {\n return camelCaseToKebabCase(propertyName);\n }\n return propertyName;\n}\nfunction getRequiredMessage(level = 'warning', propertyName, tagName) {\n const tag = tagName.toLocaleLowerCase();\n return (`${capitalizeFirstLetter(level)}: ${propertyName} is required to use ${tag} component. Set the JS Property or HTML Attribute.\\n\\n` +\n `${getAngularVersion() ? `Angular: <${tag} [${propertyName}]=\"...\"></${tag}>\\n` : ''}` +\n `${getVueVersion() ? `Vue: <${tag} :${propertyName}=\"...\"></${tag}>\\n` : ''}` +\n `${getReactVersion() ? `React: <${kebabCaseToPascalCase(tag)} ${getReactPropertyName(propertyName)}={...} />\\n` : ''}` +\n `${`HTML: <${tag} ${camelCaseToKebabCase(propertyName)}=\"...\"></${tag}>\\n`}` +\n `${`JavaScript: document.querySelector('${tag}').${propertyName} = '...';\\n\\n`}`);\n}\n/**\n * lit @property decorator with custom defaults specific to Clarity.\n * https://lit.dev/docs/components/properties/\n *\n * A property decorator which creates a LitElement property which reflects a\n * corresponding attribute value. A PropertyDeclaration may optionally be\n * supplied to configure property features.\n *\n * @ExportDecoratedItems\n */\nexport function property(options) {\n return (protoOrDescriptor, name) => {\n if (options?.required) {\n requirePropertyCheck(protoOrDescriptor, name, options);\n }\n return _property(getDefaultOptions(name, options))(protoOrDescriptor, name);\n };\n}\n/**\n * lit @state decorator with custom defaults specific to Clarity.\n *\n * This is used for communication between internal component properties\n * that are not exposed as part of the public component API.\n * https://lit.dev/docs/api/decorators/#state\n *\n * @ExportDecoratedItems\n */\nexport function state(options) {\n return (protoOrDescriptor, name) => {\n const defaultOptions = getDefaultOptions(name, options);\n if (defaultOptions) {\n defaultOptions.reflect = options?.reflect ? options.reflect : false; // prevent attr reflection by default\n if (defaultOptions.reflect && !options?.attribute) {\n // mark as internal attr if reflect and no provided attr\n // see description for more detail https://github.com/vmware/clarity/pull/5431\n defaultOptions.attribute = `_${camelCaseToKebabCase(name)}`;\n }\n }\n return _property(defaultOptions)(protoOrDescriptor, name);\n };\n}\n"],"names":["getDefaultOptions","propertyKey","options","type","Array","Object","reflect","String","attribute","camelCaseToKebabCase","converter","toAttribute","value","Number","Boolean","fromAttribute","coerceBooleanProperty","Date","requirePropertyCheck","protoOrDescriptor","name","targetFirstUpdated","firstUpdated","props","required","isNilOrEmpty","this","message","requiredMessage","level","propertyName","tagName","tag","toLocaleLowerCase","capitalizeFirstLetter","getAngularVersion","getVueVersion","getReactVersion","kebabCaseToPascalCase","startsWith","getReactPropertyName","getRequiredMessage","Error","LogService","warn","apply","property","_property","state","defaultOptions"],"mappings":"4aAcO,SAASA,EAAkBC,EAAaC,GAE3C,OADaA,EAAUA,EAAQC,KAAOD,GAElC,KAAKE,MAEL,KAAKC,OACD,MAAO,CAAEC,SAAS,KAAUJ,GAChC,KAAKK,OACD,MAAO,CACHD,SAAS,EACTE,UAAWC,EAAqBR,GAChCS,UAAW,CACPC,YAAcC,GAAWA,GAAgB,SAE1CV,GAEX,KAAKW,OACD,MAAO,CAAEP,SAAS,EAAME,UAAWC,EAAqBR,MAAiBC,GAC7E,KAAKY,QACD,MAAO,CACHR,SAAS,EACTE,UAAWC,EAAqBR,GAChCS,UAAW,CAGPC,YAAcC,GAAWA,EAAQ,GAAK,KACtCG,cAAgBH,GAAUI,EAAsBJ,OAEjDV,GAEX,KAAKe,KACD,MAAO,CAEHX,SAAS,EACTI,UAAW,CACPK,cAAgBH,GAAU,IAAIK,KAAKL,OAEpCV,GAGX,QACI,MAAO,IAAKA,IAGjB,SAASgB,EAAqBC,EAAmBC,EAAMlB,GAC1D,MAAMmB,EAAqBF,EAAkBG,aAe7CH,EAAkBG,aAdlB,SAAsBC,GAClB,GAAIrB,GAAWA,EAAQsB,UAAYC,EAAaC,KAAKN,IAAQ,CACzD,MAAMO,EAAUzB,EAAQ0B,iBA0BpC,SAA4BC,EAAQ,UAAWC,EAAcC,GACzD,MAAMC,EAAMD,EAAQE,oBACpB,MAAQ,GAAGC,EAAsBL,OAAWC,wBAAmCE,2DACxEG,IAAsB,aAAaH,MAAQF,cAAyBE,OAAW,KAC/EI,IAAkB,SAASJ,MAAQF,aAAwBE,OAAW,KACtEK,IAAoB,WAAWC,EAAsBN,MAXhE,SAA8BF,GAC1B,OAAIA,EAAaS,WAAW,QACjB9B,EAAqBqB,GAEzBA,EAO6DU,CAAqBV,gBAA6B,IAClH,UAAaE,KAAOvB,EAAqBqB,cAAyBE,OAClE,uCAA0CA,OAASF,iBAjCJW,CAAmBvC,EAAQsB,SAAUJ,EAAMM,KAAKK,SAC3F,GAAyB,UAArB7B,EAAQsB,SACR,MAAUkB,MAAMf,GAGhBgB,EAAWC,KAAKjB,EAASD,MAG7BL,GACAA,EAAmBwB,KAAMnB,KAAOH,IAoCrC,SAASuB,EAAS5C,GACrB,MAAO,CAACiB,EAAmBC,KACnBlB,GAASsB,UACTN,EAAqBC,EAAmBC,EAAMlB,GAE3C6C,EAAU/C,EAAkBoB,EAAMlB,GAAlC6C,CAA4C5B,EAAmBC,IAYvE,SAAS4B,EAAM9C,GAClB,MAAO,CAACiB,EAAmBC,KACvB,MAAM6B,EAAiBjD,EAAkBoB,EAAMlB,GAS/C,OARI+C,IACAA,EAAe3C,UAAUJ,GAASI,SAAUJ,EAAQI,QAChD2C,EAAe3C,UAAYJ,GAASM,YAGpCyC,EAAezC,UAAY,IAAIC,EAAqBW,KAGrD2B,EAAUE,EAAVF,CAA0B5B,EAAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-slot.js","sources":["../../../../src/internal/decorators/query-slot.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"query-slot.js","sources":["../../../../src/internal/decorators/query-slot.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 { LogService, notProductionEnvironment } from '../services/log.service.js';\n// Slot Query decorators are similar to the query decorator in lit.\n// Instead of querying the component template they query the content slot of the component.\nconst legacyQuery = (descriptor, proto, name) => {\n Object.defineProperty(proto, name, descriptor);\n};\nconst standardQuery = (descriptor, element) => ({\n kind: 'method',\n placement: 'prototype',\n key: element.key,\n descriptor,\n});\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's light DOM Slot.\n *\n * @ExportDecoratedItems\n */\nexport function querySlot(selector, config) {\n return (protoOrDescriptor, name) => {\n const targetFirstUpdated = protoOrDescriptor.firstUpdated;\n function firstUpdated() {\n const ref = this.querySelector(selector);\n const shouldExempt = config?.exemptOn && config?.exemptOn(this);\n if (!ref && notProductionEnvironment() && config?.required && !shouldExempt) {\n const message = config.requiredMessage ||\n `The <${selector}> element is required to use <${this.tagName.toLocaleLowerCase()}>`;\n if (config.required === 'error') {\n throw new Error(message);\n }\n else {\n LogService.warn(message, this);\n }\n }\n if (config?.assign && ref?.hasAttribute('slot') === false) {\n ref.setAttribute('slot', config.assign);\n }\n if (targetFirstUpdated) {\n targetFirstUpdated.apply(this);\n }\n }\n protoOrDescriptor.firstUpdated = firstUpdated;\n const descriptor = {\n get() {\n return this.querySelector(selector);\n },\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyQuery(descriptor, protoOrDescriptor, name)\n : standardQuery(descriptor, protoOrDescriptor);\n };\n}\n/**\n * A property decorator that converts a class property into a getter\n * that executes a querySelectorAll on the element's light DOM Slot.\n *\n * @ExportDecoratedItems\n */\nexport function querySlotAll(selector, config) {\n return (protoOrDescriptor, name) => {\n const targetFirstUpdated = protoOrDescriptor.firstUpdated;\n function firstUpdated(props) {\n if (config?.assign) {\n Array.from(this.querySelectorAll(selector))\n .filter((i) => !i.hasAttribute('slot'))\n .forEach((i) => i.setAttribute('slot', config.assign));\n }\n if (targetFirstUpdated) {\n targetFirstUpdated.apply(this, [props]);\n }\n }\n protoOrDescriptor.firstUpdated = firstUpdated;\n const descriptor = {\n get() {\n return this.querySelectorAll(selector);\n },\n enumerable: true,\n configurable: true,\n };\n return name !== undefined\n ? legacyQuery(descriptor, protoOrDescriptor, name)\n : standardQuery(descriptor, protoOrDescriptor);\n };\n}\n"],"names":["legacyQuery","descriptor","proto","name","Object","defineProperty","standardQuery","element","kind","placement","key","querySlot","selector","config","protoOrDescriptor","targetFirstUpdated","firstUpdated","ref","this","querySelector","shouldExempt","exemptOn","notProductionEnvironment","required","message","requiredMessage","tagName","toLocaleLowerCase","Error","LogService","warn","assign","hasAttribute","setAttribute","apply","get","enumerable","configurable","undefined","querySlotAll","props","Array","from","querySelectorAll","filter","i","forEach"],"mappings":"sFAQA,MAAMA,EAAc,CAACC,EAAYC,EAAOC,KACpCC,OAAOC,eAAeH,EAAOC,EAAMF,IAEjCK,EAAgB,CAACL,EAAYM,MAC/BC,KAAM,SACNC,UAAW,YACXC,IAAKH,EAAQG,IACbT,WAAAA,IAQG,SAASU,EAAUC,EAAUC,GAChC,MAAO,CAACC,EAAmBX,KACvB,MAAMY,EAAqBD,EAAkBE,aAqB7CF,EAAkBE,aApBlB,WACI,MAAMC,EAAMC,KAAKC,cAAcP,GACzBQ,EAAeP,GAAQQ,UAAYR,GAAQQ,SAASH,MAC1D,IAAKD,GAAOK,KAA8BT,GAAQU,WAAaH,EAAc,CACzE,MAAMI,EAAUX,EAAOY,iBACnB,QAAQb,kCAAyCM,KAAKQ,QAAQC,uBAClE,GAAwB,UAApBd,EAAOU,SACP,MAAUK,MAAMJ,GAGhBK,EAAWC,KAAKN,EAASN,MAG7BL,GAAQkB,SAAwC,IAA9Bd,GAAKe,aAAa,SACpCf,EAAIgB,aAAa,OAAQpB,EAAOkB,QAEhChB,GACAA,EAAmBmB,MAAMhB,OAIjC,MAAMjB,EAAa,CACfkC,MACI,OAAOjB,KAAKC,cAAcP,IAE9BwB,YAAY,EACZC,cAAc,GAElB,YAAgBC,IAATnC,EACDH,EAAYC,EAAYa,EAAmBX,GAC3CG,EAAcL,EAAYa,IASjC,SAASyB,EAAa3B,EAAUC,GACnC,MAAO,CAACC,EAAmBX,KACvB,MAAMY,EAAqBD,EAAkBE,aAW7CF,EAAkBE,aAVlB,SAAsBwB,GACd3B,GAAQkB,QACRU,MAAMC,KAAKxB,KAAKyB,iBAAiB/B,IAC5BgC,QAAQC,IAAOA,EAAEb,aAAa,UAC9Bc,SAASD,GAAMA,EAAEZ,aAAa,OAAQpB,EAAOkB,UAElDhB,GACAA,EAAmBmB,KAAMhB,KAAOsB,IAIxC,MAAMvC,EAAa,CACfkC,MACI,OAAOjB,KAAKyB,iBAAiB/B,IAEjCwB,YAAY,EACZC,cAAc,GAElB,YAAgBC,IAATnC,EACDH,EAAYC,EAAYa,EAAmBX,GAC3CG,EAAcL,EAAYa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/internal/decorators/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/internal/decorators/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 */\n// TC39 Decorators proposal\nexport const classStandardDecorator = (value, descriptor, fn) => {\n const { kind, elements } = descriptor;\n return {\n kind,\n elements,\n finisher(classDef) {\n fn(value, classDef);\n },\n };\n};\n// Legacy TS Decorator\nexport const classLegacyDecorator = (value, classDef, fn) => {\n fn(value, classDef);\n return classDef;\n};\n"],"names":["classStandardDecorator","value","descriptor","fn","kind","elements","finisher","classDef","classLegacyDecorator"],"mappings":"AAMY,MAACA,EAAyB,CAACC,EAAOC,EAAYC,KACtD,MAAMC,KAAEA,EAAIC,SAAEA,GAAaH,EAC3B,MAAO,CACHE,KAAAA,EACAC,SAAAA,EACAC,SAASC,GACLJ,EAAGF,EAAOM,MAKTC,EAAuB,CAACP,EAAOM,EAAUJ,KAClDA,EAAGF,EAAOM,GACHA"}
|