@supersoniks/concorde 4.7.4 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +21 -0
- package/.github-export-ignore +30 -0
- package/.gitlab-ci.yml +13 -0
- package/CONTRIBUTING.md +59 -0
- package/DEV.md +54 -0
- package/LICENSE +21 -0
- package/OPEN_SOURCE_CHECKPOINT.md +133 -0
- package/README.md +30 -16
- package/ai/cursor/rules/concorde.mdc +1 -1
- package/ai/skills/concorde-scope/SKILL.md +2 -2
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +214 -214
- package/concorde-core.es.js +4517 -4133
- package/dist/concorde-core.bundle.js +214 -214
- package/dist/concorde-core.es.js +4517 -4133
- package/dist/docs-mock-api-sw.js +19 -0
- package/dist/docs-mock-api-sw.js.map +2 -2
- package/dist/js/components.js +12 -0
- package/dist/js/components.js.map +1 -0
- package/dist/js/concorde-loaded.js +5 -0
- package/dist/js/concorde-loaded.js.map +1 -0
- package/dist/js/core/_types/endpoint.js +5 -0
- package/dist/js/core/_types/endpoint.js.map +1 -0
- package/dist/js/core/_types/key.js +2 -0
- package/dist/js/core/_types/key.js.map +1 -0
- package/dist/js/core/_types/types.js +3 -0
- package/dist/js/core/_types/types.js.map +1 -0
- package/dist/js/core/components/functional/date/date.js +272 -0
- package/dist/js/core/components/functional/date/date.js.map +1 -0
- package/dist/js/core/components/functional/example/example.js +44 -0
- package/dist/js/core/components/functional/example/example.js.map +1 -0
- package/dist/js/core/components/functional/fetch/fetch.js +79 -0
- package/dist/js/core/components/functional/fetch/fetch.js.map +1 -0
- package/dist/js/core/components/functional/functional.js +17 -0
- package/dist/js/core/components/functional/functional.js.map +1 -0
- package/dist/js/core/components/functional/if/if.js +39 -0
- package/dist/js/core/components/functional/if/if.js.map +1 -0
- package/dist/js/core/components/functional/list/list.js +341 -0
- package/dist/js/core/components/functional/list/list.js.map +1 -0
- package/dist/js/core/components/functional/mix/mix.js +103 -0
- package/dist/js/core/components/functional/mix/mix.js.map +1 -0
- package/dist/js/core/components/functional/queue/queue.js +386 -0
- package/dist/js/core/components/functional/queue/queue.js.map +1 -0
- package/dist/js/core/components/functional/router/redirect.js +54 -0
- package/dist/js/core/components/functional/router/redirect.js.map +1 -0
- package/dist/js/core/components/functional/router/router.js +179 -0
- package/dist/js/core/components/functional/router/router.js.map +1 -0
- package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +216 -0
- package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +1 -0
- package/dist/js/core/components/functional/sdui/default-library.json +108 -0
- package/dist/js/core/components/functional/sdui/sdui-utils.js +64 -0
- package/dist/js/core/components/functional/sdui/sdui-utils.js.map +1 -0
- package/dist/js/core/components/functional/sdui/sdui.js +266 -0
- package/dist/js/core/components/functional/sdui/sdui.js.map +1 -0
- package/dist/js/core/components/functional/sdui/types.js +2 -0
- package/dist/js/core/components/functional/sdui/types.js.map +1 -0
- package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +22 -0
- package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +1 -0
- package/dist/js/core/components/functional/states/states.js +172 -0
- package/dist/js/core/components/functional/states/states.js.map +1 -0
- package/dist/js/core/components/functional/submit/submit.js +284 -0
- package/dist/js/core/components/functional/submit/submit.js.map +1 -0
- package/dist/js/core/components/functional/subscriber/subscriber.js +39 -0
- package/dist/js/core/components/functional/subscriber/subscriber.js.map +1 -0
- package/dist/js/core/components/functional/translation/translation.js +28 -0
- package/dist/js/core/components/functional/translation/translation.js.map +1 -0
- package/dist/js/core/components/functional/value/value.js +28 -0
- package/dist/js/core/components/functional/value/value.js.map +1 -0
- package/dist/js/core/components/ui/_css/scroll.js +25 -0
- package/dist/js/core/components/ui/_css/scroll.js.map +1 -0
- package/dist/js/core/components/ui/_css/shadow.js +22 -0
- package/dist/js/core/components/ui/_css/shadow.js.map +1 -0
- package/dist/js/core/components/ui/_css/size.js +36 -0
- package/dist/js/core/components/ui/_css/size.js.map +1 -0
- package/dist/js/core/components/ui/_css/type.js +92 -0
- package/dist/js/core/components/ui/_css/type.js.map +1 -0
- package/dist/js/core/components/ui/alert/alert.js +213 -0
- package/dist/js/core/components/ui/alert/alert.js.map +1 -0
- package/dist/js/core/components/ui/alert-messages/alert-messages.js +68 -0
- package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -0
- package/dist/js/core/components/ui/badge/badge.js +199 -0
- package/dist/js/core/components/ui/badge/badge.js.map +1 -0
- package/dist/js/core/components/ui/button/button.js +697 -0
- package/dist/js/core/components/ui/button/button.js.map +1 -0
- package/dist/js/core/components/ui/captcha/altchaStyles.js +226 -0
- package/dist/js/core/components/ui/captcha/altchaStyles.js.map +1 -0
- package/dist/js/core/components/ui/captcha/captcha.js +167 -0
- package/dist/js/core/components/ui/captcha/captcha.js.map +1 -0
- package/dist/js/core/components/ui/card/card-footer.js +26 -0
- package/dist/js/core/components/ui/card/card-footer.js.map +1 -0
- package/dist/js/core/components/ui/card/card-header-descripton.js +30 -0
- package/dist/js/core/components/ui/card/card-header-descripton.js.map +1 -0
- package/dist/js/core/components/ui/card/card-header.js +79 -0
- package/dist/js/core/components/ui/card/card-header.js.map +1 -0
- package/dist/js/core/components/ui/card/card-main.js +26 -0
- package/dist/js/core/components/ui/card/card-main.js.map +1 -0
- package/dist/js/core/components/ui/card/card.js +67 -0
- package/dist/js/core/components/ui/card/card.js.map +1 -0
- package/dist/js/core/components/ui/divider/divider.js +200 -0
- package/dist/js/core/components/ui/divider/divider.js.map +1 -0
- package/dist/js/core/components/ui/form/checkbox/checkbox.js +257 -0
- package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -0
- package/dist/js/core/components/ui/form/css/form-control.js +393 -0
- package/dist/js/core/components/ui/form/css/form-control.js.map +1 -0
- package/dist/js/core/components/ui/form/fieldset/fieldset.js +124 -0
- package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +1 -0
- package/dist/js/core/components/ui/form/fieldset/legend-description.js +38 -0
- package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +1 -0
- package/dist/js/core/components/ui/form/fieldset/legend.js +130 -0
- package/dist/js/core/components/ui/form/fieldset/legend.js.map +1 -0
- package/dist/js/core/components/ui/form/form-actions/form-actions.js +47 -0
- package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +1 -0
- package/dist/js/core/components/ui/form/form-layout/form-layout.js +84 -0
- package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +1 -0
- package/dist/js/core/components/ui/form/input/input.js +316 -0
- package/dist/js/core/components/ui/form/input/input.js.map +1 -0
- package/dist/js/core/components/ui/form/input/password-helper.js +134 -0
- package/dist/js/core/components/ui/form/input/password-helper.js.map +1 -0
- package/dist/js/core/components/ui/form/input/same-value-helper.js +85 -0
- package/dist/js/core/components/ui/form/input/same-value-helper.js.map +1 -0
- package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +405 -0
- package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -0
- package/dist/js/core/components/ui/form/radio/radio.js +63 -0
- package/dist/js/core/components/ui/form/radio/radio.js.map +1 -0
- package/dist/js/core/components/ui/form/select/select.js +323 -0
- package/dist/js/core/components/ui/form/select/select.js.map +1 -0
- package/dist/js/core/components/ui/form/switch/switch.js +90 -0
- package/dist/js/core/components/ui/form/switch/switch.js.map +1 -0
- package/dist/js/core/components/ui/form/textarea/textarea.js +162 -0
- package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -0
- package/dist/js/core/components/ui/group/group.js +128 -0
- package/dist/js/core/components/ui/group/group.js.map +1 -0
- package/dist/js/core/components/ui/icon/icon.js +129 -0
- package/dist/js/core/components/ui/icon/icon.js.map +1 -0
- package/dist/js/core/components/ui/icon/icons.js +163 -0
- package/dist/js/core/components/ui/icon/icons.js.map +1 -0
- package/dist/js/core/components/ui/icon/icons.json +1 -0
- package/dist/js/core/components/ui/image/image.js +160 -0
- package/dist/js/core/components/ui/image/image.js.map +1 -0
- package/dist/js/core/components/ui/link/link.js +125 -0
- package/dist/js/core/components/ui/link/link.js.map +1 -0
- package/dist/js/core/components/ui/loader/loader.js +106 -0
- package/dist/js/core/components/ui/loader/loader.js.map +1 -0
- package/dist/js/core/components/ui/loader/styles/fixed.js +56 -0
- package/dist/js/core/components/ui/loader/styles/fixed.js.map +1 -0
- package/dist/js/core/components/ui/loader/styles/inline.js +70 -0
- package/dist/js/core/components/ui/loader/styles/inline.js.map +1 -0
- package/dist/js/core/components/ui/menu/menu-item.js +35 -0
- package/dist/js/core/components/ui/menu/menu-item.js.map +1 -0
- package/dist/js/core/components/ui/menu/menu.js +436 -0
- package/dist/js/core/components/ui/menu/menu.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-actions.js +44 -0
- package/dist/js/core/components/ui/modal/modal-actions.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-close.js +56 -0
- package/dist/js/core/components/ui/modal/modal-close.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-content.js +27 -0
- package/dist/js/core/components/ui/modal/modal-content.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-subtitle.js +34 -0
- package/dist/js/core/components/ui/modal/modal-subtitle.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-title.js +35 -0
- package/dist/js/core/components/ui/modal/modal-title.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal-utils.js +32 -0
- package/dist/js/core/components/ui/modal/modal-utils.js.map +1 -0
- package/dist/js/core/components/ui/modal/modal.js +568 -0
- package/dist/js/core/components/ui/modal/modal.js.map +1 -0
- package/dist/js/core/components/ui/pop/pop.js +337 -0
- package/dist/js/core/components/ui/pop/pop.js.map +1 -0
- package/dist/js/core/components/ui/progress/progress.js +164 -0
- package/dist/js/core/components/ui/progress/progress.js.map +1 -0
- package/dist/js/core/components/ui/table/table-caption.js +29 -0
- package/dist/js/core/components/ui/table/table-caption.js.map +1 -0
- package/dist/js/core/components/ui/table/table-tbody.js +41 -0
- package/dist/js/core/components/ui/table/table-tbody.js.map +1 -0
- package/dist/js/core/components/ui/table/table-td.js +69 -0
- package/dist/js/core/components/ui/table/table-td.js.map +1 -0
- package/dist/js/core/components/ui/table/table-tfoot.js +28 -0
- package/dist/js/core/components/ui/table/table-tfoot.js.map +1 -0
- package/dist/js/core/components/ui/table/table-th.js +80 -0
- package/dist/js/core/components/ui/table/table-th.js.map +1 -0
- package/dist/js/core/components/ui/table/table-thead.js +26 -0
- package/dist/js/core/components/ui/table/table-thead.js.map +1 -0
- package/dist/js/core/components/ui/table/table-tr.js +67 -0
- package/dist/js/core/components/ui/table/table-tr.js.map +1 -0
- package/dist/js/core/components/ui/table/table.js +106 -0
- package/dist/js/core/components/ui/table/table.js.map +1 -0
- package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +74 -0
- package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +1 -0
- package/dist/js/core/components/ui/theme/theme-collection/dark.js +39 -0
- package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +1 -0
- package/dist/js/core/components/ui/theme/theme-collection/light.js +32 -0
- package/dist/js/core/components/ui/theme/theme-collection/light.js.map +1 -0
- package/dist/js/core/components/ui/theme/theme.js +150 -0
- package/dist/js/core/components/ui/theme/theme.js.map +1 -0
- package/dist/js/core/components/ui/toast/message-subscriber.js +41 -0
- package/dist/js/core/components/ui/toast/message-subscriber.js.map +1 -0
- package/dist/js/core/components/ui/toast/toast-item.js +379 -0
- package/dist/js/core/components/ui/toast/toast-item.js.map +1 -0
- package/dist/js/core/components/ui/toast/toast.js +269 -0
- package/dist/js/core/components/ui/toast/toast.js.map +1 -0
- package/dist/js/core/components/ui/toast/types.js +2 -0
- package/dist/js/core/components/ui/toast/types.js.map +1 -0
- package/dist/js/core/components/ui/tooltip/tooltip.js +219 -0
- package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -0
- package/dist/js/core/components/ui/ui.js +41 -0
- package/dist/js/core/components/ui/ui.js.map +1 -0
- package/dist/js/core/core.js +14 -0
- package/dist/js/core/core.js.map +1 -0
- package/dist/js/core/decorators/Subscriber.js +9 -0
- package/dist/js/core/decorators/Subscriber.js.map +1 -0
- package/dist/js/core/decorators/api.js +559 -0
- package/dist/js/core/decorators/api.js.map +1 -0
- package/dist/js/core/decorators/lifecycle.js +67 -0
- package/dist/js/core/decorators/lifecycle.js.map +1 -0
- package/dist/js/core/decorators/subscriber/ancestorAttribute.js +27 -0
- package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -0
- package/dist/js/core/decorators/subscriber/autoFill.js +26 -0
- package/dist/js/core/decorators/subscriber/autoFill.js.map +1 -0
- package/dist/js/core/decorators/subscriber/autoSubscribe.js +46 -0
- package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +1 -0
- package/dist/js/core/decorators/subscriber/bind.js +150 -0
- package/dist/js/core/decorators/subscriber/bind.js.map +1 -0
- package/dist/js/core/decorators/subscriber/common.js +44 -0
- package/dist/js/core/decorators/subscriber/common.js.map +1 -0
- package/dist/js/core/decorators/subscriber/dynamicPath.js +75 -0
- package/dist/js/core/decorators/subscriber/dynamicPath.js.map +1 -0
- package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +138 -0
- package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +1 -0
- package/dist/js/core/decorators/subscriber/handle.js +22 -0
- package/dist/js/core/decorators/subscriber/handle.js.map +1 -0
- package/dist/js/core/decorators/subscriber/onAssign.js +199 -0
- package/dist/js/core/decorators/subscriber/onAssign.js.map +1 -0
- package/dist/js/core/decorators/subscriber/publish.js +108 -0
- package/dist/js/core/decorators/subscriber/publish.js.map +1 -0
- package/dist/js/core/decorators/subscriber/publisherPath.js +16 -0
- package/dist/js/core/decorators/subscriber/publisherPath.js.map +1 -0
- package/dist/js/core/decorators/subscriber/subscribe.js +20 -0
- package/dist/js/core/decorators/subscriber/subscribe.js.map +1 -0
- package/dist/js/core/directives/DataProvider.js +127 -0
- package/dist/js/core/directives/DataProvider.js.map +1 -0
- package/dist/js/core/directives/Wording.js +221 -0
- package/dist/js/core/directives/Wording.js.map +1 -0
- package/dist/js/core/mixins/Fetcher.js +325 -0
- package/dist/js/core/mixins/Fetcher.js.map +1 -0
- package/dist/js/core/mixins/FormCheckable.js +313 -0
- package/dist/js/core/mixins/FormCheckable.js.map +1 -0
- package/dist/js/core/mixins/FormElement.js +304 -0
- package/dist/js/core/mixins/FormElement.js.map +1 -0
- package/dist/js/core/mixins/FormInput.js +82 -0
- package/dist/js/core/mixins/FormInput.js.map +1 -0
- package/dist/js/core/mixins/Subscriber.js +354 -0
- package/dist/js/core/mixins/Subscriber.js.map +1 -0
- package/dist/js/core/mixins/TemplatesContainer.js +70 -0
- package/dist/js/core/mixins/TemplatesContainer.js.map +1 -0
- package/dist/js/core/mixins/mixins.js +7 -0
- package/dist/js/core/mixins/mixins.js.map +1 -0
- package/dist/js/core/utils/AncestorAttributeObserver.js +140 -0
- package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -0
- package/dist/js/core/utils/Arrays.js +141 -0
- package/dist/js/core/utils/Arrays.js.map +1 -0
- package/dist/js/core/utils/DataBindObserver.js +265 -0
- package/dist/js/core/utils/DataBindObserver.js.map +1 -0
- package/dist/js/core/utils/Electron.js +14 -0
- package/dist/js/core/utils/Electron.js.map +1 -0
- package/dist/js/core/utils/Format.js +43 -0
- package/dist/js/core/utils/Format.js.map +1 -0
- package/dist/js/core/utils/HTML.js +248 -0
- package/dist/js/core/utils/HTML.js.map +1 -0
- package/dist/js/core/utils/LocationHandler.js +143 -0
- package/dist/js/core/utils/LocationHandler.js.map +1 -0
- package/dist/js/core/utils/Objects.js +111 -0
- package/dist/js/core/utils/Objects.js.map +1 -0
- package/dist/js/core/utils/PublisherProxy.js +946 -0
- package/dist/js/core/utils/PublisherProxy.js.map +1 -0
- package/dist/js/core/utils/Utils.js +19 -0
- package/dist/js/core/utils/Utils.js.map +1 -0
- package/dist/js/core/utils/aesCrypto.js +98 -0
- package/dist/js/core/utils/aesCrypto.js.map +1 -0
- package/dist/js/core/utils/api.js +574 -0
- package/dist/js/core/utils/api.js.map +1 -0
- package/dist/js/core/utils/dataProviderKey.js +64 -0
- package/dist/js/core/utils/dataProviderKey.js.map +1 -0
- package/dist/js/core/utils/endpoint.js +74 -0
- package/dist/js/core/utils/endpoint.js.map +1 -0
- package/dist/js/core/utils/route.js +149 -0
- package/dist/js/core/utils/route.js.map +1 -0
- package/dist/js/core/utils/url-pattern.js +3 -0
- package/dist/js/core/utils/url-pattern.js.map +1 -0
- package/dist/js/dataprovider.js +2 -0
- package/dist/js/dataprovider.js.map +1 -0
- package/dist/js/decorators.js +39 -0
- package/dist/js/decorators.js.map +1 -0
- package/dist/js/directives.js +30 -0
- package/dist/js/directives.js.map +1 -0
- package/dist/js/index.js +8 -0
- package/dist/js/index.js.map +1 -0
- package/dist/js/mixins.js +23 -0
- package/dist/js/mixins.js.map +1 -0
- package/dist/js/test-utils/TestUtils.js +10 -0
- package/dist/js/test-utils/TestUtils.js.map +1 -0
- package/dist/js/utils.js +41 -0
- package/dist/js/utils.js.map +1 -0
- package/dist/types/components.d.ts +5 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/concorde-loaded.d.ts +2 -0
- package/dist/types/concorde-loaded.d.ts.map +1 -0
- package/dist/types/core/_types/endpoint.d.ts +5 -0
- package/dist/types/core/_types/endpoint.d.ts.map +1 -0
- package/dist/types/core/_types/key.d.ts +2 -0
- package/dist/types/core/_types/key.d.ts.map +1 -0
- package/dist/types/core/_types/types.d.ts +28 -0
- package/dist/types/core/_types/types.d.ts.map +1 -0
- package/dist/types/core/components/functional/date/date.d.ts +52 -0
- package/dist/types/core/components/functional/date/date.d.ts.map +1 -0
- package/dist/types/core/components/functional/example/example.d.ts +15 -0
- package/dist/types/core/components/functional/example/example.d.ts.map +1 -0
- package/dist/types/core/components/functional/fetch/fetch.d.ts +102 -0
- package/dist/types/core/components/functional/fetch/fetch.d.ts.map +1 -0
- package/dist/types/core/components/functional/functional.d.ts +17 -0
- package/dist/types/core/components/functional/functional.d.ts.map +1 -0
- package/dist/types/core/components/functional/if/if.d.ts +13 -0
- package/dist/types/core/components/functional/if/if.d.ts.map +1 -0
- package/dist/types/core/components/functional/list/list.d.ts +149 -0
- package/dist/types/core/components/functional/list/list.d.ts.map +1 -0
- package/dist/types/core/components/functional/mix/mix.d.ts +23 -0
- package/dist/types/core/components/functional/mix/mix.d.ts.map +1 -0
- package/dist/types/core/components/functional/queue/queue.d.ts +79 -0
- package/dist/types/core/components/functional/queue/queue.d.ts.map +1 -0
- package/dist/types/core/components/functional/router/redirect.d.ts +19 -0
- package/dist/types/core/components/functional/router/redirect.d.ts.map +1 -0
- package/dist/types/core/components/functional/router/router.d.ts +46 -0
- package/dist/types/core/components/functional/router/router.d.ts.map +1 -0
- package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +59 -0
- package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +1 -0
- package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +6 -0
- package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +1 -0
- package/dist/types/core/components/functional/sdui/sdui.d.ts +145 -0
- package/dist/types/core/components/functional/sdui/sdui.d.ts.map +1 -0
- package/dist/types/core/components/functional/sdui/types.d.ts +38 -0
- package/dist/types/core/components/functional/sdui/types.d.ts.map +1 -0
- package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +6 -0
- package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +1 -0
- package/dist/types/core/components/functional/states/states.d.ts +42 -0
- package/dist/types/core/components/functional/states/states.d.ts.map +1 -0
- package/dist/types/core/components/functional/submit/submit.d.ts +37 -0
- package/dist/types/core/components/functional/submit/submit.d.ts.map +1 -0
- package/dist/types/core/components/functional/subscriber/subscriber.d.ts +13 -0
- package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +1 -0
- package/dist/types/core/components/functional/translation/translation.d.ts +7 -0
- package/dist/types/core/components/functional/translation/translation.d.ts.map +1 -0
- package/dist/types/core/components/functional/value/value.d.ts +8 -0
- package/dist/types/core/components/functional/value/value.d.ts.map +1 -0
- package/dist/types/core/components/ui/_css/scroll.d.ts +2 -0
- package/dist/types/core/components/ui/_css/scroll.d.ts.map +1 -0
- package/dist/types/core/components/ui/_css/shadow.d.ts +3 -0
- package/dist/types/core/components/ui/_css/shadow.d.ts.map +1 -0
- package/dist/types/core/components/ui/_css/size.d.ts +3 -0
- package/dist/types/core/components/ui/_css/size.d.ts.map +1 -0
- package/dist/types/core/components/ui/_css/type.d.ts +3 -0
- package/dist/types/core/components/ui/_css/type.d.ts.map +1 -0
- package/dist/types/core/components/ui/alert/alert.d.ts +37 -0
- package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -0
- package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +15 -0
- package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -0
- package/dist/types/core/components/ui/badge/badge.d.ts +27 -0
- package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -0
- package/dist/types/core/components/ui/button/button.d.ts +180 -0
- package/dist/types/core/components/ui/button/button.d.ts.map +1 -0
- package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +2 -0
- package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +1 -0
- package/dist/types/core/components/ui/captcha/captcha.d.ts +30 -0
- package/dist/types/core/components/ui/captcha/captcha.d.ts.map +1 -0
- package/dist/types/core/components/ui/card/card-footer.d.ts +6 -0
- package/dist/types/core/components/ui/card/card-footer.d.ts.map +1 -0
- package/dist/types/core/components/ui/card/card-header-descripton.d.ts +6 -0
- package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +1 -0
- package/dist/types/core/components/ui/card/card-header.d.ts +9 -0
- package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -0
- package/dist/types/core/components/ui/card/card-main.d.ts +6 -0
- package/dist/types/core/components/ui/card/card-main.d.ts.map +1 -0
- package/dist/types/core/components/ui/card/card.d.ts +13 -0
- package/dist/types/core/components/ui/card/card.d.ts.map +1 -0
- package/dist/types/core/components/ui/divider/divider.d.ts +16 -0
- package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +176 -0
- package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/css/form-control.d.ts +5 -0
- package/dist/types/core/components/ui/form/css/form-control.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +24 -0
- package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +6 -0
- package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/fieldset/legend.d.ts +17 -0
- package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +8 -0
- package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +13 -0
- package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/input/input.d.ts +123 -0
- package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/input/password-helper.d.ts +26 -0
- package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +17 -0
- package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +155 -0
- package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/radio/radio.d.ts +15 -0
- package/dist/types/core/components/ui/form/radio/radio.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/select/select.d.ts +59 -0
- package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/switch/switch.d.ts +6 -0
- package/dist/types/core/components/ui/form/switch/switch.d.ts.map +1 -0
- package/dist/types/core/components/ui/form/textarea/textarea.d.ts +94 -0
- package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -0
- package/dist/types/core/components/ui/group/group.d.ts +17 -0
- package/dist/types/core/components/ui/group/group.d.ts.map +1 -0
- package/dist/types/core/components/ui/icon/icon.d.ts +28 -0
- package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -0
- package/dist/types/core/components/ui/icon/icons.d.ts +11 -0
- package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -0
- package/dist/types/core/components/ui/image/image.d.ts +16 -0
- package/dist/types/core/components/ui/image/image.d.ts.map +1 -0
- package/dist/types/core/components/ui/link/link.d.ts +30 -0
- package/dist/types/core/components/ui/link/link.d.ts.map +1 -0
- package/dist/types/core/components/ui/loader/loader.d.ts +24 -0
- package/dist/types/core/components/ui/loader/loader.d.ts.map +1 -0
- package/dist/types/core/components/ui/loader/styles/fixed.d.ts +2 -0
- package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +1 -0
- package/dist/types/core/components/ui/loader/styles/inline.d.ts +2 -0
- package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +1 -0
- package/dist/types/core/components/ui/menu/menu-item.d.ts +6 -0
- package/dist/types/core/components/ui/menu/menu-item.d.ts.map +1 -0
- package/dist/types/core/components/ui/menu/menu.d.ts +52 -0
- package/dist/types/core/components/ui/menu/menu.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-actions.d.ts +9 -0
- package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-close.d.ts +11 -0
- package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-content.d.ts +6 -0
- package/dist/types/core/components/ui/modal/modal-content.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +6 -0
- package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-title.d.ts +6 -0
- package/dist/types/core/components/ui/modal/modal-title.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal-utils.d.ts +4 -0
- package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +1 -0
- package/dist/types/core/components/ui/modal/modal.d.ts +79 -0
- package/dist/types/core/components/ui/modal/modal.d.ts.map +1 -0
- package/dist/types/core/components/ui/pop/pop.d.ts +42 -0
- package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -0
- package/dist/types/core/components/ui/progress/progress.d.ts +12 -0
- package/dist/types/core/components/ui/progress/progress.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-caption.d.ts +6 -0
- package/dist/types/core/components/ui/table/table-caption.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-tbody.d.ts +6 -0
- package/dist/types/core/components/ui/table/table-tbody.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-td.d.ts +13 -0
- package/dist/types/core/components/ui/table/table-td.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-tfoot.d.ts +6 -0
- package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-th.d.ts +12 -0
- package/dist/types/core/components/ui/table/table-th.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-thead.d.ts +6 -0
- package/dist/types/core/components/ui/table/table-thead.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table-tr.d.ts +14 -0
- package/dist/types/core/components/ui/table/table-tr.d.ts.map +1 -0
- package/dist/types/core/components/ui/table/table.d.ts +18 -0
- package/dist/types/core/components/ui/table/table.d.ts.map +1 -0
- package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +2 -0
- package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +1 -0
- package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +2 -0
- package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +1 -0
- package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +2 -0
- package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +1 -0
- package/dist/types/core/components/ui/theme/theme.d.ts +20 -0
- package/dist/types/core/components/ui/theme/theme.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/message-subscriber.d.ts +19 -0
- package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/toast-item.d.ts +41 -0
- package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/toast.d.ts +28 -0
- package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -0
- package/dist/types/core/components/ui/toast/types.d.ts +12 -0
- package/dist/types/core/components/ui/toast/types.d.ts.map +1 -0
- package/dist/types/core/components/ui/tooltip/tooltip.d.ts +21 -0
- package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -0
- package/dist/types/core/components/ui/ui.d.ts +35 -0
- package/dist/types/core/components/ui/ui.d.ts.map +1 -0
- package/dist/types/core/core.d.ts +5 -0
- package/dist/types/core/core.d.ts.map +1 -0
- package/dist/types/core/decorators/Subscriber.d.ts +11 -0
- package/dist/types/core/decorators/Subscriber.d.ts.map +1 -0
- package/dist/types/core/decorators/api.d.ts +106 -0
- package/dist/types/core/decorators/api.d.ts.map +1 -0
- package/dist/types/core/decorators/lifecycle.d.ts +19 -0
- package/dist/types/core/decorators/lifecycle.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +11 -0
- package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/autoFill.d.ts +2 -0
- package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +2 -0
- package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/bind.d.ts +28 -0
- package/dist/types/core/decorators/subscriber/bind.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/common.d.ts +14 -0
- package/dist/types/core/decorators/subscriber/common.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +23 -0
- package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +42 -0
- package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/handle.d.ts +74 -0
- package/dist/types/core/decorators/subscriber/handle.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/onAssign.d.ts +53 -0
- package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/publish.d.ts +23 -0
- package/dist/types/core/decorators/subscriber/publish.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/publisherPath.d.ts +3 -0
- package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +1 -0
- package/dist/types/core/decorators/subscriber/subscribe.d.ts +20 -0
- package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +1 -0
- package/dist/types/core/directives/DataProvider.d.ts +45 -0
- package/dist/types/core/directives/DataProvider.d.ts.map +1 -0
- package/dist/types/core/directives/Wording.d.ts +44 -0
- package/dist/types/core/directives/Wording.d.ts.map +1 -0
- package/dist/types/core/mixins/Fetcher.d.ts +108 -0
- package/dist/types/core/mixins/Fetcher.d.ts.map +1 -0
- package/dist/types/core/mixins/FormCheckable.d.ts +95 -0
- package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -0
- package/dist/types/core/mixins/FormElement.d.ts +37 -0
- package/dist/types/core/mixins/FormElement.d.ts.map +1 -0
- package/dist/types/core/mixins/FormInput.d.ts +79 -0
- package/dist/types/core/mixins/FormInput.d.ts.map +1 -0
- package/dist/types/core/mixins/Subscriber.d.ts +38 -0
- package/dist/types/core/mixins/Subscriber.d.ts.map +1 -0
- package/dist/types/core/mixins/TemplatesContainer.d.ts +14 -0
- package/dist/types/core/mixins/TemplatesContainer.d.ts.map +1 -0
- package/dist/types/core/mixins/mixins.d.ts +7 -0
- package/dist/types/core/mixins/mixins.d.ts.map +1 -0
- package/dist/types/core/utils/AncestorAttributeObserver.d.ts +38 -0
- package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -0
- package/dist/types/core/utils/Arrays.d.ts +98 -0
- package/dist/types/core/utils/Arrays.d.ts.map +1 -0
- package/dist/types/core/utils/DataBindObserver.d.ts +84 -0
- package/dist/types/core/utils/DataBindObserver.d.ts.map +1 -0
- package/dist/types/core/utils/Electron.d.ts +8 -0
- package/dist/types/core/utils/Electron.d.ts.map +1 -0
- package/dist/types/core/utils/Format.d.ts +13 -0
- package/dist/types/core/utils/Format.d.ts.map +1 -0
- package/dist/types/core/utils/HTML.d.ts +64 -0
- package/dist/types/core/utils/HTML.d.ts.map +1 -0
- package/dist/types/core/utils/LocationHandler.d.ts +48 -0
- package/dist/types/core/utils/LocationHandler.d.ts.map +1 -0
- package/dist/types/core/utils/Objects.d.ts +31 -0
- package/dist/types/core/utils/Objects.d.ts.map +1 -0
- package/dist/types/core/utils/PublisherProxy.d.ts +230 -0
- package/dist/types/core/utils/PublisherProxy.d.ts.map +1 -0
- package/dist/types/core/utils/Utils.d.ts +6 -0
- package/dist/types/core/utils/Utils.d.ts.map +1 -0
- package/dist/types/core/utils/aesCrypto.d.ts +53 -0
- package/dist/types/core/utils/aesCrypto.d.ts.map +1 -0
- package/dist/types/core/utils/api.d.ts +173 -0
- package/dist/types/core/utils/api.d.ts.map +1 -0
- package/dist/types/core/utils/dataProviderKey.d.ts +56 -0
- package/dist/types/core/utils/dataProviderKey.d.ts.map +1 -0
- package/dist/types/core/utils/endpoint.d.ts +37 -0
- package/dist/types/core/utils/endpoint.d.ts.map +1 -0
- package/dist/types/core/utils/route.d.ts +41 -0
- package/dist/types/core/utils/route.d.ts.map +1 -0
- package/dist/types/core/utils/url-pattern.d.ts +3 -0
- package/dist/types/core/utils/url-pattern.d.ts.map +1 -0
- package/dist/types/dataprovider.d.ts +2 -0
- package/dist/types/dataprovider.d.ts.map +1 -0
- package/dist/types/decorators.d.ts +28 -0
- package/dist/types/decorators.d.ts.map +1 -0
- package/dist/types/directives.d.ts +21 -0
- package/dist/types/directives.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/mixins.d.ts +204 -0
- package/dist/types/mixins.d.ts.map +1 -0
- package/dist/types/test-utils/TestUtils.d.ts +4 -0
- package/dist/types/test-utils/TestUtils.d.ts.map +1 -0
- package/dist/types/utils.d.ts +17 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/docs/assets/index-BEgZEIbv.js +11196 -0
- package/docs/docs-mock-api-sw.js +19 -0
- package/docs/docs-mock-api-sw.js.map +2 -2
- package/docs/index.html +1 -1
- package/docs/src/docs/_core-concept/dataFlow.md +9 -3
- package/docs/src/docs/_decorators/bind.md +2 -2
- package/docs/src/docs/_decorators/get.md +13 -4
- package/docs/src/docs/_decorators/handle.md +5 -1
- package/docs/src/docs/_decorators/on-assign.md +2 -0
- package/docs/src/docs/_decorators/patch.md +45 -0
- package/docs/src/docs/_decorators/post.md +93 -0
- package/docs/src/docs/_decorators/publish.md +1 -1
- package/docs/src/docs/_decorators/put.md +43 -0
- package/docs/src/docs/_decorators/subscribe.md +4 -1
- package/docs/src/docs/_directives/sub.md +1 -1
- package/docs/src/docs/_getting-started/my-first-component.md +1 -1
- package/docs/src/docs/_misc/api-configuration.md +3 -1
- package/docs/src/docs/_misc/dataProviderKey.md +2 -2
- package/docs/src/docs/_misc/dynamic-path.md +71 -0
- package/docs/src/docs/_misc/endpoint.md +5 -3
- package/docs/src/docs/search/docs-search.json +540 -15
- package/docs/src/tsconfig.json +377 -353
- package/gitlab/job_github_mirror.sh +39 -0
- package/index.html +0 -1
- package/package.json +1084 -356
- package/public/docs-mock-api-sw.js +19 -0
- package/public/docs-mock-api-sw.js.map +2 -2
- package/scripts/github-export.mjs +150 -0
- package/scripts/post-build.mjs +43 -0
- package/scripts/pre-build.mjs +32 -4
- package/scripts/pre-publish.mjs +2 -0
- package/src/core/components/functional/example/example.ts +3 -3
- package/src/core/components/functional/queue/queue.ts +2 -2
- package/src/core/components/ui/icon/icon.ts +17 -2
- package/src/core/components/ui/menu/menu.ts +12 -3
- package/src/core/components/ui/modal/modal.ts +1 -1
- package/src/core/decorators/Subscriber.ts +1 -0
- package/src/core/decorators/api.post.spec.ts +293 -0
- package/src/core/decorators/api.spec.ts +6 -6
- package/src/core/decorators/api.ts +641 -12
- package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +197 -0
- package/src/core/decorators/subscriber/ancestorAttribute.ts +40 -7
- package/src/core/decorators/subscriber/autoSubscribe.ts +7 -3
- package/src/core/decorators/subscriber/bind.ts +13 -5
- package/src/core/decorators/subscriber/dynamicPath.spec.ts +53 -0
- package/src/core/decorators/subscriber/dynamicPath.ts +23 -1
- package/src/core/decorators/subscriber/handle.ts +3 -1
- package/src/core/decorators/subscriber/onAssign.ts +10 -2
- package/src/core/decorators/subscriber/publish.ts +12 -2
- package/src/core/mixins/Fetcher.ts +12 -6
- package/src/core/utils/AncestorAttributeObserver.ts +199 -0
- package/src/core/utils/HTML.ts +3 -11
- package/src/core/utils/PublisherProxy.ts +123 -48
- package/src/core/utils/api.ts +82 -13
- package/src/core/utils/dpOptions.spec.ts +56 -0
- package/src/core/utils/endpoint.ts +3 -3
- package/src/css.d.ts +19 -0
- package/src/decorators.ts +17 -1
- package/src/directives.ts +3 -2
- package/src/docs/_core-concept/dataFlow.md +9 -3
- package/src/docs/_decorators/ancestor-attribute.md +56 -8
- package/src/docs/_decorators/bind.md +2 -2
- package/src/docs/_decorators/get.md +13 -4
- package/src/docs/_decorators/handle.md +5 -1
- package/src/docs/_decorators/on-assign.md +2 -0
- package/src/docs/_decorators/patch.md +45 -0
- package/src/docs/_decorators/post.md +93 -0
- package/src/docs/_decorators/publish.md +1 -1
- package/src/docs/_decorators/put.md +43 -0
- package/src/docs/_decorators/subscribe.md +4 -1
- package/src/docs/_directives/sub.md +1 -1
- package/src/docs/_getting-started/my-first-component.md +1 -1
- package/src/docs/_misc/api-configuration.md +3 -1
- package/src/docs/_misc/dataProviderKey.md +2 -2
- package/src/docs/_misc/dynamic-path.md +71 -0
- package/src/docs/_misc/endpoint.md +5 -3
- package/src/docs/components/docs-demo-sources.ts +115 -4
- package/src/docs/components/docs-lit-demo-raw.ts +2 -26
- package/src/docs/components/docs-lit-demo.ts +9 -42
- package/src/docs/components/docs-source-excerpt.ts +53 -0
- package/src/docs/components/docs-source-link.ts +24 -8
- package/src/docs/components/docs-source-raw.ts +34 -0
- package/src/docs/example/decorators-demo-geo.ts +2 -2
- package/src/docs/example/decorators-demo-post.ts +249 -0
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +5 -5
- package/src/docs/example/decorators-demo.ts +165 -8
- package/src/docs/example/docs-api-config-demos.ts +5 -5
- package/src/docs/mock-api/router.ts +20 -0
- package/src/docs/navigation/navigation.ts +16 -0
- package/src/docs/search/docs-search.json +602 -17
- package/src/tsconfig.declarations.json +22 -0
- package/src/tsconfig.emit.json +23 -0
- package/src/tsconfig.json +3 -261
- package/src/tsconfig.tsbuildinfo +1 -1
- package/vite.config.mts +1 -1
- package/docs/assets/index-CwtPzTFq.js +0 -7508
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import HTML from "./HTML";
|
|
2
|
+
/** Chaîne composant → ancêtres, en traversant les shadow roots. */
|
|
3
|
+
function walkAncestorElements(node) {
|
|
4
|
+
const elements = [];
|
|
5
|
+
let current = node;
|
|
6
|
+
while (current) {
|
|
7
|
+
if (current instanceof Element) {
|
|
8
|
+
elements.push(current);
|
|
9
|
+
}
|
|
10
|
+
const parent = current.parentNode || (current.host ?? null);
|
|
11
|
+
current = parent;
|
|
12
|
+
}
|
|
13
|
+
return elements;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Observe attributs + enfants directs de chaque ancêtre.
|
|
17
|
+
* Retourne une fonction de nettoyage (disconnect).
|
|
18
|
+
*/
|
|
19
|
+
function attachAncestorChainObservers(subscription, onMutation) {
|
|
20
|
+
const observers = [];
|
|
21
|
+
let disconnected = false;
|
|
22
|
+
const attributeFilter = HTML.scopeAttributeNames(subscription.attributeName);
|
|
23
|
+
const reconnect = () => {
|
|
24
|
+
for (const observer of observers) {
|
|
25
|
+
observer.disconnect();
|
|
26
|
+
}
|
|
27
|
+
observers.length = 0;
|
|
28
|
+
if (disconnected)
|
|
29
|
+
return;
|
|
30
|
+
for (const element of walkAncestorElements(subscription.component)) {
|
|
31
|
+
const observer = new MutationObserver((records) => {
|
|
32
|
+
if (disconnected)
|
|
33
|
+
return;
|
|
34
|
+
if (records.some((record) => record.type === "childList")) {
|
|
35
|
+
reconnect();
|
|
36
|
+
}
|
|
37
|
+
onMutation();
|
|
38
|
+
});
|
|
39
|
+
observer.observe(element, {
|
|
40
|
+
attributes: true,
|
|
41
|
+
attributeFilter,
|
|
42
|
+
childList: true,
|
|
43
|
+
subtree: false,
|
|
44
|
+
});
|
|
45
|
+
observers.push(observer);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
reconnect();
|
|
49
|
+
return () => {
|
|
50
|
+
disconnected = true;
|
|
51
|
+
for (const observer of observers) {
|
|
52
|
+
observer.disconnect();
|
|
53
|
+
}
|
|
54
|
+
observers.length = 0;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Point unique de synchronisation DOM → propriété du composant.
|
|
59
|
+
* N'assigne que si la valeur change (`Object.is`) pour limiter les re-renders Lit
|
|
60
|
+
* et éviter de reboucler inutilement `observeDynamicProperty` (@bind / @subscribe).
|
|
61
|
+
*/
|
|
62
|
+
export function syncAncestorAttributeValue(component, attributeName, propertyKey, options) {
|
|
63
|
+
const record = component;
|
|
64
|
+
const value = HTML.getAncestorAttributeValue(component, attributeName);
|
|
65
|
+
if (!options.assignNull && value === null)
|
|
66
|
+
return;
|
|
67
|
+
if (!Object.is(record[propertyKey], value)) {
|
|
68
|
+
record[propertyKey] = value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
class AncestorAttributeObserver {
|
|
72
|
+
/**
|
|
73
|
+
* Enregistre un composant en mode `{ dynamic: true }`.
|
|
74
|
+
* Le `unsubscribe` retourné doit être appelé au `disconnectedCallback`.
|
|
75
|
+
*/
|
|
76
|
+
static subscribe(component, attributeName, propertyKey, syncOptions = { assignNull: true }) {
|
|
77
|
+
const subscription = {
|
|
78
|
+
component,
|
|
79
|
+
attributeName,
|
|
80
|
+
propertyKey,
|
|
81
|
+
syncOptions,
|
|
82
|
+
disconnectObservers: null,
|
|
83
|
+
};
|
|
84
|
+
subscription.disconnectObservers = attachAncestorChainObservers(subscription, () => {
|
|
85
|
+
if (!AncestorAttributeObserver.subscriptions.has(subscription))
|
|
86
|
+
return;
|
|
87
|
+
AncestorAttributeObserver.pendingRefresh.add(subscription);
|
|
88
|
+
AncestorAttributeObserver.scheduleRefresh();
|
|
89
|
+
});
|
|
90
|
+
AncestorAttributeObserver.subscriptions.add(subscription);
|
|
91
|
+
return () => {
|
|
92
|
+
AncestorAttributeObserver.unsubscribe(subscription);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/** Coupe les observateurs et retire l'abonnement (pas de fuite après disconnect). */
|
|
96
|
+
static unsubscribe(subscription) {
|
|
97
|
+
if (!AncestorAttributeObserver.subscriptions.has(subscription))
|
|
98
|
+
return;
|
|
99
|
+
subscription.disconnectObservers?.();
|
|
100
|
+
subscription.disconnectObservers = null;
|
|
101
|
+
AncestorAttributeObserver.subscriptions.delete(subscription);
|
|
102
|
+
AncestorAttributeObserver.pendingRefresh.delete(subscription);
|
|
103
|
+
if (AncestorAttributeObserver.subscriptions.size === 0) {
|
|
104
|
+
AncestorAttributeObserver.cancelScheduledRefresh();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
static scheduleRefresh() {
|
|
108
|
+
if (AncestorAttributeObserver.pendingRefresh.size === 0)
|
|
109
|
+
return;
|
|
110
|
+
if (AncestorAttributeObserver.animationFrameId !== null)
|
|
111
|
+
return;
|
|
112
|
+
AncestorAttributeObserver.animationFrameId = requestAnimationFrame(() => {
|
|
113
|
+
AncestorAttributeObserver.flushRefresh();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
static cancelScheduledRefresh() {
|
|
117
|
+
if (AncestorAttributeObserver.animationFrameId !== null) {
|
|
118
|
+
cancelAnimationFrame(AncestorAttributeObserver.animationFrameId);
|
|
119
|
+
AncestorAttributeObserver.animationFrameId = null;
|
|
120
|
+
}
|
|
121
|
+
AncestorAttributeObserver.pendingRefresh.clear();
|
|
122
|
+
}
|
|
123
|
+
static flushRefresh() {
|
|
124
|
+
AncestorAttributeObserver.animationFrameId = null;
|
|
125
|
+
const subscriptions = Array.from(AncestorAttributeObserver.pendingRefresh);
|
|
126
|
+
AncestorAttributeObserver.pendingRefresh.clear();
|
|
127
|
+
for (const subscription of subscriptions) {
|
|
128
|
+
if (!AncestorAttributeObserver.subscriptions.has(subscription))
|
|
129
|
+
continue;
|
|
130
|
+
if (!subscription.component.isConnected)
|
|
131
|
+
continue;
|
|
132
|
+
syncAncestorAttributeValue(subscription.component, subscription.attributeName, subscription.propertyKey, subscription.syncOptions);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
AncestorAttributeObserver.subscriptions = new Set();
|
|
137
|
+
AncestorAttributeObserver.pendingRefresh = new Set();
|
|
138
|
+
AncestorAttributeObserver.animationFrameId = null;
|
|
139
|
+
export default AncestorAttributeObserver;
|
|
140
|
+
//# sourceMappingURL=AncestorAttributeObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AncestorAttributeObserver.js","sourceRoot":"","sources":["../../../../src/core/utils/AncestorAttributeObserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
class Arrays {
|
|
2
|
+
/**
|
|
3
|
+
* Vérifie si les deux tableaux ont le même contenu
|
|
4
|
+
*/
|
|
5
|
+
static areEqual(array1, array2) {
|
|
6
|
+
if (array1.length === array2.length) {
|
|
7
|
+
return array1.every((element, index) => {
|
|
8
|
+
if (element === array2[index]) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fournie une fonction to1D qui transforme un tableau 2D en un tableau 1D par concaténation
|
|
18
|
+
*/
|
|
19
|
+
/*eslint-disable @typescript-eslint/no-explicit-any*/
|
|
20
|
+
static from2d(source) {
|
|
21
|
+
return {
|
|
22
|
+
to1D: () => {
|
|
23
|
+
let result = [];
|
|
24
|
+
source.forEach((elt) => (result = result.concat(elt)));
|
|
25
|
+
return this.from(result);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/*eslint-enable @typescript-eslint/no-explicit-any*/
|
|
30
|
+
/**
|
|
31
|
+
* Fournie des méthodes pour manipuler un tableau
|
|
32
|
+
* A l'écriture cela permet d'avoir des phrases du type:
|
|
33
|
+
* let data = Arrays.from(mon tableau)
|
|
34
|
+
* puis data.everyItem().has().same().value().forkey("key");
|
|
35
|
+
* Peu mieux faire. ou voir a remplacer un jour par loadHash par exemple.
|
|
36
|
+
**/
|
|
37
|
+
/*eslint-disable @typescript-eslint/no-explicit-any*/
|
|
38
|
+
static from(source) {
|
|
39
|
+
return {
|
|
40
|
+
/**Obtenir le tableau final*/
|
|
41
|
+
get: () => source || [],
|
|
42
|
+
everyItem: () => {
|
|
43
|
+
return {
|
|
44
|
+
has: () => {
|
|
45
|
+
return {
|
|
46
|
+
same: () => {
|
|
47
|
+
return {
|
|
48
|
+
value: () => {
|
|
49
|
+
return {
|
|
50
|
+
forKey: (key) => {
|
|
51
|
+
if (source.length < 1)
|
|
52
|
+
return true;
|
|
53
|
+
const first = (source[0] || {})[key];
|
|
54
|
+
return source.every((item) => (item || {})[key] == first);
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
value: () => {
|
|
63
|
+
return {
|
|
64
|
+
forKey: (key) => {
|
|
65
|
+
return Arrays.from(source.map((item) => item[key]));
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
copy: () => {
|
|
70
|
+
return {
|
|
71
|
+
fromKey: (atKey) => {
|
|
72
|
+
return {
|
|
73
|
+
toKey: (toKey) => {
|
|
74
|
+
source.forEach((item) => {
|
|
75
|
+
item[toKey] = Array.isArray(item[atKey])
|
|
76
|
+
? [...item[atKey]]
|
|
77
|
+
: typeof item[atKey] === "object" && item[atKey] != null
|
|
78
|
+
? { ...item[atKey] }
|
|
79
|
+
: item[atKey];
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
map: (f) => Arrays.from(source.map(f)),
|
|
89
|
+
filter: (f) => Arrays.from(source.filter(f)),
|
|
90
|
+
find: (f) => source.find(f),
|
|
91
|
+
some: (f) => source.some(f),
|
|
92
|
+
every: (f) => source.every(f),
|
|
93
|
+
group: () => {
|
|
94
|
+
return {
|
|
95
|
+
byKey: (key) => {
|
|
96
|
+
const result = [];
|
|
97
|
+
const keys = new Map();
|
|
98
|
+
for (const item of source) {
|
|
99
|
+
const value = item[key];
|
|
100
|
+
if (!keys.has(value)) {
|
|
101
|
+
const idx = result.length;
|
|
102
|
+
keys.set(value, idx);
|
|
103
|
+
const pushable = { items: [] };
|
|
104
|
+
pushable[key] = value;
|
|
105
|
+
result.push(pushable);
|
|
106
|
+
}
|
|
107
|
+
result[keys.get(value)].items.push(item);
|
|
108
|
+
}
|
|
109
|
+
return Arrays.from(result);
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
without: () => {
|
|
114
|
+
return {
|
|
115
|
+
duplicates: () => {
|
|
116
|
+
return {
|
|
117
|
+
forKey: (key) => {
|
|
118
|
+
const set = [...new Set(source.map((item) => item[key]))];
|
|
119
|
+
return Arrays.from(set.map((value) => source.find((item) => item[key] == value)));
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
itemsIn: (toRemoveFromSource) => {
|
|
124
|
+
return {
|
|
125
|
+
havingSameValue: () => {
|
|
126
|
+
return {
|
|
127
|
+
forKey: (key) => {
|
|
128
|
+
const areValuesDifferentForKey = (compared1, key) => (compared2) => compared1[key] != compared2[key];
|
|
129
|
+
return Arrays.from(source.filter((elt) => toRemoveFromSource.every(areValuesDifferentForKey(elt, key))));
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export default Arrays;
|
|
141
|
+
//# sourceMappingURL=Arrays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Arrays.js","sourceRoot":"","sources":["../../../../src/core/utils/Arrays.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import Format from "@supersoniks/concorde/core/utils/Format";
|
|
2
|
+
import HTML from "@supersoniks/concorde/core/utils/HTML";
|
|
3
|
+
import { PublisherManager } from "@supersoniks/concorde/core/utils/PublisherProxy";
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* En appelant DataBindObserver.observe(HTMLElement) sun un élément html, tout les éléments peuvent être liés à au publisher a l'adresse déterminée parl'attribut dataProvider de l'un de ses ancêtres.
|
|
7
|
+
* Pour cela un MutationObserver est créé pour observer les changements d'attributs de l'élément.
|
|
8
|
+
* On peut alors ecrire ce genre de choses de manière a lier dynamiquement les données du publisher à l'élément html.
|
|
9
|
+
* <img data-bind ::src="$img.avatar" ::title="ucFirst|$img.caption" />
|
|
10
|
+
* <a data-bind ::href="mailto:$email" ::inner-html="$email"></a>
|
|
11
|
+
* Voir la doc de subscriber à ce sujet car il l'utilise par défaut.
|
|
12
|
+
*/
|
|
13
|
+
class DataBindObserver {
|
|
14
|
+
static disable() {
|
|
15
|
+
if (!this.enabled)
|
|
16
|
+
return;
|
|
17
|
+
this.enabled = false;
|
|
18
|
+
Array.from(DataBindObserver.observedElements.keys()).forEach((k) => DataBindObserver.unObserve(k));
|
|
19
|
+
}
|
|
20
|
+
static observe(element) {
|
|
21
|
+
if (!element)
|
|
22
|
+
return;
|
|
23
|
+
if (!DataBindObserver.enabled)
|
|
24
|
+
return;
|
|
25
|
+
if (DataBindObserver.observedElements.has(element))
|
|
26
|
+
return;
|
|
27
|
+
const obs = new MutationObserver(DataBindObserver.onMutation);
|
|
28
|
+
const opt = {};
|
|
29
|
+
opt.childList = true;
|
|
30
|
+
opt.subtree = true;
|
|
31
|
+
opt.attributes = true;
|
|
32
|
+
opt.attributeFilter = ["data-bind"];
|
|
33
|
+
obs.observe(element, opt);
|
|
34
|
+
element
|
|
35
|
+
.querySelectorAll("[data-bind]")
|
|
36
|
+
.forEach((e) => DataBindObserver.addPublisherListeners(e));
|
|
37
|
+
DataBindObserver.observedElements.set(element, obs);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Arrêter à observer un élément html.
|
|
41
|
+
*/
|
|
42
|
+
static unObserve(element) {
|
|
43
|
+
if (!element)
|
|
44
|
+
return;
|
|
45
|
+
const observer = this.observedElements.get(element);
|
|
46
|
+
if (!observer)
|
|
47
|
+
return;
|
|
48
|
+
observer.disconnect();
|
|
49
|
+
element.querySelectorAll("[data-bind]").forEach((e) => DataBindObserver.removePublisherListeners(e));
|
|
50
|
+
}
|
|
51
|
+
static onAdded(elt) {
|
|
52
|
+
if (elt.hasAttribute && elt.hasAttribute("data-bind"))
|
|
53
|
+
DataBindObserver.addPublisherListeners(elt);
|
|
54
|
+
if (elt.querySelectorAll)
|
|
55
|
+
elt.querySelectorAll("[data-bind]").forEach((e) => DataBindObserver.addPublisherListeners(e));
|
|
56
|
+
else
|
|
57
|
+
elt.childNodes.forEach((elt) => DataBindObserver.onAdded(elt));
|
|
58
|
+
}
|
|
59
|
+
static onRemoved(elt) {
|
|
60
|
+
if (elt.hasAttribute && elt.hasAttribute("data-bind"))
|
|
61
|
+
DataBindObserver.removePublisherListeners(elt);
|
|
62
|
+
if (elt.querySelectorAll)
|
|
63
|
+
elt.querySelectorAll("[data-bind]").forEach((e) => DataBindObserver.removePublisherListeners(e));
|
|
64
|
+
else
|
|
65
|
+
elt.childNodes.forEach((elt) => DataBindObserver.onRemoved(elt));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Callback appelé par le MutationObserver
|
|
69
|
+
*/
|
|
70
|
+
static onMutation(list) {
|
|
71
|
+
for (const l of list) {
|
|
72
|
+
switch (l.type) {
|
|
73
|
+
case "attributes":
|
|
74
|
+
DataBindObserver.addPublisherListeners(l.target);
|
|
75
|
+
break;
|
|
76
|
+
case "childList":
|
|
77
|
+
l.addedNodes.forEach((elt) => {
|
|
78
|
+
DataBindObserver.onAdded(elt);
|
|
79
|
+
});
|
|
80
|
+
l.removedNodes.forEach((elt) => {
|
|
81
|
+
DataBindObserver.onRemoved(elt);
|
|
82
|
+
});
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* La liaison avec le publisher supprimée ici.
|
|
89
|
+
*/
|
|
90
|
+
static removePublisherListeners(target) {
|
|
91
|
+
const conf = DataBindObserver.publisherListeners.get(target);
|
|
92
|
+
if (!conf)
|
|
93
|
+
return;
|
|
94
|
+
DataBindObserver.publisherListeners.delete(target);
|
|
95
|
+
conf.forEach((currentConf) => {
|
|
96
|
+
currentConf.publisher?.offAssign(currentConf.onAssign);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
*
|
|
101
|
+
* Cette fonction prend l'expression fournie et trouves toutes les occurences du type $.clef1.clef2.clef3 ou $a.b par exemple.
|
|
102
|
+
* Les occurences sont ensuite mises dans un table de la forme [["clef1", "clef2", "clef3"],["a", "b"],...]
|
|
103
|
+
* Note : si une clef contien un point, on peut l'échapper en écrivant par exemple "$a.b.c\.d\.e" pour cibler value dans {a:{b:{"c.d.e":value}}}
|
|
104
|
+
* Propriétés du retour (du type BindedVariablesDescriptor) :
|
|
105
|
+
* * expression : l'expression initiale sans les échappements
|
|
106
|
+
* * variables : le tableau d'"adresses" de variables décrit ci-dessus
|
|
107
|
+
*/
|
|
108
|
+
static getVariablesDescriptor(expression) {
|
|
109
|
+
let variables = expression.match(/(\$(?:\w+\\?\.?)+)/g);
|
|
110
|
+
if (!variables)
|
|
111
|
+
variables = [expression];
|
|
112
|
+
else
|
|
113
|
+
variables = variables.map((v) => v.replace("$", ""));
|
|
114
|
+
variables = variables.filter((v) => v.length > 0);
|
|
115
|
+
return {
|
|
116
|
+
expression: expression.replace("\\", ""), //TODO Supression des échappements uniquement suivis de "."
|
|
117
|
+
variables: variables.map((v) => v.split(/\b\.\b/).map((e) => e.replace("\\", ""))),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Extrait des "DataBindItems" a partir d'un élément html.
|
|
122
|
+
* Pour chaque attribut dont le nom commence par ::, un dataBindItem est créé.
|
|
123
|
+
* * Proriété "propertyToUpdate" du DataBindItem :
|
|
124
|
+
* Le nom de l'attribut modifié en transformant La notation en hyphen ("-") en KamelCase.
|
|
125
|
+
* un cas spécial est créé pour *-html qui retourne *HTML par exemple inner-html devient innerHTML
|
|
126
|
+
* Cela représente la propriété à mettre à jour sur l'élément lors de la modification d'une des variables liées dans le publicheur.
|
|
127
|
+
* * Propriété "bindedVariablesDescriptor" du DataBindItem : voir la fonction getVariablesDescriptor
|
|
128
|
+
*/
|
|
129
|
+
static getDataBindItems(element) {
|
|
130
|
+
if (!("attributes" in element))
|
|
131
|
+
return [];
|
|
132
|
+
return Array.from(element.attributes)
|
|
133
|
+
.filter((attribute) => attribute.name.indexOf("::") == 0)
|
|
134
|
+
.map((e) => {
|
|
135
|
+
const name = e.name.substring(2);
|
|
136
|
+
return {
|
|
137
|
+
propertyToUpdate: name.replace(/-((html)|\w)/g, (match) => match.substring(1).toUpperCase()),
|
|
138
|
+
bindedVariablesDescriptor: DataBindObserver.getVariablesDescriptor(e.value),
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Cette fonction récuperer le (sous) publisher a l'adresse donnée.
|
|
144
|
+
* Si l'une des clef de l'adresse est _self_, on garde le publisher courant et on passe à la suite.
|
|
145
|
+
* Ceci est un cas spécial, c'est pour ça qu'on utilisa pes Objects.traverse.
|
|
146
|
+
* Il y a toujours un publisher quelque soit l'adresse ce qui permet de cibler des valeurs qui n'existent pas encore
|
|
147
|
+
*/
|
|
148
|
+
static getSubPublisher(pub, pathArray) {
|
|
149
|
+
if (!pathArray)
|
|
150
|
+
return pub;
|
|
151
|
+
for (const key of pathArray) {
|
|
152
|
+
if (key == "_self_")
|
|
153
|
+
continue;
|
|
154
|
+
if (!pub)
|
|
155
|
+
return null;
|
|
156
|
+
pub = pub[key];
|
|
157
|
+
}
|
|
158
|
+
return pub;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* La liaison avec le publisher est faite ici.
|
|
162
|
+
* TODO Sans doute factoriser
|
|
163
|
+
*/
|
|
164
|
+
static addPublisherListeners(target) {
|
|
165
|
+
DataBindObserver.removePublisherListeners(target);
|
|
166
|
+
/**
|
|
167
|
+
* On récupère le publisher viea le dataProvider d'un ancêtre de l'élément.
|
|
168
|
+
*/
|
|
169
|
+
const dataProviderId = HTML.getAncestorAttributeValue((target.parentNode || target.host || target), "dataProvider");
|
|
170
|
+
if (!dataProviderId)
|
|
171
|
+
return;
|
|
172
|
+
const publisher = PublisherManager.getInstance().get(dataProviderId);
|
|
173
|
+
const dataBindItems = DataBindObserver.getDataBindItems(target);
|
|
174
|
+
const conf = [];
|
|
175
|
+
/**
|
|
176
|
+
* Pour chaque attribut => dataBindItems on fait la liaison avec les (sous) publishers associés aux variables extraites
|
|
177
|
+
* Lorsqu'une assignation est faite sur un des publishers liés, on met à jour la propriété de target dont le nom est renseigne dans l'attribut "propertyToUpdate du databindItem".
|
|
178
|
+
* Cette mise à jour est effectuée dans la fonction onAssign.
|
|
179
|
+
* On peut utiliser les fonctions présentes dans Format.ts notamment Format.js qui permet par exemple d'interpréter des expressions js simples.
|
|
180
|
+
* Attentions, les Objets/tableaus sont rendus en chaine avant l'interprétation dans ce cas.
|
|
181
|
+
*/
|
|
182
|
+
dataBindItems.forEach((dataBindItem) => {
|
|
183
|
+
const bindedVariablesDescriptor = dataBindItem.bindedVariablesDescriptor;
|
|
184
|
+
const propertyToUpdate = dataBindItem.propertyToUpdate;
|
|
185
|
+
for (const value of bindedVariablesDescriptor.variables) {
|
|
186
|
+
const publisherPathArray = value;
|
|
187
|
+
let pub = publisher;
|
|
188
|
+
pub = DataBindObserver.getSubPublisher(publisher, publisherPathArray);
|
|
189
|
+
const rec = target;
|
|
190
|
+
const currentConf = {
|
|
191
|
+
publisher: pub,
|
|
192
|
+
onAssign: () => {
|
|
193
|
+
const values = bindedVariablesDescriptor.variables.map((dataPath) => {
|
|
194
|
+
return DataBindObserver.getSubPublisher(publisher, dataPath)?.get();
|
|
195
|
+
});
|
|
196
|
+
let expression = bindedVariablesDescriptor.expression;
|
|
197
|
+
let hasUndeterminatedValue = false;
|
|
198
|
+
/*
|
|
199
|
+
* Si il n'y a qu'une variable on injecte la variable brute ce qui permet d'utiliser des objets composites
|
|
200
|
+
* Dans le cas des des expressions complexes (plus bas, avec plusieurs variables) les objets deviennent des chaines de caractères.)
|
|
201
|
+
*/
|
|
202
|
+
if (values.length == 1 && bindedVariablesDescriptor.variables[0].join(".") == expression.substring(1)) {
|
|
203
|
+
let value = values[0];
|
|
204
|
+
if (value === null
|
|
205
|
+
// ||
|
|
206
|
+
// ( Objects.isObject(value) &&
|
|
207
|
+
// value.hasOwnProperty("__value") &&
|
|
208
|
+
// (Objects.isUndefindOrNull(value.__value) || value.__value === "") )
|
|
209
|
+
) {
|
|
210
|
+
value = "";
|
|
211
|
+
}
|
|
212
|
+
rec[propertyToUpdate] = value;
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Expressions avec plusieurs variables
|
|
217
|
+
*/
|
|
218
|
+
for (let i = 0; i < values.length; i++) {
|
|
219
|
+
let value = values[i];
|
|
220
|
+
const variable = bindedVariablesDescriptor.variables[i];
|
|
221
|
+
if (value === null) {
|
|
222
|
+
hasUndeterminatedValue = true;
|
|
223
|
+
value = undefined;
|
|
224
|
+
}
|
|
225
|
+
expression = expression.replace("$" + variable.join("."), value);
|
|
226
|
+
}
|
|
227
|
+
if (expression.indexOf("|") != -1) {
|
|
228
|
+
const funcDelimiterIdx = expression.indexOf("|");
|
|
229
|
+
if (funcDelimiterIdx == 0) {
|
|
230
|
+
expression = Format.js(expression.substring(1));
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
const funcName = expression.substring(0, funcDelimiterIdx);
|
|
234
|
+
const funcArgs = expression.substring(funcDelimiterIdx + 1);
|
|
235
|
+
const fmtFunc = Format[funcName];
|
|
236
|
+
expression = hasUndeterminatedValue ? "" : fmtFunc ? fmtFunc(funcArgs) : expression;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
expression = hasUndeterminatedValue ? "" : expression;
|
|
241
|
+
}
|
|
242
|
+
rec[propertyToUpdate] = expression;
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
pub?.onAssign(currentConf.onAssign);
|
|
246
|
+
conf.push(currentConf);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
DataBindObserver.publisherListeners.set(target, conf);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Maintient la liste des éléments observés de manière à pouvoir les désinscrire quand ils sont supprimés.
|
|
254
|
+
*/
|
|
255
|
+
DataBindObserver.observedElements = new Map();
|
|
256
|
+
/**
|
|
257
|
+
* Commencer à observer un élément html.
|
|
258
|
+
*/
|
|
259
|
+
DataBindObserver.enabled = true;
|
|
260
|
+
DataBindObserver.publisherListeners = new Map();
|
|
261
|
+
export default DataBindObserver;
|
|
262
|
+
DataBindObserver.observe(document.documentElement);
|
|
263
|
+
if (!window.SonicDataBindObserver)
|
|
264
|
+
window.SonicDataBindObserver = DataBindObserver;
|
|
265
|
+
//# sourceMappingURL=DataBindObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataBindObserver.js","sourceRoot":"","sources":["../../../../src/core/utils/DataBindObserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default class Electron {
|
|
2
|
+
static fixBlankLink(link) {
|
|
3
|
+
const electronStr = "electron";
|
|
4
|
+
const electron = typeof require == "undefined" || typeof process != "object"
|
|
5
|
+
? null
|
|
6
|
+
: require(electronStr);
|
|
7
|
+
if (typeof electron && link.target == "_blank") {
|
|
8
|
+
link.addEventListener("click", () => {
|
|
9
|
+
electron?.shell.openExternal(link.href);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Electron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Electron.js","sourceRoot":"","sources":["../../../../src/core/utils/Electron.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,YAAY,CAAC,IAInB;QACC,MAAM,WAAW,GAAG,UAAU,CAAC;QAC/B,MAAM,QAAQ,GACZ,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,OAAO,IAAI,QAAQ;YACzD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3B,IAAI,OAAO,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import HTML from "@supersoniks/concorde/core/utils/HTML";
|
|
2
|
+
class Format {
|
|
3
|
+
/**
|
|
4
|
+
* Passe le premier caractère de la chaine en majuscule
|
|
5
|
+
*/
|
|
6
|
+
static ucFirst(str) {
|
|
7
|
+
if (typeof str != "string")
|
|
8
|
+
return str;
|
|
9
|
+
return str.charAt(0).toUpperCase() + str.substring(1);
|
|
10
|
+
}
|
|
11
|
+
static minutesDuration(minutes, locale = "", unitDisplay = "long") {
|
|
12
|
+
if (!locale)
|
|
13
|
+
locale = HTML.getLanguage();
|
|
14
|
+
const divMod = (n, m) => [Math.floor(n / m), n % m];
|
|
15
|
+
function timeUnitFormatter(locale, unit, unitDisplay) {
|
|
16
|
+
return new Intl.NumberFormat(locale, { style: "unit", unit, unitDisplay })
|
|
17
|
+
.format;
|
|
18
|
+
}
|
|
19
|
+
const [hrs, mins] = divMod(minutes, 60);
|
|
20
|
+
const list = [];
|
|
21
|
+
if (hrs)
|
|
22
|
+
list.push(timeUnitFormatter(locale, "hour", unitDisplay)(hrs));
|
|
23
|
+
if (mins)
|
|
24
|
+
list.push(timeUnitFormatter(locale, "minute", unitDisplay)(mins));
|
|
25
|
+
return new Intl.ListFormat(locale, {
|
|
26
|
+
style: "long",
|
|
27
|
+
type: "conjunction",
|
|
28
|
+
}).format(list);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Retourne le résultat de l'évaluation de la chaine fournie
|
|
32
|
+
*/
|
|
33
|
+
static js(value) {
|
|
34
|
+
try {
|
|
35
|
+
return Function("return " + value)();
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export default Format;
|
|
43
|
+
//# sourceMappingURL=Format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Format.js","sourceRoot":"","sources":["../../../../src/core/utils/Format.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,uCAAuC,CAAC;AAYzD,MAAM,MAAM;IACV;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,GAAW;QACxB,IAAI,OAAO,GAAG,IAAI,QAAQ;YAAE,OAAO,GAAG,CAAC;QACvC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,eAAe,CACpB,OAAe,EACf,SAAiB,EAAE,EACnB,cAAuD,MAAM;QAE7D,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,SAAS,iBAAiB,CACxB,MAAc,EACd,IAAY,EACZ,WAAoD;YAEpD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;iBACvE,MAAM,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAa;QACrB,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AACD,eAAe,MAAM,CAAC"}
|