@onetype/framework 2.0.42 → 2.0.44
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/addons/ai/addon.js +78 -0
- package/addons/ai/addons/agents/item/functions/describe.js +28 -0
- package/addons/ai/addons/agents/item/functions/execute.js +41 -0
- package/addons/ai/addons/agents/item/functions/messages.js +38 -0
- package/addons/ai/addons/agents/item/functions/run.js +49 -0
- package/addons/ai/addons/agents/item/functions/schema.js +45 -0
- package/addons/ai/addons/agents/load.js +9 -0
- package/addons/ai/addons/orchestrators/item/functions/agents/execute.js +14 -0
- package/addons/ai/addons/orchestrators/item/functions/agents/steps.js +23 -0
- package/addons/ai/addons/orchestrators/item/functions/modes/action.js +131 -0
- package/addons/ai/addons/orchestrators/item/functions/run.js +28 -0
- package/addons/ai/addons/orchestrators/item/functions/utils/emit.js +11 -0
- package/addons/ai/addons/orchestrators/item/functions/utils/history.js +8 -0
- package/addons/ai/addons/orchestrators/item/functions/utils/state.js +29 -0
- package/addons/ai/addons/orchestrators/load.js +15 -0
- package/addons/ai/addons/pipelines/functions/execute.js +56 -0
- package/addons/ai/addons/pipelines/functions/run.js +72 -0
- package/addons/ai/addons/pipelines/load.js +6 -0
- package/addons/ai/addons/providers/functions/default.js +8 -0
- package/addons/ai/addons/providers/item/functions/request.js +108 -0
- package/addons/ai/addons/providers/items/nue.js +69 -0
- package/addons/ai/addons/providers/items/ollama.js +79 -0
- package/addons/ai/addons/providers/load.js +8 -0
- package/addons/ai/items/agents/steps.js +159 -0
- package/addons/ai/items/agents/summary.js +29 -0
- package/addons/ai/items/orchestrators/general.js +7 -0
- package/addons/ai/load.js +13 -0
- package/addons/ai/test/agents.js +149 -0
- package/addons/ai/test/index.js +63 -0
- package/addons/core/assets/back/functions/utils/transform.js +21 -23
- package/addons/core/assets/back/items/html/css.js +2 -2
- package/addons/core/assets/back/items/html/js.js +2 -2
- package/addons/core/clients/back/http/item/functions/gRPC/create.js +3 -3
- package/addons/core/clients/back/http/item/functions/http/create.js +3 -3
- package/addons/core/commands/back/functions/grpc/client.js +3 -3
- package/addons/core/commands/back/functions/grpc/server.js +2 -2
- package/addons/core/commands/core/addon.js +2 -1
- package/addons/core/commands/core/functions/run.js +1 -1
- package/addons/core/commands/core/item/functions/run.js +1 -1
- package/addons/core/commands/core/load.js +27 -9
- package/addons/core/database/back/events/addon.add.js +1 -1
- package/addons/core/database/back/events/middleware/addon.items.find.js +2 -2
- package/addons/core/database/back/events/middleware/item.crud.create.js +2 -2
- package/addons/core/database/back/events/middleware/item.crud.delete.js +2 -2
- package/addons/core/database/back/events/middleware/item.crud.update.js +2 -2
- package/addons/core/database/back/item/functions/create.js +4 -3
- package/addons/core/database/back/item/functions/delete.js +1 -1
- package/addons/core/database/back/item/functions/find.js +1 -1
- package/addons/core/database/back/item/functions/update.js +3 -3
- package/addons/core/database/front/events/addon.add.js +1 -1
- package/addons/core/servers/back/grpc/item/functions/start.js +1 -1
- package/addons/core/servers/back/http/item/functions/start.js +6 -6
- package/addons/float/overlays/css/overlay.css +35 -0
- package/addons/float/overlays/js/addon.js +18 -0
- package/addons/float/overlays/js/events/click.js +27 -0
- package/addons/float/overlays/js/events/escape.js +18 -0
- package/addons/float/overlays/js/functions/flip.js +51 -0
- package/addons/float/overlays/js/functions/index.js +17 -0
- package/addons/float/overlays/js/functions/position.js +62 -0
- package/addons/float/overlays/js/functions/reposition.js +29 -0
- package/addons/float/overlays/js/item/catch/add.js +123 -0
- package/addons/float/overlays/js/item/catch/remove.js +29 -0
- package/addons/float/popup/css/popup.css +93 -0
- package/addons/float/popup/js/addon.js +34 -0
- package/addons/float/popup/js/functions/close.js +25 -0
- package/addons/float/popup/js/functions/modal.js +31 -0
- package/addons/float/popup/js/functions/popup.js +21 -0
- package/addons/float/popup/js/functions/toast.js +55 -0
- package/addons/float/popup/js/functions/tooltip.js +34 -0
- package/addons/float/popup/js/items/directives/popup.js +58 -0
- package/addons/float/popup/js/items/directives/tooltip.js +72 -0
- package/addons/render/directives/front/{js/#register/addon.js → addon.js} +8 -8
- package/addons/render/directives/front/{js/functions → functions}/process/attributes.js +7 -2
- package/addons/render/directives/front/{js/functions → functions}/process/match.js +14 -9
- package/addons/render/directives/front/functions/process.js +88 -0
- package/{lib/items/directives → addons/render/directives/front/items/self}/1000-render.js +1 -0
- package/{lib/items/directives → addons/render/directives/front/items/self}/110-show.js +3 -5
- package/{lib/items/directives → addons/render/directives/front/items/self}/160-slot.js +1 -0
- package/{lib/items/directives → addons/render/directives/front/items/self}/200-for.js +3 -3
- package/addons/render/directives/front/items/self/2000-base.js +45 -0
- package/addons/render/directives/front/items/self/500-click-outside.js +45 -0
- package/addons/render/directives/front/items/self/500-events.js +68 -0
- package/addons/render/directives/front/items/self/500-mouse-enter.js +62 -0
- package/addons/render/directives/front/items/self/500-mouse-leave.js +62 -0
- package/{lib/items/directives → addons/render/directives/front/items/self}/650-fetch.js +2 -3
- package/{lib/items/directives → addons/render/directives/front/items/self}/660-form.js +5 -6
- package/addons/render/directives/front/items/self/750-node.js +43 -0
- package/addons/render/elements/front/items/directives/element.js +7 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/cards/pricing/pricing.js +2 -2
- package/addons/render/elements/front/items/self/core/builder/builder.css +180 -0
- package/addons/render/elements/front/items/self/core/builder/builder.js +257 -0
- package/addons/render/elements/front/items/self/core/repeater/repeater.css +197 -0
- package/addons/render/elements/front/items/self/core/repeater/repeater.js +224 -0
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.js +2 -2
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/checkbox/checkbox.js +21 -8
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/color/color.css +28 -0
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/color/color.js +35 -13
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/date/date.js +3 -4
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/input/input.js +40 -4
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/radio/radio.js +24 -6
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.js +2 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/select/select.js +3 -7
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.js +89 -74
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/tags/tags.js +5 -5
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/textarea/textarea.js +41 -6
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/toggle/toggle.css +4 -0
- package/{lib/items/elements → addons/render/elements/front/items/self}/form/toggle/toggle.js +7 -8
- package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.js +3 -4
- package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.js +2 -2
- package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.js +6 -17
- package/addons/render/elements/front/items/self/global/markdown/markdown.js +26 -0
- package/{lib/items/elements → addons/render/elements/front/items/self}/global/menu/menu.js +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.js +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.js +5 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.js +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.js +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.css +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.css +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.js +4 -0
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.css +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.js +1 -1
- package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.css +8 -1
- package/addons/render/html/load.js +0 -1
- package/addons/render/pages/core/addon.js +16 -1
- package/addons/render/pages/core/load.js +1 -1
- package/addons/render/pages/front/events/click.js +2 -2
- package/addons/render/pages/front/events/load.js +6 -16
- package/addons/render/pages/front/functions/change.js +21 -110
- package/addons/render/pages/front/functions/match.js +2 -3
- package/addons/render/pages/front/functions/open.js +3 -35
- package/addons/render/pages/front/functions/resolve.js +30 -0
- package/addons/render/pages/front/item/catch/add.js +12 -10
- package/addons/render/pages/front/item/catch/remove.js +5 -7
- package/addons/render/pages/front/item/functions/enter.js +15 -28
- package/addons/render/pages/front/item/functions/leave.js +6 -8
- package/addons/render/pages/front/items/commands/change.js +60 -0
- package/addons/render/pages/front/items/commands/list.js +38 -0
- package/addons/render/pages/front/items/directives/change.js +1 -1
- package/addons/render/transforms/css/transforms.css +4 -0
- package/addons/render/transforms/{addon.js → js/addon.js} +7 -0
- package/addons/render/transforms/js/item/functions/run.js +87 -0
- package/addons/services/cloudflare/images/back/addon.js +23 -0
- package/addons/services/cloudflare/images/back/expose.js +22 -0
- package/addons/services/cloudflare/images/back/functions/api.js +47 -0
- package/addons/services/cloudflare/images/back/functions/meta/detect.js +28 -0
- package/addons/services/cloudflare/images/back/functions/meta/dimensions/gif.js +11 -0
- package/addons/services/cloudflare/images/back/functions/meta/dimensions/jpeg.js +31 -0
- package/addons/services/cloudflare/images/back/functions/meta/dimensions/png.js +11 -0
- package/addons/services/cloudflare/images/back/functions/meta/dimensions/webp.js +36 -0
- package/addons/services/cloudflare/images/back/functions/meta.js +16 -0
- package/addons/services/cloudflare/images/back/items/commands/delete.js +38 -0
- package/addons/services/cloudflare/images/back/items/commands/get.js +56 -0
- package/addons/services/cloudflare/images/back/items/commands/list.js +49 -0
- package/addons/services/cloudflare/images/back/items/commands/upload.js +79 -0
- package/addons/services/cloudflare/images/back/load.js +21 -0
- package/addons/services/cloudflare/images/front/items/elements/browse/browse.css +235 -0
- package/addons/services/cloudflare/images/front/items/elements/browse/browse.js +193 -0
- package/addons/services/cloudflare/images/front/items/elements/input/input.css +154 -0
- package/addons/services/cloudflare/images/front/items/elements/input/input.js +147 -0
- package/addons/services/cloudflare/images/sql.txt +43 -0
- package/lib/browser.js +16 -1
- package/lib/events.js +12 -12
- package/lib/load.js +11 -49
- package/lib/src/classes/addon/class.js +1 -2
- package/lib/src/classes/addon/classes/item/mixins/get.js +3 -3
- package/lib/src/classes/addon/classes/item/mixins/set.js +3 -5
- package/lib/src/classes/addon/classes/item/mixins/store.js +1 -1
- package/lib/src/classes/addon/classes/render/class.js +8 -22
- package/lib/src/classes/addon/classes/render/mixins/compile.js +6 -4
- package/lib/src/classes/addon/classes/render/mixins/dom.js +3 -1
- package/lib/src/classes/addon/classes/render/mixins/events.js +30 -43
- package/lib/src/classes/addon/classes/render/mixins/get.js +0 -5
- package/lib/src/classes/addon/classes/render/mixins/methods.js +105 -40
- package/lib/src/classes/addon/classes/render/mixins/process.js +7 -3
- package/lib/src/classes/addon/classes/render/mixins/set.js +3 -1
- package/lib/src/classes/addon/mixins/fields.js +4 -6
- package/lib/src/classes/addon/mixins/functions.js +11 -11
- package/lib/src/classes/addon/mixins/items.js +17 -9
- package/lib/src/classes/addon/mixins/render.js +1 -1
- package/lib/src/classes/addon/mixins/table.js +1 -1
- package/lib/src/classes/error/class.js +10 -0
- package/lib/src/mixins/addons.js +7 -20
- package/lib/src/mixins/assets.js +1 -1
- package/lib/src/mixins/base.js +14 -0
- package/lib/src/mixins/data.js +14 -14
- package/lib/src/mixins/dependencies.js +5 -5
- package/lib/src/mixins/dom.js +204 -201
- package/lib/src/mixins/emitter.js +13 -14
- package/lib/src/mixins/error.js +14 -1
- package/lib/src/mixins/function.js +1 -0
- package/lib/src/mixins/generate.js +1 -1
- package/lib/src/mixins/helper.js +3 -31
- package/lib/{items/elements/global/markdown → src/mixins}/markdown.js +90 -139
- package/lib/src/mixins/middleware.js +2 -2
- package/lib/src/mixins/observer.js +337 -0
- package/lib/src/mixins/request.js +2 -2
- package/lib/src/mixins/state.js +17 -3
- package/lib/src/onetype.js +13 -18
- package/lib/styles/classes/layout.css +1 -3
- package/lib/styles/variables.css +2 -1
- package/package.json +5 -7
- package/README.md +0 -86
- package/addons/ai/agents/addon.js +0 -23
- package/addons/ai/agents/functions/parse.js +0 -129
- package/addons/ai/agents/item/functions/run.js +0 -218
- package/addons/ai/agents/load.js +0 -8
- package/addons/ai/orchestrator/addon.js +0 -25
- package/addons/ai/orchestrator/item/functions/run.js +0 -277
- package/addons/ai/orchestrator/item/functions/state/agent.js +0 -41
- package/addons/ai/orchestrator/item/functions/state/conclusion.js +0 -27
- package/addons/ai/orchestrator/item/functions/state/done.js +0 -40
- package/addons/ai/orchestrator/item/functions/state/execute.js +0 -16
- package/addons/ai/orchestrator/item/functions/state/goal.js +0 -34
- package/addons/ai/orchestrator/item/functions/state/input.js +0 -55
- package/addons/ai/orchestrator/item/functions/state/summary.js +0 -26
- package/addons/ai/orchestrator/items/agents/achievable.js +0 -37
- package/addons/ai/orchestrator/items/agents/agent.js +0 -46
- package/addons/ai/orchestrator/items/agents/conclusion.js +0 -41
- package/addons/ai/orchestrator/items/agents/done.js +0 -40
- package/addons/ai/orchestrator/items/agents/goal.js +0 -58
- package/addons/ai/orchestrator/items/agents/input.js +0 -34
- package/addons/ai/orchestrator/items/agents/planner.js +0 -30
- package/addons/ai/orchestrator/items/agents/summary.js +0 -29
- package/addons/ai/orchestrator/items/chat.js +0 -10
- package/addons/ai/orchestrator/load.js +0 -25
- package/addons/ai/providers/addon.js +0 -16
- package/addons/ai/providers/functions/default.js +0 -14
- package/addons/ai/providers/item/functions/request.js +0 -62
- package/addons/ai/providers/items/nue.js +0 -98
- package/addons/ai/providers/load.js +0 -10
- package/addons/core/queue/index.js +0 -66
- package/addons/float/modals/front/css/modals.css +0 -26
- package/addons/float/modals/front/js/addon.js +0 -10
- package/addons/float/modals/front/js/item/catch/add.js +0 -48
- package/addons/float/modals/front/js/item/catch/remove.js +0 -9
- package/addons/float/overlays/front/css/overlays.css +0 -29
- package/addons/float/overlays/front/js/addon.js +0 -17
- package/addons/float/overlays/front/js/events/click.js +0 -27
- package/addons/float/overlays/front/js/events/escape.js +0 -18
- package/addons/float/overlays/front/js/functions/flip.js +0 -74
- package/addons/float/overlays/front/js/functions/index.js +0 -17
- package/addons/float/overlays/front/js/functions/position.js +0 -63
- package/addons/float/overlays/front/js/item/catch/add.js +0 -121
- package/addons/float/overlays/front/js/item/catch/remove.js +0 -16
- package/addons/float/popups/css/popups.css +0 -4
- package/addons/float/popups/js/addon.js +0 -18
- package/addons/float/popups/js/item/catch/add.js +0 -7
- package/addons/float/popups/js/item/catch/remove.js +0 -7
- package/addons/float/popups/js/item/catch/set.js +0 -73
- package/addons/float/popups/js/items/directives/popup.js +0 -54
- package/addons/float/toasts/addon.js +0 -17
- package/addons/float/toasts/item/catch/add.js +0 -7
- package/addons/float/toasts/item/catch/remove.js +0 -7
- package/addons/float/toasts/item/catch/set.js +0 -86
- package/addons/float/toasts/items/elements/toast/toast.css +0 -84
- package/addons/float/toasts/items/elements/toast/toast.js +0 -61
- package/addons/float/tooltips/addon.js +0 -15
- package/addons/float/tooltips/item/catch/add.js +0 -7
- package/addons/float/tooltips/item/catch/remove.js +0 -26
- package/addons/float/tooltips/item/catch/set.js +0 -65
- package/addons/float/tooltips/items/directives/tooltip.js +0 -74
- package/addons/float/tooltips/items/elements/tooltip.css +0 -64
- package/addons/float/tooltips/items/elements/tooltip.js +0 -42
- package/addons/render/directives/front/js/functions/process.js +0 -57
- package/addons/render/html/items/seo/theme-color.js +0 -12
- package/addons/render/transforms/item/functions/run.js +0 -18
- package/docs/addons.md +0 -281
- package/docs/architecture.md +0 -238
- package/docs/commands.md +0 -308
- package/docs/database.md +0 -171
- package/docs/frontend.md +0 -396
- package/docs/servers.md +0 -187
- package/examples/basic-api/README.md +0 -34
- package/examples/basic-api/addons/tasks/addon.js +0 -10
- package/examples/basic-api/addons/tasks/items/commands/create.js +0 -22
- package/examples/basic-api/addons/tasks/items/commands/delete.js +0 -26
- package/examples/basic-api/addons/tasks/items/commands/list.js +0 -17
- package/examples/basic-api/addons/tasks/items/commands/toggle.js +0 -26
- package/examples/basic-api/addons/tasks/load.js +0 -8
- package/examples/basic-api/index.js +0 -15
- package/examples/basic-api/package.json +0 -7
- package/examples/basic-front/back/assets.js +0 -12
- package/examples/basic-front/back/index.js +0 -13
- package/examples/basic-front/back/items/commands/html.js +0 -14
- package/examples/basic-front/back/items/commands/test.js +0 -19
- package/examples/basic-front/back/items/html/fonts.js +0 -12
- package/examples/basic-front/front/pages/home.js +0 -16
- package/examples/basic-front/front/styles/main.css +0 -31
- package/examples/basic-front/front/test.js +0 -7
- package/examples/basic-front/package.json +0 -7
- package/lib/items/directives/500-blur.js +0 -46
- package/lib/items/directives/500-change.js +0 -53
- package/lib/items/directives/500-click-outside.js +0 -50
- package/lib/items/directives/500-click.js +0 -52
- package/lib/items/directives/500-double-click.js +0 -52
- package/lib/items/directives/500-focus.js +0 -46
- package/lib/items/directives/500-input.js +0 -46
- package/lib/items/directives/500-keydown.js +0 -53
- package/lib/items/directives/500-keyup.js +0 -53
- package/lib/items/directives/500-mouse-enter.js +0 -61
- package/lib/items/directives/500-mouse-leave.js +0 -61
- package/lib/items/directives/500-mouse-move.js +0 -45
- package/lib/items/directives/500-scroll.js +0 -45
- package/lib/items/directives/500-submit.js +0 -52
- package/lib/items/elements/ai/chat/chat.css +0 -710
- package/lib/items/elements/ai/chat/chat.js +0 -429
- package/lib/src/mixins/logger.js +0 -83
- package/lib/styles/queries.css +0 -6
- package/lists.md +0 -586
- package/orchestrator.md +0 -288
- /package/addons/modules/shortcuts/front/{#register/addon.js → addon.js} +0 -0
- /package/addons/render/directives/front/{js/functions → functions}/process/data.js +0 -0
- /package/{lib/items/directives → addons/render/directives/front/items/self}/100-if.js +0 -0
- /package/{lib/items/directives → addons/render/directives/front/items/self}/700-text.js +0 -0
- /package/{lib/items/directives → addons/render/directives/front/items/self}/750-html.js +0 -0
- /package/addons/render/elements/front/{#register/addon.js → addon.js} +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/cards/pricing/pricing.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/checkbox/checkbox.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/date/date.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.js +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/input/input.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/radio/radio.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.js +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/select/select.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/tags/tags.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/form/textarea/textarea.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/markdown/markdown.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/menu/menu.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.js +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.js +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.css +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.js +0 -0
- /package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.js +0 -0
- /package/addons/render/transforms/{functions → js/functions}/data.js +0 -0
- /package/addons/render/transforms/{functions → js/functions}/run.js +0 -0
- /package/addons/render/transforms/{functions → js/functions}/runtime.js +0 -0
- /package/addons/render/transforms/{item → js/item}/functions/load.js +0 -0
- /package/addons/render/transforms/{items/directives → js/items/self}/transform.js +0 -0
package/lib/load.js
CHANGED
|
@@ -3,7 +3,7 @@ import OneType from './src/onetype.js';
|
|
|
3
3
|
const onetype = new OneType();
|
|
4
4
|
|
|
5
5
|
/* Framework */
|
|
6
|
-
onetype.Assets('framework', import.meta.url, { js: { path: '.', exclude: ['load.js', '
|
|
6
|
+
onetype.Assets('framework', import.meta.url, { js: { path: '.', exclude: ['load.js', 'styles'] } });
|
|
7
7
|
onetype.Assets('styles', import.meta.url, { css: 'styles' });
|
|
8
8
|
|
|
9
9
|
/* Core */
|
|
@@ -20,60 +20,22 @@ onetype.Assets('shortcuts', import.meta.url, { js: '../addons/modules/shortcuts/
|
|
|
20
20
|
onetype.Assets('sources', import.meta.url, { js: '../addons/modules/sources/front' });
|
|
21
21
|
|
|
22
22
|
/* Render */
|
|
23
|
-
onetype.Assets('directives', import.meta.url, { js: '../addons/render/directives/front' });
|
|
24
|
-
onetype.Assets('directives/items', import.meta.url, { js: 'items/
|
|
25
|
-
onetype.Assets('transforms', import.meta.url, { js: '../addons/render/transforms' });
|
|
23
|
+
onetype.Assets('directives', import.meta.url, { js: { path: '../addons/render/directives/front', exclude: ['../addons/render/directives/front/items/self'] } });
|
|
24
|
+
onetype.Assets('directives/items', import.meta.url, { js: '../addons/render/directives/front/items/self' });
|
|
25
|
+
onetype.Assets('transforms', import.meta.url, { js: { path: '../addons/render/transforms/js', exclude: ['../addons/render/transforms/js/items/self'] }, css: '../addons/render/transforms/css' });
|
|
26
|
+
onetype.Assets('transforms/items', import.meta.url, { js: '../addons/render/transforms/js/items/self' });
|
|
26
27
|
onetype.Assets('pages', import.meta.url, { js: '../addons/render/pages', css: '../addons/render/pages/front' });
|
|
27
|
-
onetype.Assets('elements', import.meta.url, { js: '../addons/render/elements/front', css: '../addons/render/elements/front' });
|
|
28
|
+
onetype.Assets('elements', import.meta.url, { js: { path: '../addons/render/elements/front', exclude: ['../addons/render/elements/front/items/self'] }, css: { path: '../addons/render/elements/front', exclude: ['../addons/render/elements/front/items/self'] } });
|
|
29
|
+
onetype.Assets('elements/items', import.meta.url, { js: '../addons/render/elements/front/items/self', css: '../addons/render/elements/front/items/self' });
|
|
28
30
|
|
|
29
31
|
/* Float */
|
|
30
32
|
onetype.Assets('float', import.meta.url, { js: '../addons/float', css: '../addons/float' });
|
|
31
33
|
|
|
32
34
|
/* AI */
|
|
33
|
-
onetype.Assets('ai', import.meta.url, { js: '../addons/ai' });
|
|
34
|
-
|
|
35
|
-
/*
|
|
36
|
-
onetype.Assets('
|
|
37
|
-
onetype.Assets('elements/form/checkbox', import.meta.url, { js: 'items/elements/form/checkbox', css: 'items/elements/form/checkbox' });
|
|
38
|
-
onetype.Assets('elements/form/color', import.meta.url, { js: 'items/elements/form/color', css: 'items/elements/form/color' });
|
|
39
|
-
onetype.Assets('elements/form/date', import.meta.url, { js: 'items/elements/form/date', css: 'items/elements/form/date' });
|
|
40
|
-
onetype.Assets('elements/form/field', import.meta.url, { js: 'items/elements/form/field', css: 'items/elements/form/field' });
|
|
41
|
-
onetype.Assets('elements/form/input', import.meta.url, { js: 'items/elements/form/input', css: 'items/elements/form/input' });
|
|
42
|
-
onetype.Assets('elements/form/radio', import.meta.url, { js: 'items/elements/form/radio', css: 'items/elements/form/radio' });
|
|
43
|
-
onetype.Assets('elements/form/rating', import.meta.url, { js: 'items/elements/form/rating', css: 'items/elements/form/rating' });
|
|
44
|
-
onetype.Assets('elements/form/section', import.meta.url, { js: 'items/elements/form/section', css: 'items/elements/form/section' });
|
|
45
|
-
onetype.Assets('elements/form/select', import.meta.url, { js: 'items/elements/form/select', css: 'items/elements/form/select' });
|
|
46
|
-
onetype.Assets('elements/form/slider', import.meta.url, { js: 'items/elements/form/slider', css: 'items/elements/form/slider' });
|
|
47
|
-
onetype.Assets('elements/form/tags', import.meta.url, { js: 'items/elements/form/tags', css: 'items/elements/form/tags' });
|
|
48
|
-
onetype.Assets('elements/form/textarea', import.meta.url, { js: 'items/elements/form/textarea', css: 'items/elements/form/textarea' });
|
|
49
|
-
onetype.Assets('elements/form/toggle', import.meta.url, { js: 'items/elements/form/toggle', css: 'items/elements/form/toggle' });
|
|
50
|
-
|
|
51
|
-
/* Elements — Global */
|
|
52
|
-
onetype.Assets('elements/global/code', import.meta.url, { js: 'items/elements/global/code', css: 'items/elements/global/code' });
|
|
53
|
-
onetype.Assets('elements/global/faq', import.meta.url, { js: 'items/elements/global/faq', css: 'items/elements/global/faq' });
|
|
54
|
-
onetype.Assets('elements/global/heading', import.meta.url, { js: 'items/elements/global/heading', css: 'items/elements/global/heading' });
|
|
55
|
-
onetype.Assets('elements/global/markdown', import.meta.url, { js: 'items/elements/global/markdown', css: 'items/elements/global/markdown' });
|
|
56
|
-
onetype.Assets('elements/global/menu', import.meta.url, { js: 'items/elements/global/menu', css: 'items/elements/global/menu' });
|
|
57
|
-
onetype.Assets('elements/global/notice', import.meta.url, { js: 'items/elements/global/notice', css: 'items/elements/global/notice' });
|
|
58
|
-
onetype.Assets('elements/global/parameters', import.meta.url, { js: 'items/elements/global/parameters', css: 'items/elements/global/parameters' });
|
|
59
|
-
onetype.Assets('elements/global/tags', import.meta.url, { js: 'items/elements/global/tags', css: 'items/elements/global/tags' });
|
|
60
|
-
|
|
61
|
-
/* Elements — Cards */
|
|
62
|
-
onetype.Assets('elements/cards/pricing', import.meta.url, { js: 'items/elements/cards/pricing', css: 'items/elements/cards/pricing' });
|
|
63
|
-
|
|
64
|
-
/* Elements — Navigation */
|
|
65
|
-
onetype.Assets('elements/navigation/navbar', import.meta.url, { js: 'items/elements/navigation/navbar', css: 'items/elements/navigation/navbar' });
|
|
66
|
-
onetype.Assets('elements/navigation/sidebar', import.meta.url, { js: 'items/elements/navigation/sidebar', css: 'items/elements/navigation/sidebar' });
|
|
67
|
-
onetype.Assets('elements/navigation/tabs', import.meta.url, { js: 'items/elements/navigation/tabs', css: 'items/elements/navigation/tabs' });
|
|
68
|
-
|
|
69
|
-
/* Elements — AI */
|
|
70
|
-
onetype.Assets('elements/ai/chat', import.meta.url, { js: 'items/elements/ai/chat', css: 'items/elements/ai/chat' });
|
|
71
|
-
|
|
72
|
-
/* Elements — Status */
|
|
73
|
-
onetype.Assets('elements/status/loading', import.meta.url, { js: 'items/elements/status/loading', css: 'items/elements/status/loading' });
|
|
74
|
-
onetype.Assets('elements/status/empty', import.meta.url, { js: 'items/elements/status/empty', css: 'items/elements/status/empty' });
|
|
75
|
-
onetype.Assets('elements/status/error', import.meta.url, { js: 'items/elements/status/error', css: 'items/elements/status/error' });
|
|
76
|
-
onetype.Assets('elements/status/code', import.meta.url, { js: 'items/elements/status/code', css: 'items/elements/status/code' });
|
|
35
|
+
onetype.Assets('ai', import.meta.url, { js: '../addons/ai', css: '../addons/ai' });
|
|
36
|
+
|
|
37
|
+
/* Services */
|
|
38
|
+
onetype.Assets('cloudflare/images', import.meta.url, { js: '../addons/services/cloudflare/images/front', css: '../addons/services/cloudflare/images/front' });
|
|
77
39
|
|
|
78
40
|
global.$ot = onetype.$ot;
|
|
79
41
|
|
|
@@ -48,13 +48,13 @@ const AddonItemGet =
|
|
|
48
48
|
}
|
|
49
49
|
catch(error)
|
|
50
50
|
{
|
|
51
|
-
throw
|
|
51
|
+
throw this.addon.onetype.Error(500, 'Error getting value on field :field:.', {field: key});
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
if(callback)
|
|
55
55
|
{
|
|
56
56
|
this.addon.items.callbacks.get.forEach(callback => callback(this, key, value));
|
|
57
|
-
this.addon.onetype.Emit('addon.item.get', this, key, value);
|
|
57
|
+
this.addon.onetype.Emit('@addon.item.get', this, key, value);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
return value;
|
|
@@ -64,7 +64,7 @@ const AddonItemGet =
|
|
|
64
64
|
{
|
|
65
65
|
let data = {};
|
|
66
66
|
|
|
67
|
-
Object.
|
|
67
|
+
Object.keys(this.data).forEach((key) =>
|
|
68
68
|
{
|
|
69
69
|
data[key] = this.Get(key, callback);
|
|
70
70
|
})
|
|
@@ -35,15 +35,13 @@ const AddonItemSet =
|
|
|
35
35
|
}
|
|
36
36
|
catch(error)
|
|
37
37
|
{
|
|
38
|
-
throw
|
|
38
|
+
throw this.addon.onetype.Error(500, 'Error setting value on field :field:.', {field: key});
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
if(callback)
|
|
42
42
|
{
|
|
43
43
|
this.addon.items.callbacks.modify.forEach(callback => callback(this, key, value, prevValue));
|
|
44
|
-
this.addon.
|
|
45
|
-
this.addon.onetype.Emit('addon.item.modify', this, key, value, prevValue);
|
|
46
|
-
this.addon.onetype.Emit('addon.item.set', this, key, value, prevValue);
|
|
44
|
+
this.addon.onetype.Emit('@addon.item.modify', this, key, value, prevValue);
|
|
47
45
|
}
|
|
48
46
|
|
|
49
47
|
this.data[key] = value;
|
|
@@ -51,7 +49,7 @@ const AddonItemSet =
|
|
|
51
49
|
if(callback)
|
|
52
50
|
{
|
|
53
51
|
this.addon.items.callbacks.modified.forEach(callback => callback(this, key, value, prevValue));
|
|
54
|
-
this.addon.onetype.Emit('addon.item.modified', this, key, value, prevValue);
|
|
52
|
+
this.addon.onetype.Emit('@addon.item.modified', this, key, value, prevValue);
|
|
55
53
|
}
|
|
56
54
|
},
|
|
57
55
|
|
|
@@ -14,7 +14,7 @@ class OneTypeAddonRender
|
|
|
14
14
|
this.Name = name;
|
|
15
15
|
this.Callback = callback;
|
|
16
16
|
|
|
17
|
-
this.
|
|
17
|
+
this.UpdateFrame = null;
|
|
18
18
|
this.Data = { state: addon.onetype.StateGet() };
|
|
19
19
|
this.Attributes = {};
|
|
20
20
|
this.Item = null;
|
|
@@ -35,8 +35,6 @@ class OneTypeAddonRender
|
|
|
35
35
|
destroy: [],
|
|
36
36
|
error: [],
|
|
37
37
|
ready: [],
|
|
38
|
-
visible: [],
|
|
39
|
-
resize: [],
|
|
40
38
|
compile: []
|
|
41
39
|
};
|
|
42
40
|
|
|
@@ -49,10 +47,7 @@ class OneTypeAddonRender
|
|
|
49
47
|
rendering: false
|
|
50
48
|
};
|
|
51
49
|
|
|
52
|
-
this.
|
|
53
|
-
visibility: undefined,
|
|
54
|
-
resize: undefined
|
|
55
|
-
};
|
|
50
|
+
this.Emitters = [];
|
|
56
51
|
|
|
57
52
|
const proxy = new Proxy(this, {
|
|
58
53
|
get(target, prop)
|
|
@@ -76,9 +71,13 @@ class OneTypeAddonRender
|
|
|
76
71
|
const changed = target.Data[prop] !== value;
|
|
77
72
|
target.Data[prop] = value;
|
|
78
73
|
|
|
79
|
-
if(changed && target.State.ready && !target.State.rendering)
|
|
74
|
+
if(changed && target.State.ready && !target.State.rendering && !target.UpdateFrame)
|
|
80
75
|
{
|
|
81
|
-
target.
|
|
76
|
+
target.UpdateFrame = requestAnimationFrame(() =>
|
|
77
|
+
{
|
|
78
|
+
target.UpdateFrame = null;
|
|
79
|
+
target.Update();
|
|
80
|
+
});
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
|
|
@@ -89,19 +88,6 @@ class OneTypeAddonRender
|
|
|
89
88
|
return proxy;
|
|
90
89
|
}
|
|
91
90
|
|
|
92
|
-
_scheduleUpdate()
|
|
93
|
-
{
|
|
94
|
-
if(this._updateTimeout)
|
|
95
|
-
{
|
|
96
|
-
clearTimeout(this._updateTimeout);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
this._updateTimeout = setTimeout(() =>
|
|
100
|
-
{
|
|
101
|
-
this._updateTimeout = null;
|
|
102
|
-
this.Update();
|
|
103
|
-
}, 16);
|
|
104
|
-
}
|
|
105
91
|
}
|
|
106
92
|
|
|
107
93
|
Object.assign(OneTypeAddonRender.prototype, RenderGet);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import onetype from '#framework/load.js';
|
|
2
|
+
|
|
1
3
|
const RenderCompile =
|
|
2
4
|
{
|
|
3
5
|
Compile(html, data = null)
|
|
@@ -13,7 +15,7 @@ const RenderCompile =
|
|
|
13
15
|
|
|
14
16
|
const prefix = this.GetAddon().GetName().charAt(0).toLowerCase();
|
|
15
17
|
|
|
16
|
-
element.classList.add(prefix + '-' +
|
|
18
|
+
element.classList.add(prefix + '-' + onetype.GenerateHash(this.GetAddon().GetName() + '-' + this.GetName()));
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
const compile = {
|
|
@@ -32,11 +34,11 @@ const RenderCompile =
|
|
|
32
34
|
|
|
33
35
|
const start = performance.now();
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
onetype.Emit('@addon.render.compile.before', this, compile, element, '0');
|
|
36
38
|
|
|
37
39
|
this.CompileWalkNodes(element, '0', compile);
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
onetype.Emit('@addon.render.compile.after', this, compile, element, '0');
|
|
40
42
|
|
|
41
43
|
compile.time = performance.now() - start;
|
|
42
44
|
|
|
@@ -54,7 +56,7 @@ const RenderCompile =
|
|
|
54
56
|
|
|
55
57
|
const parent = node.parentNode;
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
onetype.Emit('@addon.render.compile.node', this, compile, node, identifier);
|
|
58
60
|
|
|
59
61
|
if(node.parentNode !== parent)
|
|
60
62
|
{
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import onetype from '#framework/load.js';
|
|
2
|
+
|
|
1
3
|
const RenderDOM =
|
|
2
4
|
{
|
|
3
5
|
DOMCreateElement(html)
|
|
@@ -9,7 +11,7 @@ const RenderDOM =
|
|
|
9
11
|
|
|
10
12
|
DOMPatchElement(current, target)
|
|
11
13
|
{
|
|
12
|
-
return
|
|
14
|
+
return onetype.DOMPatch(current, target);
|
|
13
15
|
},
|
|
14
16
|
};
|
|
15
17
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import onetype from '#framework/load.js';
|
|
2
|
+
|
|
1
3
|
const RenderEvents =
|
|
2
4
|
{
|
|
3
5
|
EventOn(event, callback)
|
|
4
6
|
{
|
|
5
7
|
if(!(event in this.Events))
|
|
6
8
|
{
|
|
7
|
-
throw
|
|
9
|
+
throw onetype.Error(400, 'Event :event: doesn\'t exist.', {event});
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
const run = {
|
|
@@ -22,7 +24,7 @@ const RenderEvents =
|
|
|
22
24
|
{
|
|
23
25
|
this.Events[event].push(callback);
|
|
24
26
|
}
|
|
25
|
-
|
|
27
|
+
|
|
26
28
|
return this;
|
|
27
29
|
},
|
|
28
30
|
|
|
@@ -30,7 +32,7 @@ const RenderEvents =
|
|
|
30
32
|
{
|
|
31
33
|
if(!(event in this.Events))
|
|
32
34
|
{
|
|
33
|
-
throw
|
|
35
|
+
throw onetype.Error(400, 'Event :event: doesn\'t exist.', {event});
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
const skip = {
|
|
@@ -71,7 +73,7 @@ const RenderEvents =
|
|
|
71
73
|
{
|
|
72
74
|
if(!(event in this.Events))
|
|
73
75
|
{
|
|
74
|
-
throw
|
|
76
|
+
throw onetype.Error(400, 'Event :event: doesn\'t exist.', {event});
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
if(!callback)
|
|
@@ -100,51 +102,36 @@ const RenderEvents =
|
|
|
100
102
|
return this.EventOn(event, onceWrapper);
|
|
101
103
|
},
|
|
102
104
|
|
|
103
|
-
|
|
105
|
+
EventCleanup()
|
|
104
106
|
{
|
|
105
|
-
|
|
107
|
+
/* Global emitters */
|
|
108
|
+
for(const emitter of this.Emitters)
|
|
106
109
|
{
|
|
107
|
-
|
|
110
|
+
onetype.EmitOff(emitter.name, emitter.id);
|
|
108
111
|
}
|
|
109
112
|
|
|
110
|
-
this.
|
|
113
|
+
this.Emitters = [];
|
|
114
|
+
|
|
115
|
+
/* Visibility / Resize observers */
|
|
116
|
+
if(this.Element)
|
|
111
117
|
{
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if(entry.isIntersecting)
|
|
119
|
-
{
|
|
120
|
-
this.EventEmit('visible', entry);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}, {threshold: 0.1});
|
|
124
|
-
}
|
|
125
|
-
else if(type === 'resize')
|
|
126
|
-
{
|
|
127
|
-
this.Observer[type] = new ResizeObserver(entries =>
|
|
128
|
-
{
|
|
129
|
-
entries.forEach(entry => this.EventEmit('resize', entry));
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
this.Observer[type].observe(this.Element);
|
|
134
|
-
});
|
|
135
|
-
},
|
|
136
|
-
|
|
137
|
-
EventCleanup()
|
|
138
|
-
{
|
|
139
|
-
Object.keys(this.Observer).forEach(key =>
|
|
118
|
+
onetype.ObserverUnvisible(this.Element);
|
|
119
|
+
onetype.ObserverUnresize(this.Element);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Update frame */
|
|
123
|
+
if(this.UpdateFrame)
|
|
140
124
|
{
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
125
|
+
cancelAnimationFrame(this.UpdateFrame);
|
|
126
|
+
this.UpdateFrame = null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Local events */
|
|
130
|
+
for(const event in this.Events)
|
|
131
|
+
{
|
|
132
|
+
this.Events[event] = [];
|
|
133
|
+
}
|
|
147
134
|
}
|
|
148
135
|
};
|
|
149
136
|
|
|
150
|
-
export default RenderEvents;
|
|
137
|
+
export default RenderEvents;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import onetype from '#framework/load.js';
|
|
2
|
+
|
|
1
3
|
const RenderMethods =
|
|
2
4
|
{
|
|
3
5
|
Mount(target)
|
|
@@ -6,40 +8,39 @@ const RenderMethods =
|
|
|
6
8
|
{
|
|
7
9
|
if(!this.Element)
|
|
8
10
|
{
|
|
9
|
-
throw
|
|
11
|
+
throw onetype.Error(400,'Cannot mount - render not processed');
|
|
10
12
|
}
|
|
11
|
-
|
|
13
|
+
|
|
12
14
|
if(this.State.mounted)
|
|
13
15
|
{
|
|
14
|
-
throw
|
|
16
|
+
throw onetype.Error(400,'Already mounted');
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
|
|
17
19
|
/* Before mount */
|
|
18
20
|
this.EventEmit('mount');
|
|
19
|
-
|
|
21
|
+
|
|
20
22
|
/* Insert into DOM */
|
|
21
23
|
target = typeof target === 'string' ? document.querySelector(target) : target;
|
|
22
24
|
|
|
23
25
|
if(!target)
|
|
24
26
|
{
|
|
25
|
-
throw
|
|
27
|
+
throw onetype.Error(400,'Target element not found');
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
target.appendChild(this.Element);
|
|
29
|
-
|
|
31
|
+
|
|
30
32
|
/* After mount */
|
|
31
33
|
this.EventEmit('mounted');
|
|
32
|
-
|
|
34
|
+
|
|
33
35
|
return this;
|
|
34
36
|
}
|
|
35
37
|
catch(error)
|
|
36
38
|
{
|
|
37
|
-
console.log(error);
|
|
38
39
|
this.EventEmit('error', error);
|
|
39
40
|
return this;
|
|
40
41
|
}
|
|
41
42
|
},
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
Unmount()
|
|
44
45
|
{
|
|
45
46
|
try
|
|
@@ -48,19 +49,19 @@ const RenderMethods =
|
|
|
48
49
|
{
|
|
49
50
|
return this;
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
+
|
|
52
53
|
/* Before unmount */
|
|
53
54
|
this.EventEmit('unmount');
|
|
54
|
-
|
|
55
|
+
|
|
55
56
|
/* Remove from DOM */
|
|
56
57
|
if(this.Element && this.Element.parentNode)
|
|
57
58
|
{
|
|
58
59
|
this.Element.parentNode.removeChild(this.Element);
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
+
|
|
61
62
|
/* After unmount */
|
|
62
63
|
this.EventEmit('unmounted');
|
|
63
|
-
|
|
64
|
+
|
|
64
65
|
return this;
|
|
65
66
|
}
|
|
66
67
|
catch(error)
|
|
@@ -69,17 +70,17 @@ const RenderMethods =
|
|
|
69
70
|
return this;
|
|
70
71
|
}
|
|
71
72
|
},
|
|
72
|
-
|
|
73
|
+
|
|
73
74
|
Destroy()
|
|
74
75
|
{
|
|
75
76
|
try
|
|
76
77
|
{
|
|
77
78
|
/* Unmount first */
|
|
78
79
|
this.Unmount();
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
/* Emit destroy */
|
|
81
82
|
this.EventEmit('destroy');
|
|
82
|
-
|
|
83
|
+
|
|
83
84
|
/* Clear references */
|
|
84
85
|
this.Element = null;
|
|
85
86
|
this.Nodes = {};
|
|
@@ -94,10 +95,10 @@ const RenderMethods =
|
|
|
94
95
|
},
|
|
95
96
|
|
|
96
97
|
/* State Management */
|
|
97
|
-
|
|
98
|
+
|
|
98
99
|
Define(config)
|
|
99
100
|
{
|
|
100
|
-
const data =
|
|
101
|
+
const data = onetype.DataDefine(this, config);
|
|
101
102
|
|
|
102
103
|
for(const key in data)
|
|
103
104
|
{
|
|
@@ -105,18 +106,54 @@ const RenderMethods =
|
|
|
105
106
|
}
|
|
106
107
|
},
|
|
107
108
|
|
|
109
|
+
UpdateData(data)
|
|
110
|
+
{
|
|
111
|
+
let changed = false;
|
|
112
|
+
|
|
113
|
+
for(const key in data)
|
|
114
|
+
{
|
|
115
|
+
if(key === 'state')
|
|
116
|
+
{
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const value = data[key];
|
|
121
|
+
|
|
122
|
+
if(typeof value === 'function')
|
|
123
|
+
{
|
|
124
|
+
this.Data[key] = value;
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if(this.Data[key] !== value)
|
|
129
|
+
{
|
|
130
|
+
this.Data[key] = value;
|
|
131
|
+
changed = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if(changed && this.State.ready && !this.State.rendering && !this.UpdateFrame)
|
|
136
|
+
{
|
|
137
|
+
this.UpdateFrame = requestAnimationFrame(() =>
|
|
138
|
+
{
|
|
139
|
+
this.UpdateFrame = null;
|
|
140
|
+
this.Update();
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
|
|
108
145
|
Update()
|
|
109
146
|
{
|
|
110
147
|
try
|
|
111
148
|
{
|
|
112
149
|
if(!this.Element)
|
|
113
150
|
{
|
|
114
|
-
throw
|
|
151
|
+
throw onetype.Error(400,'Cannot update - element not rendered');
|
|
115
152
|
}
|
|
116
153
|
|
|
117
154
|
const compiled = this.Compile(this.Html);
|
|
118
155
|
|
|
119
|
-
|
|
156
|
+
onetype.DOMPatch(this.Element, compiled.element);
|
|
120
157
|
|
|
121
158
|
this.Nodes = compiled.nodes;
|
|
122
159
|
this.Time = compiled.time;
|
|
@@ -131,58 +168,86 @@ const RenderMethods =
|
|
|
131
168
|
},
|
|
132
169
|
|
|
133
170
|
/* Lifecycle Hooks */
|
|
134
|
-
|
|
171
|
+
|
|
135
172
|
OnInit(callback)
|
|
136
173
|
{
|
|
137
174
|
return this.EventOn('init', callback);
|
|
138
175
|
},
|
|
139
|
-
|
|
176
|
+
|
|
140
177
|
OnMount(callback)
|
|
141
178
|
{
|
|
142
179
|
return this.EventOn('mount', callback);
|
|
143
180
|
},
|
|
144
|
-
|
|
181
|
+
|
|
145
182
|
OnMounted(callback)
|
|
146
183
|
{
|
|
147
184
|
return this.EventOn('mounted', callback);
|
|
148
185
|
},
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
OnBeforeUnmount(callback)
|
|
152
|
-
{
|
|
153
|
-
return this.EventOn('unmount', callback);
|
|
154
|
-
},
|
|
155
|
-
|
|
186
|
+
|
|
156
187
|
OnUnmount(callback)
|
|
157
188
|
{
|
|
158
189
|
return this.EventOn('unmount', callback);
|
|
159
190
|
},
|
|
160
|
-
|
|
191
|
+
|
|
161
192
|
OnDestroy(callback)
|
|
162
193
|
{
|
|
163
194
|
return this.EventOn('destroy', callback);
|
|
164
195
|
},
|
|
165
|
-
|
|
196
|
+
|
|
166
197
|
OnReady(callback)
|
|
167
198
|
{
|
|
168
199
|
return this.EventOn('ready', callback);
|
|
169
200
|
},
|
|
170
|
-
|
|
201
|
+
|
|
171
202
|
OnVisible(callback)
|
|
172
203
|
{
|
|
173
|
-
|
|
204
|
+
const render = this;
|
|
205
|
+
|
|
206
|
+
this.EventOn('ready', () =>
|
|
207
|
+
{
|
|
208
|
+
onetype.ObserverVisible(render.Element, (entry) =>
|
|
209
|
+
{
|
|
210
|
+
callback.call(render, entry);
|
|
211
|
+
});
|
|
212
|
+
});
|
|
174
213
|
},
|
|
175
|
-
|
|
214
|
+
|
|
176
215
|
OnResize(callback)
|
|
177
216
|
{
|
|
178
|
-
|
|
217
|
+
const render = this;
|
|
218
|
+
|
|
219
|
+
this.EventOn('ready', () =>
|
|
220
|
+
{
|
|
221
|
+
onetype.ObserverResize(render.Element, (entry) =>
|
|
222
|
+
{
|
|
223
|
+
callback.call(render, entry);
|
|
224
|
+
});
|
|
225
|
+
});
|
|
179
226
|
},
|
|
180
|
-
|
|
227
|
+
|
|
181
228
|
OnError(callback)
|
|
182
229
|
{
|
|
183
230
|
return this.EventOn('error', callback);
|
|
184
231
|
},
|
|
185
|
-
|
|
232
|
+
|
|
233
|
+
/* Global Emitter */
|
|
234
|
+
|
|
235
|
+
Emit(name, ...args)
|
|
236
|
+
{
|
|
237
|
+
onetype.Emit(name, ...args);
|
|
238
|
+
},
|
|
239
|
+
|
|
240
|
+
On(name, callback)
|
|
241
|
+
{
|
|
242
|
+
const render = this;
|
|
243
|
+
|
|
244
|
+
const id = onetype.EmitOn(name, function(...args)
|
|
245
|
+
{
|
|
246
|
+
callback.call(render, ...args);
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
this.Emitters.push({ name, id });
|
|
250
|
+
},
|
|
186
251
|
};
|
|
187
252
|
|
|
188
|
-
export default RenderMethods;
|
|
253
|
+
export default RenderMethods;
|