@acorex/platform 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/auth/README.md +3 -0
- package/auth/index.d.ts +16 -0
- package/auth/lib/application/application.loader.d.ts +9 -0
- package/auth/lib/application/application.types.d.ts +10 -0
- package/auth/lib/auth-registry.service.d.ts +12 -0
- package/auth/lib/auth.guard.d.ts +2 -0
- package/auth/lib/auth.module.d.ts +20 -0
- package/auth/lib/auth.strategy.d.ts +28 -0
- package/auth/lib/errors.types.d.ts +6 -0
- package/auth/lib/feature/feature.loader.d.ts +7 -0
- package/auth/lib/feature/feature.types.d.ts +6 -0
- package/auth/lib/permission/permission.directive.d.ts +16 -0
- package/auth/lib/permission/permission.guard.d.ts +2 -0
- package/auth/lib/permission/permission.loader.d.ts +7 -0
- package/auth/lib/permission/permission.types.d.ts +1 -0
- package/auth/lib/session.service.d.ts +51 -0
- package/auth/lib/tenant/tenant.loader.d.ts +9 -0
- package/auth/lib/tenant/tenant.types.d.ts +8 -0
- package/auth/lib/user/user.types.d.ts +6 -0
- package/common/README.md +3 -0
- package/common/index.d.ts +11 -0
- package/common/lib/common.module.d.ts +21 -0
- package/common/lib/configs/app.config.d.ts +19 -0
- package/common/lib/data/data-provider.types.d.ts +11 -0
- package/common/lib/data/index.d.ts +1 -0
- package/common/lib/errors/error-handler-registry.service.d.ts +12 -0
- package/common/lib/errors/error-handler.types.d.ts +3 -0
- package/common/lib/errors/global-error-handler.d.ts +11 -0
- package/common/lib/errors/index.d.ts +3 -0
- package/common/lib/layout/component-slot/component-slot-loader.service.d.ts +11 -0
- package/common/lib/layout/component-slot/component-slot-registery.service.d.ts +9 -0
- package/common/lib/layout/component-slot/component-slot.directive.d.ts +12 -0
- package/common/lib/layout/component-slot/component-slot.module.d.ts +15 -0
- package/common/lib/layout/component-slot/component-slot.types.d.ts +14 -0
- package/common/lib/layout/component-slot/index.d.ts +5 -0
- package/common/lib/menu/index.d.ts +2 -0
- package/common/lib/menu/menu.loader.d.ts +17 -0
- package/common/lib/menu/menu.types.d.ts +13 -0
- package/common/lib/settings/index.d.ts +3 -0
- package/common/lib/settings/settings.loader.d.ts +8 -0
- package/common/lib/settings/settings.service.d.ts +9 -0
- package/common/lib/settings/settings.types.d.ts +5 -0
- package/common/lib/shared/logo.types.d.ts +19 -0
- package/common/lib/shared/state-persistence/index.d.ts +3 -0
- package/common/lib/shared/state-persistence/state-persistence.actions.d.ts +1 -0
- package/common/lib/shared/state-persistence/state-persistence.module.d.ts +8 -0
- package/common/lib/shared/state-persistence/state-persistence.reducers.d.ts +3 -0
- package/common/lib/store/common.actions.d.ts +14 -0
- package/common/lib/store/common.effects.d.ts +11 -0
- package/common/lib/store/index.d.ts +2 -0
- package/common/lib/utils/clipboard-service.d.ts +7 -0
- package/common/lib/utils/index.d.ts +3 -0
- package/common/lib/utils/router-util.service.d.ts +12 -0
- package/common/lib/utils/sticky.directive.d.ts +24 -0
- package/esm2022/acorex-platform.mjs +5 -0
- package/esm2022/auth/acorex-platform-auth.mjs +5 -0
- package/esm2022/auth/index.mjs +17 -0
- package/esm2022/auth/lib/application/application.loader.mjs +26 -0
- package/esm2022/auth/lib/application/application.types.mjs +2 -0
- package/esm2022/auth/lib/auth-registry.service.mjs +29 -0
- package/esm2022/auth/lib/auth.guard.mjs +18 -0
- package/esm2022/auth/lib/auth.module.mjs +84 -0
- package/esm2022/auth/lib/auth.strategy.mjs +2 -0
- package/esm2022/auth/lib/errors.types.mjs +13 -0
- package/esm2022/auth/lib/feature/feature.loader.mjs +14 -0
- package/esm2022/auth/lib/feature/feature.types.mjs +2 -0
- package/esm2022/auth/lib/permission/permission.directive.mjs +51 -0
- package/esm2022/auth/lib/permission/permission.guard.mjs +16 -0
- package/esm2022/auth/lib/permission/permission.loader.mjs +14 -0
- package/esm2022/auth/lib/permission/permission.types.mjs +2 -0
- package/esm2022/auth/lib/session.service.mjs +240 -0
- package/esm2022/auth/lib/tenant/tenant.loader.mjs +23 -0
- package/esm2022/auth/lib/tenant/tenant.types.mjs +2 -0
- package/esm2022/auth/lib/user/user.types.mjs +2 -0
- package/esm2022/common/acorex-platform-common.mjs +5 -0
- package/esm2022/common/index.mjs +12 -0
- package/esm2022/common/lib/common.module.mjs +123 -0
- package/esm2022/common/lib/configs/app.config.mjs +27 -0
- package/esm2022/common/lib/data/data-provider.types.mjs +3 -0
- package/esm2022/common/lib/data/index.mjs +2 -0
- package/esm2022/common/lib/errors/error-handler-registry.service.mjs +29 -0
- package/esm2022/common/lib/errors/error-handler.types.mjs +2 -0
- package/esm2022/common/lib/errors/global-error-handler.mjs +36 -0
- package/esm2022/common/lib/errors/index.mjs +4 -0
- package/esm2022/common/lib/layout/component-slot/component-slot-loader.service.mjs +56 -0
- package/esm2022/common/lib/layout/component-slot/component-slot-registery.service.mjs +28 -0
- package/esm2022/common/lib/layout/component-slot/component-slot.directive.mjs +24 -0
- package/esm2022/common/lib/layout/component-slot/component-slot.module.mjs +72 -0
- package/esm2022/common/lib/layout/component-slot/component-slot.types.mjs +2 -0
- package/esm2022/common/lib/layout/component-slot/index.mjs +6 -0
- package/esm2022/common/lib/menu/index.mjs +3 -0
- package/esm2022/common/lib/menu/menu.loader.mjs +39 -0
- package/esm2022/common/lib/menu/menu.types.mjs +2 -0
- package/esm2022/common/lib/settings/index.mjs +4 -0
- package/esm2022/common/lib/settings/settings.loader.mjs +17 -0
- package/esm2022/common/lib/settings/settings.service.mjs +20 -0
- package/esm2022/common/lib/settings/settings.types.mjs +2 -0
- package/esm2022/common/lib/shared/logo.types.mjs +21 -0
- package/esm2022/common/lib/shared/state-persistence/index.mjs +4 -0
- package/esm2022/common/lib/shared/state-persistence/state-persistence.actions.mjs +3 -0
- package/esm2022/common/lib/shared/state-persistence/state-persistence.module.mjs +36 -0
- package/esm2022/common/lib/shared/state-persistence/state-persistence.reducers.mjs +30 -0
- package/esm2022/common/lib/store/common.actions.mjs +5 -0
- package/esm2022/common/lib/store/common.effects.mjs +31 -0
- package/esm2022/common/lib/store/index.mjs +3 -0
- package/esm2022/common/lib/utils/clipboard-service.mjs +26 -0
- package/esm2022/common/lib/utils/index.mjs +4 -0
- package/esm2022/common/lib/utils/router-util.service.mjs +43 -0
- package/esm2022/common/lib/utils/sticky.directive.mjs +74 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/layouts/acorex-platform-layouts.mjs +5 -0
- package/esm2022/layouts/index.mjs +5 -0
- package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-features-list.component.mjs +58 -0
- package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.component.mjs +50 -0
- package/esm2022/layouts/lib/admin/admin-child-layout/admin-child-layout.module.mjs +57 -0
- package/esm2022/layouts/lib/admin/admin-child-layout/index.mjs +4 -0
- package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.component.mjs +74 -0
- package/esm2022/layouts/lib/admin/admin-root-layout/admin-root-layout.module.mjs +92 -0
- package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-footer/admin-footer.component.mjs +14 -0
- package/esm2022/layouts/lib/admin/admin-root-layout/components/admin-header/admin-header.component.mjs +29 -0
- package/esm2022/layouts/lib/admin/admin-root-layout/index.mjs +5 -0
- package/esm2022/layouts/lib/admin/admin.module.mjs +75 -0
- package/esm2022/layouts/lib/admin/admin.routes.mjs +37 -0
- package/esm2022/layouts/lib/admin/custom-reuse.strategy.mjs +20 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +105 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.mjs +137 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.mjs +125 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +180 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/index.mjs +3 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +200 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/index.mjs +6 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +56 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +108 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +76 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +57 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +283 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/index.mjs +5 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.mjs +333 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +156 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +86 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.mjs +66 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.mjs +82 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-quick-view/index.mjs +2 -0
- package/esm2022/layouts/lib/admin/entity-layout/index.mjs +4 -0
- package/esm2022/layouts/lib/admin/entity-layout/store/entity.actions.mjs +18 -0
- package/esm2022/layouts/lib/admin/entity-layout/store/entity.effects.mjs +76 -0
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +91 -0
- package/esm2022/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.mjs +153 -0
- package/esm2022/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.mjs +98 -0
- package/esm2022/layouts/lib/admin/entity.resolver.mjs +21 -0
- package/esm2022/layouts/lib/admin/index.mjs +8 -0
- package/esm2022/layouts/lib/admin/store/admin-layout.actions.mjs +12 -0
- package/esm2022/layouts/lib/admin/store/admin-layout.effects.mjs +29 -0
- package/esm2022/layouts/lib/admin/store/admin-layout.reducers.mjs +60 -0
- package/esm2022/layouts/lib/admin/store/admin-layout.selectors.mjs +8 -0
- package/esm2022/layouts/lib/admin/store/admin-layout.state.mjs +16 -0
- package/esm2022/layouts/lib/admin/store/index.mjs +6 -0
- package/esm2022/layouts/lib/layout.module.mjs +63 -0
- package/esm2022/layouts/lib/layout.routes.mjs +15 -0
- package/esm2022/layouts/lib/shared/components/content-view/content-view.page.mjs +64 -0
- package/esm2022/layouts/lib/shared/components/content-view/content-view.type.mjs +2 -0
- package/esm2022/layouts/lib/shared/components/error-401/error-401.component.mjs +29 -0
- package/esm2022/layouts/lib/shared/components/error-404/error-404.component.mjs +22 -0
- package/esm2022/layouts/lib/shared/components/error-offline/error-offline.component.mjs +16 -0
- package/esm2022/layouts/lib/shared/components/index.mjs +9 -0
- package/esm2022/layouts/lib/shared/components/logo/logo.component.mjs +38 -0
- package/esm2022/layouts/lib/shared/components/slots/footer-text-slot.component.mjs +20 -0
- package/esm2022/layouts/lib/shared/components/slots/navbar-slot.component.mjs +36 -0
- package/esm2022/layouts/lib/shared/components/slots/theme-slot.component.mjs +48 -0
- package/esm2022/layouts/lib/shared/entity/entity-registery.service.mjs +70 -0
- package/esm2022/layouts/lib/shared/entity/entity.class.mjs +32 -0
- package/esm2022/layouts/lib/shared/entity/entity.loader.mjs +13 -0
- package/esm2022/layouts/lib/shared/entity/index.mjs +4 -0
- package/esm2022/layouts/lib/shared/index.mjs +5 -0
- package/esm2022/layouts/lib/shared/services/index.mjs +2 -0
- package/esm2022/layouts/lib/shared/services/layout.service.mjs +79 -0
- package/esm2022/layouts/lib/shared/workflows/common.workflow.mjs +110 -0
- package/esm2022/layouts/lib/shared/workflows/error-handler.mjs +24 -0
- package/esm2022/layouts/lib/shared/workflows/index.mjs +3 -0
- package/esm2022/layouts/lib/widgets/avatar/avatar-widget-edit.component.mjs +102 -0
- package/esm2022/layouts/lib/widgets/avatar/avatar-widget-view.component.mjs +33 -0
- package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-column.component.mjs +53 -0
- package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-edit.component.mjs +22 -0
- package/esm2022/layouts/lib/widgets/checkbox/checkbox-widget-view.component.mjs +47 -0
- package/esm2022/layouts/lib/widgets/common-widget-filter/boolean-widget-filter.component.mjs +147 -0
- package/esm2022/layouts/lib/widgets/common-widget-filter/number-widget-filter.component.mjs +135 -0
- package/esm2022/layouts/lib/widgets/common-widget-filter/string-widget-filter.component.mjs +125 -0
- package/esm2022/layouts/lib/widgets/common-widgets.module.mjs +479 -0
- package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-column.component.mjs +44 -0
- package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.mjs +175 -0
- package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-filter.component.mjs +230 -0
- package/esm2022/layouts/lib/widgets/dateTime/dateTime-widget-view.component.mjs +71 -0
- package/esm2022/layouts/lib/widgets/email/email-widget-column.component.mjs +73 -0
- package/esm2022/layouts/lib/widgets/email/email-widget-edit.component.mjs +249 -0
- package/esm2022/layouts/lib/widgets/email/email-widget-view.component.mjs +108 -0
- package/esm2022/layouts/lib/widgets/file/file-widget-column.component.mjs +27 -0
- package/esm2022/layouts/lib/widgets/file/file-widget-edit.component.mjs +200 -0
- package/esm2022/layouts/lib/widgets/file/file-widget-filter.component.mjs +27 -0
- package/esm2022/layouts/lib/widgets/file/file-widget-view.component.mjs +153 -0
- package/esm2022/layouts/lib/widgets/gallery/gallery-widget-edit.component.mjs +189 -0
- package/esm2022/layouts/lib/widgets/gallery/gallery-widget-filter.component.mjs +27 -0
- package/esm2022/layouts/lib/widgets/gallery/gallery-widget-types.mjs +2 -0
- package/esm2022/layouts/lib/widgets/gallery/gallery-widget-view.component.mjs +173 -0
- package/esm2022/layouts/lib/widgets/index.mjs +2 -0
- package/esm2022/layouts/lib/widgets/lookup/lookup-widget-column.component.mjs +43 -0
- package/esm2022/layouts/lib/widgets/lookup/lookup-widget-edit.component.mjs +74 -0
- package/esm2022/layouts/lib/widgets/lookup/lookup-widget-filter.component.mjs +139 -0
- package/esm2022/layouts/lib/widgets/lookup/lookup-widget-view.component.mjs +54 -0
- package/esm2022/layouts/lib/widgets/map/map-widget-edit.component.mjs +91 -0
- package/esm2022/layouts/lib/widgets/map/map-widget-view.component.mjs +63 -0
- package/esm2022/layouts/lib/widgets/messenger/messenger-widget-column.component.mjs +71 -0
- package/esm2022/layouts/lib/widgets/messenger/messenger-widget-edit.component.mjs +136 -0
- package/esm2022/layouts/lib/widgets/messenger/messenger-widget-view.component.mjs +132 -0
- package/esm2022/layouts/lib/widgets/number/number-widget-edit.component.mjs +46 -0
- package/esm2022/layouts/lib/widgets/number/number-widget-view.component.mjs +30 -0
- package/esm2022/layouts/lib/widgets/password/change-password.component.mjs +175 -0
- package/esm2022/layouts/lib/widgets/password/password-widget-column.component.mjs +77 -0
- package/esm2022/layouts/lib/widgets/password/password-widget-edit.component.mjs +34 -0
- package/esm2022/layouts/lib/widgets/password/password-widget-view.component.mjs +109 -0
- package/esm2022/layouts/lib/widgets/phone/phone-widget-column.component.mjs +91 -0
- package/esm2022/layouts/lib/widgets/phone/phone-widget-edit.component.mjs +315 -0
- package/esm2022/layouts/lib/widgets/phone/phone-widget-view.component.mjs +123 -0
- package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-column.component.mjs +69 -0
- package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-edit.component.mjs +67 -0
- package/esm2022/layouts/lib/widgets/rich-text/rich-text-widget-view.component.mjs +34 -0
- package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-column.component.mjs +43 -0
- package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.mjs +53 -0
- package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.mjs +41 -0
- package/esm2022/layouts/lib/widgets/selection-list/selection-list-widget-view.component.mjs +45 -0
- package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-edit.component.mjs +128 -0
- package/esm2022/layouts/lib/widgets/signature-pad/signature-pad-widget-view.component.mjs +41 -0
- package/esm2022/layouts/lib/widgets/text/largetext-widget-edit.component.mjs +37 -0
- package/esm2022/layouts/lib/widgets/text/text-widget-column.component.mjs +47 -0
- package/esm2022/layouts/lib/widgets/text/text-widget-edit.component.mjs +162 -0
- package/esm2022/layouts/lib/widgets/text/text-widget-view.component.mjs +66 -0
- package/esm2022/layouts/lib/widgets/toggle/toggle-widget-column.component.mjs +57 -0
- package/esm2022/layouts/lib/widgets/toggle/toggle-widget-edit.component.mjs +25 -0
- package/esm2022/layouts/lib/widgets/toggle/toggle-widget-view.component.mjs +49 -0
- package/esm2022/mocks/acorex-platform-mocks.mjs +5 -0
- package/esm2022/mocks/index.mjs +7 -0
- package/esm2022/mocks/lib/mocks.module.mjs +15 -0
- package/esm2022/mocks/lib/services/mocker.service.mjs +124 -0
- package/esm2022/mocks/lib/storage/storage.mock.service.mjs +186 -0
- package/esm2022/native/acorex-platform-native.mjs +5 -0
- package/esm2022/native/index.mjs +3 -0
- package/esm2022/native/lib/native.module.mjs +16 -0
- package/esm2022/native/lib/native.service.mjs +133 -0
- package/esm2022/schema/acorex-platform-schema.mjs +5 -0
- package/esm2022/schema/index.mjs +14 -0
- package/esm2022/schema/lib/component-loader.mjs +2 -0
- package/esm2022/schema/lib/formats.mjs +2 -0
- package/esm2022/schema/lib/operators.mjs +50 -0
- package/esm2022/schema/lib/schema-registery.service.mjs +33 -0
- package/esm2022/schema/lib/schema.mjs +2 -0
- package/esm2022/schema/lib/schema.module.mjs +23 -0
- package/esm2022/schema/lib/widget/widget-base.mjs +110 -0
- package/esm2022/schema/lib/widget/widget-column-renderer.mjs +99 -0
- package/esm2022/schema/lib/widget/widget-filter-renderer.mjs +133 -0
- package/esm2022/schema/lib/widget/widget-renderer.mjs +144 -0
- package/esm2022/schema/lib/widget/widget-token.mjs +3 -0
- package/esm2022/workflow/acorex-platform-workflow.mjs +5 -0
- package/esm2022/workflow/index.mjs +7 -0
- package/esm2022/workflow/lib/errors.types.mjs +8 -0
- package/esm2022/workflow/lib/workflow-event-dispatcher.service.mjs +23 -0
- package/esm2022/workflow/lib/workflow-registery.service.mjs +39 -0
- package/esm2022/workflow/lib/workflow.module.mjs +96 -0
- package/esm2022/workflow/lib/workflow.service.mjs +141 -0
- package/esm2022/workflow/lib/workflow.types.mjs +52 -0
- package/fesm2022/acorex-platform-auth.mjs +502 -0
- package/fesm2022/acorex-platform-auth.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +699 -0
- package/fesm2022/acorex-platform-common.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-PZr1lXj-.mjs +104 -0
- package/fesm2022/acorex-platform-layouts-avatar-widget-edit.component-PZr1lXj-.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-pJJYkvdH.mjs +36 -0
- package/fesm2022/acorex-platform-layouts-avatar-widget-view.component-pJJYkvdH.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-boolean-widget-filter.component-H056Q5Gz.mjs +150 -0
- package/fesm2022/acorex-platform-layouts-boolean-widget-filter.component-H056Q5Gz.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-change-password.component-QMAm6dxN.mjs +178 -0
- package/fesm2022/acorex-platform-layouts-change-password.component-QMAm6dxN.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-vRJI5S-w.mjs +56 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-column.component-vRJI5S-w.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-edit.component-P4cD_Nwg.mjs +25 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-edit.component-P4cD_Nwg.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-m6bF8XFR.mjs +50 -0
- package/fesm2022/acorex-platform-layouts-checkbox-widget-view.component-m6bF8XFR.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-qeQRJePy.mjs +47 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-column.component-qeQRJePy.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-zeJXGXY8.mjs +178 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-edit.component-zeJXGXY8.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-DJ6esclU.mjs +233 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-filter.component-DJ6esclU.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-BrwycTWz.mjs +74 -0
- package/fesm2022/acorex-platform-layouts-dateTime-widget-view.component-BrwycTWz.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-email-widget-column.component-ac8gqsFT.mjs +76 -0
- package/fesm2022/acorex-platform-layouts-email-widget-column.component-ac8gqsFT.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-email-widget-edit.component-m2dI7y9X.mjs +252 -0
- package/fesm2022/acorex-platform-layouts-email-widget-edit.component-m2dI7y9X.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-email-widget-view.component-XrV8va7z.mjs +111 -0
- package/fesm2022/acorex-platform-layouts-email-widget-view.component-XrV8va7z.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-8rtifIvM.mjs +108 -0
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-8rtifIvM.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-VeTkP3-n.mjs +89 -0
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-VeTkP3-n.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-file-widget-column.component-v7kAdIQ9.mjs +30 -0
- package/fesm2022/acorex-platform-layouts-file-widget-column.component-v7kAdIQ9.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-file-widget-edit.component-Wrq7ZL9R.mjs +203 -0
- package/fesm2022/acorex-platform-layouts-file-widget-edit.component-Wrq7ZL9R.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-file-widget-filter.component-1-NJh38j.mjs +30 -0
- package/fesm2022/acorex-platform-layouts-file-widget-filter.component-1-NJh38j.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-file-widget-view.component-mXBrKX0K.mjs +156 -0
- package/fesm2022/acorex-platform-layouts-file-widget-view.component-mXBrKX0K.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-edit.component-cWNvVwum.mjs +192 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-edit.component-cWNvVwum.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-filter.component-OCz0hj5i.mjs +30 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-filter.component-OCz0hj5i.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-xU52uaP0.mjs +176 -0
- package/fesm2022/acorex-platform-layouts-gallery-widget-view.component-xU52uaP0.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-largetext-widget-edit.component-Um_eBRFi.mjs +40 -0
- package/fesm2022/acorex-platform-layouts-largetext-widget-edit.component-Um_eBRFi.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-Ts0MJe8O.mjs +46 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-column.component-Ts0MJe8O.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-l5nSr9Cm.mjs +119 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-edit.component-l5nSr9Cm.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-gp5skvmz.mjs +181 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-filter.component-gp5skvmz.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-ftFXFj6k.mjs +57 -0
- package/fesm2022/acorex-platform-layouts-lookup-widget-view.component-ftFXFj6k.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-map-widget-edit.component-SOQvPhmX.mjs +94 -0
- package/fesm2022/acorex-platform-layouts-map-widget-edit.component-SOQvPhmX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-map-widget-view.component-1Lj9efbd.mjs +66 -0
- package/fesm2022/acorex-platform-layouts-map-widget-view.component-1Lj9efbd.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-W7ZY-W84.mjs +74 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-column.component-W7ZY-W84.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-dAX8nirB.mjs +139 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-edit.component-dAX8nirB.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-9TJiFdq-.mjs +135 -0
- package/fesm2022/acorex-platform-layouts-messenger-widget-view.component-9TJiFdq-.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-number-widget-edit.component-DDi-o_Zn.mjs +49 -0
- package/fesm2022/acorex-platform-layouts-number-widget-edit.component-DDi-o_Zn.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-number-widget-filter.component-DPGSzdNm.mjs +138 -0
- package/fesm2022/acorex-platform-layouts-number-widget-filter.component-DPGSzdNm.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-number-widget-view.component-hqkAR0LG.mjs +33 -0
- package/fesm2022/acorex-platform-layouts-number-widget-view.component-hqkAR0LG.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-password-widget-column.component-ic1jykZL.mjs +80 -0
- package/fesm2022/acorex-platform-layouts-password-widget-column.component-ic1jykZL.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-password-widget-edit.component-D8xI17yk.mjs +37 -0
- package/fesm2022/acorex-platform-layouts-password-widget-edit.component-D8xI17yk.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-password-widget-view.component-E2vtPKRO.mjs +112 -0
- package/fesm2022/acorex-platform-layouts-password-widget-view.component-E2vtPKRO.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-column.component-s04WZfzv.mjs +94 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-column.component-s04WZfzv.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-MKzlZ0_B.mjs +318 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-edit.component-MKzlZ0_B.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-view.component-NEO22XO7.mjs +126 -0
- package/fesm2022/acorex-platform-layouts-phone-widget-view.component-NEO22XO7.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-P0YzXTIB.mjs +72 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-column.component-P0YzXTIB.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-edit.component-ro2yg7PR.mjs +70 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-edit.component-ro2yg7PR.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component--Rzxm2a6.mjs +37 -0
- package/fesm2022/acorex-platform-layouts-rich-text-widget-view.component--Rzxm2a6.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-9FTkDGmq.mjs +46 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-column.component-9FTkDGmq.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-FpOQ12Ie.mjs +56 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-edit.component-FpOQ12Ie.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-hGk-ZZ78.mjs +44 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-filter.component-hGk-ZZ78.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-s9xq___Y.mjs +48 -0
- package/fesm2022/acorex-platform-layouts-selection-list-widget-view.component-s9xq___Y.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-signature-pad-widget-edit.component-W28Uk9zO.mjs +131 -0
- package/fesm2022/acorex-platform-layouts-signature-pad-widget-edit.component-W28Uk9zO.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-R40Ml757.mjs +44 -0
- package/fesm2022/acorex-platform-layouts-signature-pad-widget-view.component-R40Ml757.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-string-widget-filter.component-4oZ6BVis.mjs +128 -0
- package/fesm2022/acorex-platform-layouts-string-widget-filter.component-4oZ6BVis.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-text-widget-column.component-qhh6MT79.mjs +50 -0
- package/fesm2022/acorex-platform-layouts-text-widget-column.component-qhh6MT79.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-text-widget-edit.component-TC127Dq8.mjs +165 -0
- package/fesm2022/acorex-platform-layouts-text-widget-edit.component-TC127Dq8.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-text-widget-view.component-65eOj0qR.mjs +69 -0
- package/fesm2022/acorex-platform-layouts-text-widget-view.component-65eOj0qR.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-uxOXR-bL.mjs +60 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-column.component-uxOXR-bL.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-edit.component-R44L1pgJ.mjs +28 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-edit.component-R44L1pgJ.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-view.component-DTOeAUiy.mjs +52 -0
- package/fesm2022/acorex-platform-layouts-toggle-widget-view.component-DTOeAUiy.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +3732 -0
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -0
- package/fesm2022/acorex-platform-mocks.mjs +332 -0
- package/fesm2022/acorex-platform-mocks.mjs.map +1 -0
- package/fesm2022/acorex-platform-native.mjs +154 -0
- package/fesm2022/acorex-platform-native.mjs.map +1 -0
- package/fesm2022/acorex-platform-schema.mjs +572 -0
- package/fesm2022/acorex-platform-schema.mjs.map +1 -0
- package/fesm2022/acorex-platform-workflow.mjs +350 -0
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -0
- package/fesm2022/acorex-platform.mjs +6 -0
- package/fesm2022/acorex-platform.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/layouts/README.md +3 -0
- package/layouts/index.d.ts +4 -0
- package/layouts/lib/admin/admin-child-layout/admin-child-features-list.component.d.ts +22 -0
- package/layouts/lib/admin/admin-child-layout/admin-child-layout.component.d.ts +21 -0
- package/layouts/lib/admin/admin-child-layout/admin-child-layout.module.d.ts +17 -0
- package/layouts/lib/admin/admin-child-layout/index.d.ts +3 -0
- package/layouts/lib/admin/admin-root-layout/admin-root-layout.component.d.ts +30 -0
- package/layouts/lib/admin/admin-root-layout/admin-root-layout.module.d.ts +25 -0
- package/layouts/lib/admin/admin-root-layout/components/admin-footer/admin-footer.component.d.ts +5 -0
- package/layouts/lib/admin/admin-root-layout/components/admin-header/admin-header.component.d.ts +10 -0
- package/layouts/lib/admin/admin-root-layout/index.d.ts +4 -0
- package/layouts/lib/admin/admin.module.d.ts +11 -0
- package/layouts/lib/admin/admin.routes.d.ts +2 -0
- package/layouts/lib/admin/custom-reuse.strategy.d.ts +8 -0
- package/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.d.ts +20 -0
- package/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.config.d.ts +54 -0
- package/layouts/lib/admin/entity-layout/entity-details-view/detail-view.config.d.ts +48 -0
- package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +41 -0
- package/layouts/lib/admin/entity-layout/entity-details-view/index.d.ts +2 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.d.ts +47 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/index.d.ts +5 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.d.ts +22 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.d.ts +35 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.d.ts +18 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.d.ts +22 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +63 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/index.d.ts +4 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/list-view.config.d.ts +110 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.d.ts +41 -0
- package/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.d.ts +25 -0
- package/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.config.d.ts +31 -0
- package/layouts/lib/admin/entity-layout/entity-quick-view/entity-quick-view.component.d.ts +22 -0
- package/layouts/lib/admin/entity-layout/entity-quick-view/index.d.ts +1 -0
- package/layouts/lib/admin/entity-layout/index.d.ts +3 -0
- package/layouts/lib/admin/entity-layout/store/entity.actions.d.ts +48 -0
- package/layouts/lib/admin/entity-layout/store/entity.effects.d.ts +22 -0
- package/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.d.ts +28 -0
- package/layouts/lib/admin/entity-layout/workflows/delete-entity.workflow.d.ts +33 -0
- package/layouts/lib/admin/entity-layout/workflows/modify-entity.workflow.d.ts +31 -0
- package/layouts/lib/admin/entity.resolver.d.ts +4 -0
- package/layouts/lib/admin/index.d.ts +7 -0
- package/layouts/lib/admin/store/admin-layout.actions.d.ts +8 -0
- package/layouts/lib/admin/store/admin-layout.effects.d.ts +10 -0
- package/layouts/lib/admin/store/admin-layout.reducers.d.ts +24 -0
- package/layouts/lib/admin/store/admin-layout.selectors.d.ts +5 -0
- package/layouts/lib/admin/store/admin-layout.state.d.ts +14 -0
- package/layouts/lib/admin/store/index.d.ts +5 -0
- package/layouts/lib/layout.module.d.ts +9 -0
- package/layouts/lib/layout.routes.d.ts +2 -0
- package/layouts/lib/shared/components/content-view/content-view.page.d.ts +23 -0
- package/layouts/lib/shared/components/content-view/content-view.type.d.ts +16 -0
- package/layouts/lib/shared/components/error-401/error-401.component.d.ts +13 -0
- package/layouts/lib/shared/components/error-404/error-404.component.d.ts +8 -0
- package/layouts/lib/shared/components/error-offline/error-offline.component.d.ts +9 -0
- package/layouts/lib/shared/components/index.d.ts +8 -0
- package/layouts/lib/shared/components/logo/logo.component.d.ts +8 -0
- package/layouts/lib/shared/components/slots/footer-text-slot.component.d.ts +6 -0
- package/layouts/lib/shared/components/slots/navbar-slot.component.d.ts +10 -0
- package/layouts/lib/shared/components/slots/theme-slot.component.d.ts +8 -0
- package/layouts/lib/shared/entity/entity-registery.service.d.ts +34 -0
- package/layouts/lib/shared/entity/entity.class.d.ts +145 -0
- package/layouts/lib/shared/entity/entity.loader.d.ts +9 -0
- package/layouts/lib/shared/entity/index.d.ts +3 -0
- package/layouts/lib/shared/index.d.ts +4 -0
- package/layouts/lib/shared/services/index.d.ts +1 -0
- package/layouts/lib/shared/services/layout.service.d.ts +19 -0
- package/layouts/lib/shared/workflows/common.workflow.d.ts +52 -0
- package/layouts/lib/shared/workflows/error-handler.d.ts +8 -0
- package/layouts/lib/shared/workflows/index.d.ts +2 -0
- package/layouts/lib/widgets/avatar/avatar-widget-edit.component.d.ts +10 -0
- package/layouts/lib/widgets/avatar/avatar-widget-view.component.d.ts +8 -0
- package/layouts/lib/widgets/checkbox/checkbox-widget-column.component.d.ts +11 -0
- package/layouts/lib/widgets/checkbox/checkbox-widget-edit.component.d.ts +6 -0
- package/layouts/lib/widgets/checkbox/checkbox-widget-view.component.d.ts +11 -0
- package/layouts/lib/widgets/common-widget-filter/boolean-widget-filter.component.d.ts +17 -0
- package/layouts/lib/widgets/common-widget-filter/number-widget-filter.component.d.ts +11 -0
- package/layouts/lib/widgets/common-widget-filter/string-widget-filter.component.d.ts +11 -0
- package/layouts/lib/widgets/common-widgets.module.d.ts +32 -0
- package/layouts/lib/widgets/dateTime/dateTime-widget-column.component.d.ts +11 -0
- package/layouts/lib/widgets/dateTime/dateTime-widget-edit.component.d.ts +24 -0
- package/layouts/lib/widgets/dateTime/dateTime-widget-filter.component.d.ts +16 -0
- package/layouts/lib/widgets/dateTime/dateTime-widget-view.component.d.ts +11 -0
- package/layouts/lib/widgets/email/email-widget-column.component.d.ts +16 -0
- package/layouts/lib/widgets/email/email-widget-edit.component.d.ts +28 -0
- package/layouts/lib/widgets/email/email-widget-view.component.d.ts +16 -0
- package/layouts/lib/widgets/file/file-widget-column.component.d.ts +8 -0
- package/layouts/lib/widgets/file/file-widget-edit.component.d.ts +17 -0
- package/layouts/lib/widgets/file/file-widget-filter.component.d.ts +6 -0
- package/layouts/lib/widgets/file/file-widget-view.component.d.ts +17 -0
- package/layouts/lib/widgets/gallery/gallery-widget-edit.component.d.ts +15 -0
- package/layouts/lib/widgets/gallery/gallery-widget-filter.component.d.ts +6 -0
- package/layouts/lib/widgets/gallery/gallery-widget-types.d.ts +10 -0
- package/layouts/lib/widgets/gallery/gallery-widget-view.component.d.ts +16 -0
- package/layouts/lib/widgets/index.d.ts +1 -0
- package/layouts/lib/widgets/lookup/lookup-widget-column.component.d.ts +16 -0
- package/layouts/lib/widgets/lookup/lookup-widget-edit.component.d.ts +15 -0
- package/layouts/lib/widgets/lookup/lookup-widget-filter.component.d.ts +16 -0
- package/layouts/lib/widgets/lookup/lookup-widget-view.component.d.ts +17 -0
- package/layouts/lib/widgets/map/map-widget-edit.component.d.ts +15 -0
- package/layouts/lib/widgets/map/map-widget-view.component.d.ts +17 -0
- package/layouts/lib/widgets/messenger/messenger-widget-column.component.d.ts +15 -0
- package/layouts/lib/widgets/messenger/messenger-widget-edit.component.d.ts +14 -0
- package/layouts/lib/widgets/messenger/messenger-widget-view.component.d.ts +17 -0
- package/layouts/lib/widgets/number/number-widget-edit.component.d.ts +7 -0
- package/layouts/lib/widgets/number/number-widget-view.component.d.ts +8 -0
- package/layouts/lib/widgets/password/change-password.component.d.ts +16 -0
- package/layouts/lib/widgets/password/password-widget-column.component.d.ts +14 -0
- package/layouts/lib/widgets/password/password-widget-edit.component.d.ts +6 -0
- package/layouts/lib/widgets/password/password-widget-view.component.d.ts +18 -0
- package/layouts/lib/widgets/phone/phone-widget-column.component.d.ts +15 -0
- package/layouts/lib/widgets/phone/phone-widget-edit.component.d.ts +29 -0
- package/layouts/lib/widgets/phone/phone-widget-view.component.d.ts +18 -0
- package/layouts/lib/widgets/rich-text/rich-text-widget-column.component.d.ts +11 -0
- package/layouts/lib/widgets/rich-text/rich-text-widget-edit.component.d.ts +33 -0
- package/layouts/lib/widgets/rich-text/rich-text-widget-view.component.d.ts +10 -0
- package/layouts/lib/widgets/selection-list/selection-list-widget-column.component.d.ts +16 -0
- package/layouts/lib/widgets/selection-list/selection-list-widget-edit.component.d.ts +10 -0
- package/layouts/lib/widgets/selection-list/selection-list-widget-filter.component.d.ts +9 -0
- package/layouts/lib/widgets/selection-list/selection-list-widget-view.component.d.ts +15 -0
- package/layouts/lib/widgets/signature-pad/signature-pad-widget-edit.component.d.ts +19 -0
- package/layouts/lib/widgets/signature-pad/signature-pad-widget-view.component.d.ts +8 -0
- package/layouts/lib/widgets/text/largetext-widget-edit.component.d.ts +6 -0
- package/layouts/lib/widgets/text/text-widget-column.component.d.ts +11 -0
- package/layouts/lib/widgets/text/text-widget-edit.component.d.ts +23 -0
- package/layouts/lib/widgets/text/text-widget-view.component.d.ts +11 -0
- package/layouts/lib/widgets/toggle/toggle-widget-column.component.d.ts +11 -0
- package/layouts/lib/widgets/toggle/toggle-widget-edit.component.d.ts +6 -0
- package/layouts/lib/widgets/toggle/toggle-widget-view.component.d.ts +11 -0
- package/mocks/README.md +3 -0
- package/mocks/index.d.ts +3 -0
- package/mocks/lib/mocks.module.d.ts +7 -0
- package/mocks/lib/services/mocker.service.d.ts +29 -0
- package/mocks/lib/storage/storage.mock.service.d.ts +25 -0
- package/native/README.md +4 -0
- package/native/index.d.ts +2 -0
- package/native/lib/native.module.d.ts +6 -0
- package/native/lib/native.service.d.ts +26 -0
- package/package.json +67 -0
- package/schema/README.md +3 -0
- package/schema/index.d.ts +11 -0
- package/schema/lib/component-loader.d.ts +24 -0
- package/schema/lib/formats.d.ts +8 -0
- package/schema/lib/operators.d.ts +22 -0
- package/schema/lib/schema-registery.service.d.ts +20 -0
- package/schema/lib/schema.d.ts +21 -0
- package/schema/lib/schema.module.d.ts +12 -0
- package/schema/lib/widget/widget-base.d.ts +43 -0
- package/schema/lib/widget/widget-column-renderer.d.ts +27 -0
- package/schema/lib/widget/widget-filter-renderer.d.ts +30 -0
- package/schema/lib/widget/widget-renderer.d.ts +26 -0
- package/schema/lib/widget/widget-token.d.ts +15 -0
- package/workflow/README.md +4 -0
- package/workflow/index.d.ts +6 -0
- package/workflow/lib/errors.types.d.ts +4 -0
- package/workflow/lib/workflow-event-dispatcher.service.d.ts +10 -0
- package/workflow/lib/workflow-registery.service.d.ts +17 -0
- package/workflow/lib/workflow.module.d.ts +25 -0
- package/workflow/lib/workflow.service.d.ts +23 -0
- package/workflow/lib/workflow.types.d.ts +61 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { NgModule, Injectable, inject } from '@angular/core';
|
|
4
|
+
import { AXCalendarService, AXDateTime } from '@acorex/core/dateTime';
|
|
5
|
+
import Dexie from 'dexie';
|
|
6
|
+
|
|
7
|
+
class MocksModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MocksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: MocksModule, imports: [CommonModule] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MocksModule, imports: [CommonModule] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MocksModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [CommonModule],
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
|
|
19
|
+
class MockDataService {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.firstNamesMale = [
|
|
22
|
+
'Matei-Flesch',
|
|
23
|
+
'Philp',
|
|
24
|
+
'Mc Erlean',
|
|
25
|
+
'Hamilton',
|
|
26
|
+
'Borchard',
|
|
27
|
+
'Logan',
|
|
28
|
+
'Conley',
|
|
29
|
+
'soheil',
|
|
30
|
+
'John',
|
|
31
|
+
'James',
|
|
32
|
+
'Robert',
|
|
33
|
+
'Michael',
|
|
34
|
+
'William',
|
|
35
|
+
];
|
|
36
|
+
this.firstNamesFemale = ['Mary', 'Patricia', 'Jennifer', 'Linda', 'Elizabeth'];
|
|
37
|
+
this.lastNames = [
|
|
38
|
+
' Thyrian',
|
|
39
|
+
'Ian',
|
|
40
|
+
'Luke',
|
|
41
|
+
'Christopher',
|
|
42
|
+
'Hayden',
|
|
43
|
+
'Graham',
|
|
44
|
+
'Ray',
|
|
45
|
+
'asami',
|
|
46
|
+
'Smith',
|
|
47
|
+
'Johnson',
|
|
48
|
+
'Williams',
|
|
49
|
+
'Brown',
|
|
50
|
+
'Jones',
|
|
51
|
+
];
|
|
52
|
+
this.companyNames = ['Acme Corp', 'Globex', 'Soylent', 'Initech', 'Hooli'];
|
|
53
|
+
this.jobTitles = [
|
|
54
|
+
'Software Engineer',
|
|
55
|
+
'Data Analyst',
|
|
56
|
+
'Product Manager',
|
|
57
|
+
'Graphic Designer',
|
|
58
|
+
'HR Specialist',
|
|
59
|
+
'Home note',
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
_randomFromArray(arr) {
|
|
63
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
64
|
+
}
|
|
65
|
+
uid() {
|
|
66
|
+
const timestamp = Date.now().toString(36);
|
|
67
|
+
const randomSegment = Math.random().toString(36).substring(2, 15);
|
|
68
|
+
return timestamp + '-' + randomSegment;
|
|
69
|
+
}
|
|
70
|
+
id() {
|
|
71
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
72
|
+
const r = (Math.random() * 16) | 0;
|
|
73
|
+
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
74
|
+
return v.toString(16);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
fName(gender) {
|
|
78
|
+
return gender === 'male'
|
|
79
|
+
? this._randomFromArray(this.firstNamesMale)
|
|
80
|
+
: this._randomFromArray(this.firstNamesFemale);
|
|
81
|
+
}
|
|
82
|
+
lName() {
|
|
83
|
+
return this._randomFromArray(this.lastNames);
|
|
84
|
+
}
|
|
85
|
+
fullName(gender) {
|
|
86
|
+
const selectedGender = gender || this.gender();
|
|
87
|
+
return `${this.fName(selectedGender)} ${this.lName()}`;
|
|
88
|
+
}
|
|
89
|
+
gender() {
|
|
90
|
+
const genders = ['male', 'female'];
|
|
91
|
+
return this._randomFromArray(genders);
|
|
92
|
+
}
|
|
93
|
+
userName(firstName, lastName) {
|
|
94
|
+
const fn = firstName || this.fName();
|
|
95
|
+
const ln = lastName || this.lName();
|
|
96
|
+
return `${fn}.${ln}${Math.floor(Math.random() * 100)}`;
|
|
97
|
+
}
|
|
98
|
+
email() {
|
|
99
|
+
const firstName = this.fName();
|
|
100
|
+
const lastName = this.lName();
|
|
101
|
+
return `${firstName}.${lastName}@example.com`.toLowerCase();
|
|
102
|
+
}
|
|
103
|
+
phoneNumber() {
|
|
104
|
+
return `+1-${Math.floor(Math.random() * 900 + 100)}-${Math.floor(Math.random() * 900 + 100)}-${Math.floor(Math.random() * 9000 + 1000)}`;
|
|
105
|
+
}
|
|
106
|
+
dateOfBirth() {
|
|
107
|
+
const start = new Date(1950, 0, 1);
|
|
108
|
+
const end = new Date(2000, 0, 1);
|
|
109
|
+
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
|
|
110
|
+
}
|
|
111
|
+
address1() {
|
|
112
|
+
return `${Math.floor(Math.random() * 9000) + 1000} Main St`;
|
|
113
|
+
}
|
|
114
|
+
address2() {
|
|
115
|
+
return `Apt ${Math.floor(Math.random() * 900) + 100}`;
|
|
116
|
+
}
|
|
117
|
+
zipCode() {
|
|
118
|
+
return `${Math.floor(Math.random() * 90000) + 10000}`;
|
|
119
|
+
}
|
|
120
|
+
company() {
|
|
121
|
+
return this._randomFromArray(this.companyNames);
|
|
122
|
+
}
|
|
123
|
+
jobTitle() {
|
|
124
|
+
return this._randomFromArray(this.jobTitles);
|
|
125
|
+
}
|
|
126
|
+
avatar() {
|
|
127
|
+
return Math.random() < 0.5 ? avatar1 : avatar2;
|
|
128
|
+
}
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MockDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
130
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MockDataService, providedIn: 'root' }); }
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MockDataService, decorators: [{
|
|
133
|
+
type: Injectable,
|
|
134
|
+
args: [{
|
|
135
|
+
providedIn: 'root',
|
|
136
|
+
}]
|
|
137
|
+
}] });
|
|
138
|
+
const avatar1 = 'data:image/jpeg;base64,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';
|
|
139
|
+
const avatar2 = 'data:image/jpeg;base64,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';
|
|
140
|
+
|
|
141
|
+
class AXPStorageMockService extends Dexie {
|
|
142
|
+
constructor() {
|
|
143
|
+
super('MockDB');
|
|
144
|
+
this.calendarService = inject(AXCalendarService);
|
|
145
|
+
this.version(1).stores({
|
|
146
|
+
entities: 'entityName, &data',
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
async insertOrupdateOne(entityName, entityRow) {
|
|
150
|
+
try {
|
|
151
|
+
const entityCollection = await this.table('entities').get(entityName);
|
|
152
|
+
if (entityCollection) {
|
|
153
|
+
const existingEntityIndex = entityCollection.data.findIndex((e) => e.id === entityRow.id);
|
|
154
|
+
if (existingEntityIndex !== -1) {
|
|
155
|
+
entityCollection.data[existingEntityIndex] = { ...entityCollection.data[existingEntityIndex], ...entityRow };
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
entityCollection.data.push(entityRow);
|
|
159
|
+
}
|
|
160
|
+
const serializedEntity = this.serializeEntity(entityCollection.data);
|
|
161
|
+
await this.table('entities').put({ entityName, data: serializedEntity });
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const serializedEntity = this.serializeEntity([entityRow]);
|
|
165
|
+
await this.table('entities').put({ entityName, data: serializedEntity });
|
|
166
|
+
}
|
|
167
|
+
return entityRow.id;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
console.error('Error in insertOrUpdate:', error);
|
|
171
|
+
// Handle the error appropriately
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async insertMany(entityName, entity) {
|
|
175
|
+
const serializedEntity = this.serializeEntity(entity);
|
|
176
|
+
try {
|
|
177
|
+
await this.table('entities').put({ entityName, data: serializedEntity });
|
|
178
|
+
Promise.resolve();
|
|
179
|
+
// Use 'put' to add or replace an existing record with the same entityName
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
console.error('Error inserting entity:', error);
|
|
183
|
+
// Handle the error appropriately
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
async updateOne(entityName, id, keyValue) {
|
|
187
|
+
try {
|
|
188
|
+
// Fetch the entity using the entityName
|
|
189
|
+
const entityRecord = await this.table('entities').get(entityName);
|
|
190
|
+
if (entityRecord) {
|
|
191
|
+
// Find the specific object in the entity's data array using the id
|
|
192
|
+
const objectToUpdate = entityRecord.data.find((obj) => obj.id === id);
|
|
193
|
+
if (objectToUpdate) {
|
|
194
|
+
// Update the specific object with the provided key-value pairs
|
|
195
|
+
Object.assign(objectToUpdate, keyValue);
|
|
196
|
+
// Serialize the entire entity with the updated object
|
|
197
|
+
// console.log('incomming data:', entityRecord.data);
|
|
198
|
+
const serializedEntity = this.serializeEntity(entityRecord.data);
|
|
199
|
+
// console.log('serializedEntity', serializedEntity);
|
|
200
|
+
// Update the entity in the table
|
|
201
|
+
await this.table('entities').put({ entityName, data: serializedEntity });
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
throw new Error(`Object with id '${id}' not found in entity '${entityName}'`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
throw new Error(`Entity with name '${entityName}' not found`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
console.error('Error updating entity:', error);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
async getOne(entityName, id) {
|
|
216
|
+
const entities = await this.table('entities').get(entityName);
|
|
217
|
+
const singleEntity = entities.data.find((row) => row.id == id);
|
|
218
|
+
return singleEntity && this.deserializeEntity(singleEntity);
|
|
219
|
+
}
|
|
220
|
+
async getMany(entityName, params) {
|
|
221
|
+
const entity = await this.table('entities').get(entityName);
|
|
222
|
+
return entity && this.deserializeEntity(entity.data);
|
|
223
|
+
}
|
|
224
|
+
async exist(entityName) {
|
|
225
|
+
const entity = await this.getMany(entityName);
|
|
226
|
+
return !!entity;
|
|
227
|
+
}
|
|
228
|
+
async deleteOne(entityName, entityId) {
|
|
229
|
+
try {
|
|
230
|
+
const entityCollection = await this.table('entities').get(entityName);
|
|
231
|
+
if (entityCollection) {
|
|
232
|
+
const entityIndex = entityCollection.data.findIndex((e) => e.id === entityId);
|
|
233
|
+
if (entityIndex !== -1) {
|
|
234
|
+
entityCollection.data.splice(entityIndex, 1);
|
|
235
|
+
const serializedEntity = this.serializeEntity(entityCollection.data);
|
|
236
|
+
await this.table('entities').put({ entityName, data: serializedEntity });
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
throw new Error(`Entity with id '${entityId}' not found in '${entityName}'`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
throw new Error(`Entity collection '${entityName}' not found`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
console.error('Error in deleteOne:', error);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
async deleteEntity(entityName) {
|
|
251
|
+
await this.table('entities').delete(entityName);
|
|
252
|
+
}
|
|
253
|
+
async clearAllEntities() {
|
|
254
|
+
await this.table('entities').clear();
|
|
255
|
+
}
|
|
256
|
+
/****************************************************
|
|
257
|
+
**------------------> Helpers <-------------------?
|
|
258
|
+
****************************************************/
|
|
259
|
+
serializeEntity(entity) {
|
|
260
|
+
const serialize = (data) => {
|
|
261
|
+
if (typeof data !== 'object' || data === null) {
|
|
262
|
+
return data;
|
|
263
|
+
}
|
|
264
|
+
// Handle arrays (including arrays of objects)
|
|
265
|
+
if (Array.isArray(data)) {
|
|
266
|
+
return data.map((item) => serialize(item));
|
|
267
|
+
}
|
|
268
|
+
let clonedData = { ...data };
|
|
269
|
+
for (const key in clonedData) {
|
|
270
|
+
if (clonedData[key] instanceof AXDateTime) {
|
|
271
|
+
clonedData[key] = {
|
|
272
|
+
_date: clonedData[key].date.toISOString(),
|
|
273
|
+
_calendar: { ...clonedData[key]._calendar },
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
else if (clonedData[key] instanceof Date) {
|
|
277
|
+
clonedData[key] = clonedData[key].toISOString();
|
|
278
|
+
}
|
|
279
|
+
else if (typeof clonedData[key] === 'object' && clonedData[key] !== null) {
|
|
280
|
+
// console.log('before', clonedData[key]);
|
|
281
|
+
clonedData[key] = serialize(clonedData[key]);
|
|
282
|
+
// console.log('after', clonedData[key]);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return clonedData;
|
|
286
|
+
};
|
|
287
|
+
return Array.isArray(entity) ? entity.map(serialize) : serialize(entity);
|
|
288
|
+
}
|
|
289
|
+
deserializeEntity(serializedEntity) {
|
|
290
|
+
const deserialize = (data) => {
|
|
291
|
+
if (typeof data !== 'object' || data === null) {
|
|
292
|
+
return data;
|
|
293
|
+
}
|
|
294
|
+
if (Array.isArray(data)) {
|
|
295
|
+
return data.map((item) => deserialize(item));
|
|
296
|
+
}
|
|
297
|
+
let clonedData = { ...data };
|
|
298
|
+
for (const key in clonedData) {
|
|
299
|
+
if (typeof clonedData[key] === 'object' &&
|
|
300
|
+
clonedData[key] !== null &&
|
|
301
|
+
'_date' in clonedData[key] &&
|
|
302
|
+
'_calendar' in clonedData[key]) {
|
|
303
|
+
clonedData[key] = new AXDateTime(new Date(clonedData[key]._date), clonedData[key]._calendar);
|
|
304
|
+
}
|
|
305
|
+
else if (typeof clonedData[key] === 'object' && clonedData[key] !== null) {
|
|
306
|
+
clonedData[key] = deserialize(clonedData[key]);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
return clonedData;
|
|
310
|
+
};
|
|
311
|
+
return Array.isArray(serializedEntity) ? serializedEntity.map(deserialize) : deserialize(serializedEntity);
|
|
312
|
+
}
|
|
313
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPStorageMockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
314
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPStorageMockService, providedIn: 'root' }); }
|
|
315
|
+
}
|
|
316
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AXPStorageMockService, decorators: [{
|
|
317
|
+
type: Injectable,
|
|
318
|
+
args: [{
|
|
319
|
+
providedIn: 'root',
|
|
320
|
+
}]
|
|
321
|
+
}], ctorParameters: () => [] });
|
|
322
|
+
|
|
323
|
+
// export * from './lib/generator/address';
|
|
324
|
+
// export * from './lib/generator/finance';
|
|
325
|
+
// export * from './lib/generator/person';
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Generated bundle index. Do not edit.
|
|
329
|
+
*/
|
|
330
|
+
|
|
331
|
+
export { AXPStorageMockService, MockDataService, MocksModule };
|
|
332
|
+
//# sourceMappingURL=acorex-platform-mocks.mjs.map
|