@cds/core 5.6.4 → 6.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-content.element.js.map +1 -1
- package/accordion/accordion-content.element.scss.js +1 -1
- package/accordion/accordion-content.element.scss.js.map +1 -1
- package/accordion/accordion-header.element.d.ts +2 -0
- package/accordion/accordion-header.element.js +1 -1
- package/accordion/accordion-header.element.js.map +1 -1
- package/accordion/accordion-header.element.scss.js +1 -1
- package/accordion/accordion-header.element.scss.js.map +1 -1
- package/accordion/accordion-panel.element.d.ts +2 -2
- package/accordion/accordion-panel.element.js +1 -1
- package/accordion/accordion-panel.element.js.map +1 -1
- package/accordion/accordion-panel.element.scss.js +1 -1
- package/accordion/accordion-panel.element.scss.js.map +1 -1
- package/accordion/accordion.element.js.map +1 -1
- package/accordion/accordion.element.scss.js +1 -1
- package/accordion/accordion.element.scss.js.map +1 -1
- package/accordion/index.js +1 -1
- package/accordion/index.js.map +1 -1
- package/accordion/register.d.ts +1 -0
- package/accordion/register.js +1 -1
- package/accordion/register.js.map +1 -1
- package/alert/alert-actions.element.js +1 -1
- package/alert/alert-actions.element.js.map +1 -1
- package/alert/alert-actions.element.scss.js +1 -1
- package/alert/alert-actions.element.scss.js.map +1 -1
- package/alert/alert-group.element.js +1 -1
- package/alert/alert-group.element.js.map +1 -1
- package/alert/alert-group.element.scss.js +1 -1
- package/alert/alert-group.element.scss.js.map +1 -1
- package/alert/alert.element.d.ts +2 -3
- package/alert/alert.element.js +1 -1
- package/alert/alert.element.js.map +1 -1
- package/alert/alert.element.scss.js +1 -1
- package/alert/alert.element.scss.js.map +1 -1
- package/alert/alert.interfaces.js.map +1 -1
- package/alert/index.js.map +1 -1
- package/alert/register.js.map +1 -1
- package/badge/badge.element.js +1 -1
- package/badge/badge.element.js.map +1 -1
- package/badge/badge.element.scss.js +1 -1
- package/badge/badge.element.scss.js.map +1 -1
- package/badge/index.js.map +1 -1
- package/badge/register.js.map +1 -1
- package/breadcrumb/breadcrumb.element.d.ts +0 -1
- package/breadcrumb/breadcrumb.element.js +1 -1
- package/breadcrumb/breadcrumb.element.js.map +1 -1
- package/breadcrumb/breadcrumb.element.scss.js +1 -1
- package/breadcrumb/breadcrumb.element.scss.js.map +1 -1
- package/breadcrumb/index.js.map +1 -1
- package/breadcrumb/register.js.map +1 -1
- package/button/button.element.d.ts +1 -1
- package/button/button.element.js +1 -1
- package/button/button.element.js.map +1 -1
- package/button/button.element.scss.js +1 -1
- package/button/button.element.scss.js.map +1 -1
- package/button/icon-button.element.d.ts +1 -9
- package/button/icon-button.element.js +1 -1
- package/button/icon-button.element.js.map +1 -1
- package/button/index.d.ts +0 -1
- package/button/index.js +1 -1
- package/button/index.js.map +1 -1
- package/button/register.d.ts +0 -2
- package/button/register.js +1 -1
- package/button/register.js.map +1 -1
- package/button-action/button-action.element.d.ts +45 -0
- package/button-action/button-action.element.js +2 -0
- package/button-action/button-action.element.js.map +1 -0
- package/button-action/button-action.element.scss.js +2 -0
- package/button-action/button-action.element.scss.js.map +1 -0
- package/button-action/index.d.ts +1 -0
- package/button-action/index.js +2 -0
- package/button-action/index.js.map +1 -0
- package/button-action/register.d.ts +7 -0
- package/button-action/register.js +2 -0
- package/button-action/register.js.map +1 -0
- package/button-expand/button-expand.element.d.ts +25 -0
- package/button-expand/button-expand.element.js +2 -0
- package/button-expand/button-expand.element.js.map +1 -0
- package/button-expand/button-expand.element.scss.js +2 -0
- package/button-expand/button-expand.element.scss.js.map +1 -0
- package/button-expand/index.d.ts +1 -0
- package/button-expand/index.js +2 -0
- package/button-expand/index.js.map +1 -0
- package/button-expand/register.d.ts +7 -0
- package/button-expand/register.js +2 -0
- package/button-expand/register.js.map +1 -0
- package/button-handle/button-handle.element.d.ts +19 -0
- package/button-handle/button-handle.element.js +2 -0
- package/button-handle/button-handle.element.js.map +1 -0
- package/button-handle/button-handle.element.scss.js +2 -0
- package/button-handle/button-handle.element.scss.js.map +1 -0
- package/button-handle/index.d.ts +1 -0
- package/button-handle/index.js +2 -0
- package/button-handle/index.js.map +1 -0
- package/button-handle/register.d.ts +7 -0
- package/button-handle/register.js +2 -0
- package/button-handle/register.js.map +1 -0
- package/{button/inline-button.element.d.ts → button-inline/button-inline.element.d.ts} +10 -3
- package/button-inline/button-inline.element.js +2 -0
- package/button-inline/button-inline.element.js.map +1 -0
- package/{button/inline-button.element.scss.js → button-inline/button-inline.element.scss.js} +2 -2
- package/button-inline/button-inline.element.scss.js.map +1 -0
- package/button-inline/index.d.ts +1 -0
- package/button-inline/index.js +2 -0
- package/button-inline/index.js.map +1 -0
- package/button-inline/register.d.ts +11 -0
- package/button-inline/register.js +2 -0
- package/button-inline/register.js.map +1 -0
- package/button-sort/button-sort.element.d.ts +23 -0
- package/button-sort/button-sort.element.js +2 -0
- package/button-sort/button-sort.element.js.map +1 -0
- package/button-sort/button-sort.element.scss.js +2 -0
- package/button-sort/button-sort.element.scss.js.map +1 -0
- package/button-sort/index.d.ts +1 -0
- package/button-sort/index.js +2 -0
- package/button-sort/index.js.map +1 -0
- package/button-sort/register.d.ts +7 -0
- package/button-sort/register.js +2 -0
- package/button-sort/register.js.map +1 -0
- package/button-sort/utils.d.ts +1 -0
- package/button-sort/utils.js +2 -0
- package/button-sort/utils.js.map +1 -0
- package/card/card.element.d.ts +4 -5
- package/card/card.element.js +1 -1
- package/card/card.element.js.map +1 -1
- package/card/card.element.scss.js +1 -1
- package/card/card.element.scss.js.map +1 -1
- package/card/index.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/checkbox.element.scss.js +1 -1
- package/checkbox/checkbox.element.scss.js.map +1 -1
- package/checkbox/index.js +1 -1
- package/checkbox/index.js.map +1 -1
- package/checkbox/register.js.map +1 -1
- package/custom-elements.json +43931 -82333
- package/datalist/datalist.element.d.ts +0 -1
- package/datalist/datalist.element.js +1 -1
- package/datalist/datalist.element.js.map +1 -1
- package/datalist/datalist.global.scss.js +1 -1
- package/datalist/datalist.global.scss.js.map +1 -1
- package/datalist/index.js.map +1 -1
- package/datalist/register.d.ts +1 -1
- package/datalist/register.js +1 -1
- package/datalist/register.js.map +1 -1
- package/date/date.element.d.ts +0 -1
- package/date/date.element.js +1 -1
- package/date/date.element.js.map +1 -1
- package/date/date.global.scss.js +1 -1
- package/date/date.global.scss.js.map +1 -1
- package/date/index.js.map +1 -1
- package/date/register.d.ts +1 -0
- package/date/register.js +1 -1
- package/date/register.js.map +1 -1
- package/demo/data/demo.service.d.ts +6 -0
- package/demo/data/demo.service.js +2 -0
- package/demo/data/demo.service.js.map +1 -0
- package/demo/data/food.data.d.ts +2 -0
- package/demo/data/food.data.js +2 -0
- package/demo/data/food.data.js.map +1 -0
- package/demo/data/infrastructure.data.d.ts +2 -0
- package/demo/data/infrastructure.data.js +2 -0
- package/demo/data/infrastructure.data.js.map +1 -0
- package/demo/data/interfaces.d.ts +31 -0
- package/demo/data/interfaces.js +2 -0
- package/demo/data/interfaces.js.map +1 -0
- package/demo/data/system.data.d.ts +2 -0
- package/demo/data/system.data.js +2 -0
- package/demo/data/system.data.js.map +1 -0
- package/demo/index.d.ts +43 -0
- package/demo/index.js +2 -0
- package/demo/index.js.map +1 -0
- package/demo/utils.d.ts +67 -0
- package/demo/utils.js +2 -0
- package/demo/utils.js.map +1 -0
- package/divider/divider.element.d.ts +1 -1
- package/divider/divider.element.js +1 -1
- package/divider/divider.element.js.map +1 -1
- package/divider/divider.element.scss.js +1 -1
- package/divider/divider.element.scss.js.map +1 -1
- package/divider/index.js.map +1 -1
- package/divider/register.js.map +1 -1
- package/dropdown/dropdown.element.d.ts +42 -0
- package/dropdown/dropdown.element.js +2 -0
- package/dropdown/dropdown.element.js.map +1 -0
- package/dropdown/index.d.ts +1 -0
- package/dropdown/index.js +2 -0
- package/dropdown/index.js.map +1 -0
- package/dropdown/register.d.ts +7 -0
- package/dropdown/register.js +2 -0
- package/dropdown/register.js.map +1 -0
- package/file/file.element.d.ts +0 -1
- package/file/file.element.js +1 -1
- package/file/file.element.js.map +1 -1
- package/file/file.element.scss.js +1 -1
- package/file/file.element.scss.js.map +1 -1
- package/file/index.js.map +1 -1
- package/file/register.d.ts +1 -0
- package/file/register.js +1 -1
- package/file/register.js.map +1 -1
- package/forms/control/control.element.d.ts +1 -1
- package/forms/control/control.element.js +2 -2
- package/forms/control/control.element.js.map +1 -1
- package/forms/control/control.element.scss.js +1 -1
- package/forms/control/control.element.scss.js.map +1 -1
- package/forms/control-action/control-action.element.d.ts +4 -14
- package/forms/control-action/control-action.element.js +1 -1
- package/forms/control-action/control-action.element.js.map +1 -1
- package/forms/control-group/control-group.element.d.ts +1 -4
- package/forms/control-group/control-group.element.js +1 -1
- package/forms/control-group/control-group.element.js.map +1 -1
- package/forms/control-group/control-group.element.scss.js +1 -1
- package/forms/control-group/control-group.element.scss.js.map +1 -1
- package/forms/control-inline/control-inline.element.d.ts +2 -2
- package/forms/control-inline/control-inline.element.js +1 -1
- package/forms/control-inline/control-inline.element.js.map +1 -1
- package/forms/control-inline/control-inline.element.scss.js +1 -1
- package/forms/control-inline/control-inline.element.scss.js.map +1 -1
- package/forms/control-label/control-label.element.js +1 -1
- package/forms/control-label/control-label.element.js.map +1 -1
- package/forms/control-label/control-label.element.scss.js +1 -1
- package/forms/control-label/control-label.element.scss.js.map +1 -1
- package/forms/control-message/control-message.element.js +1 -1
- package/forms/control-message/control-message.element.js.map +1 -1
- package/forms/control-message/control-message.element.scss.js +1 -1
- package/forms/control-message/control-message.element.scss.js.map +1 -1
- package/forms/form-group/form-group.element.d.ts +2 -2
- package/forms/form-group/form-group.element.js +1 -1
- package/forms/form-group/form-group.element.js.map +1 -1
- package/forms/form-group/form-group.element.scss.js +1 -1
- package/forms/form-group/form-group.element.scss.js.map +1 -1
- package/forms/index.js.map +1 -1
- package/forms/register.d.ts +1 -0
- package/forms/register.js +1 -1
- package/forms/register.js.map +1 -1
- package/forms/utils/interfaces.js.map +1 -1
- package/forms/utils/{index.d.ts → utils.d.ts} +0 -0
- package/forms/utils/utils.js +2 -0
- package/forms/utils/utils.js.map +1 -0
- package/forms/utils/validate.js +1 -1
- package/forms/utils/validate.js.map +1 -1
- package/global.css +1964 -1037
- package/global.min.css +1 -1
- package/grid/cell/grid-cell.element.d.ts +25 -0
- package/grid/cell/grid-cell.element.js +2 -0
- package/grid/cell/grid-cell.element.js.map +1 -0
- package/grid/cell/grid-cell.element.scss.js +2 -0
- package/grid/cell/grid-cell.element.scss.js.map +1 -0
- package/grid/column/grid-column-position.controller.d.ts +15 -0
- package/grid/column/grid-column-position.controller.js +2 -0
- package/grid/column/grid-column-position.controller.js.map +1 -0
- package/grid/column/grid-column-size.controller.d.ts +18 -0
- package/grid/column/grid-column-size.controller.js +2 -0
- package/grid/column/grid-column-size.controller.js.map +1 -0
- package/grid/column/grid-column.element.d.ts +53 -0
- package/grid/column/grid-column.element.js +2 -0
- package/grid/column/grid-column.element.js.map +1 -0
- package/grid/column/grid-column.element.scss.js +2 -0
- package/grid/column/grid-column.element.scss.js.map +1 -0
- package/grid/detail/grid-detail.element.d.ts +59 -0
- package/grid/detail/grid-detail.element.js +2 -0
- package/grid/detail/grid-detail.element.js.map +1 -0
- package/grid/detail/grid-detail.element.scss.js +2 -0
- package/grid/detail/grid-detail.element.scss.js.map +1 -0
- package/grid/footer/grid-footer.element.d.ts +36 -0
- package/grid/footer/grid-footer.element.js +2 -0
- package/grid/footer/grid-footer.element.js.map +1 -0
- package/grid/footer/grid-footer.element.scss.js +2 -0
- package/grid/footer/grid-footer.element.scss.js.map +1 -0
- package/grid/grid/grid-layout.controller.d.ts +31 -0
- package/grid/grid/grid-layout.controller.js +2 -0
- package/grid/grid/grid-layout.controller.js.map +1 -0
- package/grid/grid/grid.element.d.ts +73 -0
- package/grid/grid/grid.element.js +2 -0
- package/grid/grid/grid.element.js.map +1 -0
- package/grid/grid/grid.element.scss.js +2 -0
- package/grid/grid/grid.element.scss.js.map +1 -0
- package/grid/index.d.ts +8 -0
- package/grid/index.js +2 -0
- package/grid/index.js.map +1 -0
- package/grid/pagination/grid-pagination.element.d.ts +52 -0
- package/grid/pagination/grid-pagination.element.js +2 -0
- package/grid/pagination/grid-pagination.element.js.map +1 -0
- package/grid/pagination/grid-pagination.element.scss.js +2 -0
- package/grid/pagination/grid-pagination.element.scss.js.map +1 -0
- package/grid/placeholder/grid-placeholder.element.d.ts +36 -0
- package/grid/placeholder/grid-placeholder.element.js +2 -0
- package/grid/placeholder/grid-placeholder.element.js.map +1 -0
- package/grid/placeholder/grid-placeholder.element.scss.js +2 -0
- package/grid/placeholder/grid-placeholder.element.scss.js.map +1 -0
- package/grid/register.d.ts +23 -0
- package/grid/register.js +2 -0
- package/grid/register.js.map +1 -0
- package/grid/row/grid-row-position.controller.d.ts +9 -0
- package/grid/row/grid-row-position.controller.js +2 -0
- package/grid/row/grid-row-position.controller.js.map +1 -0
- package/grid/row/grid-row.element.d.ts +25 -0
- package/grid/row/grid-row.element.js +2 -0
- package/grid/row/grid-row.element.js.map +1 -0
- package/grid/row/grid-row.element.scss.js +2 -0
- package/grid/row/grid-row.element.scss.js.map +1 -0
- package/icon/collections/chart.js.map +1 -1
- package/icon/collections/commerce.js.map +1 -1
- package/icon/collections/core.d.ts +4 -0
- package/icon/collections/core.js +1 -1
- package/icon/collections/core.js.map +1 -1
- package/icon/collections/essential.d.ts +4 -0
- package/icon/collections/essential.js +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.d.ts +2 -0
- package/icon/collections/social.js +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 +1 -1
- package/icon/icon.element.js.map +1 -1
- package/icon/icon.element.scss.js +1 -1
- package/icon/icon.element.scss.js.map +1 -1
- package/icon/icon.renderer.js.map +1 -1
- package/icon/icon.service.js.map +1 -1
- package/icon/index.d.ts +19 -7
- package/icon/index.js +1 -1
- package/icon/index.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.d.ts +3 -0
- package/icon/shapes/contract.js +2 -0
- package/icon/shapes/contract.js.map +1 -0
- 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.d.ts +3 -0
- package/icon/shapes/detail-collapse.js +2 -0
- package/icon/shapes/detail-collapse.js.map +1 -0
- package/icon/shapes/detail-expand.d.ts +3 -0
- package/icon/shapes/detail-expand.js +2 -0
- package/icon/shapes/detail-expand.js.map +1 -0
- 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 +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.d.ts +3 -0
- package/icon/shapes/launchpad.js +2 -0
- package/icon/shapes/launchpad.js.map +1 -0
- 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 +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.d.ts +3 -0
- package/icon/shapes/unpin.js +2 -0
- package/icon/shapes/unpin.js.map +1 -0
- 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.d.ts +1 -0
- package/icon/utils/icon.classnames.js +1 -1
- package/icon/utils/icon.classnames.js.map +1 -1
- package/icon/utils/icon.svg-helpers.js +1 -1
- package/icon/utils/icon.svg-helpers.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/input/index.js +1 -1
- package/input/index.js.map +1 -1
- package/input/input-group.element.js +1 -1
- package/input/input-group.element.js.map +1 -1
- package/input/input-group.element.scss.js +1 -1
- package/input/input-group.element.scss.js.map +1 -1
- package/input/input.element.js.map +1 -1
- package/input/input.element.scss.js +1 -1
- package/input/input.element.scss.js.map +1 -1
- package/input/register.js.map +1 -1
- package/internal/base/base.element.scss.js +1 -1
- package/internal/base/base.element.scss.js.map +1 -1
- package/internal/base/button.base.d.ts +7 -36
- package/internal/base/button.base.js +1 -1
- package/internal/base/button.base.js.map +1 -1
- package/internal/base/focus-trap.base.d.ts +7 -15
- package/internal/base/focus-trap.base.js +1 -1
- package/internal/base/focus-trap.base.js.map +1 -1
- package/internal/controllers/active.controller.d.ts +20 -0
- package/internal/controllers/active.controller.js +2 -0
- package/internal/controllers/active.controller.js.map +1 -0
- package/internal/controllers/aria-button.controller.d.ts +15 -0
- package/internal/controllers/aria-button.controller.js +2 -0
- package/internal/controllers/aria-button.controller.js.map +1 -0
- package/internal/controllers/aria-disabled.controller.d.ts +14 -0
- package/internal/controllers/aria-disabled.controller.js +2 -0
- package/internal/controllers/aria-disabled.controller.js.map +1 -0
- package/internal/controllers/aria-expanded.controller.d.ts +14 -0
- package/internal/controllers/aria-expanded.controller.js +2 -0
- package/internal/controllers/aria-expanded.controller.js.map +1 -0
- package/internal/controllers/aria-grid.controller.d.ts +57 -0
- package/internal/controllers/aria-grid.controller.js +2 -0
- package/internal/controllers/aria-grid.controller.js.map +1 -0
- package/internal/controllers/aria-modal.controller.d.ts +11 -0
- package/internal/controllers/aria-modal.controller.js +2 -0
- package/internal/controllers/aria-modal.controller.js.map +1 -0
- package/internal/controllers/aria-multiselectable.controller.d.ts +13 -0
- package/internal/controllers/aria-multiselectable.controller.js +2 -0
- package/internal/controllers/aria-multiselectable.controller.js.map +1 -0
- package/internal/controllers/aria-popup-trigger.controller.d.ts +14 -0
- package/internal/controllers/aria-popup-trigger.controller.js +2 -0
- package/internal/controllers/aria-popup-trigger.controller.js.map +1 -0
- package/internal/controllers/aria-popup.controller.d.ts +19 -0
- package/internal/controllers/aria-popup.controller.js +2 -0
- package/internal/controllers/aria-popup.controller.js.map +1 -0
- package/internal/controllers/aria-pressed.controller.d.ts +15 -0
- package/internal/controllers/aria-pressed.controller.js +2 -0
- package/internal/controllers/aria-pressed.controller.js.map +1 -0
- package/internal/controllers/aria-selected.controller.d.ts +13 -0
- package/internal/controllers/aria-selected.controller.js +2 -0
- package/internal/controllers/aria-selected.controller.js.map +1 -0
- package/internal/controllers/button-anchor.controller.d.ts +26 -0
- package/internal/controllers/button-anchor.controller.js +2 -0
- package/internal/controllers/button-anchor.controller.js.map +1 -0
- package/internal/controllers/button-submit.controller.d.ts +27 -0
- package/internal/controllers/button-submit.controller.js +2 -0
- package/internal/controllers/button-submit.controller.js.map +1 -0
- package/internal/controllers/closable.controller.d.ts +23 -0
- package/internal/controllers/closable.controller.js +2 -0
- package/internal/controllers/closable.controller.js.map +1 -0
- package/internal/controllers/draggable-list.controller.d.ts +32 -0
- package/internal/controllers/draggable-list.controller.js +2 -0
- package/internal/controllers/draggable-list.controller.js.map +1 -0
- package/internal/controllers/first-focus.controller.d.ts +17 -0
- package/internal/controllers/first-focus.controller.js +2 -0
- package/internal/controllers/first-focus.controller.js.map +1 -0
- package/internal/controllers/grid-range-selection.controller.d.ts +28 -0
- package/internal/controllers/grid-range-selection.controller.js +2 -0
- package/internal/controllers/grid-range-selection.controller.js.map +1 -0
- package/internal/controllers/inline-focus-trap.controller.d.ts +17 -0
- package/internal/controllers/inline-focus-trap.controller.js +2 -0
- package/internal/controllers/inline-focus-trap.controller.js.map +1 -0
- package/internal/controllers/key-navigation-grid.controller.d.ts +28 -0
- package/internal/controllers/key-navigation-grid.controller.js +2 -0
- package/internal/controllers/key-navigation-grid.controller.js.map +1 -0
- package/internal/controllers/key-navigation-list.controller.d.ts +26 -0
- package/internal/controllers/key-navigation-list.controller.js +2 -0
- package/internal/controllers/key-navigation-list.controller.js.map +1 -0
- package/internal/controllers/key-navigation.utils.d.ts +19 -0
- package/internal/controllers/key-navigation.utils.js +2 -0
- package/internal/controllers/key-navigation.utils.js.map +1 -0
- package/internal/controllers/layer.controller.d.ts +24 -0
- package/internal/controllers/layer.controller.js +2 -0
- package/internal/controllers/layer.controller.js.map +1 -0
- package/internal/controllers/responsive.controller.d.ts +19 -0
- package/internal/controllers/responsive.controller.js +2 -0
- package/internal/controllers/responsive.controller.js.map +1 -0
- package/internal/controllers/scrollable-list-visibility.controller.d.ts +13 -0
- package/internal/controllers/scrollable-list-visibility.controller.js +2 -0
- package/internal/controllers/scrollable-list-visibility.controller.js.map +1 -0
- package/internal/controllers/touch.controller.d.ts +22 -0
- package/internal/controllers/touch.controller.js +2 -0
- package/internal/controllers/touch.controller.js.map +1 -0
- package/internal/controllers/trigger.controller.d.ts +31 -0
- package/internal/controllers/trigger.controller.js +2 -0
- package/internal/controllers/trigger.controller.js.map +1 -0
- package/internal/decorators/animate.d.ts +2 -2
- package/internal/decorators/animate.js +1 -1
- package/internal/decorators/animate.js.map +1 -1
- package/internal/decorators/element.d.ts +15 -18
- package/internal/decorators/element.js +2 -0
- package/internal/decorators/element.js.map +1 -0
- package/internal/decorators/event.js.map +1 -1
- package/internal/decorators/global-style.js.map +1 -1
- package/internal/decorators/i18n.d.ts +16 -0
- package/internal/decorators/i18n.js +1 -1
- package/internal/decorators/i18n.js.map +1 -1
- package/internal/decorators/id.d.ts +1 -1
- package/internal/decorators/id.js.map +1 -1
- package/internal/decorators/property.d.ts +3 -16
- package/internal/decorators/property.js +1 -1
- package/internal/decorators/property.js.map +1 -1
- package/internal/decorators/query-slot.d.ts +2 -2
- package/internal/decorators/query-slot.js +1 -1
- package/internal/decorators/query-slot.js.map +1 -1
- package/internal/decorators/utils.d.ts +23 -0
- package/internal/decorators/utils.js +2 -0
- package/internal/decorators/utils.js.map +1 -0
- package/internal/directives/spread-props.js.map +1 -1
- package/internal/i18n/utils.js.map +1 -1
- package/internal/index.d.ts +49 -4
- package/internal/index.js +1 -1
- package/internal/index.js.map +1 -1
- package/internal/interfaces/{index.d.ts → interfaces.d.ts} +0 -0
- package/internal/interfaces/interfaces.js +2 -0
- package/internal/interfaces/interfaces.js.map +1 -0
- 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.d.ts +3 -0
- package/internal/motion/animations/cds-dropdown-open.js +2 -0
- package/internal/motion/animations/cds-dropdown-open.js.map +1 -0
- package/internal/motion/animations/cds-modal-enter.js +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.d.ts +4 -5
- package/internal/motion/interfaces.js.map +1 -1
- package/internal/motion/motion.service.js.map +1 -1
- package/internal/motion/utils.d.ts +4 -4
- package/internal/motion/utils.js +1 -1
- package/internal/motion/utils.js.map +1 -1
- package/internal/positioning/interfaces.d.ts +61 -0
- package/internal/positioning/interfaces.js +2 -0
- package/internal/positioning/interfaces.js.map +1 -0
- package/internal/positioning/utils.d.ts +26 -0
- package/internal/positioning/utils.js +2 -0
- package/internal/positioning/utils.js.map +1 -0
- package/internal/services/focus-trap-tracker.service.d.ts +3 -0
- package/internal/services/focus-trap-tracker.service.js +1 -1
- package/internal/services/focus-trap-tracker.service.js.map +1 -1
- package/internal/services/global.service.d.ts +2 -2
- package/internal/services/global.service.js.map +1 -1
- package/internal/services/i18n.service.d.ts +37 -37
- package/internal/services/i18n.service.js +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 +1 -1
- package/internal/utils/__.js.map +1 -1
- package/internal/utils/a11y.js.map +1 -1
- package/internal/utils/array.d.ts +9 -4
- package/internal/utils/array.js +1 -1
- package/internal/utils/array.js.map +1 -1
- package/internal/utils/async.js.map +1 -1
- package/internal/utils/browser.d.ts +7 -0
- package/internal/utils/browser.js +2 -0
- package/internal/utils/browser.js.map +1 -0
- package/internal/utils/color.js.map +1 -1
- package/internal/utils/conditional.d.ts +4 -1
- package/internal/utils/conditional.js +1 -1
- package/internal/utils/conditional.js.map +1 -1
- package/internal/utils/css.d.ts +2 -0
- package/internal/utils/css.js +1 -1
- package/internal/utils/css.js.map +1 -1
- package/internal/utils/dom.d.ts +25 -2
- package/internal/utils/dom.js +1 -1
- package/internal/utils/dom.js.map +1 -1
- package/internal/utils/enum.d.ts +1 -0
- package/internal/utils/enum.js +2 -0
- package/internal/utils/enum.js.map +1 -0
- package/internal/utils/environment.js +1 -1
- package/internal/utils/environment.js.map +1 -1
- package/internal/utils/event-subject.js.map +1 -1
- package/internal/utils/events.d.ts +4 -0
- package/internal/utils/events.js +1 -1
- package/internal/utils/events.js.map +1 -1
- package/internal/utils/exists.d.ts +1 -1
- package/internal/utils/exists.js.map +1 -1
- package/internal/utils/focus.d.ts +12 -0
- package/internal/utils/focus.js +2 -0
- package/internal/utils/focus.js.map +1 -0
- package/internal/utils/framework.js +1 -1
- package/internal/utils/framework.js.map +1 -1
- package/internal/utils/global.d.ts +5 -3
- package/internal/utils/global.js +1 -1
- package/internal/utils/global.js.map +1 -1
- package/internal/utils/identity.d.ts +31 -1
- package/internal/utils/identity.js +1 -1
- package/internal/utils/identity.js.map +1 -1
- package/internal/utils/keycodes.d.ts +11 -0
- package/internal/utils/keycodes.js +1 -1
- package/internal/utils/keycodes.js.map +1 -1
- package/internal/utils/lit.d.ts +5 -1
- package/internal/utils/lit.js +1 -1
- package/internal/utils/lit.js.map +1 -1
- package/internal/utils/math.d.ts +4 -0
- package/internal/utils/math.js +2 -0
- package/internal/utils/math.js.map +1 -0
- package/internal/utils/metadata.js +1 -1
- package/internal/utils/metadata.js.map +1 -1
- package/internal/utils/{register.d.ts → registration.d.ts} +0 -0
- package/internal/utils/registration.js +2 -0
- package/internal/utils/registration.js.map +1 -0
- package/internal/utils/responsive.d.ts +2 -2
- package/internal/utils/responsive.js +1 -1
- package/internal/utils/responsive.js.map +1 -1
- package/internal/utils/size.js.map +1 -1
- package/internal/utils/string.d.ts +6 -0
- package/internal/utils/string.js +1 -1
- package/internal/utils/string.js.map +1 -1
- package/internal/utils/supports.d.ts +0 -2
- package/internal/utils/supports.js +1 -1
- package/internal/utils/supports.js.map +1 -1
- package/internal/utils/traversal.d.ts +3 -0
- package/internal/utils/traversal.js +2 -0
- package/internal/utils/traversal.js.map +1 -0
- package/internal-components/close-button/close-button.element.d.ts +5 -14
- package/internal-components/close-button/close-button.element.js +1 -1
- package/internal-components/close-button/close-button.element.js.map +1 -1
- package/internal-components/close-button/index.js +1 -1
- package/internal-components/close-button/index.js.map +1 -1
- package/internal-components/close-button/register.js +1 -1
- package/internal-components/close-button/register.js.map +1 -1
- package/internal-components/overlay/index.js +1 -1
- package/internal-components/overlay/index.js.map +1 -1
- package/internal-components/overlay/overlay.element.d.ts +22 -25
- package/internal-components/overlay/overlay.element.js +1 -1
- package/internal-components/overlay/overlay.element.js.map +1 -1
- package/internal-components/overlay/overlay.element.scss.js +1 -1
- package/internal-components/overlay/overlay.element.scss.js.map +1 -1
- package/internal-components/overlay/register.js.map +1 -1
- package/internal-components/overlay/shared.element.scss.js +2 -0
- package/internal-components/overlay/shared.element.scss.js.map +1 -0
- package/internal-components/panel/index.js +1 -1
- package/internal-components/panel/index.js.map +1 -1
- package/internal-components/panel/panel.element.d.ts +1 -1
- package/internal-components/panel/panel.element.js.map +1 -1
- package/internal-components/panel/panel.element.scss.js +1 -1
- package/internal-components/panel/panel.element.scss.js.map +1 -1
- package/internal-components/panel/register.js.map +1 -1
- package/internal-components/popup/index.d.ts +2 -0
- package/internal-components/popup/index.js +2 -0
- package/internal-components/popup/index.js.map +1 -0
- package/internal-components/popup/pointer.element.d.ts +35 -0
- package/internal-components/popup/pointer.element.js +2 -0
- package/internal-components/popup/pointer.element.js.map +1 -0
- package/internal-components/popup/pointer.element.scss.js +2 -0
- package/internal-components/popup/pointer.element.scss.js.map +1 -0
- package/internal-components/popup/popup.element.d.ts +114 -0
- package/internal-components/popup/popup.element.js +2 -0
- package/internal-components/popup/popup.element.js.map +1 -0
- package/internal-components/popup/popup.element.scss.js +2 -0
- package/internal-components/popup/popup.element.scss.js.map +1 -0
- package/internal-components/popup/register.d.ts +9 -0
- package/internal-components/popup/register.js +2 -0
- package/internal-components/popup/register.js.map +1 -0
- package/internal-components/popup/utils/pointer.utils.d.ts +2 -0
- package/internal-components/popup/utils/pointer.utils.js +2 -0
- package/internal-components/popup/utils/pointer.utils.js.map +1 -0
- package/internal-components/split-handle/index.d.ts +1 -0
- package/internal-components/split-handle/index.js +2 -0
- package/internal-components/split-handle/index.js.map +1 -0
- package/internal-components/split-handle/register.d.ts +7 -0
- package/internal-components/split-handle/register.js +2 -0
- package/internal-components/split-handle/register.js.map +1 -0
- package/internal-components/split-handle/split-handle.element.d.ts +38 -0
- package/internal-components/split-handle/split-handle.element.js +2 -0
- package/internal-components/split-handle/split-handle.element.js.map +1 -0
- package/internal-components/split-handle/split-handle.element.scss.js +2 -0
- package/internal-components/split-handle/split-handle.element.scss.js.map +1 -0
- package/internal-components/visual-checkbox/index.js.map +1 -1
- package/internal-components/visual-checkbox/register.js.map +1 -1
- package/internal-components/visual-checkbox/visual-checkbox.element.js +1 -1
- package/internal-components/visual-checkbox/visual-checkbox.element.js.map +1 -1
- package/internal-components/visual-checkbox/visual-checkbox.element.scss.js +1 -1
- package/internal-components/visual-checkbox/visual-checkbox.element.scss.js.map +1 -1
- package/list/list.css +22 -12
- package/list/list.min.css +1 -1
- package/modal/index.js +1 -1
- package/modal/index.js.map +1 -1
- package/modal/modal-actions.element.js +1 -1
- package/modal/modal-actions.element.js.map +1 -1
- package/modal/modal-content.element.d.ts +0 -1
- package/modal/modal-content.element.js +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.d.ts +15 -6
- package/modal/modal.element.js +1 -1
- package/modal/modal.element.js.map +1 -1
- package/modal/modal.element.scss.js +1 -1
- package/modal/modal.element.scss.js.map +1 -1
- package/modal/register.js.map +1 -1
- package/navigation/index.js.map +1 -1
- package/navigation/navigation-group.element.d.ts +7 -5
- package/navigation/navigation-group.element.js +1 -1
- package/navigation/navigation-group.element.js.map +1 -1
- package/navigation/navigation-group.element.scss.js +1 -5
- package/navigation/navigation-group.element.scss.js.map +1 -1
- package/navigation/navigation-item.element.d.ts +6 -4
- package/navigation/navigation-item.element.js +1 -1
- package/navigation/navigation-item.element.js.map +1 -1
- package/navigation/navigation-item.element.scss.js +1 -5
- package/navigation/navigation-item.element.scss.js.map +1 -1
- package/navigation/navigation-start.element.d.ts +7 -4
- package/navigation/navigation-start.element.js +1 -1
- package/navigation/navigation-start.element.js.map +1 -1
- package/navigation/navigation.element.d.ts +10 -8
- package/navigation/navigation.element.js +1 -1
- package/navigation/navigation.element.js.map +1 -1
- package/navigation/navigation.element.scss.js +1 -1
- package/navigation/navigation.element.scss.js.map +1 -1
- package/navigation/register.js.map +1 -1
- package/navigation/utils/{index.d.ts → utils.d.ts} +0 -0
- package/navigation/utils/utils.js +2 -0
- package/navigation/utils/utils.js.map +1 -0
- package/package.json +136 -96
- package/pagination/index.js.map +1 -1
- package/pagination/pagination-button.element.d.ts +6 -10
- package/pagination/pagination-button.element.js +1 -1
- package/pagination/pagination-button.element.js.map +1 -1
- package/pagination/pagination.element.d.ts +1 -1
- package/pagination/pagination.element.js +1 -1
- package/pagination/pagination.element.js.map +1 -1
- package/pagination/pagination.element.scss.js +1 -1
- package/pagination/pagination.element.scss.js.map +1 -1
- package/pagination/register.d.ts +1 -0
- package/pagination/register.js +1 -1
- package/pagination/register.js.map +1 -1
- package/pagination/utils.d.ts +5 -0
- package/pagination/utils.js +2 -0
- package/pagination/utils.js.map +1 -0
- package/password/index.js.map +1 -1
- package/password/password.element.js +1 -1
- package/password/password.element.js.map +1 -1
- package/password/register.d.ts +1 -0
- package/password/register.js +1 -1
- package/password/register.js.map +1 -1
- package/polyfills/aria-reflect.js.map +1 -1
- package/polyfills/at.d.ts +15 -0
- package/polyfills/at.js +2 -0
- package/polyfills/at.js.map +1 -0
- package/polyfills/index.d.ts +1 -0
- package/polyfills/index.js +1 -1
- package/polyfills/index.js.map +1 -1
- package/progress-circle/index.js.map +1 -1
- package/progress-circle/progress-circle.element.d.ts +3 -21
- package/progress-circle/progress-circle.element.js +1 -1
- package/progress-circle/progress-circle.element.js.map +1 -1
- package/progress-circle/progress-circle.element.scss.js +1 -1
- package/progress-circle/progress-circle.element.scss.js.map +1 -1
- package/progress-circle/progress-circle.utils.d.ts +0 -5
- package/progress-circle/progress-circle.utils.js +1 -1
- package/progress-circle/progress-circle.utils.js.map +1 -1
- package/progress-circle/register.js.map +1 -1
- package/radio/index.js +1 -1
- package/radio/index.js.map +1 -1
- package/radio/radio-group.element.d.ts +1 -1
- package/radio/radio-group.element.js.map +1 -1
- package/radio/radio.element.js.map +1 -1
- package/radio/radio.element.scss.js +1 -1
- package/radio/radio.element.scss.js.map +1 -1
- package/radio/register.js.map +1 -1
- package/range/index.js.map +1 -1
- package/range/range.element.js +1 -1
- package/range/range.element.js.map +1 -1
- package/range/range.element.scss.js +1 -1
- package/range/range.element.scss.js.map +1 -1
- package/range/range.global.scss.js +1 -1
- package/range/range.global.scss.js.map +1 -1
- package/range/register.js.map +1 -1
- package/search/index.js.map +1 -1
- package/search/register.d.ts +1 -0
- package/search/register.js +1 -1
- package/search/register.js.map +1 -1
- package/search/search.element.js +1 -1
- package/search/search.element.js.map +1 -1
- package/search/search.global.scss.js +1 -1
- package/search/search.global.scss.js.map +1 -1
- package/select/index.js.map +1 -1
- package/select/register.d.ts +1 -1
- package/select/register.js +1 -1
- package/select/register.js.map +1 -1
- package/select/select.element.js +1 -1
- package/select/select.element.js.map +1 -1
- package/select/select.element.scss.js +1 -1
- package/select/select.element.scss.js.map +1 -1
- package/select/select.global.scss.js +1 -1
- package/select/select.global.scss.js.map +1 -1
- package/selection-panels/checkbox/checkbox-panel.element.d.ts +9 -13
- package/selection-panels/checkbox/checkbox-panel.element.js +1 -1
- package/selection-panels/checkbox/checkbox-panel.element.js.map +1 -1
- package/selection-panels/checkbox/index.js.map +1 -1
- package/selection-panels/checkbox/register.js.map +1 -1
- package/selection-panels/radio/index.js.map +1 -1
- package/selection-panels/radio/radio-panel.element.d.ts +19 -14
- package/selection-panels/radio/radio-panel.element.js +1 -1
- package/selection-panels/radio/radio-panel.element.js.map +1 -1
- package/selection-panels/radio/register.js.map +1 -1
- package/selection-panels/shared/selection-panel.element.scss.js +1 -5
- package/selection-panels/shared/selection-panel.element.scss.js.map +1 -1
- package/signpost/index.d.ts +1 -0
- package/signpost/index.js +2 -0
- package/signpost/index.js.map +1 -0
- package/signpost/register.d.ts +7 -0
- package/signpost/register.js +2 -0
- package/signpost/register.js.map +1 -0
- package/signpost/signpost.element.d.ts +44 -0
- package/signpost/signpost.element.js +2 -0
- package/signpost/signpost.element.js.map +1 -0
- package/styles/module.layout.css +1469 -657
- package/styles/module.layout.min.css +1 -1
- package/styles/module.reset.css +5 -0
- package/styles/module.tokens.css +74 -55
- package/styles/module.tokens.min.css +1 -1
- package/styles/module.typography.css +112 -26
- package/styles/module.typography.min.css +1 -1
- package/styles/shim.clr-ui.css +640 -0
- package/styles/shim.clr-ui.min.css +121 -0
- package/styles/theme.dark.css +12 -9
- package/styles/theme.dark.min.css +1 -1
- package/styles/theme.high-contrast.css +43 -0
- package/styles/theme.high-contrast.min.css +1 -0
- package/styles/theme.low-motion.css +10 -0
- package/table/table.css +17 -7
- package/table/table.min.css +1 -1
- package/tag/index.js.map +1 -1
- package/tag/register.js.map +1 -1
- package/tag/tag.element.d.ts +3 -2
- package/tag/tag.element.js +1 -1
- package/tag/tag.element.js.map +1 -1
- package/tag/tag.element.scss.js +1 -1
- package/tag/tag.element.scss.js.map +1 -1
- package/test/index.d.ts +1 -0
- package/test/index.js +1 -1
- package/test/index.js.map +1 -1
- package/test/utils.d.ts +1 -1
- package/test/utils.js +1 -1
- package/test/utils.js.map +1 -1
- package/test/web-test-server.d.ts +6 -0
- package/test/web-test-server.js +2 -0
- package/test/web-test-server.js.map +1 -0
- package/test-dropdown/index.js.map +1 -1
- package/test-dropdown/register.js.map +1 -1
- package/test-dropdown/test-dropdown.element.d.ts +2 -3
- package/test-dropdown/test-dropdown.element.js +1 -1
- package/test-dropdown/test-dropdown.element.js.map +1 -1
- package/test-dropdown/test-dropdown.element.scss.js +1 -1
- package/test-dropdown/test-dropdown.element.scss.js.map +1 -1
- package/textarea/index.js +1 -1
- package/textarea/index.js.map +1 -1
- package/textarea/register.js.map +1 -1
- package/textarea/textarea.element.js +1 -1
- package/textarea/textarea.element.js.map +1 -1
- package/textarea/textarea.element.scss.js +1 -1
- package/textarea/textarea.element.scss.js.map +1 -1
- package/time/index.js.map +1 -1
- package/time/register.d.ts +1 -0
- package/time/register.js +1 -1
- package/time/register.js.map +1 -1
- package/time/time.element.d.ts +0 -1
- package/time/time.element.js +1 -1
- package/time/time.element.js.map +1 -1
- package/time/time.global.scss.js +1 -1
- package/time/time.global.scss.js.map +1 -1
- package/toggle/index.js +1 -1
- package/toggle/index.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 +1 -1
- package/toggle/toggle.element.js.map +1 -1
- package/toggle/toggle.element.scss.js +1 -1
- package/toggle/toggle.element.scss.js.map +1 -1
- package/tokens/tokens.android.xml +33 -14
- package/tokens/tokens.d.ts +28 -9
- package/tokens/tokens.ios.swift +34 -15
- package/tokens/tokens.js +29 -10
- package/tokens/tokens.json +130 -29
- package/tokens/tokens.scss +90 -12
- package/tree-view/index.js.map +1 -1
- package/tree-view/register.d.ts +1 -0
- package/tree-view/register.js +1 -1
- package/tree-view/register.js.map +1 -1
- package/tree-view/story-utils.d.ts +22 -0
- package/tree-view/tree-item.element.d.ts +10 -3
- package/tree-view/tree-item.element.js +1 -1
- package/tree-view/tree-item.element.js.map +1 -1
- package/tree-view/tree-item.element.scss.js +1 -1
- package/tree-view/tree-item.element.scss.js.map +1 -1
- package/tree-view/tree.element.d.ts +0 -1
- package/tree-view/tree.element.js +1 -1
- package/tree-view/tree.element.js.map +1 -1
- package/tree-view/tree.element.scss.js +1 -1
- package/tree-view/tree.element.scss.js.map +1 -1
- package/_virtual/_virtual_library-entry-points +0 -2
- package/_virtual/_virtual_library-entry-points.map +0 -1
- package/button/icon-button.element.scss.js +0 -2
- package/button/icon-button.element.scss.js.map +0 -1
- package/button/inline-button.element.js +0 -2
- package/button/inline-button.element.js.map +0 -1
- package/button/inline-button.element.scss.js.map +0 -1
- package/custom-elements.legacy.json +0 -4599
- package/forms/control-action/control-action.element.scss.js +0 -2
- package/forms/control-action/control-action.element.scss.js.map +0 -1
- package/forms/utils/index.js +0 -2
- package/forms/utils/index.js.map +0 -1
- package/internal/base/css-gap.base.d.ts +0 -18
- package/internal/base/css-gap.base.js +0 -2
- package/internal/base/css-gap.base.js.map +0 -1
- package/internal/interfaces/index.js +0 -2
- package/internal/interfaces/index.js.map +0 -1
- package/internal/utils/focus-trap.d.ts +0 -22
- package/internal/utils/focus-trap.js +0 -2
- package/internal/utils/focus-trap.js.map +0 -1
- package/internal/utils/register.js +0 -2
- package/internal/utils/register.js.map +0 -1
- package/internal-components/close-button/close-button.element.scss.js +0 -2
- package/internal-components/close-button/close-button.element.scss.js.map +0 -1
- package/navigation/utils/index.js +0 -2
- package/navigation/utils/index.js.map +0 -1
- package/pagination/pagination-button.element.scss.js +0 -2
- package/pagination/pagination-button.element.scss.js.map +0 -1
- package/search/search.element.scss.js +0 -2
- package/search/search.element.scss.js.map +0 -1
- package/styles/module.shims.css +0 -896
- package/styles/module.shims.min.css +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{querySelectorRoots as e}from"../utils/dom.js";import{onFirstInteraction as t,onChildListMutation as r}from"../utils/events.js";import{createId as a}from"../utils/identity.js";import{KeyNavigationListController as s}from"./key-navigation-list.controller.js";let i=null;function d(e){return t=>t.addInitializer((t=>new n(t,e)))}class n{constructor(e,t){this.host=e,this.id="__"+a(),this.host.addController(this),this.config={layout:"both",item:"",dropZone:"",manageFocus:!0,manageTabindex:!1,...t}}get items(){return e(this.host,this.config.item+'[draggable="true"]')}get dropZones(){return e(this.host,this.config.dropZone+'[draggable="false"]')}async hostConnected(){await this.host.updateComplete,t(this.host).then((()=>{this.addDragEventListeners(this.items),this.initializeKeyListController(),this.host.addEventListener("click",(async e=>this.clickItem(e))),this.host.addEventListener("cdsKeyChange",(e=>this.focusItem(e))),this.host.shadowRoot?.addEventListener("click",(async e=>this.clickItem(e))),this.host.shadowRoot?.addEventListener("cdsKeyChange",(e=>this.focusItem(e))),this.observer=r(this.host,(e=>{if(e){const t=Array.from(e.addedNodes).filter((e=>e.draggable));t.length&&this.addDragEventListeners(t)}}))}))}hostDisconnected(){this.observer?.disconnect()}initializeKeyListController(){Object.defineProperty(this.host,this.id,{get:()=>this.items.map((e=>e.querySelector("[cds-draggable]")))}),new s(this.host,{layout:this.config.layout,keyListItems:this.id,manageFocus:this.config.manageFocus,manageTabindex:this.config.manageTabindex})}clickItem(e){const t=Array.from(e.composedPath()).find((e=>e.getAttribute&&"handle"===e.getAttribute("cds-draggable"))),r=e.composedPath()[0].closest("[draggable]");t&&r&&("true"===t.ariaPressed?(r.setAttribute("cds-draggable","active"),o(e.currentTarget,r,null,"grabbed","touch")):"false"===t.ariaPressed&&(r.removeAttribute("cds-draggable"),o(e.currentTarget,r,null,"dropped","touch")))}focusItem(e){if(e.detail.keyListItems===this.id&&"active"===e.detail.previousItem?.closest("[draggable]").getAttribute("cds-draggable")){const t=e.detail.previousItem?.closest("[draggable]"),r=e.detail.activeItem.closest("[draggable]");"handle"===e.detail.activeItem.getAttribute("cds-draggable")&&t!==r&&(e.detail.previousItem.ariaPressed="false",e.detail.activeItem.ariaPressed="true",e.detail.previousItem.pressed=!1,e.detail.activeItem.pressed=!0,t.removeAttribute("cds-draggable"),r.setAttribute("cds-draggable","active"),o(e.detail.activeItem,t,r,"reordered","key"))}}addDragEventListeners(e){e.filter((e=>!e.cdsDraggableItem)).forEach((e=>{return(t=e).cdsDraggableItem="item",t.addEventListener("dragstart",g,!1),t.addEventListener("dragover",c,!1),t.addEventListener("drop",l,!1),t.addEventListener("dragleave",u,!1),void t.addEventListener("dragend",(e=>e.currentTarget.removeAttribute("cds-draggable")),!1);var t})),this.dropZones.filter((e=>!e.cdsDraggableItem)).forEach((e=>{e.addEventListener("dragover",c,!1),e.addEventListener("dragleave",u,!1),e.addEventListener("drop",l,!1),e.cdsDraggableItem="dropzone"}))}}async function o(e,t,r,a,s){e?.updateComplete&&await e.updateComplete,e.dispatchEvent(new CustomEvent("cdsDraggableChange",{detail:{from:t,target:r,type:a,interaction:s},bubbles:!0}))}function g(e){i=e.currentTarget,e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage(e.currentTarget,0,0),e.currentTarget.setAttribute("cds-draggable","active"),o(e.currentTarget,e.currentTarget,null,"grabbed","touch")}function c(e){return e.preventDefault&&e.preventDefault(),e.dataTransfer.dropEffect="move",i!==e.currentTarget&&e.currentTarget.setAttribute("cds-draggable","target"),!1}function l(e){const t=i,r=e.currentTarget;return t?.removeAttribute("cds-draggable"),r?.removeAttribute("cds-draggable"),o(e.currentTarget,t,r,"reordered","touch"),!1}function u(e){"target"===e.currentTarget.getAttribute("cds-draggable")&&e.currentTarget.removeAttribute("cds-draggable")}export{n as DraggableListController,d as draggableList};
|
|
2
|
+
//# sourceMappingURL=draggable-list.controller.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
export interface FirstFocusConfig {
|
|
3
|
+
fallback: 'none' | 'host' | 'focusable';
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Provides a focus first behavior to any component via the cds-first-focus attribute
|
|
7
|
+
*/
|
|
8
|
+
export declare function firstFocus<T extends ReactiveElement>(config?: FirstFocusConfig): ClassDecorator;
|
|
9
|
+
export declare class FirstFocusController<T extends ReactiveElement> implements ReactiveController {
|
|
10
|
+
private host;
|
|
11
|
+
private config;
|
|
12
|
+
private observer;
|
|
13
|
+
constructor(host: T, config?: FirstFocusConfig);
|
|
14
|
+
hostConnected(): Promise<void>;
|
|
15
|
+
hostDisconnected(): void;
|
|
16
|
+
private cdsFocusFirst;
|
|
17
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ignoreFocus as s,focusable as t,focusElement as o}from"../utils/focus.js";import{listenForAttributeChange as i}from"../utils/events.js";import{getFlattenedDOMTree as c}from"../utils/traversal.js";function h(s={fallback:"focusable"}){return t=>t.addInitializer((t=>new e(t,s)))}class e{constructor(s,t={fallback:"focusable"}){this.host=s,this.config=t,this.host.addController(this)}async hostConnected(){await this.host.updateComplete,this.observer=i(this.host,"hidden",(()=>this.cdsFocusFirst())),this.cdsFocusFirst()}hostDisconnected(){this.observer?.disconnect()}cdsFocusFirst(){if(!s(this.host)){const s=this.host.shadowRoot?this.host.shadowRoot:this.host,i=s.querySelector(".private-host")??this.host,h=c(s).filter((s=>!s.hasAttribute("cds-focus-boundary"))),e=h.find((s=>s.hasAttribute("cds-first-focus"))),r="focusable"===this.config.fallback?h.find((s=>t(s)&&!s.classList.contains("private-host"))):null,a="none"===this.config.fallback?null:i,n=e??r??a;n&&o(n)}}}export{e as FirstFocusController,h as firstFocus};
|
|
2
|
+
//# sourceMappingURL=first-focus.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-focus.controller.js","sources":["../../../../src/internal/controllers/first-focus.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 { 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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
declare type GridRange = {
|
|
3
|
+
grid: HTMLElement;
|
|
4
|
+
cells: NodeListOf<HTMLElement>;
|
|
5
|
+
rows: NodeListOf<HTMLElement>;
|
|
6
|
+
rangeSelection?: boolean;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Given a 2d array grid structure provide a highlight/range selection of given cells
|
|
10
|
+
*/
|
|
11
|
+
export declare function gridRangeSelection<T extends ReactiveElement & GridRange>(): ClassDecorator;
|
|
12
|
+
export declare class GridRangeSelectionController<T extends ReactiveElement & GridRange> implements ReactiveController {
|
|
13
|
+
private host;
|
|
14
|
+
private selectionActive;
|
|
15
|
+
private firstCell;
|
|
16
|
+
private activeCell;
|
|
17
|
+
private get enabled();
|
|
18
|
+
constructor(host: T);
|
|
19
|
+
hostConnected(): Promise<void>;
|
|
20
|
+
private setupMouseEvents;
|
|
21
|
+
private setupKeyboardListeners;
|
|
22
|
+
private setFirstCell;
|
|
23
|
+
private setActiveCell;
|
|
24
|
+
private stopSelection;
|
|
25
|
+
private resetAllActiveCells;
|
|
26
|
+
private calculateSelection;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function t(){return t=>t.addInitializer((t=>new e(t)))}class e{constructor(t){this.host=t,this.selectionActive=!1,t.addController(this)}get enabled(){return!1!==this.host.rangeSelection&&!Array.from(this.host.rows).find((t=>t.draggable))}async hostConnected(){await this.host.updateComplete,this.setupKeyboardListeners(),this.setupMouseEvents()}setupMouseEvents(){const t=this.host.grid.shadowRoot?this.host.grid.shadowRoot:this.host.grid;t.addEventListener("mousedown",(t=>{this.enabled&&1===t.buttons&&!t.ctrlKey&&this.setFirstCell(t)})),t.addEventListener("mouseover",(t=>{this.enabled&&this.setActiveCell(t.composedPath().find((t=>Array.from(this.host.cells).includes(t))))})),t.addEventListener("mouseup",(()=>{this.enabled&&this.stopSelection()}))}setupKeyboardListeners(){this.host.addEventListener("cdsKeyChange",(t=>{this.enabled&&t.detail.code&&(this.setActiveCell(t.detail.activeItem),t.detail.shiftKey||(this.stopSelection(),this.resetAllActiveCells(),this.host.dispatchEvent(new CustomEvent("rangeSelectionChange",{detail:[]}))))})),this.host.addEventListener("keydown",(t=>{this.enabled&&"ShiftLeft"===t.code&&t.shiftKey&&!this.selectionActive&&this.setFirstCell(t)}))}setFirstCell(t){const e=t.composedPath().find((t=>Array.from(this.host.cells).includes(t)));e&&(this.firstCell=e,this.selectionActive=!0,this.resetAllActiveCells())}setActiveCell(t){t&&this.selectionActive&&(this.activeCell=t,this.calculateSelection())}stopSelection(){this.selectionActive=!1}resetAllActiveCells(){this.host.cells.forEach((t=>t.removeAttribute("highlight")))}calculateSelection(){const t=parseInt(this.firstCell.ariaColIndex),e=parseInt(this.activeCell.ariaColIndex),s=parseInt(this.firstCell.parentElement?.ariaRowIndex),i=parseInt(this.activeCell.parentElement?.ariaRowIndex);this.resetAllActiveCells(),this.host.cells.forEach((l=>{const h=parseInt(l.ariaColIndex),n=parseInt(l.parentElement?.ariaRowIndex);(t<=e&&h>=t&&h<=e||t>=e&&h<=t&&h>=e)&&(s<=i&&n>=s&&n<=i||s>=i&&n<=s&&n>=i)&&l.setAttribute("highlight","")})),this.host.dispatchEvent(new CustomEvent("rangeSelectionChange",{detail:Array.from(this.host.cells).filter((t=>t.hasAttribute("highlight")))}))}}export{e as GridRangeSelectionController,t as gridRangeSelection};
|
|
2
|
+
//# sourceMappingURL=grid-range-selection.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-range-selection.controller.js","sources":["../../../../src/internal/controllers/grid-range-selection.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 */\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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Focus Trap that given a DOM element creates a flattened tree traversal
|
|
4
|
+
* between both Shadow DOM and Light DOM
|
|
5
|
+
*
|
|
6
|
+
* safari https://bugs.webkit.org/show_bug.cgi?id=174667
|
|
7
|
+
*/
|
|
8
|
+
export declare function focusTrap<T extends ReactiveElement>(): ClassDecorator;
|
|
9
|
+
export declare class InlineFocusTrapController<T extends ReactiveElement> implements ReactiveController {
|
|
10
|
+
private host;
|
|
11
|
+
constructor(host: T);
|
|
12
|
+
private get focusableItems();
|
|
13
|
+
private get root();
|
|
14
|
+
private get styles();
|
|
15
|
+
private boundary;
|
|
16
|
+
hostConnected(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{html as t}from"lit";import{getFlattenedFocusableItems as s}from"../utils/traversal.js";import{renderBefore as o,renderAfter as i}from"../utils/lit.js";import{ignoreFocus as r}from"../utils/focus.js";function h(){return t=>t.addInitializer((t=>new e(t)))}class e{constructor(t){this.host=t,this.host.addController(this)}get focusableItems(){return s(this.root).filter((t=>!t.hasAttribute("cds-focus-boundary")&&(this.root.contains(t)||t.closest("[cds-focus-trap]")===this.host)))}get root(){return this.host.shadowRoot?this.host.shadowRoot:this.host}get styles(){return t`<style cds-focus-style>:host(:focus-within) [cds-focus-boundary],:host(:host:focus-within) [cds-focus-boundary]{display:block!important}</style>`}boundary(s){return t`<div @focusin="${()=>this.focusableItems.at(s)?.focus()}" test="${s}" cds-focus-boundary tabindex="0" style="display:none;position:absolute;width:1px;height:1px;clip:rect(0,0,0,0)">boundary</div>`}async hostConnected(){await this.host.updateComplete,r(this.host)||(o(this.styles,this.root),o(this.boundary(-1),this.root),i(this.boundary(0),this.root),this.host.setAttribute("cds-focus-trap",""))}}export{e as InlineFocusTrapController,h as focusTrap};
|
|
2
|
+
//# sourceMappingURL=inline-focus-trap.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-focus-trap.controller.js","sources":["../../../../src/internal/controllers/inline-focus-trap.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 { 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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
export interface KeyNavigationGridConfig {
|
|
3
|
+
keyNavGrid?: HTMLElement;
|
|
4
|
+
columnRow?: HTMLElement;
|
|
5
|
+
columns?: NodeListOf<HTMLElement> | HTMLElement[];
|
|
6
|
+
rows: NodeListOf<HTMLElement> | HTMLElement[];
|
|
7
|
+
cells: NodeListOf<HTMLElement> | HTMLElement[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Given a 2d array grid structure provide keyboard navigation following aria grid spec
|
|
11
|
+
* https://w3c.github.io/aria-practices/#gridNav_focus
|
|
12
|
+
*/
|
|
13
|
+
export declare function keyNavigationGrid<T extends ReactiveElement & KeyNavigationGridConfig>(): ClassDecorator;
|
|
14
|
+
export declare class KeyNavigationGridController<T extends ReactiveElement & KeyNavigationGridConfig> implements ReactiveController {
|
|
15
|
+
private host;
|
|
16
|
+
private observers;
|
|
17
|
+
private get hostGrid();
|
|
18
|
+
private get hostRows();
|
|
19
|
+
private get hostCells();
|
|
20
|
+
private get activeCell();
|
|
21
|
+
constructor(host: T);
|
|
22
|
+
hostConnected(): Promise<void>;
|
|
23
|
+
hostDisconnected(): void;
|
|
24
|
+
private clickCell;
|
|
25
|
+
private keynavCell;
|
|
26
|
+
private setActiveCell;
|
|
27
|
+
private updateCellActivation;
|
|
28
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{onFirstInteraction as t,onChildListMutation as s}from"../utils/events.js";import{getFlattenedDOMTree as e,getFlattenedFocusableItems as i}from"../utils/traversal.js";import{contextMenuClick as o}from"../utils/dom.js";import{validKeyNavigationCode as h}from"../utils/keycodes.js";import{initializeKeyListItems as l,simpleFocusable as r,getActiveElement as n,setActiveKeyListItem as c,focusElement as d}from"../utils/focus.js";import{getNextKeyGridItem as a}from"./key-navigation.utils.js";function u(){return t=>t.addInitializer((t=>new f(t)))}class f{constructor(t){this.host=t,this.observers=[],this.host.addController(this)}get hostGrid(){return this.host.keyNavGrid?this.host.keyNavGrid:this.host}get hostRows(){const t=Array.from(this.host.rows);return this.host.columnRow&&t.unshift(this.host.columnRow),t}get hostCells(){const t=Array.from(this.host.cells);return this.host.columns&&t.unshift(...Array.from(this.host.columns)),t}get activeCell(){return Array.from(this.hostCells).find((t=>0===t.tabIndex))}async hostConnected(){await this.host.updateComplete,t(this.host).then((()=>{l(this.hostCells),this.hostGrid.addEventListener("mouseup",(t=>this.clickCell(t))),this.hostGrid.addEventListener("keydown",(t=>this.keynavCell(t))),this.hostGrid.addEventListener("keyup",(t=>this.updateCellActivation(t)))})),this.observers.push(s(this.host,(()=>l(this.hostCells))))}hostDisconnected(){this.observers.forEach((t=>t?.disconnect()))}clickCell(t){if(!o(t)){const s=t.composedPath().find((t=>this.hostCells.find((s=>s===t))));s&&this.setActiveCell(t,s)}}keynavCell(t){if(h(t)&&r(n())){const{x:s,y:i}=a(this.hostCells,this.hostRows,{code:t.code,ctrlKey:t.ctrlKey,dir:this.host.dir}),o=Array.from(e(this.hostRows[i])).filter((t=>!!this.hostCells.find((s=>s===t))))[s];this.setActiveCell(t,o),t.preventDefault()}}setActiveCell(t,s){c(this.hostCells,s);const e=i(s),o=e.filter((t=>r(t)));1===o.length&&1===e.length?d(o[0]):d(s),s.dispatchEvent(new CustomEvent("cdsKeyChange",{bubbles:!0,detail:{code:t.code,shiftKey:t.shiftKey,activeItem:s}}))}updateCellActivation(t){"Escape"===t.code&&this.activeCell?.focus(),"Enter"===t.code&&this.activeCell===t.composedPath()[0]&&i(this.activeCell)[0]?.focus()}}export{f as KeyNavigationGridController,u as keyNavigationGrid};
|
|
2
|
+
//# sourceMappingURL=key-navigation-grid.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-navigation-grid.controller.js","sources":["../../../../src/internal/controllers/key-navigation-grid.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 { 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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
export interface KeyNavigationListConfig {
|
|
3
|
+
keyListItems: string;
|
|
4
|
+
layout: 'both' | 'horizontal' | 'vertical';
|
|
5
|
+
manageFocus: boolean;
|
|
6
|
+
manageTabindex: boolean;
|
|
7
|
+
loop: boolean;
|
|
8
|
+
dir: string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Provides key list naviation behavior
|
|
12
|
+
* https://webaim.org/techniques/keyboard/
|
|
13
|
+
*/
|
|
14
|
+
export declare function keyNavigationList<T extends ReactiveElement>(config?: Partial<KeyNavigationListConfig>): ClassDecorator;
|
|
15
|
+
export declare class KeyNavigationListController<T extends ReactiveElement> implements ReactiveController {
|
|
16
|
+
private host;
|
|
17
|
+
private get listItems();
|
|
18
|
+
private config;
|
|
19
|
+
constructor(host: T, config?: Partial<KeyNavigationListConfig>);
|
|
20
|
+
hostConnected(): Promise<void>;
|
|
21
|
+
private initializeTabIndex;
|
|
22
|
+
private clickItem;
|
|
23
|
+
private focusItem;
|
|
24
|
+
private getActiveItem;
|
|
25
|
+
private setActiveItem;
|
|
26
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{initializeKeyListItems as t,setActiveKeyListItem as e,focusElement as s}from"../utils/focus.js";import{validKeyNavigationCode as i}from"../utils/keycodes.js";import{getFlattenedFocusableItems as o}from"../utils/traversal.js";import{getNextKeyListItem as n}from"./key-navigation.utils.js";function a(t={}){return e=>{e.addInitializer((e=>{e.keyNavigationListController||(e.keyNavigationListController=new c(e,t))}))}}class c{constructor(t,e={}){this.host=t,this.host.addController(this),this.config={keyListItems:"keyListItems",layout:"horizontal",manageFocus:!0,manageTabindex:!0,loop:!1,dir:this.host.getAttribute("rtl"),...e}}get listItems(){return this.host[this.config.keyListItems]}async hostConnected(){await this.host.updateComplete,this.initializeTabIndex(),this.host.addEventListener("click",(t=>this.clickItem(t))),this.host.addEventListener("keydown",(t=>this.focusItem(t))),this.host.shadowRoot?.addEventListener("click",(t=>this.clickItem(t))),this.host.shadowRoot?.addEventListener("keydown",(t=>this.focusItem(t)))}initializeTabIndex(){this.config.manageFocus&&this.config.manageTabindex&&t(this.listItems)}clickItem(t){const e=this.getActiveItem(t);e&&this.setActiveItem(t,e)}focusItem(t){if(i(t)){const e=this.getActiveItem(t);if(e){const{next:s,previous:i}=n(e,Array.from(this.listItems),{...this.config,code:t.code});s!==i&&this.setActiveItem(t,this.listItems[s],this.listItems[i])}}}getActiveItem(t){return Array.from(this.listItems).find((e=>e===t.target.closest(this.listItems[0].tagName.toLocaleLowerCase())??e===t.target))}setActiveItem(t,i,n){if(this.config.manageFocus){this.config.manageTabindex&&e(this.listItems,i);const n=o(i)[0]??i;s(n),t.preventDefault()}i.dispatchEvent(new CustomEvent("cdsKeyChange",{bubbles:!0,detail:{activeItem:i,previousItem:n,code:t.code,metaKey:t.ctrlKey||t.metaKey,keyListItems:this.config.keyListItems}}))}}export{c as KeyNavigationListController,a as keyNavigationList};
|
|
2
|
+
//# sourceMappingURL=key-navigation-list.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-navigation-list.controller.js","sources":["../../../../src/internal/controllers/key-navigation-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 { 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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { KeyNavigationCode } from '../utils/keycodes.js';
|
|
2
|
+
export declare function getNextKeyGridItem(cells: HTMLElement[], rows: HTMLElement[], config: {
|
|
3
|
+
code: KeyNavigationCode | string;
|
|
4
|
+
ctrlKey: boolean;
|
|
5
|
+
dir: string;
|
|
6
|
+
}): {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
};
|
|
10
|
+
export interface KeyListConfig {
|
|
11
|
+
code: KeyNavigationCode;
|
|
12
|
+
loop?: boolean;
|
|
13
|
+
layout?: 'horizontal' | 'vertical' | 'both';
|
|
14
|
+
dir: string | null | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function getNextKeyListItem(item: HTMLElement, items: HTMLElement[], config: KeyListConfig): {
|
|
17
|
+
next: number;
|
|
18
|
+
previous: number;
|
|
19
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{KeyNavigationCode as r}from"../utils/keycodes.js";import{getFlattenedDOMTree as o}from"../utils/traversal.js";function t(t,e,n){const i=t.find((r=>0===r.tabIndex)),l=e.find((r=>o(r).find((r=>r===i)))),w=Array.from(o(l)).filter((r=>!!t.find((o=>o===r)))),f=e.length-1,a=w.length-1,{code:d,ctrlKey:A,dir:c}=n;let g=w.indexOf(i),h=e.indexOf(l);const s="rtl"===c?r.ArrowRight:r.ArrowLeft,p="rtl"===c?r.ArrowLeft:r.ArrowRight;return d===r.ArrowUp&&0!==h?h-=1:d===r.ArrowDown&&h<f?h+=1:d===s&&0!==g?g-=1:d===p&&g<a?g+=1:d===r.End?(g=a,A&&(h=f)):d===r.Home?(g=0,A&&(h=0)):d===r.PageUp?h=h-4>0?h-4:0:d===r.PageDown&&(h=h+4<f?h+4:f),{x:g,y:h}}function e(o,t,e){const{code:n,layout:i,loop:l,dir:w}=e;let f=t.indexOf(o);const a=f,d="rtl"===w?r.ArrowRight:r.ArrowLeft,A="rtl"===w?r.ArrowLeft:r.ArrowRight,c=t.length-1;return"horizontal"!==i&&n===r.ArrowUp&&0!==f?f-=1:"horizontal"!==i&&n===r.ArrowUp&&0===f&&l?f=c:"horizontal"!==i&&n===r.ArrowDown&&f<c?f+=1:"horizontal"!==i&&n===r.ArrowDown&&f===c&&l?f=0:"vertical"!==i&&n===d&&0!==f?f-=1:"vertical"!==i&&n===A&&f<c?f+=1:n===r.End?f=c:n===r.Home?f=0:n===r.PageUp?f=f-4>0?f-4:0:n===r.PageDown&&(f=f+4<c?f+4:c),{next:f,previous:a}}export{t as getNextKeyGridItem,e as getNextKeyListItem};
|
|
2
|
+
//# sourceMappingURL=key-navigation.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-navigation.utils.js","sources":["../../../../src/internal/controllers/key-navigation.utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { 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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* LayerController provides manage layer tracking for components. Ensures any component
|
|
4
|
+
* that may be a layer on top of other components is given a ordered index relative
|
|
5
|
+
* to other existing layers on the page.
|
|
6
|
+
*
|
|
7
|
+
* This makes layer tracking easier for CSS, such as targeting the top or bottom
|
|
8
|
+
* layer element or setting a z-index ordering.
|
|
9
|
+
*/
|
|
10
|
+
export declare function layer<T extends ReactiveElement>(): ClassDecorator;
|
|
11
|
+
export declare class LayerController<T extends ReactiveElement> implements ReactiveController {
|
|
12
|
+
private host;
|
|
13
|
+
private observer;
|
|
14
|
+
constructor(host: T);
|
|
15
|
+
get isActiveLayer(): boolean;
|
|
16
|
+
get layerIndex(): number | null;
|
|
17
|
+
private get layers();
|
|
18
|
+
private set layers(value);
|
|
19
|
+
hostConnected(): void;
|
|
20
|
+
hostDisconnected(): void;
|
|
21
|
+
private updateLayer;
|
|
22
|
+
private addLayer;
|
|
23
|
+
private removeLayer;
|
|
24
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{listenForAttributeChange as t}from"../utils/events.js";import{GlobalStateService as e}from"../services/global.service.js";function s(){return t=>{t.addInitializer((t=>{t.layerController||(t.layerController=new r(t))}))}}class r{constructor(t){this.host=t,this.host.addController(this)}get isActiveLayer(){return this.layers[this.layers.length-1]===this.host}get layerIndex(){const t=this.layers.indexOf(this.host);return-1===t?null:t}get layers(){return[...e.state.layerElements]}set layers(t){e.state.layerElements=[...t]}hostConnected(){this.host.hasAttribute("_demo-mode")||(this.updateLayer(),this.observer=t(this.host,"hidden",(()=>this.updateLayer())))}hostDisconnected(){this.observer?.disconnect(),this.removeLayer()}updateLayer(){this.host.hasAttribute("hidden")?this.removeLayer():this.addLayer(),this.layers.forEach(((t,e)=>t.setAttribute("cds-layer",""+e)))}addLayer(){this.layers.find((t=>this.host===t))||(this.layers=[...this.layers,this.host],"true"===this.host.ariaModal&&(this.layers.filter((t=>"true"===t.ariaModal)).forEach((t=>t.role="region")),this.host.role="dialog"))}removeLayer(){this.layers=this.layers.filter((t=>t!==this.host)),this.host.removeAttribute("cds-layer");const t=this.layers.find((t=>"true"===t.ariaModal));t&&(t.role="dialog")}}export{r as LayerController,s as layer};
|
|
2
|
+
//# sourceMappingURL=layer.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer.controller.js","sources":["../../../../src/internal/controllers/layer.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 { 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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
interface ResponsiveConfig {
|
|
3
|
+
skipFirst?: boolean;
|
|
4
|
+
element?: HTMLElement;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Provides a `cdsResizeChange` event when component dimensions are resized
|
|
8
|
+
*/
|
|
9
|
+
export declare function responsive<T extends ReactiveElement>(config?: ResponsiveConfig): ClassDecorator;
|
|
10
|
+
export declare class ResponsiveController<T extends ReactiveElement> implements ReactiveController {
|
|
11
|
+
private host;
|
|
12
|
+
private observer;
|
|
13
|
+
private resizeElement;
|
|
14
|
+
private skipFirst;
|
|
15
|
+
constructor(host: T, config?: ResponsiveConfig);
|
|
16
|
+
hostConnected(): Promise<void>;
|
|
17
|
+
hostDisconnected(): void;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function t(t={skipFirst:!1}){return e=>e.addInitializer((e=>new s(e,t)))}class s{constructor(t,s={skipFirst:!1}){this.host=t,this.skipFirst=!1,this.host.addController(this),this.skipFirst=!!s.skipFirst,this.resizeElement=s.element?s.element:this.host}async hostConnected(){await this.host.updateComplete,this.observer=new ResizeObserver((t=>{window.requestAnimationFrame((()=>{this.skipFirst?this.skipFirst=!1:(this.host.dispatchEvent(new CustomEvent("cdsResizeChange",{detail:t[0].contentRect})),this.host.requestUpdate())}))})),this.observer.observe(this.resizeElement)}hostDisconnected(){this.observer?.disconnect()}}export{s as ResponsiveController,t as responsive};
|
|
2
|
+
//# sourceMappingURL=responsive.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive.controller.js","sources":["../../../../src/internal/controllers/responsive.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 */\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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* List items default to `content-visibility: auto` for lazy initial render.
|
|
4
|
+
* On scroll set all row items to `content-visibility: visible` for eager render.
|
|
5
|
+
* This allows fast first render and smooth eager rendering anytime after for items within a bounded scroll box.
|
|
6
|
+
*/
|
|
7
|
+
export declare function scrollableVisibility<T extends ReactiveElement>(): ClassDecorator;
|
|
8
|
+
export declare class ScrollableVisibilityController<T extends ReactiveElement> implements ReactiveController {
|
|
9
|
+
private host;
|
|
10
|
+
private get root();
|
|
11
|
+
constructor(host: T);
|
|
12
|
+
hostConnected(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function t(){return t=>t.addInitializer((t=>new o(t)))}class o{constructor(t){this.host=t,this.host.addController(this)}get root(){return this.host.shadowRoot?this.host.shadowRoot:this.host}async hostConnected(){await this.host.updateComplete,this.root.addEventListener("scroll",(()=>this.host.style.setProperty("--row-content-visibility","visibile")),{once:!0,capture:!0})}}export{o as ScrollableVisibilityController,t as scrollableVisibility};
|
|
2
|
+
//# sourceMappingURL=scrollable-list-visibility.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollable-list-visibility.controller.js","sources":["../../../../src/internal/controllers/scrollable-list-visibility.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 */\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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactiveElement, ReactiveController } from 'lit';
|
|
2
|
+
export declare type Touch = ReactiveElement;
|
|
3
|
+
/**
|
|
4
|
+
* @internal Provides all nessesary events for basic touch gestures
|
|
5
|
+
*
|
|
6
|
+
* @event cdsTouchStart
|
|
7
|
+
* @event cdsTouchMove
|
|
8
|
+
* @event cdsTouchEnd
|
|
9
|
+
*/
|
|
10
|
+
export declare function touch<T extends Touch>(): ClassDecorator;
|
|
11
|
+
export declare class TouchController<T extends Touch> implements ReactiveController {
|
|
12
|
+
private host;
|
|
13
|
+
constructor(host: T);
|
|
14
|
+
private startPosition;
|
|
15
|
+
private moveHandler;
|
|
16
|
+
private endHandler;
|
|
17
|
+
hostConnected(): Promise<void>;
|
|
18
|
+
private start;
|
|
19
|
+
private end;
|
|
20
|
+
private move;
|
|
21
|
+
private getCoordinates;
|
|
22
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getOffesetDifference as t}from"../utils/math.js";function e(){return t=>t.addInitializer((t=>new s(t)))}class s{constructor(t){this.host=t,this.moveHandler=this.move.bind(this),this.endHandler=this.end.bind(this),this.host.addController(this)}async hostConnected(){await this.host.updateComplete,this.host.addEventListener("pointerdown",(t=>this.start(t)),{passive:!0})}start(t){t.path.find((t=>t===this.host))&&(this.startPosition={x:t.clientX,y:t.clientY},document.addEventListener("pointerup",this.endHandler,{passive:!0}),document.addEventListener("pointermove",this.moveHandler,{passive:!0}),this.host.dispatchEvent(new CustomEvent("cdsTouchStart",{detail:{...this.startPosition}})))}end(t){if(this.startPosition){const e=this.getCoordinates(t);document.removeEventListener("pointerup",this.endHandler,!1),document.removeEventListener("pointermove",this.moveHandler,!1),this.host.dispatchEvent(new CustomEvent("cdsTouchEnd",{detail:e}))}}move(t){requestAnimationFrame((()=>{const e=this.getCoordinates(t);this.startPosition={x:t.clientX,y:t.clientY},this.host.dispatchEvent(new CustomEvent("cdsTouchMove",{detail:e}))}))}getCoordinates(e){return{x:e.clientX,y:e.clientY,offsetX:t(this.startPosition.x,e.clientX),offsetY:t(this.startPosition.y,e.clientY)}}}export{s as TouchController,e as touch};
|
|
2
|
+
//# sourceMappingURL=touch.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touch.controller.js","sources":["../../../../src/internal/controllers/touch.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 { 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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactiveController, ReactiveElement } from 'lit';
|
|
2
|
+
export declare type Triggerable = ReactiveElement & {
|
|
3
|
+
trigger?: HTMLElement;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* The TriggerController will track the last known interacted element
|
|
7
|
+
* when the host component was created or shown. This is used for when a component
|
|
8
|
+
* needs to know the element that "triggered" the interaction.
|
|
9
|
+
*
|
|
10
|
+
* Examples include, popover types, closable types and draggable types.
|
|
11
|
+
*/
|
|
12
|
+
export declare function triggerable<T extends Triggerable>(config?: {
|
|
13
|
+
focus: boolean;
|
|
14
|
+
}): ClassDecorator;
|
|
15
|
+
export declare class TriggerController<T extends Triggerable> implements ReactiveController {
|
|
16
|
+
private host;
|
|
17
|
+
private config;
|
|
18
|
+
private observer;
|
|
19
|
+
constructor(host: T, config?: {
|
|
20
|
+
focus: boolean;
|
|
21
|
+
});
|
|
22
|
+
private activeElement;
|
|
23
|
+
private _current;
|
|
24
|
+
get current(): HTMLElement;
|
|
25
|
+
private _prev;
|
|
26
|
+
get prev(): HTMLElement;
|
|
27
|
+
hostConnected(): Promise<void>;
|
|
28
|
+
hostUpdate(): void;
|
|
29
|
+
hostDisconnected(): void;
|
|
30
|
+
private focusCurrent;
|
|
31
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{listenForAttributeChange as t}from"../utils/events.js";import{getActiveElement as s}from"../utils/focus.js";function e(t={focus:!0}){return s=>s.addInitializer((s=>new r(s,t)))}class r{constructor(t,e={focus:!0}){this.host=t,this.config=e,this.activeElement=s(),this.host.addController(this)}get current(){return this.host.trigger?this._current:this.activeElement}get prev(){return this._prev}async hostConnected(){this.observer=t(this.host,"hidden",(()=>{const t=s();!this.host.hidden&&t?this.activeElement=t:this.focusCurrent()}))}hostUpdate(){this._current!==this.host.trigger&&(this._prev=this._current,this._current=this.host.trigger?this.host.trigger:this.activeElement)}hostDisconnected(){this.focusCurrent(),this.observer?.disconnect()}focusCurrent(){this.config.focus&&this.current?.focus()}}export{r as TriggerController,e as triggerable};
|
|
2
|
+
//# sourceMappingURL=trigger.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.controller.js","sources":["../../../../src/internal/controllers/trigger.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 { 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,2 +1,2 @@
|
|
|
1
|
-
import { PropertyDrivenAnimation } from '../motion/interfaces.js';
|
|
2
|
-
export declare function animate(config: PropertyDrivenAnimation): <T extends new (...args: any[]) =>
|
|
1
|
+
import { AnimatableElement, PropertyDrivenAnimation } from '../motion/interfaces.js';
|
|
2
|
+
export declare function animate(config: PropertyDrivenAnimation): <T extends new (...args: any[]) => AnimatableElement>(constructor: T) => T;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PRIVATE_ANIMATION_STATUS_ATTR_NAME as t,AnimationStatus as
|
|
1
|
+
import{PRIVATE_ANIMATION_STATUS_ATTR_NAME as t,AnimationStatus as i}from"../motion/interfaces.js";import{runPropertyAnimations as o}from"../motion/utils.js";function e(e){return function(n){return class extends n{constructor(){super(...arguments);this._animationReady=!1,this._animationDemoMode=!1,this._animations=e}updated(e){if(super.updated(e),!this._animationReady&&!this.hasAttribute(t))return this.setAttribute(t,i.ready),void(this._animationReady=!0);!0===this._animationDemoMode||this.hasAttribute("_demo-mode")?this._animationDemoMode=!0:o(e,this)}}}}export{e as animate};
|
|
2
2
|
//# sourceMappingURL=animate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animate.js","sources":["../../../../src/internal/decorators/animate.ts"],"sourcesContent":
|
|
1
|
+
{"version":3,"file":"animate.js","sources":["../../../../src/internal/decorators/animate.ts"],"sourcesContent":["/*\n * Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\nimport { AnimationStatus, PRIVATE_ANIMATION_STATUS_ATTR_NAME, } from '../motion/interfaces.js';\nimport { runPropertyAnimations } from '../motion/utils.js';\n// decorator factory that extends the component constructor to inject animations code into it\nexport function animate(config) {\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","constructor","super","this","_animationReady","_animationDemoMode","_animations","updated","props","hasAttribute","PRIVATE_ANIMATION_STATUS_ATTR_NAME","setAttribute","AnimationStatus","ready","runPropertyAnimations"],"mappings":"6JAQO,SAASA,EAAQC,GAEpB,OAAO,SAA6BC,GAChC,OAAO,cAAcA,EACjBA,cACIC,oBACAC,KAAKC,iBAAkB,EACvBD,KAAKE,oBAAqB,EAC1BF,KAAKG,YAAcN,EAEvBO,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,19 +1,16 @@
|
|
|
1
|
+
import { Constructor, ClassDescriptor } from './utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* @experimental
|
|
4
|
+
* experimental decorator, waiting on Angular issue to be resolved https://github.com/angular/angular/issues/31495
|
|
5
|
+
* Class decorator factory that defines the decorated class as a custom element.
|
|
6
|
+
*
|
|
7
|
+
* ```
|
|
8
|
+
* @customElement('my-element')
|
|
9
|
+
* class MyElement {
|
|
10
|
+
* render() {
|
|
11
|
+
* return html``;
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export declare const customElement: (tagName: string) => (classOrDescriptor: Constructor<HTMLElement> | ClassDescriptor) => any;
|
|
2
|
-
interface ClassDescriptor {
|
|
3
|
-
kind: 'class';
|
|
4
|
-
elements: ClassElement[];
|
|
5
|
-
finisher?: <T>(classDef: Constructor<T>) => undefined | Constructor<T>;
|
|
6
|
-
}
|
|
7
|
-
interface ClassElement {
|
|
8
|
-
kind: 'field' | 'method';
|
|
9
|
-
key: PropertyKey;
|
|
10
|
-
placement: 'static' | 'prototype' | 'own';
|
|
11
|
-
initializer?: Function;
|
|
12
|
-
extras?: ClassElement[];
|
|
13
|
-
finisher?: <T>(classDef: Constructor<T>) => undefined | Constructor<T>;
|
|
14
|
-
descriptor?: PropertyDescriptor;
|
|
15
|
-
}
|
|
16
|
-
export declare type Constructor<T> = {
|
|
17
|
-
new (...args: any[]): T;
|
|
18
|
-
};
|
|
19
|
-
export {};
|