ngwr 14.3.1 → 14.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/avatar/styles/_index.scss +4 -2
- package/badge/styles/_index.scss +4 -1
- package/badge/styles/_tag.scss +3 -0
- package/cascader/styles/_rules.scss +3 -0
- package/command-palette/styles/_index.scss +23 -0
- package/context-menu/styles/_index.scss +13 -1
- package/fesm2022/ngwr-action-sheet.mjs +3 -3
- package/fesm2022/ngwr-affix.mjs +17 -4
- package/fesm2022/ngwr-affix.mjs.map +1 -1
- package/fesm2022/ngwr-alert.mjs +4 -4
- package/fesm2022/ngwr-alert.mjs.map +1 -1
- package/fesm2022/ngwr-anchor.mjs +3 -3
- package/fesm2022/ngwr-aurora.mjs +3 -3
- package/fesm2022/ngwr-avatar.mjs +3 -3
- package/fesm2022/ngwr-back-top.mjs +3 -3
- package/fesm2022/ngwr-badge.mjs +6 -6
- package/fesm2022/ngwr-bar-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-bar-chart.mjs +3 -3
- package/fesm2022/ngwr-blur-text.mjs +3 -3
- package/fesm2022/ngwr-border-glow.mjs +3 -3
- package/fesm2022/ngwr-breadcrumbs.mjs +7 -7
- package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngwr-burger.mjs +3 -3
- package/fesm2022/ngwr-button.mjs +6 -6
- package/fesm2022/ngwr-calendar-heatmap-testing.mjs +12 -9
- package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
- package/fesm2022/ngwr-calendar-heatmap.mjs +35 -7
- package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
- package/fesm2022/ngwr-calendar.mjs +32 -4
- package/fesm2022/ngwr-calendar.mjs.map +1 -1
- package/fesm2022/ngwr-card.mjs +9 -9
- package/fesm2022/ngwr-carousel.mjs +6 -6
- package/fesm2022/ngwr-cascader-testing.mjs +87 -17
- package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
- package/fesm2022/ngwr-cascader.mjs +76 -5
- package/fesm2022/ngwr-cascader.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox-testing.mjs +13 -2
- package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
- package/fesm2022/ngwr-checkbox.mjs +42 -7
- package/fesm2022/ngwr-checkbox.mjs.map +1 -1
- package/fesm2022/ngwr-circular-text.mjs +3 -3
- package/fesm2022/ngwr-click-spark.mjs +3 -3
- package/fesm2022/ngwr-clipboard.mjs +3 -3
- package/fesm2022/ngwr-collapse.mjs +9 -9
- package/fesm2022/ngwr-color-picker.mjs +24 -8
- package/fesm2022/ngwr-color-picker.mjs.map +1 -1
- package/fesm2022/ngwr-command-palette.mjs +16 -3
- package/fesm2022/ngwr-command-palette.mjs.map +1 -1
- package/fesm2022/ngwr-compare.mjs +3 -3
- package/fesm2022/ngwr-confetti.mjs +3 -3
- package/fesm2022/ngwr-context-menu.mjs +47 -15
- package/fesm2022/ngwr-context-menu.mjs.map +1 -1
- package/fesm2022/ngwr-cookie.mjs +3 -3
- package/fesm2022/ngwr-counter.mjs +6 -6
- package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
- package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
- package/fesm2022/ngwr-date-picker.mjs +111 -28
- package/fesm2022/ngwr-date-picker.mjs.map +1 -1
- package/fesm2022/ngwr-date.mjs +3 -3
- package/fesm2022/ngwr-decrypt-text.mjs +3 -3
- package/fesm2022/ngwr-density.mjs +6 -6
- package/fesm2022/ngwr-descriptions.mjs +6 -6
- package/fesm2022/ngwr-dialog.mjs +27 -16
- package/fesm2022/ngwr-dialog.mjs.map +1 -1
- package/fesm2022/ngwr-directives.mjs +12 -12
- package/fesm2022/ngwr-divider.mjs +3 -3
- package/fesm2022/ngwr-donut-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-donut-chart.mjs +4 -4
- package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
- package/fesm2022/ngwr-drag-drop.mjs +7 -7
- package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
- package/fesm2022/ngwr-drawer.mjs +66 -20
- package/fesm2022/ngwr-drawer.mjs.map +1 -1
- package/fesm2022/ngwr-dropdown.mjs +54 -16
- package/fesm2022/ngwr-dropdown.mjs.map +1 -1
- package/fesm2022/ngwr-empty.mjs +3 -3
- package/fesm2022/ngwr-event-calendar.mjs +6 -6
- package/fesm2022/ngwr-falling-text.mjs +3 -3
- package/fesm2022/ngwr-file-upload.mjs +18 -5
- package/fesm2022/ngwr-file-upload.mjs.map +1 -1
- package/fesm2022/ngwr-form.mjs +66 -14
- package/fesm2022/ngwr-form.mjs.map +1 -1
- package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
- package/fesm2022/ngwr-gauge-testing.mjs +16 -2
- package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
- package/fesm2022/ngwr-gauge.mjs +3 -3
- package/fesm2022/ngwr-glitch-text.mjs +3 -3
- package/fesm2022/ngwr-gradient-text.mjs +3 -3
- package/fesm2022/ngwr-graph-testing.mjs +243 -0
- package/fesm2022/ngwr-graph-testing.mjs.map +1 -0
- package/fesm2022/ngwr-graph.mjs +1112 -0
- package/fesm2022/ngwr-graph.mjs.map +1 -0
- package/fesm2022/ngwr-hotkey.mjs +6 -6
- package/fesm2022/ngwr-i18n-ar.mjs +7 -0
- package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-cs.mjs +7 -0
- package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-de.mjs +7 -0
- package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-en.mjs +23 -2
- package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-es.mjs +7 -0
- package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-fr.mjs +7 -0
- package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-he.mjs +7 -0
- package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-hi.mjs +7 -0
- package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-id.mjs +7 -0
- package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-it.mjs +7 -0
- package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ja.mjs +7 -0
- package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ko.mjs +7 -0
- package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-nl.mjs +7 -0
- package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pl.mjs +7 -0
- package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-pt.mjs +7 -0
- package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-ru.mjs +7 -0
- package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-sv.mjs +7 -0
- package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-tr.mjs +7 -0
- package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-uk.mjs +7 -0
- package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-vi.mjs +7 -0
- package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh-TW.mjs +7 -0
- package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
- package/fesm2022/ngwr-i18n-zh.mjs +7 -0
- package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
- package/fesm2022/ngwr-i18n.mjs +9 -9
- package/fesm2022/ngwr-icon.mjs +6 -6
- package/fesm2022/ngwr-image-cropper.mjs +3 -3
- package/fesm2022/ngwr-input-number.mjs +15 -6
- package/fesm2022/ngwr-input-number.mjs.map +1 -1
- package/fesm2022/ngwr-input-otp.mjs +38 -6
- package/fesm2022/ngwr-input-otp.mjs.map +1 -1
- package/fesm2022/ngwr-input.mjs +15 -15
- package/fesm2022/ngwr-keyboard.mjs +3 -3
- package/fesm2022/ngwr-knob-testing.mjs +11 -3
- package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
- package/fesm2022/ngwr-knob.mjs +19 -4
- package/fesm2022/ngwr-knob.mjs.map +1 -1
- package/fesm2022/ngwr-layout.mjs +15 -15
- package/fesm2022/ngwr-lightbox.mjs +27 -6
- package/fesm2022/ngwr-lightbox.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart-testing.mjs +18 -2
- package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
- package/fesm2022/ngwr-line-chart.mjs +22 -4
- package/fesm2022/ngwr-line-chart.mjs.map +1 -1
- package/fesm2022/ngwr-list.mjs +7 -7
- package/fesm2022/ngwr-list.mjs.map +1 -1
- package/fesm2022/ngwr-loading-bar.mjs +6 -6
- package/fesm2022/ngwr-markdown.mjs +6 -6
- package/fesm2022/ngwr-marquee.mjs +3 -3
- package/fesm2022/ngwr-media.mjs +3 -3
- package/fesm2022/ngwr-mention.mjs +24 -8
- package/fesm2022/ngwr-mention.mjs.map +1 -1
- package/fesm2022/ngwr-meta.mjs +6 -6
- package/fesm2022/ngwr-meter-group.mjs +3 -3
- package/fesm2022/ngwr-overlay.mjs +125 -10
- package/fesm2022/ngwr-overlay.mjs.map +1 -1
- package/fesm2022/ngwr-page-header.mjs +3 -3
- package/fesm2022/ngwr-pagination.mjs +33 -6
- package/fesm2022/ngwr-pagination.mjs.map +1 -1
- package/fesm2022/ngwr-pipes.mjs +21 -21
- package/fesm2022/ngwr-platform.mjs +9 -9
- package/fesm2022/ngwr-popconfirm.mjs +25 -9
- package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
- package/fesm2022/ngwr-popover-testing.mjs +22 -5
- package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
- package/fesm2022/ngwr-popover.mjs +243 -37
- package/fesm2022/ngwr-popover.mjs.map +1 -1
- package/fesm2022/ngwr-progress.mjs +3 -3
- package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
- package/fesm2022/ngwr-qr.mjs +3 -3
- package/fesm2022/ngwr-radio.mjs +6 -6
- package/fesm2022/ngwr-rating-testing.mjs +12 -3
- package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
- package/fesm2022/ngwr-rating.mjs +19 -4
- package/fesm2022/ngwr-rating.mjs.map +1 -1
- package/fesm2022/ngwr-result.mjs +13 -13
- package/fesm2022/ngwr-result.mjs.map +1 -1
- package/fesm2022/ngwr-rotating-text.mjs +3 -3
- package/fesm2022/ngwr-schema-form.mjs +3 -3
- package/fesm2022/ngwr-scroll.mjs +3 -3
- package/fesm2022/ngwr-segmented.mjs +37 -4
- package/fesm2022/ngwr-segmented.mjs.map +1 -1
- package/fesm2022/ngwr-select.mjs +24 -10
- package/fesm2022/ngwr-select.mjs.map +1 -1
- package/fesm2022/ngwr-shiny-text.mjs +6 -6
- package/fesm2022/ngwr-sidebar.mjs +3 -3
- package/fesm2022/ngwr-skeleton.mjs +3 -3
- package/fesm2022/ngwr-slider.mjs +18 -5
- package/fesm2022/ngwr-slider.mjs.map +1 -1
- package/fesm2022/ngwr-sparkline.mjs +3 -3
- package/fesm2022/ngwr-speed-dial.mjs +3 -3
- package/fesm2022/ngwr-spinner.mjs +3 -3
- package/fesm2022/ngwr-splash-cursor.mjs +3 -3
- package/fesm2022/ngwr-split-text.mjs +3 -3
- package/fesm2022/ngwr-splitter.mjs +3 -3
- package/fesm2022/ngwr-spotlight-card.mjs +6 -6
- package/fesm2022/ngwr-squircle.mjs +28 -9
- package/fesm2022/ngwr-squircle.mjs.map +1 -1
- package/fesm2022/ngwr-star-border.mjs +3 -3
- package/fesm2022/ngwr-statistic.mjs +20 -13
- package/fesm2022/ngwr-statistic.mjs.map +1 -1
- package/fesm2022/ngwr-stepper.mjs +6 -6
- package/fesm2022/ngwr-storage.mjs +3 -3
- package/fesm2022/ngwr-switch.mjs +3 -3
- package/fesm2022/ngwr-table.mjs +18 -18
- package/fesm2022/ngwr-tabs-router.mjs +3 -3
- package/fesm2022/ngwr-tabs.mjs +6 -6
- package/fesm2022/ngwr-textarea.mjs +3 -3
- package/fesm2022/ngwr-theme.mjs +3 -3
- package/fesm2022/ngwr-tilt-card.mjs +6 -6
- package/fesm2022/ngwr-timeline.mjs +6 -6
- package/fesm2022/ngwr-toast.mjs +29 -12
- package/fesm2022/ngwr-toast.mjs.map +1 -1
- package/fesm2022/ngwr-toolbar.mjs +3 -3
- package/fesm2022/ngwr-tour.mjs +26 -12
- package/fesm2022/ngwr-tour.mjs.map +1 -1
- package/fesm2022/ngwr-transfer.mjs +88 -11
- package/fesm2022/ngwr-transfer.mjs.map +1 -1
- package/fesm2022/ngwr-tree-testing.mjs +24 -0
- package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
- package/fesm2022/ngwr-tree.mjs +81 -9
- package/fesm2022/ngwr-tree.mjs.map +1 -1
- package/fesm2022/ngwr-typewriter.mjs +3 -3
- package/fesm2022/ngwr-typography.mjs +3 -3
- package/fesm2022/ngwr-version.mjs +1 -1
- package/fesm2022/ngwr-version.mjs.map +1 -1
- package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
- package/fesm2022/ngwr-waves.mjs +3 -3
- package/fesm2022/ngwr-window.mjs +30 -13
- package/fesm2022/ngwr-window.mjs.map +1 -1
- package/form/styles/_index.scss +63 -0
- package/graph/styles/_index.scss +113 -0
- package/i18n/ar.json +9 -2
- package/i18n/cs.json +9 -2
- package/i18n/de.json +9 -2
- package/i18n/en.json +11 -4
- package/i18n/es.json +9 -2
- package/i18n/fr.json +9 -2
- package/i18n/he.json +9 -2
- package/i18n/hi.json +9 -2
- package/i18n/id.json +9 -2
- package/i18n/it.json +9 -2
- package/i18n/ja.json +9 -2
- package/i18n/ko.json +9 -2
- package/i18n/nl.json +9 -2
- package/i18n/pl.json +9 -2
- package/i18n/pt.json +9 -2
- package/i18n/ru.json +9 -2
- package/i18n/sv.json +9 -2
- package/i18n/tr.json +9 -2
- package/i18n/uk.json +9 -2
- package/i18n/vi.json +9 -2
- package/i18n/zh-TW.json +9 -2
- package/i18n/zh.json +9 -2
- package/input-otp/styles/_index.scss +5 -1
- package/line-chart/styles/_index.scss +5 -3
- package/llms-full.txt +13 -3
- package/llms.txt +8 -6
- package/markdown/styles/_index.scss +4 -1
- package/mention/styles/_index.scss +22 -1
- package/package.json +10 -1
- package/radio/styles/_index.scss +3 -0
- package/result/styles/_index.scss +12 -0
- package/schematics/migrations/v14/index.js +6 -3
- package/schematics/migrations.json +1 -1
- package/schematics/ng-add/index.js +34 -5
- package/schematics/use/symbol-map.json +2 -0
- package/segmented/styles/_index.scss +12 -1
- package/select/styles/_index.scss +20 -1
- package/skills/ngwr/SKILL.md +1 -1
- package/skills/ngwr/references/catalog.md +2 -0
- package/statistic/styles/_index.scss +4 -0
- package/stepper/styles/_index.scss +36 -0
- package/styles.scss +1 -0
- package/switch/styles/_index.scss +3 -0
- package/table/styles/_index.scss +12 -0
- package/tabs/styles/_index.scss +4 -1
- package/textarea/styles/_index.scss +6 -1
- package/theme/styles/_colors.scss +11 -0
- package/theme/styles/_contrast.scss +136 -0
- package/theme/styles/_focus.scss +7 -0
- package/theme/styles/_index.scss +1 -0
- package/theme/styles/_mixins.scss +15 -8
- package/timeline/styles/_index.scss +28 -1
- package/toast/styles/_index.scss +11 -0
- package/tree/styles/_index.scss +27 -1
- package/types/ngwr-badge.d.ts +1 -1
- package/types/ngwr-bar-chart-testing.d.ts +11 -1
- package/types/ngwr-button.d.ts +1 -1
- package/types/ngwr-calendar-heatmap-testing.d.ts +10 -5
- package/types/ngwr-calendar-heatmap.d.ts +22 -0
- package/types/ngwr-calendar.d.ts +21 -0
- package/types/ngwr-cascader-testing.d.ts +74 -17
- package/types/ngwr-cascader.d.ts +35 -0
- package/types/ngwr-checkbox-testing.d.ts +12 -1
- package/types/ngwr-checkbox.d.ts +10 -0
- package/types/ngwr-clipboard.d.ts +1 -1
- package/types/ngwr-color-picker.d.ts +8 -0
- package/types/ngwr-confetti.d.ts +1 -1
- package/types/ngwr-context-menu.d.ts +10 -0
- package/types/ngwr-cookie.d.ts +1 -1
- package/types/ngwr-date-adapters-fns.d.ts +1 -1
- package/types/ngwr-date-adapters-luxon.d.ts +1 -1
- package/types/ngwr-date-picker.d.ts +16 -0
- package/types/ngwr-date.d.ts +9 -3
- package/types/ngwr-density.d.ts +1 -1
- package/types/ngwr-dialog.d.ts +2 -1
- package/types/ngwr-donut-chart-testing.d.ts +11 -1
- package/types/ngwr-drawer.d.ts +29 -1
- package/types/ngwr-dropdown.d.ts +25 -0
- package/types/ngwr-file-upload.d.ts +11 -0
- package/types/ngwr-form.d.ts +25 -0
- package/types/ngwr-gauge-testing.d.ts +9 -1
- package/types/ngwr-graph-testing.d.ts +190 -0
- package/types/ngwr-graph.d.ts +203 -0
- package/types/ngwr-hotkey.d.ts +1 -1
- package/types/ngwr-i18n.d.ts +1 -1
- package/types/ngwr-input-number.d.ts +12 -2
- package/types/ngwr-input-otp.d.ts +12 -0
- package/types/ngwr-knob-testing.d.ts +11 -3
- package/types/ngwr-knob.d.ts +13 -0
- package/types/ngwr-lightbox.d.ts +15 -0
- package/types/ngwr-line-chart-testing.d.ts +11 -1
- package/types/ngwr-line-chart.d.ts +18 -0
- package/types/ngwr-loading-bar.d.ts +1 -1
- package/types/ngwr-markdown.d.ts +1 -1
- package/types/ngwr-media.d.ts +1 -1
- package/types/ngwr-mention.d.ts +7 -0
- package/types/ngwr-meta.d.ts +1 -1
- package/types/ngwr-overlay.d.ts +64 -6
- package/types/ngwr-pagination.d.ts +16 -0
- package/types/ngwr-platform.d.ts +3 -3
- package/types/ngwr-popconfirm.d.ts +1 -0
- package/types/ngwr-popover-testing.d.ts +22 -5
- package/types/ngwr-popover.d.ts +44 -8
- package/types/ngwr-rating-testing.d.ts +12 -3
- package/types/ngwr-rating.d.ts +13 -0
- package/types/ngwr-scroll.d.ts +1 -1
- package/types/ngwr-segmented.d.ts +16 -0
- package/types/ngwr-select.d.ts +7 -0
- package/types/ngwr-squircle.d.ts +22 -3
- package/types/ngwr-statistic.d.ts +0 -1
- package/types/ngwr-storage.d.ts +1 -1
- package/types/ngwr-theme.d.ts +1 -1
- package/types/ngwr-toast.d.ts +3 -1
- package/types/ngwr-tour.d.ts +7 -1
- package/types/ngwr-transfer.d.ts +52 -0
- package/types/ngwr-tree-testing.d.ts +20 -0
- package/types/ngwr-tree.d.ts +43 -1
- package/types/ngwr-version.d.ts +1 -1
- package/types/ngwr-window.d.ts +2 -1
- package/typography/styles/_index.scss +26 -4
package/types/ngwr-media.d.ts
CHANGED
package/types/ngwr-mention.d.ts
CHANGED
|
@@ -60,8 +60,15 @@ declare class WrMention<T extends WrMentionItem = WrMentionItem> {
|
|
|
60
60
|
readonly wrMentionSelected: _angular_core.OutputEmitterRef<WrMentionCommit<T>>;
|
|
61
61
|
private readonly host;
|
|
62
62
|
private readonly overlay;
|
|
63
|
+
/**
|
|
64
|
+
* Optional inject: `Directionality` is root-provided, so this is never null in
|
|
65
|
+
* an app — but a bare `TestBed` that provides nothing should still get a
|
|
66
|
+
* directive that works, and defaulting to LTR is the honest fallback.
|
|
67
|
+
*/
|
|
68
|
+
private readonly dir;
|
|
63
69
|
private readonly scrollStrategies;
|
|
64
70
|
private readonly destroyRef;
|
|
71
|
+
private readonly injector;
|
|
65
72
|
private readonly isBrowser;
|
|
66
73
|
private overlayRef;
|
|
67
74
|
private panelRef;
|
package/types/ngwr-meta.d.ts
CHANGED
package/types/ngwr-overlay.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Directionality, Direction } from '@angular/cdk/bidi';
|
|
2
|
+
import { OverlayRef, ConnectedPosition, OverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
4
|
+
import { Injector, EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @license
|
|
@@ -28,6 +29,63 @@ import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
|
28
29
|
*/
|
|
29
30
|
declare function wrAppendOverlayClose(host: HTMLElement, className: string, label: string, onClose: () => void): HTMLButtonElement;
|
|
30
31
|
|
|
32
|
+
/**
|
|
33
|
+
* @license
|
|
34
|
+
*
|
|
35
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
36
|
+
* found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Keep an OPEN overlay on the application's reading direction.
|
|
41
|
+
*
|
|
42
|
+
* The CDK reads the direction ONCE, as a string, when the overlay is created
|
|
43
|
+
* (`overlayConfig.direction ||= directionality.value`), writes it as the host's
|
|
44
|
+
* `dir` on attach, and never looks at it again — `updatePosition()` does not
|
|
45
|
+
* touch it and `setDirection()` is the only thing that does. So an application
|
|
46
|
+
* that flips direction while a panel is open mirrors the page and leaves the
|
|
47
|
+
* panel behind, still `ltr`, still resolving `start` to the left. This site's
|
|
48
|
+
* own LTR/RTL switch is the demonstration: it lives inside a `wr-dropdown`, and
|
|
49
|
+
* the `wr-segmented` it is built from reads `Directionality` live — so the thumb
|
|
50
|
+
* slides to the other slot while the pane around it still renders `ltr`, and
|
|
51
|
+
* parks under the wrong label.
|
|
52
|
+
*
|
|
53
|
+
* Call it once per `OverlayRef`, right after `overlay.create(...)`. The follower
|
|
54
|
+
* ends itself when that overlay detaches or is disposed, so a reopen — which is
|
|
55
|
+
* always a NEW ref in this library — needs a new call, and the returned teardown
|
|
56
|
+
* is only for stopping early.
|
|
57
|
+
*
|
|
58
|
+
* `onDirectionChange` is for the sites whose position LIST is itself
|
|
59
|
+
* direction-dependent (the four that pass their table through
|
|
60
|
+
* {@link wrMirrorOffsets}): it runs with the new direction already on the ref
|
|
61
|
+
* and before the overlay repositions, so the strategy is carrying the mirrored
|
|
62
|
+
* offsets by the time the CDK re-resolves them.
|
|
63
|
+
*
|
|
64
|
+
* SSR-safe: it touches no browser global of its own, and the CDK's position
|
|
65
|
+
* strategies no-op off the browser, so a flip on the server only rewrites the
|
|
66
|
+
* attribute.
|
|
67
|
+
*
|
|
68
|
+
* @param overlayRef The overlay to keep in step, freshly created.
|
|
69
|
+
* @param dir The `Directionality` the caller injected. `null` — an optional
|
|
70
|
+
* inject with no provider, i.e. a bare `TestBed` — means there is nothing
|
|
71
|
+
* ambient to follow and this does nothing at all.
|
|
72
|
+
* @param injector Owns the `valueSignal` watch; the caller's own is right.
|
|
73
|
+
* @param onDirectionChange Re-applies direction-dependent state, e.g.
|
|
74
|
+
* `strategy.withPositions(wrMirrorOffsets(TABLE, direction === 'rtl'))`.
|
|
75
|
+
* @returns Stops following. Idempotent, and unnecessary in the normal case.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* this.overlayRef = this.overlay.create({ positionStrategy, ... });
|
|
80
|
+
* wrFollowDirection(this.overlayRef, this.dir, this.injector, direction =>
|
|
81
|
+
* positionStrategy.withPositions(
|
|
82
|
+
* wrMirrorOffsets(WR_POPCONFIRM_POSITIONS[this.position()], direction === 'rtl')
|
|
83
|
+
* )
|
|
84
|
+
* );
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
declare function wrFollowDirection(overlayRef: OverlayRef, dir: Directionality | null, injector: Injector, onDirectionChange?: (direction: Direction) => void): () => void;
|
|
88
|
+
|
|
31
89
|
/**
|
|
32
90
|
* @license
|
|
33
91
|
*
|
|
@@ -126,7 +184,7 @@ declare class WrOutsideClick {
|
|
|
126
184
|
private listen;
|
|
127
185
|
private unlisten;
|
|
128
186
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrOutsideClick, never>;
|
|
129
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
187
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
130
188
|
}
|
|
131
189
|
|
|
132
190
|
/**
|
|
@@ -155,7 +213,7 @@ declare class WrOutsideClick {
|
|
|
155
213
|
declare class WrOverlayContainer extends OverlayContainer {
|
|
156
214
|
protected _createContainer(): void;
|
|
157
215
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrOverlayContainer, never>;
|
|
158
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
216
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
159
217
|
}
|
|
160
218
|
|
|
161
219
|
/**
|
|
@@ -302,5 +360,5 @@ declare const WR_OVERLAY: InjectionToken<Overlay>;
|
|
|
302
360
|
*/
|
|
303
361
|
declare const WR_OVERLAY_CONTAINER: InjectionToken<OverlayContainer>;
|
|
304
362
|
|
|
305
|
-
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrMirrorOffsets, wrPresentAsSheet };
|
|
363
|
+
export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrFollowDirection, wrMirrorOffsets, wrPresentAsSheet };
|
|
306
364
|
export type { WrResponsiveOverlaysConfig };
|
|
@@ -115,6 +115,22 @@ declare class WrPagination {
|
|
|
115
115
|
/** The nav landmark's own accessible name — was a hardcoded English literal. */
|
|
116
116
|
protected readonly navLabel: _angular_core.Signal<string>;
|
|
117
117
|
/** Internal: total page count. */
|
|
118
|
+
/**
|
|
119
|
+
* A page size that is not a positive number yields ONE page, not `Infinity`.
|
|
120
|
+
*
|
|
121
|
+
* `pageSize` is a `model()`, so Angular offers no `transform` to coerce it and
|
|
122
|
+
* whatever the host writes arrives raw. At 0 the division is `Infinity`,
|
|
123
|
+
* `Math.max(1, …)` keeps it, and the item list below pushes `total` as the
|
|
124
|
+
* last page — so the strip rendered a clickable cell reading "Infinity", and
|
|
125
|
+
* clicking it locked the tab. `NaN` (a `pageSize` bound to an emptied number
|
|
126
|
+
* field) came through untouched for the same reason.
|
|
127
|
+
*
|
|
128
|
+
* One page is the honest answer: a size of zero describes no paging at all.
|
|
129
|
+
* Note this is about `pageSize` and does NOT touch the recorded contract
|
|
130
|
+
* about `total` — pagination still refuses to pull the page DOWN while
|
|
131
|
+
* `total` is at or below zero, because 0 is ambiguous with "still loading".
|
|
132
|
+
*/
|
|
133
|
+
private readonly usablePageSize;
|
|
118
134
|
protected readonly totalPages: _angular_core.Signal<number>;
|
|
119
135
|
/**
|
|
120
136
|
* Internal: where the previous arrow goes. Clamped to the end of the valid
|
package/types/ngwr-platform.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ declare class WrPlatform {
|
|
|
32
32
|
readonly prefersReducedMotion: Signal<boolean>;
|
|
33
33
|
private mediaSignal;
|
|
34
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrPlatform, never>;
|
|
35
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
35
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
@@ -63,7 +63,7 @@ declare class WrVisualViewport {
|
|
|
63
63
|
readonly offsetTop: Signal<number>;
|
|
64
64
|
constructor();
|
|
65
65
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrVisualViewport, never>;
|
|
66
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
66
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/** Impact weight for {@link WrHaptics.impact}. */
|
|
@@ -122,7 +122,7 @@ declare class WrHaptics {
|
|
|
122
122
|
/** Cancel any in-progress vibration. */
|
|
123
123
|
stop(): void;
|
|
124
124
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrHaptics, never>;
|
|
125
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
125
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
export { WrHaptics, WrPlatform, WrVisualViewport };
|
|
@@ -40,6 +40,7 @@ declare class WrPopconfirm {
|
|
|
40
40
|
private readonly outsideClick;
|
|
41
41
|
private readonly vcr;
|
|
42
42
|
private readonly scrollStrategies;
|
|
43
|
+
private readonly injector;
|
|
43
44
|
private readonly destroyRef;
|
|
44
45
|
/** @internal Public so the host bindings can read it. */
|
|
45
46
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
@@ -34,9 +34,9 @@ interface WrPopoverHarnessFilters extends BaseHarnessFilters {
|
|
|
34
34
|
*
|
|
35
35
|
* - **popover** — template content, opens on click (or hover), announces
|
|
36
36
|
* `role="dialog"` and is what the trigger's `aria-expanded` describes;
|
|
37
|
-
* - **tooltip** — string content, opens on hover
|
|
38
|
-
*
|
|
39
|
-
* owned by it.
|
|
37
|
+
* - **tooltip** — string content, opens after a delay on hover or on KEYBOARD
|
|
38
|
+
* focus (never on a `.focus()` call — see {@link focus}), announces
|
|
39
|
+
* `role="tooltip"` and DESCRIBES its trigger instead of being owned by it.
|
|
40
40
|
*
|
|
41
41
|
* The panel is never inside the trigger: it is a portal in the overlay
|
|
42
42
|
* container, a sibling of the whole app. It is reached through the document
|
|
@@ -112,7 +112,9 @@ declare class WrPopoverHarness extends ContentContainerComponentHarness {
|
|
|
112
112
|
* Hover leads because a click is an outside pointer event for every OTHER open
|
|
113
113
|
* panel, so leading with it would dismiss someone else's popover on the way to
|
|
114
114
|
* opening this one; a click-driven popover ignores the hover outright. A
|
|
115
|
-
* tooltip is never clicked at all
|
|
115
|
+
* tooltip is never clicked at all, and hover is the only one of its two
|
|
116
|
+
* gestures a harness can perform — the other is a keyboard focus, which is
|
|
117
|
+
* `FocusMonitor`'s to grant (see {@link focus}).
|
|
116
118
|
*
|
|
117
119
|
* Throws when nothing appears: a tooltip with an empty string never opens, and
|
|
118
120
|
* a spec on fake timers has to advance the clock itself.
|
|
@@ -133,7 +135,22 @@ declare class WrPopoverHarness extends ContentContainerComponentHarness {
|
|
|
133
135
|
hover(): Promise<void>;
|
|
134
136
|
/** Move the pointer off the trigger. The panel goes after the grace period, not instantly. */
|
|
135
137
|
mouseAway(): Promise<void>;
|
|
136
|
-
/**
|
|
138
|
+
/**
|
|
139
|
+
* Focus the trigger PROGRAMMATICALLY — and note that this does not open a
|
|
140
|
+
* tooltip.
|
|
141
|
+
*
|
|
142
|
+
* `TestElement.focus()` is a `.focus()` call, which is the one kind of focus a
|
|
143
|
+
* tooltip deliberately ignores: it shows for a KEYBOARD focus only, because
|
|
144
|
+
* every overlay in the catalog hands focus back to the trigger it was opened
|
|
145
|
+
* from, and a tooltip that answered those appeared with no pointer to leave and
|
|
146
|
+
* no focus to lose. So this method is the way to assert that NOTHING happens.
|
|
147
|
+
*
|
|
148
|
+
* There is no keyboard-origin twin, and it cannot be written honestly here:
|
|
149
|
+
* origin is `FocusMonitor`'s answer, this class has no injector, and the Tab
|
|
150
|
+
* that would earn it moves focus in a browser and not in jsdom. A spec that
|
|
151
|
+
* needs the opening gesture drives `FocusMonitor.focusVia(el, 'keyboard')`
|
|
152
|
+
* itself, the way `popover.spec.ts` does — or uses `hover()`.
|
|
153
|
+
*/
|
|
137
154
|
focus(): Promise<void>;
|
|
138
155
|
/** Blur the trigger, which hides a tooltip after `hideDelay`. */
|
|
139
156
|
blur(): Promise<void>;
|
package/types/ngwr-popover.d.ts
CHANGED
|
@@ -23,13 +23,13 @@ declare class WrPopover {
|
|
|
23
23
|
*
|
|
24
24
|
* - `'popover'` (default) — template content, click trigger, dialog
|
|
25
25
|
* semantics.
|
|
26
|
-
* - `'tooltip'` — text content, hover
|
|
27
|
-
* `aria-describedby` on the host.
|
|
26
|
+
* - `'tooltip'` — text content, hover / keyboard-focus trigger,
|
|
27
|
+
* `role="tooltip"`, `aria-describedby` on the host.
|
|
28
28
|
*/
|
|
29
29
|
readonly mode: _angular_core.InputSignal<"popover" | "tooltip">;
|
|
30
30
|
/**
|
|
31
|
-
* How the popover opens. Ignored in tooltip mode —
|
|
32
|
-
*
|
|
31
|
+
* How the popover opens. Ignored in tooltip mode — a tooltip is always hover
|
|
32
|
+
* plus keyboard focus. @default 'click'
|
|
33
33
|
*/
|
|
34
34
|
readonly trigger: _angular_core.InputSignal<"click" | "hover">;
|
|
35
35
|
/** Anchor side. @default 'bottom' for popover, 'top' for tooltip */
|
|
@@ -57,6 +57,8 @@ declare class WrPopover {
|
|
|
57
57
|
/** Fires after the panel closes. */
|
|
58
58
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
59
59
|
private readonly host;
|
|
60
|
+
private readonly focusMonitor;
|
|
61
|
+
private readonly keystroke;
|
|
60
62
|
private readonly overlay;
|
|
61
63
|
private readonly dir;
|
|
62
64
|
private readonly outsideClick;
|
|
@@ -64,6 +66,7 @@ declare class WrPopover {
|
|
|
64
66
|
private readonly vcr;
|
|
65
67
|
private readonly scrollStrategies;
|
|
66
68
|
private readonly destroyRef;
|
|
69
|
+
private readonly injector;
|
|
67
70
|
/** @internal */
|
|
68
71
|
readonly isOpen: _angular_core.WritableSignal<boolean>;
|
|
69
72
|
/** @internal */
|
|
@@ -74,6 +77,8 @@ declare class WrPopover {
|
|
|
74
77
|
private readonly resolvedPosition;
|
|
75
78
|
private overlayRef;
|
|
76
79
|
private textPanelRef;
|
|
80
|
+
/** Whether the HOST itself holds focus — not a descendant of it. */
|
|
81
|
+
private hostFocused;
|
|
77
82
|
private hoverCloseTimer;
|
|
78
83
|
private showTimer;
|
|
79
84
|
private hideTimer;
|
|
@@ -88,15 +93,46 @@ declare class WrPopover {
|
|
|
88
93
|
/** @internal */
|
|
89
94
|
protected onMouseLeave(event: MouseEvent): void;
|
|
90
95
|
/** @internal */
|
|
91
|
-
protected onFocus(): void;
|
|
92
|
-
/** @internal */
|
|
93
|
-
protected onBlur(): void;
|
|
94
|
-
/** @internal */
|
|
95
96
|
protected onEscape(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Whether the keystroke in flight is one the user moves focus with.
|
|
99
|
+
*
|
|
100
|
+
* Asked only of a `keyboard` origin, which the CDK grants to any focus landing
|
|
101
|
+
* within a millisecond of a keydown — including the hand-back a drawer
|
|
102
|
+
* performs while Escape is still being handled. That is the reported bug's
|
|
103
|
+
* keyboard half, and the origin cannot see it.
|
|
104
|
+
*
|
|
105
|
+
* NO key on record answers `true`, and that polarity is chosen rather than
|
|
106
|
+
* inherited: a keyboard modality with no keystroke behind it is a screen
|
|
107
|
+
* reader's virtual cursor (the CDK reads its synthetic mousedown as
|
|
108
|
+
* `keyboard`) or a deliberate `focusVia(el, 'keyboard')`, and both are the
|
|
109
|
+
* user. Refusing wants positive evidence of a key that does something other
|
|
110
|
+
* than navigate — silence must not cost an AT user the hint. The two windows
|
|
111
|
+
* are aligned so that "keyboard origin, no key" cannot mean "the key just
|
|
112
|
+
* expired"; what it does still admit is a `FocusMonitorDetectionMode.EVENTUAL`
|
|
113
|
+
* app, where the CDK never expires an origin at all.
|
|
114
|
+
*/
|
|
115
|
+
private fromNavigationKey;
|
|
96
116
|
private scheduleShow;
|
|
97
117
|
private scheduleHide;
|
|
98
118
|
private clearTimers;
|
|
99
119
|
private openOverlay;
|
|
120
|
+
/**
|
|
121
|
+
* Tear the overlay down, and tell the host — unless the host is going away
|
|
122
|
+
* with it.
|
|
123
|
+
*
|
|
124
|
+
* `notify: false` is the DESTROY path, and it is not a nicety. An `output()`
|
|
125
|
+
* belongs to the view that declares it, so emitting from `onDestroy` is
|
|
126
|
+
* refused: Angular logs `NG0953: Unexpected emit for destroyed OutputRef` and
|
|
127
|
+
* the listener never runs. Measured — a `(closed)` handler on a dropdown whose
|
|
128
|
+
* host view is removed while the menu is open fired zero times and left a
|
|
129
|
+
* console error behind. There is nobody to notify at that point, because the
|
|
130
|
+
* consumer's own view is being torn down in the same pass; `wr-popconfirm`
|
|
131
|
+
* already disposes without emitting, and this brings the other two into line.
|
|
132
|
+
*
|
|
133
|
+
* The focus hand-back is skipped for the same reason — the host element is on
|
|
134
|
+
* its way out of the document.
|
|
135
|
+
*/
|
|
100
136
|
private closeOverlay;
|
|
101
137
|
private readonly onOverlayLeave;
|
|
102
138
|
private readonly onOverlayEnter;
|
|
@@ -225,10 +225,19 @@ declare class WrRatingHarness extends ComponentHarness {
|
|
|
225
225
|
/** Whether the rating refuses interaction — `aria-disabled`, for the same reason. */
|
|
226
226
|
isDisabled(): Promise<boolean>;
|
|
227
227
|
/**
|
|
228
|
-
* Whether the rating is
|
|
228
|
+
* Whether the rating is a tab stop.
|
|
229
229
|
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
230
|
+
* `disabled` only, never `readonly` — and the distinction is deliberate, not
|
|
231
|
+
* incidental. A disabled control leaves the tab order; a READ-ONLY one stays
|
|
232
|
+
* in it, keeps announcing its value, and still submits, which is the whole
|
|
233
|
+
* difference between "you may not" and "there is nothing here". The component
|
|
234
|
+
* records that driving this off an `interactive()` that folded the two
|
|
235
|
+
* together made `readonly` unreachable, with an `aria-describedby` pointing
|
|
236
|
+
* at an element nobody could focus.
|
|
237
|
+
*
|
|
238
|
+
* This docblock used to describe exactly that fixed bug — "false while
|
|
239
|
+
* readonly or disabled" — so a reader trusting it would have asserted the
|
|
240
|
+
* behaviour the component was changed to stop having.
|
|
232
241
|
*/
|
|
233
242
|
isFocusable(): Promise<boolean>;
|
|
234
243
|
/**
|
package/types/ngwr-rating.d.ts
CHANGED
|
@@ -105,6 +105,19 @@ declare class WrRating implements FormValueControl<number | null> {
|
|
|
105
105
|
private readonly directionality;
|
|
106
106
|
/** The surrounding `<wr-form-field>`'s error state. @internal */
|
|
107
107
|
protected readonly fieldAria: ngwr_form.WrFormFieldAria;
|
|
108
|
+
/**
|
|
109
|
+
* The field's label wins over the built-in default, and an explicit
|
|
110
|
+
* `ariaLabel` wins over both.
|
|
111
|
+
*
|
|
112
|
+
* `<wr-form-field label="…">` renders a `<label for>` that cannot reach this
|
|
113
|
+
* control — `for` binds only to a LABELABLE element and the focusable part
|
|
114
|
+
* here carries a role instead — so the field's label named nothing and this
|
|
115
|
+
* announced its own generic default. A consumer who wrote
|
|
116
|
+
* `<wr-form-field label="Overall satisfaction">` heard "Rating".
|
|
117
|
+
*/
|
|
118
|
+
protected readonly labelledBy: _angular_core.Signal<string | null>;
|
|
119
|
+
/** `null` once `aria-labelledby` is carrying the name, or the two are announced together. */
|
|
120
|
+
protected readonly nameLabel: _angular_core.Signal<string | null>;
|
|
108
121
|
protected readonly classes: _angular_core.Signal<string>;
|
|
109
122
|
/** Fill ratio for slot `i` in `[0, 1]` — drives the CSS clip width. */
|
|
110
123
|
protected fillFor(i: number): number;
|
package/types/ngwr-scroll.d.ts
CHANGED
|
@@ -148,6 +148,22 @@ declare class WrSegmented<T = unknown> implements FormValueControl<T | null> {
|
|
|
148
148
|
protected readonly selectedIndex: _angular_core.Signal<number>;
|
|
149
149
|
/** Flips true after the first paint so the thumb only animates user-driven changes, not the initial snap. */
|
|
150
150
|
private readonly mounted;
|
|
151
|
+
/**
|
|
152
|
+
* True for the tick in which the reading direction changed.
|
|
153
|
+
*
|
|
154
|
+
* Mirroring moves the thumb's SLOT by the whole width of the strip (see
|
|
155
|
+
* `thumbStyle`), and animating that is a quarter-second of the pill travelling
|
|
156
|
+
* across options it does not mark — caught under the wrong label every time the
|
|
157
|
+
* docs site's LTR / RTL switch was used, which is a strip inside an overlay that
|
|
158
|
+
* mirrors underneath it. The selection did not move, so neither should the pill:
|
|
159
|
+
* the stylesheet drops its transition while this is set, and the new slot lands
|
|
160
|
+
* in the same pass that removes it.
|
|
161
|
+
*
|
|
162
|
+
* Cleared from a task rather than `afterNextRender`, which runs inside the very
|
|
163
|
+
* change detection that set this and would put the transition back before the
|
|
164
|
+
* new position is painted.
|
|
165
|
+
*/
|
|
166
|
+
private readonly flipping;
|
|
151
167
|
constructor();
|
|
152
168
|
protected readonly classes: _angular_core.Signal<string>;
|
|
153
169
|
private readonly dir;
|
package/types/ngwr-select.d.ts
CHANGED
|
@@ -710,6 +710,13 @@ declare class WrSelect implements FormValueControl<unknown>, WrSelectContext {
|
|
|
710
710
|
private readonly destroyRef;
|
|
711
711
|
private readonly platformId;
|
|
712
712
|
private readonly injector;
|
|
713
|
+
/**
|
|
714
|
+
* Ambient reading direction, for the open panel alone — nothing in this
|
|
715
|
+
* component reads it directly. Optional so a bare `TestBed` needs no
|
|
716
|
+
* provider; `Directionality` is root-provided anyway, and a missing one
|
|
717
|
+
* simply reads as `ltr`.
|
|
718
|
+
*/
|
|
719
|
+
private readonly dir;
|
|
713
720
|
private overlayRef;
|
|
714
721
|
constructor();
|
|
715
722
|
isSelected(value: unknown): boolean;
|
package/types/ngwr-squircle.d.ts
CHANGED
|
@@ -41,6 +41,20 @@ type WrSquircleCornerMask = 'all' | 'left' | 'right' | 'top' | 'bottom' | 'none'
|
|
|
41
41
|
* Apply a Figma-style smooth-corner ("squircle") `clip-path` to the host
|
|
42
42
|
* element. Re-computes the path whenever the element resizes.
|
|
43
43
|
*
|
|
44
|
+
* @deprecated Use the native route instead — `@use 'ngwr/theme'` and the
|
|
45
|
+
* `smooth-br` mixin, which 31 entry points already ride by default. This
|
|
46
|
+
* directive exists because `corner-shape` was Chromium-only, and that reason
|
|
47
|
+
* has an expiry date: WebKit has it in Technology Preview. It will be removed
|
|
48
|
+
* in the major after Safari stable ships the property.
|
|
49
|
+
*
|
|
50
|
+
* It is deprecated rather than removed today because it is still the only
|
|
51
|
+
* DETERMINISTIC squircle — the native property reaches roughly two thirds of
|
|
52
|
+
* users and the rest see a rounded corner. If that difference matters to a
|
|
53
|
+
* design, this is still the way to get it, with the costs stated: a hand-ported
|
|
54
|
+
* superellipse, a `ResizeObserver` and a `getBoundingClientRect` per host on
|
|
55
|
+
* every resize, square corners until hydration under SSR, no test harness, and
|
|
56
|
+
* a clip that `box-shadow`, `border-image` and the focus ring do not follow.
|
|
57
|
+
*
|
|
44
58
|
* Borders: pass `[borderWidth]` (px) + `[borderColor]` and the directive
|
|
45
59
|
* paints a `::before` pseudo with an *inset* squircle path on top of the
|
|
46
60
|
* host. The visible border is the host's own background colour, so set
|
|
@@ -92,9 +106,11 @@ declare class WrSquircle {
|
|
|
92
106
|
* only the two corners on the named side and leave the other two at
|
|
93
107
|
* 90°. `'none'` is equivalent to disabling the directive.
|
|
94
108
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
109
|
+
* A `model()` rather than an `input()` so a parent composing the directive
|
|
110
|
+
* can flip it imperatively. Nothing in the library does today: this line
|
|
111
|
+
* used to name `WrButtonGroup` as the consumer, and that component has
|
|
112
|
+
* carried no squircle reference for several releases — `wr-btn--squircle`
|
|
113
|
+
* is plain CSS now.
|
|
98
114
|
*
|
|
99
115
|
* @default 'all'
|
|
100
116
|
*/
|
|
@@ -122,6 +138,9 @@ declare class WrSquircle {
|
|
|
122
138
|
* ```
|
|
123
139
|
*
|
|
124
140
|
* @see https://ngwr.dev/reference/components/squircle
|
|
141
|
+
*
|
|
142
|
+
* @deprecated Follows `[wrSquircle]`, which it wraps — see that directive
|
|
143
|
+
* for why, and for the native route to use instead.
|
|
125
144
|
*/
|
|
126
145
|
declare class WrSquircleHost {
|
|
127
146
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrSquircleHost, never>;
|
|
@@ -128,7 +128,6 @@ declare class WrStatisticCountdown {
|
|
|
128
128
|
readonly tickMs: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
129
129
|
/** Fires once when the countdown crosses zero. */
|
|
130
130
|
readonly countdownEnd: _angular_core.OutputEmitterRef<void>;
|
|
131
|
-
private readonly destroyRef;
|
|
132
131
|
private readonly isBrowser;
|
|
133
132
|
private readonly targetMs;
|
|
134
133
|
/**
|
package/types/ngwr-storage.d.ts
CHANGED
|
@@ -94,7 +94,7 @@ declare class WrStorage {
|
|
|
94
94
|
private rawKeys;
|
|
95
95
|
private installCrossTabListener;
|
|
96
96
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrStorage, never>;
|
|
97
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
97
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
package/types/ngwr-theme.d.ts
CHANGED
|
@@ -219,7 +219,7 @@ declare class WrTheme {
|
|
|
219
219
|
private readPersisted;
|
|
220
220
|
private persist;
|
|
221
221
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrTheme, never>;
|
|
222
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
222
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
/**
|
package/types/ngwr-toast.d.ts
CHANGED
|
@@ -164,6 +164,8 @@ declare class WrToastRef {
|
|
|
164
164
|
declare class WrToast {
|
|
165
165
|
private readonly overlay;
|
|
166
166
|
private readonly config;
|
|
167
|
+
private readonly injector;
|
|
168
|
+
private readonly dir;
|
|
167
169
|
private overlayRef;
|
|
168
170
|
private hostRef;
|
|
169
171
|
/** Watches the overlay container for overlays opened after the host. */
|
|
@@ -238,7 +240,7 @@ declare class WrToast {
|
|
|
238
240
|
private pushToHost;
|
|
239
241
|
private disposeHost;
|
|
240
242
|
static ɵfac: i0.ɵɵFactoryDeclaration<WrToast, never>;
|
|
241
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<
|
|
243
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
242
244
|
}
|
|
243
245
|
|
|
244
246
|
/**
|
package/types/ngwr-tour.d.ts
CHANGED
|
@@ -115,6 +115,12 @@ declare class WrTour {
|
|
|
115
115
|
private anyResolvableBefore;
|
|
116
116
|
private resolve;
|
|
117
117
|
private openStep;
|
|
118
|
+
/**
|
|
119
|
+
* The card's fallback table for one placement, with its inline offsets already
|
|
120
|
+
* mirrored. Built per call rather than per step: the direction can change while
|
|
121
|
+
* the step is on screen, and a table is what has to be rebuilt when it does.
|
|
122
|
+
*/
|
|
123
|
+
private stepPositions;
|
|
118
124
|
private placeSpotlight;
|
|
119
125
|
private teardownStep;
|
|
120
126
|
/**
|
|
@@ -126,7 +132,7 @@ declare class WrTour {
|
|
|
126
132
|
*/
|
|
127
133
|
private isRtl;
|
|
128
134
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrTour, never>;
|
|
129
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
135
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
130
136
|
}
|
|
131
137
|
|
|
132
138
|
/** What the popup needs from the running tour, without importing the service (cycle). */
|
package/types/ngwr-transfer.d.ts
CHANGED
|
@@ -114,6 +114,17 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
114
114
|
protected readonly resolvedSearch: _angular_core.Signal<string>;
|
|
115
115
|
protected readonly resolvedEmpty: _angular_core.Signal<string>;
|
|
116
116
|
protected readonly resolvedSelectAll: _angular_core.Signal<string>;
|
|
117
|
+
/**
|
|
118
|
+
* The select-all checkbox's accessible name, composed IN THE CATALOG.
|
|
119
|
+
*
|
|
120
|
+
* It used to be a template literal — `` `${title} — ${selectAll}` `` — which
|
|
121
|
+
* froze both the separator and the operand order into English. A translator
|
|
122
|
+
* could change each half and not the sentence they make, which is the exact
|
|
123
|
+
* defect the calendar and event-calendar catalogs were rewritten to remove.
|
|
124
|
+
* The key ships as `{{pane}} — {{action}}` in every locale, so nothing reads
|
|
125
|
+
* differently today and every locale can now reorder it without a code change.
|
|
126
|
+
*/
|
|
127
|
+
protected readonly selectAllAria: (params?: ngwr_i18n.WrI18nParams) => string;
|
|
117
128
|
protected readonly resolvedToTarget: _angular_core.Signal<string>;
|
|
118
129
|
protected readonly resolvedToSource: _angular_core.Signal<string>;
|
|
119
130
|
/** `{{checked}} / {{total}}` under each heading. @internal */
|
|
@@ -129,6 +140,23 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
129
140
|
private readonly valueSet;
|
|
130
141
|
protected readonly source: _angular_core.Signal<PaneState>;
|
|
131
142
|
protected readonly target: _angular_core.Signal<PaneState>;
|
|
143
|
+
/**
|
|
144
|
+
* Say something when `value` holds a value no `items` entry matches.
|
|
145
|
+
*
|
|
146
|
+
* Such a value is in NEITHER pane — the left one filters out anything already
|
|
147
|
+
* selected and the right one can only render rows it found — and the header
|
|
148
|
+
* counts the rows it shows, so nothing on screen contradicts anything. The
|
|
149
|
+
* result is a value the user can neither see nor remove, and no sign that it
|
|
150
|
+
* is there.
|
|
151
|
+
*
|
|
152
|
+
* A warning rather than an invented row, which matches how the library treats
|
|
153
|
+
* the same question elsewhere: `wr-select` renders a value outside its option
|
|
154
|
+
* list only under an explicit `freeText`, so an unmatched value is a mode a
|
|
155
|
+
* consumer opts into, not a shape a component guesses at. It also stays quiet
|
|
156
|
+
* about the common transient case — `items` arriving after `value` — because
|
|
157
|
+
* the message names the values and a developer can see them settle.
|
|
158
|
+
*/
|
|
159
|
+
private warnAboutOrphans;
|
|
132
160
|
protected readonly canMoveRight: _angular_core.Signal<boolean>;
|
|
133
161
|
protected readonly canMoveLeft: _angular_core.Signal<boolean>;
|
|
134
162
|
protected readonly classes: _angular_core.Signal<string>;
|
|
@@ -137,6 +165,30 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
|
|
|
137
165
|
/** Header checkbox — stages or clears every enabled row the filter shows. */
|
|
138
166
|
protected toggleAll(pane: 'source' | 'target', checked: boolean): void;
|
|
139
167
|
protected onSearch(pane: 'source' | 'target', event: Event): void;
|
|
168
|
+
private readonly host;
|
|
169
|
+
private readonly injector;
|
|
170
|
+
/**
|
|
171
|
+
* Keep focus in the widget after a move.
|
|
172
|
+
*
|
|
173
|
+
* A move empties the pane's staging set, which is exactly what disables the
|
|
174
|
+
* button that was just pressed — so the element holding DOM focus went
|
|
175
|
+
* `disabled` as a RESULT of its own activation and the browser dropped focus
|
|
176
|
+
* to `<body>`. From there the next Tab restarts at the top of the document,
|
|
177
|
+
* which for a keyboard user is being thrown out of a control they were in the
|
|
178
|
+
* middle of using.
|
|
179
|
+
*
|
|
180
|
+
* The landing is the FIRST ROW OF THE PANE THE ROWS ARRIVED IN, and the
|
|
181
|
+
* obvious alternative does not work: after a move BOTH buttons are disabled,
|
|
182
|
+
* because each needs something ticked and the move cleared the tick on one
|
|
183
|
+
* side and arrived unticked on the other. The rows that just moved are where
|
|
184
|
+
* the user's attention is and where the next action lives, so that is where
|
|
185
|
+
* focus goes.
|
|
186
|
+
*
|
|
187
|
+
* `afterNextRender`, not `queueMicrotask`: under zoneless CD the microtask
|
|
188
|
+
* runs before the moved rows are in the DOM, so the focus call would land on
|
|
189
|
+
* the pane as it was before the move.
|
|
190
|
+
*/
|
|
191
|
+
private restoreFocusAfterMove;
|
|
140
192
|
protected moveRight(): void;
|
|
141
193
|
protected moveLeft(): void;
|
|
142
194
|
/** Filter, then derive the header state from what survived. */
|
|
@@ -358,6 +358,26 @@ declare class WrTreeHarness extends ContentContainerComponentHarness {
|
|
|
358
358
|
removeChip(label: string): Promise<void>;
|
|
359
359
|
/** Click the clear (×) control on the trigger. */
|
|
360
360
|
clear(): Promise<void>;
|
|
361
|
+
/**
|
|
362
|
+
* Backspace on the closed overlay trigger — the keyboard route to the ×.
|
|
363
|
+
*
|
|
364
|
+
* In single mode it clears (only while `clearable` is on); in multi mode it
|
|
365
|
+
* drops the LAST chip, one per call, whatever `clearable` says. Both ×
|
|
366
|
+
* controls are `tabindex="-1"` spans inside the trigger, so a key can never
|
|
367
|
+
* reach them directly. In single mode this is the ONLY keyboard route back to
|
|
368
|
+
* no selection; in multi mode a keyboard user can also toggle a row off in the
|
|
369
|
+
* panel ({@link selectNode} with `additive`). {@link clear} / {@link removeChip}
|
|
370
|
+
* prove the pointer path and nothing more.
|
|
371
|
+
*
|
|
372
|
+
* The key is honoured only on the CLOSED trigger, so an open panel is closed
|
|
373
|
+
* first with Escape — the step a keyboard user takes too, since focus sits in
|
|
374
|
+
* the panel while it is up.
|
|
375
|
+
*
|
|
376
|
+
* Does nothing, rather than throwing, where the component does nothing —
|
|
377
|
+
* nothing selected, disabled or read-only — so a spec asserts the outcome on
|
|
378
|
+
* the value.
|
|
379
|
+
*/
|
|
380
|
+
clearByKeyboard(): Promise<void>;
|
|
361
381
|
/**
|
|
362
382
|
* The nodes currently rendered, in the order they are shown.
|
|
363
383
|
*
|