@soxa-ui/webc 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 +622 -2
- package/dist/adapter/common/attributes.d.ts +22 -0
- package/dist/adapter/common/attributes.js +74 -0
- package/dist/adapter/common/createWebcAdapterContext.d.ts +8 -0
- package/dist/adapter/common/createWebcAdapterContext.js +17 -0
- package/dist/adapter/common/icon.d.ts +9 -0
- package/dist/adapter/common/icon.js +25 -0
- package/dist/adapter/common/index.d.ts +5 -0
- package/dist/adapter/common/index.js +6 -0
- package/dist/adapter/common/naming.d.ts +7 -0
- package/dist/adapter/common/naming.js +9 -0
- package/dist/adapter/common/profile.d.ts +3 -0
- package/dist/adapter/common/profile.js +6 -0
- package/dist/adapter/context/index.d.ts +1 -0
- package/dist/adapter/context/place-context.class.d.ts +22 -0
- package/dist/adapter/context/place-context.class.js +40 -0
- package/dist/adapter/elevator/elevator.class.d.ts +13 -0
- package/dist/adapter/elevator/elevator.class.js +34 -0
- package/dist/adapter/elevator/factory.d.ts +3 -0
- package/dist/adapter/elevator/factory.js +8 -0
- package/dist/adapter/elevator/index.d.ts +2 -0
- package/dist/adapter/elevator/index.js +2 -0
- package/dist/adapter/index.d.ts +5 -0
- package/dist/adapter/index.js +21 -0
- package/dist/adapter/locale/LocaleProvider.element.d.ts +26 -0
- package/dist/adapter/locale/LocaleProvider.element.js +51 -0
- package/dist/adapter/locale/context.d.ts +4 -0
- package/dist/adapter/locale/context.js +12 -0
- package/dist/adapter/locale/index.d.ts +2 -0
- package/dist/adapter/locale/index.js +1 -0
- package/dist/adapter/runtime/content.d.ts +6 -0
- package/dist/adapter/runtime/content.js +13 -0
- package/dist/adapter/runtime/deferral.d.ts +22 -0
- package/dist/adapter/runtime/deferral.js +100 -0
- package/dist/adapter/runtime/defineElement.d.ts +23 -0
- package/dist/adapter/runtime/defineElement.js +97 -0
- package/dist/adapter/runtime/display-contents.d.ts +5 -0
- package/dist/adapter/runtime/display-contents.js +14 -0
- package/dist/adapter/runtime/element.base.d.ts +84 -0
- package/dist/adapter/runtime/element.base.js +347 -0
- package/dist/adapter/runtime/index.d.ts +4 -0
- package/dist/adapter/runtime/index.js +4 -0
- package/dist/adapter/runtime/light.d.ts +33 -0
- package/dist/adapter/runtime/light.js +131 -0
- package/dist/adapter/runtime/marks.d.ts +19 -0
- package/dist/adapter/runtime/marks.js +46 -0
- package/dist/adapter/runtime/paint.d.ts +91 -0
- package/dist/adapter/runtime/paint.js +208 -0
- package/dist/adapter/runtime/props.d.ts +36 -0
- package/dist/adapter/runtime/props.js +58 -0
- package/dist/adapter/runtime/relocation.d.ts +16 -0
- package/dist/adapter/runtime/relocation.js +58 -0
- package/dist/adapter/runtime/root.d.ts +77 -0
- package/dist/adapter/runtime/root.js +77 -0
- package/dist/adapter/runtime/subtree.d.ts +22 -0
- package/dist/adapter/runtime/subtree.js +44 -0
- package/dist/adapter/runtime/teleport.d.ts +57 -0
- package/dist/adapter/runtime/teleport.js +190 -0
- package/dist/adapter/runtime/useAdapter.d.ts +45 -0
- package/dist/adapter/runtime/useAdapter.js +151 -0
- package/dist/adapter/runtime/waiting.d.ts +10 -0
- package/dist/adapter/runtime/waiting.js +53 -0
- package/dist/adapter/template/index.d.ts +6 -0
- package/dist/adapter/template/index.js +6 -0
- package/dist/adapter/template/lend.d.ts +13 -0
- package/dist/adapter/template/lend.js +30 -0
- package/dist/adapter/template/loop.d.ts +21 -0
- package/dist/adapter/template/loop.js +59 -0
- package/dist/adapter/template/owner.d.ts +13 -0
- package/dist/adapter/template/owner.js +15 -0
- package/dist/adapter/template/parts.d.ts +37 -0
- package/dist/adapter/template/parts.js +61 -0
- package/dist/adapter/template/types.d.ts +69 -0
- package/dist/adapter/template/types.js +9 -0
- package/dist/adapter/toasts/index.d.ts +1 -0
- package/dist/adapter/toasts/index.js +1 -0
- package/dist/adapter/toasts/toastsOf.d.ts +12 -0
- package/dist/adapter/toasts/toastsOf.js +21 -0
- package/dist/components/accordion/Accordion.element.d.ts +9 -0
- package/dist/components/accordion/Accordion.element.js +27 -0
- package/dist/components/accordion/accordion.template.d.ts +10 -0
- package/dist/components/accordion/accordion.template.js +44 -0
- package/dist/components/accordion/index.d.ts +5 -0
- package/dist/components/accordion/index.js +3 -0
- package/dist/components/accordion/item/AccordionItem.element.d.ts +10 -0
- package/dist/components/accordion/item/AccordionItem.element.js +25 -0
- package/dist/components/accordion/item/accordion-item.template.d.ts +8 -0
- package/dist/components/accordion/item/accordion-item.template.js +123 -0
- package/dist/components/accordion/item/index.d.ts +3 -0
- package/dist/components/accordion/item/index.js +3 -0
- package/dist/components/accordion/item/setup.component.d.ts +3 -0
- package/dist/components/accordion/item/setup.component.js +22 -0
- package/dist/components/accordion/setup.component.d.ts +3 -0
- package/dist/components/accordion/setup.component.js +26 -0
- package/dist/components/button/Button.element.d.ts +12 -0
- package/dist/components/button/Button.element.js +22 -0
- package/dist/components/button/button.template.d.ts +8 -0
- package/dist/components/button/button.template.js +30 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/setup.component.d.ts +3 -0
- package/dist/components/button/setup.component.js +14 -0
- package/dist/components/calendar/Calendar.element.d.ts +9 -0
- package/dist/components/calendar/Calendar.element.js +23 -0
- package/dist/components/calendar/calendar.template.d.ts +10 -0
- package/dist/components/calendar/calendar.template.js +309 -0
- package/dist/components/calendar/index.d.ts +5 -0
- package/dist/components/calendar/index.js +3 -0
- package/dist/components/calendar/item/CalendarItem.element.d.ts +10 -0
- package/dist/components/calendar/item/CalendarItem.element.js +19 -0
- package/dist/components/calendar/item/calendar-item.template.d.ts +7 -0
- package/dist/components/calendar/item/calendar-item.template.js +22 -0
- package/dist/components/calendar/item/index.d.ts +3 -0
- package/dist/components/calendar/item/index.js +3 -0
- package/dist/components/calendar/item/setup.component.d.ts +3 -0
- package/dist/components/calendar/item/setup.component.js +22 -0
- package/dist/components/calendar/setup.component.d.ts +3 -0
- package/dist/components/calendar/setup.component.js +25 -0
- package/dist/components/check-box/CheckBox.element.d.ts +9 -0
- package/dist/components/check-box/CheckBox.element.js +24 -0
- package/dist/components/check-box/check-box.template.d.ts +10 -0
- package/dist/components/check-box/check-box.template.js +94 -0
- package/dist/components/check-box/index.d.ts +3 -0
- package/dist/components/check-box/index.js +1 -0
- package/dist/components/check-box/setup.component.d.ts +7 -0
- package/dist/components/check-box/setup.component.js +16 -0
- package/dist/components/common/clear.d.ts +34 -0
- package/dist/components/common/clear.js +67 -0
- package/dist/components/common/drawn-rows.d.ts +35 -0
- package/dist/components/common/drawn-rows.js +79 -0
- package/dist/components/common/icon-button.d.ts +24 -0
- package/dist/components/common/icon-button.js +42 -0
- package/dist/components/component/index.d.ts +1 -0
- package/dist/components/component/index.js +1 -0
- package/dist/components/component/setup.component.d.ts +3 -0
- package/dist/components/component/setup.component.js +2 -0
- package/dist/components/component-view/ComponentView.element.d.ts +6 -0
- package/dist/components/component-view/ComponentView.element.js +16 -0
- package/dist/components/component-view/component-view.template.d.ts +4 -0
- package/dist/components/component-view/component-view.template.js +10 -0
- package/dist/components/component-view/index.d.ts +3 -0
- package/dist/components/component-view/index.js +1 -0
- package/dist/components/component-view/setup.component.d.ts +3 -0
- package/dist/components/component-view/setup.component.js +14 -0
- package/dist/components/control/index.d.ts +1 -0
- package/dist/components/control/index.js +1 -0
- package/dist/components/control/setup.component.d.ts +3 -0
- package/dist/components/control/setup.component.js +2 -0
- package/dist/components/date-input/DateInput.element.d.ts +11 -0
- package/dist/components/date-input/DateInput.element.js +21 -0
- package/dist/components/date-input/date-input.template.d.ts +11 -0
- package/dist/components/date-input/date-input.template.js +102 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/index.js +1 -0
- package/dist/components/date-input/setup.component.d.ts +8 -0
- package/dist/components/date-input/setup.component.js +16 -0
- package/dist/components/date-picker/DatePicker.element.d.ts +11 -0
- package/dist/components/date-picker/DatePicker.element.js +24 -0
- package/dist/components/date-picker/date-picker.template.d.ts +15 -0
- package/dist/components/date-picker/date-picker.template.js +310 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/setup.component.d.ts +9 -0
- package/dist/components/date-picker/setup.component.js +16 -0
- package/dist/components/dialog/Dialog.element.d.ts +11 -0
- package/dist/components/dialog/Dialog.element.js +25 -0
- package/dist/components/dialog/dialog.template.d.ts +9 -0
- package/dist/components/dialog/dialog.template.js +148 -0
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/setup.component.d.ts +5 -0
- package/dist/components/dialog/setup.component.js +14 -0
- package/dist/components/drag-and-drop/DragAndDrop.element.d.ts +10 -0
- package/dist/components/drag-and-drop/DragAndDrop.element.js +20 -0
- package/dist/components/drag-and-drop/drag-and-drop.template.d.ts +4 -0
- package/dist/components/drag-and-drop/drag-and-drop.template.js +14 -0
- package/dist/components/drag-and-drop/index.d.ts +3 -0
- package/dist/components/drag-and-drop/index.js +1 -0
- package/dist/components/drag-and-drop/setup.component.d.ts +4 -0
- package/dist/components/drag-and-drop/setup.component.js +17 -0
- package/dist/components/drawer/Drawer.element.d.ts +10 -0
- package/dist/components/drawer/Drawer.element.js +27 -0
- package/dist/components/drawer/drawer.template.d.ts +11 -0
- package/dist/components/drawer/drawer.template.js +100 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/setup.component.d.ts +6 -0
- package/dist/components/drawer/setup.component.js +14 -0
- package/dist/components/field/Field.element.d.ts +10 -0
- package/dist/components/field/Field.element.js +20 -0
- package/dist/components/field/field.template.d.ts +9 -0
- package/dist/components/field/field.template.js +110 -0
- package/dist/components/field/index.d.ts +3 -0
- package/dist/components/field/index.js +1 -0
- package/dist/components/field/setup.component.d.ts +4 -0
- package/dist/components/field/setup.component.js +17 -0
- package/dist/components/frame/Frame.element.d.ts +10 -0
- package/dist/components/frame/Frame.element.js +27 -0
- package/dist/components/frame/frame.template.d.ts +4 -0
- package/dist/components/frame/frame.template.js +10 -0
- package/dist/components/frame/index.d.ts +3 -0
- package/dist/components/frame/index.js +1 -0
- package/dist/components/frame/setup.component.d.ts +3 -0
- package/dist/components/frame/setup.component.js +14 -0
- package/dist/components/icon/Icon.element.d.ts +10 -0
- package/dist/components/icon/Icon.element.js +21 -0
- package/dist/components/icon/icon.template.d.ts +7 -0
- package/dist/components/icon/icon.template.js +32 -0
- package/dist/components/icon/index.d.ts +4 -0
- package/dist/components/icon/index.js +3 -0
- package/dist/components/icon/setup.component.d.ts +3 -0
- package/dist/components/icon/setup.component.js +14 -0
- package/dist/components/index.d.ts +44 -0
- package/dist/components/index.js +104 -0
- package/dist/components/input/Input.element.d.ts +9 -0
- package/dist/components/input/Input.element.js +24 -0
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/input.template.d.ts +10 -0
- package/dist/components/input/input.template.js +82 -0
- package/dist/components/input/setup.component.d.ts +7 -0
- package/dist/components/input/setup.component.js +16 -0
- package/dist/components/input-control/index.d.ts +1 -0
- package/dist/components/input-control/index.js +1 -0
- package/dist/components/input-control/setup.component.d.ts +4 -0
- package/dist/components/input-control/setup.component.js +2 -0
- package/dist/components/interactive/index.d.ts +1 -0
- package/dist/components/interactive/index.js +1 -0
- package/dist/components/interactive/setup.component.d.ts +3 -0
- package/dist/components/interactive/setup.component.js +2 -0
- package/dist/components/item-row/ItemRow.element.d.ts +26 -0
- package/dist/components/item-row/ItemRow.element.js +53 -0
- package/dist/components/item-row/index.d.ts +1 -0
- package/dist/components/item-row/index.js +1 -0
- package/dist/components/item-row/setup.component.d.ts +3 -0
- package/dist/components/item-row/setup.component.js +14 -0
- package/dist/components/label/Label.element.d.ts +9 -0
- package/dist/components/label/Label.element.js +19 -0
- package/dist/components/label/index.d.ts +3 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.template.d.ts +8 -0
- package/dist/components/label/label.template.js +33 -0
- package/dist/components/label/setup.component.d.ts +3 -0
- package/dist/components/label/setup.component.js +14 -0
- package/dist/components/list-box/ListBox.element.d.ts +10 -0
- package/dist/components/list-box/ListBox.element.js +32 -0
- package/dist/components/list-box/group/ListBoxGroup.element.d.ts +9 -0
- package/dist/components/list-box/group/ListBoxGroup.element.js +17 -0
- package/dist/components/list-box/group/index.d.ts +3 -0
- package/dist/components/list-box/group/index.js +3 -0
- package/dist/components/list-box/group/list-box-group.template.d.ts +8 -0
- package/dist/components/list-box/group/list-box-group.template.js +32 -0
- package/dist/components/list-box/group/setup.component.d.ts +3 -0
- package/dist/components/list-box/group/setup.component.js +16 -0
- package/dist/components/list-box/index.d.ts +7 -0
- package/dist/components/list-box/index.js +4 -0
- package/dist/components/list-box/item/ListBoxItem.element.d.ts +10 -0
- package/dist/components/list-box/item/ListBoxItem.element.js +25 -0
- package/dist/components/list-box/item/index.d.ts +3 -0
- package/dist/components/list-box/item/index.js +3 -0
- package/dist/components/list-box/item/list-box-item.template.d.ts +8 -0
- package/dist/components/list-box/item/list-box-item.template.js +116 -0
- package/dist/components/list-box/item/setup.component.d.ts +3 -0
- package/dist/components/list-box/item/setup.component.js +22 -0
- package/dist/components/list-box/list-box.template.d.ts +11 -0
- package/dist/components/list-box/list-box.template.js +77 -0
- package/dist/components/list-box/setup.component.d.ts +3 -0
- package/dist/components/list-box/setup.component.js +26 -0
- package/dist/components/menu/Menu.element.d.ts +10 -0
- package/dist/components/menu/Menu.element.js +49 -0
- package/dist/components/menu/checkbox-item/MenuCheckboxItem.element.d.ts +10 -0
- package/dist/components/menu/checkbox-item/MenuCheckboxItem.element.js +24 -0
- package/dist/components/menu/checkbox-item/index.d.ts +3 -0
- package/dist/components/menu/checkbox-item/index.js +3 -0
- package/dist/components/menu/checkbox-item/menu-checkbox-item.template.d.ts +8 -0
- package/dist/components/menu/checkbox-item/menu-checkbox-item.template.js +58 -0
- package/dist/components/menu/checkbox-item/setup.component.d.ts +3 -0
- package/dist/components/menu/checkbox-item/setup.component.js +22 -0
- package/dist/components/menu/group/MenuGroup.element.d.ts +9 -0
- package/dist/components/menu/group/MenuGroup.element.js +17 -0
- package/dist/components/menu/group/index.d.ts +3 -0
- package/dist/components/menu/group/index.js +3 -0
- package/dist/components/menu/group/menu-group.template.d.ts +12 -0
- package/dist/components/menu/group/menu-group.template.js +37 -0
- package/dist/components/menu/group/setup.component.d.ts +3 -0
- package/dist/components/menu/group/setup.component.js +16 -0
- package/dist/components/menu/index.d.ts +19 -0
- package/dist/components/menu/index.js +10 -0
- package/dist/components/menu/item/MenuItem.element.d.ts +10 -0
- package/dist/components/menu/item/MenuItem.element.js +24 -0
- package/dist/components/menu/item/index.d.ts +3 -0
- package/dist/components/menu/item/index.js +3 -0
- package/dist/components/menu/item/menu-item.template.d.ts +8 -0
- package/dist/components/menu/item/menu-item.template.js +36 -0
- package/dist/components/menu/item/setup.component.d.ts +3 -0
- package/dist/components/menu/item/setup.component.js +22 -0
- package/dist/components/menu/items.d.ts +25 -0
- package/dist/components/menu/items.js +112 -0
- package/dist/components/menu/menu.template.d.ts +17 -0
- package/dist/components/menu/menu.template.js +100 -0
- package/dist/components/menu/popover-item/MenuPopoverItem.element.d.ts +10 -0
- package/dist/components/menu/popover-item/MenuPopoverItem.element.js +24 -0
- package/dist/components/menu/popover-item/index.d.ts +3 -0
- package/dist/components/menu/popover-item/index.js +3 -0
- package/dist/components/menu/popover-item/menu-popover-item.template.d.ts +14 -0
- package/dist/components/menu/popover-item/menu-popover-item.template.js +83 -0
- package/dist/components/menu/popover-item/setup.component.d.ts +6 -0
- package/dist/components/menu/popover-item/setup.component.js +22 -0
- package/dist/components/menu/radio-group/MenuRadioGroup.element.d.ts +9 -0
- package/dist/components/menu/radio-group/MenuRadioGroup.element.js +17 -0
- package/dist/components/menu/radio-group/index.d.ts +3 -0
- package/dist/components/menu/radio-group/index.js +3 -0
- package/dist/components/menu/radio-group/menu-radio-group.template.d.ts +7 -0
- package/dist/components/menu/radio-group/menu-radio-group.template.js +10 -0
- package/dist/components/menu/radio-group/setup.component.d.ts +3 -0
- package/dist/components/menu/radio-group/setup.component.js +17 -0
- package/dist/components/menu/radio-item/MenuRadioItem.element.d.ts +10 -0
- package/dist/components/menu/radio-item/MenuRadioItem.element.js +24 -0
- package/dist/components/menu/radio-item/index.d.ts +3 -0
- package/dist/components/menu/radio-item/index.js +3 -0
- package/dist/components/menu/radio-item/menu-radio-item.template.d.ts +7 -0
- package/dist/components/menu/radio-item/menu-radio-item.template.js +54 -0
- package/dist/components/menu/radio-item/setup.component.d.ts +3 -0
- package/dist/components/menu/radio-item/setup.component.js +23 -0
- package/dist/components/menu/row.d.ts +27 -0
- package/dist/components/menu/row.js +72 -0
- package/dist/components/menu/separator/MenuSeparator.element.d.ts +9 -0
- package/dist/components/menu/separator/MenuSeparator.element.js +17 -0
- package/dist/components/menu/separator/index.d.ts +3 -0
- package/dist/components/menu/separator/index.js +3 -0
- package/dist/components/menu/separator/menu-separator.template.d.ts +4 -0
- package/dist/components/menu/separator/menu-separator.template.js +7 -0
- package/dist/components/menu/separator/setup.component.d.ts +3 -0
- package/dist/components/menu/separator/setup.component.js +14 -0
- package/dist/components/menu/setup.component.d.ts +6 -0
- package/dist/components/menu/setup.component.js +25 -0
- package/dist/components/menu/submenu/MenuSubmenu.element.d.ts +11 -0
- package/dist/components/menu/submenu/MenuSubmenu.element.js +26 -0
- package/dist/components/menu/submenu/index.d.ts +3 -0
- package/dist/components/menu/submenu/index.js +3 -0
- package/dist/components/menu/submenu/menu-submenu.template.d.ts +13 -0
- package/dist/components/menu/submenu/menu-submenu.template.js +103 -0
- package/dist/components/menu/submenu/setup.component.d.ts +11 -0
- package/dist/components/menu/submenu/setup.component.js +36 -0
- package/dist/components/number-input/NumberInput.element.d.ts +11 -0
- package/dist/components/number-input/NumberInput.element.js +26 -0
- package/dist/components/number-input/index.d.ts +3 -0
- package/dist/components/number-input/index.js +1 -0
- package/dist/components/number-input/number-input.template.d.ts +9 -0
- package/dist/components/number-input/number-input.template.js +166 -0
- package/dist/components/number-input/setup.component.d.ts +7 -0
- package/dist/components/number-input/setup.component.js +16 -0
- package/dist/components/pagination/Pagination.element.d.ts +10 -0
- package/dist/components/pagination/Pagination.element.js +24 -0
- package/dist/components/pagination/index.d.ts +3 -0
- package/dist/components/pagination/index.js +1 -0
- package/dist/components/pagination/item/PaginationItem.element.d.ts +11 -0
- package/dist/components/pagination/item/PaginationItem.element.js +23 -0
- package/dist/components/pagination/item/index.d.ts +3 -0
- package/dist/components/pagination/item/index.js +3 -0
- package/dist/components/pagination/item/pagination-item.template.d.ts +8 -0
- package/dist/components/pagination/item/pagination-item.template.js +55 -0
- package/dist/components/pagination/item/setup.component.d.ts +3 -0
- package/dist/components/pagination/item/setup.component.js +22 -0
- package/dist/components/pagination/pagination.template.d.ts +11 -0
- package/dist/components/pagination/pagination.template.js +109 -0
- package/dist/components/pagination/setup.component.d.ts +3 -0
- package/dist/components/pagination/setup.component.js +25 -0
- package/dist/components/popover/Popover.element.d.ts +16 -0
- package/dist/components/popover/Popover.element.js +46 -0
- package/dist/components/popover/index.d.ts +6 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover.template.d.ts +9 -0
- package/dist/components/popover/popover.template.js +126 -0
- package/dist/components/popover/setup.component.d.ts +5 -0
- package/dist/components/popover/setup.component.js +14 -0
- package/dist/components/progress-linear/ProgressLinear.element.d.ts +10 -0
- package/dist/components/progress-linear/ProgressLinear.element.js +24 -0
- package/dist/components/progress-linear/index.d.ts +3 -0
- package/dist/components/progress-linear/index.js +1 -0
- package/dist/components/progress-linear/progress-linear.template.d.ts +8 -0
- package/dist/components/progress-linear/progress-linear.template.js +12 -0
- package/dist/components/progress-linear/setup.component.d.ts +3 -0
- package/dist/components/progress-linear/setup.component.js +14 -0
- package/dist/components/progress-spinner/ProgressSpinner.element.d.ts +10 -0
- package/dist/components/progress-spinner/ProgressSpinner.element.js +24 -0
- package/dist/components/progress-spinner/index.d.ts +3 -0
- package/dist/components/progress-spinner/index.js +1 -0
- package/dist/components/progress-spinner/progress-spinner.template.d.ts +8 -0
- package/dist/components/progress-spinner/progress-spinner.template.js +41 -0
- package/dist/components/progress-spinner/setup.component.d.ts +3 -0
- package/dist/components/progress-spinner/setup.component.js +14 -0
- package/dist/components/radio-group/RadioGroup.element.d.ts +9 -0
- package/dist/components/radio-group/RadioGroup.element.js +23 -0
- package/dist/components/radio-group/index.d.ts +5 -0
- package/dist/components/radio-group/index.js +3 -0
- package/dist/components/radio-group/item/RadioGroupItem.element.d.ts +11 -0
- package/dist/components/radio-group/item/RadioGroupItem.element.js +25 -0
- package/dist/components/radio-group/item/index.d.ts +3 -0
- package/dist/components/radio-group/item/index.js +3 -0
- package/dist/components/radio-group/item/radio-group-item.template.d.ts +8 -0
- package/dist/components/radio-group/item/radio-group-item.template.js +61 -0
- package/dist/components/radio-group/item/setup.component.d.ts +3 -0
- package/dist/components/radio-group/item/setup.component.js +22 -0
- package/dist/components/radio-group/radio-group.template.d.ts +10 -0
- package/dist/components/radio-group/radio-group.template.js +34 -0
- package/dist/components/radio-group/setup.component.d.ts +3 -0
- package/dist/components/radio-group/setup.component.js +25 -0
- package/dist/components/rating/Rating.element.d.ts +10 -0
- package/dist/components/rating/Rating.element.js +25 -0
- package/dist/components/rating/index.d.ts +3 -0
- package/dist/components/rating/index.js +1 -0
- package/dist/components/rating/rating.template.d.ts +12 -0
- package/dist/components/rating/rating.template.js +89 -0
- package/dist/components/rating/setup.component.d.ts +7 -0
- package/dist/components/rating/setup.component.js +16 -0
- package/dist/components/scroller/Scroller.element.d.ts +9 -0
- package/dist/components/scroller/Scroller.element.js +19 -0
- package/dist/components/scroller/index.d.ts +3 -0
- package/dist/components/scroller/index.js +1 -0
- package/dist/components/scroller/scroller.template.d.ts +9 -0
- package/dist/components/scroller/scroller.template.js +82 -0
- package/dist/components/scroller/setup.component.d.ts +3 -0
- package/dist/components/scroller/setup.component.js +14 -0
- package/dist/components/select/Select.element.d.ts +12 -0
- package/dist/components/select/Select.element.js +33 -0
- package/dist/components/select/group/SelectGroup.element.d.ts +9 -0
- package/dist/components/select/group/SelectGroup.element.js +17 -0
- package/dist/components/select/group/index.d.ts +3 -0
- package/dist/components/select/group/index.js +3 -0
- package/dist/components/select/group/select-group.template.d.ts +7 -0
- package/dist/components/select/group/select-group.template.js +32 -0
- package/dist/components/select/group/setup.component.d.ts +4 -0
- package/dist/components/select/group/setup.component.js +17 -0
- package/dist/components/select/index.d.ts +7 -0
- package/dist/components/select/index.js +4 -0
- package/dist/components/select/item/SelectItem.element.d.ts +11 -0
- package/dist/components/select/item/SelectItem.element.js +26 -0
- package/dist/components/select/item/index.d.ts +3 -0
- package/dist/components/select/item/index.js +3 -0
- package/dist/components/select/item/select-item.template.d.ts +9 -0
- package/dist/components/select/item/select-item.template.js +113 -0
- package/dist/components/select/item/setup.component.d.ts +3 -0
- package/dist/components/select/item/setup.component.js +22 -0
- package/dist/components/select/select.template.d.ts +12 -0
- package/dist/components/select/select.template.js +216 -0
- package/dist/components/select/setup.component.d.ts +9 -0
- package/dist/components/select/setup.component.js +26 -0
- package/dist/components/skeleton/Skeleton.element.d.ts +10 -0
- package/dist/components/skeleton/Skeleton.element.js +24 -0
- package/dist/components/skeleton/index.d.ts +3 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/skeleton/setup.component.d.ts +3 -0
- package/dist/components/skeleton/setup.component.js +14 -0
- package/dist/components/skeleton/skeleton.template.d.ts +8 -0
- package/dist/components/skeleton/skeleton.template.js +25 -0
- package/dist/components/slider/Slider.element.d.ts +11 -0
- package/dist/components/slider/Slider.element.js +25 -0
- package/dist/components/slider/index.d.ts +3 -0
- package/dist/components/slider/index.js +1 -0
- package/dist/components/slider/setup.component.d.ts +3 -0
- package/dist/components/slider/setup.component.js +16 -0
- package/dist/components/slider/slider.template.d.ts +8 -0
- package/dist/components/slider/slider.template.js +149 -0
- package/dist/components/stylable/index.d.ts +1 -0
- package/dist/components/stylable/index.js +1 -0
- package/dist/components/stylable/setup.component.d.ts +3 -0
- package/dist/components/stylable/setup.component.js +2 -0
- package/dist/components/switch/Switch.element.d.ts +9 -0
- package/dist/components/switch/Switch.element.js +24 -0
- package/dist/components/switch/index.d.ts +3 -0
- package/dist/components/switch/index.js +1 -0
- package/dist/components/switch/setup.component.d.ts +7 -0
- package/dist/components/switch/setup.component.js +16 -0
- package/dist/components/switch/switch.template.d.ts +9 -0
- package/dist/components/switch/switch.template.js +63 -0
- package/dist/components/table/Table.element.d.ts +11 -0
- package/dist/components/table/Table.element.js +29 -0
- package/dist/components/table/column/TableColumn.element.d.ts +10 -0
- package/dist/components/table/column/TableColumn.element.js +22 -0
- package/dist/components/table/column/index.d.ts +3 -0
- package/dist/components/table/column/index.js +3 -0
- package/dist/components/table/column/setup.component.d.ts +4 -0
- package/dist/components/table/column/setup.component.js +15 -0
- package/dist/components/table/column/table-column.template.d.ts +8 -0
- package/dist/components/table/column/table-column.template.js +123 -0
- package/dist/components/table/index.d.ts +7 -0
- package/dist/components/table/index.js +4 -0
- package/dist/components/table/row/TableRow.element.d.ts +10 -0
- package/dist/components/table/row/TableRow.element.js +19 -0
- package/dist/components/table/row/index.d.ts +3 -0
- package/dist/components/table/row/index.js +3 -0
- package/dist/components/table/row/setup.component.d.ts +3 -0
- package/dist/components/table/row/setup.component.js +22 -0
- package/dist/components/table/row/table-row.template.d.ts +8 -0
- package/dist/components/table/row/table-row.template.js +98 -0
- package/dist/components/table/setup.component.d.ts +3 -0
- package/dist/components/table/setup.component.js +26 -0
- package/dist/components/table/table.template.d.ts +12 -0
- package/dist/components/table/table.template.js +164 -0
- package/dist/components/tabs/Tabs.element.d.ts +10 -0
- package/dist/components/tabs/Tabs.element.js +32 -0
- package/dist/components/tabs/content/TabsContent.element.d.ts +10 -0
- package/dist/components/tabs/content/TabsContent.element.js +24 -0
- package/dist/components/tabs/content/index.d.ts +3 -0
- package/dist/components/tabs/content/index.js +3 -0
- package/dist/components/tabs/content/setup.component.d.ts +3 -0
- package/dist/components/tabs/content/setup.component.js +22 -0
- package/dist/components/tabs/content/tabs-content.template.d.ts +4 -0
- package/dist/components/tabs/content/tabs-content.template.js +15 -0
- package/dist/components/tabs/index.d.ts +7 -0
- package/dist/components/tabs/index.js +4 -0
- package/dist/components/tabs/item/TabsItem.element.d.ts +10 -0
- package/dist/components/tabs/item/TabsItem.element.js +25 -0
- package/dist/components/tabs/item/index.d.ts +3 -0
- package/dist/components/tabs/item/index.js +3 -0
- package/dist/components/tabs/item/setup.component.d.ts +3 -0
- package/dist/components/tabs/item/setup.component.js +22 -0
- package/dist/components/tabs/item/tabs-item.template.d.ts +8 -0
- package/dist/components/tabs/item/tabs-item.template.js +113 -0
- package/dist/components/tabs/setup.component.d.ts +3 -0
- package/dist/components/tabs/setup.component.js +26 -0
- package/dist/components/tabs/tabs.template.d.ts +12 -0
- package/dist/components/tabs/tabs.template.js +76 -0
- package/dist/components/tags/Tags.element.d.ts +10 -0
- package/dist/components/tags/Tags.element.js +24 -0
- package/dist/components/tags/index.d.ts +5 -0
- package/dist/components/tags/index.js +3 -0
- package/dist/components/tags/item/TagsItem.element.d.ts +11 -0
- package/dist/components/tags/item/TagsItem.element.js +26 -0
- package/dist/components/tags/item/index.d.ts +3 -0
- package/dist/components/tags/item/index.js +3 -0
- package/dist/components/tags/item/setup.component.d.ts +3 -0
- package/dist/components/tags/item/setup.component.js +22 -0
- package/dist/components/tags/item/tags-item.template.d.ts +9 -0
- package/dist/components/tags/item/tags-item.template.js +115 -0
- package/dist/components/tags/setup.component.d.ts +3 -0
- package/dist/components/tags/setup.component.js +25 -0
- package/dist/components/tags/tags.template.d.ts +10 -0
- package/dist/components/tags/tags.template.js +43 -0
- package/dist/components/textable/index.d.ts +1 -0
- package/dist/components/textable/index.js +1 -0
- package/dist/components/textable/setup.component.d.ts +3 -0
- package/dist/components/textable/setup.component.js +2 -0
- package/dist/components/textarea/Textarea.element.d.ts +9 -0
- package/dist/components/textarea/Textarea.element.js +24 -0
- package/dist/components/textarea/index.d.ts +3 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/setup.component.d.ts +7 -0
- package/dist/components/textarea/setup.component.js +16 -0
- package/dist/components/textarea/textarea.template.d.ts +9 -0
- package/dist/components/textarea/textarea.template.js +81 -0
- package/dist/components/toasts/Toasts.element.d.ts +11 -0
- package/dist/components/toasts/Toasts.element.js +29 -0
- package/dist/components/toasts/index.d.ts +5 -0
- package/dist/components/toasts/index.js +3 -0
- package/dist/components/toasts/item/ToastsItem.element.d.ts +11 -0
- package/dist/components/toasts/item/ToastsItem.element.js +19 -0
- package/dist/components/toasts/item/index.d.ts +3 -0
- package/dist/components/toasts/item/index.js +3 -0
- package/dist/components/toasts/item/setup.component.d.ts +3 -0
- package/dist/components/toasts/item/setup.component.js +22 -0
- package/dist/components/toasts/item/toasts-item.template.d.ts +9 -0
- package/dist/components/toasts/item/toasts-item.template.js +133 -0
- package/dist/components/toasts/setup.component.d.ts +3 -0
- package/dist/components/toasts/setup.component.js +26 -0
- package/dist/components/toasts/toasts.template.d.ts +11 -0
- package/dist/components/toasts/toasts.template.js +53 -0
- package/dist/components/tooltip/Tooltip.element.d.ts +10 -0
- package/dist/components/tooltip/Tooltip.element.js +24 -0
- package/dist/components/tooltip/index.d.ts +3 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tooltip/setup.component.d.ts +6 -0
- package/dist/components/tooltip/setup.component.js +14 -0
- package/dist/components/tooltip/tooltip.template.d.ts +11 -0
- package/dist/components/tooltip/tooltip.template.js +68 -0
- package/dist/components/value-control/index.d.ts +1 -0
- package/dist/components/value-control/index.js +1 -0
- package/dist/components/value-control/setup.component.d.ts +4 -0
- package/dist/components/value-control/setup.component.js +2 -0
- package/dist/components/virtual/Virtual.element.d.ts +10 -0
- package/dist/components/virtual/Virtual.element.js +20 -0
- package/dist/components/virtual/index.d.ts +3 -0
- package/dist/components/virtual/index.js +1 -0
- package/dist/components/virtual/setup.component.d.ts +4 -0
- package/dist/components/virtual/setup.component.js +17 -0
- package/dist/components/virtual/virtual.template.d.ts +4 -0
- package/dist/components/virtual/virtual.template.js +14 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +65 -0
- package/package.json +200 -4
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
//#region src/adapter/runtime/waiting.ts
|
|
2
|
+
/**
|
|
3
|
+
* Ожидание: подключение, пришедшее, пока подключается другой элемент, идёт
|
|
4
|
+
* сразу после него, в порядке прихода. AGENTS.md (Web Components), «Ожидание».
|
|
5
|
+
*/
|
|
6
|
+
var depth = 0;
|
|
7
|
+
/** Разбор очереди идёт: подключение из неё очередь не разбирает — его пришедшее заберёт тот же цикл. */
|
|
8
|
+
var draining = false;
|
|
9
|
+
var waiting = [];
|
|
10
|
+
function isConnecting() {
|
|
11
|
+
return depth > 0;
|
|
12
|
+
}
|
|
13
|
+
/** Подключение: пришедшее во время него ждёт конца внешнего подключения. */
|
|
14
|
+
function connecting(run) {
|
|
15
|
+
depth += 1;
|
|
16
|
+
try {
|
|
17
|
+
run();
|
|
18
|
+
} finally {
|
|
19
|
+
depth -= 1;
|
|
20
|
+
if (depth === 0 && !draining) drainAll();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function wait(resume) {
|
|
24
|
+
waiting.push(resume);
|
|
25
|
+
}
|
|
26
|
+
/** Один разбор на всё подключение: вложенный разбор растил бы стек на каждый ждущий элемент. */
|
|
27
|
+
function drainAll() {
|
|
28
|
+
draining = true;
|
|
29
|
+
try {
|
|
30
|
+
runAll(drain());
|
|
31
|
+
} finally {
|
|
32
|
+
draining = false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function* drain() {
|
|
36
|
+
for (let next = waiting.shift(); next; next = waiting.shift()) yield next;
|
|
37
|
+
}
|
|
38
|
+
/** Выполнить всё: упавшая задача остальных не держит, первая ошибка уходит дальше. */
|
|
39
|
+
function runAll(tasks) {
|
|
40
|
+
let failed = false;
|
|
41
|
+
let failure;
|
|
42
|
+
for (const task of tasks) try {
|
|
43
|
+
task();
|
|
44
|
+
} catch (error) {
|
|
45
|
+
if (!failed) {
|
|
46
|
+
failed = true;
|
|
47
|
+
failure = error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (failed) throw failure;
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { connecting, isConnecting, runAll, wait };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { bind } from './types';
|
|
2
|
+
export { ownerAttributes, ownerClasses, ownerStyles } from './owner';
|
|
3
|
+
export { lend, lendMark, lendBefore, type TLendAt } from './lend';
|
|
4
|
+
export { createDetail, createItem, lendSamples, lendTemplates, patch, sampleOf, type TDetailOptions, type TPartClass, type TItemSlots, } from './parts';
|
|
5
|
+
export { TKeyedLoop } from './loop';
|
|
6
|
+
export type { ITemplate, ITemplateBinding, ITemplateContext, TSlotTarget, TSlotTargets, TTemplateParts, } from './types';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { bind } from "./types.js";
|
|
2
|
+
import { ownerAttributes, ownerClasses, ownerStyles } from "./owner.js";
|
|
3
|
+
import { lend, lendBefore, lendMark } from "./lend.js";
|
|
4
|
+
import { createDetail, createItem, lendSamples, lendTemplates, patch, sampleOf } from "./parts.js";
|
|
5
|
+
import { TKeyedLoop } from "./loop.js";
|
|
6
|
+
export { TKeyedLoop, bind, createDetail, createItem, lend, lendBefore, lendMark, lendSamples, lendTemplates, ownerAttributes, ownerClasses, ownerStyles, patch, sampleOf };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Разметка шаблона владельца — в слот детали или элемента из данных. Деталь
|
|
3
|
+
* собирается после владельца и раскладывает свет сама, поэтому владелец не
|
|
4
|
+
* лезет в её структуру, а отдаёт узлы светом с назначенным слотом. AGENTS.md
|
|
5
|
+
* (Web Components), «Свет детали».
|
|
6
|
+
*/
|
|
7
|
+
export type TLendAt = 'end' | 'start';
|
|
8
|
+
/** Узел или все дети фрагмента — в слот `slot` детали, последними или первыми. */
|
|
9
|
+
export declare function lend(detail: Element, slot: string, content: Node, at?: TLendAt): void;
|
|
10
|
+
/** Метка — слот детали задан и пустым, узлы владельца встают перед ней (`lendBefore`). */
|
|
11
|
+
export declare function lendMark(detail: Element, slot: string): Comment;
|
|
12
|
+
/** Перед меткой, в её слот — одним вызовом и до сборки детали, и после. */
|
|
13
|
+
export declare function lendBefore(mark: Comment, node: Node): void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assignSlot, markSlot, slotOfMark } from "../runtime/marks.js";
|
|
2
|
+
//#region src/adapter/template/lend.ts
|
|
3
|
+
/**
|
|
4
|
+
* Разметка шаблона владельца — в слот детали или элемента из данных. Деталь
|
|
5
|
+
* собирается после владельца и раскладывает свет сама, поэтому владелец не
|
|
6
|
+
* лезет в её структуру, а отдаёт узлы светом с назначенным слотом. AGENTS.md
|
|
7
|
+
* (Web Components), «Свет детали».
|
|
8
|
+
*/
|
|
9
|
+
/** Узел или все дети фрагмента — в слот `slot` детали, последними или первыми. */
|
|
10
|
+
function lend(detail, slot, content, at = "end") {
|
|
11
|
+
const nodes = content instanceof DocumentFragment ? [...content.childNodes] : [content];
|
|
12
|
+
for (const node of nodes) assignSlot(node, slot);
|
|
13
|
+
if (at === "start") detail.prepend(...nodes);
|
|
14
|
+
else detail.append(...nodes);
|
|
15
|
+
}
|
|
16
|
+
/** Метка — слот детали задан и пустым, узлы владельца встают перед ней (`lendBefore`). */
|
|
17
|
+
function lendMark(detail, slot) {
|
|
18
|
+
const mark = detail.ownerDocument.createComment("");
|
|
19
|
+
markSlot(mark, slot);
|
|
20
|
+
lend(detail, slot, mark);
|
|
21
|
+
return mark;
|
|
22
|
+
}
|
|
23
|
+
/** Перед меткой, в её слот — одним вызовом и до сборки детали, и после. */
|
|
24
|
+
function lendBefore(mark, node) {
|
|
25
|
+
const slot = slotOfMark(mark);
|
|
26
|
+
if (slot !== void 0) assignSlot(node, slot);
|
|
27
|
+
mark.parentNode?.insertBefore(node, mark);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { lend, lendBefore, lendMark };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Петля по ключу — элементы коллекции из данных, как `v-for` с `:key`: записи
|
|
3
|
+
* новые на каждую смену, а элемент записи тот же, пока жив её ключ. Элемент
|
|
4
|
+
* не на своём месте едет переносом силами базы и не пересобирается. Свои
|
|
5
|
+
* элементы петля держит подряд, перед `end` (нет его — в конце узла).
|
|
6
|
+
*/
|
|
7
|
+
export declare class TKeyedLoop<TRecord, TKey, TElement extends Element = Element> {
|
|
8
|
+
private readonly _parent;
|
|
9
|
+
private readonly _end;
|
|
10
|
+
private readonly _keyOf;
|
|
11
|
+
private _drawn;
|
|
12
|
+
constructor(_parent: Node, _end: Node | null, _keyOf: (record: TRecord) => TKey);
|
|
13
|
+
elementOf(record: TRecord): TElement | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Новым ключам — `create`, живым — их элементы. `update` отдаёт то, что
|
|
16
|
+
* элемент берёт из записи, а не из инстанса: стиль распорки списка.
|
|
17
|
+
*/
|
|
18
|
+
draw(records: Iterable<TRecord>, create: (record: TRecord) => TElement, update?: (element: TElement, record: TRecord) => void): void;
|
|
19
|
+
/** Первое место — перед первым своим элементом в узле; стоящий на месте не двигается. */
|
|
20
|
+
private _order;
|
|
21
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { relocate } from "../runtime/relocation.js";
|
|
2
|
+
//#region src/adapter/template/loop.ts
|
|
3
|
+
/**
|
|
4
|
+
* Петля по ключу — элементы коллекции из данных, как `v-for` с `:key`: записи
|
|
5
|
+
* новые на каждую смену, а элемент записи тот же, пока жив её ключ. Элемент
|
|
6
|
+
* не на своём месте едет переносом силами базы и не пересобирается. Свои
|
|
7
|
+
* элементы петля держит подряд, перед `end` (нет его — в конце узла).
|
|
8
|
+
*/
|
|
9
|
+
var TKeyedLoop = class {
|
|
10
|
+
_parent;
|
|
11
|
+
_end;
|
|
12
|
+
_keyOf;
|
|
13
|
+
_drawn = /* @__PURE__ */ new Map();
|
|
14
|
+
constructor(_parent, _end, _keyOf) {
|
|
15
|
+
this._parent = _parent;
|
|
16
|
+
this._end = _end;
|
|
17
|
+
this._keyOf = _keyOf;
|
|
18
|
+
}
|
|
19
|
+
elementOf(record) {
|
|
20
|
+
return this._drawn.get(this._keyOf(record));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Новым ключам — `create`, живым — их элементы. `update` отдаёт то, что
|
|
24
|
+
* элемент берёт из записи, а не из инстанса: стиль распорки списка.
|
|
25
|
+
*/
|
|
26
|
+
draw(records, create, update) {
|
|
27
|
+
const next = /* @__PURE__ */ new Map();
|
|
28
|
+
for (const record of records) {
|
|
29
|
+
const key = this._keyOf(record);
|
|
30
|
+
if (next.has(key)) continue;
|
|
31
|
+
const drawn = this._drawn.get(key);
|
|
32
|
+
if (drawn) update?.(drawn, record);
|
|
33
|
+
next.set(key, drawn ?? create(record));
|
|
34
|
+
}
|
|
35
|
+
for (const [key, element] of this._drawn) if (!next.has(key)) element.remove();
|
|
36
|
+
this._drawn = next;
|
|
37
|
+
this._order([...next.values()]);
|
|
38
|
+
}
|
|
39
|
+
/** Первое место — перед первым своим элементом в узле; стоящий на месте не двигается. */
|
|
40
|
+
_order(elements) {
|
|
41
|
+
const parent = this._parent;
|
|
42
|
+
const own = new Set(elements);
|
|
43
|
+
let place = this._end;
|
|
44
|
+
for (let node = parent.firstChild; node && node !== this._end; node = node.nextSibling) if (own.has(node)) {
|
|
45
|
+
place = node;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
for (const element of elements) {
|
|
49
|
+
if (element === place) {
|
|
50
|
+
place = element.nextSibling;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (element.parentNode === parent) relocate([element], () => parent.insertBefore(element, place));
|
|
54
|
+
else parent.insertBefore(element, place);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
//#endregion
|
|
59
|
+
export { TKeyedLoop };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Наборы, классы и стиль значением на узлах шаблона — тем же правилом, что
|
|
3
|
+
* база на корне (`runtime/paint.ts`), слоем владельца: когда узел — корень
|
|
4
|
+
* вложенного компонента, написанное владельцем лежит поверх того, что
|
|
5
|
+
* компонент пишет себе сам. Каждый вызов заменяет слой владельца целиком,
|
|
6
|
+
* поэтому несколько наборов на один узел кладутся одним вызовом.
|
|
7
|
+
*/
|
|
8
|
+
import type { TAttributesMap } from '@soxa-ui/core';
|
|
9
|
+
/** У детали с полем набор уходит на поле: `aria` Select — на `<input>` детали Input. */
|
|
10
|
+
export declare function ownerAttributes(element: Element, set: TAttributesMap | undefined): void;
|
|
11
|
+
/** Классы части без своего экземпляра: панели меню и подменю. */
|
|
12
|
+
export declare function ownerClasses(element: HTMLElement, classes: readonly string[] | undefined): void;
|
|
13
|
+
export declare function ownerStyles(element: HTMLElement, style: Readonly<Record<string, string | number>> | undefined): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TElementAttributes, TPaint, stylesOf } from "../runtime/paint.js";
|
|
2
|
+
//#region src/adapter/template/owner.ts
|
|
3
|
+
/** У детали с полем набор уходит на поле: `aria` Select — на `<input>` детали Input. */
|
|
4
|
+
function ownerAttributes(element, set) {
|
|
5
|
+
TElementAttributes.of(element).set("owner", set ?? {});
|
|
6
|
+
}
|
|
7
|
+
/** Классы части без своего экземпляра: панели меню и подменю. */
|
|
8
|
+
function ownerClasses(element, classes) {
|
|
9
|
+
TPaint.of(element).classes("owner", classes ?? []);
|
|
10
|
+
}
|
|
11
|
+
function ownerStyles(element, style) {
|
|
12
|
+
TPaint.of(element).styles("owner", stylesOf(style));
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { ownerAttributes, ownerClasses, ownerStyles };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Элементы, которые строит шаблон: деталь разметки (кнопка очистки, строка
|
|
3
|
+
* таба) и элемент коллекции из данных. Оба — разметка владельца, их события
|
|
4
|
+
* не всплывают. Деталь несёт имя места (`embedded`), обязательное в типе:
|
|
5
|
+
* сторожа разметки, как у остальных адаптеров, у кода шаблона нет. AGENTS.md
|
|
6
|
+
* (Web Components), «Разметка владельца».
|
|
7
|
+
*/
|
|
8
|
+
import type { ITemplateContext } from './types';
|
|
9
|
+
/** Класс элемента: по нему шаблон находит имя и тег, под которыми тот зарегистрирован. */
|
|
10
|
+
export type TPartClass<T extends HTMLElement> = {
|
|
11
|
+
[Symbol.hasInstance](node: unknown): node is T;
|
|
12
|
+
};
|
|
13
|
+
export type TDetailOptions = {
|
|
14
|
+
/** Имя места в разметке владельца: `input.clear`. */
|
|
15
|
+
readonly embedded: string;
|
|
16
|
+
/** Статика тега детали: `<button>` без `type="button"` отправил бы форму. */
|
|
17
|
+
readonly attributes?: Readonly<Record<string, string>>;
|
|
18
|
+
};
|
|
19
|
+
/** Слот владельца (`item-leading`) → слот элемента (`leading`). */
|
|
20
|
+
export type TItemSlots = Readonly<Record<string, string>>;
|
|
21
|
+
/** Элемент коллекции из данных. Незарегистрированная часть — ошибка, а не обычный узел. */
|
|
22
|
+
export declare function createItem<T extends HTMLElement>(owner: Document, part: TPartClass<T>): T;
|
|
23
|
+
export declare function createDetail<T extends HTMLElement>(owner: Document, part: TPartClass<T>, { embedded, attributes }: TDetailOptions): T;
|
|
24
|
+
/** Копия образца с содержимым; пустой `<template>` — как не заданный. */
|
|
25
|
+
export declare function sampleOf(ctx: Pick<ITemplateContext, 'sample'>, name: string): DocumentFragment | null;
|
|
26
|
+
/** Копии образцов `item-*` — в слоты элемента из данных; нет образца — элемент рисует своё. */
|
|
27
|
+
export declare function lendSamples(ctx: Pick<ITemplateContext, 'sample'>, element: Element, slots: TItemSlots): void;
|
|
28
|
+
/**
|
|
29
|
+
* Копии образцов — в `<template>` слотов элемента, который сам копирует их
|
|
30
|
+
* дальше (`cell` строки таблицы): инертная копия не подключается вне ячеек.
|
|
31
|
+
*/
|
|
32
|
+
export declare function lendTemplates(ctx: Pick<ITemplateContext, 'sample'>, element: Element, slots: TItemSlots): void;
|
|
33
|
+
/**
|
|
34
|
+
* Свойства элемента — только сменившиеся: каждая запись идёт через связку, а
|
|
35
|
+
* у нативного свойства (`disabled` кнопки) — ещё и через атрибут.
|
|
36
|
+
*/
|
|
37
|
+
export declare function patch<T extends object, K extends keyof T>(target: T, values: Pick<T, K>): void;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { markOwnerMarkup } from "../runtime/marks.js";
|
|
2
|
+
import { lend } from "./lend.js";
|
|
3
|
+
import { isContent } from "../runtime/content.js";
|
|
4
|
+
import { registrationOf } from "../runtime/defineElement.js";
|
|
5
|
+
//#region src/adapter/template/parts.ts
|
|
6
|
+
/**
|
|
7
|
+
* Элементы, которые строит шаблон: деталь разметки (кнопка очистки, строка
|
|
8
|
+
* таба) и элемент коллекции из данных. Оба — разметка владельца, их события
|
|
9
|
+
* не всплывают. Деталь несёт имя места (`embedded`), обязательное в типе:
|
|
10
|
+
* сторожа разметки, как у остальных адаптеров, у кода шаблона нет. AGENTS.md
|
|
11
|
+
* (Web Components), «Разметка владельца».
|
|
12
|
+
*/
|
|
13
|
+
/** Элемент коллекции из данных. Незарегистрированная часть — ошибка, а не обычный узел. */
|
|
14
|
+
function createItem(owner, part) {
|
|
15
|
+
const registration = registrationOf(part);
|
|
16
|
+
if (!registration) throw new Error("[soxa] Класс элемента не зарегистрирован: модуль элемента не загружен");
|
|
17
|
+
const element = owner.createElement(registration.tag, { is: registration.name });
|
|
18
|
+
if (!(element instanceof part)) throw new Error(`[soxa] <${registration.tag} is="${registration.name}"> не элемент своего класса`);
|
|
19
|
+
markOwnerMarkup(element);
|
|
20
|
+
return element;
|
|
21
|
+
}
|
|
22
|
+
function createDetail(owner, part, { embedded, attributes = {} }) {
|
|
23
|
+
const element = createItem(owner, part);
|
|
24
|
+
element.setAttribute("embedded", embedded);
|
|
25
|
+
for (const [name, value] of Object.entries(attributes)) element.setAttribute(name, value);
|
|
26
|
+
return element;
|
|
27
|
+
}
|
|
28
|
+
/** Копия образца с содержимым; пустой `<template>` — как не заданный. */
|
|
29
|
+
function sampleOf(ctx, name) {
|
|
30
|
+
const copy = ctx.sample(name);
|
|
31
|
+
return copy && Array.from(copy.childNodes).some(isContent) ? copy : null;
|
|
32
|
+
}
|
|
33
|
+
/** Копии образцов `item-*` — в слоты элемента из данных; нет образца — элемент рисует своё. */
|
|
34
|
+
function lendSamples(ctx, element, slots) {
|
|
35
|
+
for (const [from, to] of Object.entries(slots)) {
|
|
36
|
+
const copy = ctx.sample(from);
|
|
37
|
+
if (copy) lend(element, to, copy);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Копии образцов — в `<template>` слотов элемента, который сам копирует их
|
|
42
|
+
* дальше (`cell` строки таблицы): инертная копия не подключается вне ячеек.
|
|
43
|
+
*/
|
|
44
|
+
function lendTemplates(ctx, element, slots) {
|
|
45
|
+
for (const [from, to] of Object.entries(slots)) {
|
|
46
|
+
const copy = sampleOf(ctx, from);
|
|
47
|
+
if (!copy) continue;
|
|
48
|
+
const template = element.ownerDocument.createElement("template");
|
|
49
|
+
template.content.append(copy);
|
|
50
|
+
lend(element, to, template);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Свойства элемента — только сменившиеся: каждая запись идёт через связку, а
|
|
55
|
+
* у нативного свойства (`disabled` кнопки) — ещё и через атрибут.
|
|
56
|
+
*/
|
|
57
|
+
function patch(target, values) {
|
|
58
|
+
for (const key in values) if (target[key] !== values[key]) target[key] = values[key];
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { createDetail, createItem, lendSamples, lendTemplates, patch, sampleOf };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Контракт шаблона: фреймворка нет, и шаблон — описание структуры плюс
|
|
3
|
+
* привязки «проп → DOM-операция». Привязка знает свои пропы, и на флаше
|
|
4
|
+
* применяются только те, чьи пропы сменились. То, что ядро пишет на корень,
|
|
5
|
+
* раскладывает база, шаблону остаётся своё. AGENTS.md (Web Components),
|
|
6
|
+
* «Шаблон».
|
|
7
|
+
*/
|
|
8
|
+
import type { TBindingState } from '../runtime/useAdapter';
|
|
9
|
+
/**
|
|
10
|
+
* Куда содержимое слота: внутрь узла, перед ним (слоты-соседи без обёрток,
|
|
11
|
+
* которых нет у остальных адаптеров) или образцом — копию отдаёт `sample`.
|
|
12
|
+
* `slot` — точка ведёт в слот детали шаблона: узлы назначаются ему.
|
|
13
|
+
*/
|
|
14
|
+
export type TSlotTarget = {
|
|
15
|
+
mode: 'append';
|
|
16
|
+
node: HTMLElement;
|
|
17
|
+
slot?: string;
|
|
18
|
+
} | {
|
|
19
|
+
mode: 'before';
|
|
20
|
+
node: Node;
|
|
21
|
+
slot?: string;
|
|
22
|
+
} | {
|
|
23
|
+
mode: 'sample';
|
|
24
|
+
};
|
|
25
|
+
/** Порядок ключей значим: в одну точку `append` раньше встаёт слот, объявленный раньше. */
|
|
26
|
+
export type TSlotTargets = Record<string, TSlotTarget>;
|
|
27
|
+
export type TTemplateParts = {
|
|
28
|
+
readonly slots: TSlotTargets;
|
|
29
|
+
/** Поле корня (`control` в описании корня): на него едет статика разметки элемента. */
|
|
30
|
+
readonly control?: HTMLElement;
|
|
31
|
+
/** Корень внутри элемента-обёртки: `table` в окне, регион тостов. */
|
|
32
|
+
readonly root?: HTMLElement;
|
|
33
|
+
/** Спутник корня слоя — подложка: стоит перед корнем, ездит и прячется с ним. */
|
|
34
|
+
readonly companion?: HTMLElement;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Живой вид элемента: `state`, `ctrl` и `facade` читаются в момент обращения,
|
|
38
|
+
* и обработчик, заведённый при построении, после перестановки зовёт новую
|
|
39
|
+
* связку.
|
|
40
|
+
*/
|
|
41
|
+
export interface ITemplateContext<TInstance = object, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> {
|
|
42
|
+
/** Сам элемент; у обёртки — узел вокруг корня. */
|
|
43
|
+
readonly root: HTMLElement;
|
|
44
|
+
/** Узел слота по умолчанию. */
|
|
45
|
+
readonly content: HTMLElement;
|
|
46
|
+
readonly state: TBindingState<TInstance, TFacade, TOutputs, TOwnerFacade>;
|
|
47
|
+
readonly ctrl: TInstance | undefined;
|
|
48
|
+
readonly facade: TFacade | undefined;
|
|
49
|
+
hasSlot(name: string): boolean;
|
|
50
|
+
/** Узлы слота потребителя, а не копии: набор триггера ложится на них на месте. */
|
|
51
|
+
slotted(name: string): readonly ChildNode[];
|
|
52
|
+
sample(name: string): DocumentFragment | null;
|
|
53
|
+
/** Слот, который выводит привязка: снятое уходит из документа. */
|
|
54
|
+
showSlot(name: string, shown: boolean): void;
|
|
55
|
+
}
|
|
56
|
+
export interface ITemplateBinding<TInstance = object, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> {
|
|
57
|
+
props: readonly string[];
|
|
58
|
+
apply(ctx: ITemplateContext<TInstance, TFacade, TOutputs, TOwnerFacade>): void;
|
|
59
|
+
}
|
|
60
|
+
export interface ITemplate<TInstance = object, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> {
|
|
61
|
+
/**
|
|
62
|
+
* Структура в корне — один раз, при первом подключении. Заданные слоты уже
|
|
63
|
+
* известны (`ctx.hasSlot`): обёртку слота шаблон строит, только когда в неё
|
|
64
|
+
* есть что положить.
|
|
65
|
+
*/
|
|
66
|
+
create(root: HTMLElement, ctx: ITemplateContext<TInstance, TFacade, TOutputs, TOwnerFacade>): TTemplateParts;
|
|
67
|
+
bindings: readonly ITemplateBinding<TInstance, TFacade, TOutputs, TOwnerFacade>[];
|
|
68
|
+
}
|
|
69
|
+
export declare function bind<TInstance, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown>(props: string | readonly string[], apply: (ctx: ITemplateContext<TInstance, TFacade, TOutputs, TOwnerFacade>) => void): ITemplateBinding<TInstance, TFacade, TOutputs, TOwnerFacade>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { toastsOf, isToastRender, type TToastRender } from './toastsOf';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { isToastRender, toastsOf } from "./toastsOf.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IToastsApi, IToastsItem } from '@soxa-ui/core';
|
|
2
|
+
/** Своё содержимое тоста: функция получает тост и отдаёт узел. Ядро держит его как `unknown`. */
|
|
3
|
+
export type TToastRender = (toast: IToastsItem) => Node;
|
|
4
|
+
/** Проверкой, а не приведением; что функция отдаёт узел — контракт API. */
|
|
5
|
+
export declare function isToastRender(value: unknown): value is TToastRender;
|
|
6
|
+
/**
|
|
7
|
+
* API тостов ближайшего `<so-toasts>` выше узла, как `useToasts()` у
|
|
8
|
+
* фреймворков: контекста компонента у платформы нет, и место называет узел.
|
|
9
|
+
* Узел в увезённой панели ищет от её якоря. Менеджера нет — ошибка: молчаливый
|
|
10
|
+
* `show` спрятал бы забытый `<so-toasts>`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function toastsOf(node: Element): IToastsApi<TToastRender>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createWebcElevator } from "../elevator/factory.js";
|
|
2
|
+
import "../elevator/index.js";
|
|
3
|
+
import { TOASTS_ELEVATOR } from "@soxa-ui/setup";
|
|
4
|
+
//#region src/adapter/toasts/toastsOf.ts
|
|
5
|
+
/** Проверкой, а не приведением; что функция отдаёт узел — контракт API. */
|
|
6
|
+
function isToastRender(value) {
|
|
7
|
+
return typeof value === "function";
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* API тостов ближайшего `<so-toasts>` выше узла, как `useToasts()` у
|
|
11
|
+
* фреймворков: контекста компонента у платформы нет, и место называет узел.
|
|
12
|
+
* Узел в увезённой панели ищет от её якоря. Менеджера нет — ошибка: молчаливый
|
|
13
|
+
* `show` спрятал бы забытый `<so-toasts>`.
|
|
14
|
+
*/
|
|
15
|
+
function toastsOf(node) {
|
|
16
|
+
const api = createWebcElevator(node)(TOASTS_ELEVATOR).up();
|
|
17
|
+
if (!api) throw new Error("toastsOf(): выше узла нет <so-toasts>. Оберните приложение менеджером и зовите toastsOf у узла внутри него: <so-toasts>…</so-toasts>");
|
|
18
|
+
return api;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { isToastRender, toastsOf };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<div is="so-accordion">` — набор раскрывающихся секций; модуль регистрирует
|
|
3
|
+
* и секцию. docs/architecture.md, Layer 8d, «Коллекция».
|
|
4
|
+
*/
|
|
5
|
+
import { AccordionDescriptor } from '@soxa-ui/setup';
|
|
6
|
+
import type { IAccordion, TAccordionCollectionFacade } from '@soxa-ui/core';
|
|
7
|
+
import type { TElementClassOf, TElementType } from '../../adapter';
|
|
8
|
+
export declare const TAccordionElement: TElementClassOf<typeof HTMLDivElement, typeof AccordionDescriptor, IAccordion, TAccordionCollectionFacade>;
|
|
9
|
+
export type TAccordionElementProps = TElementType<typeof TAccordionElement>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineElement } from "../../adapter/runtime/defineElement.js";
|
|
2
|
+
import { ElementBase } from "../../adapter/runtime/element.base.js";
|
|
3
|
+
import "../../adapter/index.js";
|
|
4
|
+
import { TAccordionItemElement } from "./item/AccordionItem.element.js";
|
|
5
|
+
import "./item/index.js";
|
|
6
|
+
import { accordionTemplate } from "./accordion.template.js";
|
|
7
|
+
import { setupAccordion } from "./setup.component.js";
|
|
8
|
+
import { AccordionCollectionDescriptor, AccordionDescriptor } from "@soxa-ui/setup";
|
|
9
|
+
//#region src/components/accordion/Accordion.element.ts
|
|
10
|
+
/**
|
|
11
|
+
* `<div is="so-accordion">` — набор раскрывающихся секций; модуль регистрирует
|
|
12
|
+
* и секцию. docs/architecture.md, Layer 8d, «Коллекция».
|
|
13
|
+
*/
|
|
14
|
+
var TAccordionElement = ElementBase(HTMLDivElement, {
|
|
15
|
+
descriptor: AccordionDescriptor,
|
|
16
|
+
facade: AccordionCollectionDescriptor,
|
|
17
|
+
template: accordionTemplate,
|
|
18
|
+
root: {
|
|
19
|
+
strategy: "host",
|
|
20
|
+
sets: ["attrs"]
|
|
21
|
+
},
|
|
22
|
+
setup: setupAccordion
|
|
23
|
+
});
|
|
24
|
+
defineElement("so-accordion", TAccordionElement, "div");
|
|
25
|
+
defineElement("so-accordion-item", TAccordionItemElement, "div");
|
|
26
|
+
//#endregion
|
|
27
|
+
export { TAccordionElement };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Шаблон Accordion: своей разметки нет, только секции; без секций разметки —
|
|
3
|
+
* секции из данных петлёй по `shown` с копиями образцов `item-*`.
|
|
4
|
+
* docs/architecture.md, Layer 8d, «Коллекция».
|
|
5
|
+
*/
|
|
6
|
+
import type { IAccordion, TAccordionCollectionFacade } from '@soxa-ui/core';
|
|
7
|
+
import { type ITemplate, type TItemSlots } from '../../adapter';
|
|
8
|
+
/** Слот аккордеона → слот секции; сверяет `setup/__tests__/item-slots.spec.ts`. */
|
|
9
|
+
export declare const ACCORDION_ITEM_SLOTS: TItemSlots;
|
|
10
|
+
export declare const accordionTemplate: ITemplate<IAccordion, TAccordionCollectionFacade>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { bind } from "../../adapter/template/types.js";
|
|
2
|
+
import { createItem, lendSamples } from "../../adapter/template/parts.js";
|
|
3
|
+
import { TKeyedLoop } from "../../adapter/template/loop.js";
|
|
4
|
+
import "../../adapter/index.js";
|
|
5
|
+
import { TAccordionItemElement } from "./item/AccordionItem.element.js";
|
|
6
|
+
import "./item/index.js";
|
|
7
|
+
//#region src/components/accordion/accordion.template.ts
|
|
8
|
+
/** Слот аккордеона → слот секции; сверяет `setup/__tests__/item-slots.spec.ts`. */
|
|
9
|
+
var ACCORDION_ITEM_SLOTS = {
|
|
10
|
+
"item-arrow-icon": "arrow-icon",
|
|
11
|
+
"item-leading": "leading",
|
|
12
|
+
item: "header",
|
|
13
|
+
"item-trailing": "trailing",
|
|
14
|
+
"item-content": "default"
|
|
15
|
+
};
|
|
16
|
+
var loops = /* @__PURE__ */ new WeakMap();
|
|
17
|
+
/** Инстанс данных и копии образцов — до вставки. */
|
|
18
|
+
function sectionOf(ctx, item) {
|
|
19
|
+
const section = createItem(ctx.root.ownerDocument, TAccordionItemElement);
|
|
20
|
+
section.ctrl = item;
|
|
21
|
+
lendSamples(ctx, section, ACCORDION_ITEM_SLOTS);
|
|
22
|
+
return section;
|
|
23
|
+
}
|
|
24
|
+
var accordionTemplate = {
|
|
25
|
+
create: (root, { hasSlot }) => {
|
|
26
|
+
if (!hasSlot("default")) loops.set(root, new TKeyedLoop(root, null, (item) => item.uid));
|
|
27
|
+
return { slots: {
|
|
28
|
+
default: {
|
|
29
|
+
mode: "append",
|
|
30
|
+
node: root
|
|
31
|
+
},
|
|
32
|
+
item: { mode: "sample" },
|
|
33
|
+
"item-arrow-icon": { mode: "sample" },
|
|
34
|
+
"item-leading": { mode: "sample" },
|
|
35
|
+
"item-trailing": { mode: "sample" },
|
|
36
|
+
"item-content": { mode: "sample" }
|
|
37
|
+
} };
|
|
38
|
+
},
|
|
39
|
+
bindings: [bind("shown", (ctx) => {
|
|
40
|
+
loops.get(ctx.root)?.draw(ctx.state.shown ?? [], (item) => sectionOf(ctx, item));
|
|
41
|
+
})]
|
|
42
|
+
};
|
|
43
|
+
//#endregion
|
|
44
|
+
export { ACCORDION_ITEM_SLOTS, accordionTemplate };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Application API for this element entry. */
|
|
2
|
+
export { TAccordionElement } from './Accordion.element';
|
|
3
|
+
export type { TAccordionElementProps } from './Accordion.element';
|
|
4
|
+
export { TAccordionItemElement } from './item/AccordionItem.element';
|
|
5
|
+
export type { TAccordionItemElementProps } from './item/AccordionItem.element';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `<div is="so-accordion-item">` — секция аккордеона. Ряд секций — флексбокс,
|
|
3
|
+
* поэтому номер места (`order`) на корне. docs/architecture.md, Layer 8d,
|
|
4
|
+
* «Коллекция».
|
|
5
|
+
*/
|
|
6
|
+
import { AccordionItemDescriptor } from '@soxa-ui/setup';
|
|
7
|
+
import type { IAccordionItem, TAccordionItemCollectionFacade } from '@soxa-ui/core';
|
|
8
|
+
import type { TElementClassOf, TElementType } from '../../../adapter';
|
|
9
|
+
export declare const TAccordionItemElement: TElementClassOf<typeof HTMLDivElement, typeof AccordionItemDescriptor, IAccordionItem, TAccordionItemCollectionFacade>;
|
|
10
|
+
export type TAccordionItemElementProps = TElementType<typeof TAccordionItemElement>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ElementBase } from "../../../adapter/runtime/element.base.js";
|
|
2
|
+
import "../../../adapter/index.js";
|
|
3
|
+
import { setupAccordionItem } from "./setup.component.js";
|
|
4
|
+
import { accordionItemTemplate } from "./accordion-item.template.js";
|
|
5
|
+
import { AccordionCollectionItemDescriptor, AccordionItemDescriptor } from "@soxa-ui/setup";
|
|
6
|
+
//#region src/components/accordion/item/AccordionItem.element.ts
|
|
7
|
+
/**
|
|
8
|
+
* `<div is="so-accordion-item">` — секция аккордеона. Ряд секций — флексбокс,
|
|
9
|
+
* поэтому номер места (`order`) на корне. docs/architecture.md, Layer 8d,
|
|
10
|
+
* «Коллекция».
|
|
11
|
+
*/
|
|
12
|
+
var TAccordionItemElement = ElementBase(HTMLDivElement, {
|
|
13
|
+
descriptor: AccordionItemDescriptor,
|
|
14
|
+
facade: AccordionCollectionItemDescriptor,
|
|
15
|
+
template: accordionItemTemplate,
|
|
16
|
+
root: {
|
|
17
|
+
strategy: "host",
|
|
18
|
+
sets: ["attrs", "dataset"],
|
|
19
|
+
order: true,
|
|
20
|
+
control: true
|
|
21
|
+
},
|
|
22
|
+
setup: setupAccordionItem
|
|
23
|
+
});
|
|
24
|
+
//#endregion
|
|
25
|
+
export { TAccordionItemElement };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Шаблон секции Accordion: заголовок — деталь Button (поле корня, слоты
|
|
3
|
+
* секции — его свет), панель под ним со слотом `default`.
|
|
4
|
+
* docs/architecture.md, Layer 8d, «Коллекция».
|
|
5
|
+
*/
|
|
6
|
+
import type { IAccordionItem, TAccordionItemCollectionFacade } from '@soxa-ui/core';
|
|
7
|
+
import { type ITemplate } from '../../../adapter';
|
|
8
|
+
export declare const accordionItemTemplate: ITemplate<IAccordionItem, TAccordionItemCollectionFacade>;
|