{"version":3,"file":"prg-core-lib.mjs","sources":["../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/services/prg-auth-configuration/prg-auth-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/services/auth/abstract-auth.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/is-loading-data/isloadingdata.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-login/prg-form-login.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-login/prg-form-login.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-register/prg-form-register.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-register/prg-form-register.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-request-password/prg-form-request-password.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-request-password/prg-form-request-password.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/models/user.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/validators/custom-password-requirements/prg-auth-custom-password-requirements.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-reset-password/prg-form-reset-password.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/components/form-reset-password/prg-form-reset-password.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/error.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/success.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/mock/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/notifications/notifications.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/validators.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/utility/array-utility.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/utility/objects-utility.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/utility/utility.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/mock/services/auth.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/shared-components/shared-components.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/login/prg-auth-login.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/login/prg-auth-login.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/register/prg-auth-register.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/register/prg-auth-register.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/request-password/prg-auth-request-password.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/request-password/prg-auth-request-password.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/reset-password/prg-auth-reset-password.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/pages/reset-password/prg-auth-reset-password.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/empty/prg-layouts-empty.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/empty/prg-layouts-empty.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/guards/prg-auth-guard.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/prg-auth-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/services/auth/auth.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/auth/prg-auth.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/base-entity.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/models/configuration-item.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/services/configuration-items/abstract-configuration-items.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/base-field.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/control-names.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/reference-type.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/cache-service/base-cache.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/services/lookup-table/abstract-lookup-table.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/services/entity-types/abstract-entity-type.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select/select.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/mock/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/mock/services/configuration-items.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/action-names.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/base-action.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/button/button.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/button/button.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/button/button.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/input-switch-action/input-switch-action.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/input-switch-action/input-switch-action.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/input-switch-action/input-switch-action.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/select-button-action/select-button-action.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/select-button-action/select-button-action.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/select-button-action/select-button-action.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/speed-dial/speed-dial.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/speed-dial/speed-dial.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/speed-dial/speed-dial.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/split-button/split-button.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/split-button/split-button.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/split-button/split-button.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/toggle-button-action/toggle-button-action.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/toggle-button-action/toggle-button-action.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/actions/toggle-button-action/toggle-button-action.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/action-types.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/prg-dynamic-form-action.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-actions/prg-dynamic-form-action.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/auto-complete/auto-complete.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/auto-complete/auto-complete.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/auto-complete/auto-complete.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/cascade-select/cascade-select..model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/cascade-select/cascade-select..component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/cascade-select/cascade-select.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/chips/chips.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/chips/chips.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/chips/chips.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/color-picker/color-picker.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/color-picker/color-picker.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/color-picker/color-picker.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-date-time/date-time.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-date-time/date-time.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-date-time/date-time.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-mask/input-mask.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-mask/input-mask.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-mask/input-mask.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-switch/input-switch.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-switch/input-switch.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-switch/input-switch.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text-area/input-text-area.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text-area/input-text-area.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/knob/knob.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/knob/knob.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/knob/knob.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/list-box/list-box.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/list-box/list-box.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/list-box/list-box.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/multiselect/multi-select.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/multiselect/multi-select.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/multiselect/multi-select.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/password/password.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/password/password.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/password/password.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/radio-button/radio-button.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/radio-button/radio-button.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/radio-button/radio-button.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/rating/rating.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/rating/rating.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/rating/rating.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select-button/select-button.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select-button/select-button.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select-button/select-button.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select/select.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/select/select.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/slider/slider.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/slider/slider.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/slider/slider.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/toggle-button/toggle-button.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/toggle-button/toggle-button.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/toggle-button/toggle-button.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/control-types.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/prg-dynamic-form-field.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/prg-dynamic-form-field.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/services/entity-types-configuration/prg-entity-types-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/constants/view-mode.enum.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/form-group/form-group.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/prg-dynamic-form.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/prg-dynamic-form.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/prg-core-dynamic-form.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/models/constants/toolbar-slots.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/dynamic-form-structure/config-items-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/components/config-items-admin/prg-config-items-admin.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/components/config-items-admin/prg-config-items-admin.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/components/config-items-user/prg-config-items-user.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/components/config-items-user/prg-config-items-user.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/menus-structure/menus-header-structure.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/services/prg-configuration-items-config/prg-configuration-items-config.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/services/prg-dashboard-configuration/prg-dashboard-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/services/lookup-table-configuration/prg-lookup-table-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/services/prg-queries-configuration/prg-queries-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/services/roles-scopes-configuration/prg-roles-scopes-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/services/prg-terms-configuration/prg-terms-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/services/main-layout.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/header/prg-header.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/header/prg-header.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/menus-structure/sidebar-menu-structure.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/sidebar/prg-sidebar.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/components/sidebar/prg-sidebar.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/pages/prg-layouts-header-sidebar.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/pages/prg-layouts-header-sidebar.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/prg-configuration-items-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/services/configuration-items/configuration-items.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/configuration-items/prg-configuration-items.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/pagination.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/filters.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/table-configs.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/layouts/prg-layouts.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/configuration-items/abstract-configuration-items.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/configuration-items/configuration-items.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/configuration-items/configuration-items.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/prg-core-configuration/prg-core-configuration.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/prg-core.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/context/generic-context.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/context/app-context.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/context/page-context.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type-element/prg-entity-type-element.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type-element/prg-entity-type-element.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/actions-default-structures/actions-base-structure.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/dynamic-form-struct/entity-type-attribute-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/dynamic-form-struct/entity-type-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/models/entity-type.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/dynamic-form-struct/entity-type-operation-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/dynamic-form-struct/entity-type-property-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type/components/entity-type-configs/models/menu-tab.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type/components/entity-type-configs/prg-entity-type-configs.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type/components/entity-type-configs/prg-entity-type-configs.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type/prg-entity-type.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/entity-type/prg-entity-type.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/list-entity-types/prg-list-entity-types.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/list-entity-types/prg-list-entity-types.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/services/utility/primeng-utility.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/list-specific-entity-type/prg-list-specific-entity-type.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/components/list-specific-entity-type/prg-list-specific-entity-type.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/pagination-response.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/models/executed-action-behaviourts.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/base-dashboard-component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/bar-chart/prg-bar-chart-settings.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/services/dashboard/abstract-dashboard.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/bar-chart/prg-bar-chart.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/bar-chart/prg-bar-chart.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/line-chart/prg-line-chart-settings.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/line-chart/prg-line-chart.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/line-chart/prg-line-chart.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/doughnut-chart/prg-doughnut-chart-settings.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/doughnut-chart/prg-doughnut-chart.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/doughnut-chart/prg-doughnut-chart.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/table/prg-table-settings.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/table/prg-table.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/table/prg-table.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/models/dashboard.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/mock/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/mock/services/entity-types/entity-types.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/entity-type-element/prg-entity-type-element.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/entity-type-element/prg-entity-type-element.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/entity-types/prg-entity-types.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/entity-types/prg-entity-types.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/specific-entity-type/specific-entity-type.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/pages/specific-entity-type/specific-entity-type.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/prg-entity-types-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/services/entity-types/entity-type.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/entity-types/prg-entity-types.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/components/lookupTableTable/components/lookupTableItemsTable/prg-lookup-table-items-table.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/components/lookupTableTable/components/lookupTableItemsTable/prg-lookup-table-items-table.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/components/lookupTableTable/prg-lookup-table-table.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/components/lookupTableTable/prg-lookup-table-table.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/mock/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/mock/services/lookup-table/lookup-table.mock.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/models/lookup-table.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/pages/prg-lookup-table.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/pages/prg-lookup-table.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/prg-lookup-table-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/services/lookup-table/lookup-table.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/lookup-table/prg-lookup-table.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/services/queries/abstract-queries.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/models/query.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/mock/database.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/mock/services/queries.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/models/query-table-filter.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/core/components/dynamic-form/dynamic-form-fields/fields/input-text-area/input-text-area.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/queries-dynamic-form-structure/queries-filter-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/queries-dynamic-form-structure/queries-raw-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/components/query-modal/prg-query-modal.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/components/query-modal/prg-query-modal.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/components/queries-table/prg-queries-table.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/components/queries-table/prg-queries-table.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/pages/prg-queries.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/pages/prg-queries.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/prg-queries-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/services/queries/queries.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/queries/prg-queries.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/models/role.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/services/roles-scopes/abstract-roles-scopes.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/roles-select/prg-select-role.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/roles-select/prg-select-role.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/role-create/prg-modal-create-role/prg-modal-create-role.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/role-create/prg-modal-create-role/prg-modal-create-role.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/role-create/prg-create-role.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/role-create/prg-create-role.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/scopes-table/prg-scopes-table.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/components/scopes-table/prg-scopes-table.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/mock/rolesScopesDB.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/mock/services/roles-scopes/roles-scopes.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/pages/roles-scopes/prg-roles-scopes.page.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/pages/roles-scopes/prg-roles-scopes.page.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/prg-roles-scopes-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/services/roles-scopes/roles-scopes.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/roles-scopes/prg-roles-scopes.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/services/terms/terms.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/components/prg-terms.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/components/prg-terms.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/models/terms.model.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/prg-terms-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/terms/prg-terms.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/models/prg-gridster-config.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-display/prg-dashboard-display.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-display/prg-dashboard-display.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items/dashboard-items-dynamic-form-actions.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items-options/prg-dashboard-items-options.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-items-options/prg-dashboard-items-options.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-list/prg-dashboard-list.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-list/prg-dashboard-list.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-options/dashboard-options-dynamic-form-structure/dashboard-options-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-options/prg-dashboard-options.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard-options/prg-dashboard-options.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard/dashboard-dynamic-form-structure/dashboard-dynamic-form.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard/prg-dashboard.component.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/components/dashboard/prg-dashboard.component.html","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/mock/services/dashboard.service.mock.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/prg-dashboard-routing.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/services/dashboard/dashboard.service.ts","../../../projects/PrgFramework.FE.CoreLib/src/lib/modules/dashboard/prg-dashboard.module.ts","../../../projects/PrgFramework.FE.CoreLib/src/public-api.ts","../../../projects/PrgFramework.FE.CoreLib/src/prg-core-lib.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken } from \"@angular/core\";\r\nimport { PrgAuthConfig } from \"../../models/prg-auth-config\";\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_AUTH_CONFIG = new InjectionToken(\r\n \"PRG_AUTH_CONFIG\"\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgAuthConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgAuthConfig\r\n */\r\n constructor(@Inject(PRG_AUTH_CONFIG) private prgAuthConfig: PrgAuthConfig) {}\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AuthStorage } from '../../models/prg-auth-config';\r\nimport { User } from '../../models/user.model';\r\n\r\n/**\r\n * AbstractAuthService class that defines an\r\n *
abstract authentication service to\r\n *
be extended by the mock and real\r\n *
authentication services\r\n */\r\nexport abstract class AbstractAuthService {\r\n /**\r\n * Currently logged user\r\n */\r\n protected loggedUserSubject = new BehaviorSubject(null);\r\n\r\n /**\r\n * Currently stored username to be used\r\n *
on the login form\r\n * // CR: devemos explicar melhor para que serve esta propriedade, eu não estava a perceber até olhar para o código do login,\r\n * talvez mudar também o nome para algo mais explicito\r\n */\r\n protected storedUserNameSubject = new BehaviorSubject('');\r\n\r\n /**\r\n * constructor\r\n * @param authStorage\r\n * @protected\r\n */\r\n protected constructor(\r\n @Inject('AUTHSTORAGE') private authStorage: AuthStorage\r\n ) {\r\n this.getUserNameFromStorage();\r\n this.getUserLoggedFromStorage();\r\n }\r\n\r\n /**\r\n * User sign up (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract signupAsync(email: string): Promise;\r\n\r\n /**\r\n * User login (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @param {string} password The user password\r\n * @param {boolean} storeUserName Store username\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract loginAsync(\r\n email: string, // CR: se pode ser email ou username, mudar parametro para emailOrUsername\r\n password: string,\r\n storeUserName: boolean\r\n ): Promise;\r\n\r\n /**\r\n * User logout (Async)\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract logoutAsync(): Promise;\r\n\r\n /**\r\n * Request to reset the password (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract requestResetPasswordAsync(email: string): Promise;\r\n\r\n /**\r\n * Getter for token reset password (Async)\r\n *\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract getTokenResetPasswordAsync(\r\n tokenReset: string\r\n ): Promise;\r\n\r\n /**\r\n * Method for reset password (Async)\r\n *\r\n * @param {string} newPassword The new password\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract resetPasswordAsync(\r\n newPassword: string,\r\n tokenReset: string\r\n ): Promise;\r\n\r\n /**\r\n * Setter for loggedUserSubject\r\n *\r\n * @param {User} userLogged The User object\r\n */\r\n protected setLoggedUser(userLogged: User): void {\r\n // CR: falta guardar isto na storage (session ou local), não?\r\n\r\n this.authStorage.storage.setItem(\r\n this.authStorage.keyLoggedUser,\r\n JSON.stringify(userLogged)\r\n );\r\n\r\n this.loggedUserSubject.next(userLogged);\r\n }\r\n\r\n /**\r\n * Setter for storedUserNameSubject and saving username on local storage\r\n *\r\n * @param {string} value The storedUserName string\r\n */\r\n protected setStoredUserName(value: string): void {\r\n // ok CR: falta guardar isto na storage (session ou local), não?\r\n this.authStorage.storage.setItem(\r\n this.authStorage.keyStoredUserName,\r\n JSON.stringify(value)\r\n );\r\n this.storedUserNameSubject.next(value);\r\n }\r\n\r\n /**\r\n * Remove username from local storage\r\n *\r\n */\r\n protected removeStoredUserName(): void {\r\n this.authStorage.storage.removeItem(this.authStorage.keyStoredUserName);\r\n this.storedUserNameSubject.next(null);\r\n }\r\n\r\n /**\r\n * Getter for loggedUserSubject\r\n *\r\n * @returns The loggedUserSubject as an observable\r\n */\r\n public getLoggedUserObservable(): Observable {\r\n return this.loggedUserSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for loggedUserSubject\r\n *\r\n * @returns The loggedUserSubject current value\r\n */\r\n public getLoggedUser(): User {\r\n return this.loggedUserSubject.getValue();\r\n }\r\n\r\n /**\r\n * Getter for storedUserNameSubject\r\n *\r\n * @returns The storedUserNameSubject as an observable\r\n */\r\n public getStoredUserNameObservable(): Observable {\r\n return this.storedUserNameSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for storedUserNameSubject\r\n *\r\n * @returns The storedUserNameSubject current value\r\n */\r\n public getStoredUserName(): string {\r\n return this.storedUserNameSubject.getValue();\r\n }\r\n\r\n /**\r\n * Get username from local storage and if it exists,\r\n * the value is emitted on storedUserNameSubject\r\n */\r\n private getUserNameFromStorage(): void {\r\n const userName = JSON.parse(\r\n this.authStorage.storage.getItem(this.authStorage.keyStoredUserName)\r\n );\r\n if (userName == null || userName.length == 0) {\r\n return;\r\n } else {\r\n this.setStoredUserName(userName);\r\n }\r\n }\r\n\r\n /**\r\n * Get the user logged from local storage\r\n * @private\r\n */\r\n private getUserLoggedFromStorage(): void {\r\n const user: User = JSON.parse(\r\n this.authStorage.storage.getItem(this.authStorage.keyLoggedUser)\r\n );\r\n\r\n if (user == null) {\r\n return;\r\n } else {\r\n this.setLoggedUser(user);\r\n }\r\n }\r\n /**\r\n * User logout Base Method (Async)\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n protected baseLogoutAsync(): Promise {\r\n return new Promise((resolve) => {\r\n this.authStorage.storage.removeItem(this.authStorage.keyLoggedUser);\r\n this.setLoggedUser(null);\r\n resolve(true);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n/**\r\n * injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IsLoadingDataService {\r\n /**\r\n * visibility BehaviorSubject\r\n */\r\n public visibility = new BehaviorSubject(false);\r\n\r\n /**\r\n * this function change visibility to true\r\n */\r\n show(): void {\r\n this.visibility.next(true);\r\n }\r\n /**\r\n * this function change visibility to false\r\n */\r\n hide(): void {\r\n this.visibility.next(false);\r\n }\r\n}\r\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { PrgAuthConfig } from '../../models/prg-auth-config';\r\nimport { AbstractAuthService } from '../../services/auth/abstract-auth.service';\r\nimport { PRG_AUTH_CONFIG } from '../../services/prg-auth-configuration/prg-auth-configuration.service';\r\n\r\n/**\r\n * Form Login Component\r\n */\r\n@Component({\r\n selector: 'prg-form-login',\r\n templateUrl: './prg-form-login.component.html',\r\n styleUrls: ['./prg-form-login.component.scss'],\r\n})\r\nexport class PrgFormLoginComponent implements OnInit, OnDestroy {\r\n /**\r\n * Shows/hide the checkbox to save username on local storage. Default true.\r\n */\r\n @Input() showStoreUserName: boolean = true;\r\n\r\n /**\r\n * Shows/hide the reset password link. Default true.\r\n */\r\n @Input() showResetPasswordLink: boolean = true;\r\n /**\r\n * Shows/hide sign up link. Default true.\r\n */\r\n @Input() showSignUpRoute: boolean = true;\r\n\r\n /**\r\n * The route for signup page\r\n */\r\n @Input() signUpPageRoute: string =\r\n '/' +\r\n this.authRoutes.authRoutingBasePath +\r\n '/' +\r\n this.authRoutes.authRoutingSignupPath;\r\n\r\n /**\r\n * The route to redirect after login success\r\n */\r\n @Input() loginOkRedirectLink: string =\r\n '/' + this.authRoutes.authRoutingLoginOkRedirectPath;\r\n\r\n /**\r\n * The route for request new password\r\n */\r\n @Input() resetPasswordPageRoute: string =\r\n '/' +\r\n this.authRoutes.authRoutingBasePath +\r\n '/' +\r\n this.authRoutes.authRoutingRequestPasswordPath;\r\n\r\n /**\r\n * Property of the class with type string which bind to image logo form.\r\n */\r\n @Input() imagePathLogo: string = '';\r\n\r\n /**\r\n * Shows/hide password on form. Default false.\r\n */\r\n public showPassword: boolean = false;\r\n\r\n /**\r\n * Property of the class with type Form Group which bind to the register form\r\n */\r\n public loginForm: FormGroup;\r\n /**\r\n * Property of the class with type boolean which bind to the checkbox \"Remember me\"\r\n */\r\n public checkedStoreUserName: boolean = false;\r\n\r\n // GCR: strings devem ser pelicas ('') em vez de aspas (\"\"). está configurad no pretier devemos correr um comando para correr o pretier em todos os ficheiros\r\n\r\n /**\r\n * constructor\r\n * @param {NGXLogger} logger logger\r\n * @param {AbstractAuthService} authService authService\r\n * @param {PrimeNGConfig} primengConfig\r\n * @param {PrgAuthConfig} authRoutes\r\n * @param {Router} router\r\n * @param {IsLoadingDataService} isLoadingData isLoadingData\r\n */\r\n constructor(\r\n public logger: NGXLogger,\r\n public authService: AbstractAuthService,\r\n private primengConfig: PrimeNGConfig,\r\n @Inject(PRG_AUTH_CONFIG) private authRoutes: PrgAuthConfig, // GCR: usar sempre o authConfig diretamente sem DI | Resp : Dá um erro de dependencia circular ao utilizar o authConfig\r\n private router: Router,\r\n public isLoadingData: IsLoadingDataService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n public ngOnInit(): void {\r\n this.logger.debug('LOGIN FORM ON INIT');\r\n this.initFormLogin();\r\n this.authService.getStoredUserNameObservable().subscribe((userEmail) => {\r\n if (userEmail) {\r\n this.loginForm.controls['email'].setValue(userEmail);\r\n this.checkedStoreUserName = true;\r\n }\r\n });\r\n this.primengConfig.ripple = true;\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n public ngOnDestroy(): void {\r\n this.logger.debug('LOGIN FORM ON DESTROY');\r\n }\r\n\r\n /**\r\n * Initiate the login form and its form controls with validators\r\n */\r\n private initFormLogin(): void {\r\n this.loginForm = new FormGroup(\r\n {\r\n email: new FormControl(null, [Validators.required]),\r\n check: new FormControl(),\r\n password: new FormControl(null, [Validators.required]),\r\n storeUserName: new FormControl(null),\r\n },\r\n { updateOn: 'change' }\r\n );\r\n }\r\n\r\n /**\r\n * Show/Hide the password on login form\r\n */\r\n\r\n public onShowPassword(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n /**\r\n * Form submission\r\n */\r\n public async onSubmitLogin(): Promise {\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n const userEmail = this.loginForm.controls.email.value;\r\n const userPassword = this.loginForm.controls.password.value;\r\n const storeUserName = this.loginForm.controls.storeUserName.value;\r\n this.loginForm.disable();\r\n\r\n try {\r\n if (\r\n await this.authService.loginAsync(\r\n userEmail,\r\n userPassword,\r\n storeUserName\r\n )\r\n ) {\r\n this.loginForm.reset();\r\n await this.router.navigate([this.loginOkRedirectLink]);\r\n }\r\n } catch (error) {\r\n this.logger.debug(error);\r\n }\r\n this.loginForm.enable();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{ 'components.login.title' | translate | uppercase }}\r\n \r\n
\r\n
\r\n {{\r\n ('entities.user.fields.email.label' | translate) +\r\n ' ou ' +\r\n ('entities.user.fields.token.unique_name.label'\r\n | translate\r\n | lowercase)\r\n }}\r\n
\r\n \r\n \r\n \r\n Email or username is required.\r\n
\r\n \r\n \r\n
\r\n {{ 'entities.user.fields.password.label' | translate }}\r\n
\r\n \r\n \r\n \r\n Password is required.\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {{ 'components.login.forget-password-link.label' | translate }}\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'components.login.signup-link.label' | translate }}\r\n
\r\n \r\n \r\n\r\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { PrgAuthConfig } from '../../models/prg-auth-config';\r\nimport { AbstractAuthService } from '../../services/auth/abstract-auth.service';\r\nimport { PRG_AUTH_CONFIG } from '../../services/prg-auth-configuration/prg-auth-configuration.service';\r\n\r\n/**\r\n * Form Register Component\r\n */\r\n@Component({\r\n selector: 'prg-form-register',\r\n templateUrl: './prg-form-register.component.html',\r\n styleUrls: ['./prg-form-register.component.scss'],\r\n})\r\nexport class PrgFormRegisterComponent implements OnInit, OnDestroy {\r\n /**\r\n * Shows/hide the checkbox terms of use. Default true.\r\n */\r\n @Input() showTermsOfUse: boolean = true;\r\n\r\n /**\r\n * Shows/hide the login link. Default true.\r\n */\r\n @Input() showLoginLink: boolean = true;\r\n\r\n /**\r\n * The route for login page\r\n */\r\n @Input() loginPageRoute: string =\r\n '/' +\r\n this.authRoutes.authRoutingBasePath +\r\n '/' +\r\n this.authRoutes.authRoutingLoginPath;\r\n\r\n /**\r\n * The route for terms of use page\r\n */\r\n @Input() termsOfUsePageRoute: string =\r\n '/' + this.authRoutes.termsOfUseRoutingPath;\r\n\r\n /**\r\n * Property of the class with type string which bind to image logo form.\r\n */\r\n @Input() imagePathLogo: string = '';\r\n\r\n /**\r\n * Property of the class with type Form Group binding to the register form\r\n */\r\n public registerForm: FormGroup;\r\n\r\n /**\r\n * Constructor\r\n * @param logger\r\n * @param authService\r\n * @param primengConfig\r\n * @param authRoutes\r\n * @param isLoadingData isLoadingData\r\n */\r\n constructor(\r\n private logger: NGXLogger,\r\n private authService: AbstractAuthService,\r\n private primengConfig: PrimeNGConfig,\r\n @Inject(PRG_AUTH_CONFIG) private authRoutes: PrgAuthConfig,\r\n public isLoadingData: IsLoadingDataService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n public ngOnInit(): void {\r\n this.logger.debug('REGISTER FORM ON INIT');\r\n this.primengConfig.ripple = true;\r\n this.initFormRegister();\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n public ngOnDestroy(): void {\r\n this.logger.debug('REGISTER FORM ON DESTROY');\r\n }\r\n\r\n /**\r\n * Initiate the register form and its form controls with validators\r\n */\r\n private initFormRegister(): void {\r\n this.registerForm = new FormGroup(\r\n {\r\n email: new FormControl(null, [Validators.required, Validators.email]),\r\n termsOfUse: new FormControl(null, [Validators.requiredTrue]),\r\n },\r\n { updateOn: 'change' }\r\n );\r\n if (!this.showTermsOfUse) {\r\n this.registerForm.controls.termsOfUse.removeValidators(\r\n Validators.requiredTrue\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Form submission\r\n */\r\n public async onSubmitRegister(): Promise {\r\n if (this.registerForm.invalid) {\r\n return;\r\n }\r\n const userEmail = this.registerForm.controls.email.value;\r\n this.registerForm.disable();\r\n try {\r\n if (await this.authService.signupAsync(userEmail)) {\r\n this.registerForm.reset();\r\n // TODO: Falta reencaminhar o user após sucesso no registo .Rota??\r\n }\r\n } catch (error) {\r\n this.logger.debug(error);\r\n }\r\n this.registerForm.enable();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{ 'components.register.title' | translate | uppercase }}\r\n \r\n \r\n
\r\n {{ 'entities.user.fields.email.label' | translate }}\r\n
\r\n \r\n \r\n \r\n Email is required.\r\n Email is not valid.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ 'components.register.terms-link.label' | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'components.register.login-link.label' | translate }}\r\n
\r\n \r\n \r\n\r\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { PrgAuthConfig } from '../../models/prg-auth-config';\r\nimport { AbstractAuthService } from '../../services/auth/abstract-auth.service';\r\nimport { PRG_AUTH_CONFIG } from '../../services/prg-auth-configuration/prg-auth-configuration.service';\r\n\r\n/**\r\n * The form request password component\r\n */\r\n@Component({\r\n selector: 'prg-form-request-password',\r\n templateUrl: './prg-form-request-password.component.html',\r\n styleUrls: ['./prg-form-request-password.component.scss'],\r\n})\r\nexport class PrgFormRequestPasswordComponent implements OnInit, OnDestroy {\r\n /**\r\n * Shows/hide the login link. Default true.\r\n */\r\n @Input() showLoginLink: boolean = true;\r\n /**\r\n * The default route for login page\r\n */\r\n @Input() loginPageRoute: string =\r\n '/' +\r\n this.authRoutes.authRoutingBasePath +\r\n '/' +\r\n this.authRoutes.authRoutingLoginPath;\r\n\r\n /**\r\n * Property of the class with type Form Group binding to the request password form\r\n */\r\n public requestPassForm: FormGroup;\r\n\r\n /**\r\n * constructor\r\n * @param logger\r\n * @param authService\r\n * @param primengConfig\r\n * @param authRoutes\r\n * @param isLoadingData isLoadingData\r\n */\r\n constructor(\r\n private logger: NGXLogger,\r\n private authService: AbstractAuthService,\r\n private primengConfig: PrimeNGConfig,\r\n @Inject(PRG_AUTH_CONFIG) private authRoutes: PrgAuthConfig,\r\n public isLoadingData: IsLoadingDataService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n public ngOnInit(): void {\r\n this.logger.debug('REQUEST PASSWORD PAGE ON INIT');\r\n this.primengConfig.ripple = true;\r\n this.initFormRequestPass();\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n public ngOnDestroy(): void {\r\n this.logger.debug('REQUEST PASSWORD PAGE ON DESTROY');\r\n }\r\n\r\n /**\r\n * Initiate the request password form and its form controls with validators\r\n */\r\n private initFormRequestPass(): void {\r\n this.requestPassForm = new FormGroup(\r\n {\r\n email: new FormControl(null, [Validators.required, Validators.email]),\r\n },\r\n { updateOn: 'change' }\r\n );\r\n }\r\n\r\n /**\r\n * Form submission\r\n */\r\n public async onSubmitRequestPassword(): Promise {\r\n if (this.requestPassForm.invalid) {\r\n return;\r\n }\r\n const userEmail = this.requestPassForm.controls.email.value;\r\n this.requestPassForm.disable();\r\n try {\r\n if (await this.authService.requestResetPasswordAsync(userEmail)) {\r\n this.requestPassForm.reset();\r\n // TODO: Falta reencaminhar o user após pedido do reset da password .Rota??\r\n }\r\n } catch (error) {\r\n this.logger.debug(error);\r\n }\r\n this.requestPassForm.enable();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n {{ 'components.request-password.title' | translate | uppercase }}\r\n
\r\n
\r\n
\r\n {{ 'entities.user.fields.email.label' | translate }}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'components.request-password.login-link.label' | translate }}\r\n
\r\n \r\n \r\n\r\n","/**\r\n * Token class that defines some basic JWT\r\n *
properties and adds additional\r\n *
generic properties required by the\r\n *
front-end\r\n */\r\nexport class Token {\r\n /**\r\n * User roles array (may only be included\r\n *
if a configuration item is true)\r\n */\r\n public roles: string[];\r\n /**\r\n * User scopes array\r\n */\r\n public scopes: string[];\r\n /**\r\n * * Workspace id\r\n */\r\n public workspaceId: string;\r\n /**\r\n * User id\r\n */\r\n public userId: string;\r\n /**\r\n * Type of token (normally \"Bearer\")\r\n */\r\n public typ: string;\r\n /**\r\n * User unique name\r\n */\r\n public unique_name: string;\r\n /**\r\n * User profile image url\r\n */\r\n public imageUrl: string;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * PasswordRequirements configuration items model\r\n *
to be used when creating or resetting\r\n *
user passwords\r\n */\r\nexport class PasswordRequirements {\r\n /**\r\n * Gets or sets the minimum length a password must be. Defaults to 6.\r\n */\r\n public requiredLength: number = 6;\r\n /**\r\n * Gets or sets the minimum number of unique characters which a password must contain.\r\n *
Defaults to 1.\r\n */\r\n public requiredUniqueChars: number = 1;\r\n /**\r\n * Gets or sets a flag indicating if passwords must contain a non-alphanumeric character.\r\n *
Defaults to true.\r\n */\r\n public requireNonAlphanumeric: boolean = true;\r\n /**\r\n * Gets or sets a flag indicating if passwords must contain a lower case ASCII character.\r\n *
Defaults to true.\r\n */\r\n public requireLowercase: boolean = true;\r\n /**\r\n * Gets or sets a flag indicating if passwords must contain a upper case ASCII character.\r\n *
Defaults to true.\r\n */\r\n public requireUppercase: boolean = true;\r\n /**\r\n * Gets or sets a flag indicating if passwords must contain a digit.\r\n *
Defaults to true.\r\n */\r\n public requireDigit: boolean = true;\r\n}\r\n\r\n/**\r\n * User class that defines the basic properties\r\n *
of an user.\r\n */\r\nexport class User {\r\n /**\r\n * Id\r\n */\r\n public id: string;\r\n /**\r\n * Name\r\n */\r\n public name: string;\r\n /**\r\n * Token\r\n */\r\n public token: Token;\r\n /**\r\n * Email\r\n */\r\n public email: string;\r\n\r\n /**\r\n * Password\r\n */\r\n public password: string;\r\n\r\n /**\r\n * Reset Password token\r\n */\r\n public tokenResetPassword: string;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\n/**\r\n * This class define methods to validate passwords\r\n */\r\nexport class PrgAuthCustomPasswordRequirements {\r\n /**\r\n * Method to validate passwords through Regular Expression (RegExp)\r\n * @param {RegExp} regex\r\n * @param {ValidationErrors} error\r\n * @param {boolean} passwordRequirements\r\n * @returns {ValidatorFn}\r\n */\r\n public static patternValidator(\r\n regex: RegExp,\r\n error: ValidationErrors,\r\n passwordRequirements: boolean\r\n ): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value || !passwordRequirements) {\r\n return null;\r\n }\r\n const valid = regex.test(control.value);\r\n return valid ? null : error;\r\n };\r\n }\r\n\r\n /**\r\n * Method to validate passwords with a number of unique chars\r\n * @param {number} numberUniqueChars\r\n * @param {ValidationErrors} error\r\n * @returns {ValidatorFn}\r\n */\r\n public static uniqueCharsValidator(\r\n numberUniqueChars: number,\r\n error: ValidationErrors\r\n ): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (!control.value) {\r\n return null;\r\n }\r\n const splitControlValueIntoArray = Array.from(control.value);\r\n const uniqueCharsArray = [...new Set(splitControlValueIntoArray)];\r\n if (uniqueCharsArray.length >= numberUniqueChars) {\r\n return null;\r\n } else {\r\n return error;\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Method to validate if password and confirm password match\r\n * @param {AbstractControl} group\r\n * @returns {ValidationErrors | null}\r\n */\r\n public static passwordMatchValidator: ValidatorFn = (\r\n group: AbstractControl\r\n ): ValidationErrors | null => {\r\n let pass = group.get('password').value;\r\n let confirmPass = group.get('confirmPassword').value;\r\n return pass === confirmPass ? null : { passDontMatch: true };\r\n };\r\n}\r\n","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { PrgAuthConfig } from '../../models/prg-auth-config';\r\nimport { PasswordRequirements } from '../../models/user.model';\r\nimport { AbstractAuthService } from '../../services/auth/abstract-auth.service';\r\nimport { PRG_AUTH_CONFIG } from '../../services/prg-auth-configuration/prg-auth-configuration.service';\r\nimport { PrgAuthCustomPasswordRequirements } from '../../validators/custom-password-requirements/prg-auth-custom-password-requirements';\r\n\r\n/**\r\n * The form reset password component\r\n */\r\n@Component({\r\n selector: 'prg-form-reset-password',\r\n templateUrl: './prg-form-reset-password.component.html',\r\n styleUrls: ['./prg-form-reset-password.component.scss'],\r\n providers: [PasswordRequirements],\r\n})\r\nexport class PrgFormResetPasswordComponent implements OnInit, OnDestroy {\r\n /**\r\n * The route for login page\r\n */\r\n @Input() loginPageRoute: string =\r\n '/' +\r\n this.authRoutes.authRoutingBasePath +\r\n '/' +\r\n this.authRoutes.authRoutingLoginPath;\r\n /**\r\n * Shows/hide the login link. Default true.\r\n */\r\n @Input() showLoginLink: boolean = true;\r\n /**\r\n * Shows/hide password on form. Default false.\r\n */\r\n public showPassword: boolean = false;\r\n /**\r\n * Property of the class with type Form Group which bind to the register form\r\n */\r\n public resetPasswordForm: FormGroup;\r\n /**\r\n * The reset password token taken from route parameters\r\n */\r\n private token: string;\r\n /**\r\n * The subscription of the observable of query parameters\r\n */\r\n private queryParamsSubscription: Subscription;\r\n /**\r\n * Constructor\r\n * @param route\r\n * @param router\r\n * @param logger\r\n * @param authService\r\n * @param primengConfig\r\n * @param authRoutes\r\n * @param passwordRequirements passwordRequirements\r\n * @param isLoadingData isLoadingData\r\n */\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private logger: NGXLogger,\r\n private authService: AbstractAuthService,\r\n private primengConfig: PrimeNGConfig,\r\n @Inject(PRG_AUTH_CONFIG) private authRoutes: PrgAuthConfig,\r\n public passwordRequirements: PasswordRequirements,\r\n public isLoadingData: IsLoadingDataService\r\n ) {}\r\n /**\r\n * ngOnInit\r\n */\r\n public ngOnInit() {\r\n this.logger.debug('RESET PASSWORD FORM ON INIT');\r\n this.token = this.route.snapshot.queryParams['token'];\r\n if (this.token == null || this.token.length === 0) {\r\n this.router.navigate([this.loginPageRoute]);\r\n }\r\n /*This observable is used when is necessary to reload the component within the same component*/\r\n this.queryParamsSubscription = this.route.queryParams.subscribe(\r\n (queryParams: Params) => {\r\n this.token = queryParams['token'];\r\n }\r\n );\r\n\r\n this.initFormResetPassword();\r\n }\r\n /**\r\n * ngOnDestroy\r\n */\r\n public ngOnDestroy(): void {\r\n this.logger.debug('RESET PASSWORD FORM ON DESTROY');\r\n this.queryParamsSubscription.unsubscribe();\r\n }\r\n /**\r\n * Initiate the reset password form and its form controls with validators\r\n */\r\n private initFormResetPassword(): void {\r\n this.resetPasswordForm = new FormGroup(\r\n {\r\n password: new FormControl(null, [\r\n Validators.required,\r\n Validators.minLength(this.passwordRequirements.requiredLength),\r\n PrgAuthCustomPasswordRequirements.patternValidator(\r\n /\\d/,\r\n {\r\n hasNumber: true,\r\n },\r\n this.passwordRequirements.requireDigit\r\n ),\r\n PrgAuthCustomPasswordRequirements.patternValidator(\r\n /[a-z]/,\r\n {\r\n hasSmallCase: true,\r\n },\r\n this.passwordRequirements.requireLowercase\r\n ),\r\n PrgAuthCustomPasswordRequirements.patternValidator(\r\n /[A-Z]/,\r\n {\r\n hasCapitalCase: true,\r\n },\r\n this.passwordRequirements.requireUppercase\r\n ),\r\n PrgAuthCustomPasswordRequirements.patternValidator(\r\n /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]/,\r\n {\r\n hasSpecialCharacters: true,\r\n },\r\n this.passwordRequirements.requireNonAlphanumeric\r\n ),\r\n PrgAuthCustomPasswordRequirements.uniqueCharsValidator(\r\n this.passwordRequirements.requiredUniqueChars,\r\n {\r\n numberOfUniqueChars:\r\n this.passwordRequirements.requiredUniqueChars,\r\n }\r\n ),\r\n ]),\r\n confirmPassword: new FormControl(null, [Validators.required]),\r\n },\r\n {\r\n validators: PrgAuthCustomPasswordRequirements.passwordMatchValidator,\r\n updateOn: 'change',\r\n }\r\n );\r\n }\r\n /**\r\n * Function to display/hide password on click\r\n */\r\n public onShowPassword(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n /**\r\n * Form submission\r\n */\r\n public async onSubmitResetPassword(): Promise {\r\n if (this.resetPasswordForm.invalid) {\r\n return;\r\n }\r\n const userNewPassword = this.resetPasswordForm.controls.password.value;\r\n\r\n this.resetPasswordForm.disable();\r\n try {\r\n if (\r\n await this.authService.resetPasswordAsync(userNewPassword, this.token)\r\n ) {\r\n this.resetPasswordForm.reset();\r\n this.router.navigate([this.loginPageRoute]);\r\n }\r\n } catch (error) {\r\n this.logger.debug(error);\r\n }\r\n this.resetPasswordForm.enable();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
{{'components.reset-password.title'|translate|uppercase}}\r\n
\r\n
\r\n
{{'components.reset-password.new-password.label'|translate}}
\r\n \r\n \r\n
\r\n Password is\r\n required.\r\n Password\r\n must have\r\n one upper case.\r\n Password must have\r\n one lower\r\n case.\r\n Password must have one\r\n number.\r\n Password must\r\n have {{this.passwordRequirements.requiredLength}} chars in length.\r\n Password\r\n must have\r\n one special char.\r\n Password must\r\n have {{this.passwordRequirements.requiredUniqueChars}} unique chars.\r\n
\r\n
\r\n
\r\n
{{'components.reset-password.new-password-confirmation.label'|translate}}
\r\n \r\n \r\n\r\n
\r\n\r\n Confirm\r\n Password is\r\n required.\r\n Password and\r\n confirm password do not match\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n","/**\r\n * class PrgError\r\n */\r\nexport class PrgError {\r\n /**\r\n * title key\r\n */\r\n titleKey: string | null;\r\n /**\r\n * detailKey\r\n */\r\n detailKey: string | null;\r\n\r\n /**\r\n * time to disappear\r\n */\r\n life: number = 3500;\r\n /**\r\n * extra data\r\n */\r\n data: any;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param error\r\n */\r\n constructor(error?: Partial) {\r\n Object.assign(this, error);\r\n }\r\n}\r\n","/**\r\n * class PrgSucess\r\n */\r\nexport class PrgSucess {\r\n /**\r\n * title key\r\n */\r\n titleKey: string | null;\r\n /**\r\n * detailKey\r\n */\r\n detailKey: string | null;\r\n\r\n /**\r\n * time to disappear\r\n */\r\n life: number = 3500;\r\n /**\r\n * extra data\r\n */\r\n data: any;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param success\r\n */\r\n constructor(success?: Partial) {\r\n Object.assign(this, success);\r\n }\r\n}\r\n","import { Token, User } from '../models/user.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface UsersBD {\r\n /**\r\n * Mock users\r\n */\r\n Users: User[];\r\n}\r\n\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const UsersBDMOCk: UsersBD = {\r\n Users: [\r\n {\r\n id: '1',\r\n name: 'Ivo Carvalho',\r\n token: new Token({\r\n imageUrl: '/assets/images/Image_profile_Example.jpg',\r\n }),\r\n email: 'ivo@gmail.com',\r\n password: 'Abcd1_',\r\n tokenResetPassword: 'reset',\r\n },\r\n {\r\n id: '2',\r\n name: 'Pedro Couto',\r\n token: null,\r\n email: 'pedrocouto@gmail.com',\r\n password: 'Abcd1_',\r\n tokenResetPassword: null,\r\n },\r\n {\r\n id: '3',\r\n name: 'Pedro Lima',\r\n token: null,\r\n email: 'pedrolima@gmail.com',\r\n password: 'Abcd1_',\r\n tokenResetPassword: null,\r\n },\r\n {\r\n id: '4',\r\n name: 'Luis Alves',\r\n token: null,\r\n email: 'luis@gmail.com',\r\n password: 'Abcd1_',\r\n tokenResetPassword: null,\r\n },\r\n ],\r\n\r\n /* TODO: MAP IDENTITY CONFIG TO CONFIGURATION ITEMS\r\n \"Identity\": {\r\n \"DefaultEnabledUser\": true, // user will be enabled on register\r\n \"AllowSelfRegister\": true,\r\n \"LockoutEnabled\": true,\r\n \"CreateWorkspaceOnUserRegister\": true,\r\n \"SignIn\": {\r\n \"RequireEnabledUser\": false,\r\n \"RequireConfirmedAdmin\": false,\r\n \"RequireConfirmedEmail\": true,\r\n \"RequireConfirmedPhoneNumber\": false\r\n },\r\n \"Lockout\": {\r\n \"LockoutTimeSpan\": \"1.00:00:00\" //lock out for 1 day\r\n },\r\n \"Password\": {\r\n \"RequireDigit\": true,\r\n \"RequiredLength\": 7,\r\n \"RequireLowercase\": true,\r\n \"RequiredUniqueChars\": 1,\r\n \"RequireUppercase\": true,\r\n \"RequireNonAlphanumeric\": true\r\n },\r\n \"Callbacks\": {\r\n \"BaseUrl\": \"http://localhost:8100\",\r\n \"LoginUrl\": \"/auth/login\",\r\n \"ConfirmedAccountUrl\": \"/auth/confirm\",\r\n \"ResetPasswordUrl\": \"/auth/reset\",\r\n \"UnsubscribeUrl\": \"/auth/unsubscribe\"\r\n },\r\n \"Token\": {\r\n \"Audience\": \"Prg.Framework.Api.Audience\",\r\n \"Issuer\": \"Prg.Framework.Api.Issuer\",\r\n \"Seconds\": 86400, // 24 hours\r\n \"RefreshDuration\": 24 // 24 hours\r\n }\r\n }\r\n */\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\n\r\nimport { PrgError } from '../../models/error.model';\r\nimport { PrgSucess } from '../../models/success.model';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class NotificationsService {\r\n /**\r\n * constructor\r\n *\r\n * @param messageService\r\n */\r\n constructor(\r\n private messageService: MessageService,\r\n private confirmationService: ConfirmationService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n /**\r\n * this function fire an error toast\r\n * @param error\r\n */\r\n public errorNotification(error: PrgError) {\r\n this.messageService.add({\r\n key: 'message',\r\n severity: 'error',\r\n summary: error.titleKey,\r\n detail: error.detailKey,\r\n life: error.life,\r\n });\r\n }\r\n\r\n /**\r\n * this function fire an success toast\r\n * @param success\r\n */\r\n public successNotification(success: PrgSucess) {\r\n this.messageService.add({\r\n key: 'message',\r\n severity: 'success',\r\n summary: success.titleKey,\r\n detail: success.detailKey,\r\n life: success.life,\r\n });\r\n }\r\n\r\n public async prgConfirmationService(\r\n translationPath: string,\r\n entityNameTranslationParameter: string = null,\r\n throwOnCancel: boolean = false\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n const confirmationServiceTranslations = await this.translateService\r\n .get(\r\n [\r\n translationPath + '.message',\r\n translationPath + '.header',\r\n translationPath + '.icon',\r\n translationPath + '.reject-label',\r\n translationPath + '.accept-label',\r\n ],\r\n entityNameTranslationParameter != null\r\n ? {\r\n entityName: entityNameTranslationParameter,\r\n }\r\n : null\r\n )\r\n .toPromise();\r\n\r\n this.confirmationService.confirm({\r\n key: 'confirmationDialog',\r\n message: confirmationServiceTranslations[translationPath + '.message'],\r\n header: confirmationServiceTranslations[translationPath + '.header'],\r\n icon: confirmationServiceTranslations[translationPath + '.icon'],\r\n rejectLabel:\r\n confirmationServiceTranslations[translationPath + '.reject-label'],\r\n acceptLabel:\r\n confirmationServiceTranslations[translationPath + '.accept-label'],\r\n\r\n accept: () => {\r\n resolve(true);\r\n },\r\n\r\n reject: () => {\r\n if (throwOnCancel) {\r\n reject();\r\n } else {\r\n resolve(false);\r\n }\r\n },\r\n });\r\n });\r\n }\r\n}\r\n","import { Validators } from '@angular/forms';\r\n\r\n/**\r\n * PRG validators\r\n */\r\nexport class PrgValidators {\r\n /**\r\n * Validators\r\n */\r\n public static Validators = Validators;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport clone from 'just-clone';\r\nimport { TreeNode } from 'primeng/api';\r\n\r\n/**\r\n * injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ArrayUtilityService {\r\n /**\r\n * this function compare two arrays\r\n * @param array1\r\n * @param array2\r\n * @returns boolean\r\n */\r\n public compareTwoArray(array1: any[], array2: any[]): boolean {\r\n const arr1 = array1.slice().sort();\r\n return (\r\n arr1.length === array2.length &&\r\n array2\r\n .slice()\r\n .sort()\r\n .every(function (value, index) {\r\n return value === arr1[index];\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * this service creates a treeNode grouped by a certain property\r\n * @param array\r\n * @param field\r\n * @returns TreeNode[]\r\n */\r\n public groupByField(array: any[], field: string): TreeNode[] {\r\n let organisedByGroup: Map = new Map();\r\n let organizedTreeNode: TreeNode[] = [];\r\n\r\n if (!array || !array.length) {\r\n return organizedTreeNode;\r\n }\r\n\r\n array.forEach((element) => {\r\n if (organisedByGroup.has(element[field])) {\r\n organisedByGroup.get(element[field]).push({ data: element });\r\n } else {\r\n organisedByGroup.set(element[field], [{ data: element }]);\r\n }\r\n });\r\n\r\n organisedByGroup.forEach((value, key) => {\r\n let treeNodeAux: TreeNode = {};\r\n let dataAux = { name: key };\r\n\r\n treeNodeAux.data = dataAux;\r\n treeNodeAux.children = value;\r\n treeNodeAux.expanded = true;\r\n organizedTreeNode.push(treeNodeAux);\r\n });\r\n\r\n return organizedTreeNode;\r\n }\r\n\r\n /**clone array\r\n *\r\n * @param arrayToClone\r\n * @returns cloned array\r\n */\r\n public clone(arrayToClone: any[]): any[] {\r\n return clone(arrayToClone);\r\n }\r\n\r\n /**\r\n *sortByProperty\r\n\r\n * @param arrayToSort\r\n * @param property\r\n * @returns\r\n */\r\n public sortByProperty(\r\n arrayToSort: any[],\r\n property: string,\r\n isAsc: boolean = true\r\n ): any[] {\r\n return this.clone(\r\n arrayToSort.sort((a, b) => {\r\n return this.compare(a[property], b[property], isAsc);\r\n })\r\n );\r\n }\r\n /**\r\n * aux function to sort items when it is static mode\r\n * @param a\r\n * @param b\r\n * @param isAsc\r\n * @returns\r\n */\r\n private compare(a: any, b: any, isAsc: boolean) {\r\n return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport clone from 'just-clone';\r\n\r\n/**\r\n * injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ObjectsUtilityService {\r\n /**\r\n * Constructor\r\n */\r\n constructor() {}\r\n\r\n /**\r\n * this function return an cloned object\r\n * @param objectToClone\r\n * @returns any\r\n */\r\n public cloneObject(objectToClone: any): any {\r\n // TODO: search a better way to clone object\r\n return clone(objectToClone);\r\n }\r\n\r\n /**\r\n * This function is responsible to transform a nested object into a flat object\r\n * @param object\r\n * @param {string} separator\r\n * @returns {{}}\r\n */\r\n public flattenObj(object: object, separator: string): object {\r\n // The object which contains the\r\n // final result\r\n let result = {};\r\n\r\n // loop through the object \"ob\"\r\n for (const i in object) {\r\n // We check the type of the i using\r\n // typeof() function and recursively\r\n // call the function again\r\n if (typeof object[i] === 'object' && !Array.isArray(object[i])) {\r\n const temp = this.flattenObj(object[i], separator);\r\n for (const j in temp) {\r\n // Store temp in result\r\n result[i + '.' + j] = temp[j];\r\n }\r\n }\r\n\r\n // Else store ob[i] in result directly\r\n else {\r\n result[i] = object[i];\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * This function is responsible a flat object into a nested object\r\n *\r\n * Nested object are define by a separator on properties ex :'.'\r\n * @param {object} object\r\n * @param {string} separator\r\n * @returns {object}\r\n */\r\n public unFlattenObj(object: object, separator: string): object {\r\n const result = {};\r\n let temp, substrings, property, i;\r\n for (property in object) {\r\n substrings = property.split(separator);\r\n temp = result;\r\n for (i = 0; i < substrings.length - 1; i++) {\r\n if (!(substrings[i] in temp)) {\r\n if (isFinite(substrings[i + 1])) {\r\n temp[substrings[i]] = [];\r\n } else {\r\n temp[substrings[i]] = {};\r\n }\r\n }\r\n temp = temp[substrings[i]];\r\n }\r\n temp[substrings[substrings.length - 1]] = object[property];\r\n }\r\n return result;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TreeNode } from 'primeng/api';\r\nimport { PrgValidators } from '../../models/validators';\r\nimport { ArrayUtilityService } from './array-utility.service';\r\nimport { ObjectsUtilityService } from './objects-utility.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * UtilityService\r\n */\r\nexport class UtilityService {\r\n /**\r\n * Constructor\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private arrayUtilityService: ArrayUtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * the default debounce time\r\n * @type {number}\r\n * @private\r\n */\r\n private defaultDebounceTime: number = 1500;\r\n\r\n /**\r\n * this function generate a string\r\n * @returns string\r\n */\r\n public newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\r\n /[xy]/g,\r\n function (c) {\r\n // tslint:disable-next-line: no-bitwise\r\n const r = (Math.random() * 16) | 0,\r\n // tslint:disable-next-line: no-bitwise\r\n v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * this function make a timeout\r\n *\r\n * @param timeInMs\r\n * @returns Promise\r\n */\r\n public sleepMsAsync(timeInMs: number): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, timeInMs);\r\n });\r\n }\r\n\r\n /**\r\n * this function make a timeout\r\n *\r\n * @param timeInSec\r\n * @returns Promise\r\n */\r\n public sleepSecAsync(timeInSec: number): Promise {\r\n return this.sleepMsAsync(timeInSec * 1000);\r\n }\r\n\r\n /**\r\n * Make eval of expression\r\n * @param {string} expression\r\n * @param context\r\n * @returns {any}\r\n */\r\n public evalFunction(expression: string, ...context: any[]): any {\r\n if (context == null || context.length === 0 || context[0] == null) {\r\n return function () {\r\n return eval(expression);\r\n };\r\n }\r\n let mergeContext = this.shallowClone(context[0]);\r\n context.forEach((cont) => {\r\n if (cont != null) {\r\n mergeContext = Object.assign(mergeContext, cont);\r\n }\r\n });\r\n return function () {\r\n return eval(expression);\r\n }.call(mergeContext);\r\n // return eval(expression.replace(new RegExp('this.', 'g'), 'context.'));\r\n }\r\n\r\n /**\r\n * An auxiliary function to make a deeper copy of the object\r\n * @param obj\r\n * @returns {any}\r\n * @private\r\n */\r\n private shallowClone(obj) {\r\n var clone = Object.create(Object.getPrototypeOf(obj));\r\n var props = Object.getOwnPropertyNames(obj);\r\n props.forEach(function (key) {\r\n var desc = Object.getOwnPropertyDescriptor(obj, key);\r\n Object.defineProperty(clone, key, desc);\r\n });\r\n return clone;\r\n }\r\n\r\n /**\r\n * debounce function\r\n * @param func\r\n * @param wait\r\n * @param immediate\r\n * @returns\r\n */\r\n public debounce(\r\n func: any,\r\n wait: number = this.defaultDebounceTime,\r\n immediate: boolean = false\r\n ) {\r\n let timeout: any;\r\n\r\n return function (args: any = null) {\r\n const context = this;\r\n\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n if (Array.isArray(args)) {\r\n func.apply(context, args);\r\n } else {\r\n func.call(context, args);\r\n }\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) {\r\n if (Array.isArray(args)) {\r\n func.apply(context, args);\r\n } else {\r\n func.call(context, args);\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * this function transforms the guiSettings into an object,\r\n * even managing the validators if they exist\r\n * @param guiSettings\r\n * @param basePathTranslation\r\n * @returns\r\n */\r\n public guiSettingToObject(\r\n guiSettings: string,\r\n basePathTranslation: string = null\r\n ): any {\r\n const guiSettingsObject = JSON.parse(guiSettings);\r\n\r\n if (!guiSettingsObject.basePathTranslation && basePathTranslation) {\r\n guiSettingsObject.basePathTranslation = basePathTranslation;\r\n }\r\n\r\n const validators = guiSettingsObject['validators'];\r\n if (validators) {\r\n guiSettingsObject['validators'] = [];\r\n validators.forEach((validator) => {\r\n guiSettingsObject['validators'].push(\r\n this.evalFunction('this.' + validator.trim(), PrgValidators)\r\n );\r\n });\r\n }\r\n return guiSettingsObject;\r\n }\r\n\r\n /**\r\n * This function build a tree structure to be used on primeng from a list of paths (array of strings) that\r\n * are joined with a separator ex: \"[Configs:UserPreferences:Defaults,Configs:UserPreferences:User...]\"\r\n * @param {string[]} arrayOfPaths\r\n * @param {string} separator\r\n * @returns {TreeNode[]}\r\n */\r\n public arrayOfPathsToTree(\r\n arrayOfPaths: string[],\r\n separator: string\r\n ): TreeNode[] {\r\n //Remove duplicates from the array of paths\r\n const itemsUniquePath: string[] = this.arrayUtilityService.clone(\r\n Array.from(new Set(arrayOfPaths))\r\n );\r\n\r\n //Sort array of paths alphabetically\r\n const itemsUniquePathSorted = itemsUniquePath.sort((a, b) =>\r\n a.localeCompare(b)\r\n );\r\n\r\n //split the path in subArrays with separator\r\n const itemsSplitPath = itemsUniquePathSorted.map((value) =>\r\n value.split(separator)\r\n );\r\n\r\n //Find out the number of levels that will have the menu\r\n const menuLevels = itemsSplitPath.reduce(\r\n (previousValue, currentValue) =>\r\n previousValue > currentValue.length\r\n ? previousValue\r\n : currentValue.length,\r\n 0 // initial value\r\n );\r\n\r\n // Tree table construction\r\n const tree: TreeNode[] = [];\r\n const levels: any[] = [tree];\r\n let lastPath: string[] = [];\r\n itemsUniquePathSorted.forEach((path) => {\r\n let splitPathTemp = path.split(':');\r\n splitPathTemp.forEach((label, index) => {\r\n if (lastPath[index] === label) return;\r\n let parentPath: string[] = [];\r\n splitPathTemp.map((path, subIndex) => {\r\n if (index >= subIndex) {\r\n parentPath.push(path);\r\n }\r\n });\r\n if (index < menuLevels - 1) {\r\n levels[index].push({\r\n label,\r\n expanded: true,\r\n key: parentPath.join(separator),\r\n children: (levels[index + 1] = []),\r\n selectable: index === splitPathTemp.length - 1,\r\n });\r\n } else {\r\n levels[index].push({\r\n label,\r\n key: parentPath.join(separator),\r\n selectable: true,\r\n });\r\n }\r\n });\r\n lastPath = splitPathTemp;\r\n });\r\n return tree;\r\n }\r\n\r\n /**\r\n * This function is responsible to search for a key in map by a given value\r\n * @param map\r\n * @param searchValue\r\n * @returns {any}\r\n */\r\n public getKeyByValueOnMap(map, searchValue): any {\r\n for (let [key, value] of map.entries()) {\r\n if (value === searchValue) return key;\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { PrgError } from '../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { AuthStorage } from '../../models/prg-auth-config';\r\nimport { User } from '../../models/user.model';\r\nimport { AbstractAuthService } from '../../services/auth/abstract-auth.service';\r\nimport { UsersBDMOCk } from '../database.mock';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * MOCK AbstractAuthService implementation\r\n */\r\nexport class MockAuthService extends AbstractAuthService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 2;\r\n\r\n /**\r\n * constructor\r\n * @param authStorage\r\n * @param notificationsService\r\n * @param utilityService\r\n * @param isLoadingData\r\n */\r\n constructor(\r\n @Inject('AUTHSTORAGE') authStorage: AuthStorage,\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private isLoadingData: IsLoadingDataService\r\n ) {\r\n super(authStorage);\r\n }\r\n\r\n /**\r\n * User login (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @param {string} password The user password\r\n * @param {boolean} storeUserName Store username\r\n * @returns Boolean promise, true when successful\r\n */\r\n public loginAsync(\r\n email: string,\r\n password: string,\r\n storeUserName: boolean\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const user = UsersBDMOCk.Users.find(\r\n (u) => u.email === email || u.name === email\r\n );\r\n this.isLoadingData.hide();\r\n if (user && password === user.password) {\r\n this.setLoggedUser(user);\r\n if (storeUserName) {\r\n this.setStoredUserName(email);\r\n } else {\r\n this.removeStoredUserName();\r\n }\r\n resolve(true);\r\n } else {\r\n reject('Authentication has failed');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Login Error.',\r\n detailKey: 'Invalid e-mail or password',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * User logout (Async)\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public logoutAsync(): Promise {\r\n return new Promise(async (resolve) => {\r\n const checkUserLogOut = await this.baseLogoutAsync();\r\n if (checkUserLogOut) {\r\n resolve(true);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * User sign up (Async)\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public signupAsync(email: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const checkUser = UsersBDMOCk.Users.find((u) => u.email === email);\r\n this.isLoadingData.hide();\r\n if (!checkUser) {\r\n let user = new User();\r\n user.name = email;\r\n user.id = this.utilityService.newGuid();\r\n user.token = null;\r\n user.email = email;\r\n UsersBDMOCk.Users.push(user);\r\n resolve(true);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'Registration completed.',\r\n detailKey: 'An email as been sent with a temporary password.',\r\n })\r\n );\r\n } else {\r\n reject('Registration has failed.');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Registration Error.',\r\n detailKey: `The email ${email} already exists in database`,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Request to reset the password (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @returns Boolean promise, true when successful\r\n */\r\n public requestResetPasswordAsync(email: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const checkUser = UsersBDMOCk.Users.find((u) => u.email === email);\r\n this.isLoadingData.hide();\r\n if (checkUser) {\r\n resolve(true);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'Request Password completed.',\r\n detailKey: 'An email as been sent with a link to reset password.',\r\n })\r\n );\r\n } else {\r\n reject('Request Password Failed');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Request Password Failed',\r\n detailKey: `The email ${email} doesn't exist in database.`,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Getter for token reset password (Async)\r\n *\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public getTokenResetPasswordAsync(tokenReset: string): Promise {\r\n return new Promise((resolve) => {\r\n const checkUser = UsersBDMOCk.Users.find(\r\n (u) => u.tokenResetPassword === tokenReset\r\n );\r\n if (checkUser) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Method for reset password (Async)\r\n *\r\n * @param {string} newPassword The new password\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public resetPasswordAsync(\r\n newPassword: string,\r\n tokenReset: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const checkUser = UsersBDMOCk.Users.find(\r\n (u) => u.tokenResetPassword === tokenReset\r\n );\r\n this.isLoadingData.hide();\r\n if (checkUser) {\r\n checkUser.password = newPassword;\r\n resolve(true);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'New Password',\r\n detailKey: 'Password Changed Successfully',\r\n })\r\n );\r\n } else {\r\n reject('The password change operation has failed.');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Password Error.',\r\n detailKey: `The password change operation has failed.`,\r\n })\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrderListModule } from 'primeng/orderlist';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SpeedDialModule } from 'primeng/speeddial';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { TriStateCheckboxModule } from 'primeng/tristatecheckbox';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n InputTextareaModule,\r\n ProgressSpinnerModule,\r\n TableModule,\r\n CalendarModule,\r\n SliderModule,\r\n DialogModule,\r\n TreeModule,\r\n SidebarModule,\r\n ListboxModule,\r\n MultiSelectModule,\r\n ContextMenuModule,\r\n SelectButtonModule,\r\n KnobModule,\r\n DropdownModule,\r\n ButtonModule,\r\n ToastModule,\r\n ChipsModule,\r\n InputSwitchModule,\r\n InputTextModule,\r\n RatingModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n TreeTableModule,\r\n TriStateCheckboxModule,\r\n SplitterModule,\r\n TabMenuModule,\r\n DynamicDialogModule,\r\n OrderListModule,\r\n FileUploadModule,\r\n InputNumberModule,\r\n PasswordModule,\r\n SpeedDialModule,\r\n AutoCompleteModule,\r\n SplitButtonModule,\r\n ToolbarModule,\r\n InputMaskModule,\r\n ImageModule,\r\n MessageModule,\r\n RippleModule,\r\n ColorPickerModule,\r\n CascadeSelectModule,\r\n TranslateModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToggleButtonModule,\r\n ConfirmDialogModule,\r\n ChipModule,\r\n TieredMenuModule,\r\n MenuModule,\r\n AccordionModule,\r\n ],\r\n exports: [\r\n MenuModule,\r\n TieredMenuModule,\r\n SelectButtonModule,\r\n RadioButtonModule,\r\n ChipModule,\r\n ChipsModule,\r\n CommonModule,\r\n KnobModule,\r\n ProgressSpinnerModule,\r\n TableModule,\r\n TreeModule,\r\n CalendarModule,\r\n SliderModule,\r\n CascadeSelectModule,\r\n DialogModule,\r\n MultiSelectModule,\r\n ContextMenuModule,\r\n DropdownModule,\r\n ListboxModule,\r\n ButtonModule,\r\n ToastModule,\r\n InputTextModule,\r\n InputSwitchModule,\r\n RatingModule,\r\n CheckboxModule,\r\n TreeTableModule,\r\n AutoCompleteModule,\r\n TriStateCheckboxModule,\r\n SplitterModule,\r\n TabMenuModule,\r\n InputMaskModule,\r\n DynamicDialogModule,\r\n OrderListModule,\r\n FileUploadModule,\r\n SidebarModule,\r\n InputNumberModule,\r\n PasswordModule,\r\n SpeedDialModule,\r\n SplitButtonModule,\r\n ToolbarModule,\r\n ImageModule,\r\n MessageModule,\r\n RippleModule,\r\n TranslateModule,\r\n RouterModule,\r\n ColorPickerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToggleButtonModule,\r\n ConfirmDialogModule,\r\n AccordionModule,\r\n InputTextareaModule,\r\n ],\r\n})\r\nexport class PrgSharedComponentsModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\n\r\n/**\r\n * Login Page\r\n */\r\n@Component({\r\n selector: 'prg-auth-login',\r\n templateUrl: './prg-auth-login.page.html',\r\n styleUrls: ['./prg-auth-login.page.scss'],\r\n})\r\nexport class PrgAuthLoginPage implements OnInit {\r\n /**\r\n * constructor\r\n * @param logger\r\n */\r\n constructor(private logger: NGXLogger) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit(): void {\r\n this.logger.debug('Login Page on Init');\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Register page\r\n */\r\n@Component({\r\n selector: 'prg-auth-register',\r\n templateUrl: 'prg-auth-register.page.html',\r\n styleUrls: ['prg-auth-register.page.scss'],\r\n})\r\nexport class PrgAuthRegisterPage {}\r\n","
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Request password page\r\n */\r\n@Component({\r\n selector: 'prg-auth-request-password',\r\n templateUrl: './prg-auth-request-password.page.html',\r\n styleUrls: ['./prg-auth-request-password.page.scss'],\r\n})\r\nexport class PrgAuthRequestPasswordPage {}\r\n","
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Reset password page\r\n */\r\n@Component({\r\n selector: 'prg-auth-reset-password',\r\n templateUrl: './prg-auth-reset-password.page.html',\r\n styleUrls: ['./prg-auth-reset-password.page.scss'],\r\n})\r\nexport class PrgAuthResetPasswordPage {}\r\n","
\r\n \r\n
\r\n\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { Subscription } from 'rxjs';\r\nimport { IsLoadingDataService } from '../../core/services/is-loading-data/isloadingdata.service';\r\n\r\n/**\r\n * Empty Layout component, contains a router-outlet\r\n *
that displays child components\r\n */\r\n@Component({\r\n selector: 'prg-layouts-empty',\r\n templateUrl: './prg-layouts-empty.component.html',\r\n styleUrls: ['./prg-layouts-empty.component.scss'],\r\n})\r\nexport class PrgLayoutsEmptyComponent\r\n implements OnInit, OnDestroy, AfterContentChecked\r\n{\r\n /**\r\n * spinnerVisible value\r\n */\r\n public spinnerVisible: boolean = false;\r\n /**\r\n * subscriptions\r\n */\r\n private subscriptions: Subscription[] = [];\r\n /**\r\n * Constructor\r\n * @param logger\r\n * @param isLoadingData isLoadingData\r\n * @param cdr\r\n */\r\n constructor(\r\n private logger: NGXLogger,\r\n public isLoadingData: IsLoadingDataService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit(): void {\r\n this.logger.debug('EMPTY LAYOUT ON INIT');\r\n }\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ionViewWillEnter(): void {\r\n this.logger.debug('EMPTY LAYOUT WILL ENTER');\r\n }\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ionViewWillLeave(): void {\r\n this.logger.debug('EMPTY LAYOUT WILL LEAVE');\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy(): void {\r\n this.logger.debug('EMPTY LAYOUT ON DESTROY');\r\n this.subscriptions.forEach((subscription: Subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n this.subscriptions = [];\r\n }\r\n\r\n /**\r\n * ngAfterContentChecked\r\n */\r\n ngAfterContentChecked(): void {\r\n this.subscriptions.push(\r\n this.isLoadingData.visibility.subscribe((visible: boolean) => {\r\n this.spinnerVisible = visible;\r\n this.cdr.detectChanges();\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AbstractAuthService } from '../services/auth/abstract-auth.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * Guard to verify if there is a logged user. If true, user can't access login page and register page.\r\n */\r\nexport class AuthGuardLogin implements CanActivate {\r\n /**\r\n * constructor\r\n * @param authService\r\n * @param router\r\n */\r\n constructor(\r\n private authService: AbstractAuthService,\r\n private router: Router\r\n ) {}\r\n\r\n /**\r\n * This method is responsable to check if there is a user logged on local storage and return true if not or redirect user to home page if there is a user logged\r\n * @param {ActivatedRouteSnapshot} route\r\n * @param {RouterStateSnapshot} state\r\n * @returns {Observable | Promise | boolean | UrlTree}\r\n */\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ):\r\n | Observable\r\n | Promise\r\n | boolean\r\n | UrlTree {\r\n if (!this.authService.getLoggedUser()) {\r\n return true;\r\n } else {\r\n return this.router.createUrlTree(['']);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, ROUTES } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { AuthGuardLogin } from './guards/prg-auth-guard.service';\r\nimport { PrgAuthLoginPage } from './pages/login/prg-auth-login.page';\r\nimport { PrgAuthRegisterPage } from './pages/register/prg-auth-register.page';\r\nimport { PrgAuthRequestPasswordPage } from './pages/request-password/prg-auth-request-password.page';\r\nimport { PrgAuthResetPasswordPage } from './pages/reset-password/prg-auth-reset-password.page';\r\nimport { authConfig } from './prg-auth.module';\r\n\r\n/**\r\n * Authentication routing module routes\r\n */\r\nconst standardRoutes: Routes = [];\r\n\r\n/**\r\n * Authentication Routing Module\r\n */\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: authConfig.authRoutingBasePath,\r\n component: PrgLayoutsEmptyComponent,\r\n children: [\r\n {\r\n path: authConfig.authRoutingSignupPath,\r\n component: PrgAuthRegisterPage,\r\n canActivate: [AuthGuardLogin],\r\n },\r\n {\r\n path: authConfig.authRoutingLoginPath,\r\n component: PrgAuthLoginPage,\r\n canActivate: [AuthGuardLogin],\r\n },\r\n\r\n {\r\n path: authConfig.authRoutingRequestPasswordPath,\r\n component: PrgAuthRequestPasswordPage,\r\n },\r\n\r\n {\r\n path: authConfig.authRoutingResetPasswordPath,\r\n /*canActivate: [PrgAuthGuardPassword],*/\r\n component: PrgAuthResetPasswordPage,\r\n },\r\n {\r\n path: '',\r\n redirectTo: authConfig.authRoutingLoginPath,\r\n pathMatch: 'full',\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgAuthRoutingModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { AuthStorage } from '../../models/prg-auth-config';\r\n// import jwt_decode from 'jwt-decode';\r\nimport { AbstractAuthService } from './abstract-auth.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * REAL AbstractAuthService implementation\r\n */\r\nexport class AuthService extends AbstractAuthService {\r\n private readonly baseUrl: string = 'http://localhost:8080';\r\n /**\r\n * constructor\r\n * @param {AuthStorage} authStorage\r\n * @param {HttpClient} http\r\n */\r\n constructor(\r\n @Inject('AUTHSTORAGE') authStorage: AuthStorage,\r\n private http: HttpClient\r\n ) {\r\n super(authStorage);\r\n }\r\n\r\n /**\r\n * User login (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @param {string} password The user password\r\n * @param {boolean} storeUserName Store username\r\n * @returns Boolean promise, true when successful\r\n */\r\n public loginAsync(\r\n email: string,\r\n password: string,\r\n storeUserName: boolean\r\n ): Promise {\r\n return firstValueFrom(this.http.get(this.baseUrl));\r\n }\r\n\r\n /**\r\n * User logout (Async)\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public logoutAsync(): Promise {\r\n return new Promise((resolve) => {\r\n this.setLoggedUser(null);\r\n resolve(true);\r\n });\r\n }\r\n /**\r\n * User sign up (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @returns Boolean promise, true when successful\r\n */\r\n public signupAsync(email: string): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n /**\r\n * Request to reset the password (Async)\r\n *\r\n * @param {string} email The user e-mail\r\n * @returns Boolean promise, true when successful\r\n */\r\n public requestResetPasswordAsync(email: string): Promise {\r\n return Promise.resolve(false);\r\n }\r\n /**\r\n * Getter for token reset password (Async)\r\n *\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public getTokenResetPasswordAsync(tokenReset: string): Promise {\r\n return Promise.resolve(false);\r\n }\r\n /**\r\n * Method for reset password (Async)\r\n *\r\n * @param {string} newPassword The new password\r\n * @param {string} tokenReset The token reset password\r\n * @returns Boolean promise, true when successful\r\n */\r\n public resetPasswordAsync(\r\n newPassword: string,\r\n tokenReset: string\r\n ): Promise {\r\n return Promise.resolve(false);\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgFormLoginComponent } from './components/form-login/prg-form-login.component';\r\nimport { PrgFormRegisterComponent } from './components/form-register/prg-form-register.component';\r\nimport { PrgFormRequestPasswordComponent } from './components/form-request-password/prg-form-request-password.component';\r\nimport { PrgFormResetPasswordComponent } from './components/form-reset-password/prg-form-reset-password.component';\r\nimport { MockAuthService } from './mock/services/auth.service.mock';\r\nimport { PrgAuthConfig } from './models/prg-auth-config';\r\nimport { PrgAuthLoginPage } from './pages/login/prg-auth-login.page';\r\nimport { PrgAuthRegisterPage } from './pages/register/prg-auth-register.page';\r\nimport { PrgAuthRequestPasswordPage } from './pages/request-password/prg-auth-request-password.page';\r\nimport { PrgAuthResetPasswordPage } from './pages/reset-password/prg-auth-reset-password.page';\r\nimport { PrgAuthRoutingModule } from './prg-auth-routing.module';\r\nimport { AbstractAuthService } from './services/auth/abstract-auth.service';\r\nimport { AuthService } from './services/auth/auth.service';\r\nimport { PRG_AUTH_CONFIG } from './services/prg-auth-configuration/prg-auth-configuration.service';\r\n\r\n// CR: falta o multilingue em todo o módulo\r\n/**\r\n * Module that handles authentication\r\n */\r\n@NgModule({\r\n declarations: [\r\n PrgAuthRegisterPage,\r\n PrgFormRegisterComponent,\r\n PrgAuthLoginPage,\r\n PrgFormLoginComponent,\r\n PrgFormRequestPasswordComponent,\r\n PrgAuthRequestPasswordPage,\r\n PrgFormResetPasswordComponent,\r\n PrgAuthResetPasswordPage,\r\n ],\r\n imports: [PrgSharedComponentsModule, PrgAuthRoutingModule],\r\n exports: [\r\n PrgFormRegisterComponent,\r\n PrgFormLoginComponent,\r\n PrgFormRequestPasswordComponent,\r\n PrgFormResetPasswordComponent,\r\n ],\r\n})\r\nexport class PrgAuthModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgAuthConfig: PrgAuthConfig\r\n ): ModuleWithProviders {\r\n authConfig = prgAuthConfig;\r\n return {\r\n ngModule: PrgAuthModule,\r\n providers: [\r\n {\r\n provide: PRG_AUTH_CONFIG,\r\n useValue: prgAuthConfig,\r\n },\r\n {\r\n provide: AbstractAuthService,\r\n useClass: prgAuthConfig.useMockServices\r\n ? MockAuthService\r\n : AuthService,\r\n },\r\n {\r\n provide: 'AUTHSTORAGE',\r\n useValue: authConfig.authStorage,\r\n }, // CR: ok o tipo de storage deve ser uma configuração no environment e o nome que lhe damos deve ser mais generico (ex: \"AUTHSTORAGE\")\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the AuthCoreConfig object\r\n */\r\nexport let authConfig: PrgAuthConfig;\r\n","/**\r\n * BaseEntity class extended by most framework entities\r\n */\r\n\r\nexport abstract class BaseEntity {\r\n /**\r\n * Id\r\n */\r\n id: string;\r\n /**\r\n * Universal State lookup table item id (foreign key)\r\n */\r\n universalStateId: string = UniversalState.Active;\r\n /**\r\n * Database transaction id\r\n */\r\n transactionId: string;\r\n /**\r\n * Database operation id\r\n */\r\n operationId: string;\r\n /**\r\n * Name\r\n */\r\n name: string;\r\n /**\r\n * Created by user id\r\n */\r\n createdBy: string;\r\n /**\r\n * Modified by (last) user id\r\n */\r\n modifiedBy: string;\r\n /**\r\n * Creation date\r\n */\r\n createdOn: Date;\r\n /**\r\n * Modification date\r\n */\r\n modifiedOn: Date;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport enum UniversalState {\r\n Inactive = '0',\r\n Active = '1',\r\n}\r\n","/**\r\n * ConfigurationItem class that defines generic configurations\r\n */\r\nimport { BaseEntity } from '../../core/models/base-entity.model';\r\n\r\n/**\r\n * The model of Configuration Items\r\n */\r\nexport class ConfigurationItem extends BaseEntity {\r\n /**\r\n * Path that leads to the item (excluding itself)\r\n *
e.g. \"Identity:SignIn\"\r\n *
the node name is on the name property from BaseEntity\r\n */\r\n path: string;\r\n /**\r\n * Item value\r\n */\r\n value: any;\r\n /**\r\n * Item value type\r\n */\r\n //TODO :datatype, referenceType and referenceName should be inside of guiSettings?\r\n /* dataType: string;\r\n /!**\r\n * existing enum (looukup, entitytype)\r\n *!/\r\n\r\n referenceType: ReferenceType;\r\n /!**\r\n * If type is lookup table, item\r\n *
lookup table name\r\n *!/\r\n referenceName: string;*/\r\n /**\r\n * gui settings\r\n * @type {string}\r\n */\r\n guiSettings: string;\r\n\r\n /**\r\n * Item is system\r\n */\r\n readonly: boolean;\r\n //isSystem\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Enum of most common sub-paths of config items\r\n */\r\nexport enum ConfigItemsPath {\r\n Defaults = 'Defaults',\r\n UserPreferences = 'User-Preferences',\r\n}\r\n","import { BehaviorSubject, Observable } from 'rxjs';\r\nimport { ConfigurationItem } from '../../models/configuration-item.model';\r\n\r\n/**\r\n * ConfigurationItemsService class that defines an\r\n *
abstract authentication service to\r\n *
be extended by the mock and real\r\n *
configuration items services\r\n */\r\nexport abstract class AbstractConfigurationItemsService {\r\n /**\r\n * Current configurationItems\r\n */\r\n protected configurationItemsSubject = new BehaviorSubject<\r\n ConfigurationItem[]\r\n >(null);\r\n\r\n /**\r\n * Setter for configurationItemsSubject\r\n *\r\n * @param {ConfigurationItem[]} value The ConfigurationItems array\r\n */\r\n protected setConfigurationItems(value: ConfigurationItem[]): void {\r\n this.configurationItemsSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for configurationItemsSubject\r\n *\r\n * @returns The configurationItemsSubject as an observable\r\n */\r\n public getConfigurationItemsObservable(): Observable {\r\n return this.configurationItemsSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for configurationItemsSubject\r\n *\r\n * @returns The configurationItemsSubject current value\r\n */\r\n public getConfigurationItemsValue(): ConfigurationItem[] {\r\n return this.configurationItemsSubject.getValue();\r\n }\r\n /**\r\n * Get a list of all configuration items\r\n * @returns {Promise}\r\n */\r\n public abstract getAllConfigurationItemsAsync(): Promise;\r\n\r\n /**\r\n * Function responsible to update Config Items\r\n * @param configItemData\r\n * @returns {Promise}\r\n */\r\n public abstract updateConfigurationItemsAsync(\r\n configItemData: any\r\n ): Promise;\r\n\r\n /**\r\n * Get configuration items by path\r\n * @param {string} path\r\n * @returns {Promise}\r\n */\r\n public abstract getConfigurationItemsByPathAsync(path: string): Promise;\r\n}\r\n","import { ValidatorFn } from '@angular/forms';\r\n\r\n/**\r\n * Class BaseField\r\n */\r\nexport class BaseField {\r\n /**\r\n * defines the element to be used\r\n * should be prg-input or prg-select\r\n * default is prg-input\r\n */\r\n public controlName?: string;\r\n\r\n /**\r\n * value\r\n */\r\n public value?: any;\r\n\r\n /**\r\n * read only\r\n */\r\n public readonly?: boolean = false;\r\n\r\n /**\r\n * disabled\r\n */\r\n public disabled?: boolean = false;\r\n\r\n /**\r\n * visible expression\r\n */\r\n public visibleExpression?: string;\r\n\r\n /**\r\n * enable expression\r\n */\r\n public enableExpression?: string;\r\n\r\n /**\r\n * mandatory field, is used like formcontrolname\r\n */\r\n public key!: string;\r\n\r\n /**\r\n * path to translation\r\n */\r\n\r\n public basePathTranslation?: string = null;\r\n\r\n /**\r\n * array with validations\r\n *\r\n * @example\r\n * validators: [Validators.required, Validators.minLength(6)],\r\n */\r\n public validators?: ValidatorFn[];\r\n\r\n /**\r\n * Disabled output event\r\n * @type {boolean}\r\n */\r\n public disabledOutputEvent?: boolean = true;\r\n\r\n /**\r\n * Property that identifies the group that aggregates multiple fields\r\n * @type {string}\r\n */\r\n public groupFieldsId?: string;\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","export enum ControlName {\r\n inputText = 'inputText',\r\n inputNumber = 'inputNumber',\r\n inputDateTime = 'inputDateTime',\r\n inputPassword = 'inputPassword',\r\n dropdown = 'dropdown',\r\n multiSelect = 'multiSelect',\r\n checkbox = 'checkbox',\r\n triStateCheckbox = 'triStateCheckbox',\r\n inputTextArea = 'inputTextArea',\r\n selectButton = 'selectButton',\r\n radioButton = 'radioButton',\r\n colorPicker = 'colorPicker',\r\n inputMask = 'inputMask',\r\n slider = 'slider',\r\n inputSwitch = 'inputSwitch',\r\n rating = 'rating',\r\n knob = 'knob',\r\n chips = 'chips',\r\n toggleButton = 'toggleButton',\r\n listBox = 'listBox',\r\n cascadeSelect = 'cascadeSelect',\r\n autoComplete = 'autoComplete',\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Checkbox } from 'primeng/checkbox';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class CheckBox\r\n */\r\nexport class CheckboxConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.checkbox;\r\n\r\n /**\r\n *Name of the checkbox group.\r\n */\r\n public name: string = null;\r\n /* /!**\r\n *Value of the checkbox.\r\n *!/\r\n public value: any = null;*/ //Property already on Base Field\r\n /**\r\n *Label of the checkbox.\r\n */\r\n public label: string = null;\r\n /*\r\n /!**\r\n *When present, it specifies that the element should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n /**\r\n *Allows to select a boolean value instead of multiple values.\r\n */\r\n public binary: boolean = true;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Used to define a string that labels the input element.\r\n */\r\n public ariaLabel: string = null;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: object = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Style class of the label.\r\n */\r\n public labelStyleClass: string = null;\r\n /**\r\n *Icon class of the checkbox icon.\r\n */\r\n public checkboxIcon: string = 'pi pi-check';\r\n /* /!**\r\n *When present, it specifies that the component cannot be edited.\r\n *!/\r\n public readonly: boolean = false;*/ //Property already on Base Field\r\n /**\r\n *When present, it specifies that checkbox must be checked before submitting the form.\r\n */\r\n public required: boolean = false;\r\n /**\r\n *Value in checked state.\r\n */\r\n public trueValue: any;\r\n /**\r\n *Value in unchecked state.\r\n */\r\n public falseValue: any;\r\n\r\n /**\r\n *An array of objects to display as dynamic values.Mandatory field.\r\n */\r\n public options: any[] = null;\r\n\r\n /**\r\n *Name of the value field of an option. Default 'value'.\r\n */\r\n public optionValue: string = 'value';\r\n\r\n /**\r\n *Name of the key field of an option.Default 'key'.Also used to bring the translation of the field\r\n */\r\n public optionKey: string = 'key';\r\n\r\n /**\r\n * Allow multiple checkbox selection. On false , whenever a checkbox is checked the others became disabled.\r\n */\r\n public allowMultipleCheckBoxSelection: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setCheckboxConfigs]',\r\n})\r\nexport class PrgSetCheckboxConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Checkbox) {}\r\n /**\r\n * input checkbox configs and assign configs to element\r\n */\r\n @Input() set setCheckboxConfigs(configs: CheckboxConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { InputNumber } from 'primeng/inputnumber';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Fiels\r\n */\r\nexport class InputNumberConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName: string = ControlName.inputNumber;\r\n /**\r\n *Whether to format the value.\r\n */\r\n public format: boolean = true;\r\n\r\n /**\r\n *Displays spinner buttons.\r\n */\r\n public showButtons: boolean = false;\r\n\r\n /**\r\n *Layout of the buttons, valid values are stacked (default), horizontal and vertical.\r\n */\r\n public buttonLayout: string = 'stacked';\r\n\r\n /**\r\n *Style class of the increment button.\r\n */\r\n public incrementButtonClass: string = null;\r\n\r\n /**\r\n *Style class of the decrement button.\r\n */\r\n public decrementButtonClass: string = null;\r\n\r\n /**\r\n *Style class of the increment button.\r\n */\r\n public incrementButtonIcon: string = 'pi pi-chevron-up';\r\n\r\n /**\r\n *Style class of the decrement button.\r\n */\r\n public decrementButtonIcon: string = 'pi pi-chevron-down';\r\n\r\n /**\r\n *Locale to be used in formatting.\r\n */\r\n public locale: string = undefined;\r\n\r\n /**\r\n *The locale matching algorithm to use. Possible values are lookup and best fit; the default is best fit. See Locale Negotation for details.\r\n */\r\n public localeMatcher: string = 'best fit';\r\n\r\n /**\r\n *Defines the behavior of the component, valid values are decimal and currency.\r\n */\r\n public mode: string = 'decimal';\r\n\r\n /**\r\n *Text to display before the value.\r\n */\r\n public prefix: string = null;\r\n\r\n /**\r\n *Text to display after the value.\r\n */\r\n public suffix: string = null;\r\n\r\n /**\r\n *The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as USD for the US dollar, EUR for the euro, or CNY for the Chinese RMB. There is no default value; if the style is currency, the currency property must be provided.\r\n */\r\n public currency: string = undefined;\r\n\r\n /**\r\n *How to display the currency in currency formatting. Possible values are symbol to use a localized currency symbol such as €, ücode to use the ISO currency code, name to use a localized currency name such as dollar; the default is symbol.\r\n */\r\n public currencyDisplay: string = 'symbol';\r\n\r\n /**\r\n *Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators.\r\n */\r\n public useGrouping: boolean = true;\r\n\r\n /**\r\n *The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\r\n */\r\n public minFractionDigits: number = null;\r\n\r\n /**\r\n *The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\r\n */\r\n public maxFractionDigits: number = null;\r\n\r\n /**\r\n *Mininum boundary value.\r\n */\r\n public min: number = null;\r\n\r\n /**\r\n *Maximum boundary value.\r\n */\r\n public max: number = null;\r\n\r\n /**\r\n *Step factor to increment/decrement the value.\r\n */\r\n public step: number = 1;\r\n\r\n /**\r\n *Determines whether the input field is empty.\r\n */\r\n public allowEmpty: boolean = true;\r\n\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyle: string = null;\r\n\r\n /**\r\n *Style class of the input field.\r\n */\r\n public inputStyleClass: string = null;\r\n\r\n /**\r\n *Advisory information to display on input.\r\n */\r\n /* public placeholder: string = null;*/ // this property is translated on multilingue\r\n\r\n /**\r\n *Size of the input field.\r\n */\r\n public size: number = null;\r\n\r\n /**\r\n *Maximum number of character allows in the input field.\r\n */\r\n public maxlength: number = null;\r\n\r\n /**\r\n *Specifies tab order of the element.\r\n */\r\n public tabindex: string = null;\r\n /*\r\n /!**\r\n *When present, it specifies that the element should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n *When present, it specifies that an input field is read-only.\r\n */\r\n // public readonly: boolean = false; // CR: already in base field\r\n\r\n /**\r\n *Title text of the input text.\r\n */\r\n public title: string = null;\r\n\r\n /**\r\n *Used to define a string that labels the input element.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n *Used to indicate that user input is required on an element before a form can be submitted.\r\n */\r\n public ariaRequired: boolean = false;\r\n\r\n /**\r\n *Name of the input field.\r\n */\r\n // public name: string = null; // this property is translated on multilingue\r\n\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public autocomplete: string = null;\r\n\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * directive\r\n */\r\n@Directive({\r\n selector: '[setInputNumberConfigs]',\r\n})\r\nexport class PrgSetInputNumberConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: InputNumber) {}\r\n\r\n /**\r\n * input number configs and assign configs to element\r\n */\r\n @Input() set setInputNumberConfigs(configs: InputNumberConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","export enum ReferenceType {\r\n LookupTable = 'lookupTable',\r\n EntityType = 'entityType',\r\n EntityTypeAllData = 'entityTypeAllData',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * BaseCacheService\r\n */\r\nexport class BaseCacheService {\r\n /**\r\n * map with a BehaviorSubject for each element\r\n */\r\n protected cacheMapSubject = new Map>();\r\n\r\n /**\r\n * BehaviorSubject of a list of elements\r\n */\r\n protected cacheListSubject = new BehaviorSubject(null);\r\n\r\n /**\r\n * cache expiration time\r\n */\r\n protected cacheTimeMs: number = 15000;\r\n\r\n /**\r\n * saves the date the cache was updated\r\n */\r\n protected entityTypeGetDate: Date = null;\r\n\r\n /**\r\n *\r\n * @param values\r\n * @param key\r\n */\r\n protected setToCache(values: T[] | T, key: string = 'id'): void {\r\n this.setToCacheMap(values, key);\r\n this.setToCacheList(values);\r\n }\r\n\r\n /**\r\n * this function is responsible for managing the cache of each element\r\n * @param values\r\n * @param key\r\n */\r\n private setToCacheMap(values: T[] | T, key: string = 'id'): void {\r\n if (this.cacheMapSubject == null) {\r\n this.cacheMapSubject = new Map>();\r\n }\r\n if (!Array.isArray(values)) {\r\n values = [values];\r\n }\r\n if (Array.isArray(values)) {\r\n values.forEach((value) => {\r\n if (value[key]) {\r\n if (this.cacheMapSubject.has(value[key])) {\r\n this.cacheMapSubject.get(value[key]).next(value);\r\n } else {\r\n this.cacheMapSubject.set(value[key], new BehaviorSubject(value));\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.entityTypeGetDate = new Date();\r\n }\r\n\r\n /**\r\n * this function is responsible for managing the cache of a list of elements\r\n * @param values\r\n */\r\n private setToCacheList(values: T[] | T): void {\r\n if (this.cacheListSubject.getValue() == null) {\r\n this.cacheListSubject.next([]);\r\n }\r\n if (!Array.isArray(values)) {\r\n values = [values];\r\n }\r\n values.forEach((value) => {\r\n if (value['id'] != null) {\r\n const element = this.cacheListSubject\r\n .getValue()\r\n .find((el) => el['id'] === value['id']);\r\n if (element != null) {\r\n Object.assign(element, value);\r\n return;\r\n }\r\n }\r\n\r\n this.cacheListSubject.getValue().push(value);\r\n });\r\n\r\n this.cacheListSubject.next(this.cacheListSubject.getValue());\r\n }\r\n\r\n /**\r\n * Getter for cache map element by key\r\n *\r\n * @returns The elmement as an observable\r\n */\r\n public getElementObservableByKey(key: string): Observable {\r\n return this.cacheMapSubject.get(key);\r\n }\r\n\r\n /**\r\n * Getter for element value by key\r\n *\r\n * @returns Element current value\r\n */\r\n public getElementByKey(key: string): T {\r\n const subjectByKey = this.cacheMapSubject.get(key);\r\n\r\n return subjectByKey ? subjectByKey.getValue() : null;\r\n }\r\n\r\n /**\r\n * returns the observale of the list\r\n * @returns\r\n */\r\n public getElementsListObservable(): Observable {\r\n return this.cacheListSubject.asObservable();\r\n }\r\n\r\n /**\r\n * returns the elements of the list\r\n * @returns\r\n */\r\n public getElementsList(): T[] {\r\n return this.cacheListSubject.getValue();\r\n }\r\n\r\n /**\r\n * return if cache is valid\r\n * @returns boolean\r\n */\r\n\r\n public isCacheValid(): boolean {\r\n if (\r\n !this.entityTypeGetDate ||\r\n new Date().getTime() - this.entityTypeGetDate.getTime() >=\r\n this.cacheTimeMs\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { BaseCacheService } from '../../../core/services/cache-service/base-cache.service';\r\nimport { LookupTable, LookupTableItem } from '../../models/lookup-table.model';\r\n\r\n/**\r\n * AbstractLookupTableService class that defines an\r\n *
abstract lookup tables service to\r\n *
be extended by the mock and real\r\n *
lookup tables services\r\n */\r\nexport abstract class AbstractLookupTableService extends BaseCacheService {\r\n /** constructor */\r\n constructor(private translationService: TranslateService) {\r\n super();\r\n }\r\n\r\n /**\r\n * Get all Lookup Tables\r\n */\r\n public abstract getAllLookupTableAsync(): Promise;\r\n\r\n /**\r\n * this method is responsible for saving a new lookupTable\r\n * or update an existing one\r\n *\r\n * @param lookupTable\r\n * @returns LookupTable\r\n */\r\n public abstract saveLookupTableAsync(\r\n lookupTable: LookupTable\r\n ): Promise;\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables\r\n *\r\n * @param lookupTables\r\n * @returns LookupTable[]\r\n */\r\n public abstract saveMultipleLookupTableAsync(\r\n lookupTables: LookupTable[]\r\n ): Promise;\r\n\r\n /**\r\n * Get lookup table items by lookup table id\r\n * @param id\r\n */\r\n public abstract getLookupTableItemsByLookupTableIdAsync(\r\n id: string\r\n ): Promise;\r\n\r\n /**\r\n * Get lookup table items by lookup table name\r\n * @param name\r\n */\r\n public abstract getLookupTableItemsByLookupTableNameAsync(\r\n name: string\r\n ): Promise;\r\n\r\n /**\r\n * this method is responsible for saving a new lookupTableItem\r\n * or update an existing one\r\n * @param lookupTableItem\r\n */\r\n public abstract saveLookupTableItemAsync(\r\n lookupTableItem: LookupTableItem\r\n ): Promise;\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables items\r\n *\r\n * @param lookupTablesItems\r\n * @returns LookupTableItems[]\r\n */\r\n public abstract saveMultipleLookupTableItemsAsync(\r\n lookupTables: LookupTableItem[]\r\n ): Promise;\r\n\r\n /**\r\n * Get lookup table item by id\r\n * @param {string} lookUpTableItemId\r\n * @returns {Promise}\r\n */\r\n public abstract getLookUpTableItemByIdAsync(\r\n lookUpTableItemId: string\r\n ): Promise;\r\n\r\n /**\r\n * this service get translations for all lookup table items\r\n *\r\n * @param lookupTable\r\n * @returns\r\n */\r\n protected async getTranslations(\r\n lookupTable: LookupTable\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n lookupTable.items.map(async (item) => {\r\n item.label = await this.translationService\r\n .get(\r\n 'lookup-tables.' +\r\n lookupTable.name +\r\n '.items.' +\r\n lookupTable.name +\r\n '.' +\r\n item['name'] +\r\n '.name'\r\n )\r\n .toPromise();\r\n item.description = await this.translationService\r\n .get(\r\n 'lookup-tables.' +\r\n lookupTable.name +\r\n '.items.' +\r\n lookupTable.name +\r\n '.' +\r\n item['name'] +\r\n '.description'\r\n )\r\n .toPromise();\r\n });\r\n resolve(lookupTable);\r\n });\r\n return lookupTable;\r\n }\r\n\r\n /**\r\n *\r\n */\r\n public abstract getMultipleLookupTableByName(\r\n lookupTableNames: string[]\r\n ): Promise;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaginationResponse } from '../../../core/models/pagination-response';\r\nimport { BaseCacheService } from '../../../core/services/cache-service/base-cache.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport {\r\n EntityType,\r\n EntityTypeAttribute,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n} from '../../models/entity-type.model';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport abstract class AbstractEntityTypeService extends BaseCacheService {\r\n /**\r\n * constructor\r\n * @param notificationsService notificationsService\r\n * @param translationService\r\n */\r\n constructor(\r\n protected notificationsService: NotificationsService,\r\n private translationService: TranslateService\r\n ) {\r\n super();\r\n this.cacheTimeMs = 5000;\r\n }\r\n\r\n /**\r\n * Get all Entity Types\r\n *\r\n * @Returns Entity types[]\r\n */\r\n public abstract getEntityTypeListAsync(): Promise;\r\n\r\n /**\r\n * Get entity type list with operation\r\n *\r\n * * @Returns Entity types[]\r\n */\r\n\r\n public abstract getEntityTypeListWithOperationAsync(): Promise;\r\n\r\n /**\r\n * save entity type\r\n * @param entityType\r\n * @return Entity type\r\n */\r\n public abstract saveEntityTypeAsync(\r\n entityType: EntityType\r\n ): Promise;\r\n\r\n /**\r\n * get all operations of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeOperation[]\r\n */\r\n public abstract getAllOperationsByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise;\r\n\r\n /**\r\n * add or update entity type operation\r\n * @param entityTypeOperation\r\n * @return EntityTypeOperation\r\n */\r\n public abstract saveEntityTypeOperationAsync(\r\n entityTypeOperation: EntityTypeOperation\r\n ): Promise;\r\n\r\n /**\r\n * get all attributes of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeAttribute[]\r\n */\r\n public abstract getAllAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise;\r\n\r\n /**\r\n * add or update entity type attribute\r\n * @param entityTypeAttribute\r\n * @return EntityTypeAttribute\r\n */\r\n public abstract saveEntityTypeAttributeAsync(\r\n entityTypeAttribute: EntityTypeAttribute\r\n ): Promise;\r\n\r\n /**\r\n * get all properties of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeProperty[]\r\n */\r\n public abstract getAllPropertiesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise;\r\n\r\n /**\r\n * add or update entity type property\r\n * @param EntityTypeProperty\r\n * @return EntityTypeProperty\r\n */\r\n public abstract saveEntityTypePropertyAsync(\r\n entityTypeProperty: EntityTypeProperty\r\n ): Promise;\r\n\r\n /**\r\n * update entity type properties using patch logic\r\n * @param entityTypesPropertiesToPatch\r\n * @return EntityTypeProperty[]\r\n */\r\n public abstract updateEntityTypePropertiesAsync(\r\n entityTypesPropertiesToPatch: Map\r\n ): Promise;\r\n\r\n /**\r\n * update entity type attributes using patch logic\r\n * @param entityTypesAttributesToPatch\r\n * @return EntityTypeAttribute[]\r\n */\r\n public abstract updateEntityTypeAttributesAsync(\r\n entityTypesAttributesToPatch: Map\r\n ): Promise;\r\n\r\n /**\r\n * this service returns all the data (properties, attributes and operations)\r\n * of a given entity type (by entity name)\r\n * @param entityTypeName\r\n */\r\n public abstract getAllEntityTypeDataByName(\r\n entityTypeName: string\r\n ): Promise;\r\n\r\n /**\r\n * this service returns an array of elements\r\n * of the entity sent as a parameter,\r\n * based on the filter it receives as a parameter.\r\n * @param entityTypeName\r\n * @param FilterGroup\r\n */\r\n public abstract getEntityTypeElements(\r\n entityTypeName: string,\r\n FilterGroup: any\r\n ): Promise;\r\n\r\n /* this service get translations for all entity types,properties and attributes\r\n * @param {EntityType[] | EntityType} entities\r\n * @returns {Promise}\r\n * @protected\r\n */\r\n protected async getTranslationsAsync(\r\n entities: EntityType[] | EntityType\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (Array.isArray(entities)) {\r\n //Translate Entities\r\n let entitiesType = entities;\r\n entitiesType.map(async (entityType: EntityType) => {\r\n entityType.label = await this.translationService\r\n .get('entities.' + entityType.name.toLowerCase() + '.label')\r\n .toPromise();\r\n\r\n if (entityType.operations) {\r\n entityType.operations.map(async (operation) => {\r\n operation.label = await this.translationService\r\n .get(\r\n 'entities.' +\r\n entityType.name.toLowerCase() +\r\n '.operations.' +\r\n operation.name.toLowerCase() +\r\n '.label'\r\n )\r\n .toPromise();\r\n });\r\n }\r\n });\r\n\r\n resolve(entitiesType);\r\n } else {\r\n //Translate properties and attributes of the entity\r\n let entity = entities;\r\n if (entity.properties) {\r\n entity.properties.map(async (property) => {\r\n property.label = await this.translationService\r\n .get(\r\n 'entities.' +\r\n entity.name.toLowerCase() +\r\n '.fields.' +\r\n property.name.toLowerCase() +\r\n '.label'\r\n )\r\n .toPromise();\r\n });\r\n }\r\n if (entity.attributes) {\r\n entity.attributes.map(async (attribute) => {\r\n attribute.label = await this.translationService\r\n .get(\r\n 'entities.' +\r\n entity.name.toLowerCase() +\r\n '.fields.' +\r\n attribute.name.toLowerCase() +\r\n '.label'\r\n )\r\n .toPromise();\r\n });\r\n }\r\n if (entity.operations) {\r\n entity.operations.map(async (operation) => {\r\n operation.label = await this.translationService\r\n .get(\r\n 'entities.' +\r\n entity.name.toLowerCase() +\r\n '.operations.' +\r\n operation.name.toLowerCase() +\r\n '.label'\r\n )\r\n .toPromise();\r\n });\r\n }\r\n resolve(entity);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get all properties and attributes by entity type id\r\n * @param {string} entityTypeId The entity type id\r\n * @returns {Promise}\r\n */\r\n public abstract getAllPropertiesAndAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise;\r\n\r\n /**\r\n * This service return a element from a entity type list by id\r\n * @param entityTypeName\r\n * @param elementId\r\n */\r\n public abstract getEntityTypeElementById(\r\n entityTypeName: string,\r\n elementId: string\r\n ): Promise;\r\n\r\n /**\r\n * this service excute in database the operation received as parameter\r\n * @param entityName\r\n * @param operation\r\n * @param entity\r\n */\r\n public abstract executeAction(\r\n entityName: string,\r\n operation: EntityTypeOperation,\r\n entity: any\r\n ): Promise;\r\n}\r\n","import { ChangeDetectorRef, Directive, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Dropdown } from 'primeng/dropdown';\r\nimport { ScrollerOptions } from 'primeng/scroller';\r\nimport { EntityType } from '../../../../../../entity-types/models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../../../../entity-types/services/entity-types/abstract-entity-type.service';\r\nimport { AbstractLookupTableService } from '../../../../../../lookup-table/services/lookup-table/abstract-lookup-table.service';\r\nimport { ArrayUtilityService } from '../../../../../services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../../../services/utility/objects-utility.service';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\nimport { ReferenceType } from '../../../models/constants/reference-type';\r\n\r\n/**\r\n * Class Select\r\n */\r\nexport class SelectConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName: string = ControlName.dropdown;\r\n\r\n /**\r\n * Reference type\r\n */\r\n public referenceType: ReferenceType = null;\r\n\r\n /**\r\n * Reference name -> shoud be a lookup table name\r\n */\r\n public referenceName: string = null;\r\n\r\n /**\r\n *An array of objects to display as the available options.\r\n */\r\n public options: any[] = null;\r\n\r\n /**\r\n *Name of the label field of an option.\r\n */\r\n public optionLabel: string = 'label';\r\n\r\n /**\r\n *Name of the value field of an option.\r\n */\r\n public optionValue: string = 'value';\r\n\r\n /**\r\n *Name of the disabled field of an option.\r\n */\r\n public optionDisabled: string = 'disabled';\r\n\r\n /**\r\n *Name of the label field of an option group.\r\n */\r\n public optionGroupLabel: string = 'label';\r\n\r\n /**\r\n *Name of the options field of an option group.\r\n */\r\n public optionGroupChildren: string = 'items';\r\n\r\n /**\r\n *Name of the input element.\r\n */\r\n public name: string = null;\r\n\r\n /**\r\n *Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\r\n */\r\n public scrollHeight: string = '200px';\r\n\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: string = null;\r\n\r\n /**\r\n *Inline style of the overlay panel element.\r\n */\r\n public panelStyle: string = null;\r\n\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Style class of the overlay panel element.\r\n */\r\n public panelStyleClass: string = null;\r\n\r\n /**\r\n *When specified, displays an input field to filter the items on keyup.\r\n */\r\n public filter: boolean = false;\r\n\r\n /**\r\n *When specified, filter displays with this value.\r\n */\r\n public filterValue: string = null;\r\n\r\n /**\r\n *When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\r\n */\r\n public filterBy: string = null;\r\n\r\n /**\r\n *Defines how the items are filtered, valid values are contains (default) startsWith, endsWith, equals, notEquals, in, lt, lte, gt and gte.\r\n */\r\n public filterMatchMode: string = 'contains';\r\n\r\n /**\r\n *Placeholder text to show when filter input is empty.\r\n */\r\n public filterPlaceholder: string = null;\r\n\r\n /**\r\n *Locale to use in filtering. The default locale is the host environment's current locale.\r\n */\r\n public filterLocale: string = 'undefined';\r\n\r\n /**\r\n *When present, it specifies that an input field must be filled out before submitting the form.\r\n */\r\n public required: boolean = false;\r\n /*\r\n /!**\r\n *When present, it specifies that the component should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /* /!**\r\n *When present, it specifies that the component cannot be edited.\r\n *!/\r\n public readonly: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n *Text to display when there is no data. Defaults to global value in i18n translation configuration.\r\n */\r\n public emptyMessage: string = 'No records found.';\r\n\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n *When present, custom value instead of predefined options can be entered using the editable input field.\r\n */\r\n public editable: boolean = false;\r\n\r\n /**\r\n *Maximum number of character allows in the editable input field.\r\n */\r\n public maxlength: number = null;\r\n\r\n /**\r\n *Target element to attach the overlay, valid values are body or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=mydiv for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n\r\n /**\r\n *Default text to display when no option is selected.\r\n */\r\n public placeholder: string = null;\r\n\r\n /**\r\n *Identifier of the accessible input element.\r\n */\r\n public inputId: string = null;\r\n\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n\r\n /**\r\n *When present, it specifies that the component should automatically get focus on load.\r\n */\r\n public autofocus: boolean = false;\r\n\r\n /**\r\n *Applies focus to the filter element when the overlay is shown.\r\n */\r\n public autofocusFilter: boolean = false;\r\n\r\n /**\r\n *Clears the filter value when hiding the dropdown.\r\n */\r\n public resetFilterOnHide: boolean = false;\r\n\r\n /**\r\n *Icon class of the dropdown icon.\r\n */\r\n public dropdownIcon: string = 'pi pi-chevron-down';\r\n\r\n /**\r\n *Text to display when filtering does not return any results.\r\n */\r\n public emptyFilterMessage: string = 'No results found';\r\n\r\n /**\r\n *Whether to display the first item as the label if no placeholder is defined and value is null.\r\n */\r\n public autoDisplayFirst: boolean = true;\r\n\r\n /**\r\n *Whether to display options as grouped when nested options are provided.\r\n */\r\n public group: boolean = false;\r\n\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n *Base zIndex value to use in layering.\r\n */\r\n public baseZIndex: number = 0;\r\n\r\n /**\r\n *Whether to automatically manage layering.\r\n */\r\n public autoZIndex: boolean = true;\r\n\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\r\n\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '.1s linear';\r\n\r\n /**\r\n *Defines a string that labels the filter input.\r\n */\r\n public ariaFilterLabel: string = null;\r\n\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n *Advisory information to display in a tooltip on hover.\r\n */\r\n public tooltip: any = null;\r\n\r\n /**\r\n *Style class of the tooltip.\r\n */\r\n public tooltipStyleClass: string = null;\r\n\r\n /**\r\n *Position of the tooltip, valid values are right, left, top and bottom.\r\n */\r\n public tooltipPosition: string = 'top';\r\n\r\n /**\r\n *Type of CSS position.\r\n */\r\n public tooltipPositionStyle: string = 'absolute';\r\n\r\n /**\r\n *Whether the data should be loaded on demand during scroll.\r\n */\r\n public virtualScroll: boolean = false;\r\n\r\n /**\r\n *Height of an item in the list for VirtualScrolling.\r\n */\r\n public virtualScrollItemSize: number = null;\r\n\r\n /**\r\n *Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\r\n */\r\n public virtualScrollOptions: ScrollerOptions = null;\r\n\r\n /**\r\n *Defines if data is loaded and interacted with in lazy manner.\r\n */\r\n public lazy: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSelectConfigs]',\r\n})\r\nexport class PrgSetSelectConfigsDirective {\r\n /**\r\n * constructor\r\n * @param {Dropdown} element\r\n * @param {AbstractLookupTableService} lookupTableService\r\n * @param {AbstractEntityTypeService} entityTypeService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private element: Dropdown,\r\n private lookupTableService: AbstractLookupTableService,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private cd: ChangeDetectorRef,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * get options from lookup table or entity type list\r\n * and assign configs to element\r\n */\r\n @Input() set setSelectConfigs(configs: SelectConfiguration | any) {\r\n switch (configs.referenceType) {\r\n case ReferenceType.LookupTable:\r\n if (configs.referenceName !== null && configs.referenceName.length) {\r\n this.lookupTableService\r\n .getLookupTableItemsByLookupTableNameAsync(configs.referenceName)\r\n .then((options) => {\r\n configs.options = this.objectsUtilityService.cloneObject(options);\r\n Object.assign(this.element, configs);\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (!this.form) {\r\n this.form = new FormGroup({\r\n [configs.key]: new FormControl(),\r\n });\r\n }\r\n if (configs.value != null) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n\r\n this.cd.detectChanges();\r\n }\r\n });\r\n this.cd.detectChanges();\r\n } else {\r\n this.lookupTableService.getAllLookupTableAsync().then((options) => {\r\n configs.options = this.objectsUtilityService.cloneObject(options);\r\n Object.assign(this.element, configs);\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n }\r\n break;\r\n\r\n case ReferenceType.EntityType:\r\n this.entityTypeService.getEntityTypeListAsync().then((value) => {\r\n configs.options = value;\r\n Object.assign(this.element, configs);\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n this.cd.detectChanges();\r\n break;\r\n case ReferenceType.EntityTypeAllData:\r\n this.entityTypeService.getEntityTypeListAsync().then((value) => {\r\n let entities: EntityType[] = this.arrayUtilityService.clone(value);\r\n\r\n entities.map(async (entityType, index) => {\r\n let entityTypeAllData: EntityType =\r\n this.objectsUtilityService.cloneObject(\r\n await this.entityTypeService.getAllEntityTypeDataByName(\r\n entityType.name\r\n )\r\n );\r\n\r\n entities[index].properties = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.properties\r\n );\r\n entities[index].attributes = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.attributes\r\n );\r\n entities[index].operations = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.operations\r\n );\r\n /* entities[index]['data'] = [];\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.operations\r\n ),\r\n label: 'operations',\r\n });\r\n\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.properties\r\n ),\r\n label: 'properties',\r\n });\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.attributes\r\n ),\r\n label: 'attributes',\r\n });*/\r\n });\r\n configs.options = entities;\r\n Object.assign(this.element, configs);\r\n\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n break;\r\n default:\r\n Object.assign(this.element, configs);\r\n break;\r\n }\r\n }\r\n}\r\n","import { CheckboxConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.model';\r\nimport { InputNumberConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\nimport { SelectConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../core/components/dynamic-form/models/constants/reference-type';\r\nimport { ConfigurationItem } from '../models/configuration-item.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface Database {\r\n /**\r\n * Mock configuration items\r\n */\r\n ConfigurationItems: ConfigurationItem[];\r\n}\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const MockDatabase: Database = {\r\n ConfigurationItems: [\r\n {\r\n id: '1',\r\n name: 'language',\r\n createdBy: '1',\r\n path: 'Config-Items:User-Preferences:Defaults',\r\n value: 'language.portuguese',\r\n guiSettings: JSON.stringify(\r\n new SelectConfiguration({\r\n controlName: ControlName.dropdown,\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'language',\r\n key: 'language',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n basePathTranslation: 'lookup-tables',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '2',\r\n name: 'language',\r\n createdBy: '2',\r\n path: 'Config-Items:User-Preferences:pedrocouto@gmail.com',\r\n value: 'language.english',\r\n guiSettings: JSON.stringify(\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'language',\r\n key: 'language',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n basePathTranslation: 'lookup-tables',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '3',\r\n name: 'theme',\r\n createdBy: '1',\r\n path: 'Config-Items:User-Preferences:Defaults',\r\n value: 'theme.lara-light-blue',\r\n guiSettings: JSON.stringify(\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'theme',\r\n key: 'theme',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n basePathTranslation: 'lookup-tables',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '4',\r\n name: 'theme',\r\n createdBy: '3',\r\n path: 'Config-Items:User-Preferences:pedrolima@gmail.com',\r\n value: 'theme.bootstrap4-dark-purple',\r\n guiSettings: JSON.stringify(\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'theme',\r\n key: 'theme',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n basePathTranslation: 'lookup-tables',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '5',\r\n name: 'theme',\r\n createdBy: '4',\r\n path: 'Config-Items:User-Preferences:luis@gmail.com',\r\n value: 'theme.rhea',\r\n guiSettings: JSON.stringify(\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'theme',\r\n key: 'theme',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n basePathTranslation: 'lookup-tables',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '7',\r\n name: 'RequiredLength',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: 5,\r\n guiSettings: JSON.stringify(\r\n new InputNumberConfiguration({\r\n key: 'RequiredLength',\r\n min: 1,\r\n max: 10,\r\n showButtons: true,\r\n validators: ['Validators.required'] as any,\r\n basePathTranslation: 'config-items.identity.password',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '9',\r\n name: 'RequiredUniqueChars',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: '1',\r\n guiSettings: JSON.stringify(\r\n new InputNumberConfiguration({\r\n key: 'RequiredUniqueChars',\r\n min: 1,\r\n max: 10,\r\n showButtons: true,\r\n validators: ['Validators.required'] as any,\r\n basePathTranslation: 'config-items.identity.password',\r\n showClear: true,\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '8',\r\n name: 'RequireLowercase',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: true,\r\n guiSettings: JSON.stringify(\r\n new CheckboxConfiguration({\r\n key: 'RequireLowercase',\r\n basePathTranslation: 'config-items.identity.password',\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n\r\n {\r\n id: '6',\r\n name: 'RequireDigit',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: false,\r\n guiSettings: JSON.stringify(\r\n new CheckboxConfiguration({\r\n key: 'RequireDigit',\r\n basePathTranslation: 'config-items.identity.password',\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '10',\r\n name: 'RequireUppercase',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: true,\r\n guiSettings: JSON.stringify(\r\n new CheckboxConfiguration({\r\n key: 'RequireUppercase',\r\n basePathTranslation: 'config-items.identity.password',\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '11',\r\n name: 'RequireNonAlphanumeric',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity:Password',\r\n value: true,\r\n guiSettings: JSON.stringify(\r\n new CheckboxConfiguration({\r\n key: 'RequireNonAlphanumeric',\r\n validators: ['Validators.required'] as any,\r\n basePathTranslation: 'config-items.identity.password',\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n {\r\n id: '12',\r\n name: 'AllowSelfRegister',\r\n createdBy: '1',\r\n path: 'Config-Items:Identity',\r\n value: true,\r\n guiSettings: JSON.stringify(\r\n new CheckboxConfiguration({\r\n key: 'AllowSelfRegister',\r\n basePathTranslation: 'config-items.identity',\r\n })\r\n ),\r\n readonly: false,\r\n modifiedOn: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n universalStateId: null,\r\n },\r\n ],\r\n\r\n /* TODO: MAP Identity CONFIG TO CONFIGURATION ITEMS\r\n \"Identity\": {\r\n \"DefaultEnabledUser\": true, // user will be enabled on register\r\n \"AllowSelfRegister\": true,\r\n \"LockoutEnabled\": true,\r\n \"CreateWorkspaceOnUserRegister\": true,\r\n \"SignIn\": {\r\n \"RequireEnabledUser\": false,\r\n \"RequireConfirmedAdmin\": false,\r\n \"RequireConfirmedEmail\": true,\r\n \"RequireConfirmedPhoneNumber\": false\r\n },\r\n \"Lockout\": {\r\n \"LockoutTimeSpan\": \"1.00:00:00\" //lock out for 1 day\r\n },\r\n \"Password\": {\r\n \"RequireDigit\": true,\r\n \"RequiredLength\": 7,\r\n \"RequireLowercase\": true,\r\n \"RequiredUniqueChars\": 1,\r\n \"RequireUppercase\": true,\r\n \"RequireNonAlphanumeric\": true\r\n },\r\n \"Callbacks\": {\r\n \"BaseUrl\": \"http://localhost:8100\",\r\n \"LoginUrl\": \"/auth/login\",\r\n \"ConfirmedAccountUrl\": \"/auth/confirm\",\r\n \"ResetPasswordUrl\": \"/auth/reset\",\r\n \"UnsubscribeUrl\": \"/auth/unsubscribe\"\r\n },\r\n \"Token\": {\r\n \"Audience\": \"Prg.Framework.Api.Audience\",\r\n \"Issuer\": \"Prg.Framework.Api.Issuer\",\r\n \"Seconds\": 86400, // 24 hours\r\n \"RefreshDuration\": 24 // 24 hours\r\n }\r\n }\r\n */\r\n};\r\n","/**\r\n * Injectable\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport { UniversalState } from '../../../core/models/base-entity.model';\r\nimport { PrgError } from '../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport {\r\n ConfigItemsPath,\r\n ConfigurationItem,\r\n} from '../../models/configuration-item.model';\r\nimport { AbstractConfigurationItemsService } from '../../services/configuration-items/abstract-configuration-items.service';\r\nimport { MockDatabase } from '../database.mock';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * MOCK AbstractConfigurationItemsService implementation\r\n */\r\nexport class MockConfigurationItemsService extends AbstractConfigurationItemsService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 0.5;\r\n\r\n /**\r\n * Constructor\r\n * @param {NotificationsService} notificationsService\r\n * @param {UtilityService} utilityService\r\n * @param {IsLoadingDataService} isLoadingData\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {AbstractAuthService} authService\r\n */\r\n constructor(\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private isLoadingData: IsLoadingDataService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private authService: AbstractAuthService\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Get a list of all configuration items\r\n * @returns {Promise}\r\n */\r\n public getAllConfigurationItemsAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const configsItems: ConfigurationItem[] = this.arrayUtilityService.clone(\r\n MockDatabase.ConfigurationItems\r\n );\r\n\r\n this.isLoadingData.hide();\r\n if (configsItems) {\r\n resolve(configsItems);\r\n } else {\r\n reject('Config Items could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Config Items could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update a configuration items\r\n * @param configItemData\r\n * @returns {Promise}\r\n */\r\n public updateConfigurationItemsAsync(\r\n configItemData: any\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingData.hide();\r\n if (configItemData.path && configItemData.path != '') {\r\n Object.keys(configItemData).map((key) => {\r\n if (key != 'path') {\r\n let configItemToUpdate = MockDatabase.ConfigurationItems.find(\r\n (configItem) =>\r\n configItem.name === key &&\r\n configItem.path === configItemData.path\r\n );\r\n if (configItemToUpdate) {\r\n configItemToUpdate.value = configItemData[key];\r\n } else {\r\n let newConfigItem: ConfigurationItem =\r\n this.objectsUtilityService.cloneObject({\r\n path: configItemData.path,\r\n name: key,\r\n value: configItemData[key],\r\n id: this.utilityService.newGuid(),\r\n guiSettings: null,\r\n universalStateId: UniversalState.Active,\r\n createdOn: new Date(),\r\n operationId: null,\r\n modifiedBy: this.authService.getLoggedUser()?.id\r\n ? this.authService.getLoggedUser().id\r\n : null,\r\n modifiedOn: new Date(),\r\n createdBy: this.authService.getLoggedUser()?.id\r\n ? this.authService.getLoggedUser().id\r\n : null,\r\n transactionId: null,\r\n readonly: null,\r\n });\r\n MockDatabase.ConfigurationItems.push(newConfigItem);\r\n }\r\n }\r\n });\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'Configuration Item Updated.',\r\n detailKey: 'Success.',\r\n })\r\n );\r\n this.setConfigurationItems(MockDatabase.ConfigurationItems);\r\n resolve(MockDatabase.ConfigurationItems);\r\n } else {\r\n reject('Configuration Items could not be save.');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Error.',\r\n detailKey: 'Config Item Path is not present',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get configuration items by path\r\n * @param {string} path\r\n * @returns {Promise}\r\n */\r\n public getConfigurationItemsByPathAsync(path: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const configItemsBypath: ConfigurationItem[] =\r\n this.arrayUtilityService.clone(\r\n MockDatabase.ConfigurationItems.filter((configItems) => {\r\n return configItems.path.includes(path);\r\n })\r\n );\r\n const userAndDefaultsConfigsItems: any = {};\r\n const configItemsDefaults: ConfigurationItem[] = configItemsBypath.filter(\r\n (configItemsDefaults) => {\r\n return configItemsDefaults.path === path + ConfigItemsPath.Defaults;\r\n }\r\n );\r\n\r\n const configItemsUser: ConfigurationItem[] = configItemsBypath.filter(\r\n (configItemsUser) => {\r\n return (\r\n configItemsUser.path ===\r\n path + this.authService.getLoggedUser()?.email\r\n );\r\n }\r\n );\r\n\r\n Object.assign(userAndDefaultsConfigsItems, {\r\n user: configItemsUser,\r\n defaults: configItemsDefaults,\r\n });\r\n\r\n this.isLoadingData.hide();\r\n if (userAndDefaultsConfigsItems) {\r\n resolve(userAndDefaultsConfigsItems);\r\n } else {\r\n reject('Config Items could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Config Items could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","export enum ActionName {\r\n Button = 'button',\r\n SplitButton = 'splitButton',\r\n SpeedDial = 'speedDial',\r\n SelectButton = 'selectButton',\r\n ToggleButton = 'toggleButton',\r\n InputSwitch = 'inputSwitch',\r\n}\r\n","import { ExecutedActionBehaviour } from '../../../models/executed-action-behaviourts';\r\nimport { ActionName } from './constants/action-names';\r\n\r\n/**\r\n * class action\r\n */\r\nexport class BaseAction {\r\n /**\r\n * defines the element to be used\r\n * default is button\r\n */\r\n public controlName?: string = ActionName.Button;\r\n\r\n /**\r\n * with {@link #isDisabled} set to true we use this\r\n * field to enable or disable the button depending\r\n * on the validation state of the form\r\n */\r\n public disableWhenFormInvalid?: boolean = false;\r\n\r\n /**\r\n * action indicator, to be able to tell which action should be executed\r\n */\r\n public key?: string;\r\n\r\n /**\r\n * translation base path\r\n */\r\n public translationBasePath?: string = 'buttons';\r\n\r\n /**\r\n * this property is only relevant for actions that go into a\r\n * toolbar, it indicates the slot (position) in which the\r\n * action should be inserted\r\n *\r\n * options: end, start\r\n */\r\n public toolbarSlot?: any = 'left';\r\n\r\n /**\r\n * value where the action will be executed\r\n */\r\n public value?: any[];\r\n\r\n /**\r\n * visible expression\r\n */\r\n public visibleExpression?: string;\r\n\r\n /**\r\n * enable expression\r\n */\r\n public enableExpression?: string;\r\n\r\n /**\r\n * order\r\n */\r\n public order: number = 0;\r\n\r\n /**\r\n * executedActionBehaviour\r\n */\r\n public executedActionBehaviour: ExecutedActionBehaviour;\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Action output\r\n */\r\nexport class ActionOutput {\r\n /**\r\n * action key\r\n */\r\n action?: string;\r\n\r\n /**\r\n * event\r\n * @type {any}\r\n */\r\n event?: any;\r\n\r\n /**\r\n * Group of a button to be able to identify them when an action happen on grouped action buttons\r\n * @type {string}\r\n */\r\n group?: string;\r\n\r\n /**\r\n * value\r\n */\r\n value?: any;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Field output\r\n */\r\nexport class FieldChangeOutput {\r\n /**\r\n * field\r\n */\r\n field: string;\r\n\r\n /**\r\n * event\r\n */\r\n event: any;\r\n\r\n /**\r\n *value\r\n */\r\n value: any;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Dynamic Form Action output\r\n */\r\nexport class DynamicFormActionOutput extends ActionOutput {\r\n /**\r\n * entity resulting from the form\r\n */\r\n formEntity: any;\r\n /**\r\n * form status\r\n */\r\n formStatus: FormStatus;\r\n /**\r\n * form is changed\r\n */\r\n isChanged: boolean;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Dynamic Form Field Change output\r\n */\r\nexport class DynamicFormFieldChangeOutput extends FieldChangeOutput {\r\n /**\r\n * entity resulting from the form\r\n */\r\n formEntity: any;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Actions input type\r\n */\r\nexport enum ActionInputType {\r\n Submit = 'submit',\r\n Cancel = 'cancel',\r\n Reset = 'reset',\r\n Delete = 'delete',\r\n Linear = 'linear',\r\n}\r\n\r\n/**\r\n * form status\r\n */\r\nexport enum FormStatus {\r\n Valid = 'valid',\r\n Invalid = 'invalid',\r\n Disabled = 'disabled',\r\n}\r\n\r\n/**\r\n * base actions keys\r\n */\r\nexport enum BaseActionKey {\r\n Edit = 'edit',\r\n Add = 'add',\r\n Reset = 'reset',\r\n Delete = 'delete',\r\n Save = 'save',\r\n Cancel = 'cancel',\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Button } from 'primeng/button';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * class ButtonConfiguration\r\n */\r\nexport class ButtonConfiguration extends BaseAction {\r\n /**\r\n * Control name\r\n */\r\n public controlName?: string = ActionName.Button;\r\n\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n *Value of the badge.\r\n */\r\n public badge: string = null;\r\n\r\n /**\r\n *Style class of the badge.\r\n */\r\n public badgeClass: string = null;\r\n\r\n /**\r\n *When present, it specifies that the component should be disabled.\r\n */\r\n public disabled: boolean = false;\r\n\r\n /**\r\n *Name of the icon.\r\n */\r\n public icon: string = null;\r\n\r\n /**\r\n *Position of the icon, valid values are left and right.\r\n */\r\n public iconPos: string = 'left';\r\n\r\n /**\r\n *Text of the button.\r\n */\r\n public label: string = null;\r\n\r\n /**\r\n *Whether the button is in loading state.\r\n */\r\n public loading: boolean = false;\r\n\r\n /**\r\n *Icon to display in loading state.\r\n */\r\n public loadingIcon: string = 'pi pi-spinner pi-spin';\r\n\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: string = null;\r\n\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setButtonConfigs]',\r\n})\r\nexport class PrgButtonConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Button) {}\r\n\r\n /**\r\n * set button configs, assign configs received to element\r\n */\r\n @Input() set setButtonConfigs(configs: ButtonConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActionOutput } from '../../../models/base-action';\r\n\r\nimport { ButtonConfiguration } from './button.model';\r\n\r\n/**\r\n * component button\r\n */\r\n@Component({\r\n selector: 'prg-button-action',\r\n templateUrl: './button.component.html',\r\n})\r\nexport class PrgButtonComponent {\r\n /**\r\n * Button configs\r\n */\r\n @Input() configs: ButtonConfiguration;\r\n /**\r\n * form configs\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onButtonClicked(): void {\r\n this.actionClick.emit(new ActionOutput({ action: this.configs.key }));\r\n }\r\n}\r\n","\r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { InputSwitch } from 'primeng/inputswitch';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * Class Input Switch Action\r\n */\r\nexport class InputSwitchActionConfiguration extends BaseAction {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ActionName.InputSwitch;\r\n\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the input element.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Name of the input element.\r\n */\r\n public name: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Value in checked state.\r\n */\r\n public trueValue: any;\r\n /**\r\n *Value in unchecked state.\r\n */\r\n public falseValue: any;\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setInputSwitchActionConfigs]',\r\n})\r\nexport class PrgSetInputSwitchActionConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: InputSwitch) {}\r\n\r\n /**\r\n * Input Switch Action configs and assign configs to element\r\n */\r\n @Input() set setInputSwitchActionConfigs(\r\n configs: InputSwitchActionConfiguration\r\n ) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActionOutput } from '../../../models/base-action';\r\nimport { InputSwitchActionConfiguration } from './input-switch-action.model';\r\n\r\n/**\r\n * Component Input Switch Action\r\n */\r\n@Component({\r\n selector: 'prg-input-switch-action',\r\n templateUrl: './input-switch-action.component.html',\r\n})\r\nexport class PrgInputSwitchActionComponent {\r\n /**\r\n * Input Switch Action Configs\r\n */\r\n @Input() configs: InputSwitchActionConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onButtonClicked(event: any): void {\r\n this.actionClick.emit(\r\n new ActionOutput({ action: this.configs.key, value: event.checked })\r\n );\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { SelectButton } from 'primeng/selectbutton';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * Class Select Button Action\r\n */\r\nexport class SelectButtonActionConfiguration extends BaseAction {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ActionName.SelectButton;\r\n\r\n /**\r\n *An array of selectitems to display as the available options.\r\n */\r\n public options: any[] = null;\r\n /**\r\n *Name of the label field of an option.\r\n */\r\n public optionLabel: string = 'label';\r\n /**\r\n *Name of the value field of an option.\r\n */\r\n public optionValue: string = 'value';\r\n /**\r\n *Name of the disabled field of an option.\r\n */\r\n public optionDisabled: string = 'disabled';\r\n /**\r\n *When specified, allows selecting multiple values.\r\n */\r\n public multiple: boolean = false;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = 0;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSelectButtonActionConfigs]',\r\n})\r\nexport class PrgSetSelectButtonActionConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: SelectButton) {}\r\n\r\n /**\r\n * Set Select Button configs and assign configs to element\r\n */\r\n @Input() set setSelectButtonActionConfigs(\r\n configs: SelectButtonActionConfiguration\r\n ) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActionOutput } from '../../../models/base-action';\r\nimport { SelectButtonActionConfiguration } from './select-button-action.model';\r\n\r\n/**\r\n * component select button\r\n */\r\n@Component({\r\n selector: 'prg-select-button-action',\r\n templateUrl: './select-button-action.component.html',\r\n})\r\nexport class PrgSelectButtonActionComponent {\r\n /**\r\n * Select Button Configs\r\n */\r\n @Input() configs: SelectButtonActionConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onButtonClicked(event: any): void {\r\n this.actionClick.emit(\r\n new ActionOutput({\r\n action: this.configs.key,\r\n value: event?.option?.value,\r\n group: event?.option?.name,\r\n })\r\n );\r\n }\r\n}\r\n","

{{\r\n configs.translationBasePath + '.' + configs.key + '.label' | translate\r\n }}

\r\n\r\n\r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { SpeedDial } from 'primeng/speeddial';\r\nimport { PrgMenuItem } from '../../../../../../layouts/models/prg-menu-item';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * class SpeedDialConfiguration\r\n */\r\nexport class SpeedDialConfiguration extends BaseAction {\r\n /**\r\n * Control name\r\n */\r\n public controlName?: string = ActionName.SpeedDial;\r\n\r\n /**\r\n * items\r\n */\r\n public items: PrgMenuItem[];\r\n\r\n /**\r\n *Style class of the button element.\r\n */\r\n public buttonClassName: string = null;\r\n\r\n /**\r\n *Inline style of the button element.\r\n */\r\n public buttonStyle: object = null;\r\n\r\n /**\r\n *Template of button element.\r\n */\r\n public buttonTemplate: any = null;\r\n\r\n /**\r\n *Style class of the element.\r\n */\r\n public className: string = null;\r\n\r\n /**\r\n *Specifies the opening direction of actions. Valid values are 'up', 'down', 'left', 'right', 'up-left', 'up-right', 'down-left' and 'down-right'\r\n */\r\n public direction: string = 'up';\r\n\r\n /**\r\n *Whether the component is disabled.\r\n */\r\n public disabled: boolean = false;\r\n\r\n /**\r\n *Hide icon of the button element.\r\n */\r\n public hideIcon: string = null;\r\n\r\n /**\r\n *Whether the actions close when clicked outside.\r\n */\r\n public hideOnClickOutside: boolean = true;\r\n\r\n /**\r\n *Unique identifier of the element.\r\n */\r\n public id: string = null;\r\n\r\n /**\r\n *Whether to show a mask element behind the speeddial\r\n */\r\n public mask: boolean = false;\r\n\r\n /**\r\n *Style class of the mask element.\r\n */\r\n public maskClassName: string = null;\r\n\r\n /**\r\n *Inline style of the mask element.\r\n */\r\n public maskStyle: object = null;\r\n\r\n /**\r\n *MenuModel instance to define the action items.\r\n */\r\n public model: object = null;\r\n\r\n /**\r\n *Radius for *circle types.\r\n */\r\n public radius: number = 0;\r\n\r\n /**\r\n *Defined to rotate showIcon when hideIcon is not present.\r\n */\r\n public rotateAnimation: boolean = true;\r\n\r\n /**\r\n *Show icon of the button element.\r\n */\r\n public showIcon: string = 'pi pi-plus';\r\n\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: object = null;\r\n\r\n /**\r\n *Transition delay step for each action item.\r\n */\r\n public transitionDelay: number = 30;\r\n\r\n /**\r\n *Specifies the visibility of the overlay.\r\n */\r\n public visible: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSpeedDialConfigs]',\r\n})\r\nexport class PrgSpeedDialConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: SpeedDial) {}\r\n\r\n /**\r\n * set button configs, assign configs received to element\r\n */\r\n @Input() set setSpeedDialConfigs(configs: SpeedDialConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { PrgMenuItem } from '../../../../../../layouts/models/prg-menu-item';\r\nimport { ArrayUtilityService } from '../../../../../services/utility/array-utility.service';\r\nimport { ActionOutput } from '../../../models/base-action';\r\nimport { SpeedDialConfiguration } from './speed-dial.model';\r\n\r\n/**\r\n * component speed dial\r\n */\r\n@Component({\r\n selector: 'prg-speed-dial-action',\r\n templateUrl: './speed-dial.component.html',\r\n})\r\nexport class PrgSpeedDialComponent {\r\n /**\r\n * Data of speed button menu\r\n * @type {PrgMenuItem[]}\r\n */\r\n public menuButton: PrgMenuItem[] = [];\r\n\r\n /**\r\n * Speed Dial configs\r\n */\r\n @Input('configs') set configs(configs: SpeedDialConfiguration) {\r\n this._configs = configs;\r\n this.assignCommandsToMenuButton(configs.items);\r\n }\r\n\r\n /**\r\n * Getter of configs\r\n * @returns {SpeedDialConfiguration}\r\n */\r\n get configs(): SpeedDialConfiguration {\r\n return this._configs;\r\n }\r\n\r\n /**\r\n * Configs aux\r\n * @type {SpeedDialConfiguration}\r\n * @private\r\n */\r\n private _configs: SpeedDialConfiguration;\r\n /**\r\n * form configs\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * Constructor\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n */\r\n constructor(private arrayUtilityService: ArrayUtilityService) {}\r\n\r\n /**\r\n * function that triggers the output\r\n * @param {PrgMenuItem} menuItem\r\n */\r\n public onButtonClicked(menuItem: PrgMenuItem): void {\r\n if (menuItem?.key) {\r\n this.actionClick.emit({\r\n action: menuItem?.key,\r\n group: menuItem?.group,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Assign commands to menu button\r\n * @param {PrgMenuItem[]} menuItems\r\n */\r\n public assignCommandsToMenuButton(menuItems: PrgMenuItem[]) {\r\n this.menuButton = this.arrayUtilityService.clone(menuItems);\r\n this.menuButton.map((item) => {\r\n if (item.key) {\r\n item.command = (event) => {\r\n this.onButtonClicked(event.item);\r\n };\r\n }\r\n });\r\n }\r\n}\r\n","\r\n","import { Directive, Input } from '@angular/core';\r\nimport { SplitButton } from 'primeng/splitbutton';\r\nimport { PrgMenuItem } from '../../../../../../layouts/models/prg-menu-item';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * Split Button Model\r\n */\r\nexport class SplitButtonConfiguration extends BaseAction {\r\n /**\r\n * Control name\r\n */\r\n public controlName?: string = ActionName.SplitButton;\r\n /**\r\n * items\r\n */\r\n public items: PrgMenuItem[];\r\n\r\n /**\r\n *Target element to attach the overlay, valid values are body or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=mydiv for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n /**\r\n *Indicates the direction of the element.\r\n */\r\n public dir: string = null;\r\n /**\r\n *When present, it specifies that the component should be disabled.\r\n */\r\n public disabled: boolean = false;\r\n /**\r\n *Defines a string that labels the expand button for accessibility.\r\n */\r\n public expandAriaLabel: string = null;\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '195ms ease-in';\r\n /**\r\n *Name of the icon.\r\n */\r\n public icon: string = null;\r\n /**\r\n *Position of the icon, valid values are left and right.\r\n */\r\n public iconPos: string = 'left';\r\n /**\r\n *Text of the button.\r\n */\r\n public label: string = null;\r\n /**\r\n *Inline style of the overlay menu.\r\n */\r\n public menuStyle: string = null;\r\n /**\r\n *Style class of the overlay menu.\r\n */\r\n public menuStyleClass: string = null;\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '225ms ease-out';\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSplitButtonConfigs]',\r\n})\r\nexport class PrgSplitButtonConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: SplitButton) {}\r\n /**\r\n * set button configs, assign configs received to element\r\n */\r\n @Input() set setSplitButtonConfigs(configs: SplitButtonConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { PrgMenuItem } from '../../../../../../layouts/models/prg-menu-item';\r\nimport { ArrayUtilityService } from '../../../../../services/utility/array-utility.service';\r\nimport { ActionOutput } from '../../../models/base-action';\r\nimport { SplitButtonConfiguration } from './split-button.model';\r\n\r\n/**\r\n * component split button\r\n */\r\n@Component({\r\n selector: 'prg-button-action',\r\n templateUrl: './split-button.component.html',\r\n})\r\nexport class PrgSplitButtonComponent {\r\n /**\r\n * Data of split button menu\r\n * @type {PrgMenuItem[]}\r\n */\r\n public menuButton: PrgMenuItem[] = [];\r\n\r\n /**\r\n * Split Button configs\r\n */\r\n @Input('configs') set configs(configs: SplitButtonConfiguration) {\r\n this._configs = configs;\r\n this.assignCommandsToMenuButton(configs.items);\r\n }\r\n\r\n /**\r\n * Getter of configs\r\n * @returns {SplitButtonConfiguration}\r\n */\r\n get configs(): SplitButtonConfiguration {\r\n return this._configs;\r\n }\r\n\r\n /**\r\n * Configs aux\r\n * @type {SplitButtonConfiguration}\r\n * @private\r\n */\r\n private _configs: SplitButtonConfiguration;\r\n\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * Constructor\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n */\r\n constructor(private arrayUtilityService: ArrayUtilityService) {}\r\n\r\n /**\r\n * function that triggers the output\r\n * @param {PrgMenuItem} menuItem\r\n */\r\n public onButtonClicked(menuItem: PrgMenuItem = null): void {\r\n if (menuItem?.key) {\r\n this.actionClick.emit({\r\n action: menuItem?.key,\r\n group: menuItem?.group,\r\n });\r\n } else {\r\n this.actionClick.emit(new ActionOutput({ action: this.configs.key }));\r\n }\r\n }\r\n\r\n /**\r\n * Assign commands to menu button\r\n * @param {PrgMenuItem[]} menuItems\r\n */\r\n public assignCommandsToMenuButton(menuItems: PrgMenuItem[]) {\r\n this.menuButton = this.arrayUtilityService.clone(menuItems);\r\n this.menuButton.map((item) => {\r\n let path: string;\r\n path = item?.label;\r\n if (item.key) {\r\n item.command = (event) => {\r\n this.onButtonClicked(event.item);\r\n };\r\n item.group = path;\r\n }\r\n if (item.items != null && item.items.length > 0) {\r\n let children: PrgMenuItem[] = item.items;\r\n children.forEach((itemChildren: PrgMenuItem) => {\r\n return this.iterateOverChildren(itemChildren, path);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Iterate over all children of menu button\r\n * @param {PrgMenuItem} itemChildren\r\n * @param {string} path\r\n * @returns {PrgMenuItem}\r\n */\r\n public iterateOverChildren(itemChildren: PrgMenuItem, path: string) {\r\n let currentChildren: PrgMenuItem = itemChildren;\r\n path = path + ':' + itemChildren.label;\r\n if (currentChildren.key) {\r\n currentChildren.command = (event) => {\r\n this.onButtonClicked(event.item);\r\n };\r\n itemChildren.group = path;\r\n }\r\n if (currentChildren.items != null && currentChildren.items.length > 0) {\r\n currentChildren.items.forEach((child) => {\r\n if (child.key) {\r\n child.group = path + ':' + child.label;\r\n child.command = (event) => {\r\n this.onButtonClicked(event.item);\r\n };\r\n }\r\n if (child.items != null && child.items.length > 0) {\r\n this.iterateOverChildren(child, path);\r\n }\r\n });\r\n }\r\n\r\n return currentChildren;\r\n }\r\n}\r\n","\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ToggleButton } from 'primeng/togglebutton';\r\nimport { BaseAction } from '../../../models/base-action';\r\nimport { ActionName } from '../../../models/constants/action-names';\r\n\r\n/**\r\n * Class ToggleButton Action\r\n */\r\nexport class ToggleButtonActionConfiguration extends BaseAction {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ActionName.ToggleButton;\r\n /**\r\n *Enable inline label of the toggle button.\r\n */\r\n public hasLabel: boolean = false;\r\n /**\r\n *Label for the on state.\r\n */\r\n public onLabel: string = null;\r\n /**\r\n *Label for the off state.\r\n */\r\n public offLabel: string = null;\r\n /**\r\n *Icon for the on state.\r\n */\r\n public onIcon: string = 'pi pi-check';\r\n /**\r\n *Icon for the off state.\r\n */\r\n public offIcon: string = 'pi pi-times';\r\n /**\r\n *Position of the icon, valid values are \"left\" and \"right\".\r\n */\r\n public iconPos: string = 'left';\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setToggleButtonActionConfigs]',\r\n})\r\nexport class PrgSetToggleButtonActionConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: ToggleButton) {}\r\n\r\n /**\r\n * input ToggleButton configs and assign configs to element\r\n */\r\n @Input() set setToggleButtonActionConfigs(\r\n configs: ToggleButtonActionConfiguration\r\n ) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActionOutput } from '../../../models/base-action';\r\nimport { ToggleButtonActionConfiguration } from './toggle-button-action.model';\r\n\r\n/**\r\n * Toggle Button Action Component\r\n */\r\n@Component({\r\n selector: 'prg-toggle-button-action',\r\n templateUrl: './toggle-button-action.component.html',\r\n})\r\nexport class PrgToggleButtonActionComponent {\r\n /**\r\n * ToggleButton Action config\r\n */\r\n @Input() configs: ToggleButtonActionConfiguration;\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onButtonClicked(event: any): void {\r\n this.actionClick.emit(\r\n new ActionOutput({ action: this.configs.key, value: event.checked })\r\n );\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n\r\n\r\n","import { PrgButtonComponent } from '../../dynamic-form-actions/actions/button/button.component';\r\nimport { PrgInputSwitchActionComponent } from '../../dynamic-form-actions/actions/input-switch-action/input-switch-action.component';\r\nimport { PrgSelectButtonActionComponent } from '../../dynamic-form-actions/actions/select-button-action/select-button-action.component';\r\nimport { PrgSpeedDialComponent } from '../../dynamic-form-actions/actions/speed-dial/speed-dial.component';\r\nimport { PrgSplitButtonComponent } from '../../dynamic-form-actions/actions/split-button/split-button.component';\r\nimport { PrgToggleButtonActionComponent } from '../../dynamic-form-actions/actions/toggle-button-action/toggle-button-action.component';\r\n\r\n/**\r\n * list of types of action\r\n */\r\nexport const ActionTypes = {\r\n button: PrgButtonComponent,\r\n splitButton: PrgSplitButtonComponent,\r\n speedDial: PrgSpeedDialComponent,\r\n selectButton: PrgSelectButtonActionComponent,\r\n toggleButton: PrgToggleButtonActionComponent,\r\n inputSwitch: PrgInputSwitchActionComponent,\r\n};\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActionOutput, BaseAction } from '../models/base-action';\r\nimport { ActionTypes } from '../models/constants/action-types';\r\n\r\n/**\r\n * Dynamic form action component\r\n */\r\n@Component({\r\n selector: 'prg-dynamic-form-action',\r\n templateUrl: './prg-dynamic-form-action.component.html',\r\n styleUrls: ['./prg-dynamic-form-action.component.scss'],\r\n})\r\nexport class PrgDynamicFormActionComponent {\r\n /**\r\n * actions types\r\n */\r\n public actionTypes = ActionTypes;\r\n\r\n /**\r\n * receives a action\r\n */\r\n @Input() action!: BaseAction;\r\n\r\n /**\r\n * receive the formGroup\r\n */\r\n @Input() form!: FormGroup;\r\n\r\n /**\r\n * action Click output\r\n */\r\n @Output() actionClick = new EventEmitter();\r\n\r\n /**\r\n * output to dynamic component\r\n */\r\n outputs = {\r\n actionClick: (action: ActionOutput) => {\r\n this.actionClick.emit(action);\r\n },\r\n };\r\n}\r\n","
\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { AutoComplete } from 'primeng/autocomplete';\r\nimport { ScrollerOptions } from 'primeng/scroller';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Auto Complete\r\n */\r\nexport class AutoCompleteConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.autoComplete;\r\n\r\n /**\r\n * An array of data to perform a search for autocomplete purpose\r\n */\r\n public dataToSearch?: any[] = null;\r\n\r\n /**\r\n *An array of suggestions to display.\r\n */\r\n public suggestions: any[];\r\n\r\n /**\r\n *Field of a suggested object to resolve and display.\r\n */\r\n public field: any = null;\r\n /**\r\n *Maximum height of the suggestions panel.\r\n */\r\n public scrollHeight: string = '200px';\r\n /**\r\n *Displays a button next to the input field when enabled.\r\n */\r\n public dropdown: boolean = false;\r\n /**\r\n *Specifies if multiple values can be selected.\r\n */\r\n public multiple: boolean = false;\r\n /**\r\n *Icon class of the dropdown icon.\r\n */\r\n public dropdownIcon: string = 'pi pi-chevron-down;';\r\n /**\r\n *Minimum number of characters to initiate a search.\r\n */\r\n public minLength: number = 1;\r\n /**\r\n *Delay between keystrokes to wait before sending a query.\r\n */\r\n public delay: number = 300;\r\n /**\r\n *Whether to run a query when input receives focus.\r\n */\r\n public completeOnFocus: boolean = false;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyle: string = null;\r\n /**\r\n *Inline style of the overlay panel element.\r\n */\r\n public panelStyle: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyleClass: string = null;\r\n /**\r\n *Style class of the overlay panel element.\r\n */\r\n public panelStyleClass: string = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Name of the input element.\r\n */\r\n public name: string = null;\r\n /**\r\n *Name of the label field of an option group.\r\n */\r\n public optionGroupLabel: string = 'label';\r\n /**\r\n *Whether to display options as grouped when nested options are provided.\r\n */\r\n public group: boolean = false;\r\n /**\r\n *Name of the options field of an option group.\r\n */\r\n public optionGroupChildren: string = 'items';\r\n /**\r\n *Hint text for the input field.\r\n */\r\n public placeholder: string = null;\r\n /**\r\n *Maximum number of character allows in the input field.\r\n */\r\n public maxlength: number = null;\r\n /**\r\n *Size of the input field.\r\n */\r\n public size: number = null;\r\n /**\r\n *Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n /**\r\n *When enabled, highlights the first item in the list by default.\r\n */\r\n public autoHighlight: boolean = false;\r\n /**\r\n *Type of the input, defaults to \"text\".\r\n */\r\n public type: string = 'text';\r\n /**\r\n *Whether to show the empty message or not.\r\n */\r\n public showEmptyMessage: boolean = false;\r\n /**\r\n *Text to display when there is no data. Defaults to global value in i18n translation configuration.\r\n */\r\n public emptyMessage: string = 'No results found';\r\n /**\r\n *Defines how the suggestions should be manipulated. More information is available at \"Change Detection\" section above.\r\n */\r\n public immutable: boolean = true;\r\n /**\r\n *When present, it specifies that an input field must be filled out before submitting the form.\r\n */\r\n public required: boolean = false;\r\n /**\r\n *When present, it specifies that the component should automatically get focus on load.\r\n */\r\n public autofocus: boolean = false;\r\n /**\r\n *When present, autocomplete clears the manual input if it does not match of the suggestions to force only accepting values from the suggestions.\r\n */\r\n public forceSelection: boolean = false;\r\n /**\r\n *Specifies the behavior dropdown button. Default \"blank\" mode sends an empty string and \"current\" mode sends the input value.\r\n */\r\n public dropdownMode: string = 'blank';\r\n /**\r\n *Base zIndex value to use in layering.\r\n */\r\n public baseZIndex: number = 0;\r\n /**\r\n *Whether to automatically manage layering.\r\n */\r\n public autoZIndex: boolean = true;\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '.1s linear';\r\n /**\r\n *Defines a string that labels the input for accessibility.\r\n */\r\n public ariaLabel: string = null;\r\n /**\r\n *Specifies one or more IDs in the DOM that labels the input field.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Defines a string that labels the dropdown button for accessibility.\r\n */\r\n public dropdownAriaLabel: string = null;\r\n /**\r\n *Ensures uniqueness of selected items on multiple mode.\r\n */\r\n public unique: boolean = true;\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public autocomplete: string = null;\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n /**\r\n *Whether the data should be loaded on demand during scroll.\r\n */\r\n public virtualScroll: boolean = false;\r\n /**\r\n *Height of an item in the list for VirtualScrolling.\r\n */\r\n public virtualScrollItemSize: number = null;\r\n /**\r\n *Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\r\n */\r\n public virtualScrollOptions: ScrollerOptions = null;\r\n /**\r\n *Defines if data is loaded and interacted with in lazy manner.\r\n */\r\n public lazy: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setAutoCompleteConfigs]',\r\n})\r\nexport class PrgSetAutoCompleteConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: AutoComplete) {}\r\n\r\n /**\r\n * input Auto Complete configs and assign configs to element\r\n */\r\n @Input() set setAutoCompleteConfigs(configs: AutoCompleteConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ArrayUtilityService } from '../../../../../services/utility/array-utility.service';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { AutoCompleteConfiguration } from './auto-complete.model';\r\n\r\n/**\r\n * Component Auto Complete\r\n */\r\n@Component({\r\n selector: 'prg-auto-complete-field',\r\n templateUrl: './auto-complete.component.html',\r\n})\r\nexport class PrgAutoCompleteComponent {\r\n /**\r\n * Constructor\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n */\r\n constructor(private arrayUtilityService: ArrayUtilityService) {}\r\n /**\r\n * Auto Complete Configs\r\n */\r\n @Input() configs: AutoCompleteConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the search for auto complete purpose\r\n */\r\n public search(event): void {\r\n let suggestions: any[] = [];\r\n let query = event.query;\r\n\r\n this.configs.dataToSearch.map((data) => {\r\n if (this.configs.field) {\r\n if (data[this.configs.field].toLowerCase().includes(query)) {\r\n suggestions.push(data);\r\n }\r\n } else {\r\n if (data.toLowerCase().includes(query)) {\r\n suggestions.push(data);\r\n }\r\n }\r\n });\r\n this.configs.suggestions = this.arrayUtilityService.clone(suggestions);\r\n }\r\n}\r\n","
\r\n

{{(configs.basePathTranslation + '.' + configs.key + '.label' | translate)}}

\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { CascadeSelect } from 'primeng/cascadeselect';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Cascade Select\r\n */\r\nexport class CascadeSelectConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName: string = ControlName.cascadeSelect;\r\n /**\r\n *An array of selectitems to display as the available options.\r\n */\r\n public options: any[] = null;\r\n /**\r\n *Property name or getter function to use as the label of an option.\r\n */\r\n public optionLabel: string = null;\r\n /**\r\n *Property name or getter function to use as the value of an option, defaults to the option itself when not defined.\r\n */\r\n public optionValue: string = null;\r\n /**\r\n *Property name or getter function to use as the label of an option group.\r\n */\r\n public optionGroupLabel: string = null;\r\n /**\r\n *Property name or getter function to retrieve the items of a group.\r\n */\r\n public optionGroupChildren: any[] = null;\r\n /**\r\n *Default text to display when no option is selected.\r\n */\r\n public placeholder: string = null;\r\n /**\r\n *When present, it specifies that the component should be disabled.\r\n */\r\n public disabled: boolean = false;\r\n /**\r\n *A property to uniquely identify an option.\r\n */\r\n public dataKey: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the underlying input element.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Id of the element or \"body\" for document where the overlay should be appended to.\r\n */\r\n public appendTo: string = null;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: object = null;\r\n /**\r\n *Inline style of the overlay panel.\r\n */\r\n public panelStyle: object = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Style class of the overlay panel.\r\n */\r\n public panelStyleClass: string = null;\r\n /**\r\n *Label of the input for accessibility.\r\n */\r\n public inputLabel: string = null;\r\n /**\r\n *Defines a string that labels the input for accessibility.\r\n */\r\n public ariaLabel: string = null;\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setCascadeSelectConfigs]',\r\n})\r\nexport class PrgSetCascadeSelectConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: CascadeSelect) {}\r\n\r\n /**\r\n * input Cascade Selected configs and assign configs to element\r\n */\r\n @Input() set setCascadeSelectConfigs(configs: CascadeSelectConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { CascadeSelectConfiguration } from './cascade-select..model';\r\n\r\n/**\r\n * component Cascade Select\r\n */\r\n@Component({\r\n selector: 'prg-cascade-select-field',\r\n templateUrl: './cascade-select.component.html',\r\n})\r\nexport class PrgCascadeSelectComponent {\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * CascadeSelect config\r\n */\r\n @Input() configs: CascadeSelectConfiguration;\r\n\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n}\r\n","\r\n
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.label' | translate}}

\r\n \r\n\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { CheckboxConfiguration } from './checkbox.model';\r\n\r\n/**\r\n * Checkbox Component\r\n */\r\n@Component({\r\n selector: 'prg-checkbox-field',\r\n templateUrl: './checkbox.component.html',\r\n})\r\nexport class PrgCheckboxComponent {\r\n /**\r\n * Property binding of checkbox values (multiple checkboxes)\r\n * @type {any}\r\n */\r\n public valueChecked: any[] = [];\r\n\r\n /**\r\n * Checkbox config\r\n */\r\n @Input() configs: CheckboxConfiguration;\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.checked,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n 0&&valueChecked!=option[configs.optionValue])\"\r\n >\r\n \r\n {{configs.basePathTranslation + '.' + configs.key + '.' + option[configs.optionKey] + '.label' | translate}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Chips } from 'primeng/chips';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Chips\r\n */\r\nexport class ChipsConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.chips;\r\n\r\n /**\r\n *Name of the property to display on a chip.\r\n */\r\n public field: string = null;\r\n /**\r\n *Maximum number of entries allowed.\r\n */\r\n public max: number = null;\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Advisory information to display on input.\r\n */\r\n public placeholder: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Whether to allow duplicate values or not.\r\n */\r\n public allowDuplicate: boolean = true;\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyle: string = null;\r\n /**\r\n *Style class of the input field.\r\n */\r\n public inputStyleClass: string = null;\r\n /**\r\n *Whether to add an item on tab key press.\r\n */\r\n public addOnTab: boolean = false;\r\n /**\r\n *Whether to add an item when the input loses focus.\r\n */\r\n public addOnBlur: boolean = false;\r\n /**\r\n *Separator char to add an item when pressed in addition to the enter key. Currently only possible value is \",\"\r\n */\r\n public separator: string = ',';\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setChipsConfigs]',\r\n})\r\nexport class PrgSetChipsConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Chips) {}\r\n\r\n /**\r\n * input Chips configs and assign configs to element\r\n */\r\n @Input() set setChipsConfigs(configs: ChipsConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { ChipsConfiguration } from './chips.model';\r\n\r\n/**\r\n * Component Rating\r\n */\r\n@Component({\r\n selector: 'prg-chips-field',\r\n templateUrl: './chips.component.html',\r\n})\r\nexport class PrgChipsComponent {\r\n /**\r\n * Chips Configs\r\n */\r\n @Input() configs: ChipsConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n \r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ColorPicker } from 'primeng/colorpicker';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Color Picker\r\n */\r\nexport class ColorPickerConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.colorPicker;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Whether to display as an overlay or not.\r\n */\r\n public inline: boolean = false;\r\n /**\r\n *Format to use in value binding, supported formats are \"hex\", \"rgb\" and \"hsb\".\r\n */\r\n public format: string = 'hex';\r\n /**\r\n *Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the dropdown.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Base zIndex value to use in layering.\r\n */\r\n public baseZIndex: number = 0;\r\n /**\r\n *Whether to automatically manage layering.\r\n */\r\n public autoZIndex: boolean = true;\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '.1s linear';\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setColorPickerConfigs]',\r\n})\r\nexport class PrgSetColorPickerConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: ColorPicker) {}\r\n\r\n /**\r\n * input Color Picker configs and assign configs to element\r\n */\r\n @Input() set setColorPickerConfigs(configs: ColorPickerConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { ColorPickerConfiguration } from './color-picker.model';\r\n\r\n/**\r\n * Component Color Picker\r\n */\r\n@Component({\r\n selector: 'prg-color-picker-field',\r\n templateUrl: './color-picker.component.html',\r\n})\r\nexport class PrgColorPickerComponent {\r\n /**\r\n * Color Picker Configs\r\n */\r\n @Input() configs: ColorPickerConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n event: event,\r\n value: event.value,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Calendar } from 'primeng/calendar';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Text\r\n */\r\nexport class DateTimeConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputDateTime;\r\n /**\r\n *Set the date to highlight on first opening if the field is blank.\r\n */\r\n public defaultDate: Date = null;\r\n\r\n /**\r\n *Defines the quantity of the selection, valid values are single, multiple and range.\r\n */\r\n public selectionMode: string = 'single';\r\n\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyle: string = null;\r\n\r\n /**\r\n *Style class of the input field.\r\n */\r\n public inputStyleClass: string = null;\r\n\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n\r\n /**\r\n *Name of the input element.\r\n */\r\n // public name: string = null;\r\n /*\r\n /!**\r\n *When specified, disables the component.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n *Format of the date which can also be defined at locale settings.\r\n */\r\n public dateFormat: string = 'mm/dd/yy';\r\n\r\n /**\r\n *When enabled, displays the calendar as inline. Default is false for popup mode.\r\n */\r\n public inline: boolean = false;\r\n\r\n /**\r\n *Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.\r\n */\r\n public showOtherMonths: boolean = true;\r\n\r\n /**\r\n *Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.\r\n */\r\n public selectOtherMonths: boolean = false;\r\n\r\n /**\r\n *When enabled, displays a button with icon next to input.\r\n */\r\n public showIcon: boolean = false;\r\n\r\n /**\r\n *When disabled, datepicker will not be visible with input focus.\r\n */\r\n public showOnFocus: boolean = true;\r\n\r\n /**\r\n *When enabled, calendar will show week numbers.\r\n */\r\n public showWeek: boolean = false;\r\n\r\n /**\r\n *Icon of the calendar button.\r\n */\r\n public icon: string = 'pi pi-calendar';\r\n\r\n /**\r\n *Target element to attach the overlay, valid values are body or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=mydiv for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n\r\n /**\r\n *When specified, prevents entering the date manually with keyboard.\r\n */\r\n public readonlyInput: boolean = null;\r\n\r\n /**\r\n *The cutoff year for determining the century for a date.\r\n */\r\n public shortYearCutoff: string = '10';\r\n\r\n /**\r\n *The minimum selectable date.\r\n */\r\n public minDate: Date = null;\r\n\r\n /**\r\n *The maximum selectable date.\r\n */\r\n public maxDate: Date = null;\r\n\r\n /**\r\n *Array with dates that should be disabled (not selectable).\r\n */\r\n public disabledDates: Array = null;\r\n\r\n /**\r\n *Array with weekday numbers that should be disabled (not selectable).\r\n */\r\n public disabledDays: Array = null;\r\n\r\n /**\r\n *Whether the month should be rendered as a dropdown instead of text.\r\n */\r\n public monthNavigator: boolean = false;\r\n\r\n /**\r\n *Whether the year should be rendered as a dropdown instead of text.\r\n */\r\n public yearNavigator: boolean = false;\r\n\r\n /**\r\n *The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020).\r\n */\r\n public yearRange: string = null;\r\n\r\n /**\r\n *Whether to display timepicker.\r\n */\r\n public showTime: boolean = false;\r\n\r\n /**\r\n *Specifies 12 or 24 hour format.\r\n */\r\n public hourFormat: string = '24';\r\n\r\n /**\r\n *Whether to display timepicker only.\r\n */\r\n public timeOnly: boolean = false;\r\n\r\n /**\r\n *Separator of time selector.\r\n */\r\n public timeSeparator: string = ':';\r\n\r\n /**\r\n *Type of the value to write back to ngModel, default is date and alternative is string.\r\n */\r\n public dataType: string = 'date';\r\n\r\n /**\r\n *When present, it specifies that an input field must be filled out before submitting the form.\r\n */\r\n public required: boolean = false;\r\n\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n *Defines a string that labels the icon button for accessibility.\r\n */\r\n public iconAriaLabel: string = null;\r\n\r\n /**\r\n *Whether to show the seconds in time picker.\r\n */\r\n public showSeconds: boolean = false;\r\n\r\n /**\r\n *Hours to change per step.\r\n */\r\n public stepHour: number = 1;\r\n\r\n /**\r\n *Minutes to change per step.\r\n */\r\n public stepMinute: number = 1;\r\n\r\n /**\r\n *Seconds to change per step.\r\n */\r\n public stepSecond: number = 1;\r\n\r\n /**\r\n *Maximum number of selectable dates in multiple mode.\r\n */\r\n public maxDateCount: number = null;\r\n\r\n /**\r\n *Whether to display today and clear buttons at the footer\r\n */\r\n public showButtonBar: boolean = false;\r\n\r\n /**\r\n *Style class of the today button.\r\n */\r\n public todayButtonStyleClass: string = 'p-secondary-button';\r\n\r\n /**\r\n *Style class of the clear button.\r\n */\r\n public clearButtonStyleClass: string = 'p-secondary-button';\r\n\r\n /**\r\n *Base zIndex value to use in layering.\r\n */\r\n public baseZIndex: number = 0;\r\n\r\n /**\r\n *Whether to automatically manage layering.\r\n */\r\n public autoZIndex: boolean = true;\r\n\r\n /**\r\n *Style class of the datetimepicker container element.\r\n */\r\n public panelStyleClass: string = null;\r\n\r\n /**\r\n *Inline style of the datetimepicker container element.\r\n */\r\n public panelStyle: object = null;\r\n\r\n /**\r\n *Keep invalid value when input blur.\r\n */\r\n public keepInvalid: boolean = false;\r\n\r\n /**\r\n *Whether to hide the overlay on date selection.\r\n */\r\n public hideOnDateTimeSelect: boolean = true;\r\n\r\n /**\r\n *Number of months to display.\r\n */\r\n public numberOfMonths: number = 1;\r\n\r\n //TODO: see this\r\n /**\r\n *Type of view to display, valid values are date for datepicker and month for month picker.\r\n */\r\n public view: 'date' | 'month' | 'year' = 'date';\r\n\r\n /**\r\n *Separator for multiple selection mode.\r\n */\r\n public multipleSeparator: string = ',';\r\n\r\n /**\r\n *Separator for joining start and end dates on range selection mode.\r\n */\r\n public rangeSeparator: string = '-';\r\n\r\n /**\r\n *When enabled, calendar overlay is displayed as optimized for touch devices.\r\n */\r\n public touchUI: boolean = false;\r\n\r\n /**\r\n *When enabled, can only focus on elements inside the calendar.\r\n */\r\n public focusTrap: boolean = true;\r\n\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\r\n\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '.1s linear';\r\n\r\n /**\r\n *Defines the first of the week for various date calculations.\r\n */\r\n public firstDayOfWeek: number = 0;\r\n\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setDateTimeConfigs]',\r\n})\r\nexport class PrgSetDateTimeConfigsDirective {\r\n /**\r\n * constructor\r\n * @param cal\r\n */\r\n constructor(private cal: Calendar) {}\r\n\r\n /**\r\n * input data time configs and assign configs to element\r\n */\r\n @Input() set setDateTimeConfigs(configs: DateTimeConfiguration | any) {\r\n Object.assign(this.cal, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { DateTimeConfiguration } from './date-time.model';\r\n\r\n/**\r\n * component date time\r\n */\r\n@Component({\r\n selector: 'prg-date-time-field',\r\n templateUrl: './date-time.component.html',\r\n})\r\nexport class PrgDateTimeComponent {\r\n /**\r\n * Data time Configs\r\n */\r\n @Input() configs: DateTimeConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { InputMask } from 'primeng/inputmask';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Mask\r\n */\r\nexport class InputMaskConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputMask;\r\n\r\n /**\r\n *HTML5 input type\r\n */\r\n public type: string = 'text';\r\n /**\r\n *Mask pattern.\r\n */\r\n public mask: string = null;\r\n /**\r\n *Placeholder character in mask, default is underscore.\r\n */\r\n public slotChar: string = '_';\r\n /**\r\n *Clears the incomplete value on blur.\r\n */\r\n public autoClear: boolean = true;\r\n /**\r\n *Defines if ngModel sets the raw unmasked value to bound value or the formatted mask value.\r\n */\r\n public unmask: boolean = false;\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the input field.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Advisory information to display on input.\r\n */\r\n public placeholder: string = null;\r\n /**\r\n *Size of the input field.\r\n */\r\n public size: number = null;\r\n /**\r\n *Maximum number of character allows in the input field.\r\n */\r\n public maxlength: number = null;\r\n /**\r\n *Specifies tab order of the element.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Name of the input field.\r\n */\r\n public name: string = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *When present, it specifies that an input field must be filled out before submitting the form.\r\n */\r\n public required: boolean = false;\r\n /**\r\n *Regex pattern for alpha characters\r\n */\r\n public characterPattern: string = '[a-Za-z]';\r\n /**\r\n *When present, the input gets a focus automatically on load.\r\n */\r\n public autoFocus: boolean = false;\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public autocomplete: string = null;\r\n /**\r\n *Used to define a string that labels the input element.\r\n */\r\n public ariaLabel: string = null;\r\n /**\r\n *Used to indicate that user input is required on an element before a form can be submitted.\r\n */\r\n public ariaRequired: boolean = false;\r\n /**\r\n *Title text of the input text.\r\n */\r\n public title: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setInputMaskConfigs]',\r\n})\r\nexport class PrgSetInputMaskConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: InputMask) {}\r\n\r\n /**\r\n * input Input Mask configs and assign configs to element\r\n */\r\n @Input() set setInputMaskConfigs(configs: InputMaskConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { InputMaskConfiguration } from './input-mask.model';\r\n\r\n/**\r\n * component Input Mask\r\n */\r\n@Component({\r\n selector: 'prg-input-mask-field',\r\n templateUrl: './input-mask.component.html',\r\n})\r\nexport class PrgInputMaskComponent {\r\n /**\r\n * Input Mask Configs\r\n */\r\n @Input() configs: InputMaskConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { InputNumberConfiguration } from './input-number.model';\r\n\r\n/**\r\n * component input number\r\n */\r\n@Component({\r\n selector: 'prg-input-number-field',\r\n templateUrl: './input-number.component.html',\r\n})\r\nexport class PrgInputNumberComponent {\r\n /**\r\n * input number configs\r\n */\r\n @Input() configs: InputNumberConfiguration;\r\n\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n\r\n

{{\r\n configs.basePathTranslation + '.' + configs.key + '.label' | translate\r\n }}

\r\n\r\n \r\n \r\n\r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { InputSwitch } from 'primeng/inputswitch';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Switch\r\n */\r\nexport class InputSwitchConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputSwitch;\r\n\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the input element.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Name of the input element.\r\n */\r\n public name: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Value in checked state.\r\n */\r\n public trueValue: any;\r\n /**\r\n *Value in unchecked state.\r\n */\r\n public falseValue: any;\r\n /**\r\n *Used to define a string that autocomplete attribute the current element.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setInputSwitchConfigs]',\r\n})\r\nexport class PrgSetInputSwitchConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: InputSwitch) {}\r\n\r\n /**\r\n * Input Switch configs and assign configs to element\r\n */\r\n @Input() set setInputSwitchConfigs(configs: InputSwitchConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { InputSwitchConfiguration } from './input-switch.model';\r\n\r\n/**\r\n * component Input Switch\r\n */\r\n@Component({\r\n selector: 'prg-input-switch-field',\r\n templateUrl: './input-switch.component.html',\r\n})\r\nexport class PrgInputSwitchComponent {\r\n /**\r\n * Input Switch Configs\r\n */\r\n @Input() configs: InputSwitchConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n event: event,\r\n value: event.checked,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n
\r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '../../../../../services/utility/utility.service';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { InputTextAreaConfiguration } from './input-text-area.model';\r\n\r\n/**\r\n * component input text area\r\n */\r\n@Component({\r\n selector: 'prg-input-text-area-field',\r\n templateUrl: './input-text-area.component.html',\r\n})\r\nexport class PrgInputTextAreaComponent {\r\n /**\r\n * input text area configs\r\n */\r\n @Input() configs: InputTextAreaConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * Constructor\r\n * @param {UtilityService} utilityService\r\n */\r\n constructor(private utilityService: UtilityService) {}\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event,\r\n })\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Debounced method onChanged\r\n * @type {(args?: any) => void}\r\n */\r\n public debounceOnChanged = this.utilityService.debounce((event) => {\r\n this.onChanged(event);\r\n }, 500);\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UtilityService } from '../../../../../services/utility/utility.service';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\n\r\nimport { InputTextConfiguration } from './input-text.model';\r\n\r\n/**\r\n * component input text\r\n */\r\n@Component({\r\n selector: 'prg-input-text-field',\r\n templateUrl: './input-text.component.html',\r\n})\r\nexport class PrgInputTextComponent {\r\n /**\r\n * input text configs\r\n */\r\n @Input() configs: InputTextConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * Constructor\r\n * @param {UtilityService} utilityService\r\n */\r\n constructor(private utilityService: UtilityService) {}\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event,\r\n })\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Debounced method onChanged\r\n * @type {(args?: any) => void}\r\n */\r\n public debounceOnChanged = this.utilityService.debounce((event) => {\r\n this.onChanged(event);\r\n }, 500);\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Knob } from 'primeng/knob';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Knob\r\n */\r\nexport class KnobConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.knob;\r\n\r\n /**\r\n *Size of the component in pixels.\r\n */\r\n public size: number = 100;\r\n /**\r\n *Step factor to increment/decrement the value.\r\n */\r\n public step: number = 1;\r\n /**\r\n *Mininum boundary value.\r\n */\r\n public min: number = 0;\r\n /**\r\n *Maximum boundary value.\r\n */\r\n public max: number = 100;\r\n /**\r\n *Background of the value.\r\n */\r\n public valueColor: string;\r\n /**\r\n *Background color of the range.\r\n */\r\n public rangeColor: number;\r\n /**\r\n *Color of the value text.\r\n */\r\n public textColor: number;\r\n /**\r\n *Width of the knob stroke.\r\n */\r\n public strokeWidth: number = 14;\r\n /**\r\n *Whether the show the value inside the knob.\r\n */\r\n public showValue: boolean = true;\r\n /**\r\n *Template string of the value.\r\n */\r\n public valueTemplate: string = '{value}';\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: object = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setKnobConfigs]',\r\n})\r\nexport class PrgSetKnobConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Knob) {}\r\n\r\n /**\r\n * input Knob configs and assign configs to element\r\n */\r\n @Input() set setKnobConfigs(configs: KnobConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { KnobConfiguration } from './knob.model';\r\n\r\n/**\r\n * Component Knob\r\n */\r\n@Component({\r\n selector: 'prg-knob-field',\r\n templateUrl: './knob.component.html',\r\n})\r\nexport class PrgKnobComponent {\r\n /**\r\n * Property of the class which bind to the value of the Knob in template\r\n * @type {number}\r\n */\r\n public value: number;\r\n /**\r\n * Knob Configs\r\n */\r\n @Input() configs: KnobConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{(configs.basePathTranslation + '.' + configs.key + '.label' | translate)}}

\r\n \r\n
\r\n","import { ChangeDetectorRef, Directive, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Listbox } from 'primeng/listbox';\r\nimport { AbstractEntityTypeService } from '../../../../../../entity-types/services/entity-types/abstract-entity-type.service';\r\nimport { AbstractLookupTableService } from '../../../../../../lookup-table/services/lookup-table/abstract-lookup-table.service';\r\nimport { ObjectsUtilityService } from '../../../../../services/utility/objects-utility.service';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\nimport { ReferenceType } from '../../../models/constants/reference-type';\r\n\r\n/**\r\n * Class List box\r\n */\r\nexport class ListBoxConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName: string = ControlName.listBox;\r\n\r\n /**\r\n * Reference type\r\n */\r\n public referenceType: ReferenceType = null;\r\n\r\n /**\r\n * Reference name -> shoud be a lookup table name\r\n */\r\n public referenceName: string = null;\r\n\r\n /**\r\n *Defines a string that labels the filter input.\r\n */\r\n public ariaFilterLabel: string = null;\r\n /**\r\n *When specified, allows selecting items with checkboxes.\r\n */\r\n public checkbox: boolean = false;\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n\r\n /**\r\n *When specified, displays a filter input at header.\r\n */\r\n public filter: boolean = false;\r\n /**\r\n *Defines how the items are filtered, valid values are \"contains\" (default) \"startsWith\", \"endsWith\", \"equals\", \"notEquals\", \"in\", \"lt\", \"lte\", \"gt\" and \"gte\".\r\n */\r\n public filterMatchMode: string = 'contains';\r\n /**\r\n *When specified, filter displays with this value.\r\n */\r\n public filterValue: string = null;\r\n /**\r\n *Locale to use in filtering. The default locale is the host environment's current locale.\r\n */\r\n public filterLocale: string = undefined;\r\n /**\r\n *When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\r\n */\r\n public filterBy: string = null;\r\n /**\r\n *Defines placeholder of the filter input.\r\n */\r\n public filterPlaceHolder: string = null;\r\n\r\n /**\r\n *Inline style of the list element.\r\n */\r\n public listStyle: string = null;\r\n /**\r\n *Style class of the list element.\r\n */\r\n public listStyleClass: string = null;\r\n /**\r\n *Defines how multiple items can be selected, when true metaKey needs to be pressed to select or unselect an item and when set to false selection of each item can be toggled individually. On touch enabled devices, metaKeySelection is turned off automatically.\r\n */\r\n public metaKeySelection: boolean = true;\r\n /**\r\n *When specified, allows selecting multiple values.\r\n */\r\n public multiple: boolean = false;\r\n /**\r\n *Text to display when there is no data. Defaults to global value in i18n translation configuration.\r\n */\r\n public emptyMessage: string = 'No records found';\r\n /**\r\n *Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration.\r\n */\r\n public emptyFilterMessage: string = 'No results found';\r\n /**\r\n *An array of selectitems to display as the available options.\r\n */\r\n public options: any[] = null;\r\n /**\r\n *Name of the label field of an option.\r\n */\r\n public optionLabel: string = 'label';\r\n /**\r\n *Name of the value field of an option.\r\n */\r\n public optionValue: string = 'value';\r\n /**\r\n *Name of the disabled field of an option.\r\n */\r\n public optionDisabled: string = 'disabled';\r\n /**\r\n *Name of the label field of an option group.\r\n */\r\n public optionGroupLabel: string = 'label';\r\n /**\r\n *Name of the options field of an option group.\r\n */\r\n public optionGroupChildren: string = 'items';\r\n /**\r\n *Whether to display options as grouped when nested options are provided.\r\n */\r\n public group: boolean = false;\r\n /**\r\n *Whether header checkbox is shown in multiple mode.\r\n */\r\n public showToggleAll: boolean = true;\r\n /**\r\n *Inline style of the container.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the container.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setListBoxConfigs]',\r\n})\r\nexport class PrgSetListBoxConfigsDirective {\r\n /**\r\n * Constructor\r\n * @param {Listbox} element\r\n * @param {AbstractLookupTableService} lookupTableService\r\n * @param {AbstractEntityTypeService} entityTypeService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ChangeDetectorRef} cdc\r\n */\r\n constructor(\r\n private element: Listbox,\r\n private lookupTableService: AbstractLookupTableService,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private cdc: ChangeDetectorRef\r\n ) {}\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * get options from lookup table or entity type list\r\n * and assign configs to element\r\n */\r\n @Input() set setListBoxConfigs(configs: ListBoxConfiguration) {\r\n switch (configs.referenceType) {\r\n case ReferenceType.LookupTable:\r\n if (configs.referenceName !== null && configs.referenceName.length) {\r\n this.lookupTableService\r\n .getLookupTableItemsByLookupTableNameAsync(configs.referenceName)\r\n .then((options) => {\r\n configs.options = options;\r\n Object.assign(this.element, configs);\r\n /**\r\n * We have to initiate change detection\r\n * through ChangeDetectorRef because for some reason\r\n * this object assignment is not reflected in the template\r\n */\r\n this.cdc.detectChanges();\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n } else {\r\n this.lookupTableService.getAllLookupTableAsync().then((options) => {\r\n configs.options = options;\r\n Object.assign(this.element, configs);\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n }\r\n break;\r\n case ReferenceType.EntityType:\r\n this.entityTypeService.getEntityTypeListAsync().then((value) => {\r\n configs.options = value;\r\n Object.assign(this.element, configs);\r\n /**\r\n * We have to initiate change detection\r\n * through ChangeDetectorRef because for some reason\r\n * this object assignment is not reflected in the template\r\n */\r\n this.cdc.detectChanges();\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n break;\r\n default:\r\n Object.assign(this.element, configs);\r\n break;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { ListBoxConfiguration } from './list-box.model';\r\n\r\n/**\r\n * component List Box\r\n */\r\n@Component({\r\n selector: 'prg-list-box-field',\r\n templateUrl: './list-box.component.html',\r\n})\r\nexport class PrgListBoxComponent {\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n /**\r\n * List box config\r\n */\r\n @Input() configs: ListBoxConfiguration;\r\n\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n}\r\n","\r\n
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.label' | translate}}

\r\n \r\n\r\n
\r\n","import { ChangeDetectorRef, Directive, Input } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { MultiSelect } from 'primeng/multiselect';\r\nimport { ScrollerOptions } from 'primeng/scroller';\r\nimport { EntityType } from '../../../../../../entity-types/models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../../../../entity-types/services/entity-types/abstract-entity-type.service';\r\nimport { AbstractLookupTableService } from '../../../../../../lookup-table/services/lookup-table/abstract-lookup-table.service';\r\nimport { ArrayUtilityService } from '../../../../../services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../../../services/utility/objects-utility.service';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\nimport { ReferenceType } from '../../../models/constants/reference-type';\r\n\r\n/**\r\n * Class Input Text\r\n */\r\nexport class MultiSelectConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.multiSelect;\r\n /**\r\n * Reference type\r\n */\r\n public referenceType: ReferenceType = null;\r\n\r\n /**\r\n * Reference name -> shoud be a lookup table name\r\n */\r\n public referenceName: string = null;\r\n\r\n /**\r\n *Target element to attach the overlay, valid values are body or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=mydiv for a div element having #mydiv as variable name).\r\n */\r\n public appendTo: any = null;\r\n\r\n /**\r\n *Defines a string that labels the filter input.\r\n */\r\n public ariaFilterLabel: string = null;\r\n\r\n /**\r\n *Label of the input for accessibility.\r\n */\r\n public label: string = null;\r\n\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n *Applies focus to the filter element when the overlay is shown.\r\n */\r\n public autofocusFilter: boolean = false;\r\n\r\n /**\r\n *Whether to automatically manage layering.\r\n */\r\n public autoZIndex: boolean = true;\r\n\r\n /**\r\n *Base zIndex value to use in layering.\r\n */\r\n public baseZIndex: number = 0;\r\n\r\n /**\r\n *Label to display when there are no selections. Deprecated: Use placeholder instead.\r\n */\r\n public defaultLabel: string = 'Choose';\r\n\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n /*\r\n /!**\r\n *When present, it specifies that the element should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n *Whether to show labels of selected item labels or use default label.\r\n */\r\n public displaySelectedLabel: boolean = true;\r\n\r\n /**\r\n *Icon class of the dropdown icon.\r\n */\r\n public dropdownIcon: string = 'pi pi-chevron-down';\r\n\r\n /**\r\n *Text to display when filtering does not return any results.\r\n */\r\n public emptyFilterMessage: string = 'No results found';\r\n\r\n /**\r\n *When specified, displays an input field to filter the items on keyup.\r\n */\r\n public filter: boolean = true;\r\n\r\n /**\r\n *Defines how the items are filtered, valid values are contains (default) startsWith, endsWith, equals, notEquals, in, lt, lte, gt and gte.\r\n */\r\n public filterMatchMode: string = 'contains';\r\n\r\n /**\r\n *When specified, filter displays with this value.\r\n */\r\n public filterValue: string = null;\r\n\r\n /**\r\n *Locale to use in filtering. The default locale is the host environment's current locale.\r\n */\r\n public filterLocale: string = 'undefined';\r\n\r\n /**\r\n *When filtering is enabled, filterBy decides which field or fields (comma separated) to search against.\r\n */\r\n public filterBy: string = null;\r\n\r\n /**\r\n *Defines placeholder of the filter input.\r\n */\r\n public filterPlaceHolder: string = null;\r\n\r\n /**\r\n *Transition options of the hide animation.\r\n */\r\n public hideTransitionOptions: string = '.1s linear';\r\n\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n\r\n /**\r\n *Decides how many selected item labels to show at most.\r\n */\r\n public maxSelectedLabels: number = 3;\r\n\r\n /**\r\n *Name of the input element.\r\n */\r\n public name: string = null;\r\n\r\n /**\r\n *An array of objects to display as the available options.\r\n */\r\n public options: any[] = [];\r\n\r\n /**\r\n *Name of the label field of an option.\r\n */\r\n public optionLabel: string = 'label';\r\n\r\n /**\r\n *Name of the value field of an option.\r\n */\r\n public optionValue: string = 'value';\r\n\r\n /**\r\n *Name of the disabled field of an option.\r\n */\r\n public optionDisabled: string = 'disabled';\r\n\r\n /**\r\n *Name of the label field of an option group.\r\n */\r\n public optionGroupLabel: string = 'label';\r\n\r\n /**\r\n *Name of the options field of an option group.\r\n */\r\n public optionGroupChildren: string = 'items';\r\n\r\n /**\r\n *Whether to display options as grouped when nested options are provided.\r\n */\r\n public group: boolean = false;\r\n\r\n /**\r\n *Specifies the visibility of the options panel.\r\n */\r\n public overlayVisible: boolean = false;\r\n\r\n /**\r\n *Inline style of the overlay panel.\r\n */\r\n public panelStyle: object = null;\r\n\r\n /**\r\n *Label to display when there are no selections.\r\n */\r\n public placeholder: string = null;\r\n\r\n /**\r\n *When present, it specifies that the component cannot be edited.\r\n */\r\n public readonly: boolean = false;\r\n\r\n /**\r\n *Text to display when there is no data. Defaults to global value in i18n translation configuration.\r\n */\r\n public emptyMessage: string = 'No records found.';\r\n\r\n /**\r\n *Clears the filter value when hiding the dropdown.\r\n */\r\n public resetFilterOnHide: boolean = false;\r\n\r\n /**\r\n *Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\r\n */\r\n public scrollHeight: string = '200px';\r\n\r\n /**\r\n *Label to display after exceeding max selected labels e.g. ({0} items selected), defaults ellipsis keyword to indicate a text-overflow.\r\n */\r\n public selectedItemsLabel: string = 'ellipsis';\r\n\r\n /**\r\n *Number of maximum options that can be selected.\r\n */\r\n public selectionLimit: number = null;\r\n\r\n /**\r\n *Whether to show the header.\r\n */\r\n public showHeader: boolean = true;\r\n\r\n /**\r\n *Transition options of the show animation.\r\n */\r\n public showTransitionOptions: string = '.12s cubic-bezier(0, 0, 0.2, 1)';\r\n\r\n /**\r\n *Whether to show the checkbox at header to toggle all items at once.\r\n */\r\n public showToggleAll: boolean = true;\r\n\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: object = null;\r\n\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n\r\n /**\r\n *Advisory information to display in a tooltip on hover.\r\n */\r\n public tooltip: any = null;\r\n\r\n /**\r\n *Style class of the tooltip.\r\n */\r\n public tooltipStyleClass: string = null;\r\n\r\n /**\r\n *Position of the tooltip, valid values are right, left, top and bottom.\r\n */\r\n public tooltipPosition: string = 'top';\r\n\r\n /**\r\n *Type of CSS position.\r\n */\r\n public tooltipPositionStyle: string = 'absolute';\r\n\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n *Whether the data should be loaded on demand during scroll.\r\n */\r\n public virtualScroll: boolean = false;\r\n\r\n /**\r\n *Height of an item in the list for VirtualScrolling.\r\n */\r\n public virtualScrollItemSize: number = null;\r\n\r\n /**\r\n *Whether to use the scroller feature. The properties of scroller component can be used like an object in it.\r\n */\r\n public virtualScrollOptions: ScrollerOptions = null;\r\n\r\n /**\r\n *Defines if data is loaded and interacted with in lazy manner.\r\n */\r\n public lazy: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n\r\n@Directive({\r\n selector: '[setMultiSelectConfigs]',\r\n})\r\nexport class PrgSetMultiselectConfigsDirective {\r\n /**\r\n * constructor\r\n * @param {MultiSelect} element\r\n * @param {AbstractLookupTableService} lookupTableService\r\n * @param {AbstractEntityTypeService} entityTypeService\r\n * @param {ChangeDetectorRef} cd\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private element: MultiSelect,\r\n private lookupTableService: AbstractLookupTableService,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private cd: ChangeDetectorRef,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * input multi select configs and assign configs to element\r\n */\r\n @Input() set setMultiSelectConfigs(configs: MultiSelectConfiguration | any) {\r\n switch (configs.referenceType) {\r\n case ReferenceType.LookupTable:\r\n if (configs.referenceName !== null && configs.referenceName.length) {\r\n this.lookupTableService\r\n .getLookupTableItemsByLookupTableNameAsync(configs.referenceName)\r\n .then((options) => {\r\n configs.options = this.objectsUtilityService.cloneObject(options);\r\n Object.assign(this.element, configs);\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (!this.form) {\r\n this.form = new FormGroup({\r\n [configs.key]: new FormControl(),\r\n });\r\n }\r\n if (configs.value != null) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n\r\n this.cd.detectChanges();\r\n }\r\n });\r\n this.cd.detectChanges();\r\n } else {\r\n this.lookupTableService.getAllLookupTableAsync().then((options) => {\r\n configs.options = this.objectsUtilityService.cloneObject(options);\r\n Object.assign(this.element, configs);\r\n\r\n /**\r\n * we need to set the value of the control\r\n * again because for some reason it stays null\r\n * and doesn't map the value selected by default,\r\n * we've already had to analyse this\r\n * and for now we can't understand why this behaviour\r\n */\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n }\r\n break;\r\n\r\n case ReferenceType.EntityType:\r\n this.entityTypeService.getEntityTypeListAsync().then((value) => {\r\n configs.options = value;\r\n Object.assign(this.element, configs);\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n this.cd.detectChanges();\r\n break;\r\n case ReferenceType.EntityTypeAllData:\r\n this.entityTypeService.getEntityTypeListAsync().then((value) => {\r\n let entities: EntityType[] = this.arrayUtilityService.clone(value);\r\n\r\n entities.map(async (entityType, index) => {\r\n let entityTypeAllData: EntityType =\r\n this.objectsUtilityService.cloneObject(\r\n await this.entityTypeService.getAllEntityTypeDataByName(\r\n entityType.name\r\n )\r\n );\r\n\r\n entities[index].properties = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.properties\r\n );\r\n entities[index].attributes = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.attributes\r\n );\r\n entities[index].operations = this.objectsUtilityService.cloneObject(\r\n entityTypeAllData.operations\r\n );\r\n /* entities[index]['data'] = [];\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.operations\r\n ),\r\n label: 'operations',\r\n });\r\n\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.properties\r\n ),\r\n label: 'properties',\r\n });\r\n entities[index]['data'].push({\r\n subData: this.arrayUtilityService.clone(\r\n entityTypeAllData.attributes\r\n ),\r\n label: 'attributes',\r\n });*/\r\n });\r\n configs.options = entities;\r\n Object.assign(this.element, configs);\r\n\r\n if (configs.value) {\r\n this.form.get(configs.key).setValue(configs.value);\r\n }\r\n });\r\n break;\r\n default:\r\n Object.assign(this.element, configs);\r\n break;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { MultiSelectConfiguration } from './multi-select.model';\r\n\r\n/**\r\n * component multi select\r\n */\r\n@Component({\r\n selector: 'prg-multi-select-field',\r\n templateUrl: './multi-select.component.html',\r\n})\r\nexport class PrgMultiSelectComponent {\r\n /**\r\n * Multi select configs\r\n */\r\n @Input() configs: MultiSelectConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.name' | translate}}

\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Password } from 'primeng/password';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Text\r\n */\r\nexport class InputPasswordConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputPassword;\r\n /**\r\n *Text to prompt password entry. Defaults to PrimeNG I18N API configuration.\r\n */\r\n public promptLabel: string = null;\r\n\r\n /**\r\n *^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,}).\r\n */\r\n public mediumRegex: string = 'Regex for a medium level password.';\r\n\r\n /**\r\n *^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})\r\n */\r\n public strongRegex: string = 'Regex for a strong level password.';\r\n\r\n /**\r\n *Text for a weak password. Defaults to PrimeNG I18N API configuration.\r\n */\r\n public weakLabel: string = null;\r\n\r\n /**\r\n *Text for a medium password. Defaults to PrimeNG I18N API configuration.\r\n */\r\n public mediumLabel: string = null;\r\n\r\n /**\r\n *Text for a strong password. Defaults to PrimeNG I18N API configuration.\r\n */\r\n public strongLabel: string = null;\r\n\r\n /**\r\n *Whether to show the strength indicator or not.\r\n */\r\n public feedback: boolean = true;\r\n\r\n /**\r\n *Whether to show an icon to display the password as plain text.\r\n */\r\n public toggleMask: boolean = false;\r\n\r\n /**\r\n *Id of the element or body for document where the overlay should be appended to.\r\n */\r\n public appendTo: string = null;\r\n\r\n /**\r\n *Inline style of the input field.\r\n */\r\n public inputStyle: any = null;\r\n\r\n /**\r\n *Style class of the input field.\r\n */\r\n public inputStyleClass: string = null;\r\n\r\n /**\r\n *Identifier of the accessible input element.\r\n */\r\n public inputId: string = null;\r\n\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Advisory information to display on input.\r\n */\r\n public placeholder: string = null;\r\n\r\n /**\r\n *Label of the input for accessibility.\r\n */\r\n public label: string = null;\r\n\r\n /**\r\n *Defines a string that labels the input for accessibility.\r\n */\r\n public ariaLabel: string = null;\r\n\r\n /**\r\n *Specifies one or more IDs in the DOM that labels the input field.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n *When enabled, a clear icon is displayed to clear the value.\r\n */\r\n public showClear: boolean = false;\r\n\r\n /**\r\n * constructor\r\n * @param init init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n * */\r\n@Directive({\r\n selector: '[setInputPasswordConfigs]',\r\n})\r\nexport class PrgSetInputPasswordConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Password) {}\r\n\r\n /**\r\n * input password configs and assign configs to element\r\n */\r\n @Input() set setInputPasswordConfigs(configs: InputPasswordConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { InputPasswordConfiguration } from './password.model';\r\n\r\n/**\r\n * component input password\r\n */\r\n@Component({\r\n selector: 'prg-password-field',\r\n templateUrl: './password.component.html',\r\n})\r\nexport class PrgPasswordComponent {\r\n /**\r\n * Input password configs\r\n */\r\n @Input() configs: InputPasswordConfiguration;\r\n\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n}\r\n","\r\n \r\n \r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { RadioButton } from 'primeng/radiobutton';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Radio Button\r\n */\r\nexport class RadioButtonConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.radioButton;\r\n\r\n /**\r\n *Name of the radiobutton group.\r\n */\r\n public name: string = null;\r\n /**\r\n *Value of the radiobutton.\r\n */\r\n public value: any = null;\r\n /**\r\n *Label of the radiobutton.\r\n */\r\n public label: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Used to define a string that labels the input element.\r\n */\r\n public ariaLabel: string = null;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: object = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Style class of the label.\r\n */\r\n public labelStyleClass: string = null;\r\n\r\n /**\r\n *An array of objects to display as dynamic values.Mandatory field.\r\n */\r\n public options: any[] = null;\r\n\r\n /**\r\n *Name of the value field of an option. Default 'value'.\r\n */\r\n public optionValue: string = 'value';\r\n\r\n /**\r\n *Name of the key field of an option.Default 'key'.Also used to bring the translation of the field\r\n */\r\n public optionKey: string = 'key';\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setRadioButtonConfigs]',\r\n})\r\nexport class PrgSetRadioButtonConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: RadioButton) {}\r\n\r\n /**\r\n * input Radio Button configs and assign configs to element\r\n */\r\n @Input() set setRadioButtonConfigs(configs: RadioButtonConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { RadioButtonConfiguration } from './radio-button.model';\r\n\r\n/**\r\n * component Radio button\r\n */\r\n@Component({\r\n selector: 'prg-radio-button-field',\r\n templateUrl: './radio-button.component.html',\r\n})\r\nexport class PrgRadioButtonComponent {\r\n /**\r\n * Radio Button Configs\r\n */\r\n @Input() configs: RadioButtonConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n event: event,\r\n value: event.value,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n {{configs.basePathTranslation + '.' + configs.key + '.' + option[configs.optionKey] + '.label' | translate}}\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Rating } from 'primeng/rating';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Rating\r\n */\r\nexport class RatingConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.rating;\r\n\r\n /**\r\n *Number of stars.\r\n */\r\n public stars: number = 5;\r\n /**\r\n *When specified a cancel icon is displayed to allow removing the value.\r\n */\r\n public cancel: boolean = true;\r\n /**\r\n *Style class of the on icon.\r\n */\r\n public iconOnClass: string = 'pi pi-star-fill';\r\n /**\r\n *Style class of the off icon.\r\n */\r\n public iconOffClass: string = 'pi pi-star';\r\n /**\r\n *Style class of the cancel icon.\r\n */\r\n public iconCancelClass: string = 'pi pi-ban';\r\n /**\r\n *Inline style of the on icon.\r\n */\r\n public iconOnStyle: object = null;\r\n /**\r\n *Inline style of the off icon.\r\n */\r\n public iconOffStyle: object = null;\r\n /**\r\n *Inline style of the cancel icon.\r\n */\r\n public iconCancelStyle: object = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setRatingConfigs]',\r\n})\r\nexport class PrgSetRatingConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Rating) {}\r\n\r\n /**\r\n * input Rating configs and assign configs to element\r\n */\r\n @Input() set setRatingConfigs(configs: RatingConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { RatingConfiguration } from './rating.model';\r\n\r\n/**\r\n * Component Rating\r\n */\r\n@Component({\r\n selector: 'prg-rating-field',\r\n templateUrl: './rating.component.html',\r\n})\r\nexport class PrgRatingComponent {\r\n /**\r\n * Rating Configs\r\n */\r\n @Input() configs: RatingConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{(configs.basePathTranslation + '.' + configs.key + '.label' | translate)}}

\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { SelectButton } from 'primeng/selectbutton';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Select Button\r\n */\r\nexport class SelectButtonConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.selectButton;\r\n\r\n /**\r\n *An array of selectitems to display as the available options.\r\n */\r\n public options: any[] = null;\r\n /**\r\n *Name of the label field of an option.\r\n */\r\n public optionLabel: string = 'label';\r\n /**\r\n *Name of the value field of an option.\r\n */\r\n public optionValue: string = 'value';\r\n /**\r\n *Name of the disabled field of an option.\r\n */\r\n public optionDisabled: string = 'disabled';\r\n /**\r\n *When specified, allows selecting multiple values.\r\n */\r\n public multiple: boolean = false;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = 0;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *A property to uniquely identify a value in options.\r\n */\r\n public dataKey: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSelectButtonConfigs]',\r\n})\r\nexport class PrgSetSelectButtonConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: SelectButton) {}\r\n\r\n /**\r\n * input Select Button configs and assign configs to element\r\n */\r\n @Input() set setSelectButtonConfigs(configs: SelectButtonConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { SelectButtonConfiguration } from './select-button.model';\r\n\r\n/**\r\n * component select button\r\n */\r\n@Component({\r\n selector: 'prg-select-button-field',\r\n templateUrl: './select-button.component.html',\r\n})\r\nexport class PrgSelectButtonComponent {\r\n /**\r\n * Select Button Configs\r\n */\r\n @Input() configs: SelectButtonConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n event: event,\r\n value: event.value,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.label' | translate}}

\r\n\r\n\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { SelectConfiguration } from './select.model';\r\n\r\n/**\r\n * component dropdown/select\r\n */\r\n@Component({\r\n selector: 'prg-select-field',\r\n templateUrl: './select.component.html',\r\n})\r\nexport class PrgSelectComponent {\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Select config\r\n */\r\n @Input() configs: SelectConfiguration;\r\n\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n}\r\n","
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.name' | translate}}

\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { Slider } from 'primeng/slider';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Slider\r\n */\r\nexport class SliderConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.slider;\r\n /**\r\n *When enabled, displays an animation on click of the slider bar.\r\n */\r\n public animate: boolean = false;\r\n /**\r\n *Mininum boundary value.\r\n */\r\n public min: number = 0;\r\n /**\r\n *Maximum boundary value.\r\n */\r\n public max: number = 100;\r\n /**\r\n *Orientation of the slider, valid values are horizontal and vertical.\r\n */\r\n public orientation: string = 'horizontal';\r\n /**\r\n *Step factor to increment/decrement the value.\r\n */\r\n public step: number = 1;\r\n /**\r\n *When specified, allows two boundary values to be picked.\r\n */\r\n public range: boolean = false;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = 0;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setSliderConfigs]',\r\n})\r\nexport class PrgSetSliderConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: Slider) {}\r\n\r\n /**\r\n * input slider configs and assign configs to element\r\n */\r\n @Input() set setSliderConfigs(configs: SliderConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { SliderConfiguration } from './slider.model';\r\n\r\n/**\r\n * Component Slider\r\n */\r\n@Component({\r\n selector: 'prg-slider-field',\r\n templateUrl: './slider.component.html',\r\n})\r\nexport class PrgSliderComponent {\r\n /**\r\n * Property of the class which bind to the value of the slider in template\r\n * @type {number}\r\n */\r\n public value: number;\r\n /**\r\n * Slider Configs\r\n */\r\n @Input() configs: SliderConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n /**\r\n * function that triggers the outpout\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.value,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{(configs.basePathTranslation + '.' + configs.key + '.label' | translate) + ': '}}{{value?value:''}}

\r\n \r\n
\r\n","import { Directive, Input } from '@angular/core';\r\nimport { ToggleButton } from 'primeng/togglebutton';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class ToggleButton\r\n */\r\nexport class ToggleButtonConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.toggleButton;\r\n /**\r\n *Enable inline label of the toggle button.\r\n */\r\n public hasLabel: boolean = false;\r\n /**\r\n *Label for the on state.\r\n */\r\n public onLabel: string = null;\r\n /**\r\n *Label for the off state.\r\n */\r\n public offLabel: string = null;\r\n /**\r\n *Icon for the on state.\r\n */\r\n public onIcon: string = 'pi pi-check';\r\n /**\r\n *Icon for the off state.\r\n */\r\n public offIcon: string = 'pi pi-times';\r\n /**\r\n *Position of the icon, valid values are \"left\" and \"right\".\r\n */\r\n public iconPos: string = 'left';\r\n /**\r\n *Inline style of the element.\r\n */\r\n public style: string = null;\r\n /**\r\n *Style class of the element.\r\n */\r\n public styleClass: string = null;\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setToggleButtonConfigs]',\r\n})\r\nexport class PrgSetToggleButtonConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: ToggleButton) {}\r\n /**\r\n * input ToggleButton configs and assign configs to element\r\n */\r\n @Input() set setToggleButtonConfigs(configs: ToggleButtonConfiguration) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { ToggleButtonConfiguration } from './toggle-button.model';\r\n\r\n/**\r\n * Toggle button component\r\n */\r\n@Component({\r\n selector: 'prg-toggle-button-field',\r\n templateUrl: './toggle-button.component.html',\r\n})\r\nexport class PrgToggleButtonComponent {\r\n /**\r\n * ToggleButton config\r\n */\r\n @Input() configs: ToggleButtonConfiguration;\r\n /**\r\n * Form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any) {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n value: event.checked,\r\n event: event,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n

{{configs.basePathTranslation + '.' + configs.key + '.label' | translate}}

\r\n \r\n
\r\n\r\n\r\n","import { Directive, Input } from '@angular/core';\r\nimport { TriStateCheckbox } from 'primeng/tristatecheckbox';\r\nimport { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class TriState Checkbox\r\n */\r\nexport class TriStateCheckboxConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.triStateCheckbox;\r\n\r\n /**\r\n *Name of the component.\r\n */\r\n public name: string = null;\r\n /**\r\n *Label of the checkbox.\r\n */\r\n public label: string = null;\r\n\r\n /**\r\n *Index of the element in tabbing order.\r\n */\r\n public tabindex: number = null;\r\n /**\r\n *Identifier of the focus input to match a label defined for the component.\r\n */\r\n public inputId: string = null;\r\n /**\r\n *Establishes relationships between the component and label(s) where its value should be one or more element IDs.\r\n */\r\n public ariaLabelledBy: string = null;\r\n /**\r\n *Inline style of the component.\r\n */\r\n public style: object = null;\r\n /**\r\n *Style class of the component.\r\n */\r\n public styleClass: string = null;\r\n\r\n /**\r\n *Specifies the icon for checkbox true value.\r\n */\r\n public checkboxTrueIcon: string = 'pi pi-check';\r\n /**\r\n *Specifies the icon for checkbox false value.\r\n */\r\n public checkboxFalseIcon: string = 'pi pi-times';\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Directive\r\n */\r\n@Directive({\r\n selector: '[setTriStateCheckboxConfigs]',\r\n})\r\nexport class PrgSetTriStateCheckboxConfigsDirective {\r\n /**\r\n * constructor\r\n * @param element\r\n */\r\n constructor(private element: TriStateCheckbox) {}\r\n\r\n /**\r\n * input Tri State Checkbox configs and assign configs to element\r\n */\r\n @Input() set setTriStateCheckboxConfigs(\r\n configs: TriStateCheckboxConfiguration\r\n ) {\r\n Object.assign(this.element, configs);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../../../models/base-action';\r\nimport { TriStateCheckboxConfiguration } from './tri-state-checkbox.model';\r\n\r\n/**\r\n * component tri state checkbox\r\n */\r\n@Component({\r\n selector: 'prg-tri-state-checkbox-field',\r\n templateUrl: './tri-state-checkbox.component.html',\r\n})\r\nexport class PrgTriStateCheckboxComponent {\r\n /**\r\n * Tri State Checkbox Configs\r\n */\r\n @Input() configs: TriStateCheckboxConfiguration;\r\n /**\r\n * form\r\n */\r\n @Input() form: FormGroup;\r\n\r\n /**\r\n * output\r\n */\r\n @Output() onValueChange = new EventEmitter();\r\n\r\n /**\r\n * function that triggers the output\r\n */\r\n public onChanged(event: any): void {\r\n if (!this.configs.disabledOutputEvent) {\r\n this.onValueChange.emit(\r\n new FieldChangeOutput({\r\n field: this.configs.key,\r\n event: event,\r\n value: event.value,\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n\r\n\r\n\r\n \r\n
\r\n","import { PrgAutoCompleteComponent } from '../../dynamic-form-fields/fields/auto-complete/auto-complete.component';\r\nimport { PrgCascadeSelectComponent } from '../../dynamic-form-fields/fields/cascade-select/cascade-select..component';\r\nimport { PrgCheckboxComponent } from '../../dynamic-form-fields/fields/checkbox/checkbox.component';\r\nimport { PrgChipsComponent } from '../../dynamic-form-fields/fields/chips/chips.component';\r\nimport { PrgColorPickerComponent } from '../../dynamic-form-fields/fields/color-picker/color-picker.component';\r\nimport { PrgDateTimeComponent } from '../../dynamic-form-fields/fields/input-date-time/date-time.component';\r\nimport { PrgInputMaskComponent } from '../../dynamic-form-fields/fields/input-mask/input-mask.component';\r\nimport { PrgInputNumberComponent } from '../../dynamic-form-fields/fields/input-number/input-number.component';\r\nimport { PrgInputSwitchComponent } from '../../dynamic-form-fields/fields/input-switch/input-switch.component';\r\nimport { PrgInputTextAreaComponent } from '../../dynamic-form-fields/fields/input-text-area/input-text-area.component';\r\nimport { PrgInputTextComponent } from '../../dynamic-form-fields/fields/input-text/input-text.component';\r\nimport { PrgKnobComponent } from '../../dynamic-form-fields/fields/knob/knob.component';\r\nimport { PrgListBoxComponent } from '../../dynamic-form-fields/fields/list-box/list-box.component';\r\nimport { PrgMultiSelectComponent } from '../../dynamic-form-fields/fields/multiselect/multi-select.component';\r\nimport { PrgPasswordComponent } from '../../dynamic-form-fields/fields/password/password.component';\r\nimport { PrgRadioButtonComponent } from '../../dynamic-form-fields/fields/radio-button/radio-button.component';\r\nimport { PrgRatingComponent } from '../../dynamic-form-fields/fields/rating/rating.component';\r\nimport { PrgSelectButtonComponent } from '../../dynamic-form-fields/fields/select-button/select-button.component';\r\nimport { PrgSelectComponent } from '../../dynamic-form-fields/fields/select/select.component';\r\nimport { PrgSliderComponent } from '../../dynamic-form-fields/fields/slider/slider.component';\r\nimport { PrgToggleButtonComponent } from '../../dynamic-form-fields/fields/toggle-button/toggle-button.component';\r\nimport { PrgTriStateCheckboxComponent } from '../../dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.component';\r\n\r\n/**\r\n * list of types of fields\r\n */\r\nexport const ControlTypes = {\r\n inputText: PrgInputTextComponent,\r\n inputNumber: PrgInputNumberComponent,\r\n inputDateTime: PrgDateTimeComponent,\r\n inputPassword: PrgPasswordComponent,\r\n dropdown: PrgSelectComponent,\r\n multiSelect: PrgMultiSelectComponent,\r\n checkbox: PrgCheckboxComponent,\r\n inputTextArea: PrgInputTextAreaComponent,\r\n triStateCheckbox: PrgTriStateCheckboxComponent,\r\n selectButton: PrgSelectButtonComponent,\r\n radioButton: PrgRadioButtonComponent,\r\n colorPicker: PrgColorPickerComponent,\r\n inputMask: PrgInputMaskComponent,\r\n slider: PrgSliderComponent,\r\n inputSwitch: PrgInputSwitchComponent,\r\n rating: PrgRatingComponent,\r\n knob: PrgKnobComponent,\r\n chips: PrgChipsComponent,\r\n toggleButton: PrgToggleButtonComponent,\r\n listBox: PrgListBoxComponent,\r\n cascadeSelect: PrgCascadeSelectComponent,\r\n autoComplete: PrgAutoCompleteComponent,\r\n};\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldChangeOutput } from '../models/base-action';\r\nimport { ControlName } from '../models/constants/control-names';\r\nimport { ControlTypes } from '../models/constants/control-types';\r\n\r\n/**\r\n * Dynamic form field component\r\n */\r\n@Component({\r\n selector: 'prg-dynamic-form-field',\r\n templateUrl: './prg-dynamic-form-field.component.html',\r\n styleUrls: ['./prg-dynamic-form-field.component.scss'],\r\n})\r\nexport class PrgDynamicFormFieldComponent {\r\n /**\r\n * receives a field\r\n */\r\n @Input() field!: any;\r\n /**\r\n * receive the formGroup\r\n */\r\n @Input() form!: FormGroup;\r\n\r\n /**\r\n * Emit a new FieldChangeOutput whenever a field value changes\r\n */\r\n @Output() onChange = new EventEmitter();\r\n\r\n /**\r\n * output to dynamic component\r\n */\r\n outputs = {\r\n onValueChange: (fieldChangeOutput: FieldChangeOutput) => {\r\n this.onChange.emit(fieldChangeOutput);\r\n },\r\n };\r\n\r\n /**\r\n * fields type\r\n * @type {{inputNumber: PrgInputNumberComponent, inputTextArea: PrgInputTextAreaComponent, checkbox: PrgCheckboxComponent, inputText: PrgInputTextComponent, inputDateTime: PrgDateTimeComponent, inputPassword: PrgPasswordComponent, dropdown: PrgSelectComponent, multiSelect: PrgMultiSelectComponent}}\r\n */\r\n public fieldTypes = ControlTypes;\r\n\r\n /**\r\n * @returns boolean if question is valid or not\r\n */\r\n public get isValid() {\r\n return this.form.controls[this.field.key].valid;\r\n }\r\n\r\n /**\r\n * @returns string with error\r\n */\r\n public get errors() {\r\n return this.form.controls[this.field.key].errors;\r\n }\r\n\r\n /**\r\n * get control\r\n * @returns control\r\n */\r\n public get formControl(): any {\r\n return this.form.controls[this.field.key];\r\n }\r\n\r\n /**\r\n * get control name\r\n * @return controlname\r\n */\r\n public get controlNames(): typeof ControlName {\r\n return ControlName;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\";\r\nimport { PrgEntityTypesConfig } from \"../../models/prg-entity-types-config\";\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_ENTITY_TYPES_CONFIG = new InjectionToken(\r\n \"PRG_ENTITY_TYPES_CONFIG\"\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PrgEntityTypesConfigurationService {\r\n /**\r\n * constructor\r\n *\r\n * @param prgEntityTypesConfig\r\n */\r\n constructor(\r\n @Inject(PRG_ENTITY_TYPES_CONFIG)\r\n private prgEntityTypesConfig: PrgEntityTypesConfig\r\n ) {}\r\n}\r\n","export enum ViewMode {\r\n Edit = 'edit',\r\n View = 'view',\r\n Read = 'read',\r\n Create = 'create',\r\n Add = 'add',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormControl, FormGroup, ValidatorFn } from '@angular/forms';\r\nimport { BaseField } from '../../components/dynamic-form/models/base-field';\r\n\r\n/**\r\n * injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FormGroupService {\r\n /**constructor */\r\n constructor() {}\r\n\r\n /**\r\n * this function is responsible for creating a formGroup[]\r\n * with the respective values and validations for each field of the object\r\n * @param objects\r\n * @param columnsData\r\n * @returns\r\n */\r\n toFormGroupMultipleObjects(\r\n objects: any[],\r\n columnsData: BaseField[]\r\n ): FormGroup[] {\r\n const objectProperties: string[] = Object.getOwnPropertyNames(objects[0]);\r\n\r\n let formGroupArray: FormGroup[] = [];\r\n objects.forEach((object) => {\r\n const formGroupAux = new FormGroup(\r\n this.getFormGroup(objectProperties, columnsData)\r\n );\r\n formGroupAux.setValue(object);\r\n formGroupArray.push(formGroupAux);\r\n });\r\n\r\n return formGroupArray;\r\n }\r\n\r\n /**\r\n * this function is responsible for creating a formGroup\r\n * with the respective values and validations for a given object\r\n *\r\n * @param object\r\n * @param columnsData\r\n * @returns\r\n */\r\n toFormGroupOneObject(object: any, columnsData: BaseField[]): FormGroup {\r\n const objectProperties: string[] = Object.getOwnPropertyNames(object);\r\n\r\n const formGroup = new FormGroup(\r\n this.getFormGroup(objectProperties, columnsData)\r\n );\r\n formGroup.setValue(object);\r\n\r\n return formGroup;\r\n }\r\n\r\n /**\r\n * this function returns an object with the\r\n * required fields with its formControl\r\n *\r\n * @param objectProperties\r\n * @param columnsData\r\n * @returns any\r\n */\r\n getFormGroup(objectProperties: string[], columnsData: BaseField[]): any {\r\n let objectWithValidators = {};\r\n\r\n objectProperties.forEach((property) => {\r\n const column = columnsData.find((column) => column.key === property);\r\n let validators: ValidatorFn[] | null = null;\r\n if (column) {\r\n validators = column.validators;\r\n }\r\n objectWithValidators[property] = new FormControl(null, validators);\r\n });\r\n return objectWithValidators;\r\n }\r\n /**\r\n * this function recive fields and transform it in a form group\r\n * @param fields\r\n * @returns FormGroup\r\n */\r\n toFormGroup(fields: BaseField[]): FormGroup {\r\n const group: any = {};\r\n fields.forEach((field) => {\r\n group[field.key] = new FormControl(field.value, field.validators);\r\n });\r\n\r\n return new FormGroup(group);\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { PrgEntityTypesConfig } from '../../../entity-types/models/prg-entity-types-config';\r\nimport { PRG_ENTITY_TYPES_CONFIG } from '../../../entity-types/services/entity-types-configuration/prg-entity-types-configuration.service';\r\nimport { PrgMenuItem } from '../../../layouts/models/prg-menu-item';\r\nimport { ViewMode } from '../../models/constants/view-mode.enum';\r\nimport { FormGroupService } from '../../services/form-group/form-group.service';\r\nimport { UtilityService } from '../../services/utility/utility.service';\r\nimport {\r\n ActionOutput,\r\n BaseAction,\r\n DynamicFormActionOutput,\r\n DynamicFormFieldChangeOutput,\r\n FieldChangeOutput,\r\n FormStatus,\r\n} from './models/base-action';\r\nimport { BaseField } from './models/base-field';\r\n\r\n/**\r\n * Dynamic form component\r\n */\r\n@Component({\r\n selector: 'prg-dynamic-form',\r\n templateUrl: './prg-dynamic-form.component.html',\r\n styleUrls: ['./prg-dynamic-form.component.scss'],\r\n})\r\nexport class PrgDynamicFormComponent implements OnInit {\r\n /**\r\n * Tab menu items\r\n * @type {PrgMenuItem[]}\r\n */\r\n public tabMenuItemsDynamicForm: PrgMenuItem[] = [];\r\n\r\n /**\r\n * active tab menu\r\n */\r\n public activeTabMenuItemsDynamicForm: PrgMenuItem;\r\n\r\n /**\r\n * Context of class where dynamic form component is used\r\n * @type {any}\r\n */\r\n @Input() context: any = null;\r\n /**\r\n * fields aux\r\n */\r\n private _fields: BaseField[] = [];\r\n /**\r\n * fields aux\r\n */\r\n private _originalFields: BaseField[] = [];\r\n\r\n /**\r\n *array with the fields\r\n */\r\n @Input('fields') set fields(fields: BaseField[]) {\r\n this._fields = this.arrayUtilityService.clone(fields);\r\n this._originalFields = this.arrayUtilityService.clone(fields);\r\n this.form = this.formGroupService.toFormGroup(fields);\r\n }\r\n\r\n /**\r\n * get fields\r\n */\r\n get fields(): BaseField[] {\r\n return this._fields;\r\n }\r\n\r\n /**\r\n * actions aux\r\n */\r\n private _actions: BaseAction[] = [];\r\n /**\r\n *array with the actions\r\n */\r\n @Input('actions') set actions(actions: BaseAction[]) {\r\n this._actions = actions;\r\n this.createActionsArray();\r\n }\r\n\r\n /**\r\n * get actions\r\n */\r\n get actions(): BaseAction[] {\r\n return this._actions;\r\n }\r\n\r\n /**\r\n * entity aux\r\n */\r\n private _entity: any;\r\n\r\n /**\r\n * input entity\r\n */\r\n @Input('entity') set entity(entity: any) {\r\n if (entity) {\r\n this._entity = this.objectsUtilityService.cloneObject(entity);\r\n this._entityTemp = this.objectsUtilityService.cloneObject(entity);\r\n this.mapValueToFields(entity);\r\n }\r\n }\r\n\r\n /**\r\n * get entity\r\n */\r\n get entity(): any {\r\n return this._entity;\r\n }\r\n\r\n /**\r\n * Temporary entity to access fields values when changes occur\r\n * @type {any}\r\n * @private\r\n */\r\n private _entityTemp: any;\r\n\r\n /**\r\n * getter entity temp\r\n * @returns {any}\r\n */\r\n get entityTemp(): any {\r\n return this._entityTemp;\r\n }\r\n\r\n /**\r\n * view mode aux\r\n */\r\n private _viewMode: ViewMode;\r\n /**\r\n * input view mode\r\n */\r\n @Input('viewMode') set viewMode(viewMode: ViewMode) {\r\n this._viewMode = viewMode;\r\n this.fields.forEach((field) => {\r\n field.readonly = viewMode !== ViewMode.Edit;\r\n field.disabled = viewMode !== ViewMode.Edit;\r\n });\r\n this.fields = this.arrayUtilityService.clone(this.fields);\r\n }\r\n\r\n /**\r\n * get View Mode\r\n */\r\n get viewMode(): ViewMode {\r\n return this._viewMode;\r\n }\r\n\r\n /**\r\n * The grouping type of the form\r\n * @type {any}\r\n */\r\n @Input() formGroupType: any;\r\n\r\n /**\r\n * action output\r\n */\r\n @Output() actionOutput = new EventEmitter();\r\n\r\n /**\r\n * Field output onChange\r\n * @type {EventEmitter}\r\n */\r\n @Output() fieldChangeOutput =\r\n new EventEmitter();\r\n\r\n /**\r\n * declare form group\r\n */\r\n public form!: FormGroup;\r\n\r\n /**\r\n * left actions\r\n */\r\n public leftActions: BaseAction[] = [];\r\n /**\r\n * middle actions\r\n */\r\n public middleActions: BaseAction[] = [];\r\n /**\r\n * right actions\r\n */\r\n public rightActions: BaseAction[] = [];\r\n\r\n /**\r\n * constructor\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {FormGroupService} formGroupService\r\n * @param {UtilityService} utilityService\r\n * @param {PrgEntityTypesConfig} entityConfigs\r\n */\r\n constructor(\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private formGroupService: FormGroupService,\r\n private utilityService: UtilityService,\r\n @Inject(PRG_ENTITY_TYPES_CONFIG) private entityConfigs: PrgEntityTypesConfig\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit(): void {\r\n if (this.formGroupType === 'tab') {\r\n this.createTabMenu();\r\n }\r\n }\r\n\r\n /**\r\n * this function divides the actions by their respective positions\r\n */\r\n private createActionsArray(): void {\r\n if (this._actions) {\r\n this._actions = this.arrayUtilityService.sortByProperty(\r\n this._actions,\r\n 'order'\r\n );\r\n this.leftActions = this._actions.reduce((prev, curr) => {\r\n if (curr.toolbarSlot == 'left') {\r\n prev.push(curr);\r\n }\r\n return prev;\r\n }, []);\r\n this.middleActions = this._actions.reduce((prev, curr) => {\r\n if (curr.toolbarSlot == 'middle') {\r\n prev.push(curr);\r\n }\r\n return prev;\r\n }, []);\r\n this.rightActions = this._actions.reduce((prev, curr) => {\r\n if (curr.toolbarSlot == 'right') {\r\n prev.push(curr);\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n }\r\n\r\n /**\r\n * this function fire the output\r\n * @param action\r\n */\r\n public onActionClicked(action: ActionOutput): void {\r\n if (this.viewMode !== ViewMode.Add) {\r\n this.mapFieldsToValue();\r\n }\r\n this.actionOutput.emit(\r\n new DynamicFormActionOutput({\r\n action: action.action,\r\n value: action.value,\r\n group: action.group,\r\n formEntity: this.entity,\r\n formStatus: this.form.status.toLowerCase() as FormStatus,\r\n isChanged: !this.form.pristine,\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * this function maps the new values in the entity\r\n */\r\n private mapFieldsToValue(data: any = null): void {\r\n if (data == null) {\r\n data = this.entity;\r\n }\r\n Object.keys(this.form.getRawValue()).forEach((key: string) => {\r\n data[key] = this.form.controls[key].getRawValue();\r\n });\r\n }\r\n\r\n /**\r\n * this function maps the entity values in the fields\r\n * @param entity\r\n */\r\n private mapValueToFields(entity: any): void {\r\n this._fields = this.arrayUtilityService.clone(this._originalFields);\r\n\r\n this.fieldsReadonly();\r\n this._fields.forEach((field) => {\r\n if (entity[field.key]) {\r\n field.value = entity[field.key];\r\n }\r\n });\r\n\r\n this.form = this.formGroupService.toFormGroup(this.fields);\r\n }\r\n\r\n /**\r\n * this function depending on the view mode changes the read only and disabled value\r\n */\r\n private fieldsReadonly(): void {\r\n this._fields.forEach((field) => {\r\n field.readonly = this.viewMode !== ViewMode.Edit;\r\n field.disabled = this.viewMode !== ViewMode.Edit;\r\n });\r\n }\r\n\r\n /**\r\n * this function calls the service that does the expression eval for fields\r\n * @param {string} expression\r\n * @param {boolean} defaultValue\r\n * @param {string | null} formFieldGroup\r\n * @returns {boolean}\r\n */\r\n public evalExpression(\r\n expression: string,\r\n defaultValue: boolean = false,\r\n formFieldGroup: string | null = null\r\n ): boolean {\r\n if (\r\n this.formGroupType &&\r\n formFieldGroup != null &&\r\n formFieldGroup !== this.activeTabMenuItemsDynamicForm.id\r\n ) {\r\n return false;\r\n }\r\n if (!expression) return defaultValue;\r\n\r\n return this.utilityService.evalFunction(\r\n expression,\r\n this,\r\n this.context != null ? this.context : {}\r\n );\r\n }\r\n\r\n /**\r\n * this function fire the output for the fields\r\n * @param {FieldChangeOutput} field\r\n */\r\n public onFieldChanged(field: FieldChangeOutput) {\r\n // Set Fields to Value before emit, to reflect changes instantly\r\n\r\n let data = {};\r\n if (this.viewMode !== ViewMode.Add) {\r\n this.mapFieldsToValue(data);\r\n }\r\n this._entityTemp = { ...this._entityTemp, ...data };\r\n\r\n this.fieldChangeOutput.emit(\r\n new DynamicFormFieldChangeOutput({\r\n field: field.field,\r\n value: field.value,\r\n event: field.event,\r\n formEntity: this.entityTemp, //need this field to access all fields values of the form whenever there is a change in fields\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to change the active tab property of the class whenever a tab is change on form\r\n * @param event\r\n * @private\r\n */\r\n private onChangeTab(event: any): void {\r\n this.activeTabMenuItemsDynamicForm = event?.item;\r\n }\r\n\r\n /**\r\n * This function construct the tab menu base on property groupFieldsId of the fields\r\n * @private\r\n */\r\n private createTabMenu() {\r\n const tabGroups = this.fields.map((field) => {\r\n return field.groupFieldsId;\r\n });\r\n const tabGroupsUnique: string[] = this.arrayUtilityService.clone(\r\n Array.from(new Set(tabGroups))\r\n );\r\n\r\n tabGroupsUnique.map((value) => {\r\n this.tabMenuItemsDynamicForm.push({\r\n label: value,\r\n id: value,\r\n command: (event) => this.onChangeTab(event),\r\n });\r\n });\r\n this.activeTabMenuItemsDynamicForm = this.tabMenuItemsDynamicForm[0];\r\n }\r\n}\r\n","\r\n
\r\n 0\" [model]=\"tabMenuItemsDynamicForm\" [activeItem]=\"activeTabMenuItemsDynamicForm\">\r\n\r\n \r\n\r\n\r\n
\r\n
0\">\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { DynamicDirectivesModule, DynamicModule } from 'ng-dynamic-component';\r\nimport { PrgSharedComponentsModule } from '../../../shared-components/shared-components.module';\r\nimport { PrgButtonComponent } from './dynamic-form-actions/actions/button/button.component';\r\nimport { PrgButtonConfigsDirective } from './dynamic-form-actions/actions/button/button.model';\r\nimport { PrgInputSwitchActionComponent } from './dynamic-form-actions/actions/input-switch-action/input-switch-action.component';\r\nimport { PrgSetInputSwitchActionConfigsDirective } from './dynamic-form-actions/actions/input-switch-action/input-switch-action.model';\r\nimport { PrgSelectButtonActionComponent } from './dynamic-form-actions/actions/select-button-action/select-button-action.component';\r\nimport { PrgSetSelectButtonActionConfigsDirective } from './dynamic-form-actions/actions/select-button-action/select-button-action.model';\r\nimport { PrgSpeedDialComponent } from './dynamic-form-actions/actions/speed-dial/speed-dial.component';\r\nimport { PrgSpeedDialConfigsDirective } from './dynamic-form-actions/actions/speed-dial/speed-dial.model';\r\nimport { PrgSplitButtonComponent } from './dynamic-form-actions/actions/split-button/split-button.component';\r\nimport { PrgSplitButtonConfigsDirective } from './dynamic-form-actions/actions/split-button/split-button.model';\r\nimport { PrgToggleButtonActionComponent } from './dynamic-form-actions/actions/toggle-button-action/toggle-button-action.component';\r\nimport { PrgSetToggleButtonActionConfigsDirective } from './dynamic-form-actions/actions/toggle-button-action/toggle-button-action.model';\r\nimport { PrgDynamicFormActionComponent } from './dynamic-form-actions/prg-dynamic-form-action.component';\r\nimport { PrgAutoCompleteComponent } from './dynamic-form-fields/fields/auto-complete/auto-complete.component';\r\nimport { PrgSetAutoCompleteConfigsDirective } from './dynamic-form-fields/fields/auto-complete/auto-complete.model';\r\nimport { PrgCascadeSelectComponent } from './dynamic-form-fields/fields/cascade-select/cascade-select..component';\r\nimport { PrgSetCascadeSelectConfigsDirective } from './dynamic-form-fields/fields/cascade-select/cascade-select..model';\r\nimport { PrgCheckboxComponent } from './dynamic-form-fields/fields/checkbox/checkbox.component';\r\nimport { PrgSetCheckboxConfigsDirective } from './dynamic-form-fields/fields/checkbox/checkbox.model';\r\nimport { PrgChipsComponent } from './dynamic-form-fields/fields/chips/chips.component';\r\nimport { PrgSetChipsConfigsDirective } from './dynamic-form-fields/fields/chips/chips.model';\r\nimport { PrgColorPickerComponent } from './dynamic-form-fields/fields/color-picker/color-picker.component';\r\nimport { PrgSetColorPickerConfigsDirective } from './dynamic-form-fields/fields/color-picker/color-picker.model';\r\nimport { PrgDateTimeComponent } from './dynamic-form-fields/fields/input-date-time/date-time.component';\r\nimport { PrgSetDateTimeConfigsDirective } from './dynamic-form-fields/fields/input-date-time/date-time.model';\r\nimport { PrgInputMaskComponent } from './dynamic-form-fields/fields/input-mask/input-mask.component';\r\nimport { PrgSetInputMaskConfigsDirective } from './dynamic-form-fields/fields/input-mask/input-mask.model';\r\nimport { PrgInputNumberComponent } from './dynamic-form-fields/fields/input-number/input-number.component';\r\nimport { PrgSetInputNumberConfigsDirective } from './dynamic-form-fields/fields/input-number/input-number.model';\r\nimport { PrgInputSwitchComponent } from './dynamic-form-fields/fields/input-switch/input-switch.component';\r\nimport { PrgSetInputSwitchConfigsDirective } from './dynamic-form-fields/fields/input-switch/input-switch.model';\r\nimport { PrgInputTextAreaComponent } from './dynamic-form-fields/fields/input-text-area/input-text-area.component';\r\nimport { PrgInputTextComponent } from './dynamic-form-fields/fields/input-text/input-text.component';\r\nimport { PrgKnobComponent } from './dynamic-form-fields/fields/knob/knob.component';\r\nimport { PrgSetKnobConfigsDirective } from './dynamic-form-fields/fields/knob/knob.model';\r\nimport { PrgListBoxComponent } from './dynamic-form-fields/fields/list-box/list-box.component';\r\nimport { PrgSetListBoxConfigsDirective } from './dynamic-form-fields/fields/list-box/list-box.model';\r\nimport { PrgMultiSelectComponent } from './dynamic-form-fields/fields/multiselect/multi-select.component';\r\nimport { PrgSetMultiselectConfigsDirective } from './dynamic-form-fields/fields/multiselect/multi-select.model';\r\nimport { PrgPasswordComponent } from './dynamic-form-fields/fields/password/password.component';\r\nimport { PrgSetInputPasswordConfigsDirective } from './dynamic-form-fields/fields/password/password.model';\r\nimport { PrgRadioButtonComponent } from './dynamic-form-fields/fields/radio-button/radio-button.component';\r\nimport { PrgSetRadioButtonConfigsDirective } from './dynamic-form-fields/fields/radio-button/radio-button.model';\r\nimport { PrgRatingComponent } from './dynamic-form-fields/fields/rating/rating.component';\r\nimport { PrgSetRatingConfigsDirective } from './dynamic-form-fields/fields/rating/rating.model';\r\nimport { PrgSelectButtonComponent } from './dynamic-form-fields/fields/select-button/select-button.component';\r\nimport { PrgSetSelectButtonConfigsDirective } from './dynamic-form-fields/fields/select-button/select-button.model';\r\nimport { PrgSelectComponent } from './dynamic-form-fields/fields/select/select.component';\r\nimport { PrgSetSelectConfigsDirective } from './dynamic-form-fields/fields/select/select.model';\r\nimport { PrgSliderComponent } from './dynamic-form-fields/fields/slider/slider.component';\r\nimport { PrgSetSliderConfigsDirective } from './dynamic-form-fields/fields/slider/slider.model';\r\nimport { PrgToggleButtonComponent } from './dynamic-form-fields/fields/toggle-button/toggle-button.component';\r\nimport { PrgSetToggleButtonConfigsDirective } from './dynamic-form-fields/fields/toggle-button/toggle-button.model';\r\nimport { PrgTriStateCheckboxComponent } from './dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.component';\r\nimport { PrgSetTriStateCheckboxConfigsDirective } from './dynamic-form-fields/fields/tri-state-checkbox/tri-state-checkbox.model';\r\nimport { PrgDynamicFormFieldComponent } from './dynamic-form-fields/prg-dynamic-form-field.component';\r\nimport { PrgDynamicFormComponent } from './prg-dynamic-form.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrgDynamicFormComponent,\r\n PrgDynamicFormFieldComponent,\r\n PrgDynamicFormActionComponent,\r\n PrgSetDateTimeConfigsDirective,\r\n PrgSetRadioButtonConfigsDirective,\r\n PrgSetSelectButtonConfigsDirective,\r\n PrgSetSliderConfigsDirective,\r\n PrgSetColorPickerConfigsDirective,\r\n PrgSetAutoCompleteConfigsDirective,\r\n PrgSetInputSwitchConfigsDirective,\r\n PrgSetKnobConfigsDirective,\r\n PrgSetCheckboxConfigsDirective,\r\n PrgSetInputNumberConfigsDirective,\r\n PrgSetTriStateCheckboxConfigsDirective,\r\n PrgSetCascadeSelectConfigsDirective,\r\n PrgSetRatingConfigsDirective,\r\n PrgSetInputMaskConfigsDirective,\r\n PrgSetSelectConfigsDirective,\r\n PrgSetInputPasswordConfigsDirective,\r\n PrgSetMultiselectConfigsDirective,\r\n PrgSetChipsConfigsDirective,\r\n PrgSetToggleButtonConfigsDirective,\r\n PrgSetListBoxConfigsDirective,\r\n PrgListBoxComponent,\r\n PrgInputNumberComponent,\r\n PrgSelectComponent,\r\n PrgToggleButtonComponent,\r\n PrgChipsComponent,\r\n PrgRatingComponent,\r\n PrgRadioButtonComponent,\r\n PrgAutoCompleteComponent,\r\n PrgInputSwitchComponent,\r\n PrgKnobComponent,\r\n PrgCascadeSelectComponent,\r\n PrgTriStateCheckboxComponent,\r\n PrgColorPickerComponent,\r\n PrgSliderComponent,\r\n PrgDateTimeComponent,\r\n PrgSelectButtonComponent,\r\n PrgInputMaskComponent,\r\n PrgInputTextComponent,\r\n PrgMultiSelectComponent,\r\n PrgPasswordComponent,\r\n PrgButtonComponent,\r\n PrgButtonConfigsDirective,\r\n PrgSplitButtonComponent,\r\n PrgSplitButtonConfigsDirective,\r\n PrgSpeedDialComponent,\r\n PrgSpeedDialConfigsDirective,\r\n PrgSelectButtonActionComponent,\r\n PrgSetSelectButtonActionConfigsDirective,\r\n PrgToggleButtonActionComponent,\r\n PrgSetToggleButtonActionConfigsDirective,\r\n PrgInputSwitchActionComponent,\r\n PrgSetInputSwitchActionConfigsDirective,\r\n PrgCheckboxComponent,\r\n PrgInputTextAreaComponent,\r\n ],\r\n imports: [\r\n PrgSharedComponentsModule,\r\n DynamicModule,\r\n DynamicDirectivesModule,\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n PrgDynamicFormComponent,\r\n PrgInputTextComponent,\r\n PrgInputNumberComponent,\r\n PrgDynamicFormFieldComponent,\r\n PrgSelectComponent,\r\n PrgDateTimeComponent,\r\n PrgSetSelectConfigsDirective,\r\n PrgCheckboxComponent,\r\n PrgInputTextAreaComponent,\r\n PrgCascadeSelectComponent,\r\n ],\r\n})\r\nexport class PrgCoreDynamicFormModule {}\r\n","export enum ToolbarSlot {\r\n Left = 'left',\r\n Right = 'right',\r\n Center = 'center',\r\n}\r\n","import {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../core/components/dynamic-form/models/base-action';\r\nimport { ActionName } from '../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ToolbarSlot } from '../../core/components/dynamic-form/models/constants/toolbar-slots';\r\n\r\n/**\r\n * Constant that defines the fields and actions for the dynamic form config items\r\n */\r\nexport const CONFIG_ITEMS_DYNAMIC_FORM = {\r\n fields: [],\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],\r\n};\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TreeNode } from 'primeng/api';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { CONFIG_ITEMS_DYNAMIC_FORM } from '../../dynamic-form-structure/config-items-dynamic-form';\r\nimport {\r\n ConfigItemsPath,\r\n ConfigurationItem,\r\n} from '../../models/configuration-item.model';\r\nimport { AbstractConfigurationItemsService } from '../../services/configuration-items/abstract-configuration-items.service';\r\n\r\n/**\r\n * Config items admin component\r\n */\r\n@Component({\r\n selector: 'prg-config-items-admin',\r\n templateUrl: './prg-config-items-admin.component.html',\r\n styleUrls: ['./prg-config-items-admin.component.scss'],\r\n})\r\nexport class PrgConfigItemsAdminComponent implements OnInit {\r\n /**\r\n * The structure of the tree including paths and data\r\n * @type {TreeNode[]}\r\n */\r\n public configItemsTree: TreeNode[];\r\n\r\n /**\r\n * The current selected node of the tree\r\n * @type {TreeNode}\r\n */\r\n public selectedNode: TreeNode;\r\n\r\n /**\r\n * The view mode type of the form. Default is \"read\"\r\n * @type {ViewMode}\r\n */\r\n public configItemsViewMode: ViewMode = ViewMode.Read;\r\n\r\n /**\r\n * A boolean property of the class to show/hide form. Default is false(hide)\r\n * @type {boolean}\r\n */\r\n public initForm: boolean = false;\r\n\r\n /**\r\n * An object with the data to build form , keys and values\r\n * @type {any}\r\n */\r\n public entityConfigItems: any = {};\r\n\r\n /**\r\n * The title of the form of configuration item\r\n * @type {string}\r\n */\r\n public titleForm: string;\r\n\r\n /**\r\n * The dynamic form fields to build dynamic form config items in template\r\n */\r\n public configItemsDynamicFormFields: any[] = this.arrayUtilityService.clone(\r\n CONFIG_ITEMS_DYNAMIC_FORM.fields\r\n );\r\n\r\n /**\r\n * The dynamic form actions to build dynamic form config items in template\r\n */\r\n public configItemsDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(CONFIG_ITEMS_DYNAMIC_FORM.actions);\r\n /**\r\n * A copy of entityConfigItems object\r\n * @type {any}\r\n * @private\r\n */\r\n private entityConfigItemCopy: any = {};\r\n\r\n /**\r\n * The list of configuration items\r\n * @type {ConfigurationItem[]}\r\n */\r\n private configItemsList: ConfigurationItem[] = [];\r\n\r\n /**\r\n * The configuration items defaults selected on tree\r\n * @type {ConfigurationItem[]}\r\n */\r\n private configItemsSelectedDefaults: ConfigurationItem[] = [];\r\n\r\n /**\r\n * The configuration items selected on tree\r\n * @type {ConfigurationItem[]}\r\n */\r\n private configItemsSelected: ConfigurationItem[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractConfigurationItemsService} configurationItemsService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {UtilityService} utilityService\r\n * @param {TranslateService} translateService\r\n * @param {ObjectsUtilityService} objectUtility\r\n */\r\n constructor(\r\n private configurationItemsService: AbstractConfigurationItemsService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private utilityService: UtilityService,\r\n private translateService: TranslateService,\r\n private objectUtility: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Get all configuration item\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit(): Promise {\r\n //fetch all configuration items\r\n this.configItemsList =\r\n await this.configurationItemsService.getAllConfigurationItemsAsync();\r\n this.setTreeData();\r\n }\r\n\r\n /**\r\n * This function call rearrange all config item paths and build tree menu\r\n * @private\r\n */\r\n private setTreeData(): void {\r\n //get only the path of all configuration items\r\n const configItemsPath: string[] = this.configItemsList.map(\r\n (configItem) => configItem.path\r\n );\r\n\r\n //Build tree\r\n this.configItemsTree = this.arrayUtilityService.clone(\r\n this.utilityService.arrayOfPathsToTree(configItemsPath, ':')\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible toe execute actions whenever a node is selected on tree\r\n * @param {TreeNode} node\r\n */\r\n public onSelectItem(node: TreeNode): void {\r\n // Return View mode back to read\r\n this.configItemsViewMode = ViewMode.Read;\r\n // Set config items selected\r\n this.setConfigItemsSelected(node);\r\n //Dynamic Form Fields\r\n this.configItemsDynamicFormFields = this.arrayUtilityService.clone(\r\n this.getAndParseGuiSettingsItems()\r\n );\r\n // Assign config item data to form - entities\r\n this.assignConfigItemDataToForm();\r\n // Title of Form\r\n this.setTitleForm();\r\n\r\n //Initiate Form\r\n this.initForm = true;\r\n }\r\n\r\n /**\r\n * This function is responsible to get the complete path of item selected and their default path if\r\n * they exist. Then it will get the data of config items selected\r\n * @param {TreeNode} node\r\n * @private\r\n */\r\n private setConfigItemsSelected(node: TreeNode): void {\r\n const pathConfigItem =\r\n PrgConfigItemsAdminComponent.getCompletePathOfItem(node);\r\n\r\n // Path of default config-items\r\n const pathConfigItemDefaults =\r\n pathConfigItem.substring(0, pathConfigItem.lastIndexOf(':')) +\r\n ':' +\r\n ConfigItemsPath.Defaults;\r\n\r\n // Config-items of the selectable node\r\n this.configItemsSelected = this.configItemsList.filter(\r\n (configItem) => configItem.path === pathConfigItem\r\n );\r\n\r\n // Config-items Defaults of the selectable node\r\n this.configItemsSelectedDefaults = this.configItemsList.filter(\r\n (configItem) => configItem.path === pathConfigItemDefaults\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to get the complete path of the item in tree\r\n * @param {TreeNode} node\r\n * @returns {string}\r\n * @private\r\n */\r\n private static getCompletePathOfItem(node: TreeNode): string {\r\n // Find the complete path of the item\r\n const completePathItem: any[] = [];\r\n let flag = true;\r\n let parent = node?.parent;\r\n while (flag == true) {\r\n if (parent) {\r\n completePathItem.unshift(parent.label);\r\n parent = parent?.parent;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n completePathItem.push(node?.label);\r\n return completePathItem.join(':');\r\n }\r\n\r\n /**\r\n * This function it will set the title of the form\r\n * @private\r\n */\r\n private setTitleForm(): void {\r\n // Title of Form\r\n if (this.entityConfigItems.path.includes(ConfigItemsPath.UserPreferences)) {\r\n this.titleForm = this.entityConfigItems.path\r\n .substring(0, this.entityConfigItems.path.lastIndexOf(':'))\r\n .replaceAll(':', '.')\r\n .toLowerCase();\r\n } else {\r\n this.titleForm = this.entityConfigItems?.path\r\n .replaceAll(':', '.')\r\n .toLowerCase();\r\n }\r\n }\r\n\r\n /**\r\n * This function will assign config items data to form\r\n * @private\r\n */\r\n private assignConfigItemDataToForm(): void {\r\n // Assign config item data to form - entities\r\n const mapConfigItemsIntoEntity: any[] = [];\r\n this.configItemsSelected.map((configItems) => {\r\n mapConfigItemsIntoEntity[configItems.name] = configItems.value;\r\n mapConfigItemsIntoEntity['path'] = configItems.path;\r\n });\r\n\r\n if (\r\n this.configItemsSelectedDefaults != null &&\r\n this.configItemsSelectedDefaults.length > 0\r\n ) {\r\n this.configItemsSelectedDefaults.map(async (configItems) => {\r\n if (!mapConfigItemsIntoEntity[configItems.name]) {\r\n mapConfigItemsIntoEntity[configItems.name] = null;\r\n }\r\n let fieldGuiSettings = this.configItemsDynamicFormFields.find(\r\n (value) => value.key === configItems.name\r\n );\r\n\r\n if (fieldGuiSettings.basePathTranslation.includes('lookup-tables')) {\r\n fieldGuiSettings.placeholder =\r\n this.translateService.instant(\r\n fieldGuiSettings.basePathTranslation +\r\n '.' +\r\n fieldGuiSettings.key +\r\n '.items.' +\r\n configItems.value +\r\n '.name'\r\n ) + ' (default)';\r\n } else {\r\n fieldGuiSettings.placeholder = configItems.value + ' (default)';\r\n }\r\n });\r\n }\r\n this.entityConfigItems = Object.assign({}, mapConfigItemsIntoEntity);\r\n this.entityConfigItemCopy = this.objectUtility.cloneObject(\r\n this.entityConfigItems\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to get the gui settings of the item selected and parse it\r\n * @returns {any}\r\n * @private\r\n */\r\n private getAndParseGuiSettingsItems(): any {\r\n //Gui Settings\r\n let guiSettings;\r\n\r\n if (\r\n this.configItemsSelectedDefaults == null ||\r\n this.configItemsSelectedDefaults.length == 0\r\n ) {\r\n guiSettings = this.configItemsSelected.map((configItem) => {\r\n return this.utilityService.guiSettingToObject(configItem.guiSettings);\r\n });\r\n } else {\r\n guiSettings = this.configItemsSelectedDefaults.map((configItem) => {\r\n return this.utilityService.guiSettingToObject(configItem.guiSettings);\r\n });\r\n if (this.selectedNode.key.includes(ConfigItemsPath.Defaults)) {\r\n guiSettings.forEach((gui) => {\r\n gui.validators = Validators.required;\r\n });\r\n }\r\n }\r\n return guiSettings;\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions from the dynamic config items form\r\n * @param {DynamicFormActionOutput} event\r\n * @returns {Promise}\r\n */\r\n public async onActionConfigItems(\r\n event: DynamicFormActionOutput\r\n ): Promise {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n await this.configItemsSave(event);\r\n break;\r\n\r\n case BaseActionKey.Cancel:\r\n this.configItemsViewMode = ViewMode.Read;\r\n this.entityConfigItems = this.objectUtility.cloneObject(\r\n this.entityConfigItemCopy\r\n );\r\n\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.configItemsViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * This function is responsible to save a new config item or update an existing one\r\n * @param {DynamicFormActionOutput} event\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async configItemsSave(event: DynamicFormActionOutput): Promise {\r\n this.configItemsViewMode = ViewMode.Read;\r\n\r\n try {\r\n this.initForm = false;\r\n await this.configurationItemsService.updateConfigurationItemsAsync(\r\n event.formEntity\r\n );\r\n this.configItemsList = this.arrayUtilityService.clone(\r\n this.configurationItemsService.getConfigurationItemsValue()\r\n );\r\n\r\n this.setTreeData();\r\n if (this.selectedNode) {\r\n this.onSelectItem(this.selectedNode);\r\n }\r\n this.initForm = true;\r\n } catch (e) {}\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n

{{titleForm + '.label'|translate|uppercase}}

\r\n\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { User } from '../../../auth/models/user.model';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { CONFIG_ITEMS_DYNAMIC_FORM } from '../../dynamic-form-structure/config-items-dynamic-form';\r\nimport { ConfigurationItem } from '../../models/configuration-item.model';\r\nimport { AbstractConfigurationItemsService } from '../../services/configuration-items/abstract-configuration-items.service';\r\n\r\n/**\r\n * Config items user component\r\n */\r\n@Component({\r\n selector: 'prg-config-items-user',\r\n templateUrl: './prg-config-items-user.component.html',\r\n styleUrls: ['./prg-config-items-user.component.scss'],\r\n})\r\nexport class PrgConfigItemsUserComponent implements OnInit {\r\n /**\r\n * The view mode type of the form. Default is \"read\"\r\n * @type {ViewMode}\r\n */\r\n public configItemsViewMode: ViewMode = ViewMode.Read;\r\n\r\n /**\r\n * The complete path for the config item user-preferences defaults\r\n * @type {string}\r\n */\r\n @Input() configItemUserPreferencesDefaultsPath =\r\n 'Config-Items:User-Preferences:';\r\n\r\n /**\r\n * A boolean property of the class to show/hide form. Default is false(hide)\r\n * @type {boolean}\r\n */\r\n public initForm: boolean = false;\r\n\r\n /**\r\n * An object with the data to build form , keys and values\r\n * @type {any}\r\n */\r\n public entityConfigItems: any = {};\r\n\r\n /**\r\n * The title of the form of configuration item\r\n * @type {string}\r\n */\r\n public titleForm: string;\r\n\r\n /**\r\n * The dynamic form fields to build dynamic form config items in template\r\n */\r\n public configItemsDynamicFormFields: any[] = this.arrayUtilityService.clone(\r\n CONFIG_ITEMS_DYNAMIC_FORM.fields\r\n );\r\n\r\n /**\r\n * The dynamic form actions to build dynamic form config items in template\r\n */\r\n public configItemsDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(CONFIG_ITEMS_DYNAMIC_FORM.actions);\r\n /**\r\n * A copy of entityConfigItems object\r\n * @type {any}\r\n * @private\r\n */\r\n private entityConfigItemCopy: any = {};\r\n\r\n /**\r\n * User and defaults config items\r\n * @type {any}\r\n */\r\n public userAndDefaultsConfigsItems: any = {};\r\n\r\n /**\r\n * Current logged User\r\n * @type {User}\r\n */\r\n public loggedUser: User;\r\n\r\n /**\r\n * The path of user preferences for the current logged user\r\n * @type {string}\r\n */\r\n public configItemUserPath: string;\r\n\r\n /**\r\n * The configuration items defaults of user preferences\r\n * @type {ConfigurationItem[]}\r\n * @private\r\n */\r\n private configItemsUserPreferencesDefaults: ConfigurationItem[] = [];\r\n /**\r\n * The configuration items of user preferences of current user\r\n * @type {ConfigurationItem[]}\r\n * @private\r\n */\r\n private configItemsUserPreferences: ConfigurationItem[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractConfigurationItemsService} configurationItemsService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {UtilityService} utilityService\r\n * @param {TranslateService} translateService\r\n * @param {ObjectsUtilityService} objectUtility\r\n * @param {AbstractAuthService} authService\r\n */\r\n constructor(\r\n private configurationItemsService: AbstractConfigurationItemsService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private utilityService: UtilityService,\r\n private translateService: TranslateService,\r\n private objectUtility: ObjectsUtilityService,\r\n private authService: AbstractAuthService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Get configuration items User Preferences and settings to initiate the template\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit() {\r\n this.userAndDefaultsConfigsItems =\r\n await this.configurationItemsService.getConfigurationItemsByPathAsync(\r\n this.configItemUserPreferencesDefaultsPath\r\n );\r\n this.configItemsUserPreferencesDefaults = this.objectUtility.cloneObject(\r\n this.userAndDefaultsConfigsItems.defaults\r\n );\r\n\r\n await this.getConfigItemsUserPreferencesByLoggedUser();\r\n\r\n this.configItemsDynamicFormFields = this.arrayUtilityService.clone(\r\n this.getAndParseGuiSettingsItems()\r\n );\r\n this.assignConfigItemDataToForm();\r\n\r\n this.setTitleForm();\r\n //Initiate Form\r\n this.initForm = true;\r\n }\r\n\r\n /**\r\n * This function is responsible to get Config Items regarding user logged\r\n * @returns {Promise}\r\n */\r\n public async getConfigItemsUserPreferencesByLoggedUser() {\r\n this.loggedUser = this.objectUtility.cloneObject(\r\n this.authService.getLoggedUser()\r\n );\r\n this.configItemUserPath =\r\n this.configItemUserPreferencesDefaultsPath + this.loggedUser?.email;\r\n\r\n this.configItemsUserPreferences = this.objectUtility.cloneObject(\r\n this.userAndDefaultsConfigsItems.user\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to get the gui settings of config item and parse it\r\n * @returns {any}\r\n * @private\r\n */\r\n private getAndParseGuiSettingsItems(): any {\r\n //Gui Settings\r\n let guiSettings;\r\n\r\n if (\r\n this.configItemsUserPreferencesDefaults != null &&\r\n this.configItemsUserPreferencesDefaults.length > 0\r\n ) {\r\n guiSettings = this.configItemsUserPreferencesDefaults.map(\r\n (configItem) => {\r\n return this.utilityService.guiSettingToObject(configItem.guiSettings);\r\n }\r\n );\r\n } else {\r\n guiSettings = [];\r\n }\r\n return guiSettings;\r\n }\r\n\r\n /**\r\n * This function will assign config items data to form\r\n * @private\r\n */\r\n private assignConfigItemDataToForm(): void {\r\n // Assign config item data to form - entities\r\n const mapConfigItemsIntoEntity: any[] = [];\r\n this.configItemsUserPreferences.map((configItems) => {\r\n mapConfigItemsIntoEntity[configItems.name] = configItems.value;\r\n });\r\n\r\n if (\r\n this.configItemsUserPreferencesDefaults != null &&\r\n this.configItemsUserPreferencesDefaults.length > 0\r\n ) {\r\n this.configItemsUserPreferencesDefaults.map(async (configItems) => {\r\n if (!mapConfigItemsIntoEntity[configItems.name]) {\r\n mapConfigItemsIntoEntity[configItems.name] = null;\r\n }\r\n let fieldGuiSettings = this.configItemsDynamicFormFields.find(\r\n (value) => value.key === configItems.name\r\n );\r\n\r\n if (fieldGuiSettings.basePathTranslation.includes('lookup-tables')) {\r\n fieldGuiSettings.placeholder =\r\n this.translateService.instant(\r\n fieldGuiSettings.basePathTranslation +\r\n '.' +\r\n fieldGuiSettings.key +\r\n '.items.' +\r\n configItems.value +\r\n '.name'\r\n ) + ' (default)';\r\n } else {\r\n fieldGuiSettings.placeholder = configItems.value + ' (default)';\r\n }\r\n });\r\n }\r\n mapConfigItemsIntoEntity['path'] = this.configItemUserPath;\r\n this.entityConfigItems = Object.assign({}, mapConfigItemsIntoEntity);\r\n this.entityConfigItemCopy = this.objectUtility.cloneObject(\r\n this.entityConfigItems\r\n );\r\n }\r\n\r\n /**\r\n * This function will set the title of the form\r\n * @private\r\n */\r\n private setTitleForm(): void {\r\n // Title of Form\r\n if (this.entityConfigItems.path) {\r\n this.titleForm = this.entityConfigItems.path\r\n .substring(0, this.entityConfigItems.path.lastIndexOf(':'))\r\n .replaceAll(':', '.')\r\n .toLowerCase();\r\n }\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions from the dynamic config items form\r\n * @param {DynamicFormActionOutput} event\r\n * @returns {Promise}\r\n */\r\n public async onActionConfigItems(\r\n event: DynamicFormActionOutput\r\n ): Promise {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n await this.configItemsSave(event);\r\n break;\r\n\r\n case BaseActionKey.Cancel:\r\n this.configItemsViewMode = ViewMode.Read;\r\n this.entityConfigItems = this.objectUtility.cloneObject(\r\n this.entityConfigItemCopy\r\n );\r\n\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.configItemsViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * This function is responsible to save a new config item or update an existing one\r\n * @param {DynamicFormActionOutput} event\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async configItemsSave(event: DynamicFormActionOutput): Promise {\r\n this.configItemsViewMode = ViewMode.Read;\r\n\r\n try {\r\n this.initForm = false;\r\n await this.configurationItemsService.updateConfigurationItemsAsync(\r\n event.formEntity\r\n );\r\n this.configItemsUserPreferences = this.arrayUtilityService.clone(\r\n this.configurationItemsService\r\n .getConfigurationItemsValue()\r\n .filter((configItem) => configItem.path === this.configItemUserPath)\r\n );\r\n\r\n this.assignConfigItemDataToForm();\r\n\r\n this.initForm = true;\r\n } catch (e) {}\r\n }\r\n}\r\n","
\r\n

{{titleForm + '.label'|translate|uppercase}} {{\" : \"+loggedUser?.name|uppercase}}

\r\n \r\n \r\n
\r\n","import { PrgMenuItem } from '../../models/prg-menu-item';\r\n\r\n/**\r\n * Constant that defines the menu items for user menu\r\n */\r\nexport const USER_MENU_HEADER: PrgMenuItem[] = [\r\n {\r\n id: 'user-menu',\r\n items: [\r\n { separator: true },\r\n {\r\n icon: 'pi pi-user',\r\n id: 'my-account', //Key da tradução\r\n visibleString: '!!this.user',\r\n },\r\n {\r\n icon: 'pi pi-sign-out',\r\n commandString: 'this.onClickLogout',\r\n id: 'logout',\r\n visibleString: '!!this.user',\r\n },\r\n {\r\n icon: 'pi pi-sign-in',\r\n visibleString: '!this.user',\r\n id: 'login',\r\n routerLinkString:\r\n \"['/' + this.authConfig.authRoutingBasePath + '/' + this.authConfig.authRoutingLoginPath,]\",\r\n },\r\n ],\r\n },\r\n];\r\n/**\r\n * Constant that defines the menu items for language menu on header\r\n */\r\n\r\nexport const LANGUAGE_MENU_HEADER: PrgMenuItem[] = [\r\n {\r\n id: 'language-menu',\r\n items: [\r\n { separator: true },\r\n {\r\n id: 'pt',\r\n commandString: '($event) => this.changeLanguage($event.item.id)',\r\n },\r\n {\r\n id: 'en',\r\n commandString: '($event) => this.changeLanguage($event.item.id)',\r\n },\r\n ],\r\n },\r\n];\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { PrgConfigurationItemsConfig } from '../../models/prg-configuration-items-config';\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_CONFIGURATION_ITEMS_CONFIG =\r\n new InjectionToken(\r\n 'PRG_CONFIGURATION_ITEMS_CONFIG'\r\n );\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgAuthConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgConfigurationItemsConfig\r\n */\r\n constructor(\r\n @Inject(PRG_CONFIGURATION_ITEMS_CONFIG)\r\n private prgConfigurationItemsConfig: PrgConfigurationItemsConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { PrgDashboardConfig } from '../../models/prg-dashboard-config';\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_DASHBOARD_CONFIG = new InjectionToken(\r\n 'PRG_DASHBOARD_CONFIG'\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgDashboardConfigurationService {\r\n /**\r\n * Constructor\r\n * @param {PrgDashboardConfig} prgDashboardConfig\r\n */\r\n constructor(\r\n @Inject(PRG_DASHBOARD_CONFIG) private prgDashboardConfig: PrgDashboardConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { PrgLookupTableConfig } from '../../models/prg-lookup-table-config';\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_LOOKUP_TABLE_CONFIG = new InjectionToken(\r\n 'PRG_LOOKUP_TABLE_CONFIG'\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PrgLookupTableConfigurationService {\r\n /**\r\n * constructor\r\n * @param prgLookupTableConfig\r\n */\r\n constructor(\r\n @Inject(PRG_LOOKUP_TABLE_CONFIG)\r\n private prgLookupTableConfig: PrgLookupTableConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport { PrgQueriesConfig } from '../../models/prg-queries-config';\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_QUERIES_CONFIG = new InjectionToken(\r\n 'PRG_QUERIES_CONFIG'\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgQueriesConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgQueriesConfig\r\n */\r\n constructor(\r\n @Inject(PRG_QUERIES_CONFIG) private prgQueriesConfig: PrgQueriesConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\";\r\nimport { PrgRolesScopesConfig } from \"../../models/prg-roles-scopes-config\";\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_ROLES_SCOPES_CONFIG = new InjectionToken(\r\n \"PRG_ROLES_SCOPES_CONFIG\"\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * PrgRolesScopesConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgRolesScopesConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgRolesScopesConfig\r\n */\r\n constructor(\r\n @Inject(PRG_ROLES_SCOPES_CONFIG)\r\n private prgRolesScopesConfig: PrgRolesScopesConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\";\r\nimport { PrgTermsConfig } from \"../../models/prg-terms-config\";\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_TERMS_CONFIG = new InjectionToken(\r\n \"PRG_TERMS_CONFIG\"\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgTermsConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgTermsConfig\r\n */\r\n constructor(\r\n @Inject(PRG_TERMS_CONFIG) private prgTermsConfig: PrgTermsConfig\r\n ) {}\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { PrgAuthConfig } from '../../auth/models/prg-auth-config';\r\nimport { PRG_AUTH_CONFIG } from '../../auth/services/prg-auth-configuration/prg-auth-configuration.service';\r\nimport { PrgConfigurationItemsConfig } from '../../configuration-items/models/prg-configuration-items-config';\r\nimport { PRG_CONFIGURATION_ITEMS_CONFIG } from '../../configuration-items/services/prg-configuration-items-config/prg-configuration-items-config.service';\r\nimport { ArrayUtilityService } from '../../core/services/utility/array-utility.service';\r\nimport { UtilityService } from '../../core/services/utility/utility.service';\r\nimport { PrgDashboardConfig } from '../../dashboard/models/prg-dashboard-config';\r\nimport { PRG_DASHBOARD_CONFIG } from '../../dashboard/services/prg-dashboard-configuration/prg-dashboard-configuration.service';\r\nimport { PrgEntityTypesConfig } from '../../entity-types/models/prg-entity-types-config';\r\nimport { PRG_ENTITY_TYPES_CONFIG } from '../../entity-types/services/entity-types-configuration/prg-entity-types-configuration.service';\r\nimport { PrgLookupTableConfig } from '../../lookup-table/models/prg-lookup-table-config';\r\nimport { PRG_LOOKUP_TABLE_CONFIG } from '../../lookup-table/services/lookup-table-configuration/prg-lookup-table-configuration.service';\r\nimport { PrgQueriesConfig } from '../../queries/models/prg-queries-config';\r\nimport { PRG_QUERIES_CONFIG } from '../../queries/services/prg-queries-configuration/prg-queries-configuration.service';\r\nimport { PrgRolesScopesConfig } from '../../roles-scopes/models/prg-roles-scopes-config';\r\nimport { PRG_ROLES_SCOPES_CONFIG } from '../../roles-scopes/services/roles-scopes-configuration/prg-roles-scopes-configuration.service';\r\nimport { PrgTermsConfig } from '../../terms/models/prg-terms-config';\r\nimport { PRG_TERMS_CONFIG } from '../../terms/services/prg-terms-configuration/prg-terms-configuration.service';\r\nimport { PrgMenuItem } from '../models/prg-menu-item';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * Main Layout Service\r\n */\r\nexport class MainLayoutService {\r\n /**\r\n * Current state of SideBar\r\n */\r\n private sideBarSubject = new BehaviorSubject(null);\r\n\r\n /**\r\n * Show/hide header subject\r\n * @type {BehaviorSubject}\r\n * @private\r\n */\r\n private displayHeaderSubject = new BehaviorSubject(true);\r\n\r\n /**\r\n * constructor\r\n * @param {PrgAuthConfig} authConfig\r\n * @param {PrgEntityTypesConfig} entityTypesConfig\r\n * @param {PrgLookupTableConfig} lookupTableConfig\r\n * @param {PrgQueriesConfig} queriesConfig\r\n * @param {PrgRolesScopesConfig} rolesScopesConfig\r\n * @param {PrgTermsConfig} termsConfig\r\n * @param {PrgDashboardConfig} dashboardConfig\r\n * @param {PrgConfigurationItemsConfig} configItemsConfig\r\n * @param {ArrayUtilityService} arrayUtility\r\n * @param {TranslateService} translateService\r\n * @param {UtilityService} utilityService\r\n */\r\n constructor(\r\n @Inject(PRG_AUTH_CONFIG) private authConfig: PrgAuthConfig,\r\n @Inject(PRG_ENTITY_TYPES_CONFIG)\r\n private entityTypesConfig: PrgEntityTypesConfig,\r\n @Inject(PRG_LOOKUP_TABLE_CONFIG)\r\n private lookupTableConfig: PrgLookupTableConfig,\r\n @Inject(PRG_QUERIES_CONFIG)\r\n private queriesConfig: PrgQueriesConfig,\r\n @Inject(PRG_ROLES_SCOPES_CONFIG)\r\n private rolesScopesConfig: PrgRolesScopesConfig,\r\n @Inject(PRG_TERMS_CONFIG)\r\n private termsConfig: PrgTermsConfig,\r\n @Inject(PRG_CONFIGURATION_ITEMS_CONFIG)\r\n private configItemsConfig: PrgConfigurationItemsConfig,\r\n @Inject(PRG_DASHBOARD_CONFIG)\r\n private dashboardConfig: PrgDashboardConfig,\r\n private arrayUtility: ArrayUtilityService,\r\n private translateService: TranslateService,\r\n private utilityService: UtilityService\r\n ) {}\r\n\r\n /**\r\n * Setter for sideBarSubject\r\n * @param value\r\n */\r\n public setSideBarState(value: any): void {\r\n this.sideBarSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for sideBarSubject\r\n *\r\n * @returns The sideBarSubject as an observable\r\n */\r\n public getSideBarStateObservable(): Observable {\r\n return this.sideBarSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for sideBarSubject\r\n *\r\n * @returns The sideBarSubject current value\r\n */\r\n public getSideBarStateValue(): any {\r\n return this.sideBarSubject.getValue();\r\n }\r\n\r\n /**\r\n * Setter for displayHeaderSubject\r\n * @param value\r\n */\r\n public setDisplayHeaderState(value: boolean): void {\r\n this.displayHeaderSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for displayHeaderSubject\r\n *\r\n * @returns The sideBarSubject as an observable\r\n */\r\n public getDisplayHeaderStateObservable(): Observable {\r\n return this.displayHeaderSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for displayHeaderSubject\r\n *\r\n * @returns The sideBarSubject current value\r\n */\r\n public getDisplayHeaderStateValue(): any {\r\n return this.displayHeaderSubject.getValue();\r\n }\r\n /**\r\n\r\n /**\r\n * Function responsible to complete sidebar menu with labels of selected language\r\n * @param {PrgMenuItem[]} mainMenu\r\n * @param {boolean} mainMenuExpanded\r\n * @returns {Promise}\r\n */\r\n public async getSideBarMenuItemsWithLabelsAsync(\r\n mainMenu: PrgMenuItem[],\r\n mainMenuExpanded: boolean\r\n ): Promise {\r\n let sideBarMenuItems: PrgMenuItem[] = this.arrayUtility.clone(mainMenu);\r\n\r\n sideBarMenuItems.map(async (item) => {\r\n if (item.id) {\r\n if (mainMenuExpanded) {\r\n item.label = await this.translateService\r\n .get('components.sidebar.' + item.id + '.label')\r\n .toPromise();\r\n } else {\r\n if (!item.items) {\r\n item.tooltipOptions = {\r\n tooltipLabel: await this.translateService\r\n .get('components.sidebar.' + item.id + '.label')\r\n .toPromise(),\r\n };\r\n }\r\n }\r\n }\r\n if (item.items) {\r\n if (!mainMenuExpanded) {\r\n item.items.unshift({\r\n separator: true,\r\n });\r\n item.items.unshift({\r\n label: await this.translateService\r\n .get('components.sidebar.' + item.id + '.label')\r\n .toPromise(),\r\n style: {\r\n 'pointer-events': 'none',\r\n 'font-weight': 'bold',\r\n },\r\n });\r\n }\r\n item.items.map(async (itemChildren) => {\r\n if (itemChildren.id) {\r\n itemChildren.label = await this.translateService\r\n .get(\r\n 'components.sidebar.' +\r\n item.id +\r\n '.' +\r\n itemChildren.id +\r\n '.label'\r\n )\r\n .toPromise();\r\n }\r\n });\r\n }\r\n });\r\n return Promise.all(sideBarMenuItems);\r\n }\r\n\r\n /**\r\n * Function responsible to complete header menus (user and language) with labels of selected language\r\n * @param {PrgMenuItem[]} menuItem\r\n * @returns {Promise}\r\n */\r\n public async getHeaderMenuItemsWithLabelsAsync(\r\n menuItem: PrgMenuItem[]\r\n ): Promise {\r\n let menuItemWithLabels: MenuItem[] = this.arrayUtility.clone(menuItem);\r\n if (menuItem[0].id) {\r\n menuItemWithLabels[0].label = await this.translateService\r\n .get('components.header.' + menuItem[0].id + '.label')\r\n .toPromise();\r\n }\r\n menuItem[0].items.map(async (item, index) => {\r\n if (item.id) {\r\n menuItemWithLabels[0].items[index].label = await this.translateService\r\n .get('components.header.' + menuItem[0].id + '.' + item.id + '.label')\r\n .toPromise();\r\n }\r\n });\r\n return Promise.all(menuItemWithLabels);\r\n }\r\n\r\n /**\r\n * Function responsible to handle auxiliary string properties of menu type PrgMenuItem\r\n * @param {PrgMenuItem[]} menuItems\r\n * @param context\r\n * @returns {PrgMenuItem[]}\r\n */\r\n public mapMenuItemsHelpers(\r\n menuItems: PrgMenuItem[],\r\n context: any\r\n ): PrgMenuItem[] {\r\n let menuItemsWithHelpersMapped = this.arrayUtility.clone(menuItems);\r\n menuItemsWithHelpersMapped.map((items, mainIndex) => {\r\n if (items.commandString) {\r\n items.command = this.utilityService.evalFunction(\r\n items.commandString,\r\n context\r\n );\r\n }\r\n if (items.visibleString) {\r\n items.visible = this.utilityService.evalFunction(\r\n items.visibleString,\r\n context\r\n );\r\n }\r\n if (items.routerLinkString) {\r\n items.routerLink = this.utilityService.evalFunction(\r\n items.routerLinkString,\r\n this\r\n );\r\n }\r\n if (menuItemsWithHelpersMapped[mainIndex].items) {\r\n menuItemsWithHelpersMapped[mainIndex].items.forEach((subItems) => {\r\n if (subItems.commandString) {\r\n subItems.command = this.utilityService.evalFunction(\r\n subItems.commandString,\r\n context\r\n );\r\n }\r\n if (subItems.visibleString) {\r\n subItems.visible = this.utilityService.evalFunction(\r\n subItems.visibleString,\r\n context\r\n );\r\n }\r\n if (subItems.routerLinkString) {\r\n subItems.routerLink = this.utilityService.evalFunction(\r\n subItems.routerLinkString,\r\n this\r\n );\r\n }\r\n });\r\n }\r\n });\r\n return menuItemsWithHelpersMapped;\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { User } from '../../../auth/models/user.model';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { PrgMenuItem } from '../../models/prg-menu-item';\r\nimport { MainLayoutService } from '../../services/main-layout.service';\r\nimport {\r\n LANGUAGE_MENU_HEADER,\r\n USER_MENU_HEADER,\r\n} from '../menus-structure/menus-header-structure';\r\n\r\n//TODO: It's missing a way to save user and language preferences (Session / Locale Storage)\r\n/**\r\n * Header Component\r\n */\r\n@Component({\r\n selector: 'prg-header',\r\n templateUrl: './prg-header.component.html',\r\n styleUrls: ['./prg-header.component.scss'],\r\n})\r\nexport class PrgHeaderComponent implements OnInit, OnDestroy {\r\n /**\r\n * Property of the class with type string which bind to menu logo.\r\n */\r\n @Input() imagePathLogo: string = '/assets/images/pragma_h.png';\r\n\r\n /**\r\n * Property of the class with type string which bind to user default image\r\n */\r\n @Input() imagePathUserDefault: string = '/assets/images/Profile_image.jpg';\r\n /**\r\n * Property of the class with type string which bind to user image\r\n */\r\n public imagePathUser: string;\r\n\r\n /**\r\n * Current logged user\r\n * @type {User}\r\n */\r\n public user: User;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * A class property that defines if header is display\r\n * @type {boolean}\r\n */\r\n public displayHeader: boolean = true;\r\n\r\n /**\r\n * Menu Items data of user menu\r\n * @type {PrgMenuItem[]}\r\n */\r\n @Input() public menuItemsUser: PrgMenuItem[] =\r\n this.arrayUtilityService.clone(USER_MENU_HEADER);\r\n\r\n /**\r\n * Menu Items data of language menu\r\n * @type {PrgMenuItem[]}\r\n */\r\n @Input() public menuItemsLanguage: PrgMenuItem[] =\r\n this.arrayUtilityService.clone(LANGUAGE_MENU_HEADER);\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractAuthService} authService\r\n * @param {ObjectsUtilityService} objectUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {TranslateService} translateService\r\n * @param {MainLayoutService} mainLayoutService\r\n */\r\n constructor(\r\n private authService: AbstractAuthService,\r\n private objectUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private translateService: TranslateService,\r\n private mainLayoutService: MainLayoutService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit() {\r\n this.subscription.push(\r\n this.authService.getLoggedUserObservable().subscribe((user) => {\r\n this.user = this.objectUtilityService.cloneObject(user);\r\n\r\n if (this.user && this.user.token !== null) {\r\n this.imagePathUser = this.user.token.imageUrl;\r\n } else {\r\n this.imagePathUser = null;\r\n }\r\n this.initMenuUser();\r\n })\r\n );\r\n\r\n this.subscription.push(\r\n this.mainLayoutService\r\n .getDisplayHeaderStateObservable()\r\n .subscribe((display) => {\r\n this.displayHeader = display;\r\n })\r\n );\r\n\r\n await this.initMenuLanguage();\r\n }\r\n\r\n /**\r\n * Function responsible to reload menu data when user change language\r\n * @param {string} lang\r\n * @returns {Promise}\r\n */\r\n public async changeLanguage(lang: string) {\r\n this.translateService.use(lang);\r\n await this.initMenuLanguage();\r\n await this.initMenuUser();\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe the user logged observable\r\n */\r\n public ngOnDestroy(): void {\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n this.subscription = [];\r\n }\r\n\r\n /**\r\n * This method is responsible for calling the functions that will build the language menu\r\n * @returns {Promise}\r\n */\r\n public async initMenuLanguage() {\r\n this.menuItemsLanguage = this.arrayUtilityService.clone(\r\n this.mainLayoutService.mapMenuItemsHelpers(this.menuItemsLanguage, this)\r\n );\r\n this.menuItemsLanguage = this.arrayUtilityService.clone(\r\n await this.mainLayoutService.getHeaderMenuItemsWithLabelsAsync(\r\n this.menuItemsLanguage\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * This method is responsible for calling the functions that will build the user menu\r\n * @returns {Promise}\r\n */\r\n public async initMenuUser() {\r\n this.menuItemsUser = this.arrayUtilityService.clone(\r\n this.mainLayoutService.mapMenuItemsHelpers(this.menuItemsUser, this)\r\n );\r\n this.menuItemsUser = this.arrayUtilityService.clone(\r\n await this.mainLayoutService.getHeaderMenuItemsWithLabelsAsync(\r\n this.menuItemsUser\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * This method is responsible for calling the function that will log out user\r\n * @returns {Promise}\r\n */\r\n private onClickLogout = async () => {\r\n if (await this.authService.logoutAsync()) {\r\n //TODO Redirect after logout success. Route?\r\n }\r\n };\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { PrgMenuItem } from '../../models/prg-menu-item';\r\n\r\n/**\r\n * Constant that defines the menu items for main menu\r\n */\r\nexport const SIDEBAR_MENU: PrgMenuItem[] = [\r\n {\r\n id: 'home',\r\n icon: 'pi pi-home',\r\n routerLink: [''],\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'auth',\r\n icon: 'pi pi-user',\r\n\r\n items: [\r\n {\r\n icon: 'pi pi-sign-in',\r\n id: 'login',\r\n routerLinkString:\r\n \"['/' + this.authConfig.authRoutingBasePath + '/' + this.authConfig.authRoutingLoginPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n visibleString: '!this.user',\r\n },\r\n {\r\n icon: 'pi pi-book',\r\n id: 'signup',\r\n routerLinkString:\r\n \"['/' + this.authConfig.authRoutingBasePath + '/' + this.authConfig.authRoutingSignupPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n visibleString: '!this.user',\r\n },\r\n {\r\n icon: 'pi pi-key',\r\n id: 'request-pass',\r\n routerLinkString:\r\n \"['/' + this.authConfig.authRoutingBasePath + '/' + this.authConfig.authRoutingRequestPasswordPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n icon: 'pi pi-key',\r\n id: 'reset-pass',\r\n routerLinkString:\r\n \"['/' + this.authConfig.authRoutingBasePath + '/' + this.authConfig.authRoutingResetPasswordPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n ],\r\n },\r\n {\r\n id: 'entity-types',\r\n icon: 'pi pi-database',\r\n routerLinkString: \"['/' + this.entityTypesConfig.entityTypeBasePath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'lookup-table',\r\n icon: 'pi pi-map',\r\n routerLinkString: \"['/' + this.lookupTableConfig.lookupTableBasePath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'queries',\r\n icon: 'pi pi-filter',\r\n routerLinkString: \"['/' + this.queriesConfig.queriesRoutingPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'roles-scopes',\r\n icon: 'pi pi-user-edit',\r\n routerLinkString: \"['/' + this.rolesScopesConfig.rolesScopesBasePath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'terms',\r\n icon: 'pi pi-book',\r\n routerLinkString: \"['/' + this.termsConfig.termsOfUseRoutingPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n id: 'config-items',\r\n icon: 'pi pi-cog',\r\n\r\n items: [\r\n {\r\n icon: 'pi pi-user-edit',\r\n id: 'admin',\r\n routerLinkString:\r\n \"['/' + this.configItemsConfig.configurationItemsRoutingBasePath + '/' + this.configItemsConfig.configurationItemsRoutingAdminPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n icon: 'pi pi-user',\r\n id: 'user',\r\n routerLinkString:\r\n \"['/' + this.configItemsConfig.configurationItemsRoutingBasePath + '/' + this.configItemsConfig.configurationItemsRoutingUserPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n ],\r\n },\r\n {\r\n id: 'dashboard',\r\n icon: 'pi pi-chart-bar',\r\n\r\n items: [\r\n {\r\n icon: 'pi pi-plus-circle',\r\n id: 'create',\r\n routerLinkString:\r\n \"['/' + this.dashboardConfig.dashboardRoutingBasePath + '/' + this.dashboardConfig.dashboardCreateRoutingPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n icon: 'pi pi-list',\r\n id: 'list',\r\n routerLinkString:\r\n \"['/' + this.dashboardConfig.dashboardRoutingBasePath + '/' + this.dashboardConfig.dashboardListRoutingPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n {\r\n icon: 'pi pi-eye',\r\n id: 'display',\r\n routerLinkString:\r\n \"['/' + this.dashboardConfig.dashboardRoutingBasePath + '/' + this.dashboardConfig.dashboardDisplayRoutingPath]\",\r\n routerLinkActiveOptions: { exact: true },\r\n },\r\n ],\r\n },\r\n];\r\n","import {\r\n animate,\r\n animateChild,\r\n group,\r\n query,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\nimport { User } from '../../../auth/models/user.model';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport { AuthService } from '../../../auth/services/auth/auth.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { PrgMenuItem } from '../../models/prg-menu-item';\r\nimport { MainLayoutService } from '../../services/main-layout.service';\r\nimport { SIDEBAR_MENU } from '../menus-structure/sidebar-menu-structure';\r\n\r\n//TODO: It's missing a way to save user and language preferences (Session / Locale Storage)\r\n/**\r\n * Component decorator\r\n */\r\n@Component({\r\n selector: 'prg-sidebar',\r\n templateUrl: './prg-sidebar.component.html',\r\n styleUrls: ['./prg-sidebar.component.scss'],\r\n //Sidebar Animations\r\n animations: [\r\n trigger('OnExpandSideBar', [\r\n state(\r\n 'open',\r\n style({\r\n width: '100%',\r\n })\r\n ),\r\n state(\r\n 'closed',\r\n style({\r\n width: '70px',\r\n })\r\n ),\r\n transition('open => closed', [\r\n group([\r\n query(':self', [animate('0s')]),\r\n query('@OnExpandSideBarText', [animateChild()]),\r\n ]),\r\n ]),\r\n transition('closed => open', [\r\n group([\r\n query(':self', [animate('0.2s')]),\r\n query('@OnExpandSideBarText', [animateChild()]),\r\n ]),\r\n ]),\r\n ]),\r\n trigger('OnExpandSideBarText', [\r\n // ...\r\n state(\r\n 'show-content',\r\n style({\r\n opacity: '1',\r\n })\r\n ),\r\n state(\r\n 'hide-content',\r\n style({\r\n opacity: '0',\r\n overflow: 'hidden',\r\n })\r\n ),\r\n transition('show-content => hide-content', [animate('0s')]),\r\n transition('hide-content => show-content', [animate('0.2s 0.3s')]),\r\n ]),\r\n ],\r\n})\r\n/**\r\n * Sidebar Component\r\n */\r\nexport class PrgSidebarComponent implements OnInit, OnDestroy {\r\n /**\r\n * The current state of sidebar menu. Expanded is true and collapsed is false.\r\n *\r\n * Default is false.\r\n * @type {boolean}\r\n */\r\n public mainMenuExpanded = false;\r\n /**\r\n * Menu Items data related to the expanded menu\r\n * @type {MenuItem[]}\r\n */\r\n public mainMenu: PrgMenuItem[];\r\n /**\r\n * Menu Items data related to the collapsed menu\r\n * @type {MenuItem[]}\r\n */\r\n public mainMenuIcons: PrgMenuItem[];\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * The original Menu data\r\n * @type {PrgMenuItem[]}\r\n * @private\r\n */\r\n @Input() private mainMenuOriginal: PrgMenuItem[] =\r\n this.arrayUtility.clone(SIDEBAR_MENU);\r\n /**\r\n * Currently log user\r\n * @type {User}\r\n * @private\r\n */\r\n private user: User;\r\n\r\n /**\r\n * Defines if header is displayed or not.\r\n * @type {boolean}\r\n */\r\n public headerDisplay: boolean = true;\r\n\r\n /**\r\n * Constructor\r\n * @param {MainLayoutService} mainLayoutService mainLayoutService\r\n * @param {ArrayUtilityService} arrayUtility\r\n * @param {TranslateService} translateService\r\n * @param {AuthService} authService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n public mainLayoutService: MainLayoutService,\r\n private arrayUtility: ArrayUtilityService,\r\n private translateService: TranslateService,\r\n private authService: AbstractAuthService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * This method is responsible for:\r\n *\r\n * Get the saved state of sidebar in local storage.\r\n *\r\n * Verify if are any changes on language selected through on observable\r\n *\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit(): Promise {\r\n let savedStateSideBar = JSON.parse(\r\n localStorage.getItem('savedStateSideBar')\r\n );\r\n if (savedStateSideBar) {\r\n this.mainMenuExpanded = savedStateSideBar;\r\n }\r\n\r\n this.subscription.push(\r\n this.authService.getLoggedUserObservable().subscribe(async (user) => {\r\n if (user) {\r\n this.user = this.objectsUtilityService.cloneObject(user);\r\n } else {\r\n this.user = null;\r\n }\r\n await this.getMainMenuItems();\r\n })\r\n );\r\n\r\n await this.getMainMenuItems();\r\n this.subscription.push(\r\n this.translateService.onLangChange.subscribe(async () => {\r\n await this.getMainMenuItems();\r\n })\r\n );\r\n this.subscription.push(\r\n this.mainLayoutService\r\n .getDisplayHeaderStateObservable()\r\n .subscribe((display) => {\r\n this.headerDisplay = display;\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * This method is responsible for calling the functions that will build the menus, one with labels and icons and other with only icons\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async getMainMenuItems(): Promise {\r\n this.mainMenu = this.arrayUtility.clone(\r\n this.mainLayoutService.mapMenuItemsHelpers(this.mainMenuOriginal, this)\r\n );\r\n this.mainMenu = this.arrayUtility.clone(\r\n await this.mainLayoutService.getSideBarMenuItemsWithLabelsAsync(\r\n this.mainMenu,\r\n true\r\n )\r\n );\r\n this.mainMenuIcons = this.arrayUtility.clone(\r\n this.mainLayoutService.mapMenuItemsHelpers(this.mainMenuOriginal, this)\r\n );\r\n this.mainMenuIcons = this.arrayUtility.clone(\r\n await this.mainLayoutService.getSideBarMenuItemsWithLabelsAsync(\r\n this.mainMenuIcons,\r\n false\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe all the observables\r\n */\r\n public ngOnDestroy(): void {\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n }\r\n\r\n /**\r\n * This function is responsible to save the current state of the sidebar menu (expanded - true or collapsed - false) in local storage\r\n * @returns {Promise}\r\n */\r\n public async onShowHideSideBarDetails(): Promise {\r\n localStorage.removeItem('savedStateSideBar');\r\n this.mainMenuExpanded = !this.mainMenuExpanded;\r\n localStorage.setItem(\r\n 'savedStateSideBar',\r\n JSON.stringify(this.mainMenuExpanded)\r\n );\r\n this.mainLayoutService.setSideBarState(this.mainMenuExpanded);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { AfterViewInit, ChangeDetectorRef, Component } from '@angular/core';\r\n\r\n/**\r\n * layout page\r\n */\r\n@Component({\r\n selector: 'prg-layouts-header-sidebar',\r\n templateUrl: './prg-layouts-header-sidebar.html',\r\n styleUrls: ['./prg-layouts-header-sidebar.scss'],\r\n})\r\n/**\r\n * Page Main Layout\r\n */\r\nexport class PrgLayoutsHeaderSidebarComponent implements AfterViewInit {\r\n /**\r\n * constructor\r\n * @param cdr\r\n */\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n /**\r\n * ngAfterViewInit\r\n */\r\n ngAfterViewInit(): void {\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes, ROUTES } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgConfigItemsAdminComponent } from './components/config-items-admin/prg-config-items-admin.component';\r\nimport { PrgConfigItemsUserComponent } from './components/config-items-user/prg-config-items-user.component';\r\nimport { configurationItemsConfig } from './prg-configuration-items.module';\r\n\r\n/**\r\n * Config Items routing module routes\r\n */\r\nconst standardRoutes: Routes = [];\r\n\r\n/**\r\n * Config Items Routing Module\r\n */\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: configurationItemsConfig.configurationItemsRoutingBasePath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: configurationItemsConfig.configurationItemsRoutingAdminPath,\r\n component: PrgConfigItemsAdminComponent,\r\n },\r\n {\r\n path: configurationItemsConfig.configurationItemsRoutingUserPath,\r\n component: PrgConfigItemsUserComponent,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgConfigurationItemsRoutingModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigurationItem } from '../../models/configuration-item.model';\r\nimport { AbstractConfigurationItemsService } from './abstract-configuration-items.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * REAL ConfigurationItemsService implementation\r\n */\r\nexport class ConfigurationItemsService extends AbstractConfigurationItemsService {\r\n /**\r\n * Get a list of all configuration items\r\n * @returns {Promise}\r\n */\r\n public getAllConfigurationItemsAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Function responsible to update Config Items\r\n * @param configItemData\r\n * @returns {Promise}\r\n */\r\n public updateConfigurationItemsAsync(\r\n configItemData: any\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get configuration items by path\r\n * @param {string} path\r\n * @returns {Promise}\r\n */\r\n public getConfigurationItemsByPathAsync(path: string): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgCoreDynamicFormModule } from '../core/components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgConfigItemsAdminComponent } from './components/config-items-admin/prg-config-items-admin.component';\r\nimport { PrgConfigItemsUserComponent } from './components/config-items-user/prg-config-items-user.component';\r\nimport { MockConfigurationItemsService } from './mock/services/configuration-items.service.mock';\r\nimport { PrgConfigurationItemsConfig } from './models/prg-configuration-items-config';\r\nimport { PrgConfigurationItemsRoutingModule } from './prg-configuration-items-routing.module';\r\nimport { AbstractConfigurationItemsService } from './services/configuration-items/abstract-configuration-items.service';\r\nimport { ConfigurationItemsService } from './services/configuration-items/configuration-items.service';\r\nimport { PRG_CONFIGURATION_ITEMS_CONFIG } from './services/prg-configuration-items-config/prg-configuration-items-config.service';\r\n\r\n/**\r\n * Module that handles authentication\r\n */\r\n@NgModule({\r\n declarations: [PrgConfigItemsUserComponent, PrgConfigItemsAdminComponent],\r\n imports: [\r\n PrgSharedComponentsModule,\r\n PrgConfigurationItemsRoutingModule,\r\n PrgCoreDynamicFormModule,\r\n ],\r\n exports: [],\r\n})\r\nexport class PrgConfigurationItemsModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgConfigurationItemsConfig: PrgConfigurationItemsConfig\r\n ): ModuleWithProviders {\r\n configurationItemsConfig = prgConfigurationItemsConfig;\r\n return {\r\n ngModule: PrgConfigurationItemsModule,\r\n providers: [\r\n {\r\n provide: PRG_CONFIGURATION_ITEMS_CONFIG,\r\n useValue: prgConfigurationItemsConfig,\r\n },\r\n {\r\n provide: AbstractConfigurationItemsService,\r\n useClass: prgConfigurationItemsConfig.useMockServices\r\n ? MockConfigurationItemsService\r\n : ConfigurationItemsService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the ConfigItemsCoreConfig object\r\n */\r\nexport let configurationItemsConfig: PrgConfigurationItemsConfig;\r\n","/**\r\n * Class Pagination\r\n */\r\nexport class Pagination {\r\n /**\r\n * set the pagination type\r\n *\r\n * pages - the data is presented page by page\r\n *\r\n * infiniteLoading - the data is presented with scroll\r\n */\r\n type: PaginationType = PaginationType.pages;\r\n\r\n /**\r\n * number of items per page\r\n */\r\n totalRows: number = 3;\r\n\r\n /**\r\n * options for choosing items per page(by pages)\r\n */\r\n rowsPerPageOptions: number[] = [2, 3, 5, 10, 100];\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport enum PaginationType {\r\n // eslint-disable-next-line no-unused-vars\r\n infiniteLoading = 'infiniteLoading',\r\n // eslint-disable-next-line no-unused-vars\r\n pages = 'pages',\r\n}\r\n","import { FilterMatchMode } from 'primeng/api';\r\n\r\nexport enum FilterExpressions {\r\n And,\r\n Or,\r\n}\r\n\r\n/**\r\n * Map primeng expressions to out expressions\r\n */\r\nexport const MapPrimeNgExpressionsToFilterExpressions: Map<\r\n string,\r\n FilterExpressions\r\n> = new Map([\r\n ['and', FilterExpressions.And],\r\n ['or', FilterExpressions.Or],\r\n]);\r\n\r\nexport enum FilterOperations {\r\n EqualTo,\r\n NotEqualTo,\r\n GreaterThan,\r\n GreaterThanOrEqualTo,\r\n LessThan,\r\n LessThanOrEqualTo,\r\n Between,\r\n Contains,\r\n DoesNotContain,\r\n EndsWith,\r\n In,\r\n IsEmpty,\r\n IsNotEmpty,\r\n IsNotNull,\r\n IsNotNullNorWhiteSpace,\r\n IsNull,\r\n IsNullOrWhiteSpace,\r\n StartsWith,\r\n NotIn,\r\n}\r\n\r\n/**\r\n * Map primeng operations to out filter operations\r\n */\r\nexport const MapPrimeNgFilterOperationsToFilterOperations: Map<\r\n FilterMatchMode,\r\n FilterOperations\r\n> = new Map([\r\n [FilterMatchMode.STARTS_WITH, FilterOperations.StartsWith],\r\n [FilterMatchMode.CONTAINS, FilterOperations.Contains],\r\n [FilterMatchMode.NOT_CONTAINS, FilterOperations.DoesNotContain],\r\n [FilterMatchMode.ENDS_WITH, FilterOperations.EndsWith],\r\n [FilterMatchMode.EQUALS, FilterOperations.EqualTo],\r\n [FilterMatchMode.NOT_EQUALS, FilterOperations.NotEqualTo],\r\n [FilterMatchMode.IN, FilterOperations.In],\r\n [FilterMatchMode.LESS_THAN, FilterOperations.LessThan],\r\n [FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterOperations.LessThanOrEqualTo],\r\n [FilterMatchMode.GREATER_THAN, FilterOperations.GreaterThan],\r\n [\r\n FilterMatchMode.GREATER_THAN_OR_EQUAL_TO,\r\n FilterOperations.GreaterThanOrEqualTo,\r\n ],\r\n [FilterMatchMode.BETWEEN, FilterOperations.Between],\r\n [FilterMatchMode.IS, FilterOperations.EqualTo],\r\n [FilterMatchMode.IS_NOT, FilterOperations.NotEqualTo],\r\n [FilterMatchMode.BEFORE, FilterOperations.LessThan],\r\n [FilterMatchMode.AFTER, FilterOperations.GreaterThan],\r\n [FilterMatchMode.DATE_IS, FilterOperations.EqualTo],\r\n [FilterMatchMode.DATE_IS_NOT, FilterOperations.NotEqualTo],\r\n [FilterMatchMode.DATE_BEFORE, FilterOperations.LessThan],\r\n [FilterMatchMode.DATE_AFTER, FilterOperations.GreaterThan],\r\n]);\r\n\r\n/**\r\n * enum to convert our datatypes to those supported by primeng\r\n */\r\nexport enum PrimeNgTypeToOurTypes {\r\n 'dataType.string' = 'text',\r\n 'dataType.number' = 'numeric',\r\n 'dataType.date' = 'date',\r\n}\r\n\r\n/**\r\n * Filter operations in string format\r\n */\r\nexport enum FilterOperationsString {\r\n 'EqualTo' = FilterOperations.EqualTo,\r\n 'NotEqualTo' = FilterOperations.NotEqualTo,\r\n 'GreaterThan' = FilterOperations.GreaterThan,\r\n 'GreaterThanOrEqualTo' = FilterOperations.GreaterThanOrEqualTo,\r\n 'LessThan' = FilterOperations.LessThan,\r\n 'LessThanOrEqualTo' = FilterOperations.LessThanOrEqualTo,\r\n 'Between' = FilterOperations.Between,\r\n 'Contains' = FilterOperations.Contains,\r\n 'DoesNotContain' = FilterOperations.DoesNotContain,\r\n 'EndsWith' = FilterOperations.EndsWith,\r\n 'In' = FilterOperations.In,\r\n 'IsEmpty' = FilterOperations.IsEmpty,\r\n 'IsNotEmpty' = FilterOperations.IsNotEmpty,\r\n 'IsNotNull' = FilterOperations.IsNotNull,\r\n 'IsNotNullNorWhiteSpace' = FilterOperations.IsNotNullNorWhiteSpace,\r\n 'IsNull' = FilterOperations.IsNull,\r\n 'IsNullOrWhiteSpace' = FilterOperations.IsNullOrWhiteSpace,\r\n 'StartsWith' = FilterOperations.StartsWith,\r\n 'NotIn' = FilterOperations.NotIn,\r\n}\r\n\r\nexport enum OrderTypes {\r\n Ascending,\r\n Descending,\r\n}\r\n\r\n/**\r\n * Map primeng sort order to ou orderTypes\r\n */\r\nexport const PrimeNgSortToOrderTypeMap: Map = new Map<\r\n number,\r\n OrderTypes\r\n>([\r\n [-1, OrderTypes.Descending],\r\n [1, OrderTypes.Ascending],\r\n]);\r\n\r\nexport class Filter {\r\n public propertyName: string;\r\n public value: any;\r\n public value2: string;\r\n public filterOperation: FilterOperations = FilterOperations.Contains;\r\n public filterExpression: FilterExpressions = FilterExpressions.And;\r\n public startGroup: boolean;\r\n}\r\nexport class Order {\r\n public propertyName: string;\r\n public orderType: OrderTypes;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport class FilterGroup {\r\n public filterCollections: Filter[];\r\n public orderCollection: Order[];\r\n public pageSize: number | undefined;\r\n public pageIndex: number | undefined;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\nexport class FilterCollection {\r\n public order: number;\r\n public filter: Filter[];\r\n}\r\nexport class GenericFilter {\r\n public order: number;\r\n public propertyName: string;\r\n public placeholder: string;\r\n public propertyType: string;\r\n public propertyTranslation?: string;\r\n public defaultValue?: any;\r\n public possibleValues?: any[];\r\n public propertyValue?: any;\r\n public filterOperation: FilterOperations = FilterOperations.Contains;\r\n public filterExpression: FilterExpressions = FilterExpressions.And;\r\n public lookupTableName?: string;\r\n public isStartGroup = false;\r\n public visible? = true;\r\n}\r\n","import { FilterExpressions, FilterOperations } from './filters';\r\nimport { Pagination } from './pagination';\r\n\r\n/**\r\n * TableConfigs\r\n */\r\nexport class TableConfigs {\r\n /**\r\n * defines the type of pagination we want and all the pagination settings\r\n */\r\n public pagination: Pagination = new Pagination();\r\n\r\n /**\r\n * default columns to show\r\n */\r\n public defaultColumns: string[] = [];\r\n\r\n /**\r\n * columns in which the global filter is searched\r\n */\r\n public globalFilterFields: string[] = [];\r\n\r\n /**\r\n * global filter oprarion out value\r\n */\r\n public globalFilterOperation: FilterOperations = FilterOperations.Contains;\r\n\r\n /**\r\n * global filter expression\r\n */\r\n public globalFilterExpression: FilterExpressions = FilterExpressions.Or;\r\n\r\n /**\r\n * filter delay\r\n */\r\n public filterDelay: number = 1000;\r\n\r\n /**\r\n * multi sorte meta\r\n */\r\n public multiSortMeta: any[] = [];\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgHeaderComponent } from './components/header/prg-header.component';\r\nimport { PrgSidebarComponent } from './components/sidebar/prg-sidebar.component';\r\nimport { PrgLayoutsEmptyComponent } from './empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from './pages/prg-layouts-header-sidebar';\r\n\r\n/**\r\n * Module that handles all page layouts\r\n */\r\n@NgModule({\r\n declarations: [\r\n PrgLayoutsEmptyComponent,\r\n PrgHeaderComponent,\r\n PrgSidebarComponent,\r\n PrgLayoutsHeaderSidebarComponent,\r\n ],\r\n imports: [PrgSharedComponentsModule],\r\n exports: [\r\n PrgLayoutsEmptyComponent,\r\n PrgHeaderComponent,\r\n PrgSidebarComponent,\r\n PrgLayoutsHeaderSidebarComponent,\r\n ],\r\n})\r\nexport class PrgLayoutsModule {}\r\n","import { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { ConfigurationItem } from \"../../models/configuration-item.model\";\r\n\r\n/**\r\n * AbstractConfigurationItemsService class that defines an\r\n *
abstract configuration items service to\r\n *
be extended by the mock and real\r\n *
authentication services\r\n */\r\nexport abstract class AbstractConfigurationItemsService {\r\n /**\r\n * Current configurationItems\r\n */\r\n protected configurationItemsSubject = new BehaviorSubject<\r\n ConfigurationItem[]\r\n >(null);\r\n /**\r\n * Gets the configuration items\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public abstract getConfigurationItemsAsync(): Promise;\r\n\r\n /**\r\n * Setter for configurationItemsSubject\r\n *\r\n * @param {ConfigurationItem[]} value The ConfigurationItems array\r\n */\r\n protected setConfigurationItems(value: ConfigurationItem[]): void {\r\n this.configurationItemsSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for configurationItemsSubject\r\n *\r\n * @returns The configurationItemsSubject as an observable\r\n */\r\n public getConfigurationItemsObservable(): Observable {\r\n return this.configurationItemsSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for configurationItemsSubject\r\n *\r\n * @returns The configurationItemsSubject current value\r\n */\r\n public getConfigurationItemsValue(): ConfigurationItem[] {\r\n return this.configurationItemsSubject.getValue();\r\n }\r\n}\r\n","import { Injectable, Inject } from \"@angular/core\";\r\n// import jwt_decode from 'jwt-decode';\r\n\r\nimport { AbstractConfigurationItemsService } from \"./abstract-configuration-items.service\";\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * REAL ConfigurationItemsService implementation\r\n */\r\nexport class ConfigurationItemsService extends AbstractConfigurationItemsService {\r\n /**\r\n * constructor\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /**\r\n * Gets the real configuration items from\r\n *
the api and sets them on the\r\n *
configurationItemsSubject\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public getConfigurationItemsAsync(): Promise {\r\n return new Promise((resolve) => {\r\n resolve(false);\r\n });\r\n }\r\n}\r\n","import { ConfigurationItem } from './configuration-item.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface Database {\r\n /**\r\n * Mock configuration items\r\n */\r\n ConfigurationItems: ConfigurationItem[];\r\n\r\n /* /!**\r\n * Mock Entity types\r\n *!/\r\n EntityTypes: EntityType[];\r\n\r\n /!**\r\n * Mock Entity Type Operations\r\n *!/\r\n EntityTypesOperations: EntityTypeOperation[];\r\n\r\n /!**\r\n * Mock Entity Type Properties\r\n *!/\r\n EntityTypesProperties: EntityTypeProperty[];\r\n\r\n /!**\r\n * Mock Entity Type Attributes\r\n *!/\r\n EntityTypesAttributes: EntityTypeAttribute[];*/\r\n}\r\n\r\n// GCR: por cada módulo criar uma pasta mock onde tem uma bd desse módulo apenas, ou seja,\r\n// cada módulo ter a sua mock database para podermos, no futuro,\r\n// separar os modulos em packages sem alterar código\r\n// GCR: todos os ficheiros mock deve estar na pasta mock com a mesma estrutura dos reais\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const MockDatabase: Database = {\r\n /* EntityTypes: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Customer',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n guiSettings: '',\r\n group: 'System',\r\n properties: null /!*definidas inicialmente e nunca mais alteradas*!/,\r\n attributes: null /!*são atributos que podem adicionados/editados*!/,\r\n operations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label:null,\r\n name: 'view',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'create',\r\n createdBy: null,\r\n label:null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'update',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label:null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'delete',\r\n createdBy: null,\r\n label:null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n },\r\n {\r\n id: '2',\r\n label: null,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'User',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n guiSettings: '',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'view',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'create',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'update',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n },\r\n {\r\n id: '3',\r\n label: null,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Product',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n guiSettings: '',\r\n group: 'Store',\r\n properties: null,\r\n attributes: null,\r\n operations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'view',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'create',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n },\r\n {\r\n id: '4',\r\n label: null,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Orders',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n guiSettings: '',\r\n group: 'Store',\r\n properties: null,\r\n attributes: null,\r\n operations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'create',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'viewUserOrder',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'updateUserOrder',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n },\r\n ],\r\n\r\n EntityTypesOperations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'getCustomer',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n EntityTypesProperties: [\r\n {\r\n id: '1',\r\n label: null,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customer name',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customer name',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'customer name',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n label: null,\r\n operationId: null,\r\n name: 'customer Id',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customer Id',\r\n dataTypeId: 'dataType.number',\r\n order: 1,\r\n reference: 'customer Id',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'date of birth',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'date of birth',\r\n dataTypeId: 'dataType.date',\r\n order: 1,\r\n reference: 'date of birth',\r\n },\r\n\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'user name',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'user name',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'user name',\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'user Id',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'user Id',\r\n dataTypeId: 'dataType.number',\r\n order: 1,\r\n reference: 'user Id',\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'RegisterDate',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'RegisterDate',\r\n dataTypeId: 'dataType.date',\r\n order: 1,\r\n reference: 'RegisterDate',\r\n },\r\n ],\r\n EntityTypesAttributes: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n label: null,\r\n operationId: null,\r\n name: 'customer address',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customer address',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'customer address',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'VAT',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'VAT',\r\n dataTypeId: 'dataType.number',\r\n order: 1,\r\n reference: 'VAT',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'city',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'city',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'city',\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'user address',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'user address',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'user address',\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'user date of birth',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'user date of birth',\r\n dataTypeId: 'dataType.date',\r\n order: 1,\r\n reference: 'user date of birth',\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'email',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'email',\r\n dataTypeId: 'dataType.string',\r\n order: 1,\r\n reference: 'email',\r\n },\r\n ],*/\r\n\r\n /* TODO: MAP IDENTITY CONFIG TO CONFIGURATION ITEMS\r\n \"Identity\": {\r\n \"DefaultEnabledUser\": true, // user will be enabled on register\r\n \"AllowSelfRegister\": true,\r\n \"LockoutEnabled\": true,\r\n \"CreateWorkspaceOnUserRegister\": true,\r\n \"SignIn\": {\r\n \"RequireEnabledUser\": false,\r\n \"RequireConfirmedAdmin\": false,\r\n \"RequireConfirmedEmail\": true,\r\n \"RequireConfirmedPhoneNumber\": false\r\n },\r\n \"Lockout\": {\r\n \"LockoutTimeSpan\": \"1.00:00:00\" //lock out for 1 day\r\n },\r\n \"Password\": {\r\n \"RequireDigit\": true,\r\n \"RequiredLength\": 7,\r\n \"RequireLowercase\": true,\r\n \"RequiredUniqueChars\": 1,\r\n \"RequireUppercase\": true,\r\n \"RequireNonAlphanumeric\": true\r\n },\r\n \"Callbacks\": {\r\n \"BaseUrl\": \"http://localhost:8100\",\r\n \"LoginUrl\": \"/auth/login\",\r\n \"ConfirmedAccountUrl\": \"/auth/confirm\",\r\n \"ResetPasswordUrl\": \"/auth/reset\",\r\n \"UnsubscribeUrl\": \"/auth/unsubscribe\"\r\n },\r\n \"Token\": {\r\n \"Audience\": \"Prg.Framework.Api.Audience\",\r\n \"Issuer\": \"Prg.Framework.Api.Issuer\",\r\n \"Seconds\": 86400, // 24 hours\r\n \"RefreshDuration\": 24 // 24 hours\r\n }\r\n }\r\n */\r\n ConfigurationItems: [],\r\n};\r\n","import { Injectable } from \"@angular/core\";\r\nimport { AbstractConfigurationItemsService } from \"./abstract-configuration-items.service\";\r\nimport { MockDatabase } from \"../../models/database.mock\";\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * MOCK ConfigurationItemsService implementation\r\n */\r\nexport class MockConfigurationItemsService extends AbstractConfigurationItemsService {\r\n /**\r\n * constructor\r\n */\r\n constructor() {\r\n super();\r\n }\r\n\r\n /**\r\n * Gets the mock configuration items from\r\n *
the mock database and sets them\r\n *
on the configurationItemsSubject\r\n *\r\n * @returns Boolean promise, true when successful\r\n */\r\n public getConfigurationItemsAsync(): Promise {\r\n return new Promise((resolve) => {\r\n const items = MockDatabase.ConfigurationItems;\r\n if (items != null && items.length) {\r\n this.setConfigurationItems(items);\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n });\r\n }\r\n}\r\n","import { Inject, Injectable, InjectionToken } from \"@angular/core\";\r\nimport { PrgCoreConfig } from \"../../models/prg-core-config\";\r\n\r\n/**\r\n * Inject token\r\n */\r\nexport const PRG_CORE_CONFIG = new InjectionToken(\r\n \"PRG_CORE_CONFIG\"\r\n);\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\n/**\r\n * PrgCoreConfigurationService class definition\r\n *
that specifies the properties that the\r\n *
application can send to the lib for\r\n *
configuration purposes\r\n */\r\nexport class PrgCoreConfigurationService {\r\n /**\r\n * Constructor\r\n *\r\n * @param prgCoreConfig\r\n */\r\n constructor(@Inject(PRG_CORE_CONFIG) private prgCoreConfig: PrgCoreConfig) {}\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgLayoutsModule } from '../layouts/prg-layouts.module';\r\nimport { PrgCoreDynamicFormModule } from './components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgDynamicFormComponent } from './components/dynamic-form/prg-dynamic-form.component';\r\nimport { PrgCoreConfig } from './models/prg-core-config';\r\nimport { AbstractConfigurationItemsService } from './services/configuration-items/abstract-configuration-items.service';\r\nimport { ConfigurationItemsService } from './services/configuration-items/configuration-items.service';\r\nimport { MockConfigurationItemsService } from './services/configuration-items/configuration-items.service.mock';\r\nimport { PRG_CORE_CONFIG } from './services/prg-core-configuration/prg-core-configuration.service';\r\n\r\n/**\r\n * Lib Core (main) module, must provide the correct\r\n * implementation of its services, as well as the lib\r\n * configurations object\r\n */\r\n@NgModule({\r\n declarations: [],\r\n imports: [PrgLayoutsModule, PrgCoreDynamicFormModule],\r\n exports: [PrgLayoutsModule, PrgDynamicFormComponent],\r\n})\r\nexport class PrgCoreModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgCoreConfig: PrgCoreConfig\r\n ): ModuleWithProviders {\r\n coreConfig = prgCoreConfig;\r\n return {\r\n ngModule: PrgCoreModule,\r\n providers: [\r\n {\r\n provide: PRG_CORE_CONFIG,\r\n useValue: prgCoreConfig,\r\n },\r\n {\r\n provide: AbstractConfigurationItemsService,\r\n useClass: prgCoreConfig.useMockServices\r\n ? MockConfigurationItemsService\r\n : ConfigurationItemsService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the PrgCoreConfig object\r\n */\r\nexport let coreConfig: PrgCoreConfig;\r\n","import { Injectable, EventEmitter } from \"@angular/core\";\r\nimport { BehaviorSubject, Subscription } from \"rxjs\";\r\nimport { OwnerContext } from \"../../models/owner-context.model\";\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable()\r\n/**\r\n * Generic context service, provides a way to store information in any context\r\n */\r\nexport class ContextGenericService {\r\n /**\r\n * Map that holds all the variables and actions.\r\n *
-> key - owner name\r\n *
-> value object that holds a map for variables and a map for actions\r\n */\r\n protected context = new Map();\r\n /**\r\n * Array that holds all subscriptions, used to clean up on destroy\r\n */\r\n protected subscriptions: Subscription[] = [];\r\n\r\n /**\r\n * Clean up all\r\n */\r\n ngOnDestroy() {\r\n while (this.subscriptions.length > 0) {\r\n this.unsubscribe(this.subscriptions[0]);\r\n }\r\n }\r\n\r\n /**\r\n * Get owner context using name, if the context does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @returns The owner full context\r\n */\r\n protected getOwnerContext(ownerName: string): any {\r\n let ownerContext = this.context[ownerName];\r\n if (!ownerContext) {\r\n // owner context does not exist, create it\r\n ownerContext = {\r\n variables: new Map>(),\r\n actions: new Map>(),\r\n };\r\n this.context[ownerName] = ownerContext;\r\n }\r\n return ownerContext;\r\n }\r\n\r\n /**\r\n * Get a variable subject using owner and name, if the variable does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param variableName Name of the variable\r\n * @returns Subject of the variable\r\n */\r\n protected getVariable(\r\n ownerName: string,\r\n variableName: string\r\n ): BehaviorSubject {\r\n // Check if owner context exist\r\n let ownerContext = this.getOwnerContext(ownerName);\r\n\r\n // check if variable exist for this owner\r\n let variable = ownerContext.variables[variableName];\r\n\r\n if (!variable) {\r\n // variable does not exist, create it\r\n variable = new BehaviorSubject(null);\r\n ownerContext.variables[variableName] = variable;\r\n }\r\n\r\n return variable;\r\n }\r\n\r\n /**\r\n * Subscribes to a variable subject using owner and name, if the variable does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param variableName Name of the variable\r\n * @param callback callback function of the subscriber\r\n * @returns Susbcription\r\n */\r\n public subscribeVariable(\r\n ownerName: string,\r\n variableName: string,\r\n callback: Function\r\n ): Subscription {\r\n const subject = this.getVariable(ownerName, variableName);\r\n const subscription = subject.asObservable().subscribe((data) => {\r\n callback(this.cloneObject(data));\r\n });\r\n\r\n this.subscriptions.push(subscription);\r\n return subscription;\r\n }\r\n\r\n /**\r\n * // TODO: This method should be changed to a generic utils class\r\n */\r\n protected cloneObject(obj: any) {\r\n return obj ? Object.assign({}, obj) : null; // TODO: check best way to clone a full deep copy\r\n }\r\n\r\n /**\r\n * Set data to a variable subject using owner and name, if the variable does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param variableName Name of the variable\r\n * @param data Data to be set\r\n */\r\n public setVariableData(\r\n ownerName: string,\r\n variableName: string,\r\n data: any\r\n ): void {\r\n const subject = this.getVariable(ownerName, variableName);\r\n const newValue = this.cloneObject(data);\r\n subject.next(newValue);\r\n }\r\n\r\n /**\r\n * Get an action event using owner and name, if the action does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param actionName Name of the action\r\n * @returns Event of the action\r\n */\r\n protected getAction(\r\n ownerName: string,\r\n actionName: string\r\n ): EventEmitter {\r\n // Check if owner context exist\r\n let ownerContext = this.getOwnerContext(ownerName);\r\n\r\n // check if variable exist for this owner\r\n let action = ownerContext.actions[actionName];\r\n\r\n if (!action) {\r\n // variable does not exist, create it\r\n action = new EventEmitter(true);\r\n ownerContext.actions[actionName] = action;\r\n }\r\n\r\n return action;\r\n }\r\n\r\n /**\r\n * Subscribes to an action using owner and name, if the variable does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param actionName Name of the action\r\n * @param callback callback function of the subscriber\r\n * @returns Susbcription\r\n */\r\n public subscribeAction(\r\n ownerName: string,\r\n actionName: string,\r\n callback: Function\r\n ): Subscription {\r\n const subject = this.getAction(ownerName, actionName);\r\n const subscription = subject.subscribe((data) => {\r\n callback(this.cloneObject(data));\r\n });\r\n this.subscriptions.push(subscription);\r\n return subscription;\r\n }\r\n\r\n /**\r\n * Send action using owner and name, if the action does not exist, it is created\r\n * @param ownerName Name of the owner\r\n * @param actionName Name of the action\r\n * @param data Data to be set\r\n */\r\n public sendAction(ownerName: string, actionName: string, data: any): void {\r\n const action = this.getAction(ownerName, actionName);\r\n action.emit(this.cloneObject(data));\r\n }\r\n\r\n /**\r\n * Unsubscribes a subscription\r\n * @param subscription Subscription to unsubscribe\r\n */\r\n public unsubscribe(subscription: Subscription | Subscription[]) {\r\n if (!subscription) return;\r\n\r\n if (Array.isArray(subscription)) {\r\n // TODO:\r\n } else {\r\n const index = this.subscriptions.findIndex((s) => s === subscription);\r\n subscription.unsubscribe();\r\n if (index >= 0) {\r\n this.subscriptions.splice(index, 1);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ContextGenericService } from \"./generic-context.service\";\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable()\r\n/**\r\n * App context service, provides a way to store information\r\n *
in the context of an app that can be used in its components\r\n */\r\nexport class ContextAppService extends ContextGenericService {\r\n /**\r\n * constructor\r\n */\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ContextGenericService } from \"./generic-context.service\";\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable()\r\n/**\r\n * Page context service, provides a way to store information\r\n *
in the context of a page that can be used in its components\r\n */\r\nexport class PageContextService extends ContextGenericService {\r\n /**\r\n * constructor\r\n */\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../../core/components/dynamic-form/models/base-field';\r\nimport { ActionName } from '../../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ToolbarSlot } from '../../../core/components/dynamic-form/models/constants/toolbar-slots';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport {\r\n EntityType,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n} from '../../models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../services/entity-types/abstract-entity-type.service';\r\n\r\n@Component({\r\n selector: 'prg-entity-type-element',\r\n templateUrl: './prg-entity-type-element.component.html',\r\n styleUrls: ['./prg-entity-type-element.component.scss'],\r\n})\r\nexport class PrgEntityTypeElementComponent implements OnInit {\r\n /**\r\n * element aux\r\n */\r\n private _element: any;\r\n /**\r\n * element input\r\n */\r\n @Input() set element(element: any) {\r\n this._element = element;\r\n }\r\n /**\r\n * element getter\r\n */\r\n get element(): any {\r\n return this._element;\r\n }\r\n\r\n /**\r\n * entity type aux\r\n */\r\n private _entityType: EntityType;\r\n\r\n /**\r\n * entity type input\r\n */\r\n @Input() set entityType(entityType: EntityType) {\r\n if (entityType) {\r\n this._entityType = entityType;\r\n this.getBaseFieldsFromEntityType(entityType);\r\n this.getActionsFromEntityType(entityType.operations);\r\n }\r\n }\r\n\r\n /**\r\n * entity type getter\r\n */\r\n get entityType(): EntityType {\r\n return this._entityType;\r\n }\r\n\r\n /**\r\n * entity type view mode\r\n */\r\n @Input() elementViewMode: ViewMode = ViewMode.Read;\r\n\r\n /**\r\n * entity type form fields\r\n */\r\n public entityTypeDynamicFormElementFields: BaseField[] = [];\r\n\r\n /**\r\n * entity type form actions\r\n */\r\n public entityTypeDynamicFormElementActions: BaseAction[] = [];\r\n\r\n /**\r\n * variable to save if is a popup\r\n */\r\n private isPopup: boolean = false;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param arrayUtilityService\r\n * @param utilityService\r\n * @param entityTypeService\r\n * @param ref\r\n * @param config\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n private arrayUtilityService: ArrayUtilityService,\r\n private utilityService: UtilityService,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private ref: DynamicDialogRef,\r\n private config: DynamicDialogConfig,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private notificationsService: NotificationsService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * if this component is contained in a dialog it fetches the data from the config\r\n */\r\n ngOnInit() {\r\n if (this.config.hasOwnProperty('data')) {\r\n this._entityType = this.config.data.entityType;\r\n this._element = this.config.data.element;\r\n this.elementViewMode = this.config.data.viewMode;\r\n this.getBaseFieldsFromEntityType(this.config.data.entityType);\r\n this.getActionsFromEntityType(this.config.data.entityType.operations);\r\n this.isPopup = true;\r\n }\r\n\r\n this.entityTypeDynamicFormElementActions.push(\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: ' this.entity!= null && this.entity.id == null',\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * this function receives the output and depending on\r\n * the action clicked performs a certain set of actions\r\n *\r\n * @param event\r\n */\r\n public async onActionOutputed(event: DynamicFormActionOutput): Promise {\r\n switch (event.action) {\r\n case BaseActionKey.Cancel:\r\n if (event.formEntity.id) {\r\n this.element = this.objectsUtilityService.cloneObject(this.element);\r\n this.elementViewMode = ViewMode.Read;\r\n }\r\n if (this.isPopup) {\r\n this.ref.close();\r\n } else {\r\n window.location.href = window.location.href.replace('/new', '');\r\n }\r\n\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.elementViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n let actionResult: any;\r\n const action = this.entityTypeDynamicFormElementActions.find(\r\n (a) => a.key === event.action\r\n );\r\n\r\n if (action == null || action['operation'] == null) {\r\n return;\r\n }\r\n\r\n if (\r\n action.hasOwnProperty('confirmationModal') &&\r\n action.hasOwnProperty('confirmationModal') !== null\r\n ) {\r\n if (\r\n await this.notificationsService.prgConfirmationService(\r\n 'messages.delete-confirmation',\r\n await this.translateService\r\n .get('entities.' + this.entityType.name + '.label')\r\n .toPromise()\r\n )\r\n ) {\r\n actionResult = await this.entityTypeService.executeAction(\r\n this.entityType.name,\r\n action['operation'],\r\n event.formEntity\r\n );\r\n }\r\n } else {\r\n actionResult = await this.entityTypeService.executeAction(\r\n this.entityType.name,\r\n action['operation'],\r\n event.formEntity\r\n );\r\n }\r\n\r\n if (!action.executedActionBehaviour) {\r\n break;\r\n }\r\n\r\n if (action.executedActionBehaviour.changeViewModeToRead) {\r\n this.elementViewMode = ViewMode.Read;\r\n }\r\n if (action.executedActionBehaviour.redirectToList) {\r\n if (this.isPopup) {\r\n this.ref.close(action.executedActionBehaviour);\r\n } else {\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n }\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * this function creates the filds for the dynamic\r\n * form according to the properties of an entity type\r\n * @param entityType\r\n */\r\n private getBaseFieldsFromEntityType(entityType: EntityType): void {\r\n if (entityType.properties.length) {\r\n entityType.properties.forEach((property: EntityTypeProperty) => {\r\n if (property.guiSettings) {\r\n const guiSettings = this.utilityService.guiSettingToObject(\r\n property.guiSettings,\r\n 'entities.' + entityType.name + '.fields'\r\n );\r\n\r\n if (!guiSettings.key) {\r\n guiSettings.key = property.name;\r\n }\r\n\r\n this.entityTypeDynamicFormElementFields.push(guiSettings);\r\n }\r\n });\r\n }\r\n\r\n this.entityTypeDynamicFormElementFields = this.arrayUtilityService.clone(\r\n this.entityTypeDynamicFormElementFields\r\n );\r\n }\r\n\r\n /**\r\n * this function creates the actions depending\r\n * on the operations associated to a given entity type\r\n *\r\n * @param entityTypeOperations\r\n */\r\n private getActionsFromEntityType(\r\n entityTypeOperations: EntityTypeOperation[]\r\n ) {\r\n entityTypeOperations.forEach((operation) => {\r\n if (operation.guiSettings) {\r\n const guiSettingsObject = this.utilityService.guiSettingToObject(\r\n operation.guiSettings\r\n );\r\n\r\n guiSettingsObject.operation = operation;\r\n\r\n const baseAction = new BaseAction(guiSettingsObject);\r\n\r\n this.entityTypeDynamicFormElementActions.push(baseAction);\r\n }\r\n });\r\n this.entityTypeDynamicFormElementActions = this.arrayUtilityService.clone(\r\n this.entityTypeDynamicFormElementActions\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { BaseAction, BaseActionKey } from '../models/base-action';\r\nimport { ActionName } from '../models/constants/action-names';\r\nimport { ToolbarSlot } from '../models/constants/toolbar-slots';\r\n\r\n/**\r\n * Default actions\r\n * This array contains the add, edit, save and cancel actions,\r\n * as well as the visibility expression for the logic of these actions\r\n */\r\nexport const ACTIONS_BASE_STRUCTURE = {\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Add,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='add' || this.viewMode ==='read'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n ],\r\n};\r\n","import { Validators } from '@angular/forms';\r\nimport { SelectConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../core/components/dynamic-form/models/constants/reference-type';\r\n\r\n/**\r\n * Dynamic form fields configurations to Entity type Attribute\r\n */\r\nexport const ENTITY_TYPE_ATTRIBUTE_DYNAMIC_FORM = {\r\n fields: [\r\n {\r\n controlName: ControlName.inputText,\r\n readonly: false,\r\n key: 'name',\r\n validators: [Validators.required],\r\n },\r\n {\r\n controlName: ControlName.inputText,\r\n readonly: false,\r\n key: 'guiSettings',\r\n validators: [Validators.required],\r\n },\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'dataType',\r\n readonly: false,\r\n key: 'dataTypeId',\r\n optionLabel: 'name',\r\n optionValue: 'id',\r\n validators: [Validators.required],\r\n }),\r\n ],\r\n};\r\n","import { Validators } from '@angular/forms';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../core/components/dynamic-form/models/base-field';\r\nimport { ActionName } from '../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ToolbarSlot } from '../../core/components/dynamic-form/models/constants/toolbar-slots';\r\n\r\n/**\r\n * Dynamic form fields and actions configurations to Entity type\r\n */\r\nexport const ENTITY_TYPE_DYNAMIC_FORM = {\r\n fields: [\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'name',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.fields',\r\n }),\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'guiSettings',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.fields',\r\n }),\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'group',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.fields',\r\n }),\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n visibleExpression: ' this.entity!= null && this.entity.id',\r\n value: '1',\r\n key: 'universalStateId',\r\n basePathTranslation: 'entity-type.fields',\r\n }),\r\n ],\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Left,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],\r\n};\r\n","import { BaseEntity } from '../../core/models/base-entity.model';\r\n\r\n/**\r\n * HttpVerb string enum\r\n */\r\nexport enum HttpVerb {\r\n Get = 'GET',\r\n Post = 'POST',\r\n Put = 'PUT',\r\n Patch = 'PATCH',\r\n Delete = 'DELETE',\r\n}\r\n\r\n/**\r\n * EntityTypeProperty class that defines a dynamic\r\n *
property of an EntityType, which WILL BE\r\n *
COMPILED into the dll\r\n */\r\nexport class EntityTypeProperty extends BaseEntity {\r\n /**\r\n * Entity type workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Defines a label to be used in template and translations\r\n */\r\n public label: string;\r\n /**\r\n * Entity type id (foreign key)\r\n */\r\n public entityTypeId: string;\r\n /**\r\n * Gui Settings to be used by generic components\r\n *
on the front-end. JSON stringified object\r\n */\r\n public guiSettings: string;\r\n /**\r\n * Lookup table item id for datatype (foreign key)\r\n */\r\n public dataTypeId: string;\r\n\r\n /**\r\n * this field is to indicate if\r\n * we are going to have an array of some type\r\n */\r\n public isArray: boolean = false;\r\n\r\n /**\r\n * Property order\r\n */\r\n public order: number;\r\n\r\n /**\r\n * group\r\n */\r\n public group?: string;\r\n\r\n /**\r\n * Property reference, used when DataType is:\r\n *
LookupTable or EntityType\r\n */\r\n public reference: string;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * EntityTypeAttribute class that defines an\r\n *
attribute of an EntityType, which WILL NOT\r\n *
BE COMPILED into the dll\r\n */\r\nexport class EntityTypeAttribute extends BaseEntity {\r\n /**\r\n * Entity type workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Defines a label to be used in template and translations\r\n */\r\n public label: string;\r\n /**\r\n * Entity type id (foreign key)\r\n */\r\n public entityTypeId: string;\r\n /**\r\n * Gui Settings to be used by generic components\r\n *
on the front-end. JSON stringified object\r\n */\r\n public guiSettings: string;\r\n /**\r\n * Lookup table item id for datatype (foreign key)\r\n */\r\n public dataTypeId: string;\r\n /**\r\n * this field is to indicate if\r\n * we are going to have an array of some type\r\n */\r\n public isArray: boolean = false;\r\n /**\r\n * Attribute order\r\n */\r\n public order: number;\r\n\r\n /**group */\r\n public group?: string;\r\n\r\n /**\r\n * Attribute reference, used when DataType is:\r\n *
LookupTable or EntityType\r\n */\r\n public reference: string;\r\n\r\n /**constructor */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * EntityTypeOperation class that defines a\r\n *
custom operation for an EntityType,\r\n *
which WILL BE COMPILED into the dll\r\n */\r\nexport class EntityTypeOperation extends BaseEntity {\r\n /**\r\n * Entity type workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Defines a label to be used in template and translations\r\n */\r\n public label: string;\r\n /**\r\n * Entity type id (foreign key)\r\n */\r\n public entityTypeId: string;\r\n /**\r\n * Gui Settings to be used by generic components\r\n *
on the front-end. JSON stringified object\r\n */\r\n public guiSettings: string;\r\n /**\r\n * Operation overrides an existing controller method\r\n */\r\n public override: boolean;\r\n /**\r\n * Array of imports to be imported by the controller\r\n */\r\n public imports: string[];\r\n /**\r\n * Source code to be executed for the given operation\r\n *
by the controller\r\n */\r\n public sourceCode: string;\r\n /**\r\n * Operation HttpVerb\r\n */\r\n public httpVerb: HttpVerb;\r\n\r\n /**\r\n * Operation order\r\n */\r\n public order: number = 0;\r\n\r\n /**constructor */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * EntityTypeOperation class that defines a\r\n *
generic EntityType, its properties,\r\n *
attributes and operations\r\n */\r\nexport class EntityType extends BaseEntity {\r\n /**\r\n * state id\r\n */\r\n public stateId?: string;\r\n\r\n /**\r\n * Defines a label to be used in template and translations\r\n */\r\n public label: string;\r\n\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Gui Settings to be used by generic components\r\n *
on the front-end. JSON stringified object\r\n */\r\n public guiSettings: string;\r\n /**\r\n * Group name to be used on the front-end for\r\n * scopes configuration grouping\r\n */\r\n\r\n //todo: change to lookup table item id\r\n public group: string;\r\n /**\r\n * Properties array\r\n */\r\n public properties: EntityTypeProperty[];\r\n /**\r\n * Attributes array\r\n */\r\n public attributes: EntityTypeAttribute[];\r\n /**\r\n * Operations array\r\n */\r\n public operations: EntityTypeOperation[];\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { Validators } from '@angular/forms';\r\nimport { SelectConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { HttpVerb } from '../models/entity-type.model';\r\n\r\n/**\r\n * Dynamic form fields configurations to Entity type operation\r\n */\r\nexport const ENTITY_TYPE_OPERATION_DYNAMIC_FORM = {\r\n fields: [\r\n {\r\n controlName: ControlName.inputText,\r\n value: null,\r\n readonly: false,\r\n key: 'name',\r\n validators: [Validators.required],\r\n },\r\n {\r\n controlName: ControlName.inputText,\r\n value: null,\r\n readonly: false,\r\n key: 'guiSettings',\r\n validators: [Validators.required],\r\n },\r\n new SelectConfiguration({\r\n controlName: ControlName.dropdown,\r\n value: null,\r\n readonly: false,\r\n key: 'httpVerb',\r\n options: [\r\n { value: HttpVerb.Get, label: 'get' },\r\n { value: HttpVerb.Post, label: 'post' },\r\n { value: HttpVerb.Delete, label: 'delete' },\r\n { value: HttpVerb.Put, label: 'put' },\r\n { value: HttpVerb.Patch, label: 'patch' },\r\n ],\r\n filter: true,\r\n validators: [Validators.required],\r\n }),\r\n ],\r\n};\r\n","import { Validators } from '@angular/forms';\r\nimport { CheckboxConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.model';\r\nimport { SelectConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../core/components/dynamic-form/models/constants/reference-type';\r\n/**\r\n * Dynamic form fields configurations to Entity type property\r\n */\r\nexport const ENTITY_TYPE_PROPERTY_DYNAMIC_FORM = {\r\n fields: [\r\n {\r\n controlName: ControlName.inputText,\r\n readonly: false,\r\n key: 'name',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.properties.fields',\r\n },\r\n {\r\n controlName: ControlName.inputText,\r\n readonly: false,\r\n key: 'guiSettings',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.properties.fields',\r\n },\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'dataType',\r\n readonly: false,\r\n key: 'dataTypeId',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n validators: [Validators.required],\r\n basePathTranslation: 'entity-type.properties.fields',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'isArray',\r\n basePathTranslation: 'entity-type.properties.fields',\r\n }),\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.LookupTable,\r\n readonly: false,\r\n key: 'reference',\r\n optionLabel: 'label',\r\n optionValue: 'name',\r\n visibleExpression:\r\n \"this.form.get('dataTypeId').getRawValue() && this.form.get('dataTypeId').getRawValue().toLowerCase()==='datatype.lookuptable'\",\r\n }),\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.EntityType,\r\n readonly: false,\r\n key: 'reference',\r\n optionLabel: 'name',\r\n optionValue: 'name',\r\n visibleExpression:\r\n \"this.form.get('dataTypeId').getRawValue() && this.form.get('dataTypeId').getRawValue().toLowerCase()==='datatype.entitytype'\",\r\n }),\r\n ],\r\n};\r\n","/**\r\n * class MenuTab\r\n */\r\nexport class MenuTab {\r\n /**\r\n * label\r\n */\r\n label: string;\r\n /**\r\n * icon\r\n */\r\n icon: string;\r\n /**\r\n * type\r\n */\r\n type: MenuTabEntityType;\r\n /**\r\n * disabled\r\n */\r\n disabled: boolean = false;\r\n}\r\n\r\nexport enum MenuTabEntityType {\r\n EntityTypeProperty = 'EntityTypeProperty',\r\n EntityTypeAttribute = 'EntityTypeAttribute',\r\n EntityTypeOperation = 'EntityTypeOperation',\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ACTIONS_BASE_STRUCTURE } from '../../../../../core/components/dynamic-form/actions-default-structures/actions-base-structure';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../../../../core/components/dynamic-form/models/base-field';\r\nimport { ViewMode } from '../../../../../core/models/constants/view-mode.enum';\r\nimport { PrgError } from '../../../../../core/models/error.model';\r\nimport { NotificationsService } from '../../../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../../core/services/utility/utility.service';\r\nimport { ENTITY_TYPE_ATTRIBUTE_DYNAMIC_FORM } from '../../../../dynamic-form-struct/entity-type-attribute-dynamic-form';\r\nimport { ENTITY_TYPE_DYNAMIC_FORM } from '../../../../dynamic-form-struct/entity-type-dynamic-form';\r\nimport { ENTITY_TYPE_OPERATION_DYNAMIC_FORM } from '../../../../dynamic-form-struct/entity-type-operation-dynamic-form';\r\nimport { ENTITY_TYPE_PROPERTY_DYNAMIC_FORM } from '../../../../dynamic-form-struct/entity-type-property-dynamic-form';\r\nimport {\r\n EntityType,\r\n EntityTypeAttribute,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n} from '../../../../models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../../services/entity-types/abstract-entity-type.service';\r\nimport { MenuTab, MenuTabEntityType } from './models/menu-tab.module';\r\n\r\n/**\r\n * entity type configuration component\r\n */\r\n@Component({\r\n selector: 'prg-entity-type-configs',\r\n templateUrl: './prg-entity-type-configs.component.html',\r\n styleUrls: ['./prg-entity-type-configs.component.scss'],\r\n})\r\nexport class PrgEntityTypeConfigsComponent implements OnInit {\r\n /**\r\n * constructor\r\n * @param entityTypeService\r\n * @param config\r\n * @param ref\r\n * @param notificationsService\r\n * @param arrayUtilityService\r\n * @param objectsUtilityService\r\n * @param utilityService\r\n */\r\n constructor(\r\n private entityTypeService: AbstractEntityTypeService,\r\n private config: DynamicDialogConfig,\r\n private ref: DynamicDialogRef,\r\n private notificationsService: NotificationsService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private utilityService: UtilityService\r\n ) {}\r\n /**\r\n * entity type\r\n */\r\n public entityType: EntityType;\r\n\r\n /**\r\n * manu tab items\r\n */\r\n public menuTabItems: MenuTab[];\r\n\r\n /**\r\n * tab active item\r\n */\r\n public activeItem: MenuTab;\r\n\r\n /**\r\n * elements list (properties, attributes, operations)\r\n */\r\n public elements: any[] = [];\r\n\r\n /**\r\n * element selected\r\n */\r\n public elementsSelected: any[] = [];\r\n\r\n /**\r\n * entity type form fields\r\n */\r\n public entityTypeDynamicFormFields: BaseField[] =\r\n this.arrayUtilityService.clone(ENTITY_TYPE_DYNAMIC_FORM.fields);\r\n /**\r\n * entity type form actions\r\n */\r\n public entityTypeDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(ENTITY_TYPE_DYNAMIC_FORM.actions);\r\n\r\n /**\r\n * elements form fields (default is fields from properties)\r\n */\r\n public elementDynamicFormFields: BaseField[] = this.arrayUtilityService.clone(\r\n ENTITY_TYPE_PROPERTY_DYNAMIC_FORM.fields\r\n );\r\n\r\n /**\r\n * elements form actions\r\n */\r\n public elementDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(ACTIONS_BASE_STRUCTURE.actions);\r\n\r\n /**\r\n * entity type view mode\r\n */\r\n public entityTypeViewMode: ViewMode = ViewMode.Read;\r\n /**\r\n * elements view mode\r\n */\r\n public elementViewMode: ViewMode = ViewMode.Add;\r\n\r\n /**\r\n * diabled list\r\n */\r\n public disabledList: boolean = false;\r\n\r\n /**\r\n * debounce time\r\n */\r\n private debounceTime: number = 200;\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n this.menuTabItems = [\r\n {\r\n label: 'properties',\r\n icon: 'pi pi-fw pi-pencil',\r\n type: MenuTabEntityType.EntityTypeProperty,\r\n disabled: false,\r\n },\r\n {\r\n label: 'attributes',\r\n icon: 'pi pi-fw pi-pencil',\r\n type: MenuTabEntityType.EntityTypeAttribute,\r\n disabled: false,\r\n },\r\n {\r\n label: 'operations',\r\n icon: 'pi pi-fw pi-pencil',\r\n type: MenuTabEntityType.EntityTypeOperation,\r\n disabled: false,\r\n },\r\n ];\r\n\r\n this.activeItem = this.menuTabItems[0];\r\n\r\n this.entityType = this.config.data.entityType;\r\n this.entityTypeViewMode = this.config.data.viewMode;\r\n if (!this.entityType.id) {\r\n this.menuTabsItemsManage(null);\r\n }\r\n this.loadElements();\r\n }\r\n\r\n /**\r\n * this function receives the event\r\n * when a new element is selected in the list\r\n * @param event\r\n * @returns\r\n */\r\n public onSelectionChanged(event: any): void {\r\n if (event.value == null) {\r\n return;\r\n }\r\n this.elementsSelected = [event.value[event.value.length - 1]];\r\n this.elementViewMode = ViewMode.Read;\r\n }\r\n\r\n /**\r\n * this function receives the output referring to the actions of an entity\r\n * type and in function of the received action performs the corresponding actions\r\n * @param event\r\n */\r\n public async onEntityTypeActionOutputted(event: DynamicFormActionOutput) {\r\n this.menuTabsItemsManage(null);\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n this.entityType = await this.entityTypeService.saveEntityTypeAsync(\r\n event.formEntity\r\n );\r\n this.menuTabsItemsManage(null, false);\r\n this.activeItem = this.menuTabItems[0];\r\n this.entityTypeViewMode = ViewMode.Read;\r\n\r\n break;\r\n case BaseActionKey.Cancel:\r\n this.entityTypeViewMode = ViewMode.Read;\r\n if (event.formEntity.id) {\r\n this.entityType = this.objectsUtilityService.cloneObject(\r\n this.entityType\r\n );\r\n } else {\r\n this.ref.close();\r\n }\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.entityTypeViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for receiving the changes from the selected tab and loading the respective data\r\n * @param event\r\n */\r\n public tabChange(event: MenuTab): void {\r\n this.activeItem = event;\r\n this.elementsSelected = [];\r\n this.elementViewMode = ViewMode.Add;\r\n this.loadElements();\r\n }\r\n\r\n /**\r\n * this function manages the status of the\r\n * tabs according to the parameters\r\n * it can activate or deactivate all tabs as well\r\n * as change the status of a single tab\r\n *\r\n * @param menuTabItem\r\n * @param status\r\n */\r\n private menuTabsItemsManage(menuTabItem: MenuTab, status: boolean = true) {\r\n this.menuTabItems.forEach((item) => {\r\n item.disabled = status;\r\n });\r\n if (menuTabItem) {\r\n const item = this.menuTabItems.find(\r\n (item) => (item.type = menuTabItem.type)\r\n );\r\n item.disabled = true;\r\n }\r\n this.menuTabItems = this.arrayUtilityService.clone(this.menuTabItems);\r\n this.activeItem = this.menuTabItems.find(\r\n (item) => item.type === this.activeItem.type\r\n );\r\n }\r\n\r\n /**\r\n * create empty element, depending on the tab selected\r\n */\r\n private addNewElement(): void {\r\n let newElement:\r\n | EntityTypeProperty\r\n | EntityTypeAttribute\r\n | EntityTypeOperation = null;\r\n if (this.entityType && this.activeItem) {\r\n this.disabledList = true;\r\n switch (this.activeItem.type) {\r\n case MenuTabEntityType.EntityTypeProperty:\r\n newElement = new EntityTypeProperty({\r\n entityTypeId: this.entityType.id,\r\n order: this.elements.length + 1,\r\n });\r\n break;\r\n case MenuTabEntityType.EntityTypeAttribute:\r\n newElement = new EntityTypeAttribute({\r\n entityTypeId: this.entityType.id,\r\n order: this.elements.length + 1,\r\n });\r\n break;\r\n case MenuTabEntityType.EntityTypeOperation:\r\n newElement = new EntityTypeOperation({\r\n entityTypeId: this.entityType.id,\r\n });\r\n break;\r\n\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'cantFindEntity',\r\n })\r\n );\r\n break;\r\n }\r\n }\r\n // add element to elements to array\r\n this.elements.push(newElement);\r\n //this.elements = this.arrayUtilityService.clone(this.elements);\r\n this.elementsSelected = [this.elements[this.elements.length - 1]];\r\n }\r\n\r\n /**\r\n * this function loads the elements according to the tab selected,\r\n * and changes the form's data\r\n */\r\n private async loadElements(): Promise {\r\n if (this.entityType && this.activeItem) {\r\n switch (this.activeItem.type) {\r\n case MenuTabEntityType.EntityTypeProperty:\r\n this.elementDynamicFormFields = this.arrayUtilityService.clone(\r\n ENTITY_TYPE_PROPERTY_DYNAMIC_FORM.fields\r\n );\r\n this.elements = this.arrayUtilityService.sortByProperty(\r\n await this.entityTypeService.getAllPropertiesByEntityTypeIdAsync(\r\n this.entityType.id\r\n ),\r\n 'order'\r\n );\r\n break;\r\n case MenuTabEntityType.EntityTypeAttribute:\r\n this.elementDynamicFormFields = this.arrayUtilityService.clone(\r\n ENTITY_TYPE_ATTRIBUTE_DYNAMIC_FORM.fields\r\n );\r\n\r\n this.elements = this.arrayUtilityService.sortByProperty(\r\n await this.entityTypeService.getAllAttributesByEntityTypeIdAsync(\r\n this.entityType.id\r\n ),\r\n 'order'\r\n );\r\n break;\r\n case MenuTabEntityType.EntityTypeOperation:\r\n this.elementDynamicFormFields = this.arrayUtilityService.clone(\r\n ENTITY_TYPE_OPERATION_DYNAMIC_FORM.fields\r\n );\r\n this.elements =\r\n await this.entityTypeService.getAllOperationsByEntityTypeIdAsync(\r\n this.entityType.id\r\n );\r\n break;\r\n\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'cantAddNewElement',\r\n })\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * this function receives the output of an entity,\r\n * and treats each of the actions with the respective logic to be applied\r\n * @param event\r\n */\r\n public onEntityActionOutputted(event: DynamicFormActionOutput): void {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n this.saveNewElement(event.formEntity);\r\n this.menuTabsItemsManage(null, false);\r\n break;\r\n case BaseActionKey.Edit:\r\n this.disabledList = true;\r\n this.elementViewMode = ViewMode.Edit;\r\n this.menuTabsItemsManage(null, true);\r\n break;\r\n case BaseActionKey.Cancel:\r\n if (event.formEntity.id) {\r\n this.elementsSelected = this.arrayUtilityService.clone(\r\n this.elementsSelected\r\n );\r\n this.elementViewMode = ViewMode.Read;\r\n } else {\r\n this.elementViewMode = ViewMode.Add;\r\n this.elementsSelected = [];\r\n this.elements.splice(this.elements.length - 1, 1);\r\n }\r\n this.disabledList = false;\r\n this.menuTabsItemsManage(null, false);\r\n\r\n break;\r\n\r\n case BaseActionKey.Add:\r\n this.menuTabsItemsManage(null, true);\r\n this.elementViewMode = ViewMode.Edit;\r\n this.addNewElement();\r\n break;\r\n\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'actionNotFound',\r\n })\r\n );\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for saving the new element added,\r\n * depending on the selected tab it calls the respective method\r\n * @param newElement\r\n */\r\n private async saveNewElement(newElement: any): Promise {\r\n let addedElement: any;\r\n switch (this.activeItem.type) {\r\n case MenuTabEntityType.EntityTypeProperty:\r\n addedElement = await this.entityTypeService.saveEntityTypePropertyAsync(\r\n newElement\r\n );\r\n break;\r\n case MenuTabEntityType.EntityTypeAttribute:\r\n addedElement =\r\n await this.entityTypeService.saveEntityTypeAttributeAsync(newElement);\r\n break;\r\n case MenuTabEntityType.EntityTypeOperation:\r\n addedElement =\r\n await this.entityTypeService.saveEntityTypeOperationAsync(newElement);\r\n break;\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'tabNotFound',\r\n })\r\n );\r\n break;\r\n }\r\n\r\n if (!newElement.id) {\r\n this.elements.splice(this.elements.length - 1, 1);\r\n }\r\n this.elementViewMode = ViewMode.Read;\r\n\r\n this.elementsSelected = [];\r\n this.disabledList = false;\r\n await this.loadElements();\r\n\r\n const elementAux = this.elements.find(\r\n (element) => element.id === addedElement.id\r\n );\r\n this.elementsSelected = [elementAux];\r\n }\r\n\r\n /**\r\n * this function is responsible for updating\r\n * the elements in the database when they have their order changed\r\n */\r\n public reorderElements = this.utilityService.debounce(() => {\r\n let mapElements = new Map();\r\n\r\n for (let i = 0; i < this.elements.length; i++) {\r\n this.elements[i].order = i + 1;\r\n mapElements.set(this.elements[i].id, { order: this.elements[i].order });\r\n }\r\n\r\n switch (this.activeItem.type) {\r\n case MenuTabEntityType.EntityTypeProperty:\r\n this.entityTypeService.updateEntityTypePropertiesAsync(mapElements);\r\n break;\r\n case MenuTabEntityType.EntityTypeAttribute:\r\n this.entityTypeService.updateEntityTypeAttributesAsync(mapElements);\r\n break;\r\n\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'notUpdated',\r\n })\r\n );\r\n break;\r\n }\r\n }, this.debounceTime);\r\n}\r\n","
\r\n \r\n\r\n \r\n \r\n
\r\n \r\n {{ 'entity-type.tabs.' + item.label + '.label' | translate }}\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n 0\"\r\n [value]=\"elements\"\r\n [disabled]=\"disabledList\"\r\n [selection]=\"elementsSelected\"\r\n (onSelectionChange)=\"onSelectionChanged($event)\"\r\n filterBy=\"name\"\r\n [dragdrop]=\"true\"\r\n styleClass=\"p-tabmenu-nav\"\r\n (onReorder)=\"reorderElements($event)\"\r\n >\r\n \r\n
\r\n
\r\n {{\r\n element.id != null\r\n ? ('entities.' +\r\n entityType.name +\r\n '.fields.' +\r\n element.name +\r\n '.label' | translate)\r\n : ('entity.new.' + activeItem.type.toLowerCase() | translate)\r\n }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * entity type component\r\n */\r\n@Component({\r\n selector: 'prg-entity-type',\r\n templateUrl: './prg-entity-type.component.html',\r\n styleUrls: ['./prg-entity-type.component.scss'],\r\n})\r\nexport class PrgEntityTypeComponent {}\r\n","
\r\n \r\n
\r\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { TreeNode } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { BaseField } from '../../../core/components/dynamic-form/models/base-field';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { EntityType } from '../../models/entity-type.model';\r\nimport { PrgEntityTypesConfig } from '../../models/prg-entity-types-config';\r\nimport { PRG_ENTITY_TYPES_CONFIG } from '../../services/entity-types-configuration/prg-entity-types-configuration.service';\r\nimport { AbstractEntityTypeService } from '../../services/entity-types/abstract-entity-type.service';\r\nimport { PrgEntityTypeComponent } from '../entity-type/prg-entity-type.component';\r\n\r\n/**\r\n * component List entity types\r\n */\r\n@Component({\r\n selector: 'prg-list-entity-types',\r\n templateUrl: './prg-list-entity-types.component.html',\r\n styleUrls: ['./prg-list-entity-types.component.scss'],\r\n providers: [DialogService],\r\n})\r\n\r\n/**\r\n * class PrgListEntityTypesComponent\r\n */\r\nexport class PrgListEntityTypesComponent implements OnInit, OnDestroy {\r\n /**\r\n * tree data\r\n */\r\n public treeData: TreeNode[];\r\n /**\r\n * table columns\r\n */\r\n public tableEntityTypeColumns: BaseField[] =\r\n this.prgEntityTypesConfig.entityTypeTableColumns;\r\n\r\n /**\r\n * subscriptions\r\n */\r\n private subscriptions: Subscription[] = [];\r\n /**\r\n * property name to group\r\n */\r\n private readonly GROUP_BY_PROPERTY_NAME: string = 'group';\r\n\r\n /**\r\n * constructor\r\n * @param entityTypeService\r\n * @param arrayUtilityService\r\n * @param prgEntityTypesConfig\r\n * @param dialogService dialogService\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n private entityTypeService: AbstractEntityTypeService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n @Inject(PRG_ENTITY_TYPES_CONFIG)\r\n private prgEntityTypesConfig: PrgEntityTypesConfig,\r\n public dialogService: DialogService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * dialog ref\r\n */\r\n public ref: DynamicDialogRef;\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n this.entityTypeService.getEntityTypeListAsync().then(() => {\r\n this.subscriptions.push(\r\n this.entityTypeService\r\n .getElementObservableByKey('product')\r\n .subscribe((value) => {})\r\n );\r\n });\r\n\r\n this.subscriptions.push(\r\n this.entityTypeService\r\n .getElementsListObservable()\r\n .subscribe((entityTypeList: EntityType[]) => {\r\n this.treeData = this.arrayUtilityService.groupByField(\r\n entityTypeList,\r\n this.GROUP_BY_PROPERTY_NAME\r\n );\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy() {\r\n this.subscriptions.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n\r\n this.subscriptions = [];\r\n }\r\n\r\n /**\r\n * this function is responsible for generating and sending the necessary data to the dialog\r\n * @param entityType\r\n */\r\n public showEntityTypeData(entityType: EntityType) {\r\n let entityTypeAux: EntityType;\r\n if (entityType) {\r\n entityTypeAux = this.objectsUtilityService.cloneObject(entityType);\r\n } else {\r\n entityTypeAux = new EntityType();\r\n }\r\n\r\n this.ref = this.dialogService.open(PrgEntityTypeComponent, {\r\n data: {\r\n entityType: entityTypeAux,\r\n viewMode: entityTypeAux.id ? ViewMode.Read : ViewMode.Edit,\r\n },\r\n width: '90vw',\r\n showHeader: true,\r\n contentStyle: { 'max-height': '70%', overflow: 'auto' },\r\n baseZIndex: 10000,\r\n //dismissableMask: true,\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ 'entity-type.fields.' + col.key + '.label' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n (rowNode.level == 0 ? 'entity-type.groups.' : 'entities.') +\r\n rowData[col.key].toLowerCase() +\r\n '.label' | translate\r\n }}\r\n \r\n {{ rowData[col.key] }} \r\n \r\n \r\n \r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { LazyLoadEvent } from 'primeng/api';\r\nimport {\r\n Filter,\r\n FilterExpressions,\r\n FilterGroup,\r\n FilterOperations,\r\n MapPrimeNgExpressionsToFilterExpressions,\r\n MapPrimeNgFilterOperationsToFilterOperations,\r\n Order,\r\n PrimeNgSortToOrderTypeMap,\r\n} from '../../models/filters';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * PrimengUtilityService\r\n */\r\nexport class PrimengUtilityService {\r\n /**\r\n * this function is to calculate the index of the page we need to request\r\n * @param event\r\n * @returns\r\n */\r\n private calcPageIndex(event: LazyLoadEvent): number {\r\n let pageIndex = 0;\r\n if (event.first != 0) {\r\n pageIndex = event.first / event.rows;\r\n }\r\n return pageIndex;\r\n }\r\n\r\n /**\r\n * this function processes the filters coming from\r\n * the event thrown by primeng and returns\r\n * a working filter array to our api\r\n * @param filters\r\n * @param globalFilterFields\r\n * @param globalFilterExpression\r\n * @returns Filter[]\r\n */\r\n private filtersProcessing(\r\n filters: any,\r\n globalFilterFields: string[],\r\n globalFilterExpression: FilterExpressions\r\n ): Filter[] {\r\n let filtersArray: Filter[] = [];\r\n\r\n const filtersKeys = Object.keys(filters);\r\n if (filtersKeys.includes('global')) {\r\n globalFilterFields.forEach((globalFilterField) => {\r\n filtersArray.push(\r\n this.generateFilter(\r\n filters['global'].value,\r\n globalFilterField,\r\n globalFilterExpression,\r\n MapPrimeNgFilterOperationsToFilterOperations.get(\r\n filters['global'].matchMode\r\n )\r\n )\r\n );\r\n });\r\n } else {\r\n filtersKeys.forEach((key: string) => {\r\n Object.keys(filters[key]).forEach((keySubFilter: string) => {\r\n let eventFilter = filters[key][keySubFilter];\r\n\r\n if (eventFilter.value) {\r\n filtersArray.push(\r\n this.generateFilter(\r\n eventFilter.value,\r\n key,\r\n MapPrimeNgExpressionsToFilterExpressions.get(\r\n eventFilter.operator\r\n ),\r\n MapPrimeNgFilterOperationsToFilterOperations.get(\r\n eventFilter.matchMode\r\n )\r\n )\r\n );\r\n }\r\n });\r\n });\r\n }\r\n return filtersArray;\r\n }\r\n\r\n /**\r\n * this function creates a filter with the received parameters\r\n * @param filterValue\r\n * @param propertyName\r\n * @param filterExpression\r\n * @param filterOperation\r\n * @returns\r\n */\r\n private generateFilter(\r\n filterValue: any,\r\n propertyName: string,\r\n filterExpression: FilterExpressions,\r\n filterOperation: FilterOperations\r\n ): Filter {\r\n let filter: Filter = new Filter();\r\n filter.value = filterValue;\r\n filter.propertyName = propertyName;\r\n filter.filterExpression = filterExpression;\r\n filter.filterOperation = filterOperation;\r\n\r\n return filter;\r\n }\r\n\r\n /**\r\n * this function processes the sort from the primeng\r\n * event and returns a functional order array to our api\r\n *\r\n * @param multiSortMeta\r\n * @param sortField\r\n * @param sortOrder\r\n * @returns Order[]\r\n */\r\n private sortProcessing(\r\n multiSortMeta: any[],\r\n sortField: string,\r\n sortOrder: number\r\n ): Order[] {\r\n let filterOrders: Order[] = [];\r\n\r\n if (multiSortMeta) {\r\n multiSortMeta.forEach((sortElement) => {\r\n filterOrders.push(\r\n new Order({\r\n propertyName: sortElement.field,\r\n orderType: PrimeNgSortToOrderTypeMap.get(sortElement.order),\r\n })\r\n );\r\n });\r\n } else {\r\n filterOrders.push(\r\n new Order({\r\n propertyName: sortField,\r\n orderType: PrimeNgSortToOrderTypeMap.get(sortOrder),\r\n })\r\n );\r\n }\r\n return filterOrders;\r\n }\r\n\r\n /**\r\n * this function receives the event from primeng and returns\r\n * the filtergroup with all the necessary information to be used by our api\r\n * @param event\r\n * @param globalFilterFields\r\n * @param globalFilterExpression\r\n * @returns FilterGroup\r\n */\r\n public getFilterGroupByLazyLoadEvent(\r\n event: LazyLoadEvent,\r\n globalFilterFields: string[] = [],\r\n globalFilterExpression: FilterExpressions = FilterExpressions.Or\r\n ): FilterGroup {\r\n let filterGroup: FilterGroup = new FilterGroup();\r\n filterGroup.pageIndex = this.calcPageIndex(event);\r\n filterGroup.pageSize = event.rows;\r\n\r\n if (event.sortField || event.multiSortMeta) {\r\n filterGroup.orderCollection = this.sortProcessing(\r\n event.multiSortMeta,\r\n event.sortField,\r\n event.sortOrder\r\n );\r\n }\r\n\r\n if (event.filters != null && Object.keys(event.filters).length) {\r\n filterGroup.filterCollections = this.filtersProcessing(\r\n event.filters,\r\n globalFilterFields,\r\n globalFilterExpression\r\n );\r\n }\r\n\r\n return filterGroup;\r\n }\r\n}\r\n","import {\r\n Component,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ConfirmationService, LazyLoadEvent } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Table } from 'primeng/table';\r\nimport { Subscription } from 'rxjs';\r\nimport { ReferenceType } from '../../../core/components/dynamic-form/models/constants/reference-type';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ExecutedActionBehaviour } from '../../../core/models/executed-action-behaviourts';\r\nimport {\r\n FilterGroup,\r\n PrimeNgTypeToOurTypes,\r\n} from '../../../core/models/filters';\r\nimport { TableConfigs } from '../../../core/models/table-configs';\r\nimport { PrimengUtilityService } from '../../../core/services/utility/primeng-utility.service';\r\nimport { EntityType } from '../../models/entity-type.model';\r\nimport { PrgEntityTypesConfig } from '../../models/prg-entity-types-config';\r\nimport { PRG_ENTITY_TYPES_CONFIG } from '../../services/entity-types-configuration/prg-entity-types-configuration.service';\r\nimport { AbstractEntityTypeService } from '../../services/entity-types/abstract-entity-type.service';\r\nimport { PrgEntityTypeElementComponent } from '../entity-type-element/prg-entity-type-element.component';\r\n\r\n/**\r\n * list specific entity type elemens\r\n */\r\n@Component({\r\n selector: 'prg-list-specific-entity-type',\r\n templateUrl: './prg-list-specific-entity-type.component.html',\r\n styleUrls: ['./prg-list-specific-entity-type.component.scss'],\r\n providers: [DialogService, ConfirmationService],\r\n})\r\n/**\r\n * PrgListSpecificEntityTypeComponent\r\n */\r\nexport class PrgListSpecificEntityTypeComponent implements OnInit, OnDestroy {\r\n /**\r\n * table view child\r\n */\r\n @ViewChild(Table) dataTableComponent: Table;\r\n\r\n /**\r\n * this input receives the entity type to be listed\r\n */\r\n @Input() entityTypeName: string;\r\n\r\n @Input() onClickGoTo: string = null;\r\n\r\n /**\r\n * entity type data\r\n */\r\n public entityType: EntityType;\r\n\r\n /**\r\n * entity type elemens\r\n */\r\n public entityTypeAllElements: any[] = [];\r\n\r\n /**\r\n * entity groups\r\n */\r\n public entityGroups: any[];\r\n\r\n /**\r\n * lazy loading are loading data\r\n */\r\n public loading: boolean;\r\n\r\n /**\r\n * total elements that can be listed\r\n */\r\n public totalRecords: number;\r\n\r\n /**\r\n * auxiliar primeNgTypeToOurTypes enum\r\n */\r\n public primeNgTypeToOurTypes = PrimeNgTypeToOurTypes;\r\n\r\n /**\r\n * auxiliar ReferenceType enum\r\n */\r\n public ReferenceType = ReferenceType;\r\n\r\n /**\r\n * dialog ref\r\n */\r\n public elementRef: DynamicDialogRef;\r\n\r\n /**\r\n * selected columns objects data\r\n */\r\n public selectedColumnsObject: any[] = [];\r\n\r\n /**\r\n * table configs\r\n */\r\n public tableConfigs: TableConfigs;\r\n\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n */\r\n public subscription: Subscription[] = [];\r\n\r\n /**\r\n * glabal filter is active\r\n */\r\n public globalFilterIsActive: boolean = false;\r\n\r\n /**\r\n * global filtar diabled\r\n */\r\n public globalFilterDisabled: boolean = false;\r\n\r\n /**\r\n * global filter value\r\n */\r\n public globalFilterValue: string;\r\n\r\n /**\r\n * filter group\r\n */\r\n private filterGroup: FilterGroup;\r\n\r\n /**\r\n * this variable serves to get the translation\r\n * label to put in the column select (directly in html doesn't work)\r\n */\r\n public columnsSelectedLabel: string;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param entityTypeService\r\n * @param lookupTableService\r\n * @param dialogService\r\n * @param prgEntityTypesConfig\r\n * @param primengUtilityService\r\n * @param translateService\r\n * @param router\r\n */\r\n constructor(\r\n private entityTypeService: AbstractEntityTypeService,\r\n private dialogService: DialogService,\r\n @Inject(PRG_ENTITY_TYPES_CONFIG)\r\n private prgEntityTypesConfig: PrgEntityTypesConfig,\r\n private primengUtilityService: PrimengUtilityService,\r\n private translateService: TranslateService,\r\n private router: Router\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n async ngOnInit() {\r\n this.tableConfigs = this.prgEntityTypesConfig.specificEntityTypeListConfigs;\r\n\r\n this.entityType = await this.entityTypeService.getAllEntityTypeDataByName(\r\n this.entityTypeName\r\n );\r\n\r\n this.columnsSelectedLabel = await this.translateService\r\n .get('primeng.columns-selected')\r\n .toPromise();\r\n\r\n this.groupPropertyAndAttributesToColumnsSelect();\r\n\r\n this.getColumnsData();\r\n\r\n this.loading = true;\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe all subscriptions\r\n */\r\n public ngOnDestroy(): void {\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n this.subscription = [];\r\n }\r\n\r\n /**\r\n * this function is executed every time\r\n * there is a change in the table's settings (pagination filters, etc)\r\n * @param event\r\n */\r\n public async lazyLoadElements(event: LazyLoadEvent) {\r\n if (event.globalFilter) {\r\n this.globalFilterIsActive = true;\r\n } else {\r\n this.globalFilterIsActive = false;\r\n }\r\n if (this.checkIfHaveColumnFilter(event.filters)) {\r\n this.globalFilterValue = '';\r\n this.globalFilterDisabled = true;\r\n } else {\r\n this.globalFilterDisabled = false;\r\n }\r\n\r\n this.createFilterGroup(event);\r\n this.getTableData();\r\n }\r\n\r\n /**\r\n * this function make an reset to table\r\n */\r\n public clearAllFilters() {\r\n this.dataTableComponent.reset();\r\n }\r\n\r\n /**\r\n * open popup to edit or create an element\r\n * @param element\r\n */\r\n public editElement(event: any, onPopup: boolean, element: any): void {\r\n if (onPopup) {\r\n event.stopPropagation();\r\n this.elementOnPopUp(element, ViewMode.Read);\r\n } else {\r\n if (this.onClickGoTo) {\r\n this.router.navigate([this.onClickGoTo, element.id]);\r\n } else {\r\n this.router.navigate([this.router.url, element.id]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for opening the popup or\r\n * redirect to the page to be created a new element\r\n */\r\n public addNewElement(onPopup: boolean): void {\r\n if (onPopup) {\r\n this.elementOnPopUp({}, ViewMode.Edit);\r\n } else {\r\n this.router.navigate([this.router.url, 'new']);\r\n }\r\n }\r\n\r\n /**\r\n * this function is used when we have a custom filter,\r\n * and the value is a lookuptable, when we click on apply\r\n * we don't have the value set in the filters,\r\n * and I do this setter here, it just allows to have a search(not add option a and b)\r\n * @param value\r\n * @param field\r\n * @param matchMode\r\n */\r\n public lookupTableFilterChange(\r\n value: any,\r\n field: string,\r\n matchMode: string\r\n ): void {\r\n let operator: string = 'and';\r\n const filterAux = this.dataTableComponent.filters[field];\r\n\r\n if (filterAux) {\r\n operator = filterAux[0].operator;\r\n }\r\n\r\n this.dataTableComponent.filters[field] = [\r\n { value: value, matchMode: matchMode, operator: operator },\r\n ];\r\n }\r\n\r\n /**\r\n * get columns object by columns name in table configs\r\n */\r\n private getColumnsData(): void {\r\n this.tableConfigs.defaultColumns.forEach((col) => {\r\n let field = this.entityType.properties.find(\r\n (property) => property.name === col\r\n );\r\n if (!field) {\r\n field = this.entityType.attributes.find(\r\n (attribute) => attribute.name === col\r\n );\r\n }\r\n\r\n if (field) {\r\n this.selectedColumnsObject.push(field);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * create multiselect groups\r\n */\r\n private groupPropertyAndAttributesToColumnsSelect(): void {\r\n this.entityGroups = [\r\n {\r\n label: 'Properties',\r\n value: 'properties',\r\n items: this.entityType.properties,\r\n },\r\n // {\r\n // label: 'Attributes',\r\n // value: 'attributes',\r\n // items: this.entityType.attributes,\r\n // },\r\n ];\r\n }\r\n\r\n /**\r\n * this function makes the request to get the data to be showed in the table\r\n */\r\n private async getTableData(): Promise {\r\n const paginationResponse =\r\n await this.entityTypeService.getEntityTypeElements(\r\n this.entityTypeName,\r\n this.filterGroup\r\n );\r\n this.entityTypeAllElements = paginationResponse.items;\r\n this.totalRecords = paginationResponse.totalItems;\r\n\r\n this.loading = false;\r\n }\r\n\r\n /**\r\n * this is an auxiliary function to check\r\n * if any of the table's filters are active\r\n * @param filters\r\n * @returns\r\n */\r\n private checkIfHaveColumnFilter(filters: any): boolean {\r\n let filtersKeys = Object.keys(filters);\r\n let findValue: boolean = false;\r\n if (filtersKeys.length) {\r\n let index = filtersKeys.indexOf('global');\r\n if (index !== -1) {\r\n filtersKeys.splice(index, 1);\r\n }\r\n\r\n filtersKeys.forEach((filterKey) => {\r\n if (filters[filterKey][0].value) {\r\n findValue = true;\r\n }\r\n });\r\n\r\n return findValue;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * this function calls the service that receives\r\n * the event (LazyLoadEvent) and creates a filterGroup\r\n * @param event\r\n * @returns\r\n */\r\n private createFilterGroup(event: LazyLoadEvent): void {\r\n this.filterGroup = this.primengUtilityService.getFilterGroupByLazyLoadEvent(\r\n event,\r\n this.tableConfigs.globalFilterFields\r\n );\r\n }\r\n\r\n /**\r\n * this function is responsible for creating\r\n * the popup to edit or add an element\r\n * @param element\r\n * @param viewMode\r\n */\r\n private elementOnPopUp(element: any, viewMode: ViewMode): void {\r\n this.elementRef = this.dialogService.open(PrgEntityTypeElementComponent, {\r\n data: {\r\n element: element,\r\n entityType: this.entityType,\r\n viewMode: viewMode,\r\n },\r\n width: '90vw',\r\n showHeader: true,\r\n contentStyle: { 'max-height': '70%', overflow: 'auto' },\r\n dismissableMask: true,\r\n });\r\n\r\n this.subscription.push(\r\n this.elementRef.onClose.subscribe((data: ExecutedActionBehaviour) => {\r\n if (data) {\r\n if (data.reloadData) {\r\n this.getTableData();\r\n } else if (data.resetTable) {\r\n this.dataTableComponent.reset();\r\n }\r\n }\r\n this.elementRef.destroy();\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {{ 'entity-type.tabs.' + group.value + '.label' | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'entities.' + entityType.name + '.fields.' + col.name + '.label'\r\n | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n

\r\n

\r\n {{ element[col.name] | date: ('app.date-format' | translate) }}\r\n

\r\n

{{ element[col.name] }}

\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n","/**\r\n * Class ItemsData\r\n */\r\nexport class PaginationResponse {\r\n /**\r\n * array of items\r\n */\r\n items: any[] = [];\r\n\r\n /**\r\n * page being sent\r\n */\r\n currentPage!: number;\r\n\r\n /**\r\n * total items that exist in bd\r\n */\r\n totalItems!: number;\r\n\r\n /**\r\n * Constructor\r\n * this constructor receives the fields sent by the app,\r\n * and creates an object with the fields sent and the values per default\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Text\r\n */\r\nexport class InputTextConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputText;\r\n\r\n /* /!**\r\n * When present, it specifies that the element should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n","/**\r\n * this class serves to have a configuration of\r\n * what happens after a certain action is successfully executed\r\n */\r\nexport class ExecutedActionBehaviour {\r\n /**\r\n * reset table does a complete reset of the table(clean filters, paginations)\r\n */\r\n resetTable: boolean = false;\r\n\r\n /**\r\n * reload data\r\n */\r\n reloadData: boolean = true;\r\n\r\n /**\r\n * redirect to list\r\n */\r\n redirectToList: boolean = true;\r\n\r\n /**\r\n * change view mode to read\r\n */\r\n changeViewModeToRead: boolean = true;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","/**\r\n * Class that define the common properties that will be used for each component on dashboard\r\n */\r\nexport class BaseDashboardComponent {\r\n /**\r\n * The key of the component\r\n * @type {string}\r\n */\r\n static key: string;\r\n /**\r\n * Configurations settings for the component\r\n * @type {any}\r\n */\r\n static configurationSettings: any = { fields: [] };\r\n /**\r\n * The default values for the configurations settings\r\n * @type {string}\r\n */\r\n static staticSettings: string;\r\n}\r\n","import { InputNumberConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\n\r\n/**\r\n * Constant that define the key , configuration settings and settings for bar chart component\r\n * @type {{staticSettings: string, configurationSettings: {fields: InputNumberConfiguration[]}, key: string}}\r\n */\r\nexport const PRG_BAR_CHART_SETTINGS = {\r\n key: 'Bar-chart',\r\n configurationSettings: {\r\n fields: [\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty1',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty2',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty3',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty4',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty5',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty6',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'barChartProperty7',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n ],\r\n },\r\n staticSettings: JSON.stringify({\r\n barChartProperty1: 1,\r\n barChartProperty2: 15,\r\n barChartProperty3: 30,\r\n barChartProperty4: 45,\r\n barChartProperty5: 120,\r\n barChartProperty6: 80,\r\n barChartProperty7: 152,\r\n }),\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { GridsterItemComponentInterface } from 'angular-gridster2';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Dashboard } from '../../models/dashboard.model';\r\nimport {\r\n PrgGridsterConfig,\r\n PrgGridsterItem,\r\n} from '../../models/prg-gridster-config';\r\n\r\n/**\r\n * AbstractQueriesService class that defines an\r\n *
abstract dashboard service to\r\n *
be extended by the mock and real\r\n *
dashboard services\r\n */\r\n\r\nexport abstract class AbstractDashboardService {\r\n /**\r\n * Constructor\r\n * @param {HttpClient} http\r\n */\r\n constructor(private http: HttpClient) {}\r\n /**\r\n * Detect changes on dashboard options made on prg-dashboard-options.component\r\n */\r\n protected dashboardOptionsChangesSubject =\r\n new BehaviorSubject(null);\r\n\r\n /**\r\n * Detect changes on the size of dashboardItems\r\n * @type {BehaviorSubject}\r\n * @protected\r\n */\r\n protected dashboardItemsResizeSubject =\r\n new BehaviorSubject(null);\r\n\r\n /**\r\n * Detect changes on the list of dashboards\r\n * @type {BehaviorSubject}\r\n * @protected\r\n */\r\n protected dashboardListUpdatedSubject = new BehaviorSubject(\r\n null\r\n );\r\n\r\n /**\r\n * Setter for dashboardOptionsChangesSubject\r\n * @param {GridConfigsAndItems} value\r\n */\r\n public setDashboardOptionsChanges(value: GridConfigsAndItems): void {\r\n this.dashboardOptionsChangesSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for dashboardOptionsChangesSubject\r\n * @returns {Observable}\r\n */\r\n public getDashboardOptionsChangesObservable(): Observable {\r\n return this.dashboardOptionsChangesSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for dashboardOptionsChangesSubject\r\n * @returns {GridConfigsAndItems}\r\n */\r\n public getDashboardOptionsChangesValue(): GridConfigsAndItems {\r\n return this.dashboardOptionsChangesSubject.getValue();\r\n }\r\n\r\n /**\r\n * Setter for dashboardItemsResizeSubject\r\n * @param {GridsterItemComponentInterface} value\r\n */\r\n public setDashboardItemsResize(value: GridsterItemComponentInterface): void {\r\n this.dashboardItemsResizeSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for dashboardItemsResizeSubject\r\n * @returns {Observable}\r\n */\r\n public getDashboardItemsResizeObservable(): Observable {\r\n return this.dashboardItemsResizeSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for dashboardItemsResizeSubject\r\n * @returns {GridsterItemComponentInterface}\r\n */\r\n public getDashboardItemsResizeValue(): GridsterItemComponentInterface {\r\n return this.dashboardItemsResizeSubject.getValue();\r\n }\r\n\r\n /**\r\n * Setter for dashboardListUpdatedSubject\r\n * @param {Dashboard[]} value\r\n */\r\n protected setDashboardListUpdated(value: Dashboard[]): void {\r\n this.dashboardListUpdatedSubject.next(value);\r\n }\r\n\r\n /**\r\n * Getter for dashboardListUpdatedSubject\r\n * @returns {Observable}\r\n */\r\n public getDashboardListUpdatedObservable(): Observable {\r\n return this.dashboardListUpdatedSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for dashboardListUpdatedSubject\r\n * @returns {Dashboard[]}\r\n */\r\n public getDashboardListUpdatedValue(): Dashboard[] {\r\n return this.dashboardListUpdatedSubject.getValue();\r\n }\r\n\r\n /**\r\n * Function responsible to store a new Dashboard\r\n * @param {Dashboard} newDashboard\r\n * @returns {Promise}\r\n */\r\n public abstract createDashboardAsync(\r\n newDashboard: Dashboard\r\n ): Promise;\r\n\r\n /**\r\n * Get dashboard by Id\r\n * @param {string} dashboardId\r\n * @returns {Promise}\r\n */\r\n public abstract getDashboardByIdAsync(\r\n dashboardId: string\r\n ): Promise;\r\n\r\n /**\r\n * Get dashboards by User Logged\r\n * @returns {Promise}\r\n */\r\n public abstract getDashboardsByUserAsync(): Promise;\r\n\r\n /**\r\n * Function responsible to update a dashboard\r\n * @param {string} dashboardId\r\n * @param {Dashboard} dashboard\r\n * @returns {Promise}\r\n */\r\n public abstract updateDashboardAsync(\r\n dashboardId: string,\r\n dashboard: Dashboard\r\n ): Promise;\r\n}\r\n\r\nexport type GridConfigsAndItems = {\r\n gridsterConfig: PrgGridsterConfig;\r\n gridsterItems: PrgGridsterItem[];\r\n};\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UIChart } from 'primeng/chart';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport { AbstractDashboardService } from '../../../services/dashboard/abstract-dashboard.service';\r\nimport { BaseDashboardComponent } from '../base-dashboard-component';\r\nimport { PRG_BAR_CHART_SETTINGS } from './prg-bar-chart-settings';\r\n\r\n/**\r\n * Bar Chart Component\r\n */\r\n@Component({\r\n selector: 'prg-bar-chart',\r\n templateUrl: './prg-bar-chart.component.html',\r\n styleUrls: ['./prg-bar-chart.component.scss'],\r\n})\r\nexport class PrgBarChartComponent\r\n extends BaseDashboardComponent\r\n implements OnInit, OnDestroy\r\n{\r\n /**\r\n * Data for this chart\r\n * @type {any}\r\n */\r\n public basicData: any;\r\n /**\r\n * Options for this chart\r\n * @type {any}\r\n */\r\n public basicOptions: any;\r\n /**\r\n * Height of the chart\r\n * @type {string}\r\n */\r\n public height: string;\r\n /**\r\n * Width of the chart\r\n * @type {string}\r\n */\r\n public width: string;\r\n /**\r\n * The item id used on dashboard\r\n */\r\n @Input('itemId') itemId;\r\n\r\n /**\r\n * The custom settings for this component\r\n * @param itemSettings\r\n */\r\n @Input('itemSettings') set itemSettings(itemSettings: any) {\r\n if (itemSettings != null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(itemSettings)\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * aux settings\r\n * @private\r\n */\r\n private _itemSettings;\r\n\r\n /**\r\n * Getter for item settings\r\n * @returns {any}\r\n */\r\n get itemSettings(): any {\r\n return this._itemSettings;\r\n }\r\n\r\n /**\r\n * The chart element from template\r\n * @type {UIChart}\r\n */\r\n @ViewChild('chart') chart: UIChart;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {\r\n super();\r\n PrgBarChartComponent.key = PRG_BAR_CHART_SETTINGS.key;\r\n PrgBarChartComponent.staticSettings = PRG_BAR_CHART_SETTINGS.staticSettings;\r\n PrgBarChartComponent.configurationSettings =\r\n PRG_BAR_CHART_SETTINGS.configurationSettings;\r\n }\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n this.subscription.push(\r\n this.dashboardService\r\n .getDashboardItemsResizeObservable()\r\n .pipe(filter((item) => item?.item?.id === this.itemId))\r\n .subscribe((item) => {\r\n this.height = (item.height - item.height * 0.05).toString() + 'px';\r\n this.width = (item.width - item.width * 0.02).toString() + 'px';\r\n if (this.chart?.chart) {\r\n this.chart.chart.canvas.parentNode.style.height =\r\n (item.height - item.height * 0.05).toString() + 'px';\r\n this.chart.chart.canvas.parentNode.style.width =\r\n (item.width - item.width * 0.02).toString() + 'px';\r\n this.chart.reinit();\r\n }\r\n })\r\n );\r\n if (this._itemSettings == null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(\r\n PrgBarChartComponent.staticSettings\r\n )\r\n );\r\n }\r\n\r\n this._itemSettings = Object.values(this._itemSettings);\r\n this.basicData = {\r\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\r\n datasets: [\r\n {\r\n label: 'My First dataset',\r\n backgroundColor: '#42A5F5',\r\n data: this._itemSettings,\r\n },\r\n {\r\n label: 'My Second dataset',\r\n backgroundColor: '#FFA726',\r\n data: [28, 48, 40, 19, 86, 27, 90],\r\n },\r\n ],\r\n };\r\n\r\n this.basicOptions = {\r\n maintainAspectRatio: false,\r\n responsive: true,\r\n plugins: {\r\n legend: {\r\n labels: {\r\n color: '#495057',\r\n },\r\n },\r\n },\r\n scales: {\r\n x: {\r\n ticks: {\r\n color: '#495057',\r\n },\r\n grid: {\r\n color: '#ebedef',\r\n },\r\n },\r\n y: {\r\n ticks: {\r\n color: '#495057',\r\n },\r\n grid: {\r\n color: '#ebedef',\r\n },\r\n },\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy(): void {\r\n this.subscription.forEach((subs) => {\r\n subs.unsubscribe();\r\n });\r\n }\r\n}\r\n","
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n","import { InputNumberConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\n\r\n/**\r\n * Constant that define the key , configuration settings and settings for line chart component\r\n * @type {{staticSettings: string, configurationSettings: {fields: InputNumberConfiguration[]}, key: string}}\r\n */\r\nexport const PRG_BAR_LINE_SETTINGS = {\r\n key: 'Line-Chart',\r\n configurationSettings: {\r\n fields: [\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty1',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty2',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty3',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty4',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty5',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty6',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'lineChartProperty7',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n ],\r\n },\r\n staticSettings: JSON.stringify({\r\n lineChartProperty1: 35,\r\n lineChartProperty2: 58,\r\n lineChartProperty3: 85,\r\n lineChartProperty4: 33,\r\n lineChartProperty5: 99,\r\n lineChartProperty6: 120,\r\n lineChartProperty7: 150,\r\n }),\r\n};\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UIChart } from 'primeng/chart';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport { AbstractDashboardService } from '../../../services/dashboard/abstract-dashboard.service';\r\nimport { BaseDashboardComponent } from '../base-dashboard-component';\r\nimport { PRG_BAR_LINE_SETTINGS } from './prg-line-chart-settings';\r\n\r\n/**\r\n * Line Chart Component\r\n */\r\n@Component({\r\n selector: 'prg-line-chart',\r\n templateUrl: './prg-line-chart.component.html',\r\n styleUrls: ['./prg-line-chart.component.scss'],\r\n})\r\nexport class PrgLineChartComponent\r\n extends BaseDashboardComponent\r\n implements OnInit, OnDestroy\r\n{\r\n /**\r\n * Data for this chart\r\n * @type {any}\r\n */\r\n public basicData: any;\r\n /**\r\n * Options for this chart\r\n * @type {any}\r\n */\r\n public basicOptions: any;\r\n /**\r\n * Height of the chart\r\n * @type {string}\r\n */\r\n public height: string;\r\n /**\r\n * Width of the chart\r\n * @type {string}\r\n */\r\n public width: string;\r\n /**\r\n * The item id used on dashboard\r\n */\r\n @Input('itemId') itemId;\r\n\r\n /**\r\n * The custom settings for this component\r\n * @param itemSettings\r\n */\r\n @Input('itemSettings') set itemSettings(itemSettings: any) {\r\n if (itemSettings != null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(itemSettings)\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * aux settings\r\n * @private\r\n */\r\n private _itemSettings;\r\n\r\n /**\r\n * Getter for item settings\r\n * @returns {any}\r\n */\r\n get itemSettings(): any {\r\n return this._itemSettings;\r\n }\r\n\r\n /**\r\n * The chart element from template\r\n * @type {UIChart}\r\n */\r\n @ViewChild('chart') chart: UIChart;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {\r\n super();\r\n PrgLineChartComponent.key = PRG_BAR_LINE_SETTINGS.key;\r\n PrgLineChartComponent.staticSettings = PRG_BAR_LINE_SETTINGS.staticSettings;\r\n\r\n PrgLineChartComponent.configurationSettings =\r\n PRG_BAR_LINE_SETTINGS.configurationSettings;\r\n }\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n if (this._itemSettings == null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(\r\n PrgLineChartComponent.staticSettings\r\n )\r\n );\r\n }\r\n\r\n this._itemSettings = Object.values(this._itemSettings);\r\n\r\n this.basicData = {\r\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\r\n datasets: [\r\n {\r\n label: 'First Dataset',\r\n data: this._itemSettings,\r\n fill: false,\r\n borderColor: '#42A5F5',\r\n tension: 0.4,\r\n },\r\n {\r\n label: 'Second Dataset',\r\n data: [28, 48, 40, 19, 86, 27, 90],\r\n fill: false,\r\n borderColor: '#FFA726',\r\n tension: 0.4,\r\n },\r\n ],\r\n };\r\n\r\n this.basicOptions = {\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n labels: {\r\n color: '#495057',\r\n },\r\n },\r\n },\r\n scales: {\r\n x: {\r\n ticks: {\r\n color: '#495057',\r\n },\r\n grid: {\r\n color: '#ebedef',\r\n },\r\n },\r\n y: {\r\n ticks: {\r\n color: '#495057',\r\n },\r\n grid: {\r\n color: '#ebedef',\r\n },\r\n },\r\n },\r\n };\r\n this.subscription.push(\r\n this.dashboardService\r\n .getDashboardItemsResizeObservable()\r\n .pipe(filter((item) => item?.item?.id === this.itemId))\r\n .subscribe((item) => {\r\n this.height = (item.height - item.height * 0.05).toString() + 'px';\r\n this.width = (item.width - item.width * 0.02).toString() + 'px';\r\n if (this.chart?.chart) {\r\n this.chart.chart.canvas.parentNode.style.height =\r\n (item.height - item.height * 0.05).toString() + 'px';\r\n this.chart.chart.canvas.parentNode.style.width =\r\n (item.width - item.width * 0.02).toString() + 'px';\r\n this.chart.reinit();\r\n }\r\n })\r\n );\r\n }\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy(): void {\r\n this.subscription.forEach((subs) => {\r\n subs.unsubscribe();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { InputNumberConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\n\r\n/**\r\n * Constant that define the key , configuration settings and settings for doughnut chart component\r\n * @type {{staticSettings: string, configurationSettings: {fields: InputNumberConfiguration[]}, key: string}}\r\n */\r\nexport const PRG_BAR_DOUGHNUT_SETTINGS = {\r\n key: 'Doughnut-settings',\r\n configurationSettings: {\r\n fields: [\r\n new InputNumberConfiguration({\r\n key: 'donutChartProperty1',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'donutChartProperty2',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'donutChartProperty3',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n ],\r\n },\r\n staticSettings: JSON.stringify({\r\n donutChartProperty1: 30,\r\n donutChartProperty2: 58,\r\n donutChartProperty3: 29,\r\n }),\r\n};\r\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UIChart } from 'primeng/chart';\r\nimport { filter, Subscription } from 'rxjs';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport { AbstractDashboardService } from '../../../services/dashboard/abstract-dashboard.service';\r\nimport { BaseDashboardComponent } from '../base-dashboard-component';\r\nimport { PRG_BAR_DOUGHNUT_SETTINGS } from './prg-doughnut-chart-settings';\r\n\r\n/**\r\n * Doughnut Chart Component\r\n */\r\n@Component({\r\n selector: 'prg-doughnut-chart',\r\n templateUrl: './prg-doughnut-chart.component.html',\r\n styleUrls: ['./prg-doughnut-chart.component.scss'],\r\n})\r\nexport class PrgDoughnutChartComponent\r\n extends BaseDashboardComponent\r\n implements OnInit, OnDestroy\r\n{\r\n /**\r\n * Data for this chart\r\n * @type {any}\r\n */\r\n public basicData: any;\r\n /**\r\n * Options for this chart\r\n * @type {any}\r\n */\r\n public basicOptions: any;\r\n /**\r\n * Height of the chart\r\n * @type {string}\r\n */\r\n public height: string;\r\n /**\r\n * Width of the chart\r\n * @type {string}\r\n */\r\n public width: string;\r\n /**\r\n * The item id used on dashboard\r\n */\r\n @Input('itemId') itemId;\r\n\r\n /**\r\n * The custom settings for this component\r\n * @param itemSettings\r\n */\r\n @Input('itemSettings') set itemSettings(itemSettings: any) {\r\n if (itemSettings != null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(itemSettings)\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * aux settings\r\n * @private\r\n */\r\n private _itemSettings;\r\n\r\n /**\r\n * Getter for item settings\r\n * @returns {any}\r\n */\r\n get itemSettings(): any {\r\n return this._itemSettings;\r\n }\r\n\r\n /**\r\n * The chart element from template\r\n * @type {UIChart}\r\n */\r\n @ViewChild('chart') chart: UIChart;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * Cosntructor\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {\r\n super();\r\n PrgDoughnutChartComponent.key = PRG_BAR_DOUGHNUT_SETTINGS.key;\r\n PrgDoughnutChartComponent.staticSettings =\r\n PRG_BAR_DOUGHNUT_SETTINGS.staticSettings;\r\n PrgDoughnutChartComponent.configurationSettings =\r\n PRG_BAR_DOUGHNUT_SETTINGS.configurationSettings;\r\n }\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n if (this._itemSettings == null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(\r\n PrgDoughnutChartComponent.staticSettings\r\n )\r\n );\r\n }\r\n\r\n this._itemSettings = Object.values(this._itemSettings);\r\n\r\n this.basicData = {\r\n labels: ['A', 'B', 'C'],\r\n datasets: [\r\n {\r\n data: this._itemSettings,\r\n backgroundColor: ['#FF6384', '#36A2EB', '#FFCE56'],\r\n hoverBackgroundColor: ['#FF6384', '#36A2EB', '#FFCE56'],\r\n },\r\n ],\r\n };\r\n\r\n this.basicOptions = {\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n labels: {\r\n color: '#495057',\r\n },\r\n },\r\n },\r\n };\r\n\r\n this.subscription.push(\r\n this.dashboardService\r\n .getDashboardItemsResizeObservable()\r\n .pipe(filter((item) => item?.item?.id === this.itemId))\r\n .subscribe((item) => {\r\n this.height = (item.height - item.height * 0.05).toString() + 'px';\r\n this.width = (item.width - item.width * 0.02).toString() + 'px';\r\n if (this.chart?.chart) {\r\n this.chart.chart.canvas.parentNode.style.height =\r\n (item.height - item.height * 0.05).toString() + 'px';\r\n this.chart.chart.canvas.parentNode.style.width =\r\n (item.width - item.width * 0.02).toString() + 'px';\r\n this.chart.reinit();\r\n }\r\n })\r\n );\r\n }\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy(): void {\r\n this.subscription.forEach((subs) => {\r\n subs.unsubscribe();\r\n });\r\n }\r\n}\r\n","
\r\n\r\n \r\n\r\n
\r\n\r\n\r\n","import { Validators } from '@angular/forms';\r\nimport { InputNumberConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\nimport { InputTextConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.model';\r\n\r\n/**\r\n * Constant that define the key , configuration settings and settings for table component\r\n * @type {{staticSettings: string, configurationSettings: {fields: (InputNumberConfiguration | InputTextConfiguration)[]}, key: string}}\r\n */\r\nexport const PRG_TABLE_SETTINGS = {\r\n key: 'Table',\r\n configurationSettings: {\r\n fields: [\r\n new InputNumberConfiguration({\r\n key: 'tableProperty1',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n allowEmpty: false,\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'tableProperty2',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n validators: [Validators.required],\r\n }),\r\n new InputTextConfiguration({\r\n key: 'tableProperty3',\r\n disabledOutputEvent: false,\r\n }),\r\n ],\r\n },\r\n staticSettings: JSON.stringify({\r\n tableProperty1: 1,\r\n tableProperty2: 10,\r\n tableProperty3: 15,\r\n }),\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { filter, lastValueFrom, map, Subscription } from 'rxjs';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport { MainLayoutService } from '../../../../layouts/services/main-layout.service';\r\nimport { AbstractDashboardService } from '../../../services/dashboard/abstract-dashboard.service';\r\nimport { BaseDashboardComponent } from '../base-dashboard-component';\r\nimport { PRG_TABLE_SETTINGS } from './prg-table-settings';\r\n\r\n/**\r\n * Table Component\r\n */\r\n@Component({\r\n selector: 'prg-table',\r\n templateUrl: './prg-table.component.html',\r\n styleUrls: ['./prg-table.component.scss'],\r\n})\r\nexport class PrgTableComponent\r\n extends BaseDashboardComponent\r\n implements OnInit, OnDestroy\r\n{\r\n /**\r\n * Data for this table\r\n * @type {any}\r\n */\r\n public products: Product[];\r\n /**\r\n * Height of the chart\r\n * @type {string}\r\n */\r\n public height: string;\r\n /**\r\n * Width of the chart\r\n * @type {string}\r\n */\r\n public width: string;\r\n /**\r\n * The item id used on dashboard\r\n */\r\n @Input('itemId') itemId;\r\n\r\n /**\r\n * The custom settings for this component\r\n * @param itemSettings\r\n */\r\n @Input('itemSettings') set itemSettings(itemSettings: any) {\r\n if (itemSettings != null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(itemSettings)\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * aux settings\r\n * @private\r\n */\r\n private _itemSettings;\r\n\r\n /**\r\n * Getter for item settings\r\n * @returns {any}\r\n */\r\n get itemSettings(): any {\r\n return this._itemSettings;\r\n }\r\n\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {HttpClient} http\r\n * @param {MainLayoutService} mainLayoutService\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n */\r\n constructor(\r\n private http: HttpClient,\r\n private mainLayoutService: MainLayoutService,\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {\r\n super();\r\n PrgTableComponent.key = PRG_TABLE_SETTINGS.key;\r\n PrgTableComponent.staticSettings = PRG_TABLE_SETTINGS.staticSettings;\r\n PrgTableComponent.configurationSettings =\r\n PRG_TABLE_SETTINGS.configurationSettings;\r\n }\r\n\r\n /**\r\n * ngOnInit\r\n * @returns {Promise}\r\n */\r\n async ngOnInit() {\r\n if (this._itemSettings == null) {\r\n this._itemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(PrgTableComponent.staticSettings)\r\n );\r\n }\r\n\r\n this._itemSettings = Object.values(this._itemSettings);\r\n this.subscription.push(\r\n this.dashboardService\r\n .getDashboardItemsResizeObservable()\r\n .pipe(filter((item) => item?.item?.id === this.itemId))\r\n .subscribe((item) => {\r\n this.height = (item.height - item.height * 0.05).toString() + 'px';\r\n this.width = (item.width - item.width * 0.02).toString() + 'px';\r\n })\r\n );\r\n this.products = await lastValueFrom(\r\n this.http\r\n .get('assets/products.json')\r\n .pipe(map((res) => res.data))\r\n );\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n */\r\n ngOnDestroy(): void {\r\n this.subscription.forEach((subs) => {\r\n subs.unsubscribe();\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Product Interface used to test table component\r\n */\r\nexport interface Product {\r\n /**\r\n * id\r\n */\r\n id?: string;\r\n /**\r\n * code\r\n */\r\n code?: string;\r\n /**\r\n * name\r\n */\r\n name?: string;\r\n /**\r\n * description\r\n */\r\n description?: string;\r\n /**\r\n * price\r\n */\r\n price?: number;\r\n /**\r\n * quantity\r\n */\r\n quantity?: number;\r\n /**\r\n * inventoryStatus\r\n */\r\n inventoryStatus?: string;\r\n /**\r\n * category\r\n */\r\n category?: string;\r\n /**\r\n * image\r\n */\r\n image?: string;\r\n /**\r\n * rating\r\n */\r\n rating?: number;\r\n}\r\n","
\r\n\r\n \r\n \r\n Code\r\n Name\r\n Category\r\n Quantity\r\n \r\n \r\n \r\n \r\n {{product.code}}\r\n {{product.name}}\r\n {{product.category}}\r\n {{product.quantity}}\r\n \r\n \r\n\r\n
\r\n","import { BaseEntity } from '../../core/models/base-entity.model';\r\nimport {\r\n PrgBarChartComponent,\r\n PrgDoughnutChartComponent,\r\n PrgLineChartComponent,\r\n PrgTableComponent,\r\n} from '../components/dashboard-items';\r\n\r\n/**\r\n * Enum for dynamic components to be used on dashboards\r\n */\r\nexport enum ComponentTypeEnum {\r\n BarChart = 'Bar-Chart',\r\n LineChart = 'Line-Chart',\r\n DoughnutChart = 'Doughnut-Chart',\r\n Table = 'Table',\r\n}\r\n\r\n/**\r\n * Map name of componentType to classes\r\n */\r\nexport const MapComponentTypesToClass: Map = new Map<\r\n ComponentTypeEnum,\r\n any\r\n>([\r\n [ComponentTypeEnum.BarChart, PrgBarChartComponent],\r\n [ComponentTypeEnum.LineChart, PrgLineChartComponent],\r\n [ComponentTypeEnum.DoughnutChart, PrgDoughnutChartComponent],\r\n [ComponentTypeEnum.Table, PrgTableComponent],\r\n]);\r\n\r\n/**\r\n * Dashboard Class\r\n */\r\nexport class Dashboard extends BaseEntity {\r\n /**\r\n * Complete path for configuration items tree\r\n * @type {string}\r\n */\r\n path: string;\r\n /**\r\n * Read only\r\n * @type {boolean}\r\n */\r\n isPublic: boolean = true;\r\n /**\r\n * An array of entity types\r\n * @type {string[]}\r\n */\r\n entityTypeIds: string[]; // db JSON string\r\n /**\r\n * Settings of the dashboard\r\n * @type {string}\r\n */\r\n settings: string;\r\n /**\r\n * The items of dashboard\r\n * @type {DashboardItem[]}\r\n */\r\n items: DashboardItem[];\r\n\r\n /**\r\n * Cosntructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Dashboard Items CLass\r\n */\r\nexport class DashboardItem extends BaseEntity {\r\n /**\r\n * number of columns in of the item on dashboard\r\n * @type {number}\r\n */\r\n cols: number;\r\n /**\r\n * number of rows in of the item on dashboard\r\n * @type {number}\r\n */\r\n rows: number;\r\n /**\r\n * x position in dashboard\r\n * @type {number}\r\n */\r\n x: number;\r\n /**\r\n * y position in dashboard\r\n * @type {number}\r\n */\r\n y: number;\r\n /**\r\n * Component type\r\n * @type {string}\r\n */\r\n componentType: string;\r\n /**\r\n * Dashboard Id\r\n * @type {string}\r\n */\r\n dashboardId: string;\r\n /**\r\n * Override GuiSettings settings of componentType\r\n * @type {string}\r\n */\r\n settings: string;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Component Type Class\r\n */\r\nexport class ComponentType extends BaseEntity {\r\n /**\r\n * Gui Settings\r\n * @type {string}\r\n */\r\n generalSettings: any;\r\n /**\r\n * Image of Component type\r\n * @type {string}\r\n */\r\n imageUrl: string;\r\n /**\r\n * Type of component\r\n * @type {ComponentTypeEnum}\r\n */\r\n type: ComponentTypeEnum;\r\n\r\n /**\r\n * Label for translation purpose\r\n * @type {string}\r\n */\r\n label: string;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { DateTimeConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-date-time/date-time.model';\r\nimport { InputNumberConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\nimport { InputTextConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.model';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../core/components/dynamic-form/models/constants/reference-type';\r\nimport { ToolbarSlot } from '../../core/components/dynamic-form/models/constants/toolbar-slots';\r\nimport { ExecutedActionBehaviour } from '../../core/models/executed-action-behaviourts';\r\nimport {\r\n ComponentType,\r\n ComponentTypeEnum,\r\n Dashboard,\r\n DashboardItem,\r\n} from '../../dashboard/models/dashboard.model';\r\nimport {\r\n EntityType,\r\n EntityTypeAttribute,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n HttpVerb,\r\n} from '../models/entity-type.model';\r\n\r\nexport interface Database {\r\n /**\r\n * Mock Entity Types\r\n */\r\n EntityTypes: EntityType[];\r\n /**\r\n * Mock Entity Types Operations\r\n */\r\n EntityTypesOperations: EntityTypeOperation[];\r\n /**\r\n * Mock Entity Types Attributes\r\n */\r\n EntityTypeAttribute: EntityTypeAttribute[];\r\n /**\r\n * Mock Entity Types Properties\r\n */\r\n EntityTypeProperty: EntityTypeProperty[];\r\n\r\n /**\r\n * Mock Product Entity Type\r\n */\r\n product: any[];\r\n dashboard: Dashboard[];\r\n componentType: ComponentType[];\r\n}\r\n\r\n/**\r\n * Mock Database\r\n */\r\nexport const MockDatabase: Database = {\r\n EntityTypes: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Customer',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings: 'qwertty',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'User',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings: '12346',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Refunds',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings:\r\n 'new ModelQualquer({list : {pagination:false, columns: string[]} ,form:{} })',\r\n group: 'Store',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Orders',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings: 'nccnnc',\r\n group: 'Store',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'product',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings:\r\n 'new ModelQualquer({list : {pagination:false, columns: BaseFields[]} ,form:{} })',\r\n group: 'Store',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'dashboard',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings:\r\n 'new ModelQualquer({list : {pagination:false, columns: BaseFields[]} ,form:{} })',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '7',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'dashboarditem',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings:\r\n 'new ModelQualquer({list : {pagination:false, columns: BaseFields[]} ,form:{} })',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n {\r\n id: '8',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'componentType',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings:\r\n 'new ModelQualquer({list : {pagination:false, columns: BaseFields[]} ,form:{} })',\r\n group: 'System',\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n },\r\n ],\r\n\r\n EntityTypeProperty: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'property1',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n //referenceName\r\n reference: 'dataType',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'property2',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'number',\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 3,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'property3',\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings:\r\n \"String(new InputTextConfiguration({disabled:true, visibleExpression:'sisisi'}))\",\r\n dataTypeId: 'dataType.lookupTable',\r\n isArray: false,\r\n order: 3,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'property4',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 4,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customername',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customername',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'customer name',\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customerId',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customerId',\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 1,\r\n reference: 'customerId',\r\n },\r\n {\r\n id: '7',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'dateofbirth',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'dateofbirth',\r\n dataTypeId: 'dataType.date',\r\n isArray: false,\r\n order: 1,\r\n reference: 'dateofbirth',\r\n },\r\n {\r\n id: '8',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'name',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'name',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'name',\r\n },\r\n {\r\n id: '9',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'userId',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'userId',\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 1,\r\n reference: 'userId',\r\n },\r\n {\r\n id: '10',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'RegisterDate',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'RegisterDate',\r\n dataTypeId: 'dataType.date',\r\n isArray: false,\r\n order: 1,\r\n reference: 'RegisterDate',\r\n },\r\n {\r\n id: '99999991',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'id',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: null,\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: null,\r\n },\r\n {\r\n id: '99999992',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'name',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify(\r\n new InputTextConfiguration({\r\n readonly: false,\r\n key: 'name',\r\n validators: ['Validators.required'] as any,\r\n basePathTranslation: 'entities.product.fields',\r\n })\r\n ),\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 2,\r\n reference: null,\r\n },\r\n {\r\n id: '99999993',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'description',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify(\r\n new InputTextConfiguration({\r\n readonly: false,\r\n key: 'description',\r\n validators: ['Validators.maxLength(20)'] as any,\r\n basePathTranslation: 'entities.product.fields',\r\n })\r\n ),\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 2,\r\n reference: null,\r\n },\r\n {\r\n id: '99999994',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'expiryDate',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify(\r\n new DateTimeConfiguration({\r\n key: 'expiryDate',\r\n validators: ['Validators.required'] as any,\r\n })\r\n ),\r\n dataTypeId: 'dataType.date',\r\n isArray: true,\r\n order: 3,\r\n reference: null,\r\n },\r\n {\r\n id: '99999995',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'value',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify(\r\n new InputNumberConfiguration({\r\n readonly: false,\r\n key: 'value',\r\n validators: ['Validators.required'] as any,\r\n })\r\n ),\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 4,\r\n reference: null,\r\n },\r\n\r\n {\r\n id: '99999996',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'stock',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify({\r\n controlName: ControlName.dropdown,\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'stockStatus',\r\n readonly: false,\r\n key: 'stock',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n validators: ['Validators.required'] as any,\r\n }),\r\n dataTypeId: 'dataType.lookupTable',\r\n isArray: false,\r\n order: 4,\r\n reference: 'stockStatus',\r\n },\r\n {\r\n id: '9999996',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'stock',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify({\r\n controlName: ControlName.dropdown,\r\n referenceType: ReferenceType.LookupTable,\r\n referenceName: 'stockStatus',\r\n readonly: false,\r\n key: 'stock',\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n validators: ['Validators.required'] as any,\r\n }),\r\n dataTypeId: 'dataType.lookupTable',\r\n isArray: false,\r\n order: 4,\r\n reference: 'stockStatus',\r\n },\r\n {\r\n id: '70000',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'name',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '6',\r\n guiSettings: JSON.stringify(\r\n new InputTextConfiguration({\r\n readonly: false,\r\n key: 'name',\r\n validators: ['Validators.required'] as any,\r\n basePathTranslation: 'entities.product.fields', //mudar\r\n })\r\n ),\r\n dataTypeId: 'dataType.text',\r\n isArray: false,\r\n order: 1,\r\n reference: null, //referencia lookup\r\n },\r\n {\r\n id: '700001',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'id',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '6',\r\n guiSettings: null,\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: null,\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.entityType',\r\n entityTypeId: '6',\r\n guiSettings: 'asa',\r\n id: '225f5414-e317-4fd8-a6ed-d5cdd23e1e9c',\r\n isArray: true,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'items',\r\n operationId: null,\r\n order: 1,\r\n reference: 'DashboardItem',\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '6',\r\n guiSettings: 'sda',\r\n id: 'b8f206a8-44f6-41d0-853f-d3204fba1fa0',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'path',\r\n operationId: null,\r\n order: 1,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.default',\r\n entityTypeId: '6',\r\n guiSettings: 'ddd',\r\n id: '1a244e5d-6968-4c2e-b115-49b2d985d223',\r\n isArray: false,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'isPublic',\r\n operationId: null,\r\n order: 1,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '6',\r\n guiSettings: 'dddd',\r\n id: '805b41f8-a758-4b7e-8482-8c369aac37df',\r\n isArray: false,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'settings',\r\n operationId: null,\r\n order: 1,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '6',\r\n guiSettings: 'fd',\r\n id: 'd13ed5eb-ac5e-48dc-9e23-cda2637a41f6',\r\n isArray: true,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'entityTypeIds',\r\n operationId: null,\r\n order: 1,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '6',\r\n guiSettings: 'sdasd',\r\n id: 'b1631498-aad2-4871-8ba2-ffdfeeb0d235',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'createdBy',\r\n operationId: null,\r\n order: 8,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '8',\r\n guiSettings: 'hgfhghf',\r\n id: '9184e87c-2476-48c9-a867-9ece03c5bbbf',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'generalSettings',\r\n operationId: null,\r\n order: 1,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '8',\r\n guiSettings: 'asdasd',\r\n id: '6c9711c5-f885-4b9d-ae36-b9f989605ce6',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'imageUrl',\r\n operationId: null,\r\n order: 2,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '8',\r\n guiSettings: 'asdsfdf',\r\n id: '290aa8e8-65c3-4857-a75c-b0d367655d44',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'type',\r\n operationId: null,\r\n order: 3,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '8',\r\n guiSettings: 'asdsad',\r\n id: '1d058896-3622-4af8-82b6-f700097a7c3b',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'label',\r\n operationId: null,\r\n order: 4,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n {\r\n createdBy: null,\r\n createdOn: null,\r\n dataTypeId: 'dataType.string',\r\n entityTypeId: '8',\r\n guiSettings: 'sdads',\r\n id: '777bbf19-d863-41d3-8454-faefef83d381',\r\n isArray: null,\r\n label: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n name: 'id',\r\n operationId: null,\r\n order: 5,\r\n reference: null,\r\n transactionId: null,\r\n universalStateId: '1',\r\n workspaceId: '1',\r\n },\r\n ],\r\n\r\n EntityTypeAttribute: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'attribute111',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'attribute2',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 3,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'attribute3',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.default',\r\n isArray: false,\r\n order: 3,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'attribute4',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 4,\r\n reference: 'sis',\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customeraddress',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'customeraddress',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'customeraddress',\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'VAT',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'VAT',\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 1,\r\n reference: 'VAT',\r\n },\r\n {\r\n id: '7',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'city',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'city',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'city',\r\n },\r\n {\r\n id: '8',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'useraddress',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'useraddress',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'user address',\r\n },\r\n {\r\n id: '9',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'userdateofbirth',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'userdateofbirth',\r\n dataTypeId: 'dataType.date',\r\n isArray: false,\r\n order: 1,\r\n reference: 'user date of birth',\r\n },\r\n {\r\n id: '10',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'email',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n label: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '2',\r\n guiSettings: 'email',\r\n dataTypeId: 'dataType.string',\r\n isArray: false,\r\n order: 1,\r\n reference: 'email',\r\n },\r\n {\r\n id: '9999999',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'discount',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n label: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: null,\r\n dataTypeId: 'dataType.number',\r\n isArray: false,\r\n order: 5,\r\n reference: null,\r\n },\r\n ],\r\n\r\n EntityTypesOperations: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n label: null,\r\n transactionId: null,\r\n operationId: null,\r\n name: 'operation1',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'operation2',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'operation3',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'operation4',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: 'operation5',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '3',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'save',\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify({\r\n disableWhenFormInvalid: true,\r\n visibleExpression:\r\n 'this.viewMode===\"edit\" && this.entity!= null && this.entity.id == null',\r\n key: 'save',\r\n toolbarSlot: ToolbarSlot.Left,\r\n }),\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Post,\r\n order: 0,\r\n },\r\n {\r\n id: '7',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'update',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify({\r\n key: 'update',\r\n disableWhenFormInvalid: true,\r\n visibleExpression:\r\n 'this.viewMode===\"edit\" && this.entity!= null && this.entity.id != null',\r\n toolbarSlot: ToolbarSlot.Left,\r\n executedActionBehaviour: new ExecutedActionBehaviour(),\r\n }),\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Put,\r\n order: 0,\r\n },\r\n {\r\n id: '8',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'delete',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: JSON.stringify({\r\n visibleExpression: 'this.entity!= null && this.entity.id != null',\r\n key: 'delete',\r\n toolbarSlot: ToolbarSlot.Left,\r\n confirmationModal: 'message.delete-confirmation',\r\n executedActionBehaviour: new ExecutedActionBehaviour(),\r\n }),\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Delete,\r\n order: 0,\r\n },\r\n {\r\n id: '9',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'get',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: null,\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '10',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'updatePut',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '5',\r\n guiSettings: null,\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Put,\r\n order: 0,\r\n },\r\n {\r\n id: '999282828',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'view',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'create',\r\n label: null,\r\n\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'update',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'delete',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: '1',\r\n guiSettings: 'string',\r\n override: false,\r\n imports: null,\r\n sourceCode: 'string',\r\n httpVerb: HttpVerb.Get,\r\n order: 0,\r\n },\r\n ],\r\n\r\n product: [\r\n {\r\n id: '1',\r\n name: 'produto-1',\r\n description: 'produto-1-descrição',\r\n expiryDate: new Date(),\r\n value: 20,\r\n stock: 'stockStatus.available',\r\n },\r\n {\r\n id: '2',\r\n name: 'produto-2',\r\n description: 'produto-2-descrição',\r\n expiryDate: new Date(),\r\n value: 40,\r\n stock: 'stockStatus.unavailable',\r\n },\r\n {\r\n id: '3',\r\n name: 'produto-3',\r\n description: 'produto-3-descrição',\r\n expiryDate: new Date(),\r\n value: 15,\r\n stock: 'stockStatus.unavailable',\r\n },\r\n {\r\n id: '4',\r\n name: 'produto-4',\r\n description: 'produto-4-descrição',\r\n expiryDate: new Date(),\r\n value: 24,\r\n stock: 'stockStatus.available',\r\n },\r\n {\r\n id: '5',\r\n name: 'produto-5',\r\n description: 'produto-5-descrição',\r\n expiryDate: new Date(),\r\n value: 100,\r\n stock: 'stockStatus.available',\r\n },\r\n {\r\n id: '6',\r\n name: 'produto-6',\r\n description: 'produto-6-descrição',\r\n expiryDate: new Date(),\r\n value: 2,\r\n stock: 'stockStatus.available',\r\n },\r\n {\r\n id: '7',\r\n name: 'produto-7',\r\n description: 'produto-7-descrição',\r\n expiryDate: new Date(),\r\n value: 15.99,\r\n stock: 'stockStatus.unavailable',\r\n },\r\n {\r\n id: '8',\r\n name: 'produto-8',\r\n description: 'produto-8-descrição',\r\n expiryDate: new Date(),\r\n value: 92,\r\n stock: 'stockStatus.unavailable',\r\n\r\n attributes: {\r\n discount: 50,\r\n },\r\n },\r\n {\r\n id: '9',\r\n name: 'produto-9',\r\n description: 'produto-9-descrição',\r\n expiryDate: new Date(),\r\n value: 165,\r\n stock: 'stockStatus.available',\r\n },\r\n {\r\n id: '10',\r\n name: 'produto-10',\r\n description: 'produto-10-descrição',\r\n expiryDate: new Date(),\r\n value: 11,\r\n stock: 'stockStatus.available',\r\n },\r\n ],\r\n dashboard: [\r\n new Dashboard({\r\n name: 'MainDashboard',\r\n id: '1',\r\n path: 'Config/DashBoards/1',\r\n isPublic: true,\r\n settings: null,\r\n items: [\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 0,\r\n cols: 1,\r\n id: '1679938981323',\r\n rows: 1,\r\n dashboardId: '1',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 0,\r\n cols: 1,\r\n id: '1679931545',\r\n rows: 1,\r\n dashboardId: '1',\r\n settings: null,\r\n componentType: 'Table',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n id: '1679995',\r\n dashboardId: '1',\r\n settings: null,\r\n componentType: 'Line-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n dashboardId: '1',\r\n id: '1678975',\r\n settings: null,\r\n componentType: 'Table',\r\n }),\r\n ],\r\n entityTypeIds: ['1'],\r\n createdBy: '1',\r\n }),\r\n new Dashboard({\r\n name: 'SecondDashboard',\r\n id: '2',\r\n path: 'Config/DashBoards/2',\r\n isPublic: true,\r\n settings: null,\r\n items: [\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 0,\r\n cols: 2,\r\n rows: 1,\r\n id: '165455',\r\n dashboardId: '1',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n id: '16547775',\r\n dashboardId: '1',\r\n settings: null,\r\n componentType: 'Line-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n dashboardId: '1',\r\n id: '1654754878775',\r\n settings: null,\r\n componentType: 'Table',\r\n }),\r\n ],\r\n entityTypeIds: ['1'],\r\n createdBy: '1',\r\n }),\r\n new Dashboard({\r\n universalStateId: '1',\r\n isPublic: true,\r\n id: '3',\r\n name: 'ThirdDashboard',\r\n createdBy: '2',\r\n entityTypeIds: ['1', '4'],\r\n items: [\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 0,\r\n cols: 1,\r\n rows: 1,\r\n dashboardId: '3',\r\n id: '1679933',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n id: '16799387851543',\r\n dashboardId: '3',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 0,\r\n cols: 1,\r\n rows: 1,\r\n id: '16799387851548',\r\n dashboardId: '3',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n ],\r\n settings:\r\n '{\"gridType\":\"fit\",\"scale\":1,\"fixedColWidth\":250,\"fixedRowHeight\":250,\"keepFixedHeightInMobile\":false,\"keepFixedWidthInMobile\":false,\"setGridSize\":false,\"useBodyForBreakpoint\":false,\"compactType\":\"none\",\"mobileBreakpoint\":640,\"allowMultiLayer\":false,\"defaultLayerIndex\":1,\"maxLayerIndex\":2,\"baseLayerIndex\":1,\"minCols\":1,\"maxCols\":100,\"minRows\":1,\"maxRows\":100,\"defaultItemCols\":1,\"defaultItemRows\":1,\"maxItemCols\":50,\"maxItemRows\":50,\"minItemCols\":1,\"minItemRows\":1,\"minItemArea\":1,\"maxItemArea\":2500,\"addEmptyRowsCount\":0,\"rowHeightRatio\":1,\"margin\":5,\"outerMargin\":true,\"useTransformPositioning\":true,\"scrollSensitivity\":10,\"scrollSpeed\":20,\"draggable.enabled\":true,\"draggable.delayStart\":0,\"draggable.ignoreContentClass\":\"gridster-item-content\",\"draggable.ignoreContent\":false,\"draggable.dragHandleClass\":\"drag-handle\",\"draggable.dropOverItems\":false,\"resizable.enabled\":true,\"resizable.delayStart\":0,\"resizable.handles.s\":true,\"resizable.handles.e\":true,\"resizable.handles.n\":true,\"resizable.handles.w\":true,\"resizable.handles.se\":true,\"resizable.handles.ne\":true,\"resizable.handles.sw\":true,\"resizable.handles.nw\":true,\"swap\":true,\"swapWhileDragging\":false,\"pushItems\":false,\"disablePushOnDrag\":false,\"disablePushOnResize\":false,\"disableAutoPositionOnConflict\":false,\"pushDirections.north\":true,\"pushDirections.east\":true,\"pushDirections.south\":true,\"pushDirections.west\":true,\"pushResizeItems\":false,\"displayGrid\":\"always\",\"disableWindowResize\":false,\"disableWarnings\":false,\"scrollToNewItems\":false,\"disableScrollHorizontal\":false,\"disableScrollVertical\":false,\"enableBoundaryControl\":false,\"enableEmptyCellClick\":true,\"enableEmptyCellContextMenu\":false,\"enableEmptyCellDrop\":false,\"enableEmptyCellDrag\":true,\"enableOccupiedCellDrop\":false,\"emptyCellDragMaxCols\":50,\"emptyCellDragMaxRows\":50,\"ignoreMarginInRow\":false,\"dirType\":\"ltr\"}',\r\n }),\r\n new Dashboard({\r\n universalStateId: '1',\r\n isPublic: true,\r\n id: '725cc79c-6e7e-4391-81cc-42de6ed8781e',\r\n name: 'FouthDashboard',\r\n entityTypeIds: ['1', '2'],\r\n items: [\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 0,\r\n cols: 1,\r\n rows: 1,\r\n id: '16799387851888',\r\n dashboardId: '725cc79c-6e7e-4391-81cc-42de6ed8781e',\r\n settings: null,\r\n componentType: 'Line-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 0,\r\n cols: 1,\r\n id: '1679938785788',\r\n rows: 1,\r\n dashboardId: '725cc79c-6e7e-4391-81cc-42de6ed8781e',\r\n settings: null,\r\n componentType: 'Doughnut-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 0,\r\n y: 1,\r\n cols: 1,\r\n rows: 1,\r\n dashboardId: '725cc79c-6e7e-4391-81cc-42de6ed8781e',\r\n id: '1679938785788444',\r\n settings: null,\r\n componentType: 'Bar-Chart',\r\n }),\r\n new DashboardItem({\r\n universalStateId: '1',\r\n x: 1,\r\n y: 1,\r\n cols: 1,\r\n id: '2679938785788',\r\n rows: 1,\r\n dashboardId: '725cc79c-6e7e-4391-81cc-42de6ed8781e',\r\n settings: null,\r\n componentType: 'Table',\r\n }),\r\n ],\r\n createdBy: '2',\r\n settings:\r\n '{\"gridType\":\"fit\",\"scale\":1,\"fixedColWidth\":250,\"fixedRowHeight\":250,\"keepFixedHeightInMobile\":false,\"keepFixedWidthInMobile\":false,\"setGridSize\":false,\"useBodyForBreakpoint\":false,\"compactType\":\"none\",\"mobileBreakpoint\":640,\"allowMultiLayer\":false,\"defaultLayerIndex\":1,\"maxLayerIndex\":2,\"baseLayerIndex\":1,\"minCols\":1,\"maxCols\":100,\"minRows\":1,\"maxRows\":100,\"defaultItemCols\":1,\"defaultItemRows\":1,\"maxItemCols\":50,\"maxItemRows\":50,\"minItemCols\":1,\"minItemRows\":1,\"minItemArea\":1,\"maxItemArea\":2500,\"addEmptyRowsCount\":0,\"rowHeightRatio\":1,\"margin\":5,\"outerMargin\":true,\"useTransformPositioning\":true,\"scrollSensitivity\":10,\"scrollSpeed\":20,\"draggable.enabled\":true,\"draggable.delayStart\":0,\"draggable.ignoreContentClass\":\"gridster-item-content\",\"draggable.ignoreContent\":false,\"draggable.dragHandleClass\":\"drag-handle\",\"draggable.dropOverItems\":false,\"resizable.enabled\":true,\"resizable.delayStart\":0,\"resizable.handles.s\":true,\"resizable.handles.e\":true,\"resizable.handles.n\":true,\"resizable.handles.w\":true,\"resizable.handles.se\":true,\"resizable.handles.ne\":true,\"resizable.handles.sw\":true,\"resizable.handles.nw\":true,\"swap\":true,\"swapWhileDragging\":false,\"pushItems\":false,\"disablePushOnDrag\":false,\"disablePushOnResize\":false,\"disableAutoPositionOnConflict\":false,\"pushDirections.north\":true,\"pushDirections.east\":true,\"pushDirections.south\":true,\"pushDirections.west\":true,\"pushResizeItems\":false,\"displayGrid\":\"always\",\"disableWindowResize\":false,\"disableWarnings\":false,\"scrollToNewItems\":false,\"disableScrollHorizontal\":false,\"disableScrollVertical\":false,\"enableBoundaryControl\":false,\"enableEmptyCellClick\":true,\"enableEmptyCellContextMenu\":false,\"enableEmptyCellDrop\":false,\"enableEmptyCellDrag\":true,\"enableOccupiedCellDrop\":false,\"emptyCellDragMaxCols\":50,\"emptyCellDragMaxRows\":50,\"ignoreMarginInRow\":false,\"dirType\":\"ltr\"}',\r\n }),\r\n ],\r\n componentType: [\r\n new ComponentType({\r\n id: '1',\r\n type: ComponentTypeEnum.BarChart,\r\n name: 'Bar Chart',\r\n imageUrl: '/assets/images/component_type_images/bar-chart.PNG',\r\n generalSettings: null,\r\n }),\r\n new ComponentType({\r\n id: '2',\r\n type: ComponentTypeEnum.LineChart,\r\n name: 'Line Chart',\r\n imageUrl: '/assets/images/component_type_images/line-chart.PNG',\r\n generalSettings: null,\r\n }),\r\n new ComponentType({\r\n id: '3',\r\n type: ComponentTypeEnum.DoughnutChart,\r\n name: 'Donut Chart',\r\n imageUrl: '/assets/images/component_type_images/donut-chart.PNG',\r\n generalSettings: null,\r\n }),\r\n new ComponentType({\r\n id: '4',\r\n type: ComponentTypeEnum.Table,\r\n name: 'Table',\r\n imageUrl: '/assets/images/component_type_images/table.PNG',\r\n generalSettings: null,\r\n }),\r\n ],\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { PrgError } from '../../../../core/models/error.model';\r\nimport { FilterGroup } from '../../../../core/models/filters';\r\nimport { PaginationResponse } from '../../../../core/models/pagination-response';\r\nimport { PrgSucess } from '../../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport {\r\n EntityType,\r\n EntityTypeAttribute,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n} from '../../../models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../services/entity-types/abstract-entity-type.service';\r\nimport { MockDatabase } from '../../database.mock';\r\n\r\n/**\r\n * injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * class MockEntityTypesService\r\n */\r\nexport class MockEntityTypesService extends AbstractEntityTypeService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 0.2;\r\n\r\n /**\r\n * constructor\r\n * @param utilityService\r\n * @param objectsUtilityService\r\n * @param notificationsService\r\n * @param arrayUtilityService\r\n * @param isLoadingData\r\n * @param translateService\r\n */\r\n constructor(\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n @Inject(NotificationsService) notificationsService: NotificationsService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private isLoadingData: IsLoadingDataService,\r\n @Inject(TranslateService) translateService: TranslateService\r\n ) {\r\n super(notificationsService, translateService);\r\n }\r\n\r\n /**\r\n * Get all Entity Types\r\n *\r\n * @Returns Entity types[]\r\n */\r\n public getEntityTypeListAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (this.isCacheValid()) {\r\n const values = this.getElementsList();\r\n resolve(values);\r\n } else {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const entityTypeList = this.arrayUtilityService.clone(\r\n MockDatabase.EntityTypes\r\n );\r\n this.isLoadingData.hide();\r\n if (entityTypeList !== null && entityTypeList.length > 0) {\r\n const entityTypeTranslation = (\r\n await this.getTranslationsAsync(entityTypeList)\r\n );\r\n this.setToCache(entityTypeTranslation, 'name');\r\n resolve(entityTypeTranslation);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypeList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get entity type list with operation\r\n *\r\n * @Returns Entity types[]\r\n */\r\n public getEntityTypeListWithOperationAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const entityTypeList = this.arrayUtilityService.clone(\r\n MockDatabase.EntityTypes\r\n );\r\n this.isLoadingData.hide();\r\n if (entityTypeList !== null && entityTypeList.length > 0) {\r\n entityTypeList.forEach((entityType) => {\r\n entityType.operations = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypesOperations)\r\n .filter(\r\n (operation: EntityTypeOperation) =>\r\n operation.entityTypeId === entityType.id\r\n );\r\n });\r\n const entityTypeTranslation = (\r\n await this.getTranslationsAsync(entityTypeList)\r\n );\r\n this.setToCache(entityTypeTranslation, 'name');\r\n resolve(entityTypeTranslation);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypeList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * save entity type\r\n * @param entityType\r\n * @return Entity type\r\n */\r\n public saveEntityTypeAsync(entityType: EntityType): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (entityType.id) {\r\n const entityTypeToUpdate = MockDatabase.EntityTypes.find(\r\n (et) => et.id === entityType.id\r\n );\r\n\r\n if (entityTypeToUpdate) {\r\n entityTypeToUpdate.guiSettings = entityType.guiSettings;\r\n entityTypeToUpdate.group = entityType.group;\r\n entityTypeToUpdate.universalStateId = entityType.universalStateId;\r\n\r\n //set catch\r\n this.setToCache(\r\n this.objectsUtilityService.cloneObject(entityTypeToUpdate),\r\n 'name'\r\n );\r\n\r\n resolve(this.objectsUtilityService.cloneObject(entityTypeToUpdate));\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeUpdatedSucess',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'entityTypeUpdatedError',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newEntityType: EntityType = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: entityType.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n label: null,\r\n name: entityType.name,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n stateId: '1',\r\n workspaceId: '1',\r\n guiSettings: entityType.guiSettings,\r\n group: entityType.group,\r\n properties: null,\r\n attributes: null,\r\n operations: null,\r\n };\r\n\r\n const entityTypeList = MockDatabase.EntityTypes;\r\n entityTypeList.unshift(newEntityType);\r\n this.setToCache(\r\n this.objectsUtilityService.cloneObject(newEntityType),\r\n 'name'\r\n );\r\n\r\n resolve(this.objectsUtilityService.cloneObject(newEntityType));\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeSuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * get all operations of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeOperation[]\r\n */\r\n public getAllOperationsByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n const entityTypeOperationList = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypesOperations)\r\n .filter((operation) => operation.entityTypeId === entityTypeId);\r\n if (entityTypeOperationList) {\r\n resolve(entityTypeOperationList);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypeOperationsList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * add or update entity type operation\r\n * @param entityTypeOperation\r\n * @return EntityTypeOperation\r\n */\r\n public saveEntityTypeOperationAsync(\r\n entityTypeOperation: EntityTypeOperation\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (entityTypeOperation.id) {\r\n const entityTypeOperationToUpdate =\r\n MockDatabase.EntityTypesOperations.find(\r\n (eto) => eto.id === entityTypeOperation.id\r\n );\r\n\r\n if (entityTypeOperationToUpdate) {\r\n entityTypeOperationToUpdate.httpVerb = entityTypeOperation.httpVerb;\r\n entityTypeOperationToUpdate.universalStateId =\r\n entityTypeOperation.universalStateId;\r\n entityTypeOperationToUpdate.guiSettings =\r\n entityTypeOperation.guiSettings;\r\n entityTypeOperationToUpdate.imports = entityTypeOperation.imports;\r\n entityTypeOperationToUpdate.override = entityTypeOperation.override;\r\n entityTypeOperationToUpdate.universalStateId =\r\n entityTypeOperation.universalStateId;\r\n\r\n resolve(\r\n this.objectsUtilityService.cloneObject(entityTypeOperationToUpdate)\r\n );\r\n\r\n /* this.setEntityTypeOperationByEntityTypeId(\r\n this.objectsUtilityService.cloneObject(entityTypeOperationToUpdate)\r\n );*/\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeOperationUpdatedSucess',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'entityTypeOperationUpdatedError',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newEntityTypeOperation: EntityTypeOperation =\r\n new EntityTypeOperation({\r\n id: this.utilityService.newGuid(),\r\n universalStateId: entityTypeOperation.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: entityTypeOperation.name,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: entityTypeOperation.entityTypeId,\r\n guiSettings: entityTypeOperation.guiSettings,\r\n override: entityTypeOperation.override,\r\n imports: entityTypeOperation.imports,\r\n sourceCode: 'source code',\r\n httpVerb: entityTypeOperation.httpVerb,\r\n });\r\n\r\n const entityTypeOperationList = MockDatabase.EntityTypesOperations;\r\n entityTypeOperationList.unshift(newEntityTypeOperation);\r\n resolve(this.objectsUtilityService.cloneObject(newEntityTypeOperation));\r\n /*this.setEntityTypeOperationByEntityTypeId(\r\n this.objectsUtilityService.cloneObject(newEntityTypeOperation)\r\n );*/\r\n\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeOperationSuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * get all attributes of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeAttribute[]\r\n */\r\n public getAllAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n const entityTypeAttributeList = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypeAttribute)\r\n .filter((operation) => operation.entityTypeId === entityTypeId);\r\n if (entityTypeAttributeList) {\r\n resolve(entityTypeAttributeList);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypeAttributeListList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * add or update entity type attribute\r\n * @param entityTypeAttribute\r\n * @return EntityTypeAttribute\r\n */\r\n public saveEntityTypeAttributeAsync(\r\n entityTypeAttribute: EntityTypeAttribute\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (entityTypeAttribute.id) {\r\n const entityTypeAttributeToUpdate =\r\n MockDatabase.EntityTypeAttribute.find(\r\n (eta) => eta.id === entityTypeAttribute.id\r\n );\r\n\r\n if (entityTypeAttributeToUpdate) {\r\n Object.assign(entityTypeAttributeToUpdate, entityTypeAttribute);\r\n\r\n resolve(\r\n this.objectsUtilityService.cloneObject(entityTypeAttributeToUpdate)\r\n );\r\n\r\n //TODO: UPDATE CACHE\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeAttributeUpdatedSucess',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'entityTypeAttributeUpdatedError',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newEntityTypeAttribute: EntityTypeAttribute =\r\n new EntityTypeAttribute({\r\n id: this.utilityService.newGuid(),\r\n universalStateId: entityTypeAttribute.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: entityTypeAttribute.name,\r\n createdBy: null,\r\n label: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: entityTypeAttribute.entityTypeId,\r\n guiSettings: entityTypeAttribute.guiSettings,\r\n dataTypeId: entityTypeAttribute.dataTypeId,\r\n order: entityTypeAttribute.order,\r\n reference: entityTypeAttribute.reference,\r\n isArray: entityTypeAttribute.isArray,\r\n });\r\n\r\n const entityTypeAttributeList = MockDatabase.EntityTypeAttribute;\r\n entityTypeAttributeList.unshift(newEntityTypeAttribute);\r\n resolve(this.objectsUtilityService.cloneObject(newEntityTypeAttribute));\r\n\r\n //TODO: Update cache\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypeAttributeSuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * get all properties of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeProperty[]\r\n */\r\n public getAllPropertiesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n const entityTypePropertynList = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypeProperty)\r\n .filter((operation) => operation.entityTypeId === entityTypeId);\r\n if (entityTypePropertynList) {\r\n resolve(entityTypePropertynList);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypePropertynListList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * add or update entity type property\r\n * @param EntityTypeProperty\r\n * @return EntityTypeProperty\r\n */\r\n public saveEntityTypePropertyAsync(\r\n entityTypeProperty: EntityTypeProperty\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n if (entityTypeProperty.id) {\r\n const entityTypePropertyToUpdate = MockDatabase.EntityTypeProperty.find(\r\n (etp) => etp.id === entityTypeProperty.id\r\n );\r\n\r\n if (entityTypePropertyToUpdate) {\r\n Object.assign(entityTypePropertyToUpdate, entityTypeProperty);\r\n\r\n resolve(\r\n this.objectsUtilityService.cloneObject(entityTypePropertyToUpdate)\r\n );\r\n\r\n //TODO: UPDATE CACHE\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypePropertyUpdatedSucess',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'entityTypePropertyUpdatedError',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newEntityTypeProperty: EntityTypeProperty =\r\n new EntityTypeProperty({\r\n id: this.utilityService.newGuid(),\r\n universalStateId: entityTypeProperty.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: entityTypeProperty.name,\r\n createdBy: null,\r\n modifiedBy: null,\r\n label: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n entityTypeId: entityTypeProperty.entityTypeId,\r\n guiSettings: entityTypeProperty.guiSettings,\r\n dataTypeId: entityTypeProperty.dataTypeId,\r\n order: entityTypeProperty.order,\r\n reference: entityTypeProperty.reference,\r\n isArray: entityTypeProperty.isArray,\r\n });\r\n\r\n const entityTypePropertyList = MockDatabase.EntityTypeProperty;\r\n entityTypePropertyList.unshift(newEntityTypeProperty);\r\n resolve(this.objectsUtilityService.cloneObject(newEntityTypeProperty));\r\n //TODO: Update cache\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'entityTypePropertySuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * update entity type properties using patch logic\r\n * @param entityTypesPropertiesToPatch\r\n * @return EntityTypeProperty[]\r\n */\r\n public updateEntityTypePropertiesAsync(\r\n entityTypesPropertiesToPatch: Map\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n const updated = [];\r\n entityTypesPropertiesToPatch.forEach(\r\n (fieldsToPatch: any, key: string) => {\r\n const entityTypePropertyToUpdate =\r\n MockDatabase.EntityTypeProperty.find((etp) => etp.id === key);\r\n\r\n updated.push(\r\n this.objectsUtilityService.cloneObject(\r\n Object.assign(entityTypePropertyToUpdate, fieldsToPatch)\r\n )\r\n );\r\n }\r\n );\r\n\r\n resolve(updated);\r\n });\r\n }\r\n\r\n /**\r\n * update entity type attributes using patch logic\r\n * @param entityTypesAttributesToPatch\r\n * @return EntityTypeAttribute[]\r\n */\r\n public updateEntityTypeAttributesAsync(\r\n entityTypesAttributesToPatch: Map\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n entityTypesAttributesToPatch.forEach(\r\n (fieldsToPatch: any, key: string) => {\r\n const entityTypeAttributesToUpdate =\r\n MockDatabase.EntityTypeAttribute.find((eta) => eta.id === key);\r\n\r\n Object.assign(entityTypeAttributesToUpdate, fieldsToPatch);\r\n }\r\n );\r\n\r\n resolve(this.arrayUtilityService.clone(MockDatabase.EntityTypeProperty));\r\n });\r\n }\r\n\r\n /**\r\n * this service returns all the data (properties, attributes and operations)\r\n * of a given entity type (by entity name)\r\n * @param entityTypeName\r\n */\r\n public getAllEntityTypeDataByName(\r\n entityTypeName: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n let entityType: EntityType = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypes)\r\n .find((entity: EntityType) => entity.name === entityTypeName);\r\n\r\n if (entityType) {\r\n entityType.properties = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypeProperty)\r\n .filter(\r\n (property: EntityTypeProperty) =>\r\n property.entityTypeId === entityType.id\r\n );\r\n entityType.attributes = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypeAttribute)\r\n .filter(\r\n (attribute: EntityTypeAttribute) =>\r\n attribute.entityTypeId === entityType.id\r\n );\r\n entityType.operations = this.arrayUtilityService\r\n .clone(MockDatabase.EntityTypesOperations)\r\n .filter(\r\n (operation: EntityTypeOperation) =>\r\n operation.entityTypeId === entityType.id\r\n );\r\n\r\n entityType = await this.getTranslationsAsync(entityType);\r\n resolve(entityType);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * this service returns an array of elements\r\n * of the entity sent as a parameter,\r\n * based on the filter it receives as a parameter.\r\n * @param entityTypeName\r\n * @param FilterGroup\r\n */\r\n public getEntityTypeElements(\r\n entityTypeName: string,\r\n filterGroup: FilterGroup\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n let entityElementsAux = [];\r\n\r\n entityElementsAux = this.arrayUtilityService.clone(\r\n MockDatabase[entityTypeName]\r\n );\r\n if ('orderCollection' in filterGroup) {\r\n entityElementsAux = this.arrayUtilityService.sortByProperty(\r\n entityElementsAux,\r\n filterGroup.orderCollection[0].propertyName,\r\n filterGroup.orderCollection[0].orderType === 0 ? true : false\r\n );\r\n }\r\n\r\n if ('filterCollections' in filterGroup) {\r\n filterGroup.filterCollections.forEach((filter) => {\r\n entityElementsAux = entityElementsAux.filter((element) =>\r\n element[filter.propertyName].includes(filter.value)\r\n );\r\n });\r\n }\r\n const qtdElement = entityElementsAux.length;\r\n entityElementsAux = entityElementsAux.slice(\r\n filterGroup.pageIndex * filterGroup.pageSize,\r\n (filterGroup.pageIndex + 1) * filterGroup.pageSize\r\n );\r\n resolve(\r\n new PaginationResponse({\r\n items: entityElementsAux,\r\n totalItems: qtdElement,\r\n currentPage: filterGroup.pageIndex,\r\n })\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Get all properties and attributes by entity type id\r\n * @param {string} entityTypeId\r\n * @returns {Promise}\r\n */\r\n public getAllPropertiesAndAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingData.hide();\r\n\r\n let entityType = MockDatabase.EntityTypes.find(\r\n (entityType) => entityType.id === entityTypeId\r\n );\r\n\r\n const entityTypeProperties = [...MockDatabase.EntityTypeProperty].filter(\r\n (entityTypeProperty) => entityTypeProperty.entityTypeId === entityTypeId\r\n );\r\n\r\n const entityTypeAttributes = [...MockDatabase.EntityTypeAttribute].filter(\r\n (entityTypeAttributes) =>\r\n entityTypeAttributes.entityTypeId === entityTypeId\r\n );\r\n\r\n entityType.properties = [...entityTypeProperties];\r\n entityType.attributes = [...entityTypeAttributes];\r\n const entityTypeToTranslate: EntityType = (\r\n await this.getTranslationsAsync(entityType)\r\n );\r\n\r\n const entityTypePropertyAndAttributesList = [\r\n ...entityTypeToTranslate.properties,\r\n ...entityTypeToTranslate.attributes,\r\n ];\r\n\r\n this.isLoadingData.hide();\r\n if (entityTypePropertyAndAttributesList.length > 0) {\r\n resolve(entityTypePropertyAndAttributesList);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetEntityTypePropertynListList',\r\n })\r\n );\r\n reject('Error');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This service return a element from a entity type list by id\r\n * @param entityTypeName\r\n * @param elementId\r\n */\r\n public getEntityTypeElementById(\r\n entityTypeName: string,\r\n elementId: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n const element = this.objectsUtilityService.cloneObject(\r\n MockDatabase[entityTypeName].find((element) => element.id === elementId)\r\n );\r\n\r\n resolve(element);\r\n });\r\n }\r\n\r\n /**\r\n * this service excute an operation\r\n * @param entityName\r\n * @param operation\r\n * @param entity\r\n * @returns\r\n */\r\n public executeAction(\r\n entityName: string,\r\n operation: EntityTypeOperation,\r\n entity: any\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n switch (operation.name) {\r\n case 'save':\r\n resolve(this.saveOperationProduct(entity));\r\n break;\r\n case 'delete':\r\n resolve(this.deleteOperationProduct(entity));\r\n break;\r\n case 'update':\r\n resolve(this.updateOperationProduct(entity));\r\n break;\r\n default:\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'operationNotFound',\r\n })\r\n );\r\n break;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * operations save product\r\n * @param element\r\n * @returns\r\n */\r\n private saveOperationProduct(element: any): any {\r\n if (element.id) {\r\n const productToUpdate = MockDatabase.product.find(\r\n (product) => product.id === element.id\r\n );\r\n Object.assign(productToUpdate, element);\r\n } else {\r\n element['id'] = this.utilityService.newGuid();\r\n MockDatabase.product.unshift(element);\r\n return this.objectsUtilityService.cloneObject(element);\r\n }\r\n }\r\n\r\n /**\r\n * operation delte product\r\n * @param element\r\n * @returns\r\n */\r\n private deleteOperationProduct(element: any): any {\r\n const elementToDeleteIndex = MockDatabase.product.findIndex(\r\n (product) => product.id === element.id\r\n );\r\n MockDatabase.product.splice(elementToDeleteIndex, 1);\r\n return element;\r\n }\r\n\r\n /**\r\n * operation update product\r\n * @param element\r\n * @returns\r\n */\r\n private updateOperationProduct(element: any) {\r\n const elementToUpdate = MockDatabase.product.find(\r\n (product) => product.id === element.id\r\n );\r\n\r\n if (elementToUpdate) {\r\n Object.assign(elementToUpdate, element);\r\n\r\n return elementToUpdate;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { EntityType } from '../../models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../services/entity-types/abstract-entity-type.service';\r\n\r\n@Component({\r\n selector: 'prg-entity-type-element-page',\r\n templateUrl: './prg-entity-type-element.page.html',\r\n styleUrls: ['./prg-entity-type-element.page.scss'],\r\n})\r\n/**\r\n * PrgEntityTypeElementPage\r\n */\r\nexport class PrgEntityTypeElementPage implements OnInit {\r\n /**\r\n * entityTypeName\r\n */\r\n private entityTypeName: string;\r\n\r\n /**\r\n * entityTypeElementID\r\n */\r\n private entityTypeElementID: string;\r\n\r\n /**\r\n * entityType\r\n */\r\n public entityType: EntityType;\r\n /**\r\n * element\r\n */\r\n public element: any;\r\n\r\n /**\r\n * viewMode\r\n */\r\n public viewMode: ViewMode = ViewMode.Read;\r\n\r\n /**\r\n * constructor\r\n * @param route\r\n * @param router\r\n * @param entityTypeService\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n async ngOnInit() {\r\n // get params from url\r\n this.route.paramMap.subscribe((params: ParamMap) => {\r\n this.entityTypeName = params.get('entityTypeName');\r\n this.entityTypeElementID = params.get('id');\r\n });\r\n\r\n this.getEntityTypeData(this.entityTypeName);\r\n\r\n if (this.entityTypeElementID == 'new') {\r\n this.element = {};\r\n this.viewMode = ViewMode.Edit;\r\n } else {\r\n const elementAux = await this.getEntityTypeElementData(\r\n this.entityTypeName,\r\n this.entityTypeElementID\r\n );\r\n\r\n // check if element exist\r\n if (elementAux) {\r\n this.element = this.objectsUtilityService.cloneObject(elementAux);\r\n } else {\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * this function fetches the data from the entityType based on the entity type name\r\n * @param entityTypeName\r\n */\r\n private async getEntityTypeData(entityTypeName: string) {\r\n this.entityType = await this.entityTypeService.getAllEntityTypeDataByName(\r\n entityTypeName\r\n );\r\n }\r\n\r\n /**\r\n * this function fetches the data from the entityType\r\n * element based on the entity type name and element id\r\n * @param entitiesTypeName\r\n * @param elementId\r\n * @returns\r\n */\r\n private async getEntityTypeElementData(\r\n entitiesTypeName: string,\r\n elementId: string\r\n ): Promise {\r\n return await this.entityTypeService.getEntityTypeElementById(\r\n entitiesTypeName,\r\n elementId\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * page entity types\r\n */\r\n@Component({\r\n selector: 'prg-entity-types',\r\n templateUrl: './prg-entity-types.page.html',\r\n styleUrls: ['./prg-entity-types.page.scss'],\r\n})\r\nexport class PrgEntityTypesPage {}\r\n","
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap } from '@angular/router';\r\n\r\n/**\r\n * Specific Entity type page\r\n */\r\n@Component({\r\n selector: 'prg-specific-entity-type',\r\n templateUrl: './specific-entity-type.page.html',\r\n styleUrls: ['./specific-entity-type.page.scss'],\r\n})\r\n\r\n/**\r\n * PrgSpecificEntityTypePage\r\n */\r\nexport class PrgSpecificEntityTypePage implements OnInit {\r\n /**\r\n * entityTypeName\r\n */\r\n public entityTypeName: string;\r\n\r\n /**\r\n * constructor\r\n * @param route\r\n */\r\n constructor(private route: ActivatedRoute) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n this.route.paramMap.subscribe((params: ParamMap) => {\r\n this.entityTypeName = params.get('entityTypeName');\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgEntityTypeElementPage } from './pages/entity-type-element/prg-entity-type-element.page';\r\nimport { PrgEntityTypesPage } from './pages/entity-types/prg-entity-types.page';\r\nimport { PrgSpecificEntityTypePage } from './pages/specific-entity-type/specific-entity-type.page';\r\nimport { entityTypesConfig } from './prg-entity-types.module';\r\n\r\n/**\r\n * Authentication routing module routes\r\n */\r\nconst standardRoutes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: entityTypesConfig.entityTypeBasePath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PrgEntityTypesPage,\r\n },\r\n {\r\n path: ':entityTypeName',\r\n component: PrgSpecificEntityTypePage,\r\n },\r\n {\r\n path: ':entityTypeName/:id',\r\n component: PrgEntityTypeElementPage,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgEntityTypesRoutingModule {}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PaginationResponse } from '../../../core/models/pagination-response';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport {\r\n EntityType,\r\n EntityTypeAttribute,\r\n EntityTypeOperation,\r\n EntityTypeProperty,\r\n} from '../../models/entity-type.model';\r\n\r\nimport { AbstractEntityTypeService } from './abstract-entity-type.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EntityTypeService extends AbstractEntityTypeService {\r\n /**\r\n * constructor\r\n * @param notificationsService notificationsService\r\n * @param translateService translateService\r\n */\r\n constructor(\r\n @Inject(NotificationsService) notificationsService: NotificationsService,\r\n @Inject(TranslateService) translateService: TranslateService\r\n ) {\r\n super(notificationsService, translateService);\r\n }\r\n\r\n /**\r\n * Get all Entity Types\r\n *\r\n * @Returns Entity types[]\r\n */\r\n public getEntityTypeListAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get entity type list with operation\r\n *\r\n * * @Returns Entity types[]\r\n */\r\n public getEntityTypeListWithOperationAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * save entity type\r\n * @param entityType\r\n * @return Entity type\r\n */\r\n public saveEntityTypeAsync(entityType: EntityType): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * get all operations of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeOperation[]\r\n */\r\n public getAllOperationsByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * add or update entity type operation\r\n * @param entityTypeOperation\r\n * @return EntityTypeOperation\r\n */\r\n public saveEntityTypeOperationAsync(\r\n entityTypeOperation: EntityTypeOperation\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * get all attributes of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeAttribute[]\r\n */\r\n public getAllAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * add or update entity type attribute\r\n * @param entityTypeAttribute\r\n * @return EntityTypeAttribute\r\n */\r\n public saveEntityTypeAttributeAsync(\r\n entityTypeAttribute: EntityTypeAttribute\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * get all properties of an entity\r\n * @param entityTypeId\r\n * @return EntityTypeProperty[]\r\n */\r\n public getAllPropertiesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * add or update entity type property\r\n * @param EntityTypeProperty\r\n * @return EntityTypeProperty\r\n */\r\n public saveEntityTypePropertyAsync(\r\n entityTypeProperty: EntityTypeProperty\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * update entity type properties using patch logic\r\n * @param entityTypesPropertiesToPatch\r\n * @return EntityTypeProperty[]\r\n */\r\n public updateEntityTypePropertiesAsync(\r\n entityTypesPropertiesToPatch: Map\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * update entity type attributes using patch logic\r\n * @param entityTypesAttributesToPatch\r\n * @return EntityTypeAttribute[]\r\n */\r\n public updateEntityTypeAttributesAsync(\r\n entityTypesAttributesToPatch: Map\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this service returns all the data (properties, attributes and operations)\r\n * of a given entity type (by entity name)\r\n * @param entityTypeName\r\n */\r\n public getAllEntityTypeDataByName(\r\n entityTypeName: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this service returns an array of elements\r\n * of the entity sent as a parameter,\r\n * based on the filter it receives as a parameter.\r\n * @param entityTypeName\r\n * @param FilterGroup\r\n */\r\n public getEntityTypeElements(\r\n entityTypeName: string,\r\n FilterGroup: any\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n /*\r\n * Get all properties and attributes by entity type id\r\n * @param {string} entityTypeId\r\n * @returns {Promise}\r\n */\r\n public getAllPropertiesAndAttributesByEntityTypeIdAsync(\r\n entityTypeId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * This service return a element from a entity type list by id\r\n * @param entityTypeName\r\n * @param elementId\r\n */\r\n public getEntityTypeElementById(\r\n entityTypeName: string,\r\n elementId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this service excute in database the operation received as parameter\r\n * @param entityName\r\n * @param operation\r\n * @param entity\r\n */\r\n public executeAction(\r\n entityName: string,\r\n operation: EntityTypeOperation,\r\n entity: any\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nimport { PrgCoreDynamicFormModule } from '../core/components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgEntityTypeElementComponent } from './components/entity-type-element/prg-entity-type-element.component';\r\nimport { PrgEntityTypeConfigsComponent } from './components/entity-type/components/entity-type-configs/prg-entity-type-configs.component';\r\nimport { PrgEntityTypeComponent } from './components/entity-type/prg-entity-type.component';\r\nimport { PrgListEntityTypesComponent } from './components/list-entity-types/prg-list-entity-types.component';\r\nimport { PrgListSpecificEntityTypeComponent } from './components/list-specific-entity-type/prg-list-specific-entity-type.component';\r\nimport { MockEntityTypesService } from './mock/services/entity-types/entity-types.service.mock';\r\nimport { PrgEntityTypesConfig } from './models/prg-entity-types-config';\r\nimport { PrgEntityTypeElementPage } from './pages/entity-type-element/prg-entity-type-element.page';\r\nimport { PrgEntityTypesPage } from './pages/entity-types/prg-entity-types.page';\r\nimport { PrgSpecificEntityTypePage } from './pages/specific-entity-type/specific-entity-type.page';\r\nimport { PrgEntityTypesRoutingModule } from './prg-entity-types-routing.module';\r\nimport { PRG_ENTITY_TYPES_CONFIG } from './services/entity-types-configuration/prg-entity-types-configuration.service';\r\nimport { AbstractEntityTypeService } from './services/entity-types/abstract-entity-type.service';\r\nimport { EntityTypeService } from './services/entity-types/entity-type.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrgEntityTypesPage,\r\n PrgListEntityTypesComponent,\r\n PrgEntityTypeComponent,\r\n PrgEntityTypeConfigsComponent,\r\n PrgListSpecificEntityTypeComponent,\r\n PrgSpecificEntityTypePage,\r\n PrgEntityTypeElementComponent,\r\n PrgEntityTypeElementPage,\r\n ],\r\n imports: [\r\n PrgSharedComponentsModule,\r\n PrgEntityTypesRoutingModule,\r\n PrgCoreDynamicFormModule,\r\n ],\r\n exports: [\r\n PrgListEntityTypesComponent,\r\n PrgListSpecificEntityTypeComponent,\r\n PrgEntityTypeElementComponent,\r\n ],\r\n entryComponents: [PrgEntityTypeComponent, PrgEntityTypeElementComponent],\r\n providers: [DynamicDialogConfig, DynamicDialogRef],\r\n})\r\nexport class PrgEntityTypesModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgEntityTypesConfig: PrgEntityTypesConfig\r\n ): ModuleWithProviders {\r\n entityTypesConfig = prgEntityTypesConfig;\r\n return {\r\n ngModule: PrgEntityTypesModule,\r\n providers: [\r\n {\r\n provide: PRG_ENTITY_TYPES_CONFIG,\r\n useValue: prgEntityTypesConfig,\r\n },\r\n {\r\n provide: AbstractEntityTypeService,\r\n useClass: prgEntityTypesConfig.useMockServices\r\n ? MockEntityTypesService\r\n : EntityTypeService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the EntityTypesConfig object\r\n */\r\nexport let entityTypesConfig: PrgEntityTypesConfig;\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormGroup,\r\n} from '@angular/forms';\r\nimport { Table } from 'primeng/table';\r\nimport { BaseField } from '../../../../../core/components/dynamic-form/models/base-field';\r\nimport { FormGroupService } from '../../../../../core/services/form-group/form-group.service';\r\nimport { IsLoadingDataService } from '../../../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { ObjectsUtilityService } from '../../../../../core/services/utility/objects-utility.service';\r\nimport { LookupTableItem } from '../../../../models/lookup-table.model';\r\nimport { PrgLookupTableConfig } from '../../../../models/prg-lookup-table-config';\r\nimport { PRG_LOOKUP_TABLE_CONFIG } from '../../../../services/lookup-table-configuration/prg-lookup-table-configuration.service';\r\nimport { AbstractLookupTableService } from '../../../../services/lookup-table/abstract-lookup-table.service';\r\n\r\n/**\r\n * Lookup table items component\r\n */\r\n@Component({\r\n selector: 'prg-lookup-table-items-table',\r\n templateUrl: './prg-lookup-table-items-table.component.html',\r\n styleUrls: ['./prg-lookup-table-items-table.component.scss'],\r\n})\r\nexport class PrgLookupTableItemsTableComponent {\r\n /**\r\n * View Child table\r\n */\r\n @ViewChild(Table) private dataTableItems: Table;\r\n\r\n /**\r\n * Lookup Table ID\r\n */\r\n @Input() lookupTableId: string;\r\n\r\n /**\r\n * Lookup Table Items\r\n */\r\n private _lookupTableItems: LookupTableItem[];\r\n @Input('lookupTableItems') set lookupTableItems(items: LookupTableItem[]) {\r\n this.lookupTableItemsForm = this.formBuilder.group({\r\n lookupTableItemsDetails: this.formBuilder.array([]),\r\n });\r\n if (items) {\r\n this._lookupTableItems = items;\r\n this.populateFormGroup();\r\n }\r\n }\r\n\r\n /**\r\n * Output with item saved\r\n */\r\n @Output() savedItems = new EventEmitter();\r\n\r\n /**\r\n * new Lookup Table Id Prefix\r\n */\r\n public newLookupTableItemIdPrefix = 'newLookupTable:';\r\n\r\n /**\r\n * Lookup table form group\r\n */\r\n public lookupTableItemsForm: FormGroup;\r\n\r\n /**\r\n * Table columns\r\n */\r\n public lookupTableItemsColumns: BaseField[] =\r\n this.prgLookupTableConfig.lookupTableItemsColumns;\r\n\r\n /**\r\n * Map to save temporarily the items in edit mode\r\n */\r\n private clonedLookupTableItems: Map = new Map<\r\n string,\r\n LookupTableItem\r\n >();\r\n\r\n /**\r\n * auxiliary variable to help define the id of the new lookuptables\r\n */\r\n private newLookupTableItemIdCount: number = 0;\r\n\r\n /**\r\n * construtor\r\n *\r\n * @param prgLookupTableConfig prgLookupTableConfig\r\n * @param lookupTableService\r\n * @param isLoadingDataService isLoadingDataService\r\n * @param formBuilder\r\n * @param formGroupService\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n @Inject(PRG_LOOKUP_TABLE_CONFIG)\r\n public prgLookupTableConfig: PrgLookupTableConfig,\r\n private lookupTableService: AbstractLookupTableService,\r\n public isLoadingDataService: IsLoadingDataService,\r\n private formBuilder: FormBuilder,\r\n private formGroupService: FormGroupService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * Return lookup table form array\r\n */\r\n get lookupTableItemsDetails(): FormArray {\r\n return this.lookupTableItemsForm.get(\r\n 'lookupTableItemsDetails'\r\n ) as FormArray;\r\n }\r\n\r\n /**\r\n * return lookup table control for given lookup table item\r\n * @param lookupTableItemId\r\n * @returns Control\r\n */\r\n public getLookupTableItemControlById(\r\n lookupTableItemId: string\r\n ): AbstractControl {\r\n return this.lookupTableItemsDetails.controls.find(\r\n (control) => control.value.id === lookupTableItemId\r\n );\r\n }\r\n\r\n /**\r\n * this function is responsible for adding a new row\r\n * to the table for the user to configure the new lookuptableItem\r\n *\r\n */\r\n public addNewLookupTableItem(): void {\r\n const newLookupTableItem: LookupTableItem = {\r\n id: `${this.newLookupTableItemIdPrefix}${this.newLookupTableItemIdCount}`,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: null,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: null,\r\n description: null,\r\n lookupTableId: this.lookupTableId,\r\n };\r\n\r\n this.newLookupTableItemIdCount++;\r\n\r\n // add new element to form Array\r\n this.lookupTableItemsDetails.insert(\r\n 0,\r\n this.formGroupService.toFormGroupOneObject(\r\n newLookupTableItem,\r\n this.lookupTableItemsColumns\r\n )\r\n );\r\n\r\n this.lookupTableItemsForm.markAllAsTouched();\r\n\r\n this.dataTableItems.editingRowKeys[newLookupTableItem.id] = true;\r\n }\r\n\r\n /**\r\n * this function is responsible for creating a\r\n * clone of a lookup Table item that is selected for editing\r\n *\r\n * @param lookupTable\r\n */\r\n public onRowEditInit(item: LookupTableItem) {\r\n this.clonedLookupTableItems.set(item.id, { ...item });\r\n }\r\n\r\n /**\r\n * this function is responsible for saving a lookup table item,\r\n * either an update or adding a new lookup table item to the database\r\n *\r\n * @param lookupTable\r\n */\r\n public async onRowEditSave(item: LookupTableItem) {\r\n const lookupTableItemToSave = this.objectsUtilityService.cloneObject(item);\r\n if (lookupTableItemToSave.id.includes(this.newLookupTableItemIdPrefix)) {\r\n lookupTableItemToSave.id = null;\r\n }\r\n\r\n this.lookupTableService\r\n .saveLookupTableItemAsync(lookupTableItemToSave)\r\n .then((response) => {\r\n this.getLookupTableItemControlById(item.id).setValue(response);\r\n delete this.dataTableItems.editingRowKeys[item.id];\r\n this.clonedLookupTableItems.delete(item.id);\r\n\r\n this.savedItems.emit(this.lookupTableId);\r\n });\r\n }\r\n\r\n /**\r\n * this function is responsible for restoring the data\r\n * that was there before starting the edit if the\r\n * lookup table item is already in the database,\r\n * otherwise it just deletes the row that was temporarily created\r\n *\r\n * @param lookupTable\r\n */\r\n public onRowEditCancel(item: LookupTableItem) {\r\n if (item.id.includes(this.newLookupTableItemIdPrefix)) {\r\n this.lookupTableItemsDetails.removeAt(\r\n this.getLookupTableItemControlIndexById(item.id)\r\n );\r\n } else {\r\n const lookupTableItemOrignal = this.clonedLookupTableItems.get(item.id);\r\n this.getLookupTableItemControlById(item.id).setValue(\r\n lookupTableItemOrignal\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for saving\r\n * all active edits (new lines or updating existing ones)\r\n */\r\n public async saveAllChanges(): Promise {\r\n let lookupTablesItemsToSave: LookupTableItem[] = [];\r\n Object.getOwnPropertyNames(this.dataTableItems.editingRowKeys).forEach(\r\n (element) => {\r\n if (element.includes(this.newLookupTableItemIdPrefix)) {\r\n const lookupTableAux = this.objectsUtilityService.cloneObject(\r\n this.getLookupTableItemControlById(element).value\r\n );\r\n lookupTableAux.id = null;\r\n lookupTablesItemsToSave.push(lookupTableAux);\r\n } else {\r\n lookupTablesItemsToSave.push(\r\n this.objectsUtilityService.cloneObject(\r\n this.getLookupTableItemControlById(element).value\r\n )\r\n );\r\n }\r\n }\r\n );\r\n this.lookupTableService\r\n .saveMultipleLookupTableItemsAsync(lookupTablesItemsToSave)\r\n .then((response) => {\r\n response.forEach((slt) => {\r\n const lookupTableById = this.getLookupTableItemControlById(slt.id);\r\n if (lookupTableById) {\r\n lookupTableById.setValue(slt);\r\n } else {\r\n this.lookupTableItemsDetails.push(\r\n this.formGroupService.toFormGroupOneObject(\r\n slt,\r\n this.lookupTableItemsColumns\r\n )\r\n );\r\n }\r\n });\r\n\r\n this.clonedLookupTableItems.clear();\r\n this.deleteAllTempLookupTable();\r\n this.dataTableItems.editingRowKeys = {};\r\n\r\n this.savedItems.emit(this.lookupTableId);\r\n });\r\n }\r\n\r\n /**\r\n * this function is responsible for discarding\r\n * all active edits, and resetting the data that\r\n * was set before starting the edit\r\n */\r\n public discardAllChanges(): void {\r\n Object.getOwnPropertyNames(this.dataTableItems.editingRowKeys).forEach(\r\n (element) => {\r\n if (element.includes(this.newLookupTableItemIdPrefix)) {\r\n this.lookupTableItemsDetails.removeAt(\r\n this.getLookupTableItemControlIndexById(element)\r\n );\r\n } else {\r\n this.getLookupTableItemControlById(element).setValue(\r\n this.clonedLookupTableItems.get(element)\r\n );\r\n }\r\n }\r\n );\r\n this.clonedLookupTableItems.clear();\r\n this.dataTableItems.editingRowKeys = {};\r\n }\r\n\r\n /**\r\n * this function is responsible for sorting a given column\r\n * @param event\r\n */\r\n public customSort(event: any) {\r\n event.data.sort((data1, data2) => {\r\n let value1 = data1.value[event.field];\r\n let value2 = data2.value[event.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null) result = -1;\r\n else if (value1 != null && value2 == null) result = 1;\r\n else if (value1 == null && value2 == null) result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\r\n\r\n return event.order * result;\r\n });\r\n }\r\n\r\n /**\r\n * return lookup table item control for given lookup table item id\r\n * @param lookupTableItemId\r\n * @returns number\r\n */\r\n private getLookupTableItemControlIndexById(\r\n lookupTableItemId: string\r\n ): number {\r\n return this.lookupTableItemsDetails.controls.findIndex(\r\n (control) => control.value.id === lookupTableItemId\r\n );\r\n }\r\n\r\n /**\r\n * Populate data into Form\r\n */\r\n private populateFormGroup() {\r\n const aux = this.formGroupService.toFormGroupMultipleObjects(\r\n this._lookupTableItems,\r\n this.lookupTableItemsColumns\r\n );\r\n\r\n aux.forEach((a) => {\r\n this.lookupTableItemsDetails.push(a);\r\n });\r\n }\r\n\r\n /**\r\n * this function is an auxiliary function that is used in the [saveAllChanges]{@link #saveAllChanges}\r\n * function to delete all temporary rows that will be added later\r\n */\r\n private deleteAllTempLookupTable(): void {\r\n const tempLookupTable = this.lookupTableItemsDetails.controls.filter(\r\n (control) => control.value.id.includes(this.newLookupTableItemIdPrefix)\r\n );\r\n if (tempLookupTable.length > 0) {\r\n tempLookupTable.forEach((tlt) => {\r\n this.lookupTableItemsDetails.removeAt(\r\n this.getLookupTableItemControlIndexById(tlt.value.id)\r\n );\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'components.lookup-table.lookup-table-items.columns.' +\r\n column.key +\r\n '.label' | translate\r\n }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ rowData.value[column.key] | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ rowData.value[column.key] | translate }}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ 'withoutLookuptableItems' | translate }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormArray,\r\n FormBuilder,\r\n FormGroup,\r\n} from '@angular/forms';\r\nimport { Table } from 'primeng/table';\r\nimport { BaseField } from '../../../core/components/dynamic-form/models/base-field';\r\nimport { FormGroupService } from '../../../core/services/form-group/form-group.service';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { LookupTable } from '../../models/lookup-table.model';\r\nimport { PrgLookupTableConfig } from '../../models/prg-lookup-table-config';\r\nimport { PRG_LOOKUP_TABLE_CONFIG } from '../../services/lookup-table-configuration/prg-lookup-table-configuration.service';\r\nimport { AbstractLookupTableService } from '../../services/lookup-table/abstract-lookup-table.service';\r\n\r\n/**\r\n * LookupTables Component\r\n */\r\n@Component({\r\n selector: 'prg-lookup-table-table',\r\n templateUrl: './prg-lookup-table-table.component.html',\r\n styleUrls: ['./prg-lookup-table-table.component.scss'],\r\n})\r\nexport class PrgLookupTableTableComponent implements OnInit {\r\n /**\r\n * View Child table\r\n */\r\n @ViewChild(Table) private dataTable: Table;\r\n\r\n /**\r\n * new Lookup Table Id Prefix\r\n */\r\n public newLookupTableIdPrefix = 'newLookupTable';\r\n\r\n /**\r\n * table columns\r\n */\r\n public lookupTableColumns: BaseField[] =\r\n this.prgLookupTableConfig.lookupTableColumns;\r\n\r\n /**\r\n * Lookup table form group\r\n */\r\n public lookupTableForm: FormGroup;\r\n\r\n /**\r\n * cloned Lookup Table\r\n * this map is used to temporarily store the elements in edit mode\r\n */\r\n private clonedLookupTable: Map = new Map<\r\n string,\r\n LookupTable\r\n >();\r\n\r\n /**\r\n * auxiliary variable to help define the id of the new lookuptables\r\n */\r\n private newLookupTableIdCount: number = 0;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param lookupTableService\r\n * @param prgLookupTableConfig prgLookupTableConfig\r\n * @param isLoadingDataService isLoadingDataService\r\n * @param formBuilder\r\n * @param formGroupService\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n private lookupTableService: AbstractLookupTableService,\r\n @Inject(PRG_LOOKUP_TABLE_CONFIG)\r\n public prgLookupTableConfig: PrgLookupTableConfig,\r\n public isLoadingDataService: IsLoadingDataService,\r\n private formBuilder: FormBuilder,\r\n private formGroupService: FormGroupService,\r\n private objectsUtilityService: ObjectsUtilityService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n ngOnInit() {\r\n this.lookupTableForm = this.formBuilder.group({\r\n lookupTableFormArray: this.formBuilder.array([]),\r\n });\r\n this.populateData();\r\n }\r\n\r\n /**\r\n * Return lookup table form array\r\n */\r\n get lookupTableFormArray(): FormArray {\r\n return this.lookupTableForm.get('lookupTableFormArray') as FormArray;\r\n }\r\n\r\n /**\r\n * this function is responsible for adding a new row\r\n * to the table for the user to configure the new lookuptable\r\n *\r\n */\r\n public newLookupTable(): void {\r\n const newLookupTable: LookupTable = {\r\n id: `${this.newLookupTableIdPrefix}${this.newLookupTableIdCount}`,\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: null,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n description: null,\r\n workspaceId: null,\r\n items: null,\r\n };\r\n\r\n this.newLookupTableIdCount++;\r\n\r\n this.lookupTableFormArray.insert(\r\n 0,\r\n this.formGroupService.toFormGroupOneObject(\r\n newLookupTable,\r\n this.lookupTableColumns\r\n )\r\n );\r\n\r\n //TODO: SEE this\r\n this.lookupTableFormArray.value.unshift(newLookupTable);\r\n\r\n this.lookupTableForm.markAllAsTouched();\r\n this.dataTable.editingRowKeys[newLookupTable.id] = true;\r\n }\r\n\r\n /**\r\n * return lookup table control for given lookup table\r\n */\r\n public getLookupTableControlById(lookupTableId: string): AbstractControl {\r\n return this.lookupTableFormArray.controls.find(\r\n (control) => control.value.id === lookupTableId\r\n );\r\n }\r\n\r\n /**\r\n * this function is responsible for creating a\r\n * clone of a lookupTable that is selected for editing\r\n *\r\n * @param lookupTable\r\n */\r\n public onRowEditInit(lookupTable: LookupTable): void {\r\n this.clonedLookupTable.set(lookupTable.id, { ...lookupTable });\r\n }\r\n\r\n /**\r\n * this function is responsible for saving a lookup table,\r\n * either an update or adding a new lookup table to the database\r\n *\r\n * @param lookupTable\r\n */\r\n public onRowEditSave(lookupTable: LookupTable): void {\r\n const lookupTableToSave =\r\n this.objectsUtilityService.cloneObject(lookupTable);\r\n if (lookupTableToSave.id.includes(this.newLookupTableIdPrefix)) {\r\n lookupTableToSave.id = null;\r\n }\r\n\r\n this.lookupTableService\r\n .saveLookupTableAsync(lookupTableToSave)\r\n .then((response) => {\r\n this.getLookupTableControlById(lookupTable.id).setValue(response);\r\n delete this.dataTable.editingRowKeys[lookupTable.id];\r\n this.clonedLookupTable.delete(lookupTable.id);\r\n });\r\n }\r\n\r\n /**\r\n * this function is responsible for restoring the data\r\n * that was there before starting the edit if the\r\n * lookup table is already in the database,\r\n * otherwise it just deletes the row that was temporarily created\r\n *\r\n * @param lookupTable\r\n */\r\n public onRowEditCancel(lookupTable: LookupTable) {\r\n if (lookupTable.id.includes(this.newLookupTableIdPrefix)) {\r\n this.lookupTableFormArray.removeAt(\r\n this.getLookupTableControlIndexById(lookupTable.id)\r\n );\r\n } else {\r\n const lookupTableOrignal = this.clonedLookupTable.get(lookupTable.id);\r\n this.getLookupTableControlById(lookupTable.id).setValue(\r\n lookupTableOrignal\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for checking\r\n * if the lookup table already has the\r\n * items loaded, if not it calls the function to load them\r\n * @param lookupTable\r\n */\r\n public expandLookupTable(lookupTable: LookupTable): void {\r\n if (lookupTable.items === null) {\r\n this.loadLookupTableItemsByLookupTableId(lookupTable);\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for saving\r\n * all active edits (new lines or updating existing ones)\r\n */\r\n public async saveAllChanges(): Promise {\r\n let lookupTablesToSave: LookupTable[] = [];\r\n Object.getOwnPropertyNames(this.dataTable.editingRowKeys).forEach(\r\n (element) => {\r\n if (element.includes(this.newLookupTableIdPrefix)) {\r\n const lookupTableAux = this.objectsUtilityService.cloneObject(\r\n this.getLookupTableControlById(element).value\r\n );\r\n lookupTableAux.id = null;\r\n lookupTablesToSave.push(lookupTableAux);\r\n } else {\r\n lookupTablesToSave.push(\r\n this.objectsUtilityService.cloneObject(\r\n this.getLookupTableControlById(element).value\r\n )\r\n );\r\n }\r\n }\r\n );\r\n this.lookupTableService\r\n .saveMultipleLookupTableAsync(lookupTablesToSave)\r\n .then((response) => {\r\n response.forEach((slt) => {\r\n const lookupTableById = this.getLookupTableControlById(slt.id);\r\n if (lookupTableById) {\r\n lookupTableById.setValue(slt);\r\n } else {\r\n this.lookupTableFormArray.push(\r\n this.formGroupService.toFormGroupOneObject(\r\n slt,\r\n this.lookupTableColumns\r\n )\r\n );\r\n }\r\n });\r\n\r\n this.clonedLookupTable.clear();\r\n this.deleteAllTempLookupTable();\r\n });\r\n }\r\n\r\n /**\r\n * this function is responsible for discarding\r\n * all active edits, and resetting the data that\r\n * was set before starting the edit\r\n *\r\n */\r\n public discardAllChanges(): void {\r\n Object.getOwnPropertyNames(this.dataTable.editingRowKeys).forEach(\r\n (element) => {\r\n if (element.includes(this.newLookupTableIdPrefix)) {\r\n this.lookupTableFormArray.removeAt(\r\n this.getLookupTableControlIndexById(element)\r\n );\r\n } else {\r\n this.getLookupTableControlById(element).setValue(\r\n this.clonedLookupTable.get(element)\r\n );\r\n }\r\n }\r\n );\r\n this.clonedLookupTable.clear();\r\n this.dataTable.editingRowKeys = {};\r\n }\r\n\r\n /**\r\n *this function is responsible for sorting a given column\r\n * @param event\r\n */\r\n public customSort(event: any) {\r\n event.data.sort((data1, data2) => {\r\n let value1 = data1.value[event.field];\r\n let value2 = data2.value[event.field];\r\n let result = null;\r\n\r\n if (value1 == null && value2 != null) result = -1;\r\n else if (value1 != null && value2 == null) result = 1;\r\n else if (value1 == null && value2 == null) result = 0;\r\n else if (typeof value1 === 'string' && typeof value2 === 'string')\r\n result = value1.localeCompare(value2);\r\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\r\n\r\n return event.order * result;\r\n });\r\n }\r\n\r\n /**\r\n * this function recive the item saved in child component\r\n * @param event\r\n */\r\n public itemsSaved(event: string) {\r\n const lookupTable = this.getLookupTableControlById(event).value;\r\n this.loadLookupTableItemsByLookupTableId(lookupTable);\r\n }\r\n\r\n /**\r\n * return index of control for given lookup table\r\n */\r\n private getLookupTableControlIndexById(lookupTableId: string): number {\r\n return this.lookupTableFormArray.controls.findIndex(\r\n (control) => control.value.id === lookupTableId\r\n );\r\n }\r\n\r\n /**\r\n * Populate data into Form\r\n */\r\n private populateData() {\r\n this.lookupTableService.getAllLookupTableAsync().then((response) => {\r\n const aux = this.formGroupService.toFormGroupMultipleObjects(\r\n response,\r\n this.lookupTableColumns\r\n );\r\n\r\n aux.forEach((a) => {\r\n this.lookupTableForm.markAllAsTouched();\r\n this.lookupTableFormArray.push(a);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * this function is responsible for loading the\r\n * lookup table items for a given lookup table\r\n * @param lookupTable\r\n */\r\n private loadLookupTableItemsByLookupTableId(lookupTable: LookupTable): void {\r\n this.lookupTableService\r\n .getLookupTableItemsByLookupTableIdAsync(lookupTable.id)\r\n .then((response) => {\r\n lookupTable.items = response;\r\n this.getLookupTableControlById(lookupTable.id).setValue(lookupTable);\r\n });\r\n }\r\n\r\n /**\r\n * this function is an auxiliary function that is used in the [saveAllChanges]{@link #saveAllChanges}\r\n * function to delete all temporary rows that will be added later\r\n */\r\n private deleteAllTempLookupTable(): void {\r\n const tempLookupTable = this.lookupTableFormArray.controls.filter(\r\n (control) => control.value.id.includes(this.newLookupTableIdPrefix)\r\n );\r\n if (tempLookupTable.length > 0) {\r\n tempLookupTable.forEach((tlt) => {\r\n this.lookupTableFormArray.removeAt(\r\n this.getLookupTableControlIndexById(tlt.value.id)\r\n );\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'components.lookup-table.columns.' + column.key + '.label'\r\n | translate\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ rowData.value[column.key] | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ rowData.value[column.key] | translate }}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{ 'withoutLookuptable' | translate }}
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { LookupTable, LookupTableItem } from '../models/lookup-table.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface Database {\r\n /**\r\n * Mock Lookup Table\r\n */\r\n LookupTable: LookupTable[];\r\n\r\n /**\r\n * Mock Lookup table items\r\n */\r\n LookupTableItems: LookupTableItem[];\r\n}\r\n\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const MockDatabase: Database = {\r\n LookupTable: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'GameStatus',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Estados de jogo',\r\n items: null,\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Sports',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Despostos',\r\n items: null,\r\n },\r\n {\r\n id: 'dataType',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'dataType',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'dataType',\r\n items: null,\r\n },\r\n {\r\n id: 'language',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'language',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'language',\r\n items: null,\r\n },\r\n\r\n {\r\n id: 'stockStatus',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'stockStatus',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'stockStatus',\r\n items: null,\r\n },\r\n {\r\n id: 'theme',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'theme',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'theme',\r\n items: null,\r\n },\r\n ],\r\n\r\n LookupTableItems: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'standby',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Standby',\r\n lookupTableId: '1',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'running',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Running',\r\n lookupTableId: '1',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'ended',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Ended',\r\n lookupTableId: '1',\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'waterPolo',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Water polo',\r\n lookupTableId: '2',\r\n },\r\n {\r\n id: '5',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'football',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Football',\r\n lookupTableId: '2',\r\n },\r\n {\r\n id: '6',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'ended',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'Ended',\r\n lookupTableId: '2',\r\n },\r\n {\r\n id: 'dataType.string',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'string',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'string',\r\n lookupTableId: 'dataType',\r\n },\r\n {\r\n id: 'dataType.number',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'number',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'number',\r\n lookupTableId: 'dataType',\r\n },\r\n {\r\n id: 'dataType.date',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'date',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'date',\r\n lookupTableId: 'dataType',\r\n },\r\n {\r\n id: 'dataType.default',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'default',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'default',\r\n lookupTableId: 'dataType',\r\n },\r\n {\r\n id: 'dataType.lookupTable',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'lookupTable',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'lookup table',\r\n lookupTableId: 'dataType',\r\n },\r\n {\r\n id: 'dataType.entityType',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'entityType',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'entity type',\r\n lookupTableId: 'dataType',\r\n },\r\n\r\n {\r\n id: 'stockStatus.unavailable',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'unavailable',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'unavailable',\r\n lookupTableId: 'stockStatus',\r\n },\r\n {\r\n id: 'stockStatus.available',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'available',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'entity type',\r\n lookupTableId: 'stockStatus',\r\n },\r\n {\r\n id: 'language.portuguese',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'portuguese',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'portuguese',\r\n lookupTableId: 'language',\r\n },\r\n {\r\n id: 'language.english',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'english',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'english',\r\n lookupTableId: 'language',\r\n },\r\n {\r\n id: 'theme.lara-light-blue',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'lara-light-blue',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'lara-light-blue',\r\n lookupTableId: 'theme',\r\n },\r\n {\r\n id: 'theme.bootstrap4-dark-purple',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'bootstrap4-dark-purple',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'bootstrap4-dark-purple',\r\n lookupTableId: 'theme',\r\n },\r\n {\r\n id: 'theme.bootstrap4-light-purple',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'bootstrap4-light-purple',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'bootstrap4-light-purple',\r\n lookupTableId: 'theme',\r\n },\r\n {\r\n id: 'theme.bootstrap4-light-blue',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'bootstrap4-light-blue',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'bootstrap4-light-blue',\r\n lookupTableId: 'theme',\r\n },\r\n {\r\n id: 'theme.rhea',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'rhea',\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n description: 'rhea',\r\n lookupTableId: 'theme',\r\n },\r\n ],\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PrgError } from '../../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport {\r\n LookupTable,\r\n LookupTableItem,\r\n} from '../../../models/lookup-table.model';\r\nimport { AbstractLookupTableService } from '../../../services/lookup-table/abstract-lookup-table.service';\r\nimport { MockDatabase } from '../../database.mock';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * class MockLookupTableService\r\n */\r\nexport class MockLookupTableService extends AbstractLookupTableService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 0.5;\r\n\r\n /**\r\n * Construtor\r\n *\r\n * @param isLoadingDataService\r\n * @param notificationsService\r\n * @param utilityService\r\n * @param objectsUtilityService\r\n */\r\n constructor(\r\n private isLoadingDataService: IsLoadingDataService,\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n @Inject(TranslateService) translateService: TranslateService,\r\n private arrayUtilityService: ArrayUtilityService\r\n ) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * this method returns all the lookuptables\r\n *\r\n * @returns Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingDataService.hide();\r\n\r\n if (this.isCacheValid()) {\r\n const lookupTables = this.getElementsList();\r\n resolve(lookupTables);\r\n } else {\r\n }\r\n const lookupTables = this.arrayUtilityService.clone(\r\n MockDatabase.LookupTable\r\n );\r\n if (lookupTables !== null && lookupTables.length > 0) {\r\n this.setToCache(lookupTables, 'name');\r\n\r\n resolve(lookupTables);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetLookupTableList',\r\n })\r\n );\r\n reject(null);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * this method is responsible for saving a new lookupTable\r\n * or update an existing one\r\n *\r\n * @param lookupTable\r\n * @returns LookupTable\r\n */\r\n public saveLookupTableAsync(lookupTable: LookupTable): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n\r\n if (lookupTable.id) {\r\n const lookupTableToUpdate = MockDatabase.LookupTable.find(\r\n (ltAux) => ltAux.id === lookupTable.id\r\n );\r\n if (lookupTableToUpdate) {\r\n lookupTableToUpdate.description = lookupTable.description;\r\n lookupTableToUpdate.universalStateId = lookupTable.universalStateId;\r\n resolve(this.objectsUtilityService.cloneObject(lookupTableToUpdate));\r\n //set catch\r\n this.setToCache(\r\n this.objectsUtilityService.cloneObject(lookupTableToUpdate),\r\n 'name'\r\n );\r\n\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'lookupTableSuccessAdded',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorAddLookupTable',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newLookupTable: LookupTable = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: lookupTable.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: lookupTable.name,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n description: lookupTable.description,\r\n workspaceId: null,\r\n items: null,\r\n };\r\n\r\n const lookupTableList = MockDatabase.LookupTable;\r\n lookupTableList.unshift(newLookupTable);\r\n\r\n this.setToCache(\r\n this.objectsUtilityService.cloneObject(newLookupTable),\r\n 'name'\r\n );\r\n\r\n resolve(this.objectsUtilityService.cloneObject(newLookupTable));\r\n\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'lookupTableSuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables\r\n *\r\n * @param lookupTables\r\n * @returns LookupTable[]\r\n */\r\n public saveMultipleLookupTableAsync(\r\n lookupTables: LookupTable[]\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n let savedLookupTable: LookupTable[] = [];\r\n lookupTables.forEach((lt) => {\r\n if (lt.id) {\r\n const lookupTableToUpdate = MockDatabase.LookupTable.find(\r\n (ltAux) => ltAux.id === lt.id\r\n );\r\n if (lookupTableToUpdate) {\r\n lookupTableToUpdate.description = lt.description;\r\n lookupTableToUpdate.universalStateId = lt.universalStateId;\r\n savedLookupTable.push(lookupTableToUpdate);\r\n }\r\n } else {\r\n const newLookupTable: LookupTable = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: lt.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: lt.name,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n description: lt.description,\r\n workspaceId: null,\r\n items: null,\r\n };\r\n\r\n const lookupTableList = MockDatabase.LookupTable;\r\n lookupTableList.unshift(newLookupTable);\r\n savedLookupTable.push(newLookupTable);\r\n }\r\n });\r\n resolve(savedLookupTable);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'sucessedsaveMultipleLookupTableAsync',\r\n })\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * this method returns the items of a given lookup table\r\n *\r\n * @param id\r\n * @returns LookupTableItem[]\r\n */\r\n public getLookupTableItemsByLookupTableIdAsync(\r\n id: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n\r\n const lookupTableItems = MockDatabase.LookupTableItems.filter(\r\n (item) => item.lookupTableId == id\r\n );\r\n\r\n resolve(lookupTableItems);\r\n this.isLoadingDataService.hide();\r\n });\r\n }\r\n\r\n /**\r\n * this method returns the items of a given lookup table\r\n *\r\n * @param id\r\n * @returns LookupTableItem[]\r\n */\r\n public getLookupTableItemsByLookupTableNameAsync(\r\n name: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n const lookupTable = this.getElementByKey(name);\r\n if (\r\n this.isCacheValid() &&\r\n lookupTable != null &&\r\n lookupTable.items != null\r\n ) {\r\n resolve(lookupTable.items);\r\n this.isLoadingDataService.hide();\r\n } else {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const lookupTable = MockDatabase.LookupTable.find(\r\n (lookupTable) => lookupTable.name === name\r\n );\r\n const lookupTableItems = MockDatabase.LookupTableItems.filter(\r\n (item) => item.lookupTableId == lookupTable.id\r\n );\r\n\r\n lookupTable.items = lookupTableItems;\r\n\r\n const lookupTableTranslated = await this.getTranslations(lookupTable);\r\n\r\n this.setToCache(lookupTableTranslated, 'name');\r\n\r\n resolve(lookupTableTranslated.items);\r\n this.isLoadingDataService.hide();\r\n }\r\n });\r\n }\r\n /**\r\n * this method is responsible for saving a new lookupTable\r\n * or update an existing one\r\n *\r\n * @param lookupTable\r\n * @returns LookupTable\r\n */\r\n public saveLookupTableItemAsync(\r\n lookupTableItem: LookupTableItem\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n\r\n if (lookupTableItem.id) {\r\n const lookupTableItemToUpdate = MockDatabase.LookupTableItems.find(\r\n (ltiAux) => ltiAux.id === lookupTableItem.id\r\n );\r\n if (lookupTableItemToUpdate) {\r\n lookupTableItemToUpdate.description = lookupTableItem.description;\r\n lookupTableItemToUpdate.universalStateId =\r\n lookupTableItem.universalStateId;\r\n resolve(\r\n this.objectsUtilityService.cloneObject(lookupTableItemToUpdate)\r\n );\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'lookupTableSuccessAdded',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorAddLookupTable',\r\n })\r\n );\r\n reject(null);\r\n }\r\n } else {\r\n const newLookupTableItem: LookupTableItem = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: lookupTableItem.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: lookupTableItem.name,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n description: lookupTableItem.description,\r\n workspaceId: null,\r\n lookupTableId: lookupTableItem.lookupTableId,\r\n };\r\n\r\n const lookupTableList = MockDatabase.LookupTableItems;\r\n lookupTableList.unshift(newLookupTableItem);\r\n resolve(this.objectsUtilityService.cloneObject(newLookupTableItem));\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'lookupTableItemSuccessAdded',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables items\r\n *\r\n * @param lookupTablesItems\r\n * @returns LookupTableItems[]\r\n */\r\n public saveMultipleLookupTableItemsAsync(\r\n lookupTables: LookupTableItem[]\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n let savedLookupTableItems: LookupTableItem[] = [];\r\n lookupTables.forEach((lt) => {\r\n if (lt.id) {\r\n const lookupTableItemToUpdate = MockDatabase.LookupTableItems.find(\r\n (ltAux) => ltAux.id === lt.id\r\n );\r\n if (lookupTableItemToUpdate) {\r\n lookupTableItemToUpdate.description = lt.description;\r\n lookupTableItemToUpdate.universalStateId = lt.universalStateId;\r\n savedLookupTableItems.push(lookupTableItemToUpdate);\r\n }\r\n } else {\r\n const newLookupTableItem: LookupTableItem = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: lt.universalStateId,\r\n transactionId: null,\r\n operationId: null,\r\n name: lt.name,\r\n label: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n description: lt.description,\r\n workspaceId: null,\r\n lookupTableId: lt.lookupTableId,\r\n };\r\n\r\n const lookupTableList = MockDatabase.LookupTableItems;\r\n lookupTableList.unshift(newLookupTableItem);\r\n savedLookupTableItems.push(newLookupTableItem);\r\n }\r\n });\r\n resolve(savedLookupTableItems);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'sucessedsaveMultipleLookupTableAsync',\r\n })\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Get lookup table item by id\r\n * @param {string} lookUpTableItemId\r\n * @returns {Promise}\r\n */\r\n public getLookUpTableItemByIdAsync(\r\n lookUpTableItemId: string\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const lookUpTableItemsList = [...MockDatabase.LookupTableItems];\r\n this.isLoadingDataService.hide();\r\n let lookUpTableItem = lookUpTableItemsList.find((lookUpTableItem) => {\r\n return lookUpTableItem.id == lookUpTableItemId;\r\n });\r\n if (lookUpTableItem) {\r\n resolve(lookUpTableItem);\r\n } else {\r\n reject('');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n *\r\n */\r\n public getMultipleLookupTableByName(\r\n lookupTableNames: string[]\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n const lookupTablesList: LookupTable[] = [];\r\n\r\n const lookUpTables = this.arrayUtilityService.clone(\r\n MockDatabase.LookupTable\r\n );\r\n const lookUpTableItems = this.arrayUtilityService.clone(\r\n MockDatabase.LookupTableItems\r\n );\r\n if (this.isCacheValid()) {\r\n lookupTableNames.forEach((name) => {\r\n let lookupTableAux: LookupTable = this.getElementByKey(name);\r\n\r\n if (!lookupTableAux) {\r\n lookupTableAux = lookUpTables.find((lt) => lt.name === name);\r\n\r\n if (lookupTableAux) {\r\n lookupTableAux.items = lookUpTableItems.filter(\r\n (li: LookupTableItem) => li.lookupTableId === lookupTableAux.id\r\n );\r\n }\r\n\r\n //TODO: error not found lookuptable\r\n } else if (!lookupTableAux.items) {\r\n lookupTableAux.items = lookUpTableItems.filter(\r\n (li: LookupTableItem) => li.lookupTableId === lookupTableAux.id\r\n );\r\n }\r\n lookupTablesList.push(lookupTableAux);\r\n });\r\n } else {\r\n lookupTableNames.forEach(async (name) => {\r\n const lookupTableAux = lookUpTables.find((lt) => lt.name === name);\r\n\r\n if (lookupTableAux) {\r\n lookupTableAux.items = lookUpTableItems.filter(\r\n (li: LookupTableItem) => li.lookupTableId === lookupTableAux.id\r\n );\r\n const lookupTableAuxTranslated = await this.getTranslations(\r\n lookupTableAux\r\n );\r\n\r\n lookupTablesList.push(lookupTableAuxTranslated);\r\n }\r\n });\r\n }\r\n resolve(lookupTablesList);\r\n this.setToCache(lookupTablesList, 'name');\r\n });\r\n }\r\n}\r\n","import { BaseEntity } from '../../core/models/base-entity.model';\r\n\r\n/**\r\n * LookupTableItem class that defines a look up table\r\n *
item to be used in dropowns by the front-end.\r\n *
Its form must have an name and description\r\n *
input fields that will be saved in i18n\r\n *
using an unique identifier created through\r\n *
its normalized \"name\" property\r\n */\r\nexport class LookupTableItem extends BaseEntity {\r\n /**\r\n * label translated\r\n */\r\n public label: string;\r\n /**\r\n * Description\r\n */\r\n public description: string;\r\n\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Lookup table id (foreign key)\r\n */\r\n public lookupTableId: string; // Foreign key\r\n}\r\n\r\n/**\r\n * LookupTable class that defines a look up table\r\n *
to be used in dropowns by the front-end.\r\n *
Its form must have an name and description\r\n *
input fields that will be saved in i18n\r\n *
using an unique identifier created through\r\n *
its normalized \"name\" property\r\n */\r\nexport class LookupTable extends BaseEntity {\r\n /**\r\n * TranslatedName\r\n */\r\n public label: string;\r\n /**\r\n * Description\r\n */\r\n public description: string;\r\n\r\n /**\r\n * Entity type workspace id (foreign key)\r\n */\r\n public workspaceId: string; // Foreign key\r\n /**\r\n * LookupTableItems array\r\n */\r\n public items: LookupTableItem[];\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Page lookup Table\r\n */\r\n@Component({\r\n selector: 'app-prg-lookup-table',\r\n templateUrl: './prg-lookup-table.page.html',\r\n styleUrls: ['./prg-lookup-table.page.scss'],\r\n})\r\nexport class PrgLookupTablePage {}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgLookupTablePage } from './pages/prg-lookup-table.page';\r\nimport { lookupTableConfig } from './prg-lookup-table.module';\r\n\r\n/**\r\n * lookup tables routing module routes\r\n */\r\nconst standardRoutes: Routes = [];\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: lookupTableConfig.lookupTableBasePath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PrgLookupTablePage,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgLookupTableRoutingModule {}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LookupTable, LookupTableItem } from '../../models/lookup-table.model';\r\nimport { AbstractLookupTableService } from './abstract-lookup-table.service';\r\n\r\n/** Injectable */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * Lookup table real service\r\n */\r\nexport class LookupTableService extends AbstractLookupTableService {\r\n /** constructor */\r\n constructor(@Inject(TranslateService) translateService: TranslateService) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * Get all Lookup Tables\r\n */\r\n public getAllLookupTableAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this method is responsible for saving a new lookupTable\r\n * or update an existing one\r\n *\r\n * @param lookupTable\r\n * @returns LookupTable\r\n */\r\n public saveLookupTableAsync(lookupTable: LookupTable): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables\r\n *\r\n * @param lookupTables\r\n * @returns LookupTable[]\r\n */\r\n public saveMultipleLookupTableAsync(\r\n lookupTables: LookupTable[]\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get lookup table items by lookup table id\r\n * @param id\r\n */\r\n public getLookupTableItemsByLookupTableIdAsync(\r\n id: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get lookup table items by lookup table name\r\n * @param name\r\n */\r\n public getLookupTableItemsByLookupTableNameAsync(\r\n name: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this method is responsible for saving a new lookupTableItem\r\n * or update an existing one\r\n * @param lookupTableItem\r\n */\r\n public saveLookupTableItemAsync(\r\n lookupTableItem: LookupTableItem\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * this method is responsible for adding or\r\n * updating a set of lookup tables items\r\n *\r\n * @param lookupTablesItems\r\n * @returns LookupTableItems[]\r\n */\r\n public saveMultipleLookupTableItemsAsync(\r\n lookupTables: LookupTableItem[]\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get lookup table item by id\r\n * @param {string} lookUpTableItemId\r\n * @returns {Promise}\r\n */\r\n public getLookUpTableItemByIdAsync(\r\n lookUpTableItemId: string\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n public getMultipleLookupTableByName(\r\n lookupTableNames: string[]\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgLookupTableItemsTableComponent } from './components/lookupTableTable/components/lookupTableItemsTable/prg-lookup-table-items-table.component';\r\nimport { PrgLookupTableTableComponent } from './components/lookupTableTable/prg-lookup-table-table.component';\r\nimport { MockLookupTableService } from './mock/services/lookup-table/lookup-table.mock.service';\r\nimport { PrgLookupTableConfig } from './models/prg-lookup-table-config';\r\nimport { PrgLookupTablePage } from './pages/prg-lookup-table.page';\r\nimport { PrgLookupTableRoutingModule } from './prg-lookup-table-routing.module';\r\nimport { PRG_LOOKUP_TABLE_CONFIG } from './services/lookup-table-configuration/prg-lookup-table-configuration.service';\r\nimport { AbstractLookupTableService } from './services/lookup-table/abstract-lookup-table.service';\r\nimport { LookupTableService } from './services/lookup-table/lookup-table.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrgLookupTablePage,\r\n PrgLookupTableTableComponent,\r\n PrgLookupTableItemsTableComponent,\r\n ],\r\n imports: [PrgSharedComponentsModule, PrgLookupTableRoutingModule],\r\n exports: [PrgLookupTableTableComponent, PrgLookupTableItemsTableComponent],\r\n})\r\nexport class PrgLookupTableModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgLookupTableConfig: PrgLookupTableConfig\r\n ): ModuleWithProviders {\r\n lookupTableConfig = prgLookupTableConfig;\r\n return {\r\n ngModule: PrgLookupTableModule,\r\n providers: [\r\n {\r\n provide: PRG_LOOKUP_TABLE_CONFIG,\r\n useValue: prgLookupTableConfig,\r\n },\r\n {\r\n provide: AbstractLookupTableService,\r\n useClass: prgLookupTableConfig.useMockServices\r\n ? MockLookupTableService\r\n : LookupTableService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the AuthCoreConfig object\r\n */\r\nexport let lookupTableConfig: PrgLookupTableConfig;\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport {\r\n FilterExpressionToTranslate,\r\n FilterOperationByTypeToTranslate,\r\n} from '../../models/query-table-filter.model';\r\nimport {\r\n Query,\r\n QueryFilterExpression,\r\n QueryFilterOperation,\r\n} from '../../models/query.model';\r\n\r\n/**\r\n * AbstractQueriesService class that defines an\r\n *
abstract queries service to\r\n *
be extended by the mock and real\r\n *
queries services\r\n */\r\nexport abstract class AbstractQueriesService {\r\n /**\r\n * Current Queries list\r\n */\r\n protected queriesChangedSubject = new BehaviorSubject(null);\r\n\r\n /**\r\n * Constructor\r\n * @param {TranslateService} translationService\r\n * @protected\r\n */\r\n protected constructor(private translationService: TranslateService) {}\r\n\r\n /**\r\n * Get all Queries\r\n * @returns a Promise type Query[]\r\n */\r\n public abstract getAllQueriesAsync(): Promise;\r\n\r\n /**\r\n * Function responsible to update a query\r\n * @param {string} queryId\r\n * @param {Query} queryUpdated\r\n * @returns {Promise}\r\n */\r\n public abstract updateQueryAsync(\r\n queryId: string,\r\n queryUpdated: Query\r\n ): Promise;\r\n\r\n /**\r\n * Getter for queriesChangedSubject\r\n * @returns {Observable} the queriesChangedSubject as an observable\r\n */\r\n public getQueriesChangedObservable(): Observable {\r\n return this.queriesChangedSubject.asObservable();\r\n }\r\n\r\n /**\r\n * Getter for queriesChangedSubject\r\n * @returns {Query[]} the queriesChangedSubject current value\r\n */\r\n public getQueriesChanged(): Query[] {\r\n return this.queriesChangedSubject.getValue();\r\n }\r\n\r\n /**\r\n * A setter queriesChangedSubject\r\n * @param {Query[]} queries\r\n * @protected\r\n */\r\n protected setQueriesChanged(queries: Query[]): void {\r\n this.queriesChangedSubject.next(queries);\r\n }\r\n\r\n /**\r\n * Function responsible to store a new query\r\n * @param {Query} newQuery\r\n * @returns {Promise}\r\n */\r\n public abstract createQueryAsync(newQuery: Query): Promise;\r\n\r\n /**\r\n * Function responsible to translate Filters Expressions\r\n * @param {string[]} filterExpression\r\n * @returns {Promise}\r\n */\r\n public async getFilterExpressionTranslationsAsync(\r\n filterExpression: string[]\r\n ): Promise {\r\n return new Promise(\r\n async (resolve, reject) => {\r\n let filterExpressionToTranslate: FilterExpressionToTranslate[] = [];\r\n filterExpression.map(async (filter) => {\r\n filterExpressionToTranslate.push({\r\n expression: await (filter),\r\n label: await this.translationService\r\n .get('filters.filter-expression.' + filter + '.label')\r\n .toPromise(),\r\n });\r\n });\r\n resolve(filterExpressionToTranslate);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Function responsible to translate Filters Operators\r\n * @param {string[]} filterOperators\r\n * @returns {Promise}\r\n */\r\n public async getFilterOperationsTranslationsAsync(\r\n filterOperators: string[]\r\n ): Promise {\r\n return new Promise(\r\n async (resolve, reject) => {\r\n let filterExpressionToTranslate: FilterOperationByTypeToTranslate[] =\r\n [];\r\n filterOperators.map(async (filter) => {\r\n filterExpressionToTranslate.push({\r\n operators: await (filter),\r\n label: await this.translationService\r\n .get('filters.filter-operators.' + filter + '.label')\r\n .toPromise(),\r\n });\r\n });\r\n\r\n resolve(filterExpressionToTranslate);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Get query by Id\r\n * @param {string} queryId\r\n * @returns {Promise}\r\n */\r\n public abstract getQueryByIdAsync(queryId: string): Promise;\r\n}\r\n","import { BaseEntity } from '../../core/models/base-entity.model';\r\n\r\n/**\r\n * QueryOrderType enum\r\n */\r\n\r\nexport enum QueryOrderType {\r\n Ascending,\r\n Descending,\r\n}\r\n\r\n/**\r\n * QueryFilterExpression enum\r\n */\r\nexport enum QueryFilterExpression {\r\n And = 'And',\r\n Or = 'Or',\r\n}\r\n\r\n/**\r\n * QueryFilterOperation enum\r\n */\r\nexport enum QueryFilterOperation {\r\n EqualTo = 'EqualTo',\r\n NotEqualTo = 'NotEqualTo',\r\n GreaterThan = 'GreaterThan',\r\n GreaterThanOrEqualTo = 'GreaterThanOrEqualTo',\r\n LessThan = 'LessThan',\r\n LessThanOrEqualTo = 'LessThanOrEqualTo',\r\n Between = 'Between',\r\n Contains = 'Contains',\r\n DoesNotContain = 'DoesNotContain',\r\n EndsWith = 'EndsWith',\r\n In = 'In',\r\n IsEmpty = 'IsEmpty',\r\n IsNotEmpty = 'IsNotEmpty',\r\n IsNotNull = 'IsNotNull',\r\n IsNotNullNorWhiteSpace = 'IsNotNullNorWhiteSpace',\r\n IsNull = 'IsNull',\r\n IsNullOrWhiteSpace = 'IsNullOrWhiteSpace',\r\n StartsWith = 'StartsWith',\r\n NotIn = 'NotIn',\r\n}\r\n\r\n/**\r\n * QueryFilterOperationByType class that defines allowed filters operations\r\n * for a datatype through static properties\r\n */\r\nexport class QueryFilterOperationByType {\r\n /**\r\n * Static property to define filter operations for data type \"default\"\r\n */\r\n static default = [\r\n QueryFilterOperation.IsNull,\r\n QueryFilterOperation.IsEmpty,\r\n QueryFilterOperation.IsNotEmpty,\r\n QueryFilterOperation.IsNotNull,\r\n ];\r\n /**\r\n * Static property to define filter operations for data type \"string\"\r\n */\r\n static string = [\r\n ...this.default,\r\n QueryFilterOperation.Contains,\r\n QueryFilterOperation.DoesNotContain,\r\n QueryFilterOperation.StartsWith,\r\n QueryFilterOperation.EndsWith,\r\n ];\r\n /**\r\n * Static property to define filter operations for data type \"date\"\r\n */\r\n static date = [...this.default, QueryFilterOperation.Between];\r\n /**\r\n * Static property to define filter operations for data type \"number\"\r\n */\r\n static number = [\r\n ...this.default,\r\n QueryFilterOperation.Between,\r\n QueryFilterOperation.EqualTo,\r\n QueryFilterOperation.NotEqualTo,\r\n QueryFilterOperation.LessThan,\r\n QueryFilterOperation.LessThanOrEqualTo,\r\n QueryFilterOperation.GreaterThan,\r\n QueryFilterOperation.GreaterThanOrEqualTo,\r\n ];\r\n\r\n /**\r\n * Function that returns the number of fields required for a query filter operation\r\n * send by parameter\r\n * @param queryFilterOperation\r\n */\r\n public numberOfFields(queryFilterOperation: QueryFilterOperation): number {\r\n return queryFilterOperation === QueryFilterOperation.Between ? 2 : 1;\r\n }\r\n}\r\n\r\n/**\r\n * QueryColumn class that defines query results'\r\n *
properties and order\r\n */\r\nexport class QueryColumn extends BaseEntity {\r\n /**\r\n * query id (foreign key)\r\n */\r\n public queryId: string;\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Column numeric order\r\n */\r\n public order: number;\r\n /**\r\n * Property name\r\n */\r\n public propertyName: string;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * QueryFilter class that defines filters\r\n *
for non-raw queries\r\n */\r\nexport class QueryFilter extends BaseEntity {\r\n /**\r\n * query id (foreign key)\r\n */\r\n public queryId: string;\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Starts a group before this filter\r\n *
(opens parenthesis)\r\n */\r\n public startGroup: boolean;\r\n /**\r\n * Filter property name\r\n */\r\n public propertyName: string;\r\n /**\r\n * Filter value\r\n */\r\n public value: any;\r\n /**\r\n * Filter additional value for operations that\r\n *
require it, e.g. Between\r\n */\r\n public value2: string;\r\n /**\r\n * Filter operation\r\n */\r\n public filterOperation: QueryFilterOperation = QueryFilterOperation.Contains;\r\n /**\r\n * Filter expression\r\n */\r\n public filterExpression: QueryFilterExpression = QueryFilterExpression.And;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * QueryOrder class that defines the query\r\n *
ordenation\r\n */\r\nexport class QueryOrder extends BaseEntity {\r\n /**\r\n * query id (foreign key)\r\n */\r\n public queryId: string;\r\n\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Property name\r\n */\r\n public propertyName: string;\r\n /**\r\n * Order type\r\n */\r\n public orderType: QueryOrderType;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Query class that defines a generic query\r\n *
to be executed on the database\r\n */\r\nexport class Query extends BaseEntity {\r\n /**\r\n * Entity type id (foreign key)\r\n */\r\n public entityTypeId: string;\r\n /**\r\n * Workspace id (foreign key)\r\n */\r\n public workspaceId: string;\r\n /**\r\n * Is raw (sql command) query\r\n */\r\n public isRaw: boolean = true;\r\n /**\r\n * Raw sql command to be executed\r\n *
if isRaw is true\r\n */\r\n public raw: string;\r\n /**\r\n * Query filters array for non-raw queries\r\n */\r\n public filters: QueryFilter[];\r\n /**\r\n * Query orders array for non-raw queries\r\n */\r\n public orders: QueryOrder[];\r\n /**\r\n * Query columns array for non-raw queries\r\n */\r\n public columns: QueryColumn[];\r\n /**\r\n * Query page size (LIMIT) for non-raw queries\r\n */\r\n public pageSize: number;\r\n /**\r\n * Query page index for non-raw queries\r\n */\r\n public pageIndex: number;\r\n\r\n /**\r\n * A description of the query\r\n */\r\n public description: string;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import {\r\n Query,\r\n QueryFilter,\r\n QueryFilterExpression,\r\n QueryFilterOperation,\r\n} from '../models/query.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface QueriesBD {\r\n /**\r\n * Mock queries\r\n */\r\n Queries: Query[];\r\n}\r\n\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const QueriesBDMOCK: QueriesBD = {\r\n Queries: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Query1',\r\n createdBy: '1',\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n isRaw: true,\r\n raw: 'select * from batatas',\r\n filters: null,\r\n columns: null,\r\n orders: null,\r\n pageSize: 2,\r\n pageIndex: 1,\r\n entityTypeId: null,\r\n description: 'Description of the Query 1',\r\n },\r\n {\r\n id: '2',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Query2',\r\n createdBy: '2',\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n isRaw: true,\r\n raw: 'select * from bananas',\r\n filters: null,\r\n columns: null,\r\n orders: null,\r\n pageSize: 2,\r\n pageIndex: 1,\r\n entityTypeId: null,\r\n description: 'Description of the Query 2',\r\n },\r\n {\r\n id: '3',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Query3',\r\n createdBy: '2',\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n isRaw: false,\r\n raw: null,\r\n description: 'Description of the Query 3',\r\n filters: [\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customername',\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n filterExpression: QueryFilterExpression.And,\r\n filterOperation: QueryFilterOperation.Contains,\r\n queryId: '2',\r\n propertyName: 'customername',\r\n startGroup: true,\r\n value: 'João',\r\n value2: null,\r\n },\r\n {\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'customerId',\r\n workspaceId: '1',\r\n filterExpression: QueryFilterExpression.And,\r\n filterOperation: QueryFilterOperation.EqualTo,\r\n queryId: '2',\r\n propertyName: 'customerId',\r\n startGroup: true,\r\n value: 15,\r\n value2: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n },\r\n ],\r\n columns: null,\r\n orders: null,\r\n pageSize: 2,\r\n pageIndex: 1,\r\n entityTypeId: '1',\r\n },\r\n {\r\n id: '4',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'Query4',\r\n createdBy: '1',\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n workspaceId: '1',\r\n isRaw: false,\r\n raw: null,\r\n description: 'Description of the Query 4',\r\n filters: [\r\n new QueryFilter({\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'city',\r\n workspaceId: '1',\r\n filterExpression: QueryFilterExpression.And,\r\n filterOperation: QueryFilterOperation.DoesNotContain,\r\n queryId: '4',\r\n propertyName: 'city',\r\n startGroup: true,\r\n value: 'Porto',\r\n value2: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n }),\r\n new QueryFilter({\r\n id: '1',\r\n universalStateId: '1',\r\n transactionId: null,\r\n operationId: null,\r\n name: 'VAT',\r\n workspaceId: '1',\r\n filterExpression: QueryFilterExpression.And,\r\n filterOperation: QueryFilterOperation.EqualTo,\r\n queryId: '4',\r\n propertyName: 'VAT',\r\n startGroup: true,\r\n value: 510588966,\r\n value2: null,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n }),\r\n ],\r\n columns: null,\r\n orders: null,\r\n pageSize: 2,\r\n pageIndex: 1,\r\n entityTypeId: '1',\r\n },\r\n ],\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport { PrgError } from '../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { Query } from '../../models/query.model';\r\nimport { AbstractQueriesService } from '../../services/queries/abstract-queries.service';\r\nimport { QueriesBDMOCK } from '../database.mock';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * MOCK AbstractQueriesService implementation\r\n */\r\nexport class MockQueriesService extends AbstractQueriesService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 0.5;\r\n\r\n /**\r\n * constructor\r\n * @param {NotificationsService} notificationsService\r\n * @param {UtilityService} utilityService\r\n * @param {IsLoadingDataService} isLoadingData\r\n * @param {ObjectsUtilityService} objectUtility\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {AbstractAuthService} authService\r\n * @param {TranslateService} translateService\r\n */\r\n constructor(\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private isLoadingData: IsLoadingDataService,\r\n private objectUtility: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private authService: AbstractAuthService,\r\n @Inject(TranslateService) translateService: TranslateService\r\n ) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * Function responsible to store a new query\r\n * @param {Query} newQuery\r\n * @returns {Promise}\r\n */\r\n public createQueryAsync(newQuery: Query): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n let checkNameQuery = QueriesBDMOCK.Queries.find(\r\n (query) => newQuery.name === query.name\r\n );\r\n this.isLoadingData.hide();\r\n\r\n if (!checkNameQuery) {\r\n let query: Query = this.objectUtility.cloneObject(newQuery);\r\n query['createdBy'] = this.authService?.getLoggedUser()?.id;\r\n query['id'] = this.utilityService.newGuid();\r\n\r\n QueriesBDMOCK.Queries.push(query);\r\n const queriesUpdated = this.arrayUtilityService.clone(\r\n QueriesBDMOCK.Queries\r\n );\r\n await this.setQueriesChanged(queriesUpdated);\r\n resolve(query);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'New Query Created.',\r\n detailKey: 'Success.',\r\n })\r\n );\r\n } else {\r\n reject('Queries could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Query not save.',\r\n detailKey: 'Query name already exists in database',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Function responsible to update a query\r\n * @param {string} queryId\r\n * @param {Query} queryUpdated\r\n * @returns {Promise}\r\n */\r\n public updateQueryAsync(\r\n queryId: string,\r\n queryUpdated: Query\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n\r\n const queryIndexToUpdate: number = QueriesBDMOCK.Queries.findIndex(\r\n (query) => {\r\n return query.id == queryId;\r\n }\r\n );\r\n if (queryIndexToUpdate > -1) {\r\n QueriesBDMOCK.Queries[queryIndexToUpdate] = queryUpdated;\r\n }\r\n\r\n const queriesUpdated = this.arrayUtilityService.clone(\r\n QueriesBDMOCK.Queries\r\n );\r\n await this.setQueriesChanged(queriesUpdated);\r\n this.isLoadingData.hide();\r\n resolve(queryUpdated);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'Query updated.',\r\n detailKey: 'Success.',\r\n })\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Get all Queries\r\n * @returns {Promise}\r\n */\r\n public getAllQueriesAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const queries: Query[] = this.objectUtility.cloneObject(\r\n QueriesBDMOCK.Queries\r\n );\r\n this.isLoadingData.hide();\r\n if (queries) {\r\n resolve(queries);\r\n } else {\r\n reject('Queries could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Queries could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get query by Id\r\n * @param {string} queryId\r\n * @returns {Promise}\r\n */\r\n public getQueryByIdAsync(queryId: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const query: Query = this.objectUtility.cloneObject(\r\n QueriesBDMOCK.Queries.find((query) => {\r\n return query.id === queryId;\r\n })\r\n );\r\n this.isLoadingData.hide();\r\n if (query) {\r\n resolve(query);\r\n } else {\r\n reject('Query could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Query could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { Validators } from '@angular/forms';\r\nimport { BaseField } from '../../core/components/dynamic-form/models/base-field';\r\nimport { QueryFilterExpression, QueryFilterOperation } from './query.model';\r\n\r\n/**\r\n * Class to be used on the map of Query Filter to link fields to operators and data type\r\n */\r\nexport class OperatorsAndDataType {\r\n /**\r\n * Allowed operation types for the selected field\r\n */\r\n public queryFilterOperationByType: FilterOperationByTypeToTranslate[];\r\n /**\r\n * The data type for the selected field\r\n */\r\n public dataType: string;\r\n}\r\n\r\n/**\r\n * Interface that defines the filters expressions and his labels to be able to translate them\r\n */\r\nexport interface FilterExpressionToTranslate {\r\n /**\r\n * Filters Expression\r\n */\r\n expression: QueryFilterExpression;\r\n /**\r\n * Define label to be use in template to translate\r\n */\r\n label: string;\r\n}\r\n\r\n/**\r\n * Interface that defines the filters operators and his labels to be use on OperatorsAndDataType class\r\n * and translate them\r\n */\r\nexport interface FilterOperationByTypeToTranslate {\r\n /**\r\n * Operators filters\r\n */\r\n operators: QueryFilterOperation;\r\n /**\r\n * Define label to be use in template to translate\r\n */\r\n label: string;\r\n}\r\n\r\n/**\r\n * Constant that defines the properties for each column of the Queries Filter table\r\n */\r\nexport const QueriesFilterColumns: BaseField[] = [\r\n new BaseField({\r\n key: 'startGroup',\r\n validators: [Validators.required],\r\n value: true,\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n new BaseField({\r\n key: 'propertyName',\r\n validators: [Validators.required],\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n new BaseField({\r\n key: 'filterOperation',\r\n validators: [Validators.required],\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n new BaseField({\r\n key: 'value',\r\n validators: [Validators.required],\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n new BaseField({\r\n key: 'value2',\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n new BaseField({\r\n key: 'query-filter-row-actions',\r\n readonly: true,\r\n basePathTranslation: 'queries.query-modal.actions.',\r\n }),\r\n new BaseField({\r\n key: 'filterExpression',\r\n validators: [Validators.required],\r\n value: QueryFilterExpression.And,\r\n readonly: true,\r\n basePathTranslation: 'queries.fields.query-filter.fields.',\r\n }),\r\n];\r\n","import { BaseField } from '../../../models/base-field';\r\nimport { ControlName } from '../../../models/constants/control-names';\r\n\r\n/**\r\n * Class Input Text\r\n */\r\nexport class InputTextAreaConfiguration extends BaseField {\r\n /**\r\n * control name\r\n */\r\n public controlName?: string = ControlName.inputTextArea;\r\n /*\r\n /!**\r\n * When present, it specifies that the element should be disabled.\r\n *!/\r\n public disabled: boolean = false;*/ //Property already on Base Field\r\n\r\n /**\r\n * When present, textarea size changes as being typed.\r\n */\r\n public autoResize: boolean = false;\r\n\r\n /**\r\n * textarea number of rows.\r\n */\r\n public rows: number = 0;\r\n\r\n /**\r\n * textarea number of columns.\r\n */\r\n public cols: number = 0;\r\n\r\n /**\r\n * constructor\r\n * @param init\r\n */\r\n constructor(init?: Partial) {\r\n super();\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { Validators } from '@angular/forms';\r\nimport { InputTextAreaConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-text-area/input-text-area.model';\r\nimport { SelectConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../core/components/dynamic-form/models/base-field';\r\nimport { ActionName } from '../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../core/components/dynamic-form/models/constants/reference-type';\r\nimport { ToolbarSlot } from '../../core/components/dynamic-form/models/constants/toolbar-slots';\r\n\r\n/**\r\n * Constant that defines the fields and actions for the dynamic form query filter\r\n */\r\nexport const QUERIES_FILTER_DYNAMIC_FORM = {\r\n fields: [\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'name',\r\n validators: [Validators.required],\r\n basePathTranslation: 'queries.fields',\r\n }),\r\n new InputTextAreaConfiguration({\r\n controlName: ControlName.inputTextArea,\r\n value: null,\r\n key: 'description',\r\n validators: [Validators.required],\r\n basePathTranslation: 'queries.fields',\r\n cols: 100,\r\n rows: 2,\r\n autoResize: true,\r\n }),\r\n new SelectConfiguration({\r\n referenceType: ReferenceType.EntityType,\r\n key: 'entityTypeId',\r\n validators: [Validators.required],\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n showClear: true,\r\n basePathTranslation: 'queries.fields',\r\n disabledOutputEvent: false,\r\n }),\r\n ],\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],\r\n};\r\n","import { Validators } from '@angular/forms';\r\nimport { InputTextAreaConfiguration } from '../../core/components/dynamic-form/dynamic-form-fields/fields/input-text-area/input-text-area.model';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../core/components/dynamic-form/models/base-field';\r\nimport { ActionName } from '../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ControlName } from '../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ToolbarSlot } from '../../core/components/dynamic-form/models/constants/toolbar-slots';\r\n\r\n/**\r\n * Constant that defines the fields and actions for the dynamic form query raw\r\n */\r\nexport const QUERIES_RAW_DYNAMIC_FORM = {\r\n fields: [\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'name',\r\n validators: [Validators.required],\r\n basePathTranslation: 'queries.fields',\r\n }),\r\n new InputTextAreaConfiguration({\r\n controlName: ControlName.inputTextArea,\r\n value: null,\r\n key: 'description',\r\n validators: [Validators.required],\r\n basePathTranslation: 'queries.fields',\r\n cols: 100,\r\n rows: 2,\r\n autoResize: true,\r\n }),\r\n new InputTextAreaConfiguration({\r\n controlName: ControlName.inputTextArea,\r\n value: null,\r\n key: 'raw',\r\n validators: [Validators.required],\r\n basePathTranslation: 'queries.fields',\r\n cols: 100,\r\n rows: 2,\r\n autoResize: true,\r\n }),\r\n ],\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],\r\n};\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormArray, FormGroup, Validators } from '@angular/forms';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { BaseField } from '../../../core/components/dynamic-form/models/base-field';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { PrgError } from '../../../core/models/error.model';\r\nimport { FormGroupService } from '../../../core/services/form-group/form-group.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport {\r\n EntityType,\r\n EntityTypeProperty,\r\n} from '../../../entity-types/models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../entity-types/services/entity-types/abstract-entity-type.service';\r\nimport { AbstractLookupTableService } from '../../../lookup-table/services/lookup-table/abstract-lookup-table.service';\r\nimport {\r\n FilterExpressionToTranslate,\r\n OperatorsAndDataType,\r\n QueriesFilterColumns,\r\n} from '../../models/query-table-filter.model';\r\nimport {\r\n Query,\r\n QueryFilter,\r\n QueryFilterExpression,\r\n QueryFilterOperationByType,\r\n} from '../../models/query.model';\r\nimport { QUERIES_FILTER_DYNAMIC_FORM } from '../../queries-dynamic-form-structure/queries-filter-dynamic-form';\r\nimport { QUERIES_RAW_DYNAMIC_FORM } from '../../queries-dynamic-form-structure/queries-raw-dynamic-form';\r\nimport { AbstractQueriesService } from '../../services/queries/abstract-queries.service';\r\n\r\n/**\r\n * Query Modal Component\r\n */\r\n@Component({\r\n selector: 'prg-select-query',\r\n templateUrl: './prg-query-modal.component.html',\r\n styleUrls: ['./prg-query-modal.component.scss'],\r\n})\r\nexport class PrgQueryModalComponent implements OnInit {\r\n /**\r\n * Map of Operators and datatype associated to field\r\n * @type {Map}\r\n */\r\n public mappedOperatorsAndDataTypeByField = new Map<\r\n string,\r\n OperatorsAndDataType\r\n >();\r\n\r\n /**\r\n * A copy of mappedOperatorsAndDataTypeByField\r\n * @type {Map}\r\n */\r\n public mappedOperatorsAndDataTypeByFieldCopy = new Map<\r\n string,\r\n OperatorsAndDataType\r\n >();\r\n /**\r\n * Display column \"Value2\" when a query has a filter with two inputs values.\r\n *\r\n * Default false, hidden column.\r\n */\r\n public queryHasFilterWithTwoValues: boolean = false;\r\n\r\n /**\r\n * The filter expressions ex:\"AND\" and its translations\r\n * @type {FilterExpressionToTranslate[]}\r\n */\r\n public filterExpressions: FilterExpressionToTranslate[] = [];\r\n\r\n /**\r\n * Create an object type QueryFilterOperationByType to\r\n * access his method numberOfFields on template.\r\n */\r\n public operatorType = new QueryFilterOperationByType();\r\n\r\n /**\r\n * A form array that belongs to the formQueryFilter\r\n */\r\n public queryFilterArrayForm = new FormArray([]);\r\n /**\r\n * Class property with type Query which bind to the entity of dynamic form in template\r\n *\r\n * The query data comes from parent component.\r\n */\r\n public query: Query;\r\n\r\n /**\r\n * Property with type Form Group which bind to the query filter form (only filter table)\r\n */\r\n public formQueryFilter: FormGroup;\r\n\r\n /**\r\n * Property with type boolean which bind to the checkbox in template to change query type.\r\n *\r\n * Default is true (raw query)\r\n */\r\n public checkBoxQueryRaw: boolean = true;\r\n /**\r\n * The properties and attributes available for selection by entity type\r\n */\r\n public optionsQueryFields: EntityTypeProperty[] = [];\r\n\r\n /**\r\n * A copy of OptionsQueryFields\r\n */\r\n public optionsQueryFieldsCopy: EntityTypeProperty[] = [];\r\n /**\r\n * The dynamic form fields to build dynamic form filter query in template\r\n */\r\n public queriesFilterDynamicFormFields: any[] = this.arrayUtilityService.clone(\r\n QUERIES_FILTER_DYNAMIC_FORM.fields\r\n );\r\n /**\r\n * The dynamic form actions to build dynamic form filter query in template\r\n */\r\n public queriesFilterDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(QUERIES_FILTER_DYNAMIC_FORM.actions);\r\n /**\r\n * The dynamic form fields to build dynamic form raw query in template\r\n */\r\n public queriesRawDynamicFormFields: BaseField[] =\r\n this.arrayUtilityService.clone(QUERIES_RAW_DYNAMIC_FORM.fields);\r\n /**\r\n * The dynamic form actions to build dynamic form raw query in template\r\n */\r\n public queriesRawDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(QUERIES_RAW_DYNAMIC_FORM.actions);\r\n\r\n /**\r\n * Query table columns to build the formQueryFilter\r\n */\r\n public queriesFilterColumns: BaseField[] = QueriesFilterColumns;\r\n\r\n /**\r\n * An array of all entity type\r\n * @type {EntityType[]}\r\n */\r\n public entityTypeList: EntityType[];\r\n\r\n /**\r\n * This property define if component is loading data from an existing query.\r\n *\r\n * Default is true.\r\n * @type {boolean}\r\n */\r\n public isLoading: boolean = true;\r\n\r\n /**\r\n * The view mode type that comes from parent component. Default is \"read\"\r\n */\r\n public queriesViewMode: ViewMode = ViewMode.Read;\r\n\r\n /**\r\n * Property that defines if you are editing a query or creating a new one.\r\n *\r\n * Default is false (new query)\r\n */\r\n private editMode: boolean = false;\r\n\r\n /**\r\n * The current entity type selected\r\n */\r\n private currentEntityTypeIdSelected: string;\r\n /**\r\n * A copy of the query that comes from the parent component.\r\n *\r\n * This property is used to reset the query to its original values\r\n */\r\n private originalQuery: Query;\r\n\r\n /**\r\n * Constructor\r\n * @param {DynamicDialogRef} querySelectedDialogRef querySelectedDialogRef\r\n * @param {DynamicDialogConfig} querySelectedDialogConfig querySelectedDialogConfig\r\n * @param {AbstractQueriesService} queriesService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {FormGroupService} formGroupService\r\n * @param {NotificationsService} notificationsService\r\n * @param {PrimeNGConfig} primengConfig\r\n * @param {AbstractEntityTypeService} entityTypeService\r\n * @param {AbstractLookupTableService} lookupTableService\r\n */\r\n constructor(\r\n public querySelectedDialogRef: DynamicDialogRef,\r\n public querySelectedDialogConfig: DynamicDialogConfig,\r\n private queriesService: AbstractQueriesService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private formGroupService: FormGroupService,\r\n private notificationsService: NotificationsService,\r\n private primengConfig: PrimeNGConfig,\r\n private entityTypeService: AbstractEntityTypeService,\r\n private lookupTableService: AbstractLookupTableService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Set up all configurations require to initiate properly the component\r\n */\r\n public async ngOnInit() {\r\n let dataQueryFromTable: Query = this.querySelectedDialogConfig.data.query;\r\n this.queriesViewMode = this.querySelectedDialogConfig.data.viewMode;\r\n this.checkBoxQueryRaw = dataQueryFromTable.isRaw;\r\n if (dataQueryFromTable.id) {\r\n this.query = this.objectsUtilityService.cloneObject(\r\n await this.queriesService.getQueryByIdAsync(dataQueryFromTable.id)\r\n );\r\n this.editMode = true;\r\n this.currentEntityTypeIdSelected = this.query.entityTypeId;\r\n } else {\r\n this.query = this.objectsUtilityService.cloneObject(dataQueryFromTable);\r\n this.editMode = false;\r\n }\r\n\r\n this.originalQuery =\r\n this.objectsUtilityService.cloneObject(dataQueryFromTable);\r\n\r\n this.primengConfig.ripple = true;\r\n this.initFormQueryFilter();\r\n\r\n if (this.queriesViewMode === ViewMode.Read) {\r\n this.queryFilterArrayForm.disable();\r\n }\r\n\r\n this.onCheckNumberOfFields();\r\n await this.getInitialData();\r\n this.filterExpressions =\r\n await this.queriesService.getFilterExpressionTranslationsAsync(\r\n Object.keys(QueryFilterExpression)\r\n );\r\n this.isLoading = false;\r\n }\r\n\r\n /**\r\n * Get initial data (async)\r\n *\r\n * Function responsible for getting all data from api/mock required to initialize form query filter\r\n * @private\r\n */\r\n private async getInitialData(): Promise {\r\n this.entityTypeList = this.arrayUtilityService.clone(\r\n await this.entityTypeService.getEntityTypeListAsync()\r\n );\r\n\r\n if (this.currentEntityTypeIdSelected && !this.checkBoxQueryRaw) {\r\n await this.getFieldsByEntityTypeSelect();\r\n await this.mapOperatorsAndDataTypeByField();\r\n }\r\n }\r\n\r\n /**\r\n * Get fields by entity type selected(async)\r\n *\r\n * Function responsible for getting all fields (properties and attributes) available\r\n * from api/mock by entity type selected\r\n * @private\r\n */\r\n private async getFieldsByEntityTypeSelect(): Promise {\r\n /*Check if entity selected has properties and attributes*/\r\n try {\r\n if (!this.checkBoxQueryRaw && this.currentEntityTypeIdSelected) {\r\n let entityTypeNameSelected: string = this.entityTypeList.find(\r\n (entity) => entity.id === this.currentEntityTypeIdSelected\r\n ).name;\r\n\r\n let entityAllData: EntityType = this.objectsUtilityService.cloneObject(\r\n await this.entityTypeService.getAllEntityTypeDataByName(\r\n entityTypeNameSelected\r\n )\r\n );\r\n this.optionsQueryFields = this.arrayUtilityService.clone([\r\n ...entityAllData.properties,\r\n ...entityAllData.attributes,\r\n ]);\r\n if (\r\n this.optionsQueryFieldsCopy == null ||\r\n this.optionsQueryFieldsCopy.length < 1\r\n ) {\r\n this.optionsQueryFieldsCopy = this.arrayUtilityService.clone(\r\n this.optionsQueryFields\r\n );\r\n }\r\n }\r\n } catch (e) {\r\n this.optionsQueryFields = [];\r\n }\r\n }\r\n\r\n /**\r\n * Query raw action output (async)\r\n *\r\n * This function is responsible to handle actions from the dynamic raw form\r\n * @param {DynamicFormActionOutput} event the output from the dynamic raw form\r\n */\r\n public async onActionQueryRaw(event: DynamicFormActionOutput): Promise {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n await this.queryRawSave(event);\r\n break;\r\n case BaseActionKey.Cancel:\r\n if (event.formEntity.id) {\r\n this.query = this.objectsUtilityService.cloneObject(\r\n this.originalQuery\r\n );\r\n } else {\r\n this.querySelectedDialogRef.close();\r\n }\r\n this.queriesViewMode = ViewMode.Read;\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.queriesViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Save raw query (async)\r\n *\r\n * This function is responsible to save a new raw query or update an existing one\r\n * @param {DynamicFormActionOutput} event the output from the dynamic raw form\r\n * @private\r\n */\r\n private async queryRawSave(event: DynamicFormActionOutput): Promise {\r\n this.queriesViewMode = ViewMode.Read;\r\n // @ts-ignore\r\n const { group, ...query } = event.formEntity;\r\n\r\n query.isRaw = true;\r\n let queryResolve: Query;\r\n if (query.id == null || query.id.length === 0) {\r\n queryResolve = await this.queriesService.createQueryAsync(query);\r\n } else {\r\n delete query.filters;\r\n delete query.entityTypeId;\r\n queryResolve = await this.queriesService.updateQueryAsync(\r\n query.id,\r\n query\r\n );\r\n }\r\n this.querySelectedDialogRef.close(queryResolve);\r\n }\r\n\r\n /**\r\n * Initialize Form Array of Filter Query\r\n * @param {boolean} editMode\r\n * @private\r\n */\r\n private initFormArray(editMode: boolean = false): void {\r\n if (this.query['filters'] && !editMode) {\r\n const aux = this.formGroupService.toFormGroupMultipleObjects(\r\n this.query.filters,\r\n this.queriesFilterColumns\r\n );\r\n\r\n this.query.filters.forEach((value, index) => {\r\n this.queryFilterArrayForm.push(aux[index]);\r\n });\r\n } else {\r\n const newQueryFilter: QueryFilter =\r\n PrgQueryModalComponent.newQueryFilterObject();\r\n (this.queryFilterArrayForm).controls = [];\r\n const aux2 = this.formGroupService.toFormGroupOneObject(\r\n newQueryFilter,\r\n this.queriesFilterColumns\r\n );\r\n this.queryFilterArrayForm.push(aux2);\r\n }\r\n }\r\n\r\n /**\r\n * Initialize Query Filter Form\r\n * @private\r\n */\r\n private initFormQueryFilter(): void {\r\n this.initFormArray();\r\n\r\n this.formQueryFilter = new FormGroup({\r\n filters: this.queryFilterArrayForm,\r\n });\r\n }\r\n\r\n /**\r\n * A getter for the form array controls\r\n * @returns {any}\r\n */\r\n public get filters(): any {\r\n return (this.formQueryFilter.get('filters')).controls;\r\n }\r\n\r\n /**\r\n * Delete a row of the filter query table (async)\r\n * @param {number} i The table row\r\n *\r\n */\r\n public onDeleteRow(i: number): void {\r\n if (this.queryFilterArrayForm.length > 1) {\r\n (this.formQueryFilter.get('filters')).removeAt(i);\r\n } else {\r\n (this.formQueryFilter.get('filters')).reset();\r\n }\r\n }\r\n\r\n /**\r\n * Changing field (async)\r\n *\r\n * Function is call whenever is a change of field value\r\n * @param {number} i The table row\r\n * @param {string}value the name of the field\r\n */\r\n public async onChangeField(i: number, value: string): Promise {\r\n (this.formQueryFilter.get('filters')).controls.forEach(\r\n (arrayRow, index) => {\r\n if (index === i) {\r\n (arrayRow).controls.filterOperation.reset();\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Add a new element to query filter array (async)\r\n * @param {number} i The table row\r\n */\r\n public async onAddRow(i: number): Promise {\r\n const newQueryFilter: QueryFilter =\r\n PrgQueryModalComponent.newQueryFilterObject();\r\n this.queryFilterArrayForm.insert(\r\n i + 1,\r\n this.formGroupService.toFormGroupOneObject(\r\n newQueryFilter,\r\n this.queriesFilterColumns\r\n )\r\n );\r\n }\r\n\r\n /**\r\n * Function is call whenever entity type value changes\r\n * @param {string} entityID\r\n *\r\n */\r\n public async onChangeEntity(entityID: string): Promise {\r\n if (entityID == null) {\r\n return;\r\n } else {\r\n this.currentEntityTypeIdSelected = entityID;\r\n await this.getFieldsByEntityTypeSelect();\r\n await this.mapOperatorsAndDataTypeByField();\r\n\r\n this.initFormArray(this.editMode);\r\n }\r\n }\r\n\r\n /**\r\n * Changing Query type\r\n *\r\n * Function is call whenever toggle button changes\r\n */\r\n public async onChangeQueryType(): Promise {\r\n if (!this.checkBoxQueryRaw && !this.query.id) {\r\n await this.getFieldsByEntityTypeSelect();\r\n await this.mapOperatorsAndDataTypeByField();\r\n this.initFormArray();\r\n }\r\n }\r\n\r\n /**\r\n * Auxiliary function to create a new instance of class QueryFilter\r\n * with all its properties\r\n * @returns {QueryFilter} new Object QueryFilter\r\n * @private\r\n */\r\n private static newQueryFilterObject(): QueryFilter {\r\n return {\r\n id: null,\r\n universalStateId: null,\r\n transactionId: null,\r\n operationId: null,\r\n name: null,\r\n workspaceId: null,\r\n filterExpression: QueryFilterExpression.And,\r\n filterOperation: null,\r\n queryId: null,\r\n propertyName: null,\r\n startGroup: true,\r\n value: null,\r\n value2: null,\r\n createdBy: null,\r\n createdOn: null,\r\n modifiedBy: null,\r\n modifiedOn: null,\r\n };\r\n }\r\n\r\n /**\r\n * Function is call whenever operator input changes in each row\r\n *\r\n * Function is responsible to find out if any of filter rows has an\r\n * operator that requires two inputs values an if so makes field value2 visible and apply required validator\r\n */\r\n public onCheckNumberOfFields(): void {\r\n if (\r\n this.queryFilterArrayForm != null &&\r\n this.queryFilterArrayForm.length > 0\r\n ) {\r\n const allOperations = this.queryFilterArrayForm.controls.map((a) => {\r\n return a.value.filterOperation;\r\n });\r\n let checkMultipleFields = false;\r\n\r\n for (let operation of allOperations) {\r\n let index = allOperations.indexOf(operation);\r\n let operatorType = new QueryFilterOperationByType();\r\n if (operatorType.numberOfFields(operation) === 2) {\r\n checkMultipleFields = true;\r\n this.queryFilterArrayForm.controls[index]\r\n .get('value2')\r\n .setValidators(Validators.required);\r\n break;\r\n }\r\n }\r\n\r\n this.queryHasFilterWithTwoValues = checkMultipleFields;\r\n }\r\n }\r\n\r\n /**\r\n * Query filter action output (async)\r\n *\r\n * This function is responsible to handle actions from the dynamic filter form\r\n * @param {DynamicFormActionOutput} event the output from the dynamic filter form\r\n */\r\n public async onActionQueryFilter(event: DynamicFormActionOutput) {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n if (this.queryFilterArrayForm.status === 'INVALID') {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Error Submitting Query ',\r\n detailKey: 'Filling missing fields',\r\n })\r\n );\r\n return;\r\n }\r\n await this.queryFilterSave(event);\r\n break;\r\n\r\n case BaseActionKey.Cancel:\r\n await this.queryFilterCancel(event);\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.queriesViewMode = ViewMode.Edit;\r\n this.queryFilterArrayForm.enable();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Save filter query (async)\r\n *\r\n * This function is responsible to save a new filter query or update an existing one\r\n * @param {DynamicFormActionOutput} event the output from the dynamic filter form\r\n * @private\r\n */\r\n private async queryFilterSave(event: DynamicFormActionOutput) {\r\n this.queriesViewMode = ViewMode.Read;\r\n\r\n const newQuery: Query = new Query({\r\n isRaw: false,\r\n id: this.query.id ? this.query.id : null,\r\n createdBy: this.query.createdBy ? this.query.createdBy : null,\r\n name: event.formEntity.name,\r\n description: event.formEntity.description,\r\n entityTypeId: event.formEntity.entityTypeId,\r\n filters: this.formQueryFilter.value.filters,\r\n });\r\n\r\n let queryResolve: Query;\r\n if (newQuery.id == null || newQuery.id.length === 0) {\r\n queryResolve = await this.queriesService.createQueryAsync(newQuery);\r\n } else {\r\n queryResolve = await this.queriesService.updateQueryAsync(\r\n newQuery.id,\r\n newQuery\r\n );\r\n }\r\n\r\n this.querySelectedDialogRef.close(queryResolve);\r\n }\r\n\r\n /**\r\n * Cancel filter query (async)\r\n *\r\n * This function is responsible to handle operations whenever cancel button is pressed\r\n *\r\n * If editing an existing query it will reset all values of the form\r\n *\r\n * If is a new one will close dialog\r\n * @param {DynamicFormActionOutput} event the output from the dynamic filter form\r\n * @private\r\n */\r\n private async queryFilterCancel(event: DynamicFormActionOutput) {\r\n if (event.formEntity.id) {\r\n this.formQueryFilter.reset();\r\n this.isLoading = true;\r\n this.currentEntityTypeIdSelected = this.query.entityTypeId;\r\n this.optionsQueryFields = this.arrayUtilityService.clone(\r\n this.optionsQueryFieldsCopy\r\n );\r\n this.mappedOperatorsAndDataTypeByField.clear();\r\n this.mappedOperatorsAndDataTypeByField =\r\n this.objectsUtilityService.cloneObject(\r\n this.mappedOperatorsAndDataTypeByFieldCopy\r\n );\r\n\r\n (this.queryFilterArrayForm).controls = [];\r\n this.initFormArray();\r\n this.query = this.objectsUtilityService.cloneObject(this.originalQuery);\r\n this.isLoading = false;\r\n } else {\r\n this.querySelectedDialogRef.close();\r\n }\r\n this.queriesViewMode = ViewMode.Read;\r\n this.queryFilterArrayForm.disable();\r\n }\r\n\r\n /**\r\n * This Function is responsible to map datatype for the fields values and operators\r\n *\r\n * associated to the chosen property or attribute for each filter row\r\n * @returns {Promise}\r\n */\r\n public async mapOperatorsAndDataTypeByField() {\r\n if (this.optionsQueryFields != null && this.optionsQueryFields.length > 0) {\r\n this.mappedOperatorsAndDataTypeByField.clear();\r\n let initMappedCopy: boolean = false;\r\n if (\r\n this.mappedOperatorsAndDataTypeByFieldCopy == null ||\r\n this.mappedOperatorsAndDataTypeByFieldCopy.size < 1\r\n ) {\r\n initMappedCopy = true;\r\n }\r\n for (const fields of this.optionsQueryFields) {\r\n let dataTypeAux = this.lookupTableService\r\n .getLookUpTableItemByIdAsync(fields.dataTypeId)\r\n .then((value) => {\r\n return value.name;\r\n });\r\n\r\n let auxOperation = QueryFilterOperationByType[await dataTypeAux];\r\n\r\n let queryFilterOperationAux =\r\n await this.queriesService.getFilterOperationsTranslationsAsync(\r\n auxOperation\r\n );\r\n\r\n Promise.all([dataTypeAux, queryFilterOperationAux]).then((values) => {\r\n this.mappedOperatorsAndDataTypeByField.set(fields.name, {\r\n queryFilterOperationByType: values[1],\r\n dataType: values[0],\r\n });\r\n if (initMappedCopy) {\r\n this.mappedOperatorsAndDataTypeByFieldCopy.set(fields.name, {\r\n queryFilterOperationByType: values[1],\r\n dataType: values[0],\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{col.basePathTranslation+col.key+'.label'|translate}}\r\n \r\n {{col.basePathTranslation+col.key+'.label'|translate}}\r\n {{col.basePathTranslation+col.key+'.label'|translate}}\r\n {{col.basePathTranslation+col.key+'.label'|translate}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { TreeNode } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\nimport { BaseField } from '../../../core/components/dynamic-form/models/base-field';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { PrgQueriesConfig } from '../../models/prg-queries-config';\r\nimport { Query } from '../../models/query.model';\r\nimport { PRG_QUERIES_CONFIG } from '../../services/prg-queries-configuration/prg-queries-configuration.service';\r\nimport { AbstractQueriesService } from '../../services/queries/abstract-queries.service';\r\nimport { PrgQueryModalComponent } from '../query-modal/prg-query-modal.component';\r\n\r\n/**\r\n * Queries Table Component\r\n */\r\n@Component({\r\n selector: 'prg-queries-table',\r\n templateUrl: './prg-queries-table.component.html',\r\n styleUrls: ['./prg-queries-table.component.scss'],\r\n})\r\nexport class PrgQueriesTableComponent implements OnInit, OnDestroy {\r\n /**\r\n * treeData\r\n */\r\n public treeData: TreeNode[];\r\n /**\r\n * Queries Table columns\r\n */\r\n public queriesTableColumns: BaseField[] =\r\n this.prgQueriesConfig.queryTableColumns;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n */\r\n public subscription: Subscription[] = [];\r\n\r\n /**\r\n * Property of type DynamicDialogRef to control the dialog\r\n */\r\n private querySelectedDialogRef!: DynamicDialogRef;\r\n /**\r\n * Currently logged user\r\n */\r\n private loggedUserId: string;\r\n\r\n /**\r\n * Queries List\r\n */\r\n private queries: Query[];\r\n\r\n /**\r\n * Constructor\r\n * @param {AbstractQueriesService} queriesService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {AbstractAuthService} userService\r\n * @param {PrgQueriesConfig} prgQueriesConfig\r\n * @param {DialogService} dialogService dialogService\r\n */\r\n constructor(\r\n private queriesService: AbstractQueriesService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private userService: AbstractAuthService,\r\n @Inject(PRG_QUERIES_CONFIG) private prgQueriesConfig: PrgQueriesConfig,\r\n public dialogService: DialogService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n */\r\n public async ngOnInit(): Promise {\r\n await this.getAllQueries();\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe all subscriptions\r\n */\r\n public ngOnDestroy(): void {\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n this.subscription = [];\r\n }\r\n\r\n /**\r\n * Get queries list (async)\r\n *\r\n * Function responsible to fetch all queries from api to populate table\r\n * @private\r\n */\r\n\r\n private async getAllQueries(): Promise {\r\n this.queries = await this.queriesService.getAllQueriesAsync();\r\n this.createTreeNode();\r\n }\r\n\r\n /**\r\n * Creation of Tree Node Object\r\n *\r\n * This function is responsible to group queries by creator (logged user and others)\r\n * to organize query data for the table tree\r\n * @private\r\n */\r\n private createTreeNode(): void {\r\n this.queries.forEach((query: Query) => {\r\n if (this.userService.getLoggedUser()) {\r\n this.loggedUserId = this.userService.getLoggedUser().id;\r\n\r\n if (query.createdBy === this.loggedUserId) {\r\n query['group'] = 'myQueries';\r\n } else {\r\n query['group'] = 'otherQueries';\r\n }\r\n }\r\n });\r\n\r\n this.treeData = this.arrayUtilityService.groupByField(\r\n this.queries,\r\n 'group'\r\n );\r\n }\r\n\r\n /**\r\n * Function responsible to open dialog when a query is clicked.\r\n *\r\n * It also manages the data that comes from dialog when it is closed.\r\n *\r\n * @param {Query} query the selected query\r\n */\r\n public openQueryDialog(query: Query): void {\r\n let queryAux: Query;\r\n\r\n if (query) {\r\n queryAux = this.objectsUtilityService.cloneObject(query);\r\n } else {\r\n queryAux = new Query();\r\n }\r\n\r\n this.querySelectedDialogRef = this.dialogService.open(\r\n PrgQueryModalComponent,\r\n {\r\n header: queryAux ? queryAux.name : 'New Query',\r\n width: '80%',\r\n height: '90vh',\r\n baseZIndex: 10000,\r\n data: {\r\n query: queryAux,\r\n viewMode: queryAux.id ? ViewMode.Read : ViewMode.Edit,\r\n },\r\n }\r\n );\r\n this.subscription.push(\r\n this.querySelectedDialogRef.onClose.subscribe((newData) => {\r\n this.subscription.push(\r\n this.queriesService\r\n .getQueriesChangedObservable()\r\n .subscribe((queries) => {\r\n if (newData && queries) {\r\n this.queries = this.arrayUtilityService.clone(queries);\r\n this.createTreeNode();\r\n }\r\n this.querySelectedDialogRef.destroy();\r\n })\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n {{ col.basePathTranslation+\".\"+col.key+\".label\"|translate }}\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n {{rowData[col.key] ? 'Yes': 'No'}}\r\n \r\n \r\n {{rowData[col.key]}}\r\n \r\n\r\n \r\n {{'queries.queries-list.queries-group.'+rowData[col.key]+'.label'|translate }}\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Page Queries\r\n */\r\n@Component({\r\n selector: 'prg-queries',\r\n templateUrl: './prg-queries.page.html',\r\n styleUrls: ['./prg-queries.page.scss'],\r\n})\r\nexport class PrgQueriesPage {}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgQueriesPage } from './pages/prg-queries.page';\r\nimport { queriesConfig } from './prg-queries.module';\r\n\r\nconst standardRoutes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: queriesConfig.queriesRoutingPath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PrgQueriesPage,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgQueriesRoutingModule {}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Query } from '../../models/query.model';\r\nimport { AbstractQueriesService } from './abstract-queries.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * REAL AbstractQueriesService implementation\r\n */\r\nexport class QueriesService extends AbstractQueriesService {\r\n /**\r\n * Function responsible to store a new query\r\n * @param {Query} newQuery\r\n * @returns {Promise}\r\n */\r\n public createQueryAsync(newQuery: Query): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Function responsible to update a query\r\n * @param {string} queryId\r\n * @param {Query} queryUpdated\r\n * @returns {Promise}\r\n */\r\n public updateQueryAsync(\r\n queryId: string,\r\n queryUpdated: Query\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Constructor\r\n * @param {TranslateService} translateService\r\n */\r\n constructor(@Inject(TranslateService) translateService: TranslateService) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * Get all Queries\r\n * @returns {Promise}\r\n */\r\n public getAllQueriesAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Get query by Id\r\n * @param {string} queryId\r\n * @returns {Promise}\r\n */\r\n getQueryByIdAsync(queryId: string): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { PrgCoreDynamicFormModule } from '../core/components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgQueriesTableComponent } from './components/queries-table/prg-queries-table.component';\r\nimport { PrgQueryModalComponent } from './components/query-modal/prg-query-modal.component';\r\nimport { MockQueriesService } from './mock/services/queries.service.mock';\r\nimport { PrgQueriesConfig } from './models/prg-queries-config';\r\nimport { PrgQueriesPage } from './pages/prg-queries.page';\r\nimport { PrgQueriesRoutingModule } from './prg-queries-routing.module';\r\nimport { PRG_QUERIES_CONFIG } from './services/prg-queries-configuration/prg-queries-configuration.service';\r\nimport { AbstractQueriesService } from './services/queries/abstract-queries.service';\r\nimport { QueriesService } from './services/queries/queries.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrgQueriesTableComponent,\r\n PrgQueryModalComponent,\r\n PrgQueriesPage,\r\n PrgQueryModalComponent,\r\n ],\r\n imports: [\r\n PrgQueriesRoutingModule,\r\n PrgSharedComponentsModule,\r\n PrgCoreDynamicFormModule,\r\n ],\r\n exports: [],\r\n providers: [DialogService],\r\n})\r\nexport class PrgQueriesModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgQueriesConfig: PrgQueriesConfig\r\n ): ModuleWithProviders {\r\n queriesConfig = prgQueriesConfig;\r\n return {\r\n ngModule: PrgQueriesModule,\r\n providers: [\r\n {\r\n provide: PRG_QUERIES_CONFIG,\r\n useValue: prgQueriesConfig,\r\n },\r\n {\r\n provide: AbstractQueriesService,\r\n useClass: prgQueriesConfig.useMockServices\r\n ? MockQueriesService\r\n : QueriesService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the QueriesCoreConfig object\r\n */\r\nexport let queriesConfig: PrgQueriesConfig;\r\n","import { BaseEntity } from '../../core/models/base-entity.model';\r\n/**\r\n * Role class that defines the basic properties\r\n *
of an Role.\r\n */\r\nexport class Role extends BaseEntity {\r\n /**\r\n * scopes that this role has\r\n */\r\n scopes: string[];\r\n\r\n /**\r\n * scope label\r\n */\r\n\r\n label: string;\r\n}\r\n","import { TranslateService } from '@ngx-translate/core';\r\nimport { Role } from '../../models/role.model';\r\n\r\n/**\r\n * AbstractRolesScopesService class that defines an\r\n *
abstract roles and scopes service to\r\n *
be extended by the mock and real\r\n *
roles and scopes services\r\n */\r\nexport abstract class AbstractRolesScopesService {\r\n /**\r\n * constructor\r\n * @param translationService\r\n */\r\n\r\n constructor(private translationService: TranslateService) {}\r\n /**\r\n * Get all Roles\r\n */\r\n public abstract getAllRolesAsync(): Promise;\r\n\r\n /**\r\n * Create Role Async\r\n *\r\n * @param {string} roleName The new Role name\r\n *\r\n * @Returns boolean\r\n */\r\n public abstract createRoleAsync(role: Role): Promise;\r\n\r\n /**\r\n * Update Scope\r\n *\r\n * @param role\r\n *\r\n * @Returns boolean\r\n */\r\n public abstract updateRole(role: Role): Promise;\r\n\r\n /* this service get translations for all entity types,properties and attributes\r\n * @param {EntityType[] | EntityType} entities\r\n * @returns {Promise}\r\n * @protected\r\n */\r\n protected async getTranslationsAsync(\r\n roles: Role[] | Role\r\n ): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (Array.isArray(roles)) {\r\n //Translate Entities\r\n let rolesList = roles;\r\n rolesList.map(async (role: Role) => {\r\n role.label = await this.translationService\r\n .get('roles.' + role.name.toLowerCase() + '.label')\r\n .toPromise();\r\n });\r\n resolve(roles);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nimport { Role } from '../../models/role.model';\r\nimport { AbstractRolesScopesService } from '../../services/roles-scopes/abstract-roles-scopes.service';\r\n\r\n/**\r\n * select role component\r\n */\r\n@Component({\r\n selector: 'prg-select-role',\r\n templateUrl: './prg-select-role.component.html',\r\n styleUrls: ['./prg-select-role.component.scss'],\r\n})\r\nexport class PrgSelectRoleComponent implements OnInit {\r\n /**\r\n * roles list\r\n */\r\n @Input() rolesList!: Role[];\r\n\r\n /**\r\n * allow multi select or not\r\n */\r\n @Input() multipleSelect: boolean = false;\r\n\r\n /**\r\n * field that should be used as an option\r\n */\r\n @Input() optionLabel: string = 'label';\r\n\r\n /**\r\n * show search bar or not\r\n */\r\n @Input() showHeader: boolean = true;\r\n\r\n /**\r\n * allow button to confirm selection or not\r\n */\r\n @Input() useButton: boolean = false;\r\n\r\n /**\r\n * default value selected to single selections\r\n */\r\n @Input('defaultSelected') set defaultSelected(value: Role) {\r\n if (value) {\r\n this.roleSelected = value;\r\n }\r\n }\r\n\r\n /**\r\n * Output with the selected roles\r\n */\r\n @Output() onSubmitRolesSelected = new EventEmitter();\r\n\r\n /**\r\n * Item selectable, if multiple is null else is 1\r\n */\r\n public maxItemsSelectable: number = 1;\r\n\r\n /**\r\n * roles selected when is multiple\r\n */\r\n public rolesSelected!: Role[];\r\n\r\n /**\r\n * Role selected when is single\r\n */\r\n public roleSelected!: Role;\r\n\r\n /**\r\n * Constructor\r\n * @param rolesScopesService\r\n */\r\n constructor(private rolesScopesService: AbstractRolesScopesService) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * set value to [rolesList]{@link #rolesList}\r\n *\r\n * call method [getAllRolesAsync]{@link /classes/AbstractRolesScopesService.html#getAllRolesAsync} from services\r\n */\r\n ngOnInit() {\r\n if (!this.rolesList) {\r\n this.getAllRoles();\r\n }\r\n }\r\n\r\n /**\r\n *this function get all roles\r\n */\r\n private async getAllRoles() {\r\n this.rolesList = await this.rolesScopesService.getAllRolesAsync();\r\n }\r\n w;\r\n\r\n /**\r\n * This function fire [onSubmitRolesSelected]{@link #onSubmitRolesSelected} output\r\n */\r\n public sendRolesSelected() {\r\n if (this.multipleSelect && this.rolesSelected.length > 0) {\r\n this.onSubmitRolesSelected.emit(this.rolesSelected);\r\n } else if (!this.multipleSelect && this.roleSelected) {\r\n this.onSubmitRolesSelected.emit(this.roleSelected);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n 0)\"\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ModalController } from \"@ionic/angular\";\r\nimport { Role } from \"../../../models/role.model\";\r\n\r\n/**\r\n * Modal create role\r\n */\r\n@Component({\r\n selector: \"prg-modal-create-role\",\r\n templateUrl: \"./prg-modal-create-role.component.html\",\r\n styleUrls: [\"./prg-modal-create-role.component.scss\"],\r\n})\r\nexport class PrgModalCreateRoleComponent {\r\n /**\r\n * list of roles to use as a basis for creating a new\r\n */\r\n public rolesSelected: Role[] = [];\r\n\r\n /**\r\n * name for the new role\r\n */\r\n public newRoleName: string;\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param modalCtrl\r\n */\r\n constructor(private modalCtrl: ModalController) {}\r\n\r\n /**\r\n * receive output onAction\r\n *\r\n * @param roles\r\n */\r\n onSubmitRolesSelected(roles: Role[]) {\r\n this.rolesSelected = roles;\r\n }\r\n\r\n /**\r\n * cancel the creation of the new role\r\n * @returns\r\n */\r\n cancel() {\r\n return this.modalCtrl.dismiss(null, \"cancel\");\r\n }\r\n\r\n /**\r\n * create of the new role\r\n *\r\n * @returns\r\n */\r\n createRole() {\r\n return this.modalCtrl.dismiss(this.createNewRoleObject(), \"confirm\");\r\n }\r\n\r\n /**\r\n * Create new Role object\r\n *\r\n * @returns ROle\r\n */\r\n private createNewRoleObject(): Role {\r\n let newRole: Role = new Role();\r\n newRole.name = this.newRoleName;\r\n let scopesAux = [];\r\n if (this.rolesSelected.length > 0) {\r\n this.rolesSelected.forEach((element) => {\r\n if (element.scopes) {\r\n scopesAux = scopesAux.concat(element.scopes);\r\n }\r\n });\r\n }\r\n // remove repeats\r\n const setScopesAux = new Set(scopesAux);\r\n newRole.scopes = [...setScopesAux];\r\n\r\n return newRole;\r\n }\r\n}\r\n","
\r\n \r\n

\r\n {{ 'components.roles-scopes.create-role.based-roles.label' | translate }}\r\n

\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { ModalController } from \"@ionic/angular\";\r\nimport { Role } from \"../../models/role.model\";\r\nimport { AbstractRolesScopesService } from \"../../services/roles-scopes/abstract-roles-scopes.service\";\r\nimport { PrgModalCreateRoleComponent } from \"./prg-modal-create-role/prg-modal-create-role.component\";\r\n\r\n/**\r\n * Create role component\r\n */\r\n@Component({\r\n selector: \"prg-create-role\",\r\n templateUrl: \"./prg-create-role.component.html\",\r\n styleUrls: [\"./prg-create-role.component.scss\"],\r\n})\r\nexport class PrgCreateRoleComponent {\r\n /**\r\n * Input placeholder\r\n */\r\n @Input() placeholder: string = \"\";\r\n\r\n /**\r\n * Button label\r\n */\r\n @Input() buttonLabel!: string;\r\n\r\n /**\r\n * newRoleName\r\n */\r\n newRoleName: string;\r\n\r\n /**\r\n * output if the newRole was added successfully\r\n */\r\n @Output() addedNewRole = new EventEmitter();\r\n\r\n /**\r\n * constructor\r\n *\r\n * @param rolesScopesService\r\n */\r\n constructor(\r\n private rolesScopesService: AbstractRolesScopesService,\r\n private modalCtrl: ModalController\r\n ) {}\r\n\r\n /**\r\n * Create role, this function call service method [createRoleAsync]{@link /classes/AbstractRolesScopesService.html#createRoleAsync}\r\n */\r\n\r\n public createRole(role: Role) {\r\n this.rolesScopesService.createRoleAsync(role).then((response) => {\r\n if (response) {\r\n this.newRoleName = \"\";\r\n this.addedNewRole.emit(response);\r\n } else {\r\n this.addedNewRole.emit(null);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Function to open modal\r\n *\r\n * if click to save role call method [createRole]{@link #createRole}\r\n */\r\n async openModalCreateRole(): Promise {\r\n const modal = await this.modalCtrl.create({\r\n component: PrgModalCreateRoleComponent,\r\n });\r\n modal.present();\r\n\r\n const { data, role } = await modal.onWillDismiss();\r\n\r\n if (role === \"confirm\") {\r\n this.createRole(data);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { TreeNode } from 'primeng/api';\r\n\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { EntityType } from '../../../entity-types/models/entity-type.model';\r\nimport { AbstractEntityTypeService } from '../../../entity-types/services/entity-types/abstract-entity-type.service';\r\nimport { PrgRolesScopesConfig } from '../../models/prg-roles-scopes-config';\r\nimport { Role } from '../../models/role.model';\r\nimport { PRG_ROLES_SCOPES_CONFIG } from '../../services/roles-scopes-configuration/prg-roles-scopes-configuration.service';\r\nimport { AbstractRolesScopesService } from '../../services/roles-scopes/abstract-roles-scopes.service';\r\nimport {\r\n PrgScopeColumnData,\r\n PrgScopesColumns,\r\n PrgScopesNode,\r\n} from './models/prg-scopes-node';\r\n\r\n/**\r\n * Scopes table component\r\n * Tri checkbox legend:\r\n * true-> all selected\r\n * false-> partial selected\r\n * null-> non selected\r\n */\r\n\r\n@Component({\r\n selector: 'prg-scopes-table',\r\n templateUrl: './prg-scopes-table.component.html',\r\n styleUrls: ['./prg-scopes-table.component.scss'],\r\n})\r\nexport class PrgScopesTableComponent implements OnInit {\r\n /**\r\n * has a role selected\r\n */\r\n public haveRole: boolean = false;\r\n /**\r\n * Role aux\r\n */\r\n private _role: Role;\r\n\r\n /**\r\n * Role that we want to configure\r\n */\r\n @Input('role') set role(value: Role) {\r\n if (value) {\r\n this.haveRole = true;\r\n this._role = this.objectsUtilityService.cloneObject(value);\r\n if (this._role.scopes) {\r\n this.mappingTheScopesOfARole(value.scopes);\r\n } else {\r\n this.treeData = this.createDataStructure();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * treeData\r\n */\r\n public treeData: TreeNode[];\r\n\r\n /**\r\n * table columns\r\n */\r\n public tableColumns: string[] = [];\r\n\r\n /**\r\n * haveChangesToSave\r\n */\r\n public haveChangesToSave: boolean = false;\r\n\r\n /**\r\n * Entity types\r\n */\r\n private entityTypes: EntityType[];\r\n\r\n /**\r\n * base scopes\r\n */\r\n private baseScopes: string[] = this.prgRolesScopesConfig.baseScopes;\r\n\r\n /**\r\n * constructor\r\n * @param objectsUtilityService\r\n * @param arrayUtilityService\r\n * @param rolesScopesService\r\n * @param prgRolesScopesConfig prgRolesScopesConfig\r\n */\r\n constructor(\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private rolesScopesService: AbstractRolesScopesService,\r\n private abstractEntityTypeService: AbstractEntityTypeService,\r\n @Inject(PRG_ROLES_SCOPES_CONFIG)\r\n public prgRolesScopesConfig: PrgRolesScopesConfig\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * set value to\r\n * [treeData]{@link #treeData}\r\n * [entityTypes]{@link #entityTypes}\r\n * [tableColumns]{@link #tableColumns}\r\n *\r\n * call method [getAllEntityType]{@link /classes/AbstractRolesScopesService.html#getAllEntityType} from services\r\n */\r\n ngOnInit() {\r\n // TODO: acho que fizemos um erro de spec, ou seja, estamos a usar as entitytypes para criar a estrutura\r\n // quando deveriamos usar apenas as scopes ou pelo menos devemos poder acrescentar scopes sem entity type, a falar...\r\n\r\n this.abstractEntityTypeService\r\n .getEntityTypeListWithOperationAsync()\r\n .then((response) => {\r\n this.entityTypes = response;\r\n // this.treeData = this.createDataStructure();\r\n });\r\n\r\n this.tableColumns = this.tableColumns.concat(this.baseScopes);\r\n this.tableColumns.unshift('name');\r\n this.tableColumns.push(this.prgRolesScopesConfig.otherScopes);\r\n }\r\n\r\n /**\r\n * this function receives the scopes and arranges\r\n * them by group into the correct structure\r\n * to be used in the treetable\r\n *\r\n * this function call [createEntityTypeColumns]{@link #createEntityTypeColumns} to create entity type columns\r\n * this function call [createGroupColumns]{@link #createGroupColumns} to create columns\r\n *\r\n * @returns TreeNode[]\r\n */\r\n private createDataStructure(): TreeNode[] {\r\n if (this.entityTypes == null) {\r\n return null;\r\n }\r\n\r\n let entityTypesOrganisedByGroup: Map[]> =\r\n new Map();\r\n\r\n let entityTypesOrganizedTreeNode: TreeNode[] = [];\r\n\r\n this.entityTypes.forEach((element) => {\r\n if (element.operations != null && element.operations.length) {\r\n const treeNodeEntityType: TreeNode = {\r\n data: {\r\n isGroup: false,\r\n name: element.name,\r\n label: element.label,\r\n columns: this.createEntityTypeColumns(element),\r\n },\r\n };\r\n\r\n if (entityTypesOrganisedByGroup.has(element.group)) {\r\n entityTypesOrganisedByGroup\r\n .get(element.group)\r\n .push(treeNodeEntityType);\r\n } else {\r\n entityTypesOrganisedByGroup.set(element.group, [treeNodeEntityType]);\r\n }\r\n }\r\n });\r\n\r\n entityTypesOrganisedByGroup.forEach(\r\n (nodes: TreeNode[], groupName: string) => {\r\n let treeNodeGroup: TreeNode = {};\r\n treeNodeGroup.data = {\r\n isGroup: true,\r\n name: groupName,\r\n label: groupName,\r\n columns: this.createGroupColumns(nodes),\r\n };\r\n\r\n treeNodeGroup.children = nodes;\r\n treeNodeGroup.expanded = true;\r\n entityTypesOrganizedTreeNode.push(treeNodeGroup);\r\n }\r\n );\r\n return entityTypesOrganizedTreeNode;\r\n }\r\n\r\n /**\r\n * this function create Entity Columns\r\n * @param entityType\r\n * @returns PrgScopesColumns\r\n */\r\n private createEntityTypeColumns(entityType: EntityType): PrgScopesColumns {\r\n const prgScopesColumns: PrgScopesColumns = {\r\n value: null,\r\n children: new Map(),\r\n };\r\n\r\n if (!entityType.operations) {\r\n return prgScopesColumns;\r\n }\r\n\r\n entityType.operations.forEach((item) => {\r\n if (this.baseScopes.includes(item.name)) {\r\n // create columns when is a base scope\r\n prgScopesColumns.children.set(item.name, {\r\n value: null,\r\n scope: entityType.name + ':' + item.name,\r\n children: null,\r\n label: 'ola1',\r\n });\r\n } else {\r\n // create columns when is other scopes\r\n let other = prgScopesColumns.children.get(\r\n this.prgRolesScopesConfig.otherScopes\r\n );\r\n if (!other) {\r\n other = {\r\n value: null,\r\n scope: null,\r\n children: new Map(),\r\n data: [],\r\n label: 'ola2',\r\n };\r\n prgScopesColumns.children.set(\r\n this.prgRolesScopesConfig.otherScopes,\r\n other\r\n );\r\n }\r\n other.children.set(item.name, {\r\n parent: other,\r\n value: false,\r\n scope: entityType.name + ':' + item.name,\r\n children: null,\r\n data: [],\r\n label: item.label,\r\n });\r\n }\r\n });\r\n return prgScopesColumns;\r\n }\r\n\r\n /**\r\n * this function create group columns\r\n * @param nodes\r\n * @returns PrgScopesColumns\r\n */\r\n private createGroupColumns(\r\n nodes: TreeNode[]\r\n ): PrgScopesColumns {\r\n const prgScopesColumns: PrgScopesColumns = {\r\n value: null,\r\n children: new Map(),\r\n };\r\n\r\n // loop base scopes to check if exist a child with this scope action\r\n this.baseScopes.forEach((col) => {\r\n if (nodes.find((n) => n.data.columns.children.has(col)) != null) {\r\n prgScopesColumns.children.set(col, {\r\n value: null,\r\n scope: null,\r\n children: null,\r\n label: 'ola4',\r\n });\r\n }\r\n });\r\n\r\n // check if exist a child with other scope action\r\n if (\r\n nodes.find((n) =>\r\n n.data.columns.children.has(this.prgRolesScopesConfig.otherScopes)\r\n ) == null\r\n ) {\r\n return prgScopesColumns;\r\n }\r\n\r\n prgScopesColumns.children.set(this.prgRolesScopesConfig.otherScopes, {\r\n value: null,\r\n scope: null,\r\n children: null,\r\n label: 'ola5',\r\n });\r\n\r\n return prgScopesColumns;\r\n }\r\n\r\n /**\r\n * this function returns an array with all scopes\r\n *\r\n * @returns PrgScopeColumnData[]\r\n */\r\n private getScopeObjectsFromTree(): PrgScopeColumnData[] {\r\n return this.treeData.reduce(\r\n (prev, next) =>\r\n this.getScopeObjectsFromTreeChildrens(prev, next.children),\r\n []\r\n );\r\n }\r\n\r\n /**\r\n * is an auxiliary function, which makes use of\r\n * recursion to return all the scopes of\r\n * all the children of the tree\r\n *\r\n * @param prev\r\n * @param items\r\n * @returns PrgScopeColumnData[]\r\n */\r\n private getScopeObjectsFromTreeChildrens(\r\n prev: PrgScopeColumnData[],\r\n items: any[]\r\n ): PrgScopeColumnData[] {\r\n if (items == null) return prev;\r\n items.forEach((x) => {\r\n if (x?.scope) {\r\n prev.push(x);\r\n } else if (x?.data?.columns?.children) {\r\n this.getScopeObjectsFromTreeChildrens(prev, x.data.columns.children);\r\n } else if (x?.value?.children) {\r\n this.getScopeObjectsFromTreeChildrens(prev, x.value.children);\r\n } else if (x?.children) {\r\n this.getScopeObjectsFromTreeChildrens(prev, x.children);\r\n }\r\n });\r\n return prev;\r\n }\r\n\r\n /**\r\n * This function is responsible for checking all scopes received as parameters\r\n *\r\n * this function call [getScopeObjectsFromTree]{@link #getScopeObjectsFromTree} to get all scopes\r\n *\r\n * @param scopes\r\n */\r\n private setSelectedScopes(scopes: string[]): void {\r\n this.getScopeObjectsFromTree().forEach((x) => {\r\n x.value = scopes.find((y) => y === x.scope) != null;\r\n if (x.parent) {\r\n x.parent.data.push(x.scope);\r\n x.parent.value =\r\n x.parent.data.length == x.parent.children.size\r\n ? true\r\n : x.parent.data.length > 0\r\n ? false\r\n : null;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * this function maps the scopes of the selected role in the table data\r\n *\r\n *\r\n * @param roleScopes\r\n * @returns\r\n */\r\n private mappingTheScopesOfARole(roleScopes: string[]): void {\r\n // clean treeData\r\n this.treeData = this.createDataStructure();\r\n if (this.treeData == null) {\r\n return;\r\n }\r\n\r\n if (roleScopes && roleScopes.length > 0) {\r\n this.setSelectedScopes(roleScopes);\r\n\r\n //loop to check row, columns and groups\r\n this.treeData.forEach((group) => {\r\n const groupName = group.data.name;\r\n group.children.forEach((child) => {\r\n this.checkIfAllScopesAreSelectedByRow(child.data.name, groupName);\r\n });\r\n [...group.data.columns.children.keys()].forEach((key: string) => {\r\n this.checkIfAllScopesAreSelectedByGroupColumn(group.data.name, key);\r\n });\r\n this.checkIfAllScopesAreSelectedByGroup(groupName);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * this function is responsible for checking or unchecking\r\n * all the other scopes of a row, making all\r\n * the necessary checks to validate the state\r\n * of the group, column and row\r\n *\r\n * @param event\r\n * @param groupName\r\n * @param rowData\r\n */\r\n public otherCheckedChange(\r\n event: any,\r\n groupName: string,\r\n rowData: PrgScopesNode\r\n ): void {\r\n const otherChild = rowData.columns.children.get(\r\n this.prgRolesScopesConfig.otherScopes\r\n );\r\n\r\n // put all children a false\r\n otherChild.children.forEach((row) => {\r\n row.value = false;\r\n });\r\n // clean array with selected other scopes\r\n otherChild.data = [];\r\n\r\n //use event value to check other scopes again\r\n event.value.forEach((val) => {\r\n const value = val.substr(val.indexOf(':') + 1);\r\n const node = otherChild.children.get(value);\r\n node.value = !node.value;\r\n otherChild.data.push(val);\r\n });\r\n\r\n const checkedCount = [...otherChild.children.values()].filter(\r\n (n) => n.value === true\r\n ).length;\r\n\r\n otherChild.value =\r\n checkedCount === otherChild.children.size\r\n ? true\r\n : checkedCount > 0\r\n ? false\r\n : null;\r\n\r\n // check row, column and group status\r\n this.checkIfAllScopesAreSelectedByGroupColumn(\r\n groupName,\r\n this.prgRolesScopesConfig.otherScopes\r\n );\r\n this.checkIfAllScopesAreSelectedByRow(rowData.name, groupName);\r\n this.checkIfAllScopesAreSelectedByGroup(groupName);\r\n\r\n this.compareOriginalScopesWithCurrentScopesSelection();\r\n }\r\n\r\n /**\r\n * toogle column in group\r\n *\r\n * @param rowData\r\n * @param column\r\n */\r\n public columnCheckedChange(rowData: PrgScopesNode, column: string): void {\r\n const groupName = rowData.name;\r\n const group = this.treeData.find(\r\n (obj: TreeNode) => obj.data.name === groupName\r\n );\r\n\r\n // if the current status is other than true, we must pass the value to true, otherwise to null\r\n const status = group.data.columns.children.get(column).value !== true;\r\n\r\n group.data.columns.children.get(column).value = status ? true : null;\r\n\r\n group.children.forEach((element) => {\r\n if (element.data.columns.children.has(column)) {\r\n if (column === this.prgRolesScopesConfig.otherScopes) {\r\n this.groupOtherSelectionChange(\r\n status,\r\n element.data.columns.children.get(column)\r\n );\r\n } else {\r\n element.data.columns.children.get(column).value = status;\r\n }\r\n }\r\n });\r\n\r\n this.checkIfAllScopesAreSelectedByGroup(groupName);\r\n\r\n group.children.forEach((element) => {\r\n this.checkIfAllScopesAreSelectedByRow(element.data.name, groupName);\r\n });\r\n\r\n this.compareOriginalScopesWithCurrentScopesSelection();\r\n }\r\n\r\n /**\r\n * this function is responsible for checking or unchecking\r\n * all other scopes in a group\r\n *\r\n * @param toogleStatus\r\n * @param otherColumnsData\r\n */\r\n private groupOtherSelectionChange(\r\n toogleStatus: boolean,\r\n otherColumnsData: PrgScopeColumnData\r\n ): void {\r\n otherColumnsData.value = toogleStatus ? true : null;\r\n otherColumnsData.data = [];\r\n otherColumnsData.children.forEach(\r\n (otherChild: PrgScopeColumnData, otherKey: string) => {\r\n otherChild.value = toogleStatus;\r\n if (toogleStatus) {\r\n otherColumnsData.data.push(otherKey);\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * this function is responsible for checking or unchecking\r\n * all the scopes of a row, doing all the state\r\n * validations for the group and columns\r\n *\r\n * call method [groupOtherSelectionChange]{@link #groupOtherSelectionChange} to toogle other scopes\r\n *\r\n * @param groupName\r\n * @param rowData\r\n */\r\n public rowSelectionChange(groupName: string, rowData: PrgScopesNode): void {\r\n // if the current status is other than true, we must pass the value to true, otherwise to null\r\n const status = rowData.columns.value !== true;\r\n\r\n rowData.columns.value = status ? true : null;\r\n rowData.columns.children.forEach(\r\n (child: PrgScopeColumnData, key: string) => {\r\n if (key === this.prgRolesScopesConfig.otherScopes) {\r\n this.groupOtherSelectionChange(status, child);\r\n } else {\r\n child.value = status;\r\n }\r\n }\r\n );\r\n\r\n //check columns\r\n [...rowData.columns.children.keys()].forEach((key: string) => {\r\n this.checkIfAllScopesAreSelectedByGroupColumn(groupName, key);\r\n });\r\n\r\n //check group\r\n this, this.checkIfAllScopesAreSelectedByGroup(groupName);\r\n\r\n this.compareOriginalScopesWithCurrentScopesSelection();\r\n }\r\n\r\n /**\r\n * this function is responsible for checking or\r\n * unchecking all scopes in a given group\r\n *\r\n * call method [groupOtherSelectionChange]{@link #groupOtherSelectionChange} to toogle other scopes\r\n * @param groupName\r\n */\r\n public groupSelectionChange(groupName: string) {\r\n const group = this.treeData.find(\r\n (obj: TreeNode) => obj.data.name === groupName\r\n );\r\n\r\n // if the current status is other than true, we must pass the value to true, otherwise to null\r\n const status = group.data.columns.value !== true;\r\n\r\n group.data.columns.value = status ? true : null;\r\n group.data.columns.children.forEach((child: PrgScopeColumnData) => {\r\n child.value = status ? true : null;\r\n });\r\n group.children.forEach((child: any) => {\r\n child.data.columns.value = status ? true : null;\r\n });\r\n group.children.forEach((child) => {\r\n child.data.columns.children.forEach(\r\n (scopeChild: PrgScopeColumnData, key: string) => {\r\n if (key === this.prgRolesScopesConfig.otherScopes) {\r\n this.groupOtherSelectionChange(status, scopeChild);\r\n } else {\r\n scopeChild.value = status;\r\n }\r\n }\r\n );\r\n });\r\n this.compareOriginalScopesWithCurrentScopesSelection();\r\n }\r\n\r\n /**\r\n * This function is responsible for making the\r\n * necessary changes when a scope has its state changed.\r\n * Using auxiliary functions, it validates if the column,\r\n * row and the group in which it is inserted are totally or\r\n * partially with a selection or without any selection;\r\n *\r\n * Auxiliar functions:\r\n * [checkIfAllScopesAreSelectedByGroupColumn]{@link #checkIfAllScopesAreSelectedByGroupColumn}\r\n * [checkIfAllScopesAreSelectedByRow]{@link #checkIfAllScopesAreSelectedByRow}\r\n * [checkIfAllScopesAreSelectedByGroup]{@link #checkIfAllScopesAreSelectedByGroup}\r\n *\r\n * @param groupName\r\n * @param rowData\r\n * @param column\r\n */\r\n public scopeSelectionChange(\r\n groupName: string,\r\n rowName: string,\r\n column: string\r\n ): void {\r\n this.compareOriginalScopesWithCurrentScopesSelection();\r\n // check row, columns and group\r\n this.checkIfAllScopesAreSelectedByGroupColumn(groupName, column);\r\n this.checkIfAllScopesAreSelectedByRow(rowName, groupName);\r\n this.checkIfAllScopesAreSelectedByGroup(groupName);\r\n }\r\n\r\n /**\r\n * This function validates if scopes are fully or\r\n * partially selected or if no scope is selected in a group\r\n *\r\n * @param rowName\r\n */\r\n private checkIfAllScopesAreSelectedByRow(\r\n rowName: string,\r\n groupName: string\r\n ): void {\r\n const group = this.treeData.find(\r\n (obj: TreeNode) => obj.data.name === groupName\r\n );\r\n const row = group.children.find(\r\n (obj: TreeNode) => obj.data.name === rowName\r\n );\r\n\r\n // get all children checked\r\n const childrenColChecked = [...row.data.columns.children.values()].filter(\r\n (c) => c.value === true\r\n );\r\n\r\n // if have other scopes check if have some scope selected\r\n let childrenColPartial = null;\r\n if (row.data.columns.children.has(this.prgRolesScopesConfig.otherScopes)) {\r\n childrenColPartial = row.data.columns.children.get(\r\n this.prgRolesScopesConfig.otherScopes\r\n ).value;\r\n }\r\n\r\n row.data.columns.value =\r\n childrenColChecked.length == row.data.columns.children.size\r\n ? true\r\n : childrenColChecked.length > 0 || childrenColPartial !== null\r\n ? false\r\n : null;\r\n }\r\n\r\n /**\r\n * This function validates if scopes are fully or\r\n * partially selected or if no scope is selected on a given column in a group\r\n *\r\n * Auxiliar functions:\r\n * [checkIfAllScopesAreSelectedForAdditional]{@link #checkIfAllScopesAreSelectedForAdditional}\r\n * [checkIfAllScopesAreSelectedForColumn]{@link #checkIfAllScopesAreSelectedForColumn}\r\n *\r\n * @param groupName\r\n * @param columnName\r\n */\r\n private checkIfAllScopesAreSelectedByGroupColumn(\r\n groupName: string,\r\n columnName: string\r\n ): void {\r\n const group = this.treeData.find(\r\n (obj: TreeNode) => obj.data.name === groupName\r\n );\r\n if (this.prgRolesScopesConfig.baseScopes.includes(columnName)) {\r\n group.data.columns.children.get(columnName).value =\r\n this.checkIfAllScopesAreSelectedForColumn(group.children, columnName);\r\n } else {\r\n group.data.columns.children.get(columnName).value =\r\n this.checkIfAllScopesAreSelectedForAdditional(group.children);\r\n }\r\n }\r\n\r\n /**\r\n * This function validates if scopes are fully or\r\n * partially selected or if no scope is selected in a group\r\n *\r\n * @param groupName\r\n */\r\n private checkIfAllScopesAreSelectedByGroup(groupName: string): void {\r\n const groupData = this.treeData.find(\r\n (obj: TreeNode) => obj.data.name === groupName\r\n ).data;\r\n\r\n // get all group columns checked\r\n const childrenColChecked = [...groupData.columns.children.values()].filter(\r\n (c) => c.value === true\r\n );\r\n\r\n if (childrenColChecked.length == groupData.columns.children.size) {\r\n groupData.columns.value = true;\r\n return;\r\n }\r\n const childrenColPartial = [...groupData.columns.children.values()].filter(\r\n (c) => c.value === false || c.value === true\r\n );\r\n\r\n groupData.columns.value = childrenColPartial.length > 0 ? false : null;\r\n }\r\n\r\n /**\r\n *this function validates whether the state of a column of other scopes\r\n * @param groupChildren\r\n * @returns boolean or null\r\n */\r\n private checkIfAllScopesAreSelectedForAdditional(\r\n groupChildren: TreeNode[]\r\n ): boolean | null {\r\n //get list with all custom scopes selected\r\n const childrenColChecked = groupChildren.filter(\r\n (c) =>\r\n !c.data.columns.children.has(this.prgRolesScopesConfig.otherScopes) ||\r\n c.data.columns.children.get(this.prgRolesScopesConfig.otherScopes)\r\n .value === true\r\n );\r\n\r\n if (childrenColChecked.length == groupChildren.length) {\r\n return true;\r\n }\r\n\r\n const childrenColPartial = groupChildren.filter(\r\n (c) =>\r\n !c.data.columns.children.has(this.prgRolesScopesConfig.otherScopes) ||\r\n c.data.columns.children.get(this.prgRolesScopesConfig.otherScopes)\r\n .value === false\r\n );\r\n\r\n const childrenWithoutCol = groupChildren.filter(\r\n (c) => !c.data.columns.children.has(this.prgRolesScopesConfig.otherScopes)\r\n );\r\n\r\n return childrenColPartial.length - childrenWithoutCol.length > 0\r\n ? false\r\n : null;\r\n }\r\n\r\n /**\r\n * this is an auxiliary function that validates if a given column(default columns(crud))\r\n * of a group has its scopes totally or\r\n * partially selected or without any selection\r\n *\r\n * @param groupChildren\r\n * @param column\r\n * @returns boolean or null\r\n */\r\n private checkIfAllScopesAreSelectedForColumn(\r\n groupChildren: TreeNode[],\r\n column: string\r\n ): boolean | null {\r\n //get an array with the selected scopes from the column\r\n const childrenColChecked = groupChildren.filter(\r\n (c) =>\r\n !c.data.columns.children.has(column) ||\r\n c.data.columns.children.get(column).value === true\r\n );\r\n\r\n //get an array with the rows that have no scope in that column\r\n const childrenWithoutCol = groupChildren.filter(\r\n (c) => !c.data.columns.children.has(column)\r\n );\r\n\r\n return childrenColChecked.length == groupChildren.length\r\n ? true\r\n : childrenColChecked.length - childrenWithoutCol.length > 0\r\n ? false\r\n : null;\r\n }\r\n\r\n /**\r\n * this function compares the original scopes of the selected function with the currently selected scopes\r\n *\r\n * set value to [haveChangesToSave] {@link #haveChangesToSave}\r\n */\r\n private compareOriginalScopesWithCurrentScopesSelection(): void {\r\n let originalScopesSelected: string[] = [];\r\n if (this._role && this._role.scopes) {\r\n originalScopesSelected = this._role.scopes.slice().sort();\r\n }\r\n const currentScopesSelected = this.getSelectedScopes();\r\n this.haveChangesToSave = !this.arrayUtilityService.compareTwoArray(\r\n originalScopesSelected,\r\n currentScopesSelected\r\n );\r\n }\r\n\r\n /**\r\n * this function returns an array with\r\n * all the selected scopes\r\n *\r\n * use the [getScopeObjectsFromTree] {@link getScopeObjectsFromTree} function to get a list of all the scopes\r\n * @returns string[]\r\n */\r\n private getSelectedScopes(): string[] {\r\n return this.getScopeObjectsFromTree().reduce((prev, x) => {\r\n if (x.value) {\r\n prev.push(x.scope);\r\n }\r\n return prev;\r\n }, []);\r\n }\r\n\r\n /**\r\n * this function saves all changes to a role\r\n *\r\n * calling the [updateRole]{@link /classes/AbstractRolesScopesService.html#updateRole} method from services\r\n */\r\n public saveChanges(): void {\r\n let scopesSelected: string[] = [];\r\n scopesSelected = this.getSelectedScopes();\r\n this._role.scopes = scopesSelected;\r\n this.rolesScopesService.updateRole(this._role);\r\n this.haveChangesToSave = false;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n {{ 'components.roles-scopes.columns.' + col + '.label' | translate }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n 0 &&\r\n rowData.columns.children.has(col) &&\r\n rowNode.node.children;\r\n else elseBlock\r\n \"\r\n [ngModel]=\"rowData.columns.children.get(col).value\"\r\n (click)=\"columnCheckedChange(rowData, col)\"\r\n checkboxFalseIcon=\"pi pi-minus\"\r\n >\r\n \r\n 0 && rowNode.node.data.columns.children.get(col)\"\r\n [name]=\"rowData.name\"\r\n [value]=\"rowData.name\"\r\n [(ngModel)]=\"rowNode.node.data.columns.children.get(col).value\"\r\n (onChange)=\"\r\n scopeSelectionChange(\r\n rowNode.parent.data.name,\r\n rowData.name,\r\n col\r\n )\r\n \"\r\n [binary]=\"true\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{\r\n 'components.roles-scopes.other-operations-column.other-operations.label'\r\n | translate\r\n }}\r\n \r\n \r\n \r\n {{\r\n rowData.columns.children.get(\r\n prgRolesScopesConfig.otherScopes\r\n ).data.length\r\n }}\r\n {{\r\n 'components.roles-scopes.other-operations-column.operation-selected.label'\r\n | translate\r\n }}\r\n
\r\n \r\n {{\r\n rowData.columns.children.get(\r\n prgRolesScopesConfig.otherScopes\r\n ).data.length\r\n }}\r\n {{\r\n 'components.roles-scopes.other-operations-column.operations-selected.label'\r\n | translate\r\n }}\r\n \r\n \r\n \r\n \r\n {{ other.value.label | translate }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Role } from '../models/role.model';\r\n\r\n/**\r\n * Database interface that defines a mock\r\n *
database to be used while developing\r\n *
and/or testing the front-end.\r\n */\r\nexport interface RolesScopesBD {\r\n /**\r\n * Mock Roles\r\n */\r\n Roles: Role[];\r\n}\r\n/**\r\n * MockDatabase object to be used while developing\r\n *
and/or testing the front-end\r\n */\r\nexport const RolesScopesBDMOCk: RolesScopesBD = {\r\n Roles: [\r\n {\r\n id: '1',\r\n name: 'Admin',\r\n universalStateId: '',\r\n createdBy: '',\r\n modifiedBy: '',\r\n createdOn: null,\r\n modifiedOn: null,\r\n operationId: null,\r\n transactionId: null,\r\n label: null,\r\n scopes: [\r\n 'Customer:view',\r\n 'Customer:create',\r\n 'Customer:delete',\r\n 'Product:view',\r\n 'Product:create',\r\n 'User:create',\r\n 'User:update',\r\n 'User:view',\r\n 'Orders:create',\r\n 'Orders:viewUserOrder',\r\n 'Orders:updateUserOrder',\r\n ],\r\n },\r\n {\r\n id: '2',\r\n name: 'Manager',\r\n universalStateId: '',\r\n createdBy: '',\r\n modifiedBy: '',\r\n createdOn: null,\r\n modifiedOn: null,\r\n operationId: '',\r\n transactionId: '',\r\n label: null,\r\n scopes: ['Customer:view', 'Customer:create'],\r\n },\r\n {\r\n id: '3',\r\n name: 'shop-manager',\r\n universalStateId: '',\r\n createdBy: '',\r\n modifiedBy: '',\r\n createdOn: null,\r\n modifiedOn: null,\r\n operationId: '',\r\n transactionId: '',\r\n scopes: null,\r\n label: null,\r\n },\r\n {\r\n id: '4',\r\n name: 'Marketing',\r\n universalStateId: '',\r\n createdBy: '',\r\n modifiedBy: '',\r\n createdOn: null,\r\n modifiedOn: null,\r\n operationId: '',\r\n transactionId: '',\r\n scopes: null,\r\n label: null,\r\n },\r\n ],\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PrgError } from '../../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../../core/services/notifications/notifications.service';\r\nimport { UtilityService } from '../../../../core/services/utility/utility.service';\r\nimport { Role } from '../../../models/role.model';\r\nimport { AbstractRolesScopesService } from '../../../services/roles-scopes/abstract-roles-scopes.service';\r\nimport { RolesScopesBDMOCk } from '../../rolesScopesDB.mock';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * MOCK MockRolesScopesService implementation\r\n */\r\nexport class MockRolesScopesService extends AbstractRolesScopesService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 4;\r\n\r\n /**\r\n * constructor\r\n */\r\n constructor(\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private isLoadingDataService: IsLoadingDataService,\r\n @Inject(TranslateService) translateService: TranslateService\r\n ) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * Get all Roles Async\r\n *\r\n * @returns Roles array promisse\r\n */\r\n public getAllRolesAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingDataService.hide();\r\n\r\n const roles = [...RolesScopesBDMOCk.Roles];\r\n\r\n if (roles.length > 0) {\r\n const rolesTranslation = await this.getTranslationsAsync(roles);\r\n resolve(rolesTranslation);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorGetScopesList',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * create role Async\r\n *\r\n * @param roleName\r\n * @returns Boolean promise, true when successful\r\n */\r\n public async createRoleAsync(role: Role): Promise {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingDataService.hide();\r\n const newRole: Role = {\r\n id: this.utilityService.newGuid(),\r\n universalStateId: '0',\r\n transactionId: null,\r\n operationId: null,\r\n name: role.name,\r\n createdBy: null,\r\n modifiedBy: null,\r\n createdOn: null,\r\n modifiedOn: null,\r\n scopes: role.scopes,\r\n label: null,\r\n };\r\n\r\n return new Promise((resolve) => {\r\n if (RolesScopesBDMOCk.Roles.push(newRole)) {\r\n resolve(newRole);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'roleSuccessAdded',\r\n })\r\n );\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorOnAddRole',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * update role\r\n *\r\n * @param role role with new data\r\n * @returns booler promise, true when successful\r\n */\r\n public updateRole(role: Role): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingDataService.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n this.isLoadingDataService.hide();\r\n const roles = [...RolesScopesBDMOCk.Roles];\r\n const roleToUpdate = roles.find((r) => r.id === role.id);\r\n if (roleToUpdate) {\r\n roleToUpdate.scopes = role.scopes;\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'success',\r\n detailKey: 'roleSuccessUpdate',\r\n })\r\n );\r\n resolve(roleToUpdate);\r\n } else {\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'error',\r\n detailKey: 'errorUpdateRole',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { Role } from \"../../models/role.model\";\r\nimport { AbstractRolesScopesService } from \"../../services/roles-scopes/abstract-roles-scopes.service\";\r\n\r\n/**\r\n * Roles and Scopes page component\r\n */\r\n@Component({\r\n selector: \"app-prg-roles-scopes\",\r\n templateUrl: \"./prg-roles-scopes.page.html\",\r\n styleUrls: [\"./prg-roles-scopes.page.scss\"],\r\n})\r\nexport class PrgRolesScopesPage {\r\n /**\r\n * current role selected\r\n */\r\n public roleSelected: Role;\r\n\r\n /**\r\n * roles list\r\n */\r\n public rolesList!: Role[];\r\n\r\n /**\r\n * constructor\r\n */\r\n constructor(private rolesScopesService: AbstractRolesScopesService) {}\r\n\r\n /**\r\n * receive output onAction\r\n *\r\n * @param roles\r\n */\r\n onSubmitRolesSelected(role: Role) {\r\n this.roleSelected = JSON.parse(JSON.stringify(role));\r\n }\r\n\r\n /**\r\n * Receives output when a new role is added\r\n *\r\n * @param added\r\n */\r\n addedNewRole(added: Role) {\r\n this.roleSelected = added;\r\n this.getAllRoles();\r\n }\r\n\r\n /**\r\n *this function get all roles\r\n */\r\n private async getAllRoles() {\r\n this.rolesList = await this.rolesScopesService.getAllRolesAsync();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgRolesScopesPage } from './pages/roles-scopes/prg-roles-scopes.page';\r\nimport { rolesScopesConfig } from './prg-roles-scopes.module';\r\n\r\n/**\r\n * Roles and Scopes routing module routes\r\n */\r\nconst standardRoutes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: rolesScopesConfig.rolesScopesBasePath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PrgRolesScopesPage,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgRolesScopesRoutingModule {}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Role } from '../../models/role.model';\r\nimport { AbstractRolesScopesService } from './abstract-roles-scopes.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n *RolesScopesService implementation\r\n */\r\nexport class RolesScopesService extends AbstractRolesScopesService {\r\n /**\r\n * constructor\r\n */\r\n constructor(@Inject(TranslateService) translateService: TranslateService) {\r\n super(translateService);\r\n }\r\n\r\n /**\r\n * Get all Roles Async\r\n *\r\n * @returns Roles array promisse\r\n */\r\n public getAllRolesAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * create role Async\r\n *\r\n * @param roleName\r\n * @returns Boolean promise, true when successful\r\n */\r\n public createRoleAsync(newRole: Role): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * update role\r\n *\r\n * @param role role with new data\r\n * @returns booler promise, true when successful\r\n */\r\n public updateRole(role: Role): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\n\r\nimport { PrgCreateRoleComponent } from './components/role-create/prg-create-role.component';\r\nimport { PrgModalCreateRoleComponent } from './components/role-create/prg-modal-create-role/prg-modal-create-role.component';\r\nimport { PrgSelectRoleComponent } from './components/roles-select/prg-select-role.component';\r\nimport { PrgScopesTableComponent } from './components/scopes-table/prg-scopes-table.component';\r\nimport { MockRolesScopesService } from './mock/services/roles-scopes/roles-scopes.service.mock';\r\nimport { PrgRolesScopesConfig } from './models/prg-roles-scopes-config';\r\nimport { PrgRolesScopesPage } from './pages/roles-scopes/prg-roles-scopes.page';\r\nimport { PrgRolesScopesRoutingModule } from './prg-roles-scopes-routing.module';\r\nimport { PRG_ROLES_SCOPES_CONFIG } from './services/roles-scopes-configuration/prg-roles-scopes-configuration.service';\r\nimport { AbstractRolesScopesService } from './services/roles-scopes/abstract-roles-scopes.service';\r\nimport { RolesScopesService } from './services/roles-scopes/roles-scopes.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n PrgRolesScopesPage,\r\n PrgSelectRoleComponent,\r\n PrgCreateRoleComponent,\r\n PrgScopesTableComponent,\r\n PrgModalCreateRoleComponent,\r\n ],\r\n imports: [PrgRolesScopesRoutingModule, PrgSharedComponentsModule],\r\n exports: [\r\n PrgSelectRoleComponent,\r\n PrgCreateRoleComponent,\r\n PrgScopesTableComponent,\r\n ],\r\n})\r\nexport class PrgRolesScopesModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgRolesScopesConfig: PrgRolesScopesConfig\r\n ): ModuleWithProviders {\r\n rolesScopesConfig = prgRolesScopesConfig;\r\n return {\r\n ngModule: PrgRolesScopesModule,\r\n providers: [\r\n {\r\n provide: PRG_ROLES_SCOPES_CONFIG,\r\n useValue: prgRolesScopesConfig,\r\n },\r\n {\r\n provide: AbstractRolesScopesService,\r\n useClass: prgRolesScopesConfig.useMockServices\r\n ? MockRolesScopesService\r\n : RolesScopesService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the AuthCoreConfig object\r\n */\r\nexport let rolesScopesConfig: PrgRolesScopesConfig;\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PrgTermsConfig } from '../../models/prg-terms-config';\r\nimport { Terms } from '../../models/terms.model';\r\nimport { PRG_TERMS_CONFIG } from '../prg-terms-configuration/prg-terms-configuration.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n/**\r\n * TermsService class is responsible to perform tasks and manage data related to the terms component\r\n */\r\nexport class TermsService {\r\n /**\r\n * constructor\r\n * @param {TranslateService} translateService\r\n * @param {PrgTermsConfig} termsConfig\r\n */\r\n constructor(\r\n private translateService: TranslateService,\r\n @Inject(PRG_TERMS_CONFIG)\r\n private termsConfig: PrgTermsConfig\r\n ) {}\r\n\r\n /**\r\n * Method to get terms and sections base on a key and sort them according to predefined configuration\r\n * @param {string} baseTermsTranslationKey\r\n * @returns {Terms[]}\r\n */\r\n public getTermsSections(baseTermsTranslationKey: string): Terms[] {\r\n if (\r\n baseTermsTranslationKey == null ||\r\n baseTermsTranslationKey.length === 0\r\n ) {\r\n baseTermsTranslationKey = this.termsConfig.baseTermsTranslationKey;\r\n }\r\n\r\n const sectionsTerms = this.translateService.instant(\r\n baseTermsTranslationKey\r\n );\r\n const sectionsTermsArray = [];\r\n\r\n if (sectionsTerms == null || sectionsTerms.sections == null) {\r\n return sectionsTermsArray;\r\n }\r\n\r\n Object.keys(sectionsTerms.sections).forEach(function (key) {\r\n sectionsTermsArray.push(sectionsTerms.sections[key]);\r\n });\r\n\r\n sectionsTermsArray.sort((a, b) => {\r\n return b.order < a.order ? 1 : -1;\r\n });\r\n\r\n return sectionsTermsArray;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Terms } from '../models/terms.model';\r\nimport { TermsService } from '../services/terms/terms.service';\r\n\r\n/**\r\n * Terms Component\r\n */\r\n@Component({\r\n selector: 'prg-terms',\r\n templateUrl: './prg-terms.component.html',\r\n styleUrls: ['./prg-terms.component.scss'],\r\n})\r\nexport class PrgTermsComponent implements OnInit {\r\n /**\r\n * Terms and Condition list\r\n */\r\n public terms: Terms[] = [];\r\n\r\n /**\r\n * Terms & Conditions title. Default is Terms & Conditions\r\n */\r\n @Input() termsTitle: string = 'Terms & Conditions';\r\n /**\r\n * Terms & Conditions image.\r\n */\r\n @Input() termsImage: string = 'assets/images/Terms-and-Conditions-1.png';\r\n\r\n /**\r\n * constructor\r\n * @param {TermsService} termsService\r\n */\r\n constructor(private termsService: TermsService) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Fetch terms & conditions\r\n */\r\n async ngOnInit() {\r\n this.terms = this.termsService.getTermsSections('');\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n","/**\r\n * Class Terms\r\n */\r\nexport class Terms {\r\n /**\r\n * The header of each section of terms\r\n */\r\n public header: string;\r\n /**\r\n * The content of each section of terms\r\n */\r\n public content: string;\r\n /**\r\n * The order of each section of terms\r\n */\r\n public order: string;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgTermsComponent } from './components/prg-terms.component';\r\nimport { termsConfig } from './prg-terms.module';\r\n\r\nconst standardRoutes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: termsConfig.termsOfUseRoutingPath,\r\n // component: PrgLayoutsEmptyComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PrgTermsComponent,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgTermsRoutingModule {}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { PrgCoreDynamicFormModule } from '../core/components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgTermsComponent } from './components/prg-terms.component';\r\nimport { PrgTermsConfig } from './models/prg-terms-config';\r\nimport { PrgTermsRoutingModule } from './prg-terms-routing.module';\r\nimport { PRG_TERMS_CONFIG } from './services/prg-terms-configuration/prg-terms-configuration.service';\r\n\r\n/**\r\n * Module that handles terms of use\r\n */\r\n@NgModule({\r\n declarations: [PrgTermsComponent],\r\n imports: [\r\n PrgSharedComponentsModule,\r\n PrgTermsRoutingModule,\r\n PrgCoreDynamicFormModule,\r\n ],\r\n exports: [PrgTermsComponent],\r\n})\r\nexport class PrgTermsModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgTermsConfig: PrgTermsConfig\r\n ): ModuleWithProviders {\r\n termsConfig = prgTermsConfig;\r\n\r\n return {\r\n ngModule: PrgTermsModule,\r\n providers: [\r\n {\r\n provide: PRG_TERMS_CONFIG,\r\n useValue: prgTermsConfig,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the TermsCoreConfig object, use ONLY in routing module\r\n * for everything else, use dependency injection through the injector\r\n */\r\nexport let termsConfig: PrgTermsConfig;\r\n","import { GridsterConfig } from 'angular-gridster2';\r\nimport { GridsterComponentInterface } from 'angular-gridster2/lib/gridster.interface';\r\nimport {\r\n displayGrids,\r\n PushDirections,\r\n} from 'angular-gridster2/lib/gridsterConfig.interface';\r\nimport {\r\n GridsterItem,\r\n GridsterItemComponentInterface,\r\n} from 'angular-gridster2/lib/gridsterItem.interface';\r\n\r\n/**\r\n * Class PrgGridsterConfig to be used on dashboards options\r\n */\r\nexport class PrgGridsterConfig implements GridsterConfig {\r\n /**\r\n * Different types for layout for the grid.\r\n * @type {PrgGridType}\r\n */\r\n gridType?: PrgGridType = PrgGridType.Fit;\r\n /**\r\n * scale param to zoom in/zoom out\r\n * @type {number}\r\n */\r\n scale?: number = 1;\r\n /**\r\n * fixed col width for gridType: fixed\r\n * @type {number}\r\n */\r\n fixedColWidth?: number = 250;\r\n /**\r\n * fixed row height for gridType: fixed\r\n * @type {number}\r\n */\r\n fixedRowHeight?: number = 250;\r\n /**\r\n * keep the height from fixed gridType in mobile layout\r\n * @type {boolean}\r\n */\r\n keepFixedHeightInMobile?: boolean = false;\r\n /**\r\n * keep the width from fixed gridType in mobile layout\r\n * @type {boolean}\r\n */\r\n keepFixedWidthInMobile?: boolean = false;\r\n /**\r\n * sets grid size depending on content\r\n * @type {boolean}\r\n */\r\n setGridSize?: boolean = false;\r\n\r\n /**\r\n * use the width of the element to determine when to switch to the mobile layout\r\n * @type {boolean}\r\n */\r\n useBodyForBreakpoint?: boolean = false;\r\n /**\r\n * compact items\r\n * @type {PrgCompactType}\r\n */\r\n compactType?: PrgCompactType = PrgCompactType.None;\r\n /**\r\n * if the screen is not wider that this, remove the grid layout and stack the items\r\n * @type {number}\r\n */\r\n mobileBreakpoint?: number = 640;\r\n /**\r\n * allow items show in layers\r\n * @type {boolean}\r\n */\r\n allowMultiLayer?: boolean = false;\r\n /**\r\n * default layer index of an item in gridster\r\n * @type {number}\r\n */\r\n defaultLayerIndex?: number = 1;\r\n /**\r\n * max layer index of an item in gridster\r\n * @type {number}\r\n */\r\n maxLayerIndex?: number = 2;\r\n /**\r\n * base layer index of an item in gridster, final z-index should be baseLayerIndex + layerIndex\r\n * @type {number}\r\n */\r\n baseLayerIndex?: number = 1;\r\n /**\r\n * minimum amount of columns in the grid\r\n * @type {number}\r\n */\r\n minCols?: number = 1;\r\n /**\r\n * maximum amount of columns in the grid\r\n * @type {number}\r\n */\r\n maxCols?: number = 100;\r\n /**\r\n * minimum amount of rows in the grid\r\n * @type {number}\r\n */\r\n minRows?: number = 1;\r\n /**\r\n * maximum amount of rows in the grid\r\n * @type {number}\r\n */\r\n maxRows?: number = 100;\r\n /**\r\n * default width of an item in columns\r\n * @type {number}\r\n */\r\n defaultItemCols?: number = 1;\r\n /**\r\n * default height of an item in rows\r\n * @type {number}\r\n */\r\n defaultItemRows?: number = 1;\r\n /**\r\n * maximum item number of cols\r\n * @type {number}\r\n */\r\n maxItemCols?: number = 50;\r\n /**\r\n * maximum item number of rows\r\n * @type {number}\r\n */\r\n maxItemRows?: number = 50;\r\n /**\r\n * \tminimum item number of cols\r\n * @type {number}\r\n */\r\n minItemCols?: number = 1;\r\n /**\r\n * minimum item number of row\r\n * @type {number}\r\n */\r\n minItemRows?: number = 1;\r\n /**\r\n * minimum item area: cols * rows\r\n * @type {number}\r\n */\r\n minItemArea?: number = 1;\r\n /**\r\n * maximum item area: cols * rows\r\n * @type {number}\r\n */\r\n maxItemArea?: number = 2500;\r\n /**\r\n * add a number of extra empty rows at the end\r\n * @type {number}\r\n */\r\n addEmptyRowsCount?: number = 0;\r\n /**\r\n * row height ratio from column width for gridType: scrollVertical and scrollHorizontal\r\n * @type {number}\r\n */\r\n rowHeightRatio?: number = 1;\r\n\r\n /**\r\n * margin between grid items\r\n * @type {number}\r\n */\r\n margin?: number = 5;\r\n /**\r\n * if margins will apply to the sides of the container\r\n * @type {boolean}\r\n */\r\n outerMargin?: boolean = true;\r\n /**\r\n * override top outer margin for grid\r\n * @type {number | null}\r\n */\r\n outerMarginTop?: number | null = null;\r\n /**\r\n * override right outer margin for grid\r\n * @type {number | null}\r\n */\r\n outerMarginRight?: number | null = null;\r\n /**\r\n * override bottom outer margin for grid\r\n * @type {number | null}\r\n */\r\n outerMarginBottom?: number | null = null;\r\n /**\r\n * override left outer margin for grid\r\n * @type {number | null}\r\n */\r\n outerMarginLeft?: number | null = null;\r\n /**\r\n * use of transform positioning property\r\n * @type {boolean}\r\n */\r\n useTransformPositioning?: boolean = true;\r\n /**\r\n * Scroll sensitivity\r\n * @type {number | null}\r\n */\r\n scrollSensitivity?: number | null = 10;\r\n /**\r\n * scroll speed\r\n * @type {number}\r\n */\r\n scrollSpeed?: number = 20;\r\n /**\r\n * callback to call after grid has initialized\r\n * @type {(gridster: GridsterComponentInterface) => void}\r\n */\r\n initCallback?: (gridster: GridsterComponentInterface) => void;\r\n /**\r\n * callback to call after grid has destroyed\r\n * @type {(gridster: GridsterComponentInterface) => void}\r\n */\r\n destroyCallback?: (gridster: GridsterComponentInterface) => void;\r\n /**\r\n * callback to call after grid has changed size cols/rows\r\n * @type {(gridster: GridsterComponentInterface) => void}\r\n */\r\n gridSizeChangedCallback?: (gridster: GridsterComponentInterface) => void;\r\n /**\r\n * callback to call for each item when is changes x, y, rows, cols\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface) => void}\r\n */\r\n itemChangeCallback?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ) => void;\r\n /**\r\n * callback to call for each item when width/height changes\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface) => void}\r\n */\r\n itemResizeCallback?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ) => void;\r\n /**\r\n * callback to call for each item when is initialized\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface) => void}\r\n */\r\n itemInitCallback?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ) => void;\r\n /**\r\n * callback to call for each item when is removed\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface) => void}\r\n */\r\n itemRemovedCallback?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ) => void;\r\n /**\r\n * callback to call to validate item position/size. Return true if valid.\r\n * @type {(item: PrgGridsterItem) => boolean}\r\n */\r\n itemValidateCallback?: (item: PrgGridsterItem) => boolean;\r\n /**\r\n * PrgDraggable Object\r\n * @type {PrgDraggable}\r\n */\r\n draggable?: PrgDraggable = new PrgDraggable({});\r\n /**\r\n * PrgResizable Object\r\n * @type {PrgResizable}\r\n */\r\n resizable?: PrgResizable = new PrgResizable({});\r\n /**\r\n * allow items to switch position if drop on top of another\r\n * @type {boolean}\r\n */\r\n swap?: boolean = true;\r\n /**\r\n * swap items while dragging and save new position\r\n * @type {boolean}\r\n */\r\n swapWhileDragging?: boolean = false;\r\n /**\r\n * push items when resizing and dragging\r\n * @type {boolean}\r\n */\r\n pushItems?: boolean = false;\r\n /**\r\n * disable push on drag\r\n * @type {boolean}\r\n */\r\n disablePushOnDrag?: boolean = false;\r\n /**\r\n * disable push on resize\r\n * @type {boolean}\r\n */\r\n disablePushOnResize?: boolean = false;\r\n /**\r\n * disable auto-position of items on conflict state\r\n * @type {boolean}\r\n */\r\n disableAutoPositionOnConflict?: boolean = false;\r\n /**\r\n * control the directions items are pushed\r\n * @type {PushDirections}\r\n */\r\n pushDirections?: PrgPushDirections = new PrgPushDirections({});\r\n /**\r\n * on resize of item will shrink adjacent items\r\n * @type {boolean}\r\n */\r\n pushResizeItems?: boolean = false;\r\n /**\r\n * display background grid of rows and columns\r\n * @type {displayGrids}\r\n */\r\n displayGrid?: PrgDisplayGrid = PrgDisplayGrid.Always;\r\n /**\r\n * disable the window on resize listener. This will stop grid to recalculate on window resize.\r\n * @type {boolean}\r\n */\r\n disableWindowResize?: boolean = false;\r\n /**\r\n * disable console log warnings about misplacement of grid items\r\n * @type {boolean}\r\n */\r\n disableWarnings?: boolean = false;\r\n /**\r\n * scroll to new items placed in a scrollable view\r\n * @type {boolean}\r\n */\r\n scrollToNewItems?: boolean = false;\r\n /**\r\n * enable/disable auto horizontal scrolling when on edge of grid\r\n * @type {boolean}\r\n */\r\n disableScrollHorizontal?: boolean = false;\r\n /**\r\n * enable/disable auto vertical scrolling when on edge of grid\r\n * @type {boolean}\r\n */\r\n disableScrollVertical?: boolean = false;\r\n /**\r\n * enable/disable boundary control while dragging items\r\n * @type {boolean}\r\n */\r\n enableBoundaryControl?: boolean = false;\r\n /**\r\n * enable empty cell click events\r\n * @type {boolean}\r\n */\r\n enableEmptyCellClick?: boolean = true;\r\n /**\r\n * enable empty cell context menu (right click) events\r\n * @type {boolean}\r\n */\r\n enableEmptyCellContextMenu?: boolean = false;\r\n /**\r\n * enable empty cell drop events\r\n * @type {boolean}\r\n */\r\n enableEmptyCellDrop?: boolean = false;\r\n /**\r\n * enable empty cell drag events\r\n * @type {boolean}\r\n */\r\n enableEmptyCellDrag?: boolean = true;\r\n /**\r\n * enable occupied cell drop events\r\n * @type {boolean}\r\n */\r\n enableOccupiedCellDrop?: boolean = false;\r\n /**\r\n * empty cell click callback\r\n * @type {(event: MouseEvent, item: PrgGridsterItem) => void}\r\n */\r\n emptyCellClickCallback?: (event: MouseEvent, item: PrgGridsterItem) => void;\r\n /**\r\n * empty cell context menu (right click) callback\r\n * @type {(event: MouseEvent, item: PrgGridsterItem) => void}\r\n */\r\n emptyCellContextMenuCallback?: (\r\n event: MouseEvent,\r\n item: PrgGridsterItem\r\n ) => void;\r\n /**\r\n * empty cell drag drop callback. HTML5 Drag & Drop\r\n * @type {(event: DragEvent, item: PrgGridsterItem) => void}\r\n */\r\n emptyCellDropCallback?: (event: DragEvent, item: PrgGridsterItem) => void;\r\n /**\r\n * empty cell drag and create item like excel cell\r\n * @type {(event: MouseEvent, item: PrgGridsterItem) => void}\r\n */\r\n emptyCellDragCallback?: (event: MouseEvent, item: PrgGridsterItem) => void;\r\n /**\r\n * limit empty cell drag max cols\r\n * @type {number}\r\n */\r\n emptyCellDragMaxCols?: number = 50;\r\n /**\r\n * limit empty cell drag max rows\r\n * @type {number}\r\n */\r\n emptyCellDragMaxRows?: number = 50;\r\n /**\r\n * ignore the gap between rows for items which span multiple rows (see #162, #224) only for gridType: fixed , verticalFixed, horizontalFixed\r\n * @type {boolean}\r\n */\r\n ignoreMarginInRow?: boolean = false;\r\n /**\r\n * direction type\r\n * @type {PrgDirTypes}\r\n */\r\n dirType?: PrgDirTypes = PrgDirTypes.LTR;\r\n /**\r\n * Can be access from this.options.api after the grid has initialized.\r\n * @type {{resize?: () => void, optionsChanged?: () => void, getNextPossiblePosition?: (newItem: PrgGridsterItem) => boolean, getFirstPossiblePosition?: (item: PrgGridsterItem) => PrgGridsterItem, getLastPossiblePosition?: (item: PrgGridsterItem) => PrgGridsterItem, getItemComponent?: (item: PrgGridsterItem) => (GridsterItemComponentInterface | undefined)}}\r\n */\r\n api?: {\r\n /**\r\n * call if size of container changes. Grid will auto resize on window resize\r\n */\r\n resize?: () => void;\r\n /**\r\n * call on change of options after initialization\r\n */\r\n optionsChanged?: () => void;\r\n /**\r\n * call to get a viable position for item. Returns true if found.\r\n * @param {PrgGridsterItem} newItem\r\n * @returns {boolean}\r\n */\r\n getNextPossiblePosition?: (newItem: PrgGridsterItem) => boolean;\r\n /**\r\n * call to get the first viable position for an item. Returns a copy of the item with the future position.\r\n * @param {PrgGridsterItem} item\r\n * @returns {PrgGridsterItem}\r\n */\r\n getFirstPossiblePosition?: (item: PrgGridsterItem) => PrgGridsterItem;\r\n /**\r\n * call to get a viable position for item. Returns a copy of the item with the future position.\r\n * @param {PrgGridsterItem} item\r\n * @returns {PrgGridsterItem}\r\n */\r\n getLastPossiblePosition?: (item: PrgGridsterItem) => PrgGridsterItem;\r\n /**\r\n * call to get a internal component for item. Returns a component item or undefined if not found.\r\n * @param {PrgGridsterItem} item\r\n * @returns {GridsterItemComponentInterface | undefined}\r\n */\r\n getItemComponent?: (\r\n item: PrgGridsterItem\r\n ) => GridsterItemComponentInterface | undefined;\r\n };\r\n\r\n /**\r\n * Other properties\r\n */\r\n [propName: string]: any;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Enum to be used on property gridType of PrgGridsterConfig\r\n */\r\nexport enum PrgGridType {\r\n Fit = 'fit',\r\n ScrollVertical = 'scrollVertical',\r\n ScrollHorizontal = 'scrollHorizontal',\r\n Fixed = 'fixed',\r\n VerticalFixed = 'verticalFixed',\r\n HorizontalFixed = 'horizontalFixed',\r\n}\r\n\r\n/**\r\n * Enum to be used on property displayGrid of PrgGridsterConfig\r\n */\r\nexport enum PrgDisplayGrid {\r\n Always = 'always',\r\n OnDragAndResize = 'onDrag&Resize',\r\n None = 'none',\r\n}\r\n\r\n/**\r\n * Enum to be used on property compactType of PrgGridsterConfig\r\n */\r\nexport enum PrgCompactType {\r\n None = 'none',\r\n CompactUp = 'compactUp',\r\n CompactLeft = 'compactLeft',\r\n CompactUpAndLeft = 'compactUp&Left',\r\n CompactLeftAndUp = 'compactLeft&Up',\r\n CompactRight = 'compactRight',\r\n CompactUpAndRight = 'compactUp&Right',\r\n CompactRightAndUp = 'compactRight&Up',\r\n CompactDown = 'compactDown',\r\n CompactDownAndLeft = 'compactDown&Left',\r\n CompactLeftAndDown = 'compactLeft&Down',\r\n CompactDownAndRight = 'compactDown&Right',\r\n CompactRightAndDown = 'compactRight&Down',\r\n}\r\n\r\n/**\r\n * Enum to be used on property dirType of PrgGridsterConfig\r\n */\r\nexport enum PrgDirTypes {\r\n LTR = 'ltr',\r\n RTL = 'rtl',\r\n}\r\n\r\n/**\r\n * Class PrgDragBase\r\n */\r\nexport class PrgDragBase {\r\n /**\r\n * enable/disable draggable items\r\n * @type {boolean}\r\n */\r\n enabled?: boolean = true;\r\n /**\r\n * callback when dragging an item stops. Accepts Promise return to cancel/approve drag\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface, event: MouseEvent) => (Promise | void)}\r\n */\r\n stop?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface,\r\n event: MouseEvent\r\n ) => Promise | void;\r\n /**\r\n * callback when dragging an item starts\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface, event: MouseEvent) => void}\r\n */\r\n start?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface,\r\n event: MouseEvent\r\n ) => void;\r\n /**\r\n * milliseconds to delay the start of drag, useful for touch interaction\r\n * @type {number}\r\n */\r\n delayStart?: number = 0;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Class PrgDraggable\r\n */\r\nexport class PrgDraggable extends PrgDragBase {\r\n /**\r\n * default content class to ignore the drag event from\r\n * @type {string}\r\n */\r\n ignoreContentClass?: string = 'gridster-item-content';\r\n /**\r\n * if true drag will start only from elements from dragHandleClass\r\n * @type {boolean}\r\n */\r\n ignoreContent?: boolean = false;\r\n /**\r\n * drag event only from this class. If ignoreContent is true.\r\n * @type {string}\r\n */\r\n dragHandleClass?: string = 'drag-handle';\r\n /**\r\n * enable items drop over another, will work if swap and push is disabled\r\n * @type {boolean}\r\n */\r\n dropOverItems?: boolean = true;\r\n /**\r\n * callback when dragging an item drops over another item\r\n * @type {(source: PrgGridsterItem, target: PrgGridsterItem, grid?: GridsterComponentInterface) => void}\r\n */\r\n dropOverItemsCallback?: (\r\n source: PrgGridsterItem,\r\n target: PrgGridsterItem,\r\n grid?: GridsterComponentInterface\r\n ) => void;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super(new PrgDragBase({}));\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Class PrgRezisable\r\n */\r\nexport class PrgResizable extends PrgDragBase {\r\n /**\r\n * resizable edges of an item\r\n * @type {{s: boolean, e: boolean, n: boolean, w: boolean, se: boolean, ne: boolean, sw: boolean, nw: boolean}}\r\n */\r\n handles?: PrgResizableHandles = new PrgResizableHandles({});\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n super(new PrgDragBase({}));\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Class PrgPushDirections\r\n */\r\nexport class PrgPushDirections {\r\n /**\r\n * Push direction north\r\n * @type {boolean}\r\n */\r\n north: boolean = true;\r\n /**\r\n * Push direction east\r\n * @type {boolean}\r\n */\r\n east: boolean = true;\r\n /**\r\n * Push direction south\r\n * @type {boolean}\r\n */\r\n south: boolean = true;\r\n /**\r\n * Push direction west\r\n * @type {boolean}\r\n */\r\n west: boolean = true;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Class PrgResizableHandles\r\n */\r\nexport class PrgResizableHandles {\r\n /**\r\n * south\r\n * @type {boolean}\r\n */\r\n s: boolean = true;\r\n /**\r\n * east\r\n * @type {boolean}\r\n */\r\n e: boolean = true;\r\n /**\r\n * north\r\n * @type {boolean}\r\n */\r\n n: boolean = true;\r\n /**\r\n * west\r\n * @type {boolean}\r\n */\r\n w: boolean = true;\r\n /**\r\n * southeast\r\n * @type {boolean}\r\n */\r\n se: boolean = true;\r\n /**\r\n * northeast\r\n * @type {boolean}\r\n */\r\n ne: boolean = true;\r\n /**\r\n * southwest\r\n * @type {boolean}\r\n */\r\n sw: boolean = true;\r\n /**\r\n * northwest\r\n * @type {boolean}\r\n */\r\n nw: boolean = true;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n/**\r\n * Class PrgGridsterItem to be used on items of dashboards\r\n */\r\nexport class PrgGridsterItem implements GridsterItem {\r\n /**\r\n * x position if missing will auto position\r\n * @type {number}\r\n */\r\n x: number;\r\n /**\r\n * y position if missing will auto position\r\n * @type {number}\r\n */\r\n y: number;\r\n /**\r\n * number of rows if missing will use grid option defaultItemRows\r\n * @type {number}\r\n */\r\n rows: number;\r\n /**\r\n * number of columns if missing will use grid option defaultItemCols\r\n * @type {number}\r\n */\r\n cols: number;\r\n /**\r\n * layer index\r\n * @type {number}\r\n */\r\n layerIndex?: number;\r\n /**\r\n * initialization callback and has size > 0\r\n * @type {(item: PrgGridsterItem, itemComponent: GridsterItemComponentInterface) => void}\r\n */\r\n initCallback?: (\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ) => void;\r\n /**\r\n * override grid option draggable.enabled\r\n * @type {boolean}\r\n */\r\n dragEnabled?: boolean;\r\n /**\r\n * override grid option resizable.enabled\r\n * @type {boolean}\r\n */\r\n resizeEnabled?: boolean;\r\n /**\r\n * override grid option resizable.handles for this item\r\n * @type {PrgResizableHandles}\r\n */\r\n resizableHandles?: PrgResizableHandles = new PrgResizableHandles({\r\n s: null,\r\n e: null,\r\n n: null,\r\n w: null,\r\n se: null,\r\n ne: null,\r\n sw: null,\r\n nw: null,\r\n });\r\n /**\r\n * disable grid option compact for this item\r\n * @type {boolean}\r\n */\r\n compactEnabled?: boolean;\r\n /**\r\n * override grid option maxItemRows\r\n * @type {number}\r\n */\r\n maxItemRows?: number;\r\n /**\r\n * override grid option minItemRows\r\n * @type {number}\r\n */\r\n minItemRows?: number;\r\n /**\r\n * override grid option maxItemCols\r\n * @type {number}\r\n */\r\n maxItemCols?: number;\r\n /**\r\n * override grid option minItemCols\r\n * @type {number}\r\n */\r\n minItemCols?: number;\r\n /**\r\n * override grid option minItemArea\r\n * @type {number}\r\n */\r\n minItemArea?: number;\r\n /**\r\n * override grid option maxItemArea\r\n * @type {number}\r\n */\r\n maxItemArea?: number;\r\n\r\n /**\r\n * Other properties\r\n */\r\n [propName: string]: any;\r\n\r\n /**\r\n * Constructor\r\n * @param {Partial} init\r\n */\r\n constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n","import { LocationStrategy } from '@angular/common';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { GridsterItemComponentInterface } from 'angular-gridster2';\r\nimport { Subscription } from 'rxjs';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { MainLayoutService } from '../../../layouts/services/main-layout.service';\r\nimport {\r\n ComponentTypeEnum,\r\n Dashboard,\r\n MapComponentTypesToClass,\r\n} from '../../models/dashboard.model';\r\nimport {\r\n PrgDraggable,\r\n PrgGridsterConfig,\r\n PrgGridsterItem,\r\n PrgResizable,\r\n} from '../../models/prg-gridster-config';\r\nimport { AbstractDashboardService } from '../../services/dashboard/abstract-dashboard.service';\r\n\r\n/**\r\n * Display dashboard component\r\n */\r\n@Component({\r\n selector: 'prg-dashboard-display',\r\n templateUrl: './prg-dashboard-display.component.html',\r\n styleUrls: ['./prg-dashboard-display.component.scss'],\r\n})\r\nexport class PrgDashboardDisplayComponent implements OnInit, OnDestroy {\r\n /**\r\n * Show/hide header.Default is true.\r\n * @type {boolean}\r\n */\r\n @Input() displayHeader: boolean = true;\r\n /**\r\n * Show/hide dashboard selection dropdown.Default is true.\r\n * @type {boolean}\r\n */\r\n @Input() showDropdown: boolean = true;\r\n\r\n /**\r\n * The dashboard settings object based on Gridster options\r\n * @type {PrgGridsterConfig}\r\n */\r\n public dashboardOptions: PrgGridsterConfig;\r\n /**\r\n * An array of widgets (dynamic items) displayed on dashboard\r\n * @type {Array}\r\n */\r\n public dashboardItems: Array = [];\r\n /**\r\n * A list of all dashboard created by logged user\r\n * @type {Dashboard[]}\r\n */\r\n public dashboardsByUser: Dashboard[];\r\n /**\r\n * Show/Hide dashboard on template.Default is false.\r\n * @type {boolean}\r\n */\r\n public displayDashboard: boolean = false;\r\n /**\r\n * The current selected dashboard\r\n * @type {Dashboard}\r\n */\r\n public selectedDashboard: Dashboard;\r\n /**\r\n * The name of dashboard selected\r\n * @type {string}\r\n */\r\n private nameDashboard: string;\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * Constructor\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ActivatedRoute} route\r\n * @param {LocationStrategy} location\r\n * @param {MainLayoutService} mainLayoutService\r\n */\r\n constructor(\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private route: ActivatedRoute,\r\n private location: LocationStrategy,\r\n private mainLayoutService: MainLayoutService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Verify if there is any changes on size of main sidebar and update view on dashboard.\r\n *\r\n * Load all dashboard created by logged user.\r\n *\r\n * Verify if there is a parameter on route, name of dashboard and if so set this as the selected dashboard\r\n *\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit() {\r\n this.subscription.push(\r\n this.mainLayoutService.getSideBarStateObservable().subscribe(() => {\r\n this.changedOptions();\r\n })\r\n );\r\n this.mainLayoutService.setDisplayHeaderState(this.displayHeader);\r\n this.dashboardsByUser =\r\n await this.dashboardService.getDashboardsByUserAsync();\r\n\r\n this.nameDashboard = this.route?.snapshot?.params['name'];\r\n\r\n if (this.nameDashboard) {\r\n this.selectedDashboard = this.dashboardsByUser.find(\r\n (dashboard) => dashboard.name === this.nameDashboard\r\n );\r\n if (this.showDropdown != null) {\r\n await this.settingDashboard();\r\n this.displayDashboard = true;\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Setting up the dashboard selected\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async settingDashboard() {\r\n this.dashboardOptions = new PrgGridsterConfig({});\r\n if (this.selectedDashboard) {\r\n if (this.selectedDashboard?.settings) {\r\n let dashboardOptionStringToObject =\r\n this.utilityService.guiSettingToObject(\r\n this.selectedDashboard.settings\r\n );\r\n this.dashboardOptions = this.objectsUtilityService.cloneObject(\r\n this.objectsUtilityService.unFlattenObj(\r\n dashboardOptionStringToObject,\r\n '.'\r\n )\r\n );\r\n }\r\n this.settingCallBackFunctionDashboard();\r\n this.dashboardItems = [];\r\n if (\r\n this.selectedDashboard.items != null &&\r\n this.selectedDashboard.items.length > 0\r\n ) {\r\n this.setDashboardItems();\r\n }\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n /**\r\n * Setting up items for current dashboard selected\r\n * @private\r\n */\r\n private setDashboardItems() {\r\n this.selectedDashboard.items.map((item) => {\r\n this.dashboardItems.push(\r\n new PrgGridsterItem({\r\n x: item.x,\r\n y: item.y,\r\n cols: item.cols,\r\n rows: item.rows,\r\n dashboardId: item.dashboardId,\r\n item: MapComponentTypesToClass.get(\r\n item.componentType\r\n ),\r\n settings: item.settings,\r\n id: item.id,\r\n })\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Setting up call back functions and additional options for the current dashboard selected\r\n * @private\r\n */\r\n private settingCallBackFunctionDashboard() {\r\n this.dashboardOptions = {\r\n ...this.dashboardOptions,\r\n itemResizeCallback: this.onItemChangeSized.bind(this),\r\n draggable: new PrgDraggable({\r\n enabled: false,\r\n }),\r\n resizable: new PrgResizable({\r\n enabled: false,\r\n }),\r\n swap: false,\r\n };\r\n }\r\n\r\n /**\r\n * This function is call whenever height or width of each item changes\r\n * @param {PrgGridsterItem} item\r\n * @param {GridsterItemComponentInterface} itemComponent\r\n * @private\r\n */\r\n private onItemChangeSized(\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ): void {\r\n this.dashboardService.setDashboardItemsResize(itemComponent);\r\n }\r\n\r\n /**\r\n * This function is responsible to refresh grid options\r\n * @private\r\n */\r\n private changedOptions() {\r\n if (\r\n this.dashboardOptions?.api &&\r\n this.dashboardOptions?.api?.optionsChanged\r\n ) {\r\n this.dashboardOptions?.api?.optionsChanged();\r\n }\r\n }\r\n\r\n /**\r\n * This function is call when a dashboard is selected on dropdown\r\n * @param $event\r\n * @returns {Promise}\r\n */\r\n public async onChangeDashboard($event: any): Promise {\r\n this.displayDashboard = false;\r\n this.selectedDashboard = this.dashboardsByUser.find(\r\n (dashboard) => $event.value === dashboard.id\r\n );\r\n await this.settingDashboard();\r\n this.displayDashboard = true;\r\n }\r\n\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe subscriptions and set the display header state to true\r\n */\r\n public ngOnDestroy(): void {\r\n this.mainLayoutService.setDisplayHeaderState(true);\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n\r\n this.subscription = [];\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n","import {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { ActionName } from '../../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ToolbarSlot } from '../../../core/components/dynamic-form/models/constants/toolbar-slots';\r\n\r\n/**\r\n * A constant that define the dynamic form actions for the components used on dashboard\r\n * @type {BaseAction[]}\r\n */\r\nexport const DASHBOARD_ITEMS_DYNAMIC_FORM_ACTIONS: BaseAction[] = [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { PrgGridsterItem } from '../../models/prg-gridster-config';\r\nimport { DASHBOARD_ITEMS_DYNAMIC_FORM_ACTIONS } from '../dashboard-items/dashboard-items-dynamic-form-actions';\r\n\r\n/**\r\n * Dashboard Items Options Component\r\n */\r\n@Component({\r\n selector: 'prg-dashboard-items-options',\r\n templateUrl: './prg-dashboard-items-options.component.html',\r\n styleUrls: ['./prg-dashboard-items-options.component.scss'],\r\n})\r\nexport class PrgDashboardItemsOptionsComponent implements OnInit {\r\n /**\r\n * The dynamic form fields to build dashboard items form in template\r\n */\r\n public dashboardItemsOptionsDynamicFormFields: any[] = [];\r\n /**\r\n * The dynamic form actions to build dashboard items form in template\r\n */\r\n public dashboardItemsOptionsDynamicFormActions: BaseAction[] =\r\n this.arrayUtilityService.clone(DASHBOARD_ITEMS_DYNAMIC_FORM_ACTIONS);\r\n /**\r\n * The view mode for dynamic form\r\n * @type {ViewMode}\r\n */\r\n public dashboardItemsOptionsViewMode = ViewMode.Read;\r\n /**\r\n * The dashboard item settings to be used on the form (entity)\r\n */\r\n public dashboardItemSettings;\r\n /**\r\n * The dashboard widget (dynamic component) to be edited\r\n * @type {PrgGridsterItem}\r\n * @private\r\n */\r\n private dashboardItem: PrgGridsterItem;\r\n /**\r\n * The index of dashboard item on the array of items\r\n * @type {number}\r\n * @private\r\n */\r\n private index: number;\r\n\r\n /**\r\n * Constructor\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {DynamicDialogRef} dynamicDialogRef\r\n * @param {DynamicDialogConfig} dynamicDialogConfig\r\n * @param {UtilityService} utilityService\r\n */\r\n constructor(\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private dynamicDialogRef: DynamicDialogRef,\r\n private dynamicDialogConfig: DynamicDialogConfig,\r\n private utilityService: UtilityService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Get the data from parent component\r\n */\r\n public ngOnInit() {\r\n this.dashboardItem = this.objectsUtilityService.cloneObject(\r\n this.dynamicDialogConfig.data?.item\r\n );\r\n if (this.dashboardItem.settings) {\r\n this.dashboardItemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(this.dashboardItem.settings)\r\n );\r\n } else {\r\n this.dashboardItemSettings = this.objectsUtilityService.cloneObject(\r\n this.utilityService.guiSettingToObject(\r\n this.dashboardItem.item.staticSettings\r\n )\r\n );\r\n }\r\n this.index = this.dynamicDialogConfig.data?.index;\r\n this.dashboardItemsOptionsDynamicFormFields =\r\n this.arrayUtilityService.clone(\r\n this.dashboardItem.item.configurationSettings.fields\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions from the dynamic form\r\n * @param {DynamicFormActionOutput} event\r\n */\r\n public actionOutput(event: DynamicFormActionOutput): void {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n this.dashboardItem.settings = JSON.stringify(event.formEntity);\r\n this.dynamicDialogRef.close({\r\n item: this.dashboardItem,\r\n index: this.index,\r\n });\r\n this.dashboardItemsOptionsViewMode = ViewMode.Read;\r\n break;\r\n case BaseActionKey.Cancel:\r\n this.dashboardItemsOptionsViewMode = ViewMode.Read;\r\n break;\r\n case BaseActionKey.Edit:\r\n this.dashboardItemsOptionsViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { PrgDashboardConfig } from '../../models/prg-dashboard-config';\r\nimport { PRG_DASHBOARD_CONFIG } from '../../services/prg-dashboard-configuration/prg-dashboard-configuration.service';\r\n\r\n/**\r\n * Dashboard List Component\r\n */\r\n@Component({\r\n selector: 'prg-dashboard-list',\r\n templateUrl: './prg-dashboard-list.component.html',\r\n styleUrls: ['./prg-dashboard-list.component.scss'],\r\n})\r\nexport class PrgDashboardListComponent {\r\n /**\r\n * Entity type name to pass to component prg-list-specific-entity-type\r\n * @type {string}\r\n */\r\n @Input() entityTypeName: string = 'dashboard';\r\n /**\r\n * The route for editing a dashboard\r\n */\r\n @Input() editDashboardPageRoute: string =\r\n '/' +\r\n this.prgDashboardConfig.dashboardRoutingBasePath +\r\n '/' +\r\n this.prgDashboardConfig.dashboardEditRoutingPath;\r\n\r\n /**\r\n * Constructor\r\n * @param {PrgDashboardConfig} prgDashboardConfig\r\n */\r\n constructor(\r\n @Inject(PRG_DASHBOARD_CONFIG) private prgDashboardConfig: PrgDashboardConfig\r\n ) {}\r\n}\r\n","\r\n","/**\r\n * Constant that defines the fields and actions for the dynamic form query filter\r\n */\r\nimport { CheckboxConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.model';\r\nimport { InputNumberConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-number/input-number.model';\r\nimport { InputTextConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/input-text/input-text.model';\r\nimport { SelectConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/select/select.model';\r\nimport {\r\n BaseAction,\r\n BaseActionKey,\r\n} from '../../../../core/components/dynamic-form/models/base-action';\r\nimport { ActionName } from '../../../../core/components/dynamic-form/models/constants/action-names';\r\nimport { ToolbarSlot } from '../../../../core/components/dynamic-form/models/constants/toolbar-slots';\r\nimport {\r\n PrgCompactType,\r\n PrgGridType,\r\n} from '../../../models/prg-gridster-config';\r\n\r\n/**\r\n * This constant defines the fields and actions to be used on dynamic form for dashboard options\r\n * @type {{fields: (SelectConfiguration | InputNumberConfiguration | CheckboxConfiguration | InputTextConfiguration)[], actions: BaseAction[]}}\r\n */\r\nexport const DASHBOARD_OPTIONS_DYNAMIC_FORM: any = {\r\n fields: [\r\n //Group General\r\n new SelectConfiguration({\r\n key: 'gridType',\r\n options: Object.values(PrgGridType).map((gridType) => {\r\n return { label: gridType, value: gridType };\r\n }),\r\n showClear: true,\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n new SelectConfiguration({\r\n key: 'compactType',\r\n options: Object.values(PrgCompactType).map((compactType) => {\r\n return { label: compactType, value: compactType };\r\n }),\r\n showClear: true,\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'fixedColWidth',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'general',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'fixedRowHeight',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'general',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'mobileBreakpoint',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'general',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'rowHeightRatio',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n mode: 'decimal',\r\n minFractionDigits: 1,\r\n maxFractionDigits: 2,\r\n step: 0.1,\r\n groupFieldsId: 'general',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'setGridSize',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'keepFixedHeightInMobile',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'keepFixedWidthInMobile',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'useBodyForBreakpoint',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'general',\r\n }),\r\n //Group Resizable\r\n new InputNumberConfiguration({\r\n key: 'resizable.delayStart',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.enabled',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.s',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.e',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.n',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.w',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.se',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.ne',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.sw',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'resizable.handles.nw',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'resizable',\r\n }),\r\n //Group Push\r\n new CheckboxConfiguration({\r\n key: 'pushItems',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'disablePushOnDrag',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'disablePushOnResize',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'pushResizeItems',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'pushDirections.north',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'pushDirections.east',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'pushDirections.south',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'pushDirections.west',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'push',\r\n }),\r\n //Group Swap\r\n new CheckboxConfiguration({\r\n key: 'swap',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'swap',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'swapWhileDragging',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'swap',\r\n }),\r\n //Group Draggable\r\n new InputNumberConfiguration({\r\n key: 'draggable.delayStart',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'draggable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'draggable.enabled',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'draggable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'draggable.ignoreContent',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'draggable',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'draggable.dropOverItems',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'draggable',\r\n }),\r\n new InputTextConfiguration({\r\n key: 'draggable.dragHandleClass',\r\n disabledOutputEvent: true,\r\n groupFieldsId: 'draggable',\r\n }),\r\n\r\n new InputTextConfiguration({\r\n key: 'draggable.ignoreContentClass',\r\n disabledOutputEvent: true,\r\n groupFieldsId: 'draggable',\r\n }),\r\n //Group EmptyCell\r\n new CheckboxConfiguration({\r\n key: 'enableEmptyCellClick',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'enableEmptyCellContextMenu',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'enableEmptyCellDrop',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'enableEmptyCellDrag',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'enableOccupiedCellDrop',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'emptyCellDragMaxCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'emptyCellDragMaxRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n //Group Margins\r\n new InputNumberConfiguration({\r\n key: 'margin',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'margins',\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'outerMargin',\r\n disabledOutputEvent: false,\r\n groupFieldsId: 'emptyCell',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'outerMarginLeft',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'margins',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'outerMarginTop',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'margins',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'outerMarginRight',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'margins',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'outerMarginBottom',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'margins',\r\n }),\r\n //Grid Sizes\r\n new InputNumberConfiguration({\r\n key: 'minCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'maxRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'maxCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'minRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'defaultItemCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'defaultItemRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'minItemCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'maxItemCols',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'minItemRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'maxItemRows',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'minItemArea',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'maxItemArea',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n new InputNumberConfiguration({\r\n key: 'addEmptyRowsCount',\r\n disabledOutputEvent: false,\r\n showButtons: true,\r\n groupFieldsId: 'gridSizes',\r\n }),\r\n ],\r\n\r\n actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],\r\n};\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport {\r\n BaseActionKey,\r\n DynamicFormActionOutput,\r\n DynamicFormFieldChangeOutput,\r\n} from '../../../core/components/dynamic-form/models/base-action';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { PrgGridsterConfig } from '../../models/prg-gridster-config';\r\nimport { AbstractDashboardService } from '../../services/dashboard/abstract-dashboard.service';\r\nimport { DASHBOARD_OPTIONS_DYNAMIC_FORM } from './dashboard-options-dynamic-form-structure/dashboard-options-dynamic-form';\r\n\r\n/**\r\n * Dashboard Options Component\r\n */\r\n@Component({\r\n selector: 'prg-dashboard-options',\r\n templateUrl: './prg-dashboard-options.component.html',\r\n styleUrls: ['./prg-dashboard-options.component.scss'],\r\n})\r\nexport class PrgDashboardOptionsComponent implements OnInit {\r\n /**\r\n * The view mode for dynamic form\r\n * @type {ViewMode}\r\n */\r\n public dashboardOptionsViewMode = ViewMode.Read;\r\n /**\r\n * The dynamic form fields to build dynamic dashboard options form in template\r\n */\r\n public dashboardOptionsDynamicFormFields: any[] =\r\n this.arrayUtilityService.clone(DASHBOARD_OPTIONS_DYNAMIC_FORM.fields);\r\n /**\r\n * The dynamic form actions to build dynamic dashboard options form in template\r\n */\r\n public dashboardOptionsDynamicFormActions: any[] =\r\n this.arrayUtilityService.clone(DASHBOARD_OPTIONS_DYNAMIC_FORM.actions);\r\n\r\n /**\r\n * The dashboard settings object flatten object based on Gridster options\r\n * @type {any}\r\n */\r\n public dashboardOptionsFlatten: any;\r\n /**\r\n * The dashboard settings object based on Gridster options\r\n * @type {PrgGridsterConfig}\r\n * @private\r\n */\r\n private dashboardOptions: PrgGridsterConfig;\r\n\r\n /**\r\n * Constructor\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {DynamicDialogRef} dynamicDialogRef\r\n * @param {DynamicDialogConfig} dynamicDialogConfig\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {AbstractDashboardService} dashboardService\r\n */\r\n constructor(\r\n private arrayUtilityService: ArrayUtilityService,\r\n private dynamicDialogRef: DynamicDialogRef,\r\n private dynamicDialogConfig: DynamicDialogConfig,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private dashboardService: AbstractDashboardService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Get the data from parent component\r\n */\r\n public ngOnInit() {\r\n this.dashboardOptions = this.objectsUtilityService.cloneObject(\r\n this.dynamicDialogConfig.data?.dashboardOptions\r\n );\r\n this.dashboardOptionsFlatten = this.objectsUtilityService.cloneObject(\r\n this.objectsUtilityService.flattenObj(this.dashboardOptions, '.')\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions from the dynamic form\r\n * @param {DynamicFormActionOutput} event\r\n */\r\n public actionOutput(event: DynamicFormActionOutput): void {\r\n switch (event.action) {\r\n case BaseActionKey.Save:\r\n this.dynamicDialogRef.close(\r\n this.objectsUtilityService.unFlattenObj(event.formEntity, '.')\r\n );\r\n this.dashboardOptionsViewMode = ViewMode.Read;\r\n break;\r\n\r\n case BaseActionKey.Cancel:\r\n this.dashboardService.setDashboardOptionsChanges({\r\n gridsterConfig: this.objectsUtilityService.unFlattenObj(\r\n this.dashboardOptionsFlatten,\r\n '.'\r\n ),\r\n gridsterItems: null,\r\n });\r\n this.dashboardOptionsViewMode = ViewMode.Read;\r\n break;\r\n\r\n case BaseActionKey.Edit:\r\n this.dashboardOptionsViewMode = ViewMode.Edit;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * This function is called whenever is a change on a field and emit a new value for DashboardOptionsChangesSubject\r\n * @param {DynamicFormFieldChangeOutput} event\r\n */\r\n public fieldChanges(event: DynamicFormFieldChangeOutput): void {\r\n this.dashboardService.setDashboardOptionsChanges({\r\n gridsterConfig: this.objectsUtilityService.unFlattenObj(\r\n event.formEntity,\r\n '.'\r\n ),\r\n gridsterItems: null,\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n","import { Validators } from '@angular/forms';\r\nimport { CheckboxConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/checkbox/checkbox.model';\r\nimport { MultiSelectConfiguration } from '../../../../core/components/dynamic-form/dynamic-form-fields/fields/multiselect/multi-select.model';\r\nimport { BaseField } from '../../../../core/components/dynamic-form/models/base-field';\r\nimport { ControlName } from '../../../../core/components/dynamic-form/models/constants/control-names';\r\nimport { ReferenceType } from '../../../../core/components/dynamic-form/models/constants/reference-type';\r\n\r\n/**\r\n * Constant that defines the fields and actions for the dynamic form dashboard\r\n */\r\nexport const DASHBOARD_DYNAMIC_FORM = {\r\n fields: [\r\n new BaseField({\r\n controlName: ControlName.inputText,\r\n value: null,\r\n key: 'name',\r\n validators: [Validators.required],\r\n basePathTranslation: '',\r\n disabledOutputEvent: false,\r\n }),\r\n new CheckboxConfiguration({\r\n key: 'isPublic',\r\n basePathTranslation: '',\r\n disabledOutputEvent: false,\r\n }),\r\n new MultiSelectConfiguration({\r\n referenceType: ReferenceType.EntityType,\r\n key: 'entityTypeIds',\r\n placeholder: 'Select Entity',\r\n value: null,\r\n validators: [Validators.required],\r\n optionLabel: 'label',\r\n optionValue: 'id',\r\n showClear: true,\r\n basePathTranslation: '',\r\n disabledOutputEvent: false,\r\n }),\r\n ],\r\n /*actions: [\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Save,\r\n disableWhenFormInvalid: true,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Cancel,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='edit'\",\r\n }),\r\n new BaseAction({\r\n controlName: ActionName.Button,\r\n key: BaseActionKey.Edit,\r\n disableWhenFormInvalid: false,\r\n toolbarSlot: ToolbarSlot.Right,\r\n visibleExpression: \"this.viewMode==='read'\",\r\n }),\r\n ],*/\r\n};\r\n","import {\r\n animate,\r\n animateChild,\r\n group,\r\n query,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { LocationStrategy } from '@angular/common';\r\nimport { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport {\r\n GridsterComponent,\r\n GridsterItemComponentInterface,\r\n} from 'angular-gridster2';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { ViewMode } from '../../../core/models/constants/view-mode.enum';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { MainLayoutService } from '../../../layouts/services/main-layout.service';\r\nimport {\r\n ComponentType,\r\n ComponentTypeEnum,\r\n Dashboard,\r\n DashboardItem,\r\n MapComponentTypesToClass,\r\n} from '../../models/dashboard.model';\r\nimport { PrgDashboardConfig } from '../../models/prg-dashboard-config';\r\nimport {\r\n PrgGridsterConfig,\r\n PrgGridsterItem,\r\n} from '../../models/prg-gridster-config';\r\nimport { AbstractDashboardService } from '../../services/dashboard/abstract-dashboard.service';\r\nimport { PRG_DASHBOARD_CONFIG } from '../../services/prg-dashboard-configuration/prg-dashboard-configuration.service';\r\nimport { PrgDashboardItemsOptionsComponent } from '../dashboard-items-options/prg-dashboard-items-options.component';\r\nimport { PrgDashboardOptionsComponent } from '../dashboard-options/prg-dashboard-options.component';\r\nimport { DASHBOARD_DYNAMIC_FORM } from './dashboard-dynamic-form-structure/dashboard-dynamic-form';\r\n\r\n/**\r\n * Dashboard Component\r\n */\r\n@Component({\r\n selector: 'prg-dashboard',\r\n templateUrl: './prg-dashboard.component.html',\r\n styleUrls: ['./prg-dashboard.component.scss'],\r\n providers: [DialogService],\r\n animations: [\r\n trigger('OnExpandSideBarDashboard', [\r\n state(\r\n 'open',\r\n style({\r\n width: '100%',\r\n })\r\n ),\r\n state(\r\n 'closed',\r\n style({\r\n width: '70px',\r\n })\r\n ),\r\n transition('open => closed', [\r\n group([\r\n query(':self', [animate('0s')]),\r\n query('@OnExpandSideBarTextDashboard', [animateChild()]),\r\n ]),\r\n ]),\r\n transition('closed => open', [\r\n group([\r\n query(':self', [animate('0.2s')]),\r\n query('@OnExpandSideBarTextDashboard', [animateChild()]),\r\n ]),\r\n ]),\r\n ]),\r\n trigger('OnExpandSideBarTextDashboard', [\r\n // ...\r\n state(\r\n 'show-content',\r\n style({\r\n opacity: '1',\r\n })\r\n ),\r\n state(\r\n 'hide-content',\r\n style({\r\n opacity: '0',\r\n overflow: 'hidden',\r\n })\r\n ),\r\n transition('show-content => hide-content', [animate('0s')]),\r\n transition('hide-content => show-content', [animate('0.2s 0.3s')]),\r\n ]),\r\n ],\r\n\r\n /* changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,*/\r\n})\r\nexport class PrgDashboardComponent implements OnInit, OnDestroy {\r\n /**\r\n * The dynamic form fields to build dashboard form in template\r\n */\r\n public dashboardDynamicFormFields: any[] = this.arrayUtilityService.clone(\r\n DASHBOARD_DYNAMIC_FORM.fields\r\n );\r\n /**\r\n * The view mode for dynamic form\r\n * @type {ViewMode}\r\n */\r\n public dashboardViewMode: ViewMode = ViewMode.Edit;\r\n\r\n /**\r\n * The current dashboard\r\n * @type {Dashboard}\r\n */\r\n public dashboard: Dashboard;\r\n\r\n /**\r\n * The current state of sidebar menu. Expanded is true and collapsed is false.\r\n *\r\n * Default is false.\r\n * @type {boolean}\r\n */\r\n public menuDashboardExpanded = true;\r\n\r\n /**\r\n * The id of dashboard get it from url parameter\r\n * @type {string}\r\n */\r\n public idDashboard: string;\r\n\r\n /**\r\n * An array of component type list to be shown on sidebar\r\n * @type {any[]}\r\n */\r\n public componentsType: any[] = [];\r\n\r\n /**\r\n * The current component type selected\r\n * @type {any}\r\n */\r\n public componentTypeSelected: any;\r\n\r\n /**\r\n * The base route for editing a dashboard\r\n * @type {string}\r\n */\r\n @Input() editDashboardPageRoute: string =\r\n '/' +\r\n this.prgDashboardConfig.dashboardRoutingBasePath +\r\n '/' +\r\n this.prgDashboardConfig.dashboardEditRoutingPath;\r\n /**\r\n * The dashboard settings object based on Gridster options\r\n * @type {PrgGridsterConfig}\r\n */\r\n public dashboardOptions: PrgGridsterConfig;\r\n\r\n /**\r\n * An array of widgets (dynamic items) displayed on dashboard\r\n * @type {Array}\r\n */\r\n public dashboardItems: Array = [];\r\n\r\n /**\r\n * A copy dashboard items\r\n * @type {Array}\r\n * @private\r\n */\r\n private dashboardItemsCopy: Array = [];\r\n /**\r\n * A class property used to unsubscribe observables on ngOnDestroy\r\n * @type {Subscription[]}\r\n * @private\r\n */\r\n private subscription: Subscription[] = [];\r\n\r\n /**\r\n * A copy of dashboard\r\n * @type {Dashboard}\r\n * @private\r\n */\r\n private dashboardCopy: Dashboard;\r\n\r\n /**\r\n * Property of type DynamicDialogRef to control the dialog of dashboard options\r\n */\r\n private dynamicDialogRef!: DynamicDialogRef;\r\n\r\n /**\r\n * Property of type DynamicDialogRef to control the dialog of items options\r\n */\r\n private dynamicDialogRefItems!: DynamicDialogRef;\r\n\r\n /**\r\n * A copy of dashboard options\r\n * @type {PrgGridsterConfig}\r\n * @private\r\n */\r\n private dashboardOptionsCopy: PrgGridsterConfig;\r\n\r\n /**\r\n * Constructor\r\n * @param {DialogService} dialogService dialogService\r\n * @param {MainLayoutService} mainLayoutService\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {AbstractDashboardService} dashboardService\r\n * @param {UtilityService} utilityService\r\n * @param {ActivatedRoute} route\r\n * @param {Router} router\r\n * @param {PrgDashboardConfig} prgDashboardConfig\r\n * @param {LocationStrategy} location\r\n * @param {NotificationsService} notificationsService\r\n * @param {TranslateService} translateService\r\n */\r\n constructor(\r\n public dialogService: DialogService,\r\n private mainLayoutService: MainLayoutService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private dashboardService: AbstractDashboardService,\r\n private utilityService: UtilityService,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n @Inject(PRG_DASHBOARD_CONFIG)\r\n private prgDashboardConfig: PrgDashboardConfig,\r\n private location: LocationStrategy,\r\n private notificationsService: NotificationsService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n /**\r\n * ngOnInit\r\n *\r\n * Verify if there is any changes on size of main sidebar and update view on dashboard.\r\n *\r\n * Verify if there is any changes on Dashboard Options form and reflect them on the view of dashboard.\r\n *\r\n * Verify route and if there is a parameter on route, if of dashboard and if so set this as the selected dashboard\r\n * @returns {Promise}\r\n */\r\n public async ngOnInit(): Promise {\r\n this.dashboardService.setDashboardOptionsChanges(null);\r\n this.subscription.push(\r\n this.mainLayoutService.getSideBarStateObservable().subscribe(() => {\r\n this.changedOptions();\r\n })\r\n );\r\n this.subscription.push(\r\n this.dashboardService\r\n .getDashboardOptionsChangesObservable()\r\n .subscribe((dashboard) => {\r\n if (dashboard) {\r\n if (\r\n dashboard.gridsterConfig != null &&\r\n dashboard.gridsterItems == null\r\n ) {\r\n this.dashboardOptions = this.objectsUtilityService.cloneObject(\r\n dashboard.gridsterConfig\r\n );\r\n this.dashboardItems = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n } else {\r\n this.dashboardItems = this.arrayUtilityService.clone(\r\n dashboard.gridsterItems\r\n );\r\n }\r\n this.changedOptions();\r\n }\r\n })\r\n );\r\n this.dashboardOptions = new PrgGridsterConfig({});\r\n this.populateComponentsType();\r\n if (this.router.url.includes(this.editDashboardPageRoute)) {\r\n await this.getDashboard();\r\n } else {\r\n await this.setNewDashboardSettings();\r\n }\r\n this.changedOptions();\r\n }\r\n\r\n /**\r\n * This function will populate components type list on sidebar\r\n * @private\r\n */\r\n private populateComponentsType(): void {\r\n MapComponentTypesToClass.forEach((value, key) => {\r\n this.componentsType.push({\r\n name: key,\r\n class: value,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Setting up a new dashboard\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async setNewDashboardSettings(): Promise {\r\n this.dashboard = new Dashboard({});\r\n\r\n this.dashboardCopy = this.objectsUtilityService.cloneObject(this.dashboard);\r\n\r\n this.settingCallBackFunctionDashboard();\r\n this.dashboardItems = [];\r\n this.dashboardItemsCopy = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n }\r\n\r\n /**\r\n * This function will get and set the dashboard selected on list\r\n * @returns {Promise}\r\n * @private\r\n */\r\n private async getDashboard(): Promise {\r\n this.idDashboard = this.route?.snapshot?.params['id'];\r\n try {\r\n this.dashboard = await this.dashboardService.getDashboardByIdAsync(\r\n this.idDashboard\r\n );\r\n } catch (e) {\r\n this.location.back();\r\n }\r\n\r\n if (this.dashboard) {\r\n this.dashboardCopy = this.objectsUtilityService.cloneObject(\r\n this.dashboard\r\n );\r\n if (this.dashboard?.settings) {\r\n let dashboardOptionStringToObject =\r\n this.utilityService.guiSettingToObject(this.dashboard.settings);\r\n this.dashboardOptions = this.objectsUtilityService.cloneObject(\r\n this.objectsUtilityService.unFlattenObj(\r\n dashboardOptionStringToObject,\r\n '.'\r\n )\r\n );\r\n }\r\n this.settingCallBackFunctionDashboard();\r\n this.dashboardItems = [];\r\n if (this.dashboard.items != null && this.dashboard.items.length > 0) {\r\n this.setDashboardItems();\r\n }\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n /**\r\n * Setting up items for dashboard\r\n * @private\r\n */\r\n private setDashboardItems(): void {\r\n this.dashboard.items.map((item) => {\r\n this.dashboardItems.push(\r\n new PrgGridsterItem({\r\n x: item.x,\r\n y: item.y,\r\n cols: item.cols,\r\n rows: item.rows,\r\n dashboardId: item.dashboardId,\r\n item: MapComponentTypesToClass.get(\r\n item.componentType\r\n ),\r\n settings: item.settings,\r\n id: item.id ? item.id : this.utilityService.newGuid(),\r\n })\r\n );\r\n });\r\n\r\n this.dashboardItemsCopy = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n }\r\n\r\n /**\r\n * Setting up call back for dashboard\r\n * @private\r\n */\r\n private settingCallBackFunctionDashboard(): void {\r\n this.dashboardOptions = {\r\n ...this.dashboardOptions,\r\n itemResizeCallback: this.onItemChangeSized.bind(this),\r\n emptyCellClickCallback: this.emptyCellClick.bind(this),\r\n emptyCellDropCallback: this.emptyCellClick.bind(this),\r\n };\r\n\r\n this.dashboardOptionsCopy = this.objectsUtilityService.cloneObject(\r\n this.dashboardOptions\r\n );\r\n }\r\n\r\n /**\r\n * This function is responsible to delete an item of dashboard\r\n * @param {MouseEvent} event\r\n * @param {PrgGridsterItem} item\r\n */\r\n public onDeleteItem(event: MouseEvent, item: PrgGridsterItem): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.dashboardItems.splice(this.dashboardItems.indexOf(item), 1);\r\n }\r\n\r\n /**\r\n * This function is responsible to refresh grid options\r\n * @private\r\n */\r\n private changedOptions(): void {\r\n //Update Grid on Changes\r\n if (\r\n this.dashboardOptions?.api &&\r\n this.dashboardOptions?.api?.optionsChanged\r\n ) {\r\n this.dashboardOptions?.api?.optionsChanged();\r\n }\r\n }\r\n\r\n /**\r\n * This function will add an item on the first possible position of the dashboard\r\n * @param {ComponentType} componentType\r\n */\r\n public onAddItemFirstPossiblePosition(\r\n componentType: ComponentType = null\r\n ): void {\r\n if (componentType) {\r\n this.componentTypeSelected = componentType;\r\n }\r\n if (this.componentTypeSelected != null) {\r\n this.dashboardItems.push({\r\n x: 0,\r\n y: 0,\r\n cols: 1,\r\n rows: 1,\r\n settings: null,\r\n item: this.componentTypeSelected.class,\r\n id: this.utilityService.newGuid(),\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * This function is responsible to clear all items of dashboard\r\n * @returns {Promise}\r\n */\r\n public async clearAllItems(): Promise {\r\n if (\r\n await this.notificationsService.prgConfirmationService(\r\n 'messages.clear-confirmation',\r\n await this.translateService.get('dashboard ?').toPromise()\r\n )\r\n ) {\r\n this.dashboardItems = [];\r\n } else {\r\n return;\r\n }\r\n }\r\n /**\r\n * ngOnDestroy\r\n *\r\n * Unsubscribe subscriptions\r\n */\r\n public ngOnDestroy(): void {\r\n this.subscription.forEach((subscription) => {\r\n subscription.unsubscribe();\r\n });\r\n\r\n this.subscription = [];\r\n }\r\n\r\n /**\r\n * This function will add an item on an empty cell that was clicked\r\n * @param {MouseEvent} event\r\n * @param {PrgGridsterItem} item\r\n * @private\r\n */\r\n private emptyCellClick(\r\n event: MouseEvent = null,\r\n item: PrgGridsterItem\r\n ): void {\r\n if (this.componentTypeSelected != null) {\r\n this.dashboardItems.push({\r\n ...item,\r\n settings: null,\r\n item: this.componentTypeSelected.class,\r\n id: this.utilityService.newGuid(),\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * This function is responsible to open dashboard options modal and handle actions when it closes\r\n */\r\n public openOptionsDashboard(): void {\r\n this.dynamicDialogRef = this.dialogService.open(\r\n PrgDashboardOptionsComponent,\r\n {\r\n header: 'DashBoardOptions',\r\n showHeader: true,\r\n width: '50%',\r\n height: '60vh',\r\n baseZIndex: 10000,\r\n data: {\r\n dashboardOptions: this.dashboardOptions,\r\n dashboardItems: this.dashboardItems,\r\n },\r\n draggable: true,\r\n resizable: true,\r\n maximizable: true,\r\n }\r\n );\r\n this.subscription.push(\r\n this.dynamicDialogRef.onClose.subscribe((dashboard) => {\r\n if (dashboard) {\r\n this.dashboardOptions =\r\n this.objectsUtilityService.cloneObject(dashboard);\r\n this.dashboardOptionsCopy = this.objectsUtilityService.cloneObject(\r\n this.dashboardOptions\r\n );\r\n } else {\r\n this.dashboardOptions = this.objectsUtilityService.cloneObject(\r\n this.dashboardOptionsCopy\r\n );\r\n this.dashboardItems = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n }\r\n this.changedOptions();\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * This function will save the dashboard\r\n * @param entity\r\n * @returns {Promise}\r\n */\r\n public async saveDashboard(entity: any): Promise {\r\n let isNewDashboard = false;\r\n this.dashboard = this.objectsUtilityService.cloneObject(entity);\r\n if (entity.id == null) {\r\n this.dashboard.id = this.utilityService.newGuid();\r\n isNewDashboard = true;\r\n }\r\n this.prepareDashboardItemsToSave();\r\n\r\n try {\r\n if (isNewDashboard) {\r\n await this.dashboardService.createDashboardAsync(this.dashboard);\r\n } else {\r\n await this.dashboardService.updateDashboardAsync(\r\n this.dashboard.id,\r\n this.dashboard\r\n );\r\n }\r\n this.dashboardCopy = this.objectsUtilityService.cloneObject(\r\n this.dashboard\r\n );\r\n this.dashboardOptionsCopy = this.objectsUtilityService.cloneObject(\r\n this.dashboardOptions\r\n );\r\n this.dashboardItemsCopy = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n } catch (e) {}\r\n /*\r\n this.changedOptions();*/\r\n }\r\n\r\n /**\r\n * This function is auxiliary function of saveDashboard. Prepares dashboard items to be saved.\r\n * @private\r\n */\r\n private prepareDashboardItemsToSave(): void {\r\n let itemsToSave: DashboardItem[] = [];\r\n this.dashboardItems.map((dashboardItem) => {\r\n let auxComponentType: string = this.utilityService.getKeyByValueOnMap(\r\n MapComponentTypesToClass,\r\n dashboardItem.item\r\n );\r\n\r\n itemsToSave.push(\r\n new DashboardItem({\r\n x: dashboardItem.x,\r\n y: dashboardItem.y,\r\n id: dashboardItem.id,\r\n cols: dashboardItem.cols,\r\n rows: dashboardItem.rows,\r\n settings: dashboardItem.settings,\r\n dashboardId: this.dashboard.id,\r\n componentType: auxComponentType,\r\n })\r\n );\r\n });\r\n\r\n this.dashboard = {\r\n ...this.dashboard,\r\n items: itemsToSave,\r\n settings: JSON.stringify(\r\n this.objectsUtilityService.flattenObj(this.dashboardOptions, '.')\r\n ),\r\n };\r\n }\r\n /**\r\n * This function is call whenever height or width of each item changes\r\n * @param {PrgGridsterItem} item\r\n * @param {GridsterItemComponentInterface} itemComponent\r\n * @private\r\n */\r\n private onItemChangeSized(\r\n item: PrgGridsterItem,\r\n itemComponent: GridsterItemComponentInterface\r\n ): void {\r\n this.dashboardService.setDashboardItemsResize(itemComponent);\r\n }\r\n\r\n /**\r\n * This function is call when a drag occurs on dashboard.Set componentTypeSelected.\r\n * @param componentType\r\n */\r\n public onDragItem(componentType: any): void {\r\n this.componentTypeSelected = componentType;\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions after an item was drop in an empty cell on the dashboard\r\n * @param event\r\n * @param {GridsterComponent} gridsterComponent\r\n */\r\n public onDropItemEmptyCell(\r\n event: any,\r\n gridsterComponent: GridsterComponent\r\n ): void {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n gridsterComponent.emptyCell.emptyCellDragDrop(event);\r\n }\r\n\r\n /**\r\n * This function is responsible to handle actions after an item was drop in an occupied cell on the dashboard\r\n * @param event\r\n * @param {PrgGridsterItem} item\r\n * @param {GridsterComponent} gridsterComponent\r\n * @constructor\r\n */\r\n OnDropItem(\r\n event: any,\r\n item: PrgGridsterItem,\r\n gridsterComponent: GridsterComponent\r\n ): void {\r\n if (this.componentTypeSelected != null) {\r\n let newPos = this.dashboardOptions.api.getFirstPossiblePosition(item);\r\n let index = this.dashboardItems.indexOf(item);\r\n this.dashboardItems[index] = { ...this.dashboardItems[index], ...newPos };\r\n this.dashboardItems.push({\r\n ...item,\r\n item: this.componentTypeSelected.class,\r\n settings: null,\r\n id: this.utilityService.newGuid(),\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * This function is call whenever sidebar expands or collapses\r\n */\r\n public onShowHideSideBarDetails(): void {\r\n this.menuDashboardExpanded = !this.menuDashboardExpanded;\r\n this.changedOptions();\r\n }\r\n\r\n /**\r\n * This function is responsible to open dashboard items options modal and handle actions when it closes\r\n * @param {PrgGridsterItem} item\r\n */\r\n public onOpenItemOptions(item: PrgGridsterItem): void {\r\n this.dashboardItemsCopy = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n this.dynamicDialogRefItems = this.dialogService.open(\r\n PrgDashboardItemsOptionsComponent,\r\n {\r\n header: 'DashBoardItemOptions',\r\n showHeader: true,\r\n width: '50%',\r\n height: '60vh',\r\n baseZIndex: 10000,\r\n data: {\r\n item: item,\r\n index: this.dashboardItems.indexOf(item),\r\n },\r\n draggable: true,\r\n resizable: true,\r\n maximizable: true,\r\n }\r\n );\r\n this.subscription.push(\r\n this.dynamicDialogRefItems.onClose.subscribe((item) => {\r\n if (item) {\r\n this.dashboardItems[item.index] =\r\n this.objectsUtilityService.cloneObject(item.item);\r\n }\r\n this.dashboardItemsCopy = this.arrayUtilityService.clone(\r\n this.dashboardItems\r\n );\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { User } from '../../../auth/models/user.model';\r\nimport { AbstractAuthService } from '../../../auth/services/auth/abstract-auth.service';\r\n\r\nimport { PrgError } from '../../../core/models/error.model';\r\nimport { PrgSucess } from '../../../core/models/success.model';\r\nimport { IsLoadingDataService } from '../../../core/services/is-loading-data/isloadingdata.service';\r\nimport { NotificationsService } from '../../../core/services/notifications/notifications.service';\r\nimport { ArrayUtilityService } from '../../../core/services/utility/array-utility.service';\r\nimport { ObjectsUtilityService } from '../../../core/services/utility/objects-utility.service';\r\nimport { UtilityService } from '../../../core/services/utility/utility.service';\r\nimport { MockDatabase as MockDatabaseEntityType } from '../../../entity-types/mock/database.mock';\r\nimport { Dashboard } from '../../models/dashboard.model';\r\nimport { AbstractDashboardService } from '../../services/dashboard/abstract-dashboard.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * MOCK AbstractDashboardService implementation\r\n */\r\nexport class MockDashboardService extends AbstractDashboardService {\r\n /**\r\n * default time in seconds\r\n */\r\n private sleepTimeSec = 0.5;\r\n\r\n /**\r\n * Constructor\r\n * @param {NotificationsService} notificationsService\r\n * @param {UtilityService} utilityService\r\n * @param {IsLoadingDataService} isLoadingData\r\n * @param {ObjectsUtilityService} objectsUtilityService\r\n * @param {ArrayUtilityService} arrayUtilityService\r\n * @param {AbstractAuthService} authService\r\n * @param {HttpClient} httpClient\r\n */\r\n constructor(\r\n private notificationsService: NotificationsService,\r\n private utilityService: UtilityService,\r\n private isLoadingData: IsLoadingDataService,\r\n private objectsUtilityService: ObjectsUtilityService,\r\n private arrayUtilityService: ArrayUtilityService,\r\n private authService: AbstractAuthService,\r\n private httpClient: HttpClient\r\n ) {\r\n super(httpClient);\r\n }\r\n\r\n /**\r\n * Function responsible to store a new Dashboard\r\n * @param {Dashboard} newDashboard\r\n * @returns {Promise}\r\n */\r\n public createDashboardAsync(newDashboard: Dashboard): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n let checkNameDashboard = MockDatabaseEntityType.dashboard.find(\r\n (dashboard) => dashboard.name === newDashboard.name\r\n );\r\n this.isLoadingData.hide();\r\n\r\n if (!checkNameDashboard) {\r\n let dashboard: Dashboard =\r\n this.objectsUtilityService.cloneObject(newDashboard);\r\n dashboard['createdBy'] = this.authService.getLoggedUser()?.id;\r\n\r\n MockDatabaseEntityType.dashboard.push(dashboard);\r\n const dashboardsUpdated = this.arrayUtilityService.clone(\r\n MockDatabaseEntityType.dashboard\r\n );\r\n await this.setDashboardListUpdated(dashboardsUpdated);\r\n resolve(dashboard);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'New Dashboard Created.',\r\n detailKey: 'Success.',\r\n })\r\n );\r\n } else {\r\n reject('Dashboard not save');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'Dashboard not save.',\r\n detailKey: 'Dashboard name already exists in database',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get Dashboard by Id\r\n * @param {string} dashboardId\r\n * @returns {Promise}\r\n */\r\n public getDashboardByIdAsync(dashboardId: string): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n const dashboard: Dashboard = this.objectsUtilityService.cloneObject(\r\n MockDatabaseEntityType.dashboard.find((dashboard) => {\r\n return dashboard.id === dashboardId;\r\n })\r\n );\r\n this.isLoadingData.hide();\r\n if (dashboard) {\r\n resolve(dashboard);\r\n } else {\r\n reject('dashboard could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'dashboard could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Function responsible to update a dashboard\r\n * @param {string} dashboardId\r\n * @param {Dashboard} dashboard\r\n * @returns {Promise}\r\n */\r\n public updateDashboardAsync(\r\n dashboardId: string,\r\n dashboard: Dashboard\r\n ): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n\r\n const dashboardIndexToUpdate: number =\r\n MockDatabaseEntityType.dashboard.findIndex((dashboard) => {\r\n return dashboard.id == dashboardId;\r\n });\r\n if (dashboardIndexToUpdate > -1) {\r\n MockDatabaseEntityType.dashboard[dashboardIndexToUpdate] =\r\n this.objectsUtilityService.cloneObject(dashboard);\r\n\r\n const dashboardsUpdated = this.arrayUtilityService.clone(\r\n MockDatabaseEntityType.dashboard\r\n );\r\n await this.setDashboardListUpdated(dashboardsUpdated);\r\n this.isLoadingData.hide();\r\n resolve(dashboard);\r\n this.notificationsService.successNotification(\r\n new PrgSucess({\r\n titleKey: 'Dashboard updated.',\r\n detailKey: 'Success.',\r\n })\r\n );\r\n } else {\r\n reject('dashboard could not be updated');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'dashboard could not be updated.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n /**\r\n * Get dashboards by User Logged\r\n * @returns {Promise}\r\n */\r\n public getDashboardsByUserAsync(): Promise {\r\n return new Promise(async (resolve, reject) => {\r\n this.isLoadingData.show();\r\n await this.utilityService.sleepSecAsync(this.sleepTimeSec);\r\n let userLogged: User = this.authService.getLoggedUser();\r\n const dashboards: Dashboard[] = this.objectsUtilityService.cloneObject(\r\n MockDatabaseEntityType.dashboard.filter((dashboard) => {\r\n return dashboard.createdBy === userLogged.id;\r\n })\r\n );\r\n this.isLoadingData.hide();\r\n if (dashboards) {\r\n resolve(dashboards);\r\n } else {\r\n reject('dashboards could not be loaded');\r\n this.notificationsService.errorNotification(\r\n new PrgError({\r\n titleKey: 'dashboards could not be loaded.',\r\n detailKey: 'Server is down',\r\n })\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, ROUTES, Routes } from '@angular/router';\r\nimport { PrgLayoutsEmptyComponent } from '../layouts/empty/prg-layouts-empty.component';\r\nimport { PrgLayoutsHeaderSidebarComponent } from '../layouts/pages/prg-layouts-header-sidebar';\r\nimport { PrgDashboardDisplayComponent } from './components/dashboard-display/prg-dashboard-display.component';\r\nimport { PrgDashboardListComponent } from './components/dashboard-list/prg-dashboard-list.component';\r\nimport { PrgDashboardComponent } from './components/dashboard/prg-dashboard.component';\r\nimport { dashboardConfig } from './prg-dashboard.module';\r\n\r\nconst standardRoutes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(standardRoutes)],\r\n exports: [RouterModule],\r\n providers: [\r\n {\r\n provide: ROUTES,\r\n useFactory: () => {\r\n let routes: Routes = [];\r\n routes.push({\r\n path: dashboardConfig.dashboardRoutingBasePath,\r\n component: PrgLayoutsHeaderSidebarComponent,\r\n children: [\r\n {\r\n path: dashboardConfig.dashboardCreateRoutingPath,\r\n component: PrgDashboardComponent,\r\n },\r\n {\r\n path: dashboardConfig.dashboardEditRoutingPath + '/:id',\r\n component: PrgDashboardComponent,\r\n },\r\n {\r\n path: dashboardConfig.dashboardDisplayRoutingPath + '/:name',\r\n component: PrgDashboardDisplayComponent,\r\n },\r\n {\r\n path: dashboardConfig.dashboardDisplayRoutingPath,\r\n component: PrgDashboardDisplayComponent,\r\n },\r\n {\r\n path: dashboardConfig.dashboardListRoutingPath,\r\n component: PrgDashboardListComponent,\r\n },\r\n ],\r\n });\r\n\r\n return [...routes, ...standardRoutes];\r\n },\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PrgDashboardRoutingModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Dashboard } from '../../models/dashboard.model';\r\nimport { AbstractDashboardService } from './abstract-dashboard.service';\r\n\r\n/**\r\n * Injectable\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n/**\r\n * REAL AbstractDashboardService implementation\r\n */\r\nexport class DashboardService extends AbstractDashboardService {\r\n /**\r\n * Constructor\r\n * @param {HttpClient} httpClient\r\n */\r\n constructor(private httpClient: HttpClient) {\r\n super(httpClient);\r\n }\r\n\r\n /**\r\n * Function responsible to store a new Dashboard\r\n * @param {Dashboard} newDashboard\r\n * @returns {Promise}\r\n */\r\n public createDashboardAsync(newDashboard: Dashboard): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n /**\r\n * Get dashboard by Id\r\n * @param {string} dashboardId\r\n * @returns {Promise}\r\n */\r\n public getDashboardByIdAsync(dashboardId: string): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n /**\r\n * Function responsible to update a dashboard\r\n * @param {string} dashboardId\r\n * @param {Dashboard} dashboard\r\n * @returns {Promise}\r\n */\r\n public updateDashboardAsync(\r\n dashboardId: string,\r\n dashboard: Dashboard\r\n ): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n /**\r\n * Get dashboards by User Logged\r\n * @returns {Promise}\r\n */\r\n public getDashboardsByUserAsync(): Promise {\r\n throw new Error('Method not implemented.');\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { GridsterModule } from 'angular-gridster2';\r\nimport { DynamicModule } from 'ng-dynamic-component';\r\nimport { ChartModule } from 'primeng/chart';\r\nimport { DragDropModule } from 'primeng/dragdrop';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PrgCoreDynamicFormModule } from '../core/components/dynamic-form/prg-core-dynamic-form.module';\r\nimport { PrgEntityTypesModule } from '../entity-types/prg-entity-types.module';\r\nimport { PrgSharedComponentsModule } from '../shared-components/shared-components.module';\r\nimport { PrgDashboardDisplayComponent } from './components/dashboard-display/prg-dashboard-display.component';\r\nimport { PrgDashboardItemsOptionsComponent } from './components/dashboard-items-options/prg-dashboard-items-options.component';\r\nimport { PrgBarChartComponent } from './components/dashboard-items/bar-chart/prg-bar-chart.component';\r\nimport { PrgDoughnutChartComponent } from './components/dashboard-items/doughnut-chart/prg-doughnut-chart.component';\r\nimport { PrgLineChartComponent } from './components/dashboard-items/line-chart/prg-line-chart.component';\r\nimport { PrgTableComponent } from './components/dashboard-items/table/prg-table.component';\r\nimport { PrgDashboardListComponent } from './components/dashboard-list/prg-dashboard-list.component';\r\nimport { PrgDashboardOptionsComponent } from './components/dashboard-options/prg-dashboard-options.component';\r\nimport { PrgDashboardComponent } from './components/dashboard/prg-dashboard.component';\r\nimport { MockDashboardService } from './mock/services/dashboard.service.mock';\r\nimport { PrgDashboardConfig } from './models/prg-dashboard-config';\r\nimport { PrgDashboardRoutingModule } from './prg-dashboard-routing.module';\r\nimport { AbstractDashboardService } from './services/dashboard/abstract-dashboard.service';\r\nimport { DashboardService } from './services/dashboard/dashboard.service';\r\nimport { PRG_DASHBOARD_CONFIG } from './services/prg-dashboard-configuration/prg-dashboard-configuration.service';\r\n\r\n/**\r\n * Constant of dynamic components to be used on dashboard\r\n * @type {(PrgBarChartComponent | PrgLineChartComponent | PrgDoughnutChartComponent | PrgTableComponent)[]}\r\n */\r\nconst dynamicsComponents = [\r\n PrgBarChartComponent,\r\n PrgLineChartComponent,\r\n PrgDoughnutChartComponent,\r\n PrgTableComponent,\r\n];\r\n/**\r\n * Module that handles Dashboard\r\n */\r\n@NgModule({\r\n declarations: [\r\n PrgDashboardComponent,\r\n PrgDashboardDisplayComponent,\r\n PrgDashboardListComponent,\r\n PrgDashboardOptionsComponent,\r\n PrgDashboardItemsOptionsComponent,\r\n ...dynamicsComponents,\r\n ],\r\n imports: [\r\n PrgDashboardRoutingModule,\r\n PrgSharedComponentsModule,\r\n PrgCoreDynamicFormModule,\r\n GridsterModule,\r\n ChartModule,\r\n DynamicModule,\r\n OverlayPanelModule,\r\n DragDropModule,\r\n PrgEntityTypesModule,\r\n ],\r\n exports: [PrgDashboardComponent, PrgDashboardListComponent],\r\n entryComponents: [\r\n PrgDashboardOptionsComponent,\r\n PrgDashboardItemsOptionsComponent,\r\n ...dynamicsComponents,\r\n ],\r\n})\r\nexport class PrgDashboardModule {\r\n constructor(private injector: Injector) {\r\n appInjector = this.injector;\r\n }\r\n\r\n static forRoot(\r\n prgDashboardConfig: PrgDashboardConfig\r\n ): ModuleWithProviders {\r\n dashboardConfig = prgDashboardConfig;\r\n return {\r\n ngModule: PrgDashboardModule,\r\n providers: [\r\n {\r\n provide: PRG_DASHBOARD_CONFIG,\r\n useValue: prgDashboardConfig,\r\n },\r\n {\r\n provide: AbstractDashboardService,\r\n useClass: prgDashboardConfig.useMockServices\r\n ? MockDashboardService\r\n : DashboardService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * This variable allows you to access all the injectors on the entire app\r\n */\r\nexport let appInjector: Injector;\r\n\r\n/**\r\n * Exports the DashboardCoreConfig object\r\n */\r\nexport let dashboardConfig: PrgDashboardConfig;\r\n","/**\r\n * Public API Surface of prg-core-lib\r\n */\r\nexport * from './lib/modules/auth/components/form-login/prg-form-login.component';\r\nexport * from './lib/modules/auth/components/form-register/prg-form-register.component';\r\nexport * from './lib/modules/auth/components/form-request-password/prg-form-request-password.component';\r\nexport * from './lib/modules/auth/components/form-reset-password/prg-form-reset-password.component';\r\nexport * from './lib/modules/auth/mock/services/auth.service.mock';\r\nexport * from './lib/modules/auth/models/user.model';\r\nexport { PrgAuthModule } from './lib/modules/auth/prg-auth.module';\r\nexport * from './lib/modules/auth/services/auth/abstract-auth.service';\r\nexport * from './lib/modules/auth/services/auth/auth.service';\r\nexport * from './lib/modules/configuration-items/mock/services/configuration-items.service.mock';\r\nexport * from './lib/modules/configuration-items/models/configuration-item.model';\r\nexport { PrgConfigurationItemsModule } from './lib/modules/configuration-items/prg-configuration-items.module';\r\nexport * from './lib/modules/configuration-items/services/configuration-items/abstract-configuration-items.service';\r\nexport * from './lib/modules/configuration-items/services/configuration-items/configuration-items.service';\r\nexport * from './lib/modules/core/components/dynamic-form/models/base-field';\r\nexport * from './lib/modules/core/components/dynamic-form/models/constants/control-names';\r\nexport * from './lib/modules/core/components/dynamic-form/prg-dynamic-form.component';\r\nexport * from './lib/modules/core/models/base-entity.model';\r\nexport * from './lib/modules/core/models/owner-context.model';\r\nexport * from './lib/modules/core/models/pagination';\r\nexport * from './lib/modules/core/models/table-configs';\r\nexport { PrgCoreModule } from './lib/modules/core/prg-core.module';\r\nexport * from './lib/modules/core/services/context/app-context.service';\r\nexport * from './lib/modules/core/services/context/generic-context.service';\r\nexport * from './lib/modules/core/services/context/page-context.service';\r\nexport * from './lib/modules/entity-types/components/entity-type-element/prg-entity-type-element.component';\r\nexport * from './lib/modules/entity-types/components/entity-type/prg-entity-type.component';\r\nexport * from './lib/modules/entity-types/components/list-entity-types/prg-list-entity-types.component';\r\nexport * from './lib/modules/entity-types/components/list-specific-entity-type/prg-list-specific-entity-type.component';\r\nexport * from './lib/modules/entity-types/models/entity-type.model';\r\nexport { PrgEntityTypesModule } from './lib/modules/entity-types/prg-entity-types.module';\r\nexport * from './lib/modules/layouts/components/header/prg-header.component';\r\nexport * from './lib/modules/layouts/components/sidebar/prg-sidebar.component';\r\nexport * from './lib/modules/layouts/empty/prg-layouts-empty.component';\r\nexport * from './lib/modules/layouts/pages/prg-layouts-header-sidebar';\r\nexport { PrgLayoutsModule } from './lib/modules/layouts/prg-layouts.module';\r\nexport * from './lib/modules/lookup-table/components/lookupTableTable/components/lookupTableItemsTable/prg-lookup-table-items-table.component';\r\nexport * from './lib/modules/lookup-table/components/lookupTableTable/prg-lookup-table-table.component';\r\nexport * from './lib/modules/lookup-table/mock/services/lookup-table/lookup-table.mock.service';\r\nexport * from './lib/modules/lookup-table/models/lookup-table.model';\r\nexport { PrgLookupTableModule } from './lib/modules/lookup-table/prg-lookup-table.module';\r\nexport * from './lib/modules/lookup-table/services/lookup-table/abstract-lookup-table.service';\r\nexport * from './lib/modules/lookup-table/services/lookup-table/lookup-table.service';\r\nexport * from './lib/modules/queries/mock/services/queries.service.mock';\r\nexport * from './lib/modules/queries/models/query.model';\r\nexport { PrgQueriesModule } from './lib/modules/queries/prg-queries.module';\r\nexport * from './lib/modules/queries/services/queries/abstract-queries.service';\r\nexport * from './lib/modules/queries/services/queries/queries.service';\r\nexport * from './lib/modules/roles-scopes/components/role-create/prg-create-role.component';\r\nexport * from './lib/modules/roles-scopes/components/roles-select/prg-select-role.component';\r\nexport * from './lib/modules/roles-scopes/components/scopes-table/prg-scopes-table.component';\r\nexport * from './lib/modules/roles-scopes/mock/services/roles-scopes/roles-scopes.service.mock';\r\nexport { PrgRolesScopesModule } from './lib/modules/roles-scopes/prg-roles-scopes.module';\r\nexport * from './lib/modules/roles-scopes/services/roles-scopes/abstract-roles-scopes.service';\r\nexport * from './lib/modules/roles-scopes/services/roles-scopes/roles-scopes.service';\r\nexport * from './lib/modules/terms/components/prg-terms.component';\r\nexport * from './lib/modules/terms/models/terms.model';\r\nexport { PrgTermsModule } from './lib/modules/terms/prg-terms.module';\r\nexport * from './lib/modules/terms/services/terms/terms.service';\r\nexport { PrgDashboardModule } from './lib/modules/dashboard/prg-dashboard.module';\r\nexport * from './lib/modules/dashboard/mock/services/dashboard.service.mock';\r\nexport * from './lib/modules/dashboard/services/dashboard/dashboard.service';\r\nexport * from './lib/modules/dashboard/services/dashboard/abstract-dashboard.service';\r\nexport * from './lib/modules/dashboard/components/dashboard/prg-dashboard.component';\r\nexport * from './lib/modules/dashboard/components/dashboard-list/prg-dashboard-list.component';\r\nexport * from './lib/modules/entity-types/components/list-specific-entity-type/prg-list-specific-entity-type.component';\r\n/*export * from './lib/modules/queries/components/queries-table/prg-queries-table.component';*/\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["PrgAuthConfigurationService","i4","i5.IsLoadingDataService","i7","i12","i13","i4.IsLoadingDataService","i5","i9","i10","i11","i5.PasswordRequirements","i6.IsLoadingDataService","i1","i8","i2","i1.ArrayUtilityService","i2.ObjectsUtilityService","i1.NotificationsService","i2.UtilityService","i3.IsLoadingDataService","i2.PrgFormLoginComponent","i1.PrgFormRegisterComponent","i1.PrgFormRequestPasswordComponent","i1.PrgFormResetPasswordComponent","i2.IsLoadingDataService","i3","i6","i1.AbstractAuthService","standardRoutes","appInjector","AbstractConfigurationItemsService","i2.AbstractLookupTableService","i3.AbstractEntityTypeService","i4.ArrayUtilityService","i5.ObjectsUtilityService","MockDatabase","MockConfigurationItemsService","i4.ObjectsUtilityService","i5.ArrayUtilityService","i6.AbstractAuthService","i2.PrgButtonConfigsDirective","i2.PrgSetInputSwitchActionConfigsDirective","i2.PrgSetSelectButtonActionConfigsDirective","i3.PrgSpeedDialConfigsDirective","i3.PrgSplitButtonConfigsDirective","i2.PrgSetToggleButtonActionConfigsDirective","i5.PrgSetAutoCompleteConfigsDirective","i4.PrgSetCascadeSelectConfigsDirective","i4.PrgSetCheckboxConfigsDirective","i4.PrgSetChipsConfigsDirective","i4.PrgSetColorPickerConfigsDirective","i4.PrgSetDateTimeConfigsDirective","i4.PrgSetInputMaskConfigsDirective","i4.PrgSetInputNumberConfigsDirective","i4.PrgSetInputSwitchConfigsDirective","i1.UtilityService","i4.PrgSetKnobConfigsDirective","i4.PrgSetListBoxConfigsDirective","i4.PrgSetMultiselectConfigsDirective","i4.PrgSetInputPasswordConfigsDirective","i4.PrgSetRadioButtonConfigsDirective","i4.PrgSetRatingConfigsDirective","i4.PrgSetSelectButtonConfigsDirective","i4.PrgSetSelectConfigsDirective","i4.PrgSetSliderConfigsDirective","i4.PrgSetToggleButtonConfigsDirective","i4.PrgSetTriStateCheckboxConfigsDirective","i9.PrgDynamicFormFieldComponent","i10.PrgDynamicFormActionComponent","i1.AbstractConfigurationItemsService","i2.ArrayUtilityService","i3.UtilityService","i8.PrgDynamicFormComponent","i3.ArrayUtilityService","i5.MainLayoutService","i1.MainLayoutService","i4.AbstractAuthService","i2.PrgHeaderComponent","i3.PrgSidebarComponent","ConfigurationItemsService","i6.NotificationsService","i9.PrgDynamicFormComponent","i1.AbstractEntityTypeService","i3.NotificationsService","i6.UtilityService","i12.PrgDynamicFormComponent","i1.PrgEntityTypeConfigsComponent","i3.PrimengUtilityService","i14.PrgSetSelectConfigsDirective","i1.AbstractDashboardService","i3.ObjectsUtilityService","i2.MainLayoutService","i3.AbstractDashboardService","i4.UtilityService","i2.AbstractEntityTypeService","i4.PrgEntityTypeElementComponent","i1.PrgListEntityTypesComponent","i2.PrgListSpecificEntityTypeComponent","i1.AbstractLookupTableService","i4.FormGroupService","i13.PrgLookupTableItemsTableComponent","i14","i1.PrgLookupTableTableComponent","i2.AbstractQueriesService","i5.FormGroupService","i8.AbstractEntityTypeService","i9.AbstractLookupTableService","i15","i16","i17","i18","i19.PrgDynamicFormComponent","i20","i1.PrgQueriesTableComponent","i1.AbstractRolesScopesService","i5.PrgSelectRoleComponent","i3.PrgSelectRoleComponent","i4.PrgCreateRoleComponent","i5.PrgScopesTableComponent","i1.TermsService","i1.ObjectsUtilityService","i7.MainLayoutService","i5.PrgDynamicFormComponent","i1.PrgListSpecificEntityTypeComponent","i4.AbstractDashboardService","i9.NotificationsService","i17.PrgDynamicFormComponent","i19","MockDatabaseEntityType"],"mappings":"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"}