@soxa-ui/setup 0.0.0-stage → 0.3.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/LICENSE +21 -0
- package/README.md +63 -2
- package/dist/content/descriptors/components/accordion/accordion.descriptor.d.ts +205 -0
- package/dist/content/descriptors/components/accordion/accordion.descriptor.js +80 -0
- package/dist/content/descriptors/components/accordion/collection.descriptor.d.ts +76 -0
- package/dist/content/descriptors/components/accordion/collection.descriptor.js +60 -0
- package/dist/content/descriptors/components/accordion/index.d.ts +3 -0
- package/dist/content/descriptors/components/accordion/item.descriptor.d.ts +244 -0
- package/dist/content/descriptors/components/accordion/item.descriptor.js +93 -0
- package/dist/content/descriptors/components/button.descriptor.d.ts +192 -0
- package/dist/content/descriptors/components/button.descriptor.js +39 -0
- package/dist/content/descriptors/components/calendar/calendar.descriptor.d.ts +261 -0
- package/dist/content/descriptors/components/calendar/calendar.descriptor.js +142 -0
- package/dist/content/descriptors/components/calendar/collection.descriptor.d.ts +85 -0
- package/dist/content/descriptors/components/calendar/collection.descriptor.js +88 -0
- package/dist/content/descriptors/components/calendar/index.d.ts +3 -0
- package/dist/content/descriptors/components/calendar/item.descriptor.d.ts +154 -0
- package/dist/content/descriptors/components/calendar/item.descriptor.js +65 -0
- package/dist/content/descriptors/components/check-box.descriptor.d.ts +227 -0
- package/dist/content/descriptors/components/check-box.descriptor.js +65 -0
- package/dist/content/descriptors/components/clearable.descriptor.d.ts +213 -0
- package/dist/content/descriptors/components/clearable.descriptor.js +51 -0
- package/dist/content/descriptors/components/collection/collection.descriptor.d.ts +47 -0
- package/dist/content/descriptors/components/collection/collection.descriptor.js +67 -0
- package/dist/content/descriptors/components/collection/index.d.ts +1 -0
- package/dist/content/descriptors/components/component-view.descriptor.d.ts +110 -0
- package/dist/content/descriptors/components/component-view.descriptor.js +103 -0
- package/dist/content/descriptors/components/component.descriptor.d.ts +31 -0
- package/dist/content/descriptors/components/component.descriptor.js +22 -0
- package/dist/content/descriptors/components/control.descriptor.d.ts +135 -0
- package/dist/content/descriptors/components/control.descriptor.js +33 -0
- package/dist/content/descriptors/components/date-input.descriptor.d.ts +319 -0
- package/dist/content/descriptors/components/date-input.descriptor.js +171 -0
- package/dist/content/descriptors/components/date-picker.descriptor.d.ts +445 -0
- package/dist/content/descriptors/components/date-picker.descriptor.js +255 -0
- package/dist/content/descriptors/components/dialog.descriptor.d.ts +256 -0
- package/dist/content/descriptors/components/dialog.descriptor.js +94 -0
- package/dist/content/descriptors/components/drag-and-drop.descriptor.d.ts +49 -0
- package/dist/content/descriptors/components/drag-and-drop.descriptor.js +32 -0
- package/dist/content/descriptors/components/drawer.descriptor.d.ts +244 -0
- package/dist/content/descriptors/components/drawer.descriptor.js +83 -0
- package/dist/content/descriptors/components/entity.descriptor.d.ts +39 -0
- package/dist/content/descriptors/components/entity.descriptor.js +37 -0
- package/dist/content/descriptors/components/field.descriptor.d.ts +192 -0
- package/dist/content/descriptors/components/field.descriptor.js +109 -0
- package/dist/content/descriptors/components/frame.descriptor.d.ts +191 -0
- package/dist/content/descriptors/components/frame.descriptor.js +66 -0
- package/dist/content/descriptors/components/icon.descriptor.d.ts +129 -0
- package/dist/content/descriptors/components/icon.descriptor.js +41 -0
- package/dist/content/descriptors/components/index.d.ts +50 -0
- package/dist/content/descriptors/components/input-control.descriptor.d.ts +176 -0
- package/dist/content/descriptors/components/input-control.descriptor.js +32 -0
- package/dist/content/descriptors/components/input.descriptor.d.ts +241 -0
- package/dist/content/descriptors/components/input.descriptor.js +62 -0
- package/dist/content/descriptors/components/interactive.descriptor.d.ts +100 -0
- package/dist/content/descriptors/components/interactive.descriptor.js +30 -0
- package/dist/content/descriptors/components/item-group.descriptor.d.ts +113 -0
- package/dist/content/descriptors/components/item-group.descriptor.js +44 -0
- package/dist/content/descriptors/components/item-row.descriptor.d.ts +199 -0
- package/dist/content/descriptors/components/item-row.descriptor.js +25 -0
- package/dist/content/descriptors/components/label.descriptor.d.ts +130 -0
- package/dist/content/descriptors/components/label.descriptor.js +41 -0
- package/dist/content/descriptors/components/layer.descriptor.d.ts +99 -0
- package/dist/content/descriptors/components/layer.descriptor.js +27 -0
- package/dist/content/descriptors/components/list-box/collection.descriptor.d.ts +113 -0
- package/dist/content/descriptors/components/list-box/collection.descriptor.js +96 -0
- package/dist/content/descriptors/components/list-box/group.descriptor.d.ts +115 -0
- package/dist/content/descriptors/components/list-box/group.descriptor.js +21 -0
- package/dist/content/descriptors/components/list-box/index.d.ts +4 -0
- package/dist/content/descriptors/components/list-box/item.descriptor.d.ts +219 -0
- package/dist/content/descriptors/components/list-box/item.descriptor.js +66 -0
- package/dist/content/descriptors/components/list-box/list-box.descriptor.d.ts +253 -0
- package/dist/content/descriptors/components/list-box/list-box.descriptor.js +106 -0
- package/dist/content/descriptors/components/list.d.ts +40 -0
- package/dist/content/descriptors/components/list.js +38 -0
- package/dist/content/descriptors/components/menu/checkbox-item.descriptor.d.ts +226 -0
- package/dist/content/descriptors/components/menu/checkbox-item.descriptor.js +43 -0
- package/dist/content/descriptors/components/menu/collection.descriptor.d.ts +201 -0
- package/dist/content/descriptors/components/menu/collection.descriptor.js +101 -0
- package/dist/content/descriptors/components/menu/group.descriptor.d.ts +112 -0
- package/dist/content/descriptors/components/menu/group.descriptor.js +18 -0
- package/dist/content/descriptors/components/menu/index.d.ts +10 -0
- package/dist/content/descriptors/components/menu/item.descriptor.d.ts +195 -0
- package/dist/content/descriptors/components/menu/item.descriptor.js +45 -0
- package/dist/content/descriptors/components/menu/menu.descriptor.d.ts +262 -0
- package/dist/content/descriptors/components/menu/menu.descriptor.js +177 -0
- package/dist/content/descriptors/components/menu/popover-item.descriptor.d.ts +278 -0
- package/dist/content/descriptors/components/menu/popover-item.descriptor.js +87 -0
- package/dist/content/descriptors/components/menu/radio-group.descriptor.d.ts +134 -0
- package/dist/content/descriptors/components/menu/radio-group.descriptor.js +30 -0
- package/dist/content/descriptors/components/menu/radio-item.descriptor.d.ts +236 -0
- package/dist/content/descriptors/components/menu/radio-item.descriptor.js +51 -0
- package/dist/content/descriptors/components/menu/separator.descriptor.d.ts +87 -0
- package/dist/content/descriptors/components/menu/separator.descriptor.js +17 -0
- package/dist/content/descriptors/components/menu/submenu.descriptor.d.ts +336 -0
- package/dist/content/descriptors/components/menu/submenu.descriptor.js +144 -0
- package/dist/content/descriptors/components/modal-layer.descriptor.d.ts +197 -0
- package/dist/content/descriptors/components/modal-layer.descriptor.js +101 -0
- package/dist/content/descriptors/components/number-input.descriptor.d.ts +353 -0
- package/dist/content/descriptors/components/number-input.descriptor.js +209 -0
- package/dist/content/descriptors/components/pagination/collection.descriptor.d.ts +54 -0
- package/dist/content/descriptors/components/pagination/collection.descriptor.js +55 -0
- package/dist/content/descriptors/components/pagination/index.d.ts +3 -0
- package/dist/content/descriptors/components/pagination/item.descriptor.d.ts +156 -0
- package/dist/content/descriptors/components/pagination/item.descriptor.js +68 -0
- package/dist/content/descriptors/components/pagination/pagination.descriptor.d.ts +265 -0
- package/dist/content/descriptors/components/pagination/pagination.descriptor.js +152 -0
- package/dist/content/descriptors/components/popover.descriptor.d.ts +231 -0
- package/dist/content/descriptors/components/popover.descriptor.js +156 -0
- package/dist/content/descriptors/components/progress-linear.descriptor.d.ts +165 -0
- package/dist/content/descriptors/components/progress-linear.descriptor.js +43 -0
- package/dist/content/descriptors/components/progress-spinner.descriptor.d.ts +161 -0
- package/dist/content/descriptors/components/progress-spinner.descriptor.js +36 -0
- package/dist/content/descriptors/components/progress.descriptor.d.ts +149 -0
- package/dist/content/descriptors/components/progress.descriptor.js +53 -0
- package/dist/content/descriptors/components/radio-group/collection.descriptor.d.ts +70 -0
- package/dist/content/descriptors/components/radio-group/collection.descriptor.js +56 -0
- package/dist/content/descriptors/components/radio-group/index.d.ts +3 -0
- package/dist/content/descriptors/components/radio-group/item.descriptor.d.ts +193 -0
- package/dist/content/descriptors/components/radio-group/item.descriptor.js +47 -0
- package/dist/content/descriptors/components/radio-group/radio-group.descriptor.d.ts +197 -0
- package/dist/content/descriptors/components/radio-group/radio-group.descriptor.js +66 -0
- package/dist/content/descriptors/components/rating.descriptor.d.ts +233 -0
- package/dist/content/descriptors/components/rating.descriptor.js +89 -0
- package/dist/content/descriptors/components/scroller.descriptor.d.ts +208 -0
- package/dist/content/descriptors/components/scroller.descriptor.js +91 -0
- package/dist/content/descriptors/components/select/collection.descriptor.d.ts +135 -0
- package/dist/content/descriptors/components/select/collection.descriptor.js +119 -0
- package/dist/content/descriptors/components/select/group.descriptor.d.ts +115 -0
- package/dist/content/descriptors/components/select/group.descriptor.js +21 -0
- package/dist/content/descriptors/components/select/index.d.ts +4 -0
- package/dist/content/descriptors/components/select/item.descriptor.d.ts +210 -0
- package/dist/content/descriptors/components/select/item.descriptor.js +56 -0
- package/dist/content/descriptors/components/select/select.descriptor.d.ts +454 -0
- package/dist/content/descriptors/components/select/select.descriptor.js +267 -0
- package/dist/content/descriptors/components/skeleton.descriptor.d.ts +127 -0
- package/dist/content/descriptors/components/skeleton.descriptor.js +53 -0
- package/dist/content/descriptors/components/slider.descriptor.d.ts +298 -0
- package/dist/content/descriptors/components/slider.descriptor.js +205 -0
- package/dist/content/descriptors/components/stylable.descriptor.d.ts +126 -0
- package/dist/content/descriptors/components/stylable.descriptor.js +52 -0
- package/dist/content/descriptors/components/switch.descriptor.d.ts +217 -0
- package/dist/content/descriptors/components/switch.descriptor.js +53 -0
- package/dist/content/descriptors/components/table/collection.descriptor.d.ts +183 -0
- package/dist/content/descriptors/components/table/collection.descriptor.js +178 -0
- package/dist/content/descriptors/components/table/column.descriptor.d.ts +237 -0
- package/dist/content/descriptors/components/table/column.descriptor.js +173 -0
- package/dist/content/descriptors/components/table/index.d.ts +4 -0
- package/dist/content/descriptors/components/table/row.descriptor.d.ts +166 -0
- package/dist/content/descriptors/components/table/row.descriptor.js +75 -0
- package/dist/content/descriptors/components/table/table.descriptor.d.ts +271 -0
- package/dist/content/descriptors/components/table/table.descriptor.js +164 -0
- package/dist/content/descriptors/components/tabs/collection.descriptor.d.ts +72 -0
- package/dist/content/descriptors/components/tabs/collection.descriptor.js +59 -0
- package/dist/content/descriptors/components/tabs/content.descriptor.d.ts +136 -0
- package/dist/content/descriptors/components/tabs/content.descriptor.js +52 -0
- package/dist/content/descriptors/components/tabs/index.d.ts +4 -0
- package/dist/content/descriptors/components/tabs/item.descriptor.d.ts +213 -0
- package/dist/content/descriptors/components/tabs/item.descriptor.js +67 -0
- package/dist/content/descriptors/components/tabs/tabs.descriptor.d.ts +220 -0
- package/dist/content/descriptors/components/tabs/tabs.descriptor.js +105 -0
- package/dist/content/descriptors/components/tags/collection.descriptor.d.ts +79 -0
- package/dist/content/descriptors/components/tags/collection.descriptor.js +63 -0
- package/dist/content/descriptors/components/tags/index.d.ts +3 -0
- package/dist/content/descriptors/components/tags/item.descriptor.d.ts +216 -0
- package/dist/content/descriptors/components/tags/item.descriptor.js +73 -0
- package/dist/content/descriptors/components/tags/tags.descriptor.d.ts +240 -0
- package/dist/content/descriptors/components/tags/tags.descriptor.js +109 -0
- package/dist/content/descriptors/components/textable.descriptor.d.ts +147 -0
- package/dist/content/descriptors/components/textable.descriptor.js +24 -0
- package/dist/content/descriptors/components/textarea.descriptor.d.ts +249 -0
- package/dist/content/descriptors/components/textarea.descriptor.js +95 -0
- package/dist/content/descriptors/components/toasts/collection.descriptor.d.ts +59 -0
- package/dist/content/descriptors/components/toasts/collection.descriptor.js +39 -0
- package/dist/content/descriptors/components/toasts/index.d.ts +3 -0
- package/dist/content/descriptors/components/toasts/item.descriptor.d.ts +173 -0
- package/dist/content/descriptors/components/toasts/item.descriptor.js +106 -0
- package/dist/content/descriptors/components/toasts/toasts.descriptor.d.ts +167 -0
- package/dist/content/descriptors/components/toasts/toasts.descriptor.js +94 -0
- package/dist/content/descriptors/components/tooltip.descriptor.d.ts +156 -0
- package/dist/content/descriptors/components/tooltip.descriptor.js +83 -0
- package/dist/content/descriptors/components/value-control.descriptor.d.ts +151 -0
- package/dist/content/descriptors/components/value-control.descriptor.js +36 -0
- package/dist/content/descriptors/components/virtual.descriptor.d.ts +55 -0
- package/dist/content/descriptors/components/virtual.descriptor.js +37 -0
- package/dist/content/descriptors/index.d.ts +2 -0
- package/dist/content/descriptors/plugins/accordion-item-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/accordion-item-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/action.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/action.plugin.js +27 -0
- package/dist/content/descriptors/plugins/anchor.plugin.d.ts +47 -0
- package/dist/content/descriptors/plugins/anchor.plugin.js +73 -0
- package/dist/content/descriptors/plugins/aria.plugin.d.ts +34 -0
- package/dist/content/descriptors/plugins/aria.plugin.js +55 -0
- package/dist/content/descriptors/plugins/calendar-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/calendar-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/calendar-keyboard.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/calendar-keyboard.plugin.js +18 -0
- package/dist/content/descriptors/plugins/calendar-names.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/calendar-names.plugin.js +17 -0
- package/dist/content/descriptors/plugins/calendar-pointer.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/calendar-pointer.plugin.js +18 -0
- package/dist/content/descriptors/plugins/clearable-names.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/clearable-names.plugin.js +17 -0
- package/dist/content/descriptors/plugins/collection-bundles.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/collection-bundles.plugin.js +14 -0
- package/dist/content/descriptors/plugins/collection-elements.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/collection-elements.plugin.js +14 -0
- package/dist/content/descriptors/plugins/date-input-clipboard.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/date-input-clipboard.plugin.js +16 -0
- package/dist/content/descriptors/plugins/date-input-ids.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/date-input-ids.plugin.js +15 -0
- package/dist/content/descriptors/plugins/date-input-keyboard.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/date-input-keyboard.plugin.js +18 -0
- package/dist/content/descriptors/plugins/date-input-pointer.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/date-input-pointer.plugin.js +17 -0
- package/dist/content/descriptors/plugins/date-input-touch.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/date-input-touch.plugin.js +19 -0
- package/dist/content/descriptors/plugins/date-picker-focus.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/date-picker-focus.plugin.js +25 -0
- package/dist/content/descriptors/plugins/date-picker-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/date-picker-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/date-picker-names.plugin.d.ts +32 -0
- package/dist/content/descriptors/plugins/date-picker-names.plugin.js +38 -0
- package/dist/content/descriptors/plugins/date-picker-trigger.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/date-picker-trigger.plugin.js +20 -0
- package/dist/content/descriptors/plugins/dialog-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/dialog-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/dialog-layout.plugin.d.ts +26 -0
- package/dist/content/descriptors/plugins/dialog-layout.plugin.js +34 -0
- package/dist/content/descriptors/plugins/dialog-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/dialog-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/dismiss.plugin.d.ts +34 -0
- package/dist/content/descriptors/plugins/dismiss.plugin.js +51 -0
- package/dist/content/descriptors/plugins/drag.plugin.d.ts +5 -0
- package/dist/content/descriptors/plugins/drag.plugin.js +12 -0
- package/dist/content/descriptors/plugins/drawer-layout.plugin.d.ts +22 -0
- package/dist/content/descriptors/plugins/drawer-layout.plugin.js +28 -0
- package/dist/content/descriptors/plugins/element.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/element.plugin.js +15 -0
- package/dist/content/descriptors/plugins/field-ids.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/field-ids.plugin.js +19 -0
- package/dist/content/descriptors/plugins/frame-layout.plugin.d.ts +14 -0
- package/dist/content/descriptors/plugins/frame-layout.plugin.js +18 -0
- package/dist/content/descriptors/plugins/hide-outside.plugin.d.ts +19 -0
- package/dist/content/descriptors/plugins/hide-outside.plugin.js +29 -0
- package/dist/content/descriptors/plugins/icon-layout.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/icon-layout.plugin.js +19 -0
- package/dist/content/descriptors/plugins/id.plugin.d.ts +26 -0
- package/dist/content/descriptors/plugins/id.plugin.js +31 -0
- package/dist/content/descriptors/plugins/index.d.ts +114 -0
- package/dist/content/descriptors/plugins/input-bool.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/input-bool.plugin.js +14 -0
- package/dist/content/descriptors/plugins/input-control.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/input-control.plugin.js +14 -0
- package/dist/content/descriptors/plugins/input.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/input.plugin.js +16 -0
- package/dist/content/descriptors/plugins/item-group-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/item-group-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/label-nested-warn.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/label-nested-warn.plugin.js +15 -0
- package/dist/content/descriptors/plugins/list-height.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/list-height.plugin.js +15 -0
- package/dist/content/descriptors/plugins/list-item.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/list-item.plugin.js +19 -0
- package/dist/content/descriptors/plugins/list-keyboard.plugin.d.ts +5 -0
- package/dist/content/descriptors/plugins/list-keyboard.plugin.js +12 -0
- package/dist/content/descriptors/plugins/list-scroll.plugin.d.ts +16 -0
- package/dist/content/descriptors/plugins/list-scroll.plugin.js +23 -0
- package/dist/content/descriptors/plugins/locale.plugin.d.ts +13 -0
- package/dist/content/descriptors/plugins/locale.plugin.js +20 -0
- package/dist/content/descriptors/plugins/menu-focus.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/menu-focus.plugin.js +18 -0
- package/dist/content/descriptors/plugins/menu-hover.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/menu-hover.plugin.js +19 -0
- package/dist/content/descriptors/plugins/menu-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/menu-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/menu-keyboard.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/menu-keyboard.plugin.js +22 -0
- package/dist/content/descriptors/plugins/menu-pointer.plugin.d.ts +13 -0
- package/dist/content/descriptors/plugins/menu-pointer.plugin.js +20 -0
- package/dist/content/descriptors/plugins/menu-popover-item-focus.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/menu-popover-item-focus.plugin.js +22 -0
- package/dist/content/descriptors/plugins/menu-popover-item-keyboard.plugin.d.ts +13 -0
- package/dist/content/descriptors/plugins/menu-popover-item-keyboard.plugin.js +20 -0
- package/dist/content/descriptors/plugins/menu-popup-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/menu-popup-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/menu-submenu-focus.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/menu-submenu-focus.plugin.js +19 -0
- package/dist/content/descriptors/plugins/menu-submenu-keyboard.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/menu-submenu-keyboard.plugin.js +22 -0
- package/dist/content/descriptors/plugins/modal-focus.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/modal-focus.plugin.js +24 -0
- package/dist/content/descriptors/plugins/modal-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/modal-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/modal-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/modal-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/number-input-keyboard.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/number-input-keyboard.plugin.js +17 -0
- package/dist/content/descriptors/plugins/number-input-names.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/number-input-names.plugin.js +17 -0
- package/dist/content/descriptors/plugins/number-input-stepper.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/number-input-stepper.plugin.js +19 -0
- package/dist/content/descriptors/plugins/number-input-touch.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/number-input-touch.plugin.js +17 -0
- package/dist/content/descriptors/plugins/number-input-typing.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/number-input-typing.plugin.js +18 -0
- package/dist/content/descriptors/plugins/option-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/option-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/pagination-focus.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/pagination-focus.plugin.js +17 -0
- package/dist/content/descriptors/plugins/pagination-names.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/pagination-names.plugin.js +17 -0
- package/dist/content/descriptors/plugins/popover-focus.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/popover-focus.plugin.js +23 -0
- package/dist/content/descriptors/plugins/popover-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/popover-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/popover-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/popover-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/popover-pointer.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/popover-pointer.plugin.js +21 -0
- package/dist/content/descriptors/plugins/radio-group-checked.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/radio-group-checked.plugin.js +16 -0
- package/dist/content/descriptors/plugins/radio-group-name.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/radio-group-name.plugin.js +16 -0
- package/dist/content/descriptors/plugins/rating-hover.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/rating-hover.plugin.js +17 -0
- package/dist/content/descriptors/plugins/rating-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/rating-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/rating-validity.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/rating-validity.plugin.js +17 -0
- package/dist/content/descriptors/plugins/ready.plugin.d.ts +7 -0
- package/dist/content/descriptors/plugins/ready.plugin.js +14 -0
- package/dist/content/descriptors/plugins/scroll-lock.plugin.d.ts +18 -0
- package/dist/content/descriptors/plugins/scroll-lock.plugin.js +29 -0
- package/dist/content/descriptors/plugins/scroller-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/scroller-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/scroller-viewport.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/scroller-viewport.plugin.js +16 -0
- package/dist/content/descriptors/plugins/select-backspace.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/select-backspace.plugin.js +25 -0
- package/dist/content/descriptors/plugins/select-editable.plugin.d.ts +18 -0
- package/dist/content/descriptors/plugins/select-editable.plugin.js +31 -0
- package/dist/content/descriptors/plugins/select-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/select-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/select-keyboard.plugin.d.ts +21 -0
- package/dist/content/descriptors/plugins/select-keyboard.plugin.js +33 -0
- package/dist/content/descriptors/plugins/select-pointer.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/select-pointer.plugin.js +24 -0
- package/dist/content/descriptors/plugins/skeleton-layout.plugin.d.ts +14 -0
- package/dist/content/descriptors/plugins/skeleton-layout.plugin.js +18 -0
- package/dist/content/descriptors/plugins/slide-keyboard.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/slide-keyboard.plugin.js +16 -0
- package/dist/content/descriptors/plugins/slide-pointer.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/slide-pointer.plugin.js +19 -0
- package/dist/content/descriptors/plugins/swipe.plugin.d.ts +13 -0
- package/dist/content/descriptors/plugins/swipe.plugin.js +20 -0
- package/dist/content/descriptors/plugins/table-column-ids.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/table-column-ids.plugin.js +17 -0
- package/dist/content/descriptors/plugins/table-column-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/table-column-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/table-column-reorder.plugin.d.ts +13 -0
- package/dist/content/descriptors/plugins/table-column-reorder.plugin.js +20 -0
- package/dist/content/descriptors/plugins/table-column-resize.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/table-column-resize.plugin.js +19 -0
- package/dist/content/descriptors/plugins/table-grid.plugin.d.ts +15 -0
- package/dist/content/descriptors/plugins/table-grid.plugin.js +22 -0
- package/dist/content/descriptors/plugins/table-layout.plugin.d.ts +12 -0
- package/dist/content/descriptors/plugins/table-layout.plugin.js +19 -0
- package/dist/content/descriptors/plugins/table-names.plugin.d.ts +16 -0
- package/dist/content/descriptors/plugins/table-names.plugin.js +20 -0
- package/dist/content/descriptors/plugins/table-row-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/table-row-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tabs-active-tab.plugin.d.ts +5 -0
- package/dist/content/descriptors/plugins/tabs-active-tab.plugin.js +12 -0
- package/dist/content/descriptors/plugins/tabs-content-warn.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/tabs-content-warn.plugin.js +15 -0
- package/dist/content/descriptors/plugins/tabs-item-ids.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/tabs-item-ids.plugin.js +15 -0
- package/dist/content/descriptors/plugins/tabs-item-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/tabs-item-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tabs-keyboard.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/tabs-keyboard.plugin.js +15 -0
- package/dist/content/descriptors/plugins/tabs-layout.plugin.d.ts +5 -0
- package/dist/content/descriptors/plugins/tabs-layout.plugin.js +12 -0
- package/dist/content/descriptors/plugins/tags-item-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/tags-item-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tags-keyboard.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/tags-keyboard.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tags-scroll.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/tags-scroll.plugin.js +17 -0
- package/dist/content/descriptors/plugins/textarea-autoresize.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/textarea-autoresize.plugin.js +17 -0
- package/dist/content/descriptors/plugins/textarea-ids.plugin.d.ts +11 -0
- package/dist/content/descriptors/plugins/textarea-ids.plugin.js +18 -0
- package/dist/content/descriptors/plugins/textarea-names.plugin.d.ts +17 -0
- package/dist/content/descriptors/plugins/textarea-names.plugin.js +21 -0
- package/dist/content/descriptors/plugins/toasts-cascade.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/toasts-cascade.plugin.js +17 -0
- package/dist/content/descriptors/plugins/toasts-item-names.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/toasts-item-names.plugin.js +16 -0
- package/dist/content/descriptors/plugins/toasts-keyboard.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/toasts-keyboard.plugin.js +16 -0
- package/dist/content/descriptors/plugins/toasts-layout.plugin.d.ts +16 -0
- package/dist/content/descriptors/plugins/toasts-layout.plugin.js +20 -0
- package/dist/content/descriptors/plugins/toasts-names.plugin.d.ts +8 -0
- package/dist/content/descriptors/plugins/toasts-names.plugin.js +15 -0
- package/dist/content/descriptors/plugins/toasts-removal.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/toasts-removal.plugin.js +16 -0
- package/dist/content/descriptors/plugins/toasts-timer.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/toasts-timer.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tooltip-ids.plugin.d.ts +9 -0
- package/dist/content/descriptors/plugins/tooltip-ids.plugin.js +16 -0
- package/dist/content/descriptors/plugins/tooltip-trigger.plugin.d.ts +10 -0
- package/dist/content/descriptors/plugins/tooltip-trigger.plugin.js +23 -0
- package/dist/content/extensions/collection/collection-item.extension.class.d.ts +64 -0
- package/dist/content/extensions/collection/collection-item.extension.class.js +111 -0
- package/dist/content/extensions/collection/collection.extension.class.d.ts +21 -0
- package/dist/content/extensions/collection/collection.extension.class.js +57 -0
- package/dist/content/extensions/collection/index.d.ts +3 -0
- package/dist/content/extensions/collection/item-props.d.ts +13 -0
- package/dist/content/extensions/collection/item-props.js +20 -0
- package/dist/content/extensions/collection/keys.d.ts +23 -0
- package/dist/content/extensions/collection/keys.js +17 -0
- package/dist/content/extensions/collection/members.class.d.ts +24 -0
- package/dist/content/extensions/collection/members.class.js +18 -0
- package/dist/content/extensions/collection/types.d.ts +41 -0
- package/dist/content/extensions/drag-and-drop/drag-and-drop-collection.extension.class.d.ts +26 -0
- package/dist/content/extensions/drag-and-drop/drag-and-drop-collection.extension.class.js +34 -0
- package/dist/content/extensions/drag-and-drop/drag-and-drop.extension.class.d.ts +21 -0
- package/dist/content/extensions/drag-and-drop/drag-and-drop.extension.class.js +9 -0
- package/dist/content/extensions/drag-and-drop/index.d.ts +3 -0
- package/dist/content/extensions/drag-and-drop/keys.d.ts +15 -0
- package/dist/content/extensions/drag-and-drop/keys.js +9 -0
- package/dist/content/extensions/drag-and-drop/types.d.ts +10 -0
- package/dist/content/extensions/field/field-control.extension.class.d.ts +63 -0
- package/dist/content/extensions/field/field-control.extension.class.js +172 -0
- package/dist/content/extensions/field/field.extension.class.d.ts +21 -0
- package/dist/content/extensions/field/field.extension.class.js +14 -0
- package/dist/content/extensions/field/index.d.ts +3 -0
- package/dist/content/extensions/field/keys.d.ts +14 -0
- package/dist/content/extensions/field/keys.js +8 -0
- package/dist/content/extensions/field/types.d.ts +36 -0
- package/dist/content/extensions/index.d.ts +8 -0
- package/dist/content/extensions/item-group/index.d.ts +2 -0
- package/dist/content/extensions/item-group/item-group.extension.class.d.ts +49 -0
- package/dist/content/extensions/item-group/item-group.extension.class.js +91 -0
- package/dist/content/extensions/item-group/keys.d.ts +15 -0
- package/dist/content/extensions/item-group/keys.js +9 -0
- package/dist/content/extensions/item-group/types.d.ts +34 -0
- package/dist/content/extensions/menu/index.d.ts +3 -0
- package/dist/content/extensions/menu/keys.d.ts +10 -0
- package/dist/content/extensions/menu/keys.js +5 -0
- package/dist/content/extensions/menu/radio-group.extension.class.d.ts +22 -0
- package/dist/content/extensions/menu/radio-group.extension.class.js +9 -0
- package/dist/content/extensions/menu/radio-item.extension.class.d.ts +20 -0
- package/dist/content/extensions/menu/radio-item.extension.class.js +10 -0
- package/dist/content/extensions/menu/types.d.ts +10 -0
- package/dist/content/extensions/tabs/index.d.ts +2 -0
- package/dist/content/extensions/tabs/tabs-content-binding.extension.class.d.ts +69 -0
- package/dist/content/extensions/tabs/tabs-content-binding.extension.class.js +184 -0
- package/dist/content/extensions/tabs/types.d.ts +11 -0
- package/dist/content/extensions/toasts/index.d.ts +3 -0
- package/dist/content/extensions/toasts/keys.d.ts +11 -0
- package/dist/content/extensions/toasts/keys.js +5 -0
- package/dist/content/extensions/toasts/toasts-api.extension.class.d.ts +23 -0
- package/dist/content/extensions/toasts/toasts-api.extension.class.js +9 -0
- package/dist/content/extensions/toasts/types.d.ts +19 -0
- package/dist/content/extensions/virtual/index.d.ts +3 -0
- package/dist/content/extensions/virtual/keys.d.ts +15 -0
- package/dist/content/extensions/virtual/keys.js +8 -0
- package/dist/content/extensions/virtual/types.d.ts +40 -0
- package/dist/content/extensions/virtual/virtual-collection.extension.class.d.ts +33 -0
- package/dist/content/extensions/virtual/virtual-collection.extension.class.js +15 -0
- package/dist/content/extensions/virtual/virtual.extension.class.d.ts +36 -0
- package/dist/content/extensions/virtual/virtual.extension.class.js +74 -0
- package/dist/content/icons/index.d.ts +2 -0
- package/dist/content/icons/roles.d.ts +29 -0
- package/dist/content/icons/roles.js +36 -0
- package/dist/content/index.d.ts +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +236 -0
- package/dist/protected/adapter/common/index.d.ts +6 -0
- package/dist/protected/adapter/common/parts.d.ts +30 -0
- package/dist/protected/adapter/common/parts.js +35 -0
- package/dist/protected/adapter/common/props.types.d.ts +48 -0
- package/dist/protected/adapter/common/slots.d.ts +25 -0
- package/dist/protected/adapter/common/slots.js +25 -0
- package/dist/protected/adapter/common/slots.types.d.ts +37 -0
- package/dist/protected/adapter/common/state.d.ts +14 -0
- package/dist/protected/adapter/common/state.js +14 -0
- package/dist/protected/adapter/common/state.types.d.ts +39 -0
- package/dist/protected/adapter/context/adapter-context.class.d.ts +68 -0
- package/dist/protected/adapter/context/adapter-context.class.js +118 -0
- package/dist/protected/adapter/context/create-adapter-context.d.ts +34 -0
- package/dist/protected/adapter/context/create-adapter-context.js +91 -0
- package/dist/protected/adapter/context/external-plugins.class.d.ts +51 -0
- package/dist/protected/adapter/context/external-plugins.class.js +80 -0
- package/dist/protected/adapter/context/index.d.ts +2 -0
- package/dist/protected/adapter/context/own-bundle.class.d.ts +25 -0
- package/dist/protected/adapter/context/own-bundle.class.js +86 -0
- package/dist/protected/adapter/context/shared-bundle.class.d.ts +25 -0
- package/dist/protected/adapter/context/shared-bundle.class.js +24 -0
- package/dist/protected/adapter/context/types.d.ts +184 -0
- package/dist/protected/adapter/elevator/elevator.class.d.ts +21 -0
- package/dist/protected/adapter/elevator/elevator.class.js +19 -0
- package/dist/protected/adapter/elevator/index.d.ts +3 -0
- package/dist/protected/adapter/elevator/keys.d.ts +12 -0
- package/dist/protected/adapter/elevator/keys.js +7 -0
- package/dist/protected/adapter/elevator/types.d.ts +31 -0
- package/dist/protected/adapter/exchange/assembling.class.d.ts +39 -0
- package/dist/protected/adapter/exchange/assembling.class.js +55 -0
- package/dist/protected/adapter/exchange/cell.class.d.ts +31 -0
- package/dist/protected/adapter/exchange/cell.class.js +37 -0
- package/dist/protected/adapter/exchange/event-relay.class.d.ts +29 -0
- package/dist/protected/adapter/exchange/event-relay.class.js +53 -0
- package/dist/protected/adapter/exchange/exchange.class.d.ts +78 -0
- package/dist/protected/adapter/exchange/exchange.class.js +129 -0
- package/dist/protected/adapter/exchange/index.d.ts +8 -0
- package/dist/protected/adapter/exchange/input-port.class.d.ts +64 -0
- package/dist/protected/adapter/exchange/input-port.class.js +68 -0
- package/dist/protected/adapter/exchange/line.class.d.ts +53 -0
- package/dist/protected/adapter/exchange/line.class.js +39 -0
- package/dist/protected/adapter/exchange/member.class.d.ts +20 -0
- package/dist/protected/adapter/exchange/member.class.js +11 -0
- package/dist/protected/adapter/exchange/routing.class.d.ts +25 -0
- package/dist/protected/adapter/exchange/routing.class.js +94 -0
- package/dist/protected/adapter/exchange/state-store.class.d.ts +57 -0
- package/dist/protected/adapter/exchange/state-store.class.js +76 -0
- package/dist/protected/adapter/exchange/tap.class.d.ts +54 -0
- package/dist/protected/adapter/exchange/tap.class.js +51 -0
- package/dist/protected/adapter/exchange/types.d.ts +55 -0
- package/dist/protected/adapter/exchange/update-port.class.d.ts +25 -0
- package/dist/protected/adapter/exchange/update-port.class.js +26 -0
- package/dist/protected/adapter/exchange/value.d.ts +17 -0
- package/dist/protected/adapter/exchange/value.js +31 -0
- package/dist/protected/adapter/index.d.ts +5 -0
- package/dist/protected/adapter/surface/index.d.ts +2 -0
- package/dist/protected/adapter/surface/surface.class.d.ts +34 -0
- package/dist/protected/adapter/surface/surface.class.js +87 -0
- package/dist/protected/adapter/surface/types.d.ts +29 -0
- package/dist/protected/define/component-descriptor.class.d.ts +55 -0
- package/dist/protected/define/component-descriptor.class.js +112 -0
- package/dist/protected/define/component.d.ts +14 -0
- package/dist/protected/define/component.js +12 -0
- package/dist/protected/define/contribution.d.ts +20 -0
- package/dist/protected/define/contribution.js +18 -0
- package/dist/protected/define/contribution.types.d.ts +66 -0
- package/dist/protected/define/descriptor.d.ts +21 -0
- package/dist/protected/define/descriptor.js +27 -0
- package/dist/protected/define/index.d.ts +11 -0
- package/dist/protected/define/inference.types.d.ts +247 -0
- package/dist/protected/define/inherit.d.ts +21 -0
- package/dist/protected/define/inherit.js +11 -0
- package/dist/protected/define/name.class.d.ts +21 -0
- package/dist/protected/define/name.class.js +31 -0
- package/dist/protected/define/plugin-definition.class.d.ts +45 -0
- package/dist/protected/define/plugin-definition.class.js +49 -0
- package/dist/protected/define/plugin.d.ts +18 -0
- package/dist/protected/define/plugin.js +20 -0
- package/dist/protected/define/prop-spec.class.d.ts +70 -0
- package/dist/protected/define/prop-spec.class.js +79 -0
- package/dist/protected/define/prop-type.d.ts +12 -0
- package/dist/protected/define/prop-type.js +6 -0
- package/dist/protected/define/slot-declaration.class.d.ts +20 -0
- package/dist/protected/define/slot-declaration.class.js +14 -0
- package/dist/protected/define/types.d.ts +235 -0
- package/dist/protected/index.d.ts +4 -0
- package/dist/protected/naming/common-profile.d.ts +10 -0
- package/dist/protected/naming/common-profile.js +16 -0
- package/dist/protected/naming/index.d.ts +4 -0
- package/dist/protected/naming/naming.d.ts +33 -0
- package/dist/protected/naming/naming.js +34 -0
- package/dist/protected/naming/naming.types.d.ts +49 -0
- package/dist/protected/naming/strategy.types.d.ts +27 -0
- package/dist/protected/registry/extensions.d.ts +29 -0
- package/dist/protected/registry/extensions.js +28 -0
- package/dist/protected/registry/icons.d.ts +44 -0
- package/dist/protected/registry/icons.js +59 -0
- package/dist/protected/registry/index.d.ts +5 -0
- package/dist/protected/registry/plugins.d.ts +40 -0
- package/dist/protected/registry/plugins.js +29 -0
- package/dist/protected/registry/registrations.d.ts +15 -0
- package/dist/protected/registry/registrations.js +30 -0
- package/dist/protected/registry/theme.d.ts +29 -0
- package/dist/protected/registry/theme.js +40 -0
- package/dist/protected/registry/types.d.ts +85 -0
- package/package.json +44 -4
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MENU_RADIO_GROUP_ELEVATOR } from "./keys.js";
|
|
2
|
+
//#region content/extensions/menu/radio-item.extension.class.ts
|
|
3
|
+
var TMenuRadioItemExtension = class {
|
|
4
|
+
constructor(context, options) {
|
|
5
|
+
const group = options.elevator(MENU_RADIO_GROUP_ELEVATOR).up();
|
|
6
|
+
if (group) context.instance.group = group;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { TMenuRadioItemExtension };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Опции проводки группы переключателей меню и её переключателей.
|
|
3
|
+
*/
|
|
4
|
+
import type { TElevatorFactory } from '../../../protected/adapter/elevator';
|
|
5
|
+
export interface IMenuRadioGroupExtensionOptions {
|
|
6
|
+
elevator: TElevatorFactory;
|
|
7
|
+
}
|
|
8
|
+
export interface IMenuRadioItemExtensionOptions {
|
|
9
|
+
elevator: TElevatorFactory;
|
|
10
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTabsContentBindingExtension — binds a panel to its tab.
|
|
3
|
+
*
|
|
4
|
+
* The panel does not register in the collection: it is not in `items`. It
|
|
5
|
+
* finds the existing tab with the same `value` and takes that tab's item
|
|
6
|
+
* context (`TItemContext`) of its own, for the mount: the same adapters as
|
|
7
|
+
* `TTabsItemCollectionFacade` has, but the panel releases them itself — on
|
|
8
|
+
* rebinding and on teardown. A context shared with the tab and released by
|
|
9
|
+
* one of them would break the other. A panel without a tab has no context at
|
|
10
|
+
* all, or its `active` would answer for the previous tab. The facade reports
|
|
11
|
+
* the change of activity that comes with the context; the binding only swaps
|
|
12
|
+
* it.
|
|
13
|
+
*
|
|
14
|
+
* The panel's side of the tab link — `id` and `aria-labelledby` — is written
|
|
15
|
+
* here into the panel's `aria`: this is the only place that knows the panel
|
|
16
|
+
* found its tab. The panel has no `id` formula of its own: the tab
|
|
17
|
+
* (`TTabsItemIdsPlugin`) wrote the panel's `id` into its `aria-controls`, and
|
|
18
|
+
* the panel takes exactly that, so the two halves cannot diverge. When the tab
|
|
19
|
+
* remounts or its `TIdPlugin` changes, its ids change (`change:aria`) and the
|
|
20
|
+
* panel follows.
|
|
21
|
+
*
|
|
22
|
+
* An `id` the application gave the panel (its `TIdPlugin`) wins over the
|
|
23
|
+
* formula: it goes on the panel from the first render, tab or no tab, and the
|
|
24
|
+
* tab's `aria-controls` points to it. Only the tab's plugin writes
|
|
25
|
+
* `aria-controls`, so an accepted panel hands it its `TIdPlugin`
|
|
26
|
+
* (`bindPanel`) and takes it back on unbinding and teardown (`unbindPanel`).
|
|
27
|
+
* The plugin of the tab's current mount is found in the collection's bundle
|
|
28
|
+
* registry (`COLLECTION_BUNDLES_ELEVATOR`). A tab's bundle enters the registry
|
|
29
|
+
* on the tab's entry — sometimes after the panel, and again on a remount — so
|
|
30
|
+
* the panel hands its `id` over on every registration (`bundle:registered`)
|
|
31
|
+
* too.
|
|
32
|
+
*
|
|
33
|
+
* The tab is looked up only in a Tabs engine (one with `TTabsExtension`). The
|
|
34
|
+
* lift gives the nearest collection's engine, and it may be foreign: a panel
|
|
35
|
+
* outside its tabs under an app-wide `<Toasts>`. A foreign collection is
|
|
36
|
+
* treated as absent, as for `TCollectionItemExtension`: otherwise the panel
|
|
37
|
+
* would bind to a foreign item with a matching `value` — silently under
|
|
38
|
+
* RadioGroup, with a failing assembly where there is no activation.
|
|
39
|
+
*
|
|
40
|
+
* The work follows the context's phases, as in `TCollectionItemExtension`:
|
|
41
|
+
*
|
|
42
|
+
* - **assembly** — the first binding, writing only the panel's own: its
|
|
43
|
+
* facade and its `aria`. A data tab is already in the collection and the tab
|
|
44
|
+
* list renders before the panels, so the panel is bound from the first
|
|
45
|
+
* render, the server's included;
|
|
46
|
+
* - **entry** (`attach`) — binding again, the tab's side, and the
|
|
47
|
+
* subscriptions: the engine's `item:added`, the registry's
|
|
48
|
+
* `bundle:registered`, the panel's `change:value`, its `TIdPlugin`'s
|
|
49
|
+
* `change:id` and the bound tab's `change:aria`. Markup tabs enter on their
|
|
50
|
+
* own `attach`, and a panel after them finds them on this second lookup.
|
|
51
|
+
* Subscriptions and the write to the tab wait for entry because those buses
|
|
52
|
+
* and the tab are not the panel's: React assembles on render, and a
|
|
53
|
+
* discarded render would leave an extra subscriber on them and the `id` of
|
|
54
|
+
* a panel that does not exist on the tab. A tab found on assembly is reread
|
|
55
|
+
* after subscribing, so what it wrote in between (React: the tab's `id` set
|
|
56
|
+
* by an effect) reaches the panel. From entry to teardown the panel is a
|
|
57
|
+
* member of the collection (`TCollectionMembers`), as an item is: the
|
|
58
|
+
* owner's `detach` detaches its own context and the facade's, and the panel
|
|
59
|
+
* does not hear the tabs go;
|
|
60
|
+
* - **teardown** (`destroy`) — unsubscribing, the panel's attributes, its `id`
|
|
61
|
+
* at the tab and the tab's context. A context assembled but never accepted
|
|
62
|
+
* is torn down too: it has no subscriptions, but what assembly took goes.
|
|
63
|
+
*/
|
|
64
|
+
import type { TInstanceContext } from '../../../protected/adapter/context';
|
|
65
|
+
import type { TCollectionItemFacade } from '../collection';
|
|
66
|
+
import type { ITabsContentBindingOptions } from './types';
|
|
67
|
+
export declare class TTabsContentBindingExtension {
|
|
68
|
+
constructor(context: TInstanceContext<TCollectionItemFacade>, options: ITabsContentBindingOptions);
|
|
69
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { ITEM_CONTEXT_ELEVATOR } from "../../../protected/adapter/elevator/keys.js";
|
|
2
|
+
import { COLLECTION_BUNDLES_ELEVATOR, COLLECTION_MEMBERS_ELEVATOR } from "../collection/keys.js";
|
|
3
|
+
import { TItemContext, TTabsExtension } from "@soxa-ui/core";
|
|
4
|
+
import { TIdPlugin, TTabsItemIdsPlugin } from "@soxa-ui/plugins";
|
|
5
|
+
//#region content/extensions/tabs/tabs-content-binding.extension.class.ts
|
|
6
|
+
/**
|
|
7
|
+
* TTabsContentBindingExtension — binds a panel to its tab.
|
|
8
|
+
*
|
|
9
|
+
* The panel does not register in the collection: it is not in `items`. It
|
|
10
|
+
* finds the existing tab with the same `value` and takes that tab's item
|
|
11
|
+
* context (`TItemContext`) of its own, for the mount: the same adapters as
|
|
12
|
+
* `TTabsItemCollectionFacade` has, but the panel releases them itself — on
|
|
13
|
+
* rebinding and on teardown. A context shared with the tab and released by
|
|
14
|
+
* one of them would break the other. A panel without a tab has no context at
|
|
15
|
+
* all, or its `active` would answer for the previous tab. The facade reports
|
|
16
|
+
* the change of activity that comes with the context; the binding only swaps
|
|
17
|
+
* it.
|
|
18
|
+
*
|
|
19
|
+
* The panel's side of the tab link — `id` and `aria-labelledby` — is written
|
|
20
|
+
* here into the panel's `aria`: this is the only place that knows the panel
|
|
21
|
+
* found its tab. The panel has no `id` formula of its own: the tab
|
|
22
|
+
* (`TTabsItemIdsPlugin`) wrote the panel's `id` into its `aria-controls`, and
|
|
23
|
+
* the panel takes exactly that, so the two halves cannot diverge. When the tab
|
|
24
|
+
* remounts or its `TIdPlugin` changes, its ids change (`change:aria`) and the
|
|
25
|
+
* panel follows.
|
|
26
|
+
*
|
|
27
|
+
* An `id` the application gave the panel (its `TIdPlugin`) wins over the
|
|
28
|
+
* formula: it goes on the panel from the first render, tab or no tab, and the
|
|
29
|
+
* tab's `aria-controls` points to it. Only the tab's plugin writes
|
|
30
|
+
* `aria-controls`, so an accepted panel hands it its `TIdPlugin`
|
|
31
|
+
* (`bindPanel`) and takes it back on unbinding and teardown (`unbindPanel`).
|
|
32
|
+
* The plugin of the tab's current mount is found in the collection's bundle
|
|
33
|
+
* registry (`COLLECTION_BUNDLES_ELEVATOR`). A tab's bundle enters the registry
|
|
34
|
+
* on the tab's entry — sometimes after the panel, and again on a remount — so
|
|
35
|
+
* the panel hands its `id` over on every registration (`bundle:registered`)
|
|
36
|
+
* too.
|
|
37
|
+
*
|
|
38
|
+
* The tab is looked up only in a Tabs engine (one with `TTabsExtension`). The
|
|
39
|
+
* lift gives the nearest collection's engine, and it may be foreign: a panel
|
|
40
|
+
* outside its tabs under an app-wide `<Toasts>`. A foreign collection is
|
|
41
|
+
* treated as absent, as for `TCollectionItemExtension`: otherwise the panel
|
|
42
|
+
* would bind to a foreign item with a matching `value` — silently under
|
|
43
|
+
* RadioGroup, with a failing assembly where there is no activation.
|
|
44
|
+
*
|
|
45
|
+
* The work follows the context's phases, as in `TCollectionItemExtension`:
|
|
46
|
+
*
|
|
47
|
+
* - **assembly** — the first binding, writing only the panel's own: its
|
|
48
|
+
* facade and its `aria`. A data tab is already in the collection and the tab
|
|
49
|
+
* list renders before the panels, so the panel is bound from the first
|
|
50
|
+
* render, the server's included;
|
|
51
|
+
* - **entry** (`attach`) — binding again, the tab's side, and the
|
|
52
|
+
* subscriptions: the engine's `item:added`, the registry's
|
|
53
|
+
* `bundle:registered`, the panel's `change:value`, its `TIdPlugin`'s
|
|
54
|
+
* `change:id` and the bound tab's `change:aria`. Markup tabs enter on their
|
|
55
|
+
* own `attach`, and a panel after them finds them on this second lookup.
|
|
56
|
+
* Subscriptions and the write to the tab wait for entry because those buses
|
|
57
|
+
* and the tab are not the panel's: React assembles on render, and a
|
|
58
|
+
* discarded render would leave an extra subscriber on them and the `id` of
|
|
59
|
+
* a panel that does not exist on the tab. A tab found on assembly is reread
|
|
60
|
+
* after subscribing, so what it wrote in between (React: the tab's `id` set
|
|
61
|
+
* by an effect) reaches the panel. From entry to teardown the panel is a
|
|
62
|
+
* member of the collection (`TCollectionMembers`), as an item is: the
|
|
63
|
+
* owner's `detach` detaches its own context and the facade's, and the panel
|
|
64
|
+
* does not hear the tabs go;
|
|
65
|
+
* - **teardown** (`destroy`) — unsubscribing, the panel's attributes, its `id`
|
|
66
|
+
* at the tab and the tab's context. A context assembled but never accepted
|
|
67
|
+
* is torn down too: it has no subscriptions, but what assembly took goes.
|
|
68
|
+
*/
|
|
69
|
+
/** A Tabs engine: the tabs extension is in it. Any other collection's engine is foreign to a panel. */
|
|
70
|
+
function isTabsEngine(engine) {
|
|
71
|
+
return engine?.extensions.tabs instanceof TTabsExtension;
|
|
72
|
+
}
|
|
73
|
+
/** The bundle registry of the panel's collection: another's is foreign. */
|
|
74
|
+
function registryOf(bundles, engine) {
|
|
75
|
+
return bundles?.engine === engine ? bundles : void 0;
|
|
76
|
+
}
|
|
77
|
+
/** The tab whose value matches the panel's. */
|
|
78
|
+
function findByValue(engine, value) {
|
|
79
|
+
for (const item of engine.extensions.batch.items) if (item.value === value) return item;
|
|
80
|
+
}
|
|
81
|
+
var TTabsContentBindingExtension = class {
|
|
82
|
+
constructor(context, options) {
|
|
83
|
+
const { adapter, elevator } = options;
|
|
84
|
+
const content = adapter.instance;
|
|
85
|
+
const engine = elevator(ITEM_CONTEXT_ELEVATOR).up();
|
|
86
|
+
if (!isTabsEngine(engine)) return;
|
|
87
|
+
const extensions = engine.extensions;
|
|
88
|
+
/** The tabs' bundles: there the panel finds its tab's link plugin. */
|
|
89
|
+
const bundles = registryOf(elevator(COLLECTION_BUNDLES_ELEVATOR).up(), engine);
|
|
90
|
+
/** The collection's members, lowered beside the engine as the registry is. */
|
|
91
|
+
const members = elevator(COLLECTION_MEMBERS_ELEVATOR).up();
|
|
92
|
+
/** The `id` the application gave the panel. */
|
|
93
|
+
const idPlugin = context.bundle?.get(TIdPlugin);
|
|
94
|
+
/** The tab bound now. */
|
|
95
|
+
let boundItem;
|
|
96
|
+
/** The tab's context at the panel's facade; unbinding releases it. */
|
|
97
|
+
let boundContext;
|
|
98
|
+
/** The tab's link plugin the panel handed its `TIdPlugin` to. */
|
|
99
|
+
let boundIds;
|
|
100
|
+
/** The context is accepted: subscribing to foreign buses is allowed. */
|
|
101
|
+
let attached = false;
|
|
102
|
+
/**
|
|
103
|
+
* The panel's side: the application's `id`, else the one the tab wrote,
|
|
104
|
+
* and the link to the tab. Without a tab only the own `id` stays.
|
|
105
|
+
*/
|
|
106
|
+
const linkPanel = () => {
|
|
107
|
+
content.aria.add("id", idPlugin?.id ?? boundItem?.aria.get("aria-controls"));
|
|
108
|
+
content.aria.add("aria-labelledby", boundItem?.aria.get("id"));
|
|
109
|
+
};
|
|
110
|
+
/** The tab's `aria-controls` no longer follows this panel: back to the formula. */
|
|
111
|
+
const unlinkTab = () => {
|
|
112
|
+
if (idPlugin) boundIds?.unbindPanel(idPlugin);
|
|
113
|
+
boundIds = void 0;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* The tab's side: its link plugin points `aria-controls` to the panel's
|
|
117
|
+
* `id`. Only for an accepted panel, and only the plugin of the tab's
|
|
118
|
+
* current mount: a remounted tab has a new one.
|
|
119
|
+
*/
|
|
120
|
+
const linkTab = () => {
|
|
121
|
+
const ids = idPlugin && attached && boundItem ? bundles?.getByItem(boundItem)?.get(TTabsItemIdsPlugin) : void 0;
|
|
122
|
+
if (ids === boundIds) return;
|
|
123
|
+
unlinkTab();
|
|
124
|
+
if (!idPlugin || !ids) return;
|
|
125
|
+
boundIds = ids;
|
|
126
|
+
ids.bindPanel(idPlugin);
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* The panel is bound to no tab. The facade is cleared before the context
|
|
130
|
+
* is released: the facade is read after teardown too, and reading a
|
|
131
|
+
* released context would recreate the adapters.
|
|
132
|
+
*/
|
|
133
|
+
const unbind = () => {
|
|
134
|
+
if (attached) boundItem?.events.off("change:aria", linkPanel);
|
|
135
|
+
unlinkTab();
|
|
136
|
+
context.instance.clearContext();
|
|
137
|
+
boundContext?.release();
|
|
138
|
+
boundContext = void 0;
|
|
139
|
+
boundItem = void 0;
|
|
140
|
+
};
|
|
141
|
+
/** Bind to a tab or to none: both write the panel's side. */
|
|
142
|
+
const bind = (item) => {
|
|
143
|
+
unbind();
|
|
144
|
+
if (item) {
|
|
145
|
+
boundContext = new TItemContext(item, extensions);
|
|
146
|
+
boundItem = item;
|
|
147
|
+
if (attached) item.events.on("change:aria", linkPanel);
|
|
148
|
+
}
|
|
149
|
+
linkPanel();
|
|
150
|
+
linkTab();
|
|
151
|
+
if (boundContext) context.instance.setContext(boundContext);
|
|
152
|
+
};
|
|
153
|
+
const resolve = () => {
|
|
154
|
+
const item = findByValue(engine, content.value);
|
|
155
|
+
if (item !== boundItem) bind(item);
|
|
156
|
+
};
|
|
157
|
+
bind(findByValue(engine, content.value));
|
|
158
|
+
context.events.on("attach", () => {
|
|
159
|
+
attached = true;
|
|
160
|
+
members?.add(adapter, context);
|
|
161
|
+
boundItem?.events.on("change:aria", linkPanel);
|
|
162
|
+
idPlugin?.events.on("change:id", linkPanel);
|
|
163
|
+
linkPanel();
|
|
164
|
+
linkTab();
|
|
165
|
+
resolve();
|
|
166
|
+
engine.extensions.plain.events.on("item:added", resolve);
|
|
167
|
+
bundles?.events.on("bundle:registered", linkTab);
|
|
168
|
+
content.events.on("change:value", resolve);
|
|
169
|
+
});
|
|
170
|
+
context.events.on("destroy", () => {
|
|
171
|
+
engine.extensions.plain.events.off("item:added", resolve);
|
|
172
|
+
bundles?.events.off("bundle:registered", linkTab);
|
|
173
|
+
content.events.off("change:value", resolve);
|
|
174
|
+
idPlugin?.events.off("change:id", linkPanel);
|
|
175
|
+
members?.delete(adapter, context);
|
|
176
|
+
unbind();
|
|
177
|
+
attached = false;
|
|
178
|
+
content.aria.remove("id");
|
|
179
|
+
content.aria.remove("aria-labelledby");
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
//#endregion
|
|
184
|
+
export { TTabsContentBindingExtension };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options of the Tabs panel's binding to its tab: the panel's adapter and the lift to the owner's engine.
|
|
3
|
+
*/
|
|
4
|
+
import type { ITabsContent } from '@soxa-ui/core';
|
|
5
|
+
import type { TElevatorFactory } from '../../../protected/adapter/elevator';
|
|
6
|
+
import type { TMemberAdapter } from '../collection';
|
|
7
|
+
export interface ITabsContentBindingOptions {
|
|
8
|
+
/** The panel's own context: its instance (TTabsContent) is the source of `value`. */
|
|
9
|
+
adapter: TMemberAdapter<ITabsContent>;
|
|
10
|
+
elevator: TElevatorFactory;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ключ лифта тостов: менеджер `Toasts` опускает по нему API тостов своему поддереву.
|
|
3
|
+
*
|
|
4
|
+
* Лежит отдельно от проводки менеджера, как ключ окна (`VIRTUAL_ELEVATOR`):
|
|
5
|
+
* адаптеру, чтобы взять API (`useToasts()`), нужен только ключ. Лифт берёт
|
|
6
|
+
* любой ключ, поэтому ключ — в наполнении, а не в механике лифта.
|
|
7
|
+
*/
|
|
8
|
+
import type { IToastsApi } from '@soxa-ui/core';
|
|
9
|
+
import type { IElevatorKey } from '../../../protected/adapter/elevator';
|
|
10
|
+
/** API тостов ближайшего `Toasts` выше по дереву: `show` и тост в ответ. */
|
|
11
|
+
export declare const TOASTS_ELEVATOR: IElevatorKey<IToastsApi>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TToastsApiExtension — менеджер `Toasts` отдаёт API тостов вниз по дереву.
|
|
3
|
+
*
|
|
4
|
+
* Приложение показывает тост из любого места под менеджером, не ставя
|
|
5
|
+
* разметку на месте: `const { show } = useToasts()`. API — очередь движка
|
|
6
|
+
* (`engine.extensions.toasts`): тот же объект, которым показывает тосты код
|
|
7
|
+
* вне компонентов, получивший движок пропом `engine`. Второго пути к тостам
|
|
8
|
+
* нет — опускается сама очередь, а не обёртка над ней.
|
|
9
|
+
*
|
|
10
|
+
* Расширение только опускает значение по лифту (`TOASTS_ELEVATOR`), а берёт
|
|
11
|
+
* его адаптер — своим механизмом контекста: во Vue — `inject`. Ни
|
|
12
|
+
* регистрации, ни подписок у него нет, поэтому фаз контекста оно не ждёт.
|
|
13
|
+
*
|
|
14
|
+
* Использование:
|
|
15
|
+
* collectionAdapter
|
|
16
|
+
* .use(TCollectionExtension, { elevator: VueElevatorFactory })
|
|
17
|
+
* .use(TToastsApiExtension, { elevator: VueElevatorFactory })
|
|
18
|
+
*/
|
|
19
|
+
import type { TInstanceContext } from '../../../protected/adapter/context';
|
|
20
|
+
import type { IToastsApiExtensionOptions, TToastsApiOwner } from './types';
|
|
21
|
+
export declare class TToastsApiExtension {
|
|
22
|
+
constructor(context: TInstanceContext<TToastsApiOwner>, options: IToastsApiExtensionOptions);
|
|
23
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TOASTS_ELEVATOR } from "./keys.js";
|
|
2
|
+
//#region content/extensions/toasts/toasts-api.extension.class.ts
|
|
3
|
+
var TToastsApiExtension = class {
|
|
4
|
+
constructor(context, options) {
|
|
5
|
+
options.elevator(TOASTS_ELEVATOR).down(context.instance.engine.extensions.toasts);
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { TToastsApiExtension };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Контракты проводки тостов: фасад, у которого берут API, и опции расширения.
|
|
3
|
+
*/
|
|
4
|
+
import type { IToastsApi } from '@soxa-ui/core';
|
|
5
|
+
import type { TElevatorFactory } from '../../../protected/adapter/elevator';
|
|
6
|
+
/**
|
|
7
|
+
* Инстанс, к которому подключается расширение: фасад коллекции, в движке
|
|
8
|
+
* которого стоит очередь тостов (`toasts`).
|
|
9
|
+
*/
|
|
10
|
+
export type TToastsApiOwner = {
|
|
11
|
+
readonly engine: {
|
|
12
|
+
readonly extensions: {
|
|
13
|
+
readonly toasts: IToastsApi;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export interface IToastsApiExtensionOptions {
|
|
18
|
+
elevator: TElevatorFactory;
|
|
19
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { TVirtualExtension } from './virtual.extension.class';
|
|
2
|
+
export { TVirtualCollectionExtension } from './virtual-collection.extension.class';
|
|
3
|
+
export type { IVirtualCollectionExtensionOptions, IVirtualConnection, IVirtualExtensionOptions, TVirtualConnect, } from './types';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ключ лифта окна: обёртка `Virtual` опускает по нему коллекциям внутри себя подключение к окну.
|
|
3
|
+
*
|
|
4
|
+
* Лежит отдельно от проводки обёртки: коллекция импортирует только ключ и
|
|
5
|
+
* типы, и код окна — стратегия и плагин замера — в сборку приложения без
|
|
6
|
+
* обёртки не попадает. Лифт берёт любой ключ, поэтому ключ — в наполнении, а
|
|
7
|
+
* не в механике лифта.
|
|
8
|
+
*/
|
|
9
|
+
import type { IElevatorKey } from '../../../protected/adapter/elevator';
|
|
10
|
+
import type { TVirtualConnect } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Подключение к окну. Пустое значение опускает своему поддереву сама
|
|
13
|
+
* коллекция: списки в слотах её элементов окна не наследуют.
|
|
14
|
+
*/
|
|
15
|
+
export declare const VIRTUAL_ELEVATOR: IElevatorKey<TVirtualConnect | null>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region content/extensions/virtual/keys.ts
|
|
2
|
+
/**
|
|
3
|
+
* Подключение к окну. Пустое значение опускает своему поддереву сама
|
|
4
|
+
* коллекция: списки в слотах её элементов окна не наследуют.
|
|
5
|
+
*/
|
|
6
|
+
var VIRTUAL_ELEVATOR = { name: "soxa:virtual" };
|
|
7
|
+
//#endregion
|
|
8
|
+
export { VIRTUAL_ELEVATOR };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Контракты окна: подключение коллекции к окну обёртки `Virtual` и опции расширений.
|
|
3
|
+
*/
|
|
4
|
+
import type { TCollectionEngine } from '@soxa-ui/core';
|
|
5
|
+
import type { IPluginBundle } from '@soxa-ui/plugins';
|
|
6
|
+
import type { TElevatorFactory } from '../../../protected/adapter/elevator';
|
|
7
|
+
/**
|
|
8
|
+
* Подключить коллекцию к окну обёртки: её движок и набор плагинов. Зовёт его
|
|
9
|
+
* сборка коллекции, и сразу подключение делает только то, что принадлежит
|
|
10
|
+
* коллекции, — плагин замера в её набор и стратегию в её рисование по
|
|
11
|
+
* текущему `enabled`. Остальное коллекция ведёт по фазам своего контекста —
|
|
12
|
+
* через подключение, которое получила.
|
|
13
|
+
*/
|
|
14
|
+
export type TVirtualConnect = (engine: TCollectionEngine<any, any>, bundle: IPluginBundle | null) => IVirtualConnection;
|
|
15
|
+
/**
|
|
16
|
+
* Подключение коллекции к окну — по фазам её контекста. Шина обёртки для
|
|
17
|
+
* коллекции чужая, поэтому на выключатель подписывается только принятая
|
|
18
|
+
* коллекция: собранную фреймворк вправе выбросить, так и не приняв, и
|
|
19
|
+
* подписка сборки осталась бы на живой обёртке.
|
|
20
|
+
*/
|
|
21
|
+
export interface IVirtualConnection {
|
|
22
|
+
/**
|
|
23
|
+
* Коллекцию приняли (`attach` контекста): окно идёт за выключателем обёртки
|
|
24
|
+
* и применяет его ещё раз — выключатель мог смениться между сборкой и
|
|
25
|
+
* приёмом.
|
|
26
|
+
*/
|
|
27
|
+
attach(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Коллекцию уничтожили (`destroy` контекста), принятую или нет: отписка от
|
|
30
|
+
* выключателя, если подписка была, и рисование всех элементов — движок мог
|
|
31
|
+
* прийти снаружи и пережить компонент.
|
|
32
|
+
*/
|
|
33
|
+
destroy(): void;
|
|
34
|
+
}
|
|
35
|
+
export interface IVirtualExtensionOptions {
|
|
36
|
+
elevator: TElevatorFactory;
|
|
37
|
+
}
|
|
38
|
+
export interface IVirtualCollectionExtensionOptions {
|
|
39
|
+
elevator: TElevatorFactory;
|
|
40
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TVirtualCollectionExtension — коллекция подхватывает окно обёртки `Virtual` над собой.
|
|
3
|
+
*
|
|
4
|
+
* Фазы — как у связки панели Tabs (`TTabsContentBindingExtension`):
|
|
5
|
+
*
|
|
6
|
+
* - **сборка** — подхват: подключение ставит то, что принадлежит коллекции, —
|
|
7
|
+
* плагин замера в её набор и стратегию в её рисование по текущему
|
|
8
|
+
* `enabled`. Сервер и первый кадр рисуют уже окно, а не весь список;
|
|
9
|
+
* - **вход** (`attach` контекста) — подписка на выключатель обёртки. Шина
|
|
10
|
+
* обёртки чужая, а собранную коллекцию фреймворк вправе выбросить, так и не
|
|
11
|
+
* приняв: подписка сборки осталась бы на живой обёртке;
|
|
12
|
+
* - **снятие** (`destroy` контекста) — отписка от обёртки, если подписка была,
|
|
13
|
+
* и рисование всех элементов, ведь движок мог прийти снаружи и пережить
|
|
14
|
+
* компонент. Контекст, собранный, но так и не принятый, снимается тоже.
|
|
15
|
+
*
|
|
16
|
+
* Обёртки выше нет — коллекция рисует все показанные элементы, как без окна.
|
|
17
|
+
*
|
|
18
|
+
* Своему поддереву коллекция опускает пустое подключение: списки в слотах её
|
|
19
|
+
* элементов окна не наследуют.
|
|
20
|
+
*
|
|
21
|
+
* Код окна здесь не импортируется — только ключ лифта и типы: коллекция без
|
|
22
|
+
* обёртки стратегию окна и плагин замера в сборку приложения не тянет.
|
|
23
|
+
*
|
|
24
|
+
* Использование:
|
|
25
|
+
* adapter.use(TCollectionExtension, { elevator: VueElevatorFactory })
|
|
26
|
+
* .use(TVirtualCollectionExtension, { elevator: VueElevatorFactory })
|
|
27
|
+
*/
|
|
28
|
+
import type { TInstanceContext } from '../../../protected/adapter/context';
|
|
29
|
+
import type { TCollectionOwner } from '../collection';
|
|
30
|
+
import type { IVirtualCollectionExtensionOptions } from './types';
|
|
31
|
+
export declare class TVirtualCollectionExtension {
|
|
32
|
+
constructor(context: TInstanceContext<TCollectionOwner>, options: IVirtualCollectionExtensionOptions);
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { VIRTUAL_ELEVATOR } from "./keys.js";
|
|
2
|
+
//#region content/extensions/virtual/virtual-collection.extension.class.ts
|
|
3
|
+
var TVirtualCollectionExtension = class {
|
|
4
|
+
constructor(context, options) {
|
|
5
|
+
const elevator = options.elevator(VIRTUAL_ELEVATOR);
|
|
6
|
+
const connect = elevator.up();
|
|
7
|
+
elevator.down(null);
|
|
8
|
+
if (!connect) return;
|
|
9
|
+
const connection = connect(context.instance.engine, context.bundle);
|
|
10
|
+
context.events.on("attach", () => connection.attach());
|
|
11
|
+
context.events.on("destroy", () => connection.destroy());
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
export { TVirtualCollectionExtension };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TVirtualExtension — проводка обёртки `Virtual`: окно коллекциям внутри неё.
|
|
3
|
+
*
|
|
4
|
+
* Обёртка опускает по лифту подключение к окну, а коллекция внутри
|
|
5
|
+
* подхватывает его при сборке (`TVirtualCollectionExtension`). Подключение
|
|
6
|
+
* делает со своей коллекцией две вещи:
|
|
7
|
+
*
|
|
8
|
+
* - ставит в её набор плагинов `TVirtualPlugin` — замер видимой полосы и шага
|
|
9
|
+
* элементов и элемент с DOM-фокусом; движок к этому времени привязан к
|
|
10
|
+
* реестру bundles, и плагин берёт его оттуда;
|
|
11
|
+
* - держит в её рисовании (`draw`) стратегию окна, пока обёртка включена
|
|
12
|
+
* (`enabled`), и снимает её, когда выключена.
|
|
13
|
+
*
|
|
14
|
+
* Работа разделена по фазам контекста коллекции, как у связки панели Tabs
|
|
15
|
+
* (`TTabsContentBindingExtension`):
|
|
16
|
+
*
|
|
17
|
+
* - **сборка** — плагин в набор и стратегия по текущему `enabled`: то и
|
|
18
|
+
* другое принадлежит коллекции, поэтому сервер и первый кадр уже в окне;
|
|
19
|
+
* - **вход** (`attach`) — подписка на выключатель обёртки и его повторное
|
|
20
|
+
* применение. Шина обёртки для коллекции чужая, а собранную коллекцию
|
|
21
|
+
* фреймворк вправе выбросить, так и не приняв: подписка сборки осталась бы
|
|
22
|
+
* на живой обёртке, и снять её было бы некому — у списка из `items` нет ни
|
|
23
|
+
* `ctrl`, ни движка снаружи, по которым узнают выброшенную сборку;
|
|
24
|
+
* - **снятие** (`destroy`) — отписка, если подписка была, и рисование всех
|
|
25
|
+
* элементов: движок мог прийти снаружи и пережить компонент. Плагин уходит
|
|
26
|
+
* вместе с набором компонента.
|
|
27
|
+
*
|
|
28
|
+
* Использование:
|
|
29
|
+
* adapter.use(TVirtualExtension, { elevator: VueElevatorFactory })
|
|
30
|
+
*/
|
|
31
|
+
import type { IVirtual } from '@soxa-ui/core';
|
|
32
|
+
import type { TInstanceContext } from '../../../protected/adapter/context';
|
|
33
|
+
import type { IVirtualExtensionOptions } from './types';
|
|
34
|
+
export declare class TVirtualExtension {
|
|
35
|
+
constructor(context: TInstanceContext<IVirtual>, options: IVirtualExtensionOptions);
|
|
36
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { VIRTUAL_ELEVATOR } from "./keys.js";
|
|
2
|
+
import { TWindowStrategy, drawOf } from "@soxa-ui/core";
|
|
3
|
+
import { TVirtualPlugin } from "@soxa-ui/plugins";
|
|
4
|
+
//#region content/extensions/virtual/virtual.extension.class.ts
|
|
5
|
+
/**
|
|
6
|
+
* TVirtualExtension — проводка обёртки `Virtual`: окно коллекциям внутри неё.
|
|
7
|
+
*
|
|
8
|
+
* Обёртка опускает по лифту подключение к окну, а коллекция внутри
|
|
9
|
+
* подхватывает его при сборке (`TVirtualCollectionExtension`). Подключение
|
|
10
|
+
* делает со своей коллекцией две вещи:
|
|
11
|
+
*
|
|
12
|
+
* - ставит в её набор плагинов `TVirtualPlugin` — замер видимой полосы и шага
|
|
13
|
+
* элементов и элемент с DOM-фокусом; движок к этому времени привязан к
|
|
14
|
+
* реестру bundles, и плагин берёт его оттуда;
|
|
15
|
+
* - держит в её рисовании (`draw`) стратегию окна, пока обёртка включена
|
|
16
|
+
* (`enabled`), и снимает её, когда выключена.
|
|
17
|
+
*
|
|
18
|
+
* Работа разделена по фазам контекста коллекции, как у связки панели Tabs
|
|
19
|
+
* (`TTabsContentBindingExtension`):
|
|
20
|
+
*
|
|
21
|
+
* - **сборка** — плагин в набор и стратегия по текущему `enabled`: то и
|
|
22
|
+
* другое принадлежит коллекции, поэтому сервер и первый кадр уже в окне;
|
|
23
|
+
* - **вход** (`attach`) — подписка на выключатель обёртки и его повторное
|
|
24
|
+
* применение. Шина обёртки для коллекции чужая, а собранную коллекцию
|
|
25
|
+
* фреймворк вправе выбросить, так и не приняв: подписка сборки осталась бы
|
|
26
|
+
* на живой обёртке, и снять её было бы некому — у списка из `items` нет ни
|
|
27
|
+
* `ctrl`, ни движка снаружи, по которым узнают выброшенную сборку;
|
|
28
|
+
* - **снятие** (`destroy`) — отписка, если подписка была, и рисование всех
|
|
29
|
+
* элементов: движок мог прийти снаружи и пережить компонент. Плагин уходит
|
|
30
|
+
* вместе с набором компонента.
|
|
31
|
+
*
|
|
32
|
+
* Использование:
|
|
33
|
+
* adapter.use(TVirtualExtension, { elevator: VueElevatorFactory })
|
|
34
|
+
*/
|
|
35
|
+
/** Подключение коллекции без рисования: окну у неё нечего держать. */
|
|
36
|
+
var NO_WINDOW = {
|
|
37
|
+
attach: () => {},
|
|
38
|
+
destroy: () => {}
|
|
39
|
+
};
|
|
40
|
+
var TVirtualExtension = class {
|
|
41
|
+
constructor(context, options) {
|
|
42
|
+
const virtual = context.instance;
|
|
43
|
+
options.elevator(VIRTUAL_ELEVATOR).down((engine, bundle) => connectWindow(virtual, engine, bundle));
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Подключить коллекцию к окну обёртки: своё коллекции — сразу, подписка на
|
|
48
|
+
* обёртку — с приёмом коллекции.
|
|
49
|
+
*/
|
|
50
|
+
function connectWindow(virtual, engine, bundle) {
|
|
51
|
+
const draw = drawOf(engine);
|
|
52
|
+
if (!draw) return NO_WINDOW;
|
|
53
|
+
if (bundle && !bundle.get(TVirtualPlugin)) bundle.use(TVirtualPlugin);
|
|
54
|
+
const strategy = new TWindowStrategy();
|
|
55
|
+
const apply = (enabled) => draw.useStrategy(enabled ? strategy : null);
|
|
56
|
+
const changed = ({ newValue }) => apply(newValue);
|
|
57
|
+
/** Коллекцию приняли: на выключатель обёртки подписаны. */
|
|
58
|
+
let listening = false;
|
|
59
|
+
apply(virtual.enabled);
|
|
60
|
+
return {
|
|
61
|
+
attach: () => {
|
|
62
|
+
listening = true;
|
|
63
|
+
virtual.events.on("change:enabled", changed);
|
|
64
|
+
apply(virtual.enabled);
|
|
65
|
+
},
|
|
66
|
+
destroy: () => {
|
|
67
|
+
if (listening) virtual.events.off("change:enabled", changed);
|
|
68
|
+
listening = false;
|
|
69
|
+
draw.useStrategy(null);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export { TVirtualExtension };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Роли, которые компоненты библиотеки требуют от пакета иконок.
|
|
3
|
+
*
|
|
4
|
+
* Пакет иконок — не мешок SVG, а **реализация контракта**: список ролей,
|
|
5
|
+
* которые нужны компонентам. Ровно как тема реализует те классы, которые
|
|
6
|
+
* soxa выпускает в разметку. Поэтому роли перечислены явно, а
|
|
7
|
+
* conformance-тест проверяет, что пакет закрывает их все.
|
|
8
|
+
*
|
|
9
|
+
* Список — наполнение, а не механика: появилась иконка в новом компоненте —
|
|
10
|
+
* роль дописывается сюда. Реестр (`protected/registry/icons.ts`) о списке не
|
|
11
|
+
* знает и работает с любой строкой, поэтому новая роль не трогает движок.
|
|
12
|
+
*/
|
|
13
|
+
import type { TIconSource } from '../../protected/registry';
|
|
14
|
+
/**
|
|
15
|
+
* Список закрытый: он и есть контракт. Появилась иконка в новом компоненте —
|
|
16
|
+
* роль добавляется сюда, и conformance-тест сразу покажет, какие пакеты её
|
|
17
|
+
* ещё не закрыли.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ICON_ROLES: readonly ["check", "checkIndeterminate", "close", "arrowDown", "arrowRight", "arrowsOutward", "arrowsInward", "calendar", "arrowUpward", "star", "minus", "plus", "error", "notification", "info", "success", "warning"];
|
|
20
|
+
export type TIconRole = (typeof ICON_ROLES)[number];
|
|
21
|
+
/** Пакет иконок: все обязательные роли плюс любые собственные. */
|
|
22
|
+
export type TIconPack = Record<TIconRole, TIconSource> & Record<string, TIconSource>;
|
|
23
|
+
/**
|
|
24
|
+
* Каких обязательных ролей не хватает в наборе.
|
|
25
|
+
*
|
|
26
|
+
* Основа conformance-теста пакета: пустой массив означает, что контракт
|
|
27
|
+
* закрыт целиком.
|
|
28
|
+
*/
|
|
29
|
+
export declare function missingIconRoles(pack: Partial<Record<string, TIconSource>>): TIconRole[];
|