{"version":3,"file":"TescoSW.Sources.js","sourceRoot":"","sources":["../../../TescoSW/Global/Base/Process.ts","../../../TescoSW/Logging/LoggingSection.ts","../../../TescoSW/Logging/types.ts","../../../TescoSW/Logging/ILogger.ts","../../../TescoSW/Logging/ISectionLogger.ts","../../../TescoSW/Logging/ISectionLoggerFactory.ts","../../../TescoSW/Logging/LazyLoadingSectionLogger.ts","../../../TescoSW/Logging/constants.ts","../../../TescoSW/Logging/utils.ts","../../../TescoSW/Logging/index.ts","../../../TescoSW/OW.Remoting/Workers/Uploader/UploadWorkerData.ts","../../../TescoSW/Logging/ConsoleLogger.ts","../../../TescoSW/Global/Base/Utils/AssertUtils.ts","../../../TescoSW/Logging/SectionLogger.ts","../../../TescoSW/Logging/SectionLoggerFactory.ts","../../../TescoSW/Logging/defaultLogger.ts","../../../TescoSW/Global/Base/IDisposable.ts","../../../TescoSW/Global/Base/DataTypes/Queue.ts","../../../TescoSW/Global/Base/Polyfill/instanceOf.ts","../../../TescoSW/Global/Base/Exceptions.ts","../../../TescoSW/Global/Base/GlobalContext.ts","../../../TescoSW/Global/Base/Promises/CancellationTokenSource.ts","../../../TescoSW/Global/Base/Promises/PromiseUtils.ts","../../../TescoSW/Global/Base/Promises/AsyncLock.ts","../../../TescoSW/Global/Base/Events.ts","../../../TescoSW/Global/Base/Comunication/HeadersBuilder.ts","../../../TescoSW/Global/Base/Comunication/HTTPStatus.ts","../../../TescoSW/Global/Base/Comunication/HTTPRequest.ts","../../../TescoSW/OW.Remoting/Basic/WorkerMessages.ts","../../../TescoSW/OW.Remoting/Basic/BasicWorker.ts","../../../TescoSW/OW.Remoting/Workers/Localization/WorkerMessages.ts","../../../TescoSW/UI/UI.Worker/WorkerMessages.ts","../../../TescoSW/Configuration/IInitParams.ts","../../../TescoSW/Configuration/AppConfigurationBase.ts","../../../TescoSW/Configuration/IAppConfiguration.ts","../../../TescoSW/Configuration/AppConfiguration.ts","../../../TescoSW/Configuration/configurationLoader.ts","../../../TescoSW/Configuration/index.ts","../../../TescoSW/contracts/auth/loginResult.ts","../../../TescoSW/contracts/auth/index.ts","../../../TescoSW/contracts/culture.ts","../../../TescoSW/contracts/dataEvents.ts","../../../TescoSW/Global/Base/IComparable.ts","../../../TescoSW/Global/Base/DataTypes/IBigNumber.ts","../../../TescoSW/contracts/dataReader.ts","../../../TescoSW/contracts/documents.ts","../../../TescoSW/contracts/formHistory.ts","../../../TescoSW/contracts/iconCode.ts","../../../TescoSW/contracts/localizations.ts","../../../TescoSW/UI/Shared/ProfileChangeType.ts","../../../TescoSW/UI/UI/UI/FormManager/IFormManagerInterfaces.ts","../../../TescoSW/OW.Remoting/Remoting/RequestContext.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/dataReader/IDataReaderClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/dataReader/index.ts","../../../TescoSW/Global/Base/Crypto/ISignatureInfo.ts","../../../TescoSW/OW.Remoting/Remoting/Rights.ts","../../../TescoSW/Global/Base/Rights/IClassItemRights.ts","../../../TescoSW/Global/Base/Rights/IRightsContext.ts","../../../TescoSW/OW.Remoting/Remoting/Cache/ClassDescriptionCache/Interfaces.ts","../../../TescoSW/OW.Remoting/Remoting/IWorkflowManager.ts","../../../TescoSW/UI/UI.React/utils/constants.ts","../../../TescoSW/UI/Shared/Role.ts","../../../TescoSW/UI/UI.React/core/auth/types.ts","../../../TescoSW/UI/UI.React/utils/type.ts","../../../TescoSW/UI/Shared/ApplicationTheme.ts","../../../TescoSW/UI/UI.React/core/bridge/api/constants.ts","../../../TescoSW/UI/UI.React/core/bridge/api/types.ts","../../../TescoSW/UI/UI.React/core/bridge/api/actions.ts","../../../TescoSW/UI/UI.React/core/bridge/api/IBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/api/IProxyBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/api/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/ClientType.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/exportImport/IExportImportClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/exportImport/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/auth/types.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/auth/IAuthClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/auth/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/context/IContextClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/context/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/culture/ICultureClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/culture/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/dataEvents/IDataEventsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/dataEvents/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/documents/IDocumentClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/documents/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/localization/ILocalizationClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/localization/index.ts","../../../TescoSW/OW.Remoting/Remoting/RequestContextWithoutTransactionContextId.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/menu/IMenuClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/menu/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/modelDescriptions/IModelDescriptionsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/modelDescriptions/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/notifications/INotificationClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/notifications/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/tasks/ITaskClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/tasks/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/user/IUserClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/user/index.ts","../../../TescoSW/OW.Remoting/Remoting/IRolesAndICompetences.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/userSettings/IUserSettingsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/userSettings/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/IClientFactory.ts","../../../TescoSW/UI/UI.ReactControlConnectors/LinkButtonConnector/utils.ts","../../../TescoSW/UI/UI.ReactControlConnectors/mixins/types.ts","../../../TescoSW/UI/UI.React/utils/invariant.ts","../../../TescoSW/UI/UI.React/resultActions/types.ts","../../../TescoSW/UI/UI.React/workarounds/reduxSagaEffectsAlias/index.ts","../../../TescoSW/UI/UI.React/resultActions/utils.ts","../../../TescoSW/UI/UI.React/resultActions/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/actions.ts","../../../TescoSW/Global/Base/Utils/MemoryUtils.ts","../../../TescoSW/Global/Base/Utils/StringUtils.ts","../../../TescoSW/Global/Base/Converters/Base64js.ts","../../../TescoSW/Global/Base/Converters/DataConverter.ts","../../../TescoSW/Global/Base/DataTypes/IAttrValue.ts","../../../TescoSW/Global/Base/DataTypes/AttrValue.ts","../../../TescoSW/Global/Dom/Globalization.ts","../../../TescoSW/Global/Base/DataTypes/BigNumber.ts","../../../TescoSW/Global/Base/IDs/UUID.ts","../../../TescoSW/Global/Dom/CultureInfo.ts","../../../TescoSW/Global/Base/Utils/DateUtils.ts","../../../TescoSW/Global/Base/DataTypes/CaseInsensitiveMap.ts","../../../TescoSW/Global/Base/Utils/EnumUtils.ts","../../../TescoSW/Global/Base/Utils/FlagUtils.ts","../../../TescoSW/Global/Base/DIContainerInterfaces.ts","../../../TescoSW/Global/Base/DIContainer.ts","../../../TescoSW/Global/Base/FormatProviderRegistrator/FormatProviderRegistrator.ts","../../../TescoSW/Global/Base/Utils/NumberUtils.ts","../../../TescoSW/Global/Base/Utils/UrlUtils.ts","../../../TescoSW/OW.Remoting/Remoting/LocalizationUtils.ts","../../../TescoSW/UI/types.ts","../../../TescoSW/UI/utils.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/strict/oldAppImports.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/strict/StrictBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/strict/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/utils.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/prod/formOpenModeConversion.ts","../../../TescoSW/OW.Remoting/Remoting/ApplicationStorage.ts","../../../TescoSW/Global/Base/DataTypes/OWDate.ts","../../../TescoSW/UI/UI.React/workarounds/lodash.throttle/index.ts","../../../TescoSW/OW.Remoting/Basic/LocalizationsInterfaces.ts","../../../TescoSW/IndexedDB/Promises/IndexedDBExceptions.ts","../../../TescoSW/contracts/responses.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/utils/response.ts","../../../TescoSW/Global/Base/Builders/ITextBuilder.ts","../../../TescoSW/OW.Remoting/Basic/EOWExceptionsInterfaces.ts","../../../TescoSW/OW.Remoting/Basic/OWExceptions.ts","../../../TescoSW/OW.Remoting/Remoting/WorkerCommunicator.ts","../../../TescoSW/OW.Remoting/Remoting/Localization.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IEnums.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/Enums.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IVariant.ts","../../../TescoSW/OW.Remoting/Remoting/AttrValueReader.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/api/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/utils/clientGetters.ts","../../../TescoSW/Global/Base/Utils/ArrayUtils.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/types.ts","../../../TescoSW/Global/Base/Utils/ObjectUtils.ts","../../../TescoSW/Global/Base/ServiceWorkerMessages.ts","../../../TescoSW/Global/Base/ServiceWorkerResponses.ts","../../../TescoSW/OW.Remoting/Basic/ServiceWorkerConnector.ts","../../../TescoSW/OW.Remoting/Basic/ServiceEndpoints.ts","../../../TescoSW/OW.Remoting/Remoting/ICommunicationManager.ts","../../../TescoSW/OW.Remoting/Remoting/IDataEventsManager.ts","../../../TescoSW/Global/Base/Utils/versionUtils.ts","../../../TescoSW/OW.Remoting/Remoting/Constants.ts","../../../TescoSW/OW.Remoting/Remoting/CommunicationManager/CommunicationManager.ts","../../../TescoSW/OW.Remoting/Remoting/CommunicationManager/LegacyUpTo2101CommunicationManager.ts","../../../TescoSW/OW.Remoting/Remoting/CommunicationManager/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/BaseClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/auth/types.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/auth/AuthClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/auth/ASAuthClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/auth/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/ClientFactory.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/context/ContextClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/context/index.ts","../../../TescoSW/Global/Base/LogicalOperations.ts","../../../TescoSW/Global/Base/Rights/IRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI.Controls/Actions/MenuType.ts","../../../TescoSW/Global/Base/Enums.ts","../../../TescoSW/UI/UI/Rights/Utils.ts","../../../TescoSW/Global/Base/Rights/RightTypes.ts","../../../TescoSW/UI/Errors/constants.ts","../../../TescoSW/UI/Errors/IErrorHandler.ts","../../../TescoSW/UI/Errors/ErrorHandler.ts","../../../TescoSW/Cryptography/Crypto/CryptoExceptions.ts","../../../TescoSW/UI/UI.ElementarControls/Utils/CustomElementUtils.ts","../../../TescoSW/Global/Base/Builders/IBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/IContentBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/CryptoExtensionUnavailableBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/CryptoNativeAppUnavailableBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/CryptoVersionInfoBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/LocalizedStringBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/StringBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/UserMsgsBuilder.ts","../../../TescoSW/Global/Base/Utils/EventUtils.ts","../../../TescoSW/UI/UI.ElementarControls/Helpers/ElementUtils.ts","../../../TescoSW/UI/UI.BaseControls/Helpers/EventHelper.ts","../../../TescoSW/UI/UI.BaseControls/ControlInterfaces.ts","../../../TescoSW/UI/UI/UI/IPopupMenu.ts","../../../TescoSW/UI/UI/UI/PopupMenu.ts","../../../TescoSW/Global/Dom/bem.ts","../../../TescoSW/UI/UI/UI/XGControls/ControlInfo.ts","../../../TescoSW/Global/Base/Utils/StandardEventsController.ts","../../../TescoSW/Global/Dom/EventsController.ts","../../../TescoSW/Global/Base/Utils/TimerUtils.ts","../../../TescoSW/UI/UI.BaseControls/IEvent.ts","../../../TescoSW/UI/UI.BaseControls/Control.ts","../../../TescoSW/UI/UI.BaseControls/GenericControl.ts","../../../TescoSW/UI/UI/UI/ILoader.ts","../../../TescoSW/UI/UI/UI/Controls/ControlUtils.ts","../../../TescoSW/UI/UI/UI/Controls/Control.ts","../../../TescoSW/UI/UI/UI/Controls/EditableControl.ts","../../../TescoSW/UI/UI/UI/UIManager.ts","../../../TescoSW/UI/UI/UI/MessageWindow.ts","../../../TescoSW/UI/Errors/StandardErrorHandler.ts","../../../TescoSW/UI/Errors/index.ts","../../../TescoSW/Device/Info/DeviceInfo.ts","../../../TescoSW/Global/Base/Security/IStreamDecryptor.ts","../../../TescoSW/Global/Base/Security/IStreamEncryptor.ts","../../../TescoSW/Global/Base/Security/SecurityUtils.ts","../../../TescoSW/Global/Base/DataTypes/EncAttrValue.ts","../../../TescoSW/Global/Base/DataTypes/OWTime.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWDocumentDescription.ts","../../../TescoSW/Cryptography/Crypto.OW/ObjectSignatureSerializer.ts","../../../TescoSW/OW.Remoting/Remoting/InstanceManager.ts","../../../TescoSW/OW.Remoting/Remoting/PasswordManager.ts","../../../TescoSW/OW.Remoting/Remoting/types.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IValidationDataObject.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/utils.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWObjectList.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWObject.ts","../../../TescoSW/UI/UI.React/aggregationRow/constants.ts","../../../TescoSW/UI/UI.React/aggregationRow/logger.ts","../../../TescoSW/UI/UI.React/core/i18n/constants.ts","../../../TescoSW/UI/UI.React/core/i18n/types.ts","../../../TescoSW/UI/UI.React/core/i18n/reducer.ts","../../../TescoSW/UI/UI.React/core/fetching/constants.ts","../../../TescoSW/UI/UI.React/core/fetching/types.ts","../../../TescoSW/UI/UI.React/core/fetching/reducer.ts","../../../TescoSW/UI/UI.React/core/fetching/actions.ts","../../../TescoSW/UI/UI.React/core/fetching/selectors.ts","../../../TescoSW/UI/UI.React/core/fetching/index.ts","../../../TescoSW/UI/UI.React/core/i18n/actions.ts","../../../TescoSW/UI/UI.React/core/i18n/logger.ts","../../../TescoSW/UI/UI.React/workarounds/reselect/index.ts","../../../TescoSW/UI/UI.React/core/i18n/utils.ts","../../../TescoSW/UI/UI.React/core/i18n/selectors.ts","../../../TescoSW/UI/UI.React/core/i18n/saga.ts","../../../TescoSW/UI/UI.React/core/i18n/externalUtils.ts","../../../TescoSW/UI/UI.React/core/i18n/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/types.ts","../../../TescoSW/UI/UI.React/aggregationRow/utils.ts","../../../TescoSW/UI/UI.React/aggregationRow/reducer.ts","../../../TescoSW/UI/UI.React/aggregationRow/actions.ts","../../../TescoSW/UI/UI.React/aggregationRow/locKeys.ts","../../../TescoSW/UI/UI.React/aggregationRow/options.ts","../../../TescoSW/UI/UI.React/aggregationRow/selectors.ts","../../../TescoSW/UI/UI.React/aggregationRow/saga.ts","../../../TescoSW/UI/UI.React/components/Icon/IconEnums.ts","../../../TescoSW/UI/UI.React/components/Icon/Icon.tsx","../../../TescoSW/UI/UI.React/components/Icon/index.ts","../../../TescoSW/UI/Shared/ComponentTheme.ts","../../../TescoSW/UI/UI.React/components/SpinnerComponent/SpinnerComponent.tsx","../../../TescoSW/UI/UI.React/components/SpinnerComponent/index.ts","../../../TescoSW/UI/UI.React/components/ButtonProvider/enums.ts","../../../TescoSW/UI/UI.React/components/ButtonProvider/utils.ts","../../../TescoSW/UI/UI.React/components/ButtonProvider/ButtonProvider.tsx","../../../TescoSW/UI/UI.React/components/ButtonProvider/index.ts","../../../TescoSW/UI/UI.React/components/Layout/enums.ts","../../../TescoSW/UI/UI.React/controls/constants.ts","../../../TescoSW/UI/UI.React/controls/locKeys.ts","../../../TescoSW/UI/UI.React/controls/validation/types.ts","../../../TescoSW/UI/UI.React/controls/validation/validationFunctionTypes.ts","../../../TescoSW/UI/UI.React/controls/validation/utils.ts","../../../TescoSW/UI/UI.React/controls/validation/validationFunctions.ts","../../../TescoSW/UI/UI.React/controls/validation/ExplicitValidation.ts","../../../TescoSW/UI/UI.React/controls/validation/InstantValidation.ts","../../../TescoSW/UI/UI.React/controls/validation/index.ts","../../../TescoSW/UI/UI.React/controls/types.ts","../../../TescoSW/UI/UI.React/components/CaptionComponent/CaptionComponent.tsx","../../../TescoSW/UI/UI.React/components/CaptionComponent/index.ts","../../../TescoSW/UI/UI.React/components/EncryptedSymbol/EncryptedSymbol.tsx","../../../TescoSW/UI/UI.React/components/EncryptedSymbol/index.ts","../../../TescoSW/UI/UI.React/components/Input/types.ts","../../../TescoSW/UI/UI.React/components/Input/Input.tsx","../../../TescoSW/UI/UI.React/components/Input/index.ts","../../../TescoSW/UI/UI.React/workarounds/bemReactAlias/index.ts","../../../TescoSW/UI/UI.React/components/utils/formComponentClasses.ts","../../../TescoSW/UI/UI.React/components/utils/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/types.ts","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxField/CheckBoxField.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxField/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxSwitcher/utils.ts","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxSwitcher/CheckBoxSwitcher.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxSwitcher/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/CheckBoxComponent.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxComponent/index.ts","../../../TescoSW/UI/UI.React/components/types.ts","../../../TescoSW/UI/UI.React/components/Layout/Layout.tsx","../../../TescoSW/UI/UI.React/components/Layout/index.ts","../../../TescoSW/UI/UI.React/components/IconButton/IconButton.tsx","../../../TescoSW/UI/UI.React/components/IconButton/index.ts","../../../TescoSW/UI/UI.React/components/AdvancedFilter/AdvancedFilter.tsx","../../../TescoSW/UI/UI.React/components/AdvancedFilter/index.ts","../../../TescoSW/UI/UI.React/components/AnimatedHeight/AnimatedHeight.tsx","../../../TescoSW/UI/UI.React/components/AnimatedHeight/index.ts","../../../TescoSW/UI/UI.React/components/AnimatedOpacity/AnimatedOpacity.tsx","../../../TescoSW/UI/UI.React/components/AnimatedOpacity/index.ts","../../../TescoSW/UI/UI.React/components/AnimatedWidth/AnimatedWidth.tsx","../../../TescoSW/UI/UI.React/components/AnimatedWidth/index.ts","../../../TescoSW/UI/UI.React/constants.ts","../../../TescoSW/UI/UI.React/utils/intersectionObserver.ts","../../../TescoSW/UI/UI.React/utils/isArrayEqual.ts","../../../TescoSW/UI/UI.React/utils/hooks/hooks.ts","../../../TescoSW/UI/UI.React/utils/hooks/useFontsLoadedHook.ts","../../../TescoSW/UI/UI.React/utils/hooks/usePopupFlipHook.ts","../../../TescoSW/UI/UI.React/utils/hooks/index.ts","../../../TescoSW/UI/UI.React/components/DelayedUnmount/DelayedUnmount.tsx","../../../TescoSW/UI/UI.React/components/DelayedUnmount/index.ts","../../../TescoSW/UI/UI.React/components/AnimatedMount/AnimatedMount.tsx","../../../TescoSW/UI/UI.React/components/AnimatedMount/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxIcon/CheckBoxIcon.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxIcon/index.ts","../../../TescoSW/UI/UI.React/components/IconWithBackgroundAttr/IconWithBackgroundAttr.tsx","../../../TescoSW/UI/UI.React/components/IconWithBackgroundAttr/index.ts","../../../TescoSW/UI/UI.React/components/NumberFormatter/NumberFormatter.ts","../../../TescoSW/UI/UI.React/components/NumberFormatter/index.ts","../../../TescoSW/UI/UI.React/components/Text/enums.ts","../../../TescoSW/UI/UI.React/components/Text/utils.ts","../../../TescoSW/UI/UI.React/components/Text/Text.tsx","../../../TescoSW/UI/UI.React/components/Text/index.ts","../../../TescoSW/UI/UI.React/components/NumberValue/NumberValue.tsx","../../../TescoSW/UI/UI.React/components/NumberValue/index.ts","../../../TescoSW/UI/UI.React/components/Attribute/utils.tsx","../../../TescoSW/UI/UI.React/components/Attribute/Attribute.tsx","../../../TescoSW/UI/UI.React/components/Attribute/index.ts","../../../TescoSW/UI/UI.React/utils/webcam.ts","../../../TescoSW/UI/UI.React/components/AvatarSnap/AvatarSnap.tsx","../../../TescoSW/UI/UI.React/components/AvatarSnap/index.ts","../../../TescoSW/UI/UI.React/components/Loader/enum.ts","../../../TescoSW/UI/UI.React/components/Loader/Loader.tsx","../../../TescoSW/UI/UI.React/components/Loader/index.ts","../../../TescoSW/UI/UI.React/components/AvatarComponent/enum.ts","../../../TescoSW/UI/UI.React/components/AvatarComponent/AvatarComponent.tsx","../../../TescoSW/UI/UI.React/components/AvatarComponent/index.ts","../../../TescoSW/UI/UI.React/components/BackgroundColorWrapper/BackgroundColorWrapper.tsx","../../../TescoSW/UI/UI.React/components/BackgroundColorWrapper/index.ts","../../../TescoSW/UI/UI.React/components/Badge/Badge.tsx","../../../TescoSW/UI/UI.React/components/Badge/index.ts","../../../TescoSW/UI/UI.React/components/BooleanSwitcher/BooleanSwitcher.tsx","../../../TescoSW/UI/UI.React/components/BooleanSwitcher/index.ts","../../../TescoSW/UI/UI.React/components/ButtonFakeComponent/ButtonFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/ButtonFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/locKeys.ts","../../../TescoSW/UI/UI.React/components/ButtonFake/ButtonFake.tsx","../../../TescoSW/UI/UI.React/components/ButtonFake/index.ts","../../../TescoSW/UI/UI.React/components/Caption/Caption.tsx","../../../TescoSW/UI/UI.React/components/Caption/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxFakeComponent/CheckBoxFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/CheckBoxFake/CheckBoxFake.tsx","../../../TescoSW/UI/UI.React/components/CheckBoxFake/index.ts","../../../TescoSW/UI/UI.React/controls/reducer.ts","../../../TescoSW/UI/UI.React/controls/actions.ts","../../../TescoSW/UI/UI.React/controls/selectors.ts","../../../TescoSW/UI/UI.React/controls/index.ts","../../../TescoSW/UI/UI.React/components/ControlValueWrapper/ControlValueWrapper.tsx","../../../TescoSW/UI/UI.React/components/ControlValueWrapper/index.ts","../../../TescoSW/UI/UI.React/components/FormComponentPropsWrapper/FormComponentPropsWrapper.tsx","../../../TescoSW/UI/UI.React/components/FormComponentPropsWrapper/index.ts","../../../TescoSW/UI/UI.React/components/LocalizationLoader/LocalizationLoaderComponent.tsx","../../../TescoSW/UI/UI.React/components/LocalizationLoader/LocalizationLoader.tsx","../../../TescoSW/UI/UI.React/components/LocalizationLoader/LocalizationMultiLoader.tsx","../../../TescoSW/UI/UI.React/components/LocalizationLoader/index.ts","../../../TescoSW/UI/UI.React/components/LocalizationProvider/LocalizationProviderComponent.tsx","../../../TescoSW/UI/UI.React/components/LocalizationProvider/LocalizationProvider.tsx","../../../TescoSW/UI/UI.React/components/LocalizationProvider/index.ts","../../../TescoSW/UI/UI.React/components/MultiEditWrapper/MultiEditWrapper.tsx","../../../TescoSW/UI/UI.React/components/MultiEditWrapper/index.ts","../../../TescoSW/UI/UI.React/components/ValidationErrorWrapper/utils.ts","../../../TescoSW/UI/UI.React/utils/bemClassNames.ts","../../../TescoSW/UI/UI.React/components/PopupComponent/PopupComponent.tsx","../../../TescoSW/UI/UI.React/components/PopupComponent/index.ts","../../../TescoSW/UI/UI.React/components/Popup/Popup.tsx","../../../TescoSW/UI/UI.React/components/Popup/index.ts","../../../TescoSW/UI/UI.React/components/ValidationErrorTooltip/ValidationErrorTooltip.tsx","../../../TescoSW/UI/UI.React/components/ValidationErrorTooltip/index.ts","../../../TescoSW/UI/UI.React/components/ValidationErrorWrapper/ValidationErrorWrapperComponent.tsx","../../../TescoSW/UI/UI.React/components/ValidationErrorWrapper/ValidationErrorWrapper.tsx","../../../TescoSW/UI/UI.React/components/ValidationErrorWrapper/index.ts","../../../TescoSW/UI/UI.React/components/CheckBox/CheckBox.tsx","../../../TescoSW/UI/UI.React/components/CheckBox/index.ts","../../../TescoSW/UI/UI.React/components/Collapsible/Collapsible.tsx","../../../TescoSW/UI/UI.React/components/Collapsible/index.ts","../../../TescoSW/UI/UI.React/components/SelectProvider/SelectProvider.tsx","../../../TescoSW/UI/UI.React/components/SelectProvider/index.ts","../../../TescoSW/UI/UI.React/components/ComboBoxComponent/types.ts","../../../TescoSW/UI/UI.React/components/OptionProvider/OptionProvider.tsx","../../../TescoSW/UI/UI.React/components/OptionProvider/index.ts","../../../TescoSW/UI/UI.React/components/ComboBoxComponent/utils.tsx","../../../TescoSW/UI/UI.React/components/ComboBoxComponent/ComboBoxComponent.tsx","../../../TescoSW/UI/UI.React/components/ComboBoxComponent/enums.ts","../../../TescoSW/UI/UI.React/components/ComboBoxComponent/index.ts","../../../TescoSW/UI/UI.React/core/enums/constants.ts","../../../TescoSW/UI/UI.React/core/enums/types.ts","../../../TescoSW/UI/UI.React/core/enums/reducer.ts","../../../TescoSW/UI/UI.React/core/enums/actions.ts","../../../TescoSW/UI/UI.React/core/enums/logger.ts","../../../TescoSW/UI/UI.React/core/enums/utils.ts","../../../TescoSW/UI/UI.React/core/enums/selectors.ts","../../../TescoSW/UI/UI.React/core/enums/saga.ts","../../../TescoSW/UI/UI.React/core/enums/index.ts","../../../TescoSW/UI/UI.React/components/EnumLoader/EnumLoaderComponent.tsx","../../../TescoSW/UI/UI.React/components/EnumLoader/EnumLoader.tsx","../../../TescoSW/UI/UI.React/components/EnumLoader/index.ts","../../../TescoSW/UI/UI.React/components/EnumProvider/EnumProviderComponent.tsx","../../../TescoSW/UI/UI.React/components/EnumProvider/EnumProvider.tsx","../../../TescoSW/UI/UI.React/components/EnumProvider/index.ts","../../../TescoSW/UI/UI.React/components/ComboBox/LocalizedComboBoxOptionsWrapper/LocalizedComboBoxOptionsWrapperComponent.tsx","../../../TescoSW/UI/UI.React/components/ComboBox/LocalizedComboBoxOptionsWrapper/utils.ts","../../../TescoSW/UI/UI.React/components/ComboBox/LocalizedComboBoxOptionsWrapper/LocalizedComboBoxOptionsWrapper.tsx","../../../TescoSW/UI/UI.React/components/ComboBox/LocalizedComboBoxOptionsWrapper/index.ts","../../../TescoSW/UI/UI.React/components/ComboBox/utils.ts","../../../TescoSW/UI/UI.React/components/ComboBox/ComboBox.tsx","../../../TescoSW/UI/UI.React/components/ComboBox/index.ts","../../../TescoSW/UI/UI.React/components/ConditionalMount/ConditionalMount.tsx","../../../TescoSW/UI/UI.React/components/ConditionalMount/index.ts","../../../TescoSW/UI/UI.React/components/VirtualizedList/VirtualizedList.tsx","../../../TescoSW/UI/UI.React/components/VirtualizedList/index.ts","../../../TescoSW/UI/UI.React/components/InfiniteVirtualizedList/InfiniteVirtualizedList.tsx","../../../TescoSW/UI/UI.React/components/InfiniteVirtualizedList/index.ts","../../../TescoSW/UI/UI.React/components/ResponsiveList/ResponsiveListItem/ResponsiveListItem.tsx","../../../TescoSW/UI/UI.React/components/ResponsiveList/ResponsiveList.tsx","../../../TescoSW/UI/UI.React/components/ResponsiveList/index.ts","../../../TescoSW/UI/UI.React/components/DataGrid/DataGrid.tsx","../../../TescoSW/UI/UI.React/components/DataGrid/index.ts","../../../TescoSW/UI/UI.React/components/Divider/Divider.tsx","../../../TescoSW/UI/UI.React/components/Divider/index.ts","../../../TescoSW/UI/UI.React/components/DocumentDownloadButtonComponent/DocumentDownloadButtonComponent.tsx","../../../TescoSW/UI/UI.React/components/DocumentDownloadButtonComponent/index.ts","../../../TescoSW/UI/UI.React/components/DotCheckBox/DotCheckBox.tsx","../../../TescoSW/UI/UI.React/components/DotCheckBox/index.ts","../../../TescoSW/UI/UI.React/components/DraggableTree/constants.ts","../../../TescoSW/UI/UI.React/components/DraggableTree/types.ts","../../../TescoSW/UI/UI.React/components/DraggableTree/DefaultItemRenderer.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/DraggableItemsContextProvider.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/DraggableItemProvider.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/utils.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/DraggableTreeItem.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/DraggableTree.tsx","../../../TescoSW/UI/UI.React/components/DraggableTree/index.ts","../../../TescoSW/UI/UI.React/HOC/withLocalization/withLocalization.tsx","../../../TescoSW/UI/UI.React/components/EditComponent/types.ts","../../../TescoSW/UI/UI.React/components/EditComponent/EditComponent.tsx","../../../TescoSW/UI/UI.React/components/EditComponent/index.ts","../../../TescoSW/UI/UI.React/components/InputFakeComponent/InputFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/InputFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/InputFake/InputFake.tsx","../../../TescoSW/UI/UI.React/components/InputFake/index.ts","../../../TescoSW/UI/UI.React/components/Edit/Edit.tsx","../../../TescoSW/UI/UI.React/components/Edit/index.ts","../../../TescoSW/UI/UI.React/components/EmptyMessageComponent/EmptyMessageComponent.tsx","../../../TescoSW/UI/UI.React/components/EmptyMessageComponent/index.ts","../../../TescoSW/UI/UI.React/components/EmptyText/EmptyText.tsx","../../../TescoSW/UI/UI.React/components/EmptyText/index.ts","../../../TescoSW/UI/UI.React/components/FlagCircle/FlagCircle.tsx","../../../TescoSW/UI/UI.React/components/FlagCircle/index.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/types.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/utils/tabIndex.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/utils/index.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/KeyboardNavigationContext/KeyboardNavigationContext.tsx","../../../TescoSW/UI/UI.React/accessibility/navigation/KeyboardNavigationContext/useKeyboardNavigationContext.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/KeyboardNavigationContext/index.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/FocusableItemWrapper/FocusableItemWrapper.tsx","../../../TescoSW/UI/UI.React/accessibility/navigation/FocusableItemWrapper/index.ts","../../../TescoSW/UI/UI.React/accessibility/navigation/index.ts","../../../TescoSW/UI/UI.React/accessibility/index.ts","../../../TescoSW/UI/UI.React/components/FlagCircleWithTitle/FlagCircleWithTitle.tsx","../../../TescoSW/UI/UI.React/components/FlagCircleWithTitle/index.ts","../../../TescoSW/UI/UI.React/components/FlagGroup/FlagGroup.tsx","../../../TescoSW/UI/UI.React/components/FlagGroup/index.ts","../../../TescoSW/UI/UI.React/components/FocusProvider/FocusProvider.tsx","../../../TescoSW/UI/UI.React/components/FocusProvider/index.ts","../../../TescoSW/UI/UI.React/components/GridLayout/GridLayout.tsx","../../../TescoSW/UI/UI.React/components/GridLayout/index.ts","../../../TescoSW/UI/UI.React/components/GridLayoutItem/GridLayoutItem.tsx","../../../TescoSW/UI/UI.React/components/GridLayoutItem/index.ts","../../../TescoSW/UI/UI.React/components/IconSelectItem/IconSelectItem.tsx","../../../TescoSW/UI/UI.React/components/IconSelectItem/index.ts","../../../TescoSW/UI/UI.React/components/IconTextButton/enums.ts","../../../TescoSW/UI/UI.React/components/IconTextButton/utils.ts","../../../TescoSW/UI/UI.React/components/IconTextButton/IconTextButton.tsx","../../../TescoSW/UI/UI.React/components/IconTextButton/index.ts","../../../TescoSW/UI/UI.React/components/ImageEditFakeComponent/ImageEditFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/ImageEditFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/ImageEditFake/ImageEditFake.tsx","../../../TescoSW/UI/UI.React/components/ImageEditFake/index.ts","../../../TescoSW/UI/UI.React/components/Link/enums.ts","../../../TescoSW/UI/UI.React/components/Link/utils.ts","../../../TescoSW/UI/UI.React/components/Link/Link.tsx","../../../TescoSW/UI/UI.React/components/Link/index.ts","../../../TescoSW/UI/UI.React/components/LinkButton/constants.ts","../../../TescoSW/UI/UI.React/components/LinkButton/types.ts","../../../TescoSW/UI/UI.React/components/LinkButton/reducer.ts","../../../TescoSW/UI/UI.React/components/LinkButton/actions.ts","../../../TescoSW/UI/UI.React/components/LinkButton/selectors.ts","../../../TescoSW/UI/UI.React/components/LinkButton/utils.ts","../../../TescoSW/UI/UI.React/components/LinkButton/saga.ts","../../../TescoSW/UI/UI.React/HOC/withLocalization/index.ts","../../../TescoSW/UI/UI.React/HOC/index.ts","../../../TescoSW/UI/UI.React/components/TextButtonSpacing/TextButtonSpacing.tsx","../../../TescoSW/UI/UI.React/components/TextButtonSpacing/index.ts","../../../TescoSW/UI/UI.React/components/LinkButtonComponent/LinkButtonComponent.tsx","../../../TescoSW/UI/UI.React/components/LinkButtonComponent/index.ts","../../../TescoSW/UI/UI.React/components/LinkButton/LinkButton.tsx","../../../TescoSW/UI/UI.React/components/LinkButton/index.ts","../../../TescoSW/UI/UI.React/components/LinkEditFakeComponent/LinkEditFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/LinkEditFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/LinkEditFake/LinkEditFake.tsx","../../../TescoSW/UI/UI.React/components/LinkEditFake/index.ts","../../../TescoSW/UI/UI.React/components/Skeleton/Skeleton.tsx","../../../TescoSW/UI/UI.React/components/Skeleton/utils.ts","../../../TescoSW/UI/UI.React/components/Skeleton/index.ts","../../../TescoSW/UI/UI.React/components/ListHeaderAttributeComponent/ListHeaderAttributeComponent.tsx","../../../TescoSW/UI/UI.React/components/ListHeaderAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/components/Measurer/constants.ts","../../../TescoSW/UI/UI.React/components/Measurer/MeasuredItem.tsx","../../../TescoSW/UI/UI.React/components/Measurer/types.ts","../../../TescoSW/UI/UI.React/components/Measurer/Measurer.tsx","../../../TescoSW/UI/UI.React/components/Measurer/index.ts","../../../TescoSW/UI/UI.React/components/MemoFakeComponent/MemoFakeComponent.tsx","../../../TescoSW/UI/UI.React/components/MemoFakeComponent/index.ts","../../../TescoSW/UI/UI.React/components/MemoFake/MemoFake.tsx","../../../TescoSW/UI/UI.React/components/MemoFake/index.ts","../../../TescoSW/UI/UI.React/components/ModalWindow/utils.ts","../../../TescoSW/UI/UI.React/components/ModalWindow/ModalWindow.tsx","../../../TescoSW/UI/UI.React/components/ModalWindow/index.ts","../../../TescoSW/UI/UI.React/components/TextButton/TextButton.tsx","../../../TescoSW/UI/UI.React/components/TextButton/index.ts","../../../TescoSW/UI/UI.React/components/MessageWindowComponent/MessageWindowComponent.tsx","../../../TescoSW/UI/UI.React/components/MessageWindowComponent/index.ts","../../../TescoSW/UI/UI.React/components/MessageWindow/MessageWindow.tsx","../../../TescoSW/UI/UI.React/components/MessageWindow/index.ts","../../../TescoSW/UI/UI.React/utils/shared/constants.ts","../../../TescoSW/UI/UI.React/core/i18n/dev/index.ts","../../../TescoSW/UI/UI.React/customizationNew/types.ts","../../../TescoSW/UI/UI.React/customizationNew/AbstractRenderer.ts","../../../TescoSW/UI/UI.React/customizationNew/core/types.ts","../../../TescoSW/UI/UI.React/customizationNew/core/coreCustomization.ts","../../../TescoSW/UI/UI.React/frames/constants.ts","../../../TescoSW/UI/UI.React/frames/types.ts","../../../TescoSW/UI/UI.React/frames/actions.ts","../../../TescoSW/UI/UI.React/frames/locKeys.ts","../../../TescoSW/UI/UI.React/frames/reducer.ts","../../../TescoSW/UI/UI.React/frames/selectors.ts","../../../TescoSW/UI/UI.React/frames/components/DataRowComponent/enums.ts","../../../TescoSW/UI/UI.React/frames/components/DataRowComponent/utils.ts","../../../TescoSW/UI/UI.React/frames/components/DataRowComponent/DataRowComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/DataRowComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/DataRow/DataRow.tsx","../../../TescoSW/UI/UI.React/frames/components/DataRow/index.ts","../../../TescoSW/UI/UI.React/frames/components/MeasureCell/MeasureCell.tsx","../../../TescoSW/UI/UI.React/frames/components/MeasureCell/index.ts","../../../TescoSW/UI/UI.React/dropdown/types.ts","../../../TescoSW/UI/UI.React/dropdown/hooks.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownContainerOverflowArrow/types.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownContainerOverflowArrow/DropdownContainerOverflowArrow.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownContainerOverflowArrow/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownSkeletonItem/DropdownSkeletonItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownSkeletonItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownContainer/DropdownContainer.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownContainer/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownComponent/DropdownComponent.tsx","../../../TescoSW/UI/UI.React/dropdown/components/Dropdown/types.ts","../../../TescoSW/UI/UI.React/dropdown/components/Dropdown/Dropdown.tsx","../../../TescoSW/UI/UI.React/dropdown/components/Dropdown/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownCaptionItemComponent/DropdownCaptionItemComponent.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownCaptionItemComponent/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownCaptionItem/DropdownCaptionItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownCaptionItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownIconText/DropdownIconText.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownIconText/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownItemWrapper/DropdownItemWrapper.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownItemWrapper/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownItem/DropdownItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownListItem/DropdownListItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownListItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownMultiButtonsItem/DropdownMultiButtonsItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownMultiButtonsItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownSeparatorItem/DropdownSeparatorItem.tsx","../../../TescoSW/UI/UI.React/dropdown/components/DropdownSeparatorItem/index.ts","../../../TescoSW/UI/UI.React/dropdown/components/index.ts","../../../TescoSW/UI/UI.React/dropdown/index.ts","../../../TescoSW/UI/UI.React/frames/components/RowActionComponent/RowActionComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/RowActionComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/RowAction/RowAction.tsx","../../../TescoSW/UI/UI.React/frames/components/RowAction/index.ts","../../../TescoSW/UI/UI.React/frames/components/RowActionDropdownItem/RowActionDropdownItem.tsx","../../../TescoSW/UI/UI.React/frames/components/RowActionDropdownItem/index.ts","../../../TescoSW/UI/UI.React/frames/components/WorkflowActionItemsComponent/WorkflowActionItemsComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/WorkflowActionItemsComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/WorkflowActionItems/WorkflowActionItems.tsx","../../../TescoSW/UI/UI.React/frames/components/WorkflowActionItems/index.ts","../../../TescoSW/UI/UI.React/frames/components/WorkflowButtonComponent/WorkflowButtonComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/WorkflowButtonComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/WorkflowButton/WorkflowButton.tsx","../../../TescoSW/UI/UI.React/frames/components/WorkflowButton/index.ts","../../../TescoSW/UI/UI.React/frames/components/RowActionsComponent/RowActionsComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/RowActionsComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/RowActions/RowActions.tsx","../../../TescoSW/UI/UI.React/frames/components/RowActions/index.ts","../../../TescoSW/UI/UI.React/frames/components/TemplateLayout/TemplateLayout.tsx","../../../TescoSW/UI/UI.React/frames/components/TemplateLayout/index.ts","../../../TescoSW/UI/UI.React/frames/components/DataRowTemplateComponent/utils.tsx","../../../TescoSW/UI/UI.React/frames/components/DataRowTemplateComponent/DataRowTemplateComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/DataRowTemplateComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/DataRowTemplate/DataRowTemplate.tsx","../../../TescoSW/UI/UI.React/frames/components/DataRowTemplate/index.ts","../../../TescoSW/UI/UI.React/frames/components/DocumentDownloadComponent/utils.ts","../../../TescoSW/UI/UI.React/frames/components/DocumentDownloadComponent/DocumentDownloadComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/DocumentDownloadComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/DocumentDownload/DocumentDownload.tsx","../../../TescoSW/UI/UI.React/frames/components/DocumentDownload/index.ts","../../../TescoSW/UI/UI.React/frames/components/EmptyMessage/EmptyMessage.tsx","../../../TescoSW/UI/UI.React/frames/components/EmptyMessage/index.ts","../../../TescoSW/UI/UI.React/frames/components/GridLayoutMultiwebItemComponent/GridLayoutMultiwebItemComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/GridLayoutMultiwebItemComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/GridLayoutMultiwebItem/GridLayoutMultiwebItem.tsx","../../../TescoSW/UI/UI.React/frames/components/GridLayoutMultiwebItem/index.ts","../../../TescoSW/UI/UI.React/frames/components/LinkAttribute/LinkAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/LinkAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/ListHeaderAttribute/ListHeaderAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/ListHeaderAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/ListHeaderComponent/ListHeaderComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/ListHeaderComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/ListHeader/ListHeader.tsx","../../../TescoSW/UI/UI.React/frames/components/ListHeader/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/types.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/attribute/connectAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/IconNameAttribute/IconNameAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/IconNameAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/ListAttributeComponent/ListAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/ListAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/ListAttribute/ListAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/ListAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/attribute/LiteListFrameAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/attribute/withBackgroundAttr.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/attribute/index.ts","../../../TescoSW/UI/UI.React/frames/utils.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/connectPlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameEmptyAttributePlaceholder/LiteListFrameEmptyAttributePlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameEmptyAttributePlaceholder/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameEncryptedAttributePlaceholder/LiteListFrameEncryptedAttributePlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameEncryptedAttributePlaceholder/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameSkeletonAttributePlaceholder/constants.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameSkeletonAttributePlaceholder/LiteListFrameSkeletonAttributePlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/LiteListFrameSkeletonAttributePlaceholder/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/placeholders/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/LiteListFrameGeneralAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttribute/LiteListFrameGeneralAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameGeneralAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFAbstractRenderer.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFDefaultRenderer.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/attribute/LiteListFrameIconAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/attribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/placeholders/LiteListFrameEmptyIconAttributePlaceholder/LiteListFrameEmptyIconAttributePlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/placeholders/LiteListFrameEmptyIconAttributePlaceholder/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/placeholders/LiteListFrameSkeletonIconAttributePlaceholder/LiteListFrameSkeletonIconAttributePlaceholder.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/placeholders/LiteListFrameSkeletonIconAttributePlaceholder/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/LiteListFrameIconAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameIconAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFIconRenderer.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVShowAttrItemComponent/LOVShowAttrItemComponent.tsx","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVShowAttrItemComponent/index.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVAttributeComponent/LOVAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVAttribute/LOVAttribute.tsx","../../../TescoSW/UI/UI.React/frames/LOV/components/LOVAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/types.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/utils.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/attribute/LiteListFrameLOVAttribute.tsx","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/attribute/index.ts","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/LiteListFrameLOVAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/LOV/components/LiteListFrameLOVAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/LOV/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFLOVRenderer.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/ParticipantType/lockeys.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/ParticipantType/ParticipantTypeAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/ParticipantType/ParticipantTypeAttribute.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/ParticipantType/ParticipantTypeAttributeRenderer.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/ParticipantType/index.ts","../../../TescoSW/UI/UI.React/core/workflow/types.ts","../../../TescoSW/UI/UI.React/core/workflow/utils.ts","../../../TescoSW/UI/UI.React/core/workflow/datasources/participantsDataSource.ts","../../../TescoSW/UI/UI.React/core/workflow/selectors.ts","../../../TescoSW/UI/UI.React/core/workflow/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsItem/constants.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/RoleUserRowComponent/RoleUserRowComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/RoleUserRowComponent/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/RoleUserRow/RoleUserRow.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/RoleUserRow/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/RoleUsers/constants.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/constants.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/RoleUsers/RoleUsersAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/RoleUsers/RoleUsersAttribute.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/RoleUsers/RoleUsersAttributeRenderer.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/RoleUsers/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/GridParticipantsTemplate/GridParticipantsRowTemplateComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/GridParticipantsTemplate/GridParticipantsTemplate.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/GridParticipantsTemplate/GridParticipantsTemplateRenderer.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/GridParticipantsTemplate/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/RoleUsersTemplate/RoleUsersTemplateComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/RoleUsersTemplate/RoleUsersTemplate.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/RoleUsersTemplate/RoleUsersTemplateRenderer.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/RoleUsersTemplate/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFAttributeRegistrator.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameLinkAttributeComponent/LiteListFrameLinkAttributeComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameLinkAttributeComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameLinkAttribute/LiteListFrameLinkAttribute.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameLinkAttribute/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/attribute/LLFLinkRenderer.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/template/LLFDefaultTemplateRenderer.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/renderers/template/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LLFCustomization/registration.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameComponent/LiteListFrameComponent.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrameComponent/index.ts","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/LiteListFrame.tsx","../../../TescoSW/UI/UI.React/frames/components/LiteListFrame/index.ts","../../../TescoSW/UI/UI.React/frames/components/index.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/attributes/types.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/templates/types.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/types.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/LiteListFrameCustomization.ts","../../../TescoSW/UI/UI.React/customizationNew/customization.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/datasources/registrator.ts","../../../TescoSW/UI/UI.React/customizationNew/LiteListFrame/index.ts","../../../TescoSW/UI/UI.React/customizationNew/registrators/keyRegistrator.ts","../../../TescoSW/UI/UI.React/customizationNew/registrators/priorityRegistrator.ts","../../../TescoSW/UI/UI.React/customizationNew/registrators/index.ts","../../../TescoSW/UI/UI.React/customizationNew/index.ts","../../../TescoSW/UI/UI.React/core/datasource/customization/registration.ts","../../../TescoSW/UI/UI.React/core/datasource/initState.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/actionsReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/attributeInfoReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/conditionsReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/configReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/utils.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/dataReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/types.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/loadingReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/logger.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/multiselectReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/orderByReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/workflowReducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/reducer.ts","../../../TescoSW/UI/UI.React/core/datasource/reducers/index.ts","../../../TescoSW/UI/UI.React/core/datasource/actions.ts","../../../TescoSW/UI/UI.React/core/datasource/selectors.ts","../../../TescoSW/UI/UI.React/core/datasource/saga.ts","../../../TescoSW/UI/UI.React/core/datasource/index.ts","../../../TescoSW/UI/UI.React/utils/create.ts","../../../TescoSW/UI/UI.React/utils/shared/methods.ts","../../../TescoSW/UI/UI.React/utils/shared/types.ts","../../../TescoSW/UI/UI.React/utils/shared/create.ts","../../../TescoSW/UI/UI.React/utils/shared/i18n.ts","../../../TescoSW/UI/UI.React/utils/shared/index.ts","../../../TescoSW/UI/UI.React/components/NumEdit/constants.ts","../../../TescoSW/UI/UI.React/components/NumEdit/types.ts","../../../TescoSW/UI/UI.React/components/NumEdit/utils.ts","../../../TescoSW/UI/UI.React/components/NumEdit/NumEdit.tsx","../../../TescoSW/UI/UI.React/components/NumEdit/index.ts","../../../TescoSW/UI/UI.React/components/PasswordEditComponent/PasswordEditComponent.tsx","../../../TescoSW/UI/UI.React/components/PasswordEditComponent/index.ts","../../../TescoSW/UI/UI.React/components/PasswordEdit/PasswordEdit.tsx","../../../TescoSW/UI/UI.React/components/PasswordEdit/index.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/constants.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/types.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/reducer.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/action.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/logger.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/saga.ts","../../../TescoSW/UI/UI.React/components/ReportingScalarComponent/ReportingScalarComponent.tsx","../../../TescoSW/UI/UI.React/components/ReportingScalarComponent/index.ts","../../../TescoSW/UI/UI.React/components/ReportingScalarProvider/ReportingScalarProvider.tsx","../../../TescoSW/UI/UI.React/components/ReportingScalarProvider/index.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/selectors.ts","../../../TescoSW/UI/UI.React/components/ReportingScalar/ReportingScalar.tsx","../../../TescoSW/UI/UI.React/components/ReportingScalar/index.ts","../../../TescoSW/UI/UI.React/core/theme/constants.ts","../../../TescoSW/UI/UI.React/core/theme/types.ts","../../../TescoSW/UI/UI.React/core/theme/reducer.ts","../../../TescoSW/UI/UI.React/core/theme/actions.ts","../../../TescoSW/UI/UI.React/core/theme/selectors.ts","../../../TescoSW/UI/UI.React/core/theme/utils.ts","../../../TescoSW/UI/UI.React/core/theme/saga.ts","../../../TescoSW/UI/UI.React/core/theme/index.ts","../../../TescoSW/UI/UI.React/customization/constants.ts","../../../TescoSW/UI/UI.React/customization/types.ts","../../../TescoSW/UI/UI.React/customization/ReduxRegistrator.ts","../../../TescoSW/UI/UI.React/customization/logger.ts","../../../TescoSW/UI/UI.React/customization/utils.ts","../../../TescoSW/UI/UI.React/customization/redux.ts","../../../TescoSW/UI/UI.React/customization/index.ts","../../../TescoSW/UI/UI.React/forms/constants.ts","../../../TescoSW/UI/UI.React/forms/types.ts","../../../TescoSW/UI/UI.React/menu/constants.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/types.ts","../../../TescoSW/UI/UI.React/menu/navigation/constants.ts","../../../TescoSW/UI/UI.React/menu/navigation/types.ts","../../../TescoSW/UI/UI.React/menu/openedItems/constants.ts","../../../TescoSW/UI/UI.React/menu/openedItems/types.ts","../../../TescoSW/UI/UI.React/menu/locKeys.ts","../../../TescoSW/UI/UI.React/menu/search/constants.ts","../../../TescoSW/UI/UI.React/menu/search/types.ts","../../../TescoSW/UI/UI.React/menu/types.ts","../../../TescoSW/UI/UI.React/rights/constants.ts","../../../TescoSW/UI/UI.React/rights/types.ts","../../../TescoSW/UI/UI.React/picasso/enums.ts","../../../TescoSW/UI/UI.React/picasso/interfaces.ts","../../../TescoSW/UI/UI.React/picasso/types.ts","../../../TescoSW/UI/UI.React/picasso/constants.ts","../../../TescoSW/UI/UI.React/picasso/actions.ts","../../../TescoSW/UI/UI.React/picasso/selectors.ts","../../../TescoSW/UI/UI.React/picasso/components/LinkComponent.tsx","../../../TescoSW/UI/UI.React/picasso/components/Link.ts","../../../TescoSW/UI/UI.React/picasso/utils.ts","../../../TescoSW/UI/UI.React/picasso/components/MoveableComponent.tsx","../../../TescoSW/UI/UI.React/picasso/components/Moveable.ts","../../../TescoSW/UI/UI.React/picasso/components/PicassoPaintingComponent.tsx","../../../TescoSW/UI/UI.React/picasso/components/PicassoPainting.ts","../../../TescoSW/UI/UI.React/picasso/components/index.ts","../../../TescoSW/UI/UI.React/picasso/reducer.ts","../../../TescoSW/UI/UI.React/picasso/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/constants.ts","../../../TescoSW/UI/UI.React/workflowEditor/enums.ts","../../../TescoSW/UI/UI.React/workflowEditor/locKeys.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/constants.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/Action.ts","../../../TescoSW/UI/UI.React/workflowEditor/UiActivity.ts","../../../TescoSW/UI/UI.React/workflowEditor/UiSet.ts","../../../TescoSW/UI/UI.React/workflowEditor/UiTransition.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/Participant.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/DefinitionParticipant.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/Owner.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/Role.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/System.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/User.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Participants/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/Trigger.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/AttributeDataChange.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/Menu.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/NewObject.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/WfMessage.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Triggers/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/constants.ts","../../../TescoSW/UI/UI.React/workflowEditor/UiModelCreator.ts","../../../TescoSW/UI/UI.React/workflowEditor/UiWorkflow.ts","../../../TescoSW/UI/UI.React/workflowEditor/WorkflowManager.ts","../../../TescoSW/UI/UI.React/workflowEditor/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/CallMethod.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/CallScript.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/IncrementDateTime.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/IncrementNumber.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/OpenForm.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SendMail.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SendSMS.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SendWFMessage.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SetAttribute.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SetObjectAttribute.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/SetValue.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Actions/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Set.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Position.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Point.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Transition.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/WorkflowStatus.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Activity.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/Workflow.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowModel/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/types.ts","../../../TescoSW/UI/UI.React/setup/types.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/Events.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/components/types.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/components/EditorPropTypes.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/Utils.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/ScriptLoader.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/TinyMCE.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/components/RichTextEditorWrapperComponent.tsx","../../../TescoSW/UI/UI.React/richtextEditorWrapper/components/RichTextEditorWrapper.ts","../../../TescoSW/UI/UI.React/components/RichTextEdit/RichTextEdit.tsx","../../../TescoSW/UI/UI.React/components/RichTextEdit/index.ts","../../../TescoSW/UI/UI.React/components/ScrollLayout/ScrollLayout.tsx","../../../TescoSW/UI/UI.React/components/ScrollLayout/index.ts","../../../TescoSW/UI/UI.React/components/SectionPanel/constants.ts","../../../TescoSW/UI/UI.React/components/SectionPanel/SectionPanel.tsx","../../../TescoSW/UI/UI.React/components/SectionPanel/SectionPanelContent/SectionPanelContent.tsx","../../../TescoSW/UI/UI.React/components/SectionPanel/SectionPanelFooter/SectionPanelFooter.tsx","../../../TescoSW/UI/UI.React/components/SectionPanel/SectionPanelHeader/SectionPanelHeader.tsx","../../../TescoSW/UI/UI.React/components/SectionPanel/index.ts","../../../TescoSW/UI/UI.React/components/Select/Select.tsx","../../../TescoSW/UI/UI.React/components/Select/index.ts","../../../TescoSW/UI/UI.React/components/SelectBody/SelectBody.tsx","../../../TescoSW/UI/UI.React/components/SelectBody/index.ts","../../../TescoSW/UI/UI.React/components/SelectItem/SelectItem.tsx","../../../TescoSW/UI/UI.React/components/SelectItem/index.ts","../../../TescoSW/UI/UI.React/components/SelectTextButton/SelectTextButton.tsx","../../../TescoSW/UI/UI.React/components/SelectTextButton/index.ts","../../../TescoSW/UI/UI.React/components/SplitPanelLight/types.ts","../../../TescoSW/UI/UI.React/components/SplitPanelLight/utils.ts","../../../TescoSW/UI/UI.React/components/SplitPanelLight/SplitHorizontalPanelLight/SplitHorizontalPanelLight.tsx","../../../TescoSW/UI/UI.React/components/SplitPanelLight/SplitHorizontalPanelLight/index.ts","../../../TescoSW/UI/UI.React/components/SplitPanelLight/SplitVerticalPanelLight/SplitVerticalPanelLight.tsx","../../../TescoSW/UI/UI.React/components/SplitPanelLight/SplitVerticalPanelLight/index.ts","../../../TescoSW/UI/UI.React/components/Tabs/Tab/Tab.tsx","../../../TescoSW/UI/UI.React/components/Tabs/Tab/index.ts","../../../TescoSW/UI/UI.React/components/Tabs/Tabs.tsx","../../../TescoSW/UI/UI.React/components/Tabs/index.ts","../../../TescoSW/UI/UI.React/components/TemplateLayoutItem/enums.ts","../../../TescoSW/UI/UI.React/components/TemplateLayoutItem/TemplateLayoutItem.tsx","../../../TescoSW/UI/UI.React/components/TemplateLayoutItem/index.ts","../../../TescoSW/UI/UI.React/components/TextButtonSelect/TextButtonSelect.tsx","../../../TescoSW/UI/UI.React/components/TextButtonSelect/index.ts","../../../TescoSW/UI/UI.React/components/VerticalDivider/VerticalDivider.tsx","../../../TescoSW/UI/UI.React/components/VerticalDivider/index.ts","../../../TescoSW/UI/UI.React/components/WizardControlPanel/WizardControlPanel.tsx","../../../TescoSW/UI/UI.React/components/WizardControlPanel/index.ts","../../../TescoSW/UI/UI.React/components/WizardWindow/WizardWindow.tsx","../../../TescoSW/UI/UI.React/components/WizardWindow/index.ts","../../../TescoSW/UI/UI.React/components/workarounds/MountHtmlElement/MountHtmlElement.tsx","../../../TescoSW/UI/UI.React/components/workarounds/MountHtmlElement/index.ts","../../../TescoSW/UI/UI.React/components/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationSelectComponent/AggregationSelectComponent.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationSelectComponent/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationSelect/AggregationSelect.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationSelect/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/CloseButton/CloseButton.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/CloseButton/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/ColumnComponent/ColumnComponent.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/ColumnComponent/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/Column/Column.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/Column/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationRowComponent/AggregationRowComponent.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationRowComponent/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationRow/AggregationRow.tsx","../../../TescoSW/UI/UI.React/aggregationRow/components/AggregationRow/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/components/index.ts","../../../TescoSW/UI/UI.React/aggregationRow/index.ts","../../../TescoSW/Global/Base/Rights/constants.ts","../../../TescoSW/Global/Base/Rights/StandardOperationRights.ts","../../../TescoSW/UI/UI/Rights/BasicRightsResults.ts","../../../TescoSW/Global/Base/DataTypes/ITree.ts","../../../TescoSW/Global/Base/DataTypes/IAsyncTree.ts","../../../TescoSW/Global/Base/Rights/IComponentTree.ts","../../../TescoSW/Global/Base/DataTypes/AsyncTree.ts","../../../TescoSW/UI/UI/UI/Toolbar/ToolbarControl.ts","../../../TescoSW/UI/UI.Controls/Actions/INodeAction.ts","../../../TescoSW/Global/Base/Rights/IRightsContexts.ts","../../../TescoSW/Global/Base/Rights/IUseMasterObject.ts","../../../TescoSW/Global/Base/Rights/ILogicalComponentBase.ts","../../../TescoSW/Global/Base/Rights/IRightsManager.ts","../../../TescoSW/UI/UI/LogicalTree/ILogicalComponent.ts","../../../TescoSW/Global/Base/DataTypes/NTuples.ts","../../../TescoSW/UI/UI/Rights/FormRight.ts","../../../TescoSW/UI/UI/UI/Controls/SidePanel.ts","../../../TescoSW/UI/UI/UI/FormUI/FormUI.ts","../../../TescoSW/UI/UI/Rights/MutableItemRightsCollection.ts","../../../TescoSW/UI/UI/Rights/ComponentRightsExtractor.ts","../../../TescoSW/UI/UI/Rights/Rights.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/SelectionHelper.ts","../../../TescoSW/UI/UI.BaseControls/AwaitableEvent.ts","../../../TescoSW/UI/UI.Controls/DataGridSharedMethods.ts","../../../TescoSW/UI/UI.BaseControls/ICustomElement.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/IHeaderRow.ts","../../../TescoSW/UI/UI.React/frames/saga.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsItem/GridParticipantsItem.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsItem/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsComponent/constants.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsComponent/utils.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsComponent/GridParticipantsComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipantsComponent/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipants/GridParticipants.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/GridParticipants/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/WFParticipantsDialogComponent/lockeys.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/WFParticipantsDialogComponent/WFParticipantsDialogComponent.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/WFParticipantsDialogComponent/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/WFParticipantsDialog/WFParticipantsDialog.tsx","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/WFParticipantsDialog/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/components/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/attributes/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/customization/templates/index.ts","../../../TescoSW/UI/UI.React/frames/GridParticipants/index.ts","../../../TescoSW/UI/UI.React/frames/index.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/DataGridMessages/IEmptyDataGridMessage.ts","../../../TescoSW/Global/Base/Rights/utils.ts","../../../TescoSW/UI/UI.Controls/DataSource/constants.ts","../../../TescoSW/UI/UI.Controls/DataSource/DBDataSource.ts","../../../TescoSW/UI/UI.Controls/DataSource/IObjectDataSource.ts","../../../TescoSW/UI/UI.Controls/DataSource/EditableDBDataSource.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/Flags.ts","../../../TescoSW/UI/UI.ElementarControls/Helpers/ValidityInterfaces.ts","../../../TescoSW/UI/UI.ElementarControls/Helpers/ValidityStateHelper.ts","../../../TescoSW/UI/UI.BaseControls/PopupMenu.ts","../../../TescoSW/UI/UI.BaseControls/EditableControl.ts","../../../TescoSW/UI/UI/UI/PopupMenu2.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/ICellContent.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/ITemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/TableCell.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/DataRow.ts","../../../TescoSW/UI/UI/UI/XGControls/ValidationManager.ts","../../../TescoSW/UI/UI/UI/XGControls/FormControl.ts","../../../TescoSW/UI/UI/UI/XGControls/SharedMethods.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/IPrimary.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownInterfaces.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuLoader.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuWithSubmenuItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/SeparatorItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenu.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/NodeAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ToolbarMenuButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ToolbarButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ActionExecutionContext/IActionExecutionContext.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ActionExecutionContext/ActionActualExecutionContext.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ActionExecutionContext/ActionMasterExecutionContext.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ActionExecutionContext/index.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/XGAction.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/MultiActionToolbarButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/IToolbarButton.ts","../../../TescoSW/UI/UI.Controls/Actions/Action.ts","../../../TescoSW/UI/UI/UI/FileMenu.ts","../../../TescoSW/UI/UI/UI/DataSourceErrorHandler.ts","../../../TescoSW/UI/UI.Controls/DataSource/GroupingTreeViewDataSource.ts","../../../TescoSW/UI/UI.Controls/IEvent.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/ListDataRow.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/EditableDataRow.ts","../../../TescoSW/Global/Base/DataSources/DataInterfaceComparer.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/HeaderCell.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/HeaderRow.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/HeaderTemplate.ts","../../../TescoSW/UI/UI.Controls/ListDataGrid.ts","../../../TescoSW/UI/UI.Controls/EditableDatagrid.ts","../../../TescoSW/UI/UI.Controls/IDataGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/Cell.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/FooterCell.ts","../../../TescoSW/UI/UI.BaseControls/Edit.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/TableCellContent.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/EditItemTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeEditTemplates/DefaultEditTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/FooterTemplate.ts","../../../TescoSW/UI/UI.BaseControls/ValidatableControl.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/ItemTemplate.ts","../../../TescoSW/UI/UI.Controls/ChartElement.ts","../../../TescoSW/UI/UI.ElementarControls/Helpers/CheckBoxUtils.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/BooleanTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/BooleanColumn.ts","../../../TescoSW/UI/UI.BaseControls/ColorEdit.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/ColorTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/ColorColumn.ts","../../../TescoSW/UI/UI.BaseControls/DateEdit.ts","../../../TescoSW/UI/UI.ElementarControls/ControlInterfaces.ts","../../../TescoSW/UI/UI.ElementarControls/NumEditBase.ts","../../../TescoSW/UI/UI.BaseControls/NumEdit.ts","../../../TescoSW/UI/UI.BaseControls/TimeEdit.ts","../../../TescoSW/UI/UI.BaseControls/Checkbox.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/IStructureExtension.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/IWithInclude.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/DateTimeWithInclude.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/DateWithInclude.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownButtonItem.ts","../../../TescoSW/UI/UI/UI/Controls/CheckBox.ts","../../../TescoSW/UI/UI/UI/Controls/CheckBox2s.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuCheckboxItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/BaseAdvancedFilters.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/DaysListAdvancedFilter.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/logger.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/EnumFilterEdit.ts","../../../TescoSW/UI/UI.Controls/DataSource/ArrayDataSource.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CheckedDataRow.ts","../../../TescoSW/UI/UI.Controls/ValueListDataGrid.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterDatetypeOperationMapper.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterRegistrations.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/ValueList.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuCheckedDGItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownTextEditItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuCaptionItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterCombo.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownTextAreaItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/ExtendedFilterEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterMultiItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterGroup.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/AdvancedFilterEdit.ts","../../../TescoSW/Global/Base/Utils/ObjectSchemaValidator.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IConditionValidation.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterValidator.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterBlock.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/ValueListButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/EnumValueListButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/FlagFilter.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/IconValueListButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/MonthListAdvancedFilter.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/MultiValueEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/QuarterListAdvancedFilter.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/TimeAgeCombo.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterStructures.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/IconTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/IconColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/LOVTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/LOVColumn.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/IRequiresMasterObject.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/RecordIdentification.ts","../../../TescoSW/Global/Base/Utils/FunctionUtils.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MEOWObject.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/FormResult.ts","../../../TescoSW/Global/Base/types.ts","../../../TescoSW/UI/UI.ReactControlConnectors/types.ts","../../../TescoSW/UI/UI.ReactControlConnectors/mixins/hasMasterFrame.ts","../../../TescoSW/OW.Remoting/Remoting/ConditionStore.ts","../../../TescoSW/OW.Remoting/Remoting/ExportManager.ts","../../../TescoSW/UI/UI.Controls/Actions/ActionWithData.ts","../../../TescoSW/Global/Base/Utils/SetUtils.ts","../../../TescoSW/UI/UI/UI/Controls/FlagEdit.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeEditTemplates/FlagEditTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/FlagTemplates.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/FlagColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/TimeColumn.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/SeparatorItemWithText.ts","../../../TescoSW/UI/UI/Rights/OriginalRightsDefinitionLoaderFromHTML.ts","../../../TescoSW/UI/UI/Rights/OriginalRightsDefinitionLoader.ts","../../../TescoSW/UI/UI/UI/Controls/ContainerEditableControl.ts","../../../TescoSW/UI/UI/UI/Controls/Edit.ts","../../../TescoSW/UI/UI/UI/Controls/PasswordEdit.ts","../../../TescoSW/UI/UI/UI/DataBuilders/PasswordDialogBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/RecordsInfoDialogBuilder.ts","../../../TescoSW/UI/UI/UI/FormBuilders/IFormBuilder.ts","../../../TescoSW/UI/UI/UI/Helpers/IOpenedFormsHistoryManager.ts","../../../TescoSW/UI/UI/UI/XGControls/ModalWindowInterfaces.ts","../../../TescoSW/UI/UI/UI/XGControls/ModalWindow.ts","../../../TescoSW/UI/UI/UI/FormManager/IFormGroup.ts","../../../TescoSW/UI/UI/DefaultInterface/FormGroupContainer.ts","../../../TescoSW/UI/UI/UI/IBreadcrumbNav.ts","../../../TescoSW/UI/UI/UI/BreadcrumbNavItem.ts","../../../TescoSW/UI/UI.ElementarControls/SplitPanel.ts","../../../TescoSW/UI/UI/UI/AlignPanelWidthCounter.ts","../../../TescoSW/UI/UI/UI/Controls/Registrator.ts","../../../TescoSW/UI/UI/UI/FormSizeComparer.ts","../../../TescoSW/UI/UI/UI/IFormUIFactory.ts","../../../TescoSW/UI/UI.React/forms/reducer.ts","../../../TescoSW/UI/UI.React/forms/actions.ts","../../../TescoSW/UI/UI.React/forms/selector.ts","../../../TescoSW/UI/UI.React/forms/index.ts","../../../TescoSW/UI/UI.React/core/auth/constants.ts","../../../TescoSW/UI/UI.React/core/auth/reducer.ts","../../../TescoSW/UI/UI.React/core/auth/saga.ts","../../../TescoSW/UI/UI.React/core/auth/selectors.ts","../../../TescoSW/UI/UI.React/core/auth/index.ts","../../../TescoSW/UI/UI.React/core/constants.ts","../../../TescoSW/UI/UI.React/core/index.ts","../../../TescoSW/UI/UI.React/menu/search/reducer.ts","../../../TescoSW/UI/UI.React/menu/context.ts","../../../TescoSW/UI/UI.React/menu/logger.ts","../../../TescoSW/UI/UI.React/menu/utils.ts","../../../TescoSW/UI/UI.React/menu/openedItems/reducer.ts","../../../TescoSW/UI/UI.React/menu/panelItems.ts","../../../TescoSW/UI/UI.React/menu/selectors.ts","../../../TescoSW/UI/UI.React/menu/openedItems/actions.ts","../../../TescoSW/UI/UI.React/menu/openedItems/selectors.ts","../../../TescoSW/UI/UI.React/menu/openedItems/saga.ts","../../../TescoSW/UI/UI.React/menu/openedItems/index.ts","../../../TescoSW/UI/UI.React/menu/search/actions.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/constants.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/reducer.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/selectors.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/saga.ts","../../../TescoSW/UI/UI.React/menu/favoriteItems/index.ts","../../../TescoSW/UI/UI.React/menu/historyItems/selectors.ts","../../../TescoSW/UI/UI.React/menu/historyItems/index.ts","../../../TescoSW/UI/UI.React/menu/search/utils.ts","../../../TescoSW/UI/UI.React/menu/search/selectors.ts","../../../TescoSW/UI/UI.React/menu/search/saga.ts","../../../TescoSW/UI/UI.React/menu/search/index.ts","../../../TescoSW/UI/UI.React/menu/navigation/utils.ts","../../../TescoSW/UI/UI.React/menu/navigation/reducer.ts","../../../TescoSW/UI/UI.React/menu/navigation/actions.ts","../../../TescoSW/UI/UI.React/menu/navigation/menuNavigationConstants.ts","../../../TescoSW/UI/UI.React/menu/navigation/menuNavigationUtils.ts","../../../TescoSW/UI/UI.React/menu/navigation/selectors.ts","../../../TescoSW/UI/UI.React/menu/navigation/saga.ts","../../../TescoSW/UI/UI.React/menu/navigation/index.ts","../../../TescoSW/UI/UI.React/menu/actions.ts","../../../TescoSW/UI/UI.React/menu/components/FloatMenuPanel/FloatMenuPanel.tsx","../../../TescoSW/UI/UI.React/menu/components/FloatMenuPanel/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormMenuComponent/FormMenuComponentProps.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanelComponent/MenuPanelComponentProps.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationListComponent/NotificationListComponentProps.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuComponent/QuickAccessMenuComponentProps.ts","../../../TescoSW/UI/UI.React/menu/components/SubmenuListComponent/SubmenuListComponentProps.ts","../../../TescoSW/UI/UI.React/menu/components/UserMenuComponent/UserMenuComponentProps.ts","../../../TescoSW/UI/UI.React/menu/components/ActionItemComponent/ActionItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/ActionItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/ActionMenu/ActionMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/ActionMenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/FavoriteActionItem/FavoriteActionItem.tsx","../../../TescoSW/UI/UI.React/menu/components/FavoriteActionItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenActionItem/OpenActionItem.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenActionItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenInTabActionItem/OpenInTabActionItem.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenInTabActionItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormItemRightPartComponent/FormItemRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormItemRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuItemComponent/types.ts","../../../TescoSW/UI/UI.React/menu/components/MenuItemComponent/MenuItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/SubmenuRightPartComponent/SubmenuRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/SubmenuRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuItem/MenuItem.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/ProfileRightPartComponent/ProfileRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/ProfileRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/ProfileItem/ProfileItem.tsx","../../../TescoSW/UI/UI.React/menu/components/ProfileItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormItemComponent/FormItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormItem/FormItem.tsx","../../../TescoSW/UI/UI.React/menu/components/FormItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuScrollLayoutComponent/utils.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuScrollLayoutComponent/MenuScrollLayoutComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuScrollLayoutComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuScrollLayout/MenuScrollLayout.ts","../../../TescoSW/UI/UI.React/menu/components/MenuScrollLayout/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuComponent/MenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuTitle/MenuTitle.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuTitle/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuVirtualizedList/MenuVirtualizedList.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuVirtualizedList/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormMenuComponent/FormMenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormMenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanelItemComponent/MenuPanelItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuPanelItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanelItem/utils.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanelItem/MenuPanelItem.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuPanelItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormPanelComponent/FormPanelComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormPanelComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormPanel/FormPanel.tsx","../../../TescoSW/UI/UI.React/menu/components/FormPanel/index.ts","../../../TescoSW/UI/UI.React/menu/components/LogoComponent/LogoComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/LogoComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/Logo/Logo.tsx","../../../TescoSW/UI/UI.React/menu/components/Logo/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuExpandButton/MenuExpandButton.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuExpandButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationPanelComponent/NotificationPanelComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationPanelComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationPanel/NotificationPanel.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationPanel/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanelComponent/MenuPanelComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuPanelComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/LoadingMenuItemComponent/LoadingMenuItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/LoadingMenuItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/LoadingMenuItem/LoadingMenuItem.ts","../../../TescoSW/UI/UI.React/menu/components/LoadingMenuItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/NoNotificationItemsComponent/NoNotificationItemsComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/NoNotificationItemsComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/NoNotificationItems/NoNotificationItems.ts","../../../TescoSW/UI/UI.React/menu/components/NoNotificationItems/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationItemComponent/constants.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationItemComponent/utils.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationItemComponent/NotificationItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationItem/NotificationItem.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/SetAllNotificationAsReadButton/SetAllNotificationAsReadButton.tsx","../../../TescoSW/UI/UI.React/menu/components/SetAllNotificationAsReadButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/ShowAllNotificationsButton/ShowAllNotificationsButton.tsx","../../../TescoSW/UI/UI.React/menu/components/ShowAllNotificationsButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationListComponent/NotificationListComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationListComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/GroupHeaderComponent/GroupHeaderComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/GroupHeaderComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/GroupHeader/GroupHeader.tsx","../../../TescoSW/UI/UI.React/menu/components/GroupHeader/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessFavoriteItemsComponent/QuickAccessFavoriteItemsComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessFavoriteItemsComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessFavoriteItems/QuickAccessFavoriteItems.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessFavoriteItems/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessGroupHeaderLayout/QuickAccessGroupHeaderLayout.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessGroupHeaderLayout/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessHistoryItemsComponent/QuickAccessHistoryItemsComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessHistoryItemsComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessHistoryItems/QuickAccessHistoryItems.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessHistoryItems/index.ts","../../../TescoSW/UI/UI.React/menu/components/CloseActionItem/CloseActionItem.tsx","../../../TescoSW/UI/UI.React/menu/components/CloseActionItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedFormRightPartComponent/OpenedFormRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedFormRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedForm/OpenedForm.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedForm/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedFormItemRightPartComponent/OpenedFormItemRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedFormItemRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedFormItem/OpenedFormItem.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedFormItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedProfileRightPartComponent/OpenedProfileRightPartComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedProfileRightPartComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedProfile/OpenedProfile.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedProfile/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedItemComponent/OpenedItemComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedItemComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/OpenedItem/OpenedItem.tsx","../../../TescoSW/UI/UI.React/menu/components/OpenedItem/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessOpenedItemsComponent/QuickAccessOpenedItemsComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessOpenedItemsComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessOpenedItems/QuickAccessOpenedItems.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessOpenedItems/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessContent/QuickAccessContent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessContent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormSearchInputComponent/FormSearchInputComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormSearchInputComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormSearchInput/FormSearchInput.tsx","../../../TescoSW/UI/UI.React/menu/components/FormSearchInput/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuHeaderComponent/QuickAccessMenuHeaderComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuHeaderComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuHeader/QuickAccessMenuHeader.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuHeader/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessSearchResultsComponent/QuickAccessSearchResultsComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessSearchResultsComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessSearchResults/QuickAccessSearchResults.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessSearchResults/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuComponent/QuickAccessMenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormListComponent/FormListComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/FormListComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/FormList/FormList.tsx","../../../TescoSW/UI/UI.React/menu/components/FormList/index.ts","../../../TescoSW/UI/UI.React/menu/components/SubmenuComponent/SubmenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/SubmenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/Submenu/Submenu.tsx","../../../TescoSW/UI/UI.React/menu/components/Submenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/SubmenuListComponent/SubmenuListComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/SubmenuListComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/LogoutButton/LogoutButton.tsx","../../../TescoSW/UI/UI.React/menu/components/LogoutButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/ToggleThemeButton/ToggleThemeButton.tsx","../../../TescoSW/UI/UI.React/menu/components/ToggleThemeButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/UserMenuComponent/UserMenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/UserMenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/customization/replaceableComponentNames.ts","../../../TescoSW/UI/UI.React/menu/customization/registrator.ts","../../../TescoSW/UI/UI.React/menu/customization/index.ts","../../../TescoSW/UI/UI.React/menu/customization/internalIndex.ts","../../../TescoSW/UI/UI.React/menu/components/FormMenu/FormMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/FormMenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationList/NotificationList.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationList/index.ts","../../../TescoSW/UI/UI.React/menu/components/NotificationMenu/NotificationMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/NotificationMenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenu/QuickAccessMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/QuickAccessMenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/UserMenu/UserMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/UserMenu/index.ts","../../../TescoSW/UI/UI.React/menu/components/Menu/selectors.ts","../../../TescoSW/UI/UI.React/menu/components/Menu/Menu.tsx","../../../TescoSW/UI/UI.React/menu/components/Menu/index.ts","../../../TescoSW/UI/UI.React/menu/components/MenuPanel/MenuPanel.tsx","../../../TescoSW/UI/UI.React/menu/components/MenuPanel/index.ts","../../../TescoSW/UI/UI.React/menu/components/SubmenuList/SubmenuList.tsx","../../../TescoSW/UI/UI.React/menu/components/SubmenuList/index.ts","../../../TescoSW/UI/UI.React/menu/components/MainMenuComponent/MainMenuComponent.tsx","../../../TescoSW/UI/UI.React/menu/components/MainMenuComponent/index.ts","../../../TescoSW/UI/UI.React/menu/components/MainMenu/MainMenu.tsx","../../../TescoSW/UI/UI.React/menu/components/MainMenu/index.ts","../../../TescoSW/UI/UI.React/menu/reducer.ts","../../../TescoSW/UI/UI.React/menu/customActions/constants.ts","../../../TescoSW/UI/UI.React/menu/customActions/utils.ts","../../../TescoSW/UI/UI.React/menu/customActions/saga.ts","../../../TescoSW/UI/UI.React/menu/customActions/index.ts","../../../TescoSW/UI/UI.React/menu/saga.ts","../../../TescoSW/UI/UI.React/menu/index.ts","../../../TescoSW/UI/UI.React/rights/actions.ts","../../../TescoSW/UI/UI.React/rights/reducer.ts","../../../TescoSW/UI/UI.React/rights/selectors.ts","../../../TescoSW/UI/UI.React/rights/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/reducer.ts","../../../TescoSW/UI/UI.React/workflowEditor/actions.ts","../../../TescoSW/UI/UI.React/workflowEditor/selectors.ts","../../../TescoSW/UI/UI.React/workflowEditor/saga.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/oldSilverlightFunctions.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/WorkflowToXml.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/XmlToWfStatus.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/XmlToWorkflow.ts","../../../TescoSW/UI/UI.React/workflowEditor/workflowParser/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/ActivityTransitionsList.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/AddableListFrameItem.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/AutoTextArea.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/BasicDialogItem.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/Edit.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/EditableItem.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/Memo.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/PropagationStopper.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/SideListFrameItem.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/SideListFrame.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/TextLOVEditComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/TextLOVEdit.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/WfCheckBox.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/WfOption.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/WfSelect.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/components/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/EditDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/creatorMethodsUtils.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/constants.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/types.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/CallMethodPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/CallScriptPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/IncrementValuePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/OpenFormPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SendMailPageComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SendMailPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SendSmsPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SendWfMessagePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SetAttributePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SetObjectAttributePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/SetValuePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/actionsPages/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/DefinitionParticipantsEditPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/SetEditPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/triggersPages/AttributeDataChangePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/triggersPages/MenuPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/triggersPages/NewObjectPage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/triggersPages/WfMessagePage.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/triggersPages/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/pages/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/utils.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/ActionsTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/ActivityPropertiesTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/types.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/searchResultsModal/SearchResultsModal.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/searchResultsModal/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/toolbarSection/enums.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/toolbarSection/ToolbarSection.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/toolbarSection/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/components/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/DefinitionParticipantsEditDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/participantsProvider/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/participantsProvider/ParticipantsProviderComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/participantsProvider/ParticipantsProvider.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/participantsProvider/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/ParticipantsTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/TransitionPropertiesTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/TransitionsFromToTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/TriggersTab.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/tabs/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/ActivityEditDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/SetEditDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/TransitionEditDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/editDialogs/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/Activity.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/Set.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/Line.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/Point.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/TransitionComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/Transition.tsx","../../../TescoSW/UI/UI.React/workflowEditor/picassoComponents/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/WorkflowPicassoComponentsProvider.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/LegendItemComponent/LegendItemComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/LegendItem/LegendItem.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/LegendItem/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/ManageButton.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/PropertyRowComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/PropertyRow.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/ActionsContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/ActiveParticipantsContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/ActivityPropertiesContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/LegendContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/ParticipantsContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/PertienceToSetsContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/SetPropertiesContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/TransitionActionsContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/TransitionPropertiesContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/TriggersContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/VariablesContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/containers/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/ActivityPropertyPanel.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/GeneralPropertyPanel.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/TransitionPropertyPanel.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/PropertyPanel.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/PropertyPanelContainer.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/BasicDialogComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/BasicDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/DuplicateActivityDialogComponent/DuplicateActivityDialogComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/DuplicateActivityDialogComponent/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/DuplicateActivityDialog/DuplicateActivityDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/DuplicateActivityDialog/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/ExistingActivitiesDialogComponent/ExistingActivitiesDialogComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/ExistingActivitiesDialogComponent/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/ExistingActivitiesDialog/ExistingActivitiesDialog.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/basicDialogs/ExistingActivitiesDialog/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/AddActivityDropdownSelect.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/utils.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/sections/ActivitySearchSection.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/sections/ObjectHandlingSection.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/sections/PaintingHandlingSection.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/sections/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/SetSettingsDropdownSelectComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/SetSettingsDropdownSelect.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/ToolbarPanelComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/ToolbarPanel.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/toolbarPanel/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/WfMessageWindowHandler.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/WorkflowEditorComponent.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/WorkflowEditor.tsx","../../../TescoSW/UI/UI.React/workflowEditor/components/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/index.ts","../../../TescoSW/UI/UI.React/setup/reducer.ts","../../../TescoSW/UI/UI.React/setup/saga.ts","../../../TescoSW/UI/UI.React/setup/store.ts","../../../TescoSW/UI/UI.React/setup/StoreManager.ts","../../../TescoSW/UI/UI.React/setup/errorHandling.tsx","../../../TescoSW/UI/UI.React/setup/initialization.ts","../../../TescoSW/UI/UI.React/setup/index.ts","../../../TescoSW/Global/Dom/UIUtils.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownPromptItem.ts","../../../TescoSW/UI/UI/UI/DataBuilders/FilterValidationMessageBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuItemWithButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterPanel.ts","../../../TescoSW/UI/UI/UI/DataBuilders/FormProfileDetailBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/FormProfileItemBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuFormProfileItem.ts","../../../TescoSW/UI/UI/UI/IFrameColumnInfo.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/IFormProfileInfo.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/FormProfileBasicItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/FormProfileItem.ts","../../../TescoSW/UI/UI/UI/DataBuilders/FormProfileBuilder.ts","../../../TescoSW/OW.Remoting/Remoting/Cache/IAppCache.ts","../../../TescoSW/OW.Remoting/Remoting/AppMemCache.ts","../../../TescoSW/UI/UI/UI/Helpers/SystemOperationRights.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/IFormProfileManager.ts","../../../TescoSW/UI/UI/UI/XGControls/Forms/FormProfileManager.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/IDetailMasterableFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/BaseForm.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/IEditableFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ITreeFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ITreeViewFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ITwoListFrame.ts","../../../TescoSW/UI/UI.ReactControlConnectors/AggregationRowConnector/AggregationRowConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/AggregationRowConnector/index.ts","../../../TescoSW/UI/UI.Controls/DataGridInterfaces.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CompactTableCell.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CompactDataRow.ts","../../../TescoSW/UI/UI.Controls/BaseTreeViewGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/GroupingTreeHeaderRow.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWDateTime.ts","../../../TescoSW/UI/UI.Controls/DataSource/TreeViewDataSource.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/TreeViewDataRow.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/GroupingTreeViewDataRow.ts","../../../TescoSW/Global/Base/Security/AESStreamCryptors.ts","../../../TescoSW/Global/Base/Crypto/ICryptographicInfo.ts","../../../TescoSW/UI/UI.React/components/CryptoInfoButton/CryptoInfoButton.tsx","../../../TescoSW/UI/UI.React/components/CryptoInfoButton/index.ts","../../../TescoSW/UI/UI.React/components/FileLink/FileLink.tsx","../../../TescoSW/UI/UI.React/components/FileLink/index.ts","../../../TescoSW/Cryptography/Crypto/Messages/MessagesInterface.ts","../../../TescoSW/Global/Base/Crypto/ISignatureProvider.ts","../../../TescoSW/Global/Base/Security/HashType.ts","../../../TescoSW/Global/Base/Streams/IStreamReader.ts","../../../TescoSW/Global/Base/Streams/IFileStreamReader.ts","../../../TescoSW/Global/Base/Streams/FileStreamReader.ts","../../../TescoSW/Global/Base/Utils/FileUtils.ts","../../../TescoSW/OW.Remoting/Remoting/FileUploader.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuItemWithDetail.ts","../../../TescoSW/UI/UI/UI/Helpers/CryptoInfoTypes.ts","../../../TescoSW/UI/UI/UI/Helpers/CryptoInfo.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Cells/InlineBtnWithLoaderBuilder.ts","../../../TescoSW/UI/UI.Controls/SimpleFileEditElement.ts","../../../TescoSW/UI/UI.Controls/FileEditElement.ts","../../../TescoSW/UI/UI/DefaultInterface/IUserActionLogger.ts","../../../TescoSW/UI/UI/DefaultInterface/UserActionLogger.ts","../../../TescoSW/Cryptography/Crypto/Messages/CommandType.ts","../../../TescoSW/Cryptography/Crypto/Messages/TransferEncoding.ts","../../../TescoSW/Cryptography/Crypto/SignatureStreamSettings.ts","../../../TescoSW/Cryptography/Crypto/CryptoInterfaces.ts","../../../TescoSW/Cryptography/Crypto/NativeAppStreamReader.ts","../../../TescoSW/Cryptography/Crypto/SignatureManager.ts","../../../TescoSW/Global/Base/Security/EncryptedStreamReaderDecorator.ts","../../../TescoSW/Global/Base/Security/EncryptedFileStreamReaderDecorator.ts","../../../TescoSW/Global/Base/Security/Hash/IHashingAlgorithm.ts","../../../TescoSW/Global/Base/Security/Hash/Sha512Algorithm.ts","../../../TescoSW/Global/Base/Security/HashingStreamReader.ts","../../../TescoSW/Global/Base/Security/HashingFileStreamReader.ts","../../../TescoSW/UI/UI/UI/DataBuilders/BlockingLayerBuilderDecorator.ts","../../../TescoSW/UI/UI/UI/DataBuilders/CopyUrlBuilder.ts","../../../TescoSW/UI/UI/UI/DataBuilders/SignLayerBuilder.ts","../../../TescoSW/UI/UI/UI/DownloadManager.ts","../../../TescoSW/UI/UI/UI/UploadManager.ts","../../../TescoSW/UI/UI/UI/Helpers/FileEditCore.ts","../../../TescoSW/UI/UI/UI/Controls/ControlInterfacesStrict.ts","../../../TescoSW/UI/UI/UI/Controls/CultureDependentEditableControl.ts","../../../TescoSW/UI/UI/UI/Controls/HasFrameContextMixin.ts","../../../TescoSW/UI/UI/UI/Controls/FileEdit.tsx","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/FileEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/CryptoLabelAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Cells/FileCellElement.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/FileTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/FileColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/GroupingTemplate.ts","../../../TescoSW/UI/UI.Controls/GroupingTreeViewGrid.ts","../../../TescoSW/UI/UI/Rights/RightGroups.ts","../../../TescoSW/OW.Remoting/Remoting/RowPermissions.ts","../../../TescoSW/UI/UI/UI/AutoRefresher.ts","../../../TescoSW/UI/UI/UI/Controls/LOVEditMaster.ts","../../../TescoSW/UI/UI.ReactControlConnectors/WorkflowEditorConnector.tsx","../../../TescoSW/UI/UI/UI/XGControls/Frames/MasterableFormControl.ts","../../../TescoSW/UI/UI/UI/Controls/WorkflowEditor.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/StandardAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuFilterItem.ts","../../../TescoSW/UI/UI/UI/XGControls/IExtendedLifeCycle.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ActionSharedMethods.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ReportAction.ts","../../../TescoSW/UI/UI/Rights/FirmlyDisabledRights.ts","../../../TescoSW/UI/UI/UI/Controls/TextLOVEdit.ts","../../../TescoSW/UI/UI/DefaultInterface/IKeyboardModifiersWatcher.ts","../../../TescoSW/UI/UI/LogicalTree/ControlWrapper.ts","../../../TescoSW/UI/UI.React/components/IconEditComponent/IconEditComponent.tsx","../../../TescoSW/UI/UI.React/components/IconEditComponent/index.ts","../../../TescoSW/UI/UI.React/components/IconEdit/actions.ts","../../../TescoSW/UI/UI.React/components/IconEdit/IconEditConnected.tsx","../../../TescoSW/UI/UI.React/components/IconEdit/IconEdit.tsx","../../../TescoSW/UI/UI.React/components/IconEdit/index.ts","../../../TescoSW/UI/UI.React/components/IconEdit/types.ts","../../../TescoSW/UI/UI.React/components/IconEdit/saga.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GenericControlConnector/GenericControlConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GenericControlConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/utils.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ControlConnector/ControlConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/ControlConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ControlConnectorWithActualObject/ControlConnectorWithActualObject.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/ControlConnectorWithActualObject/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/EditableControlConnector/RawAndDisplayedValue.ts","../../../TescoSW/UI/UI.ReactControlConnectors/EditableControlConnector/EditableControlConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/EditableControlConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/IconEditConnector/IconEditConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/IconEditConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/LinkButtonConnector/LinkButtonConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/LinkButtonConnector/index.ts","../../../TescoSW/UI/UI/UI/DataBuilders/DownloadSelectBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/BatchDownloadAction.ts","../../../TescoSW/Cryptography/Crypto.OW/ISignatureReferenceUriGenerator.ts","../../../TescoSW/Cryptography/Crypto.OW/RemotingObjectReferenceUriGenerator.ts","../../../TescoSW/Cryptography/Crypto.OW/ObjectSignatureStream.ts","../../../TescoSW/Cryptography/Crypto/Messages/IDecryptKeys.ts","../../../TescoSW/Cryptography/Crypto/Providers/IEncryptionProviderSettings.ts","../../../TescoSW/Cryptography/Crypto/Providers/EncryptionProviderManager.ts","../../../TescoSW/Global/Base/Crypto/IEncryptedObject.ts","../../../TescoSW/Global/Base/Crypto/ISignatureDataDTO.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IEncryptionObjectList.ts","../../../TescoSW/UI/UI/UI/DataBuilders/UserCertificateSelectorBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/CryptoAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/Button.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/XGButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/CryptoButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/CryptoLabel.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/FormButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/MultiObjectButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/MethodButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/MultiObjectAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ParametricFormAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ParametricFormButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ShowInsertAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/StandardRecordAction.ts","../../../TescoSW/Global/Base/Mixins/StoreOriginalPrototypeMixin.ts","../../../TescoSW/UI/UI/Rights/RightsEvaluationOverridesBase.ts","../../../TescoSW/UI/UI/Rights/RightsEvaluationOverrides.ts","../../../TescoSW/UI/UI.ReactControlConnectors/WFDialogConnector/WFDialogConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/WFDialogConnector/index.ts","../../../TescoSW/UI/UI/UI/XGControls/WindowedDetailFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/WFActionBase.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/WFAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/WFMultiAction.ts","../../../TescoSW/UI/UI/UI/Controls/ControlEnums.ts","../../../TescoSW/UI/UI/UI/Helpers/Margin.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/BaseAlignElement.ts","../../../TescoSW/UI/UI/UI/constants.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/AlignPanelValidation.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/ControlElement.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/AlignDockHelperContainer.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/AlignDockHelperSelfContainer.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanel.ts","../../../TescoSW/UI/UI/UI/Controls/ControlWithBackground.ts","../../../TescoSW/UI/UI/UI/XGControls/DataEventLabel.ts","../../../TescoSW/UI/UI/UI/XGControls/DetailFrameRightsOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/InstanceCollection.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/MasterableFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/MethodAction.ts","../../../TescoSW/UI/UI/UI/XGControls/TabPages.ts","../../../TescoSW/UI/UI/UI/XGControls/DetailFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/SeparateDetailFrameOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/SeparateDetailFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/StandardTwoStateAction.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/IBaseFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/BaseFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/GenericListFrame.ts","../../../TescoSW/UI/UI/UI/DataBuilders/ColumnInfoBuilder.ts","../../../TescoSW/UI/UI/UI/Controls/GenericPage.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuComboItem.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/ToolbarDropdownButton.ts","../../../TescoSW/UI/UI/UI/Toolbar/ToolbarGroup.ts","../../../TescoSW/UI/UI/UI/Controls/GenericControlCollection.ts","../../../TescoSW/UI/UI/UI/Toolbar/ToolbarGroups.ts","../../../TescoSW/UI/UI/UI/Toolbar/ToolbarPage.ts","../../../TescoSW/UI/UI/UI/FormUI/FormUIShared.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ListFrameRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ListFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/WidgetForm.ts","../../../TescoSW/UI/UI/UI/XGControls/WidgetPanel.ts","../../../TescoSW/UI/UI/UI/XGControls/Form.ts","../../../TescoSW/UI/UI/UI/FormManager/FormGroup.ts","../../../TescoSW/UI/UI/UI/FormManager/Homepage.ts","../../../TescoSW/UI/UI/UI/FormManager/IFormManager.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/BooleanEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/BooleanColumn.ts","../../../TescoSW/UI/UI/UI/Controls/ComboBox.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/EnumEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/EnumColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/ReactComponentTemplate.ts","../../../TescoSW/UI/UI/UI/Controls/LinkEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/LinkEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/LinkColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/NumItemTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/DefaultEditContainerTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/NumEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/NumColumn.ts","../../../TescoSW/UI/UI/UI/XGControls/Controls/TextLOVEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/TextLOVEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/TextLOVColumn.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/FrameSharedMethods.ts","../../../TescoSW/UI/UI/UI/Controls/LOVEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Controls/LOVEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Templates/LOVEditTemplate.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/LOVColumn.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterManager.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/IFilterManager.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterInterfaces.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/FilterShared.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/FilterDateEdit.ts","../../../TescoSW/UI/UI.BaseControls/DateTimeEdit.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/DateTimeColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/DateColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/EnumColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeEditTemplates/FileEditTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/FileTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/FileColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/HTMLTextColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/NumberColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/TimeSpanColumn.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/ColumnFactory.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/Column.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/DataGridMessages/EmptyDatagridMessage.ts","../../../TescoSW/UI/UI.Controls/DataGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CompactHeaderRow.ts","../../../TescoSW/UI/UI.Controls/CompactDatagrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/IDataRow.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/FrameInterfaces.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames.ts","../../../TescoSW/UI/UI/UI/Controls/FormParameters.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/DetailFormAction.ts","../../../TescoSW/UI/UI/UI/XGControls/IForm.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/types.ts","../../../TescoSW/Global/Base/DataTypes/Stack.ts","../../../TescoSW/Global/Base/DataTypes/TransparentStack.ts","../../../TescoSW/Global/Base/OutputParameter.ts","../../../TescoSW/Global/Base/Rights/IRightsEvaluationScheduler.ts","../../../TescoSW/UI/UI/LogicalTree/ILogicalContainer.ts","../../../TescoSW/UI/UI/Rights/RightsManager.ts","../../../TescoSW/UI/UI/Rights/Definitions.ts","../../../TescoSW/UI/UI/LogicalTree/ContainerControlWrapper.ts","../../../TescoSW/UI/UI/LogicalTree/ComponentTree.ts","../../../TescoSW/UI/UI/LogicalTree/Definitions.ts","../../../TescoSW/UI/UI/UI/XGControls/IFrame.ts","../../../TescoSW/UI/UI.Controls/Actions/IAction.ts","../../../TescoSW/UI/CommonUIInterfaces.ts","../../../TescoSW/UI/UI/UI/Controls/ControlInterfaces.ts","../../../TescoSW/UI/UI/Utilities/DefferredWindow.ts","../../../TescoSW/UI/UI/Utilities/SharedUIMethods.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MEChangeStack.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MEDataSource.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MEChangeGroup.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MEConditionGroup.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/MERecordsGroup.ts","../../../TescoSW/UI/UI.Controls/DataSource/MultiEdit/index.ts","../../../TescoSW/Global/Base/Crypto/IEncryptionSettings.ts","../../../TescoSW/Global/Base/VersionInfo.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/userSettings/UserSettingsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/utils/index.ts","../../../TescoSW/OW.Remoting/Remoting/OWManager.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/culture/CultureClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/culture/LegacyUpTo1503CultureClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/culture/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/dataEvents/DataEventsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/dataEvents/index.ts","../../../TescoSW/Global/Base/Comunication/UrlQueryBuilder.ts","../../../TescoSW/Global/Base/Comunication/UrlQueryOrHeaderBuilder.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/dataReader/DataReaderClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/dataReader/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/documents/DocumentClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/documents/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/exportImport/exportImportClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/exportImport/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/localization/LocalizationClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/localization/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/menu/LegacyUpTo1501MenuClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/menu/MenuClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/menu/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/modelDescriptions/ModelDescriptionsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/modelDescriptions/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/notifications/constants.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/notifications/NotificationClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/notifications/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/tasks/TaskClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/tasks/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/user/UserClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/user/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/userSettings/LegacyUpTo2002UserSettingsClient.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/userSettings/index.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/defaultRegistrator.ts","../../../TescoSW/OW.Remoting/Remoting/Clients/impl/index.ts","../../../TescoSW/App/bootstrapServiceWorker.ts","../../../TescoSW/OW.Remoting/Remoting/IUserSettingsManager.ts","../../../TescoSW/App/IAppAddresses.ts","../../../TescoSW/App/IAppContext.ts","../../../TescoSW/App/bootstrapApp.ts","../../../TescoSW/App/index.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/LocalizedText.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWVariant.ts","../../../TescoSW/OW.Remoting/Remoting/Serializers.ts","../../../TescoSW/OW.Remoting/Remoting/OWDescriptions.ts","../../../TescoSW/OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager.ts","../../../TescoSW/contracts/notifications.ts","../../../TescoSW/OW.Remoting/Remoting/Notifications/INotificationManager.ts","../../../TescoSW/OW.Remoting/Remoting/Auth/IAuthManager.ts","../../../TescoSW/UI/UI/UI/DataBuilders/FormContentBuilder.ts","../../../TescoSW/UI/UI/UI/FormBuilders/ISettingWindowFormBuilder.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationControlMethods.ts","../../../TescoSW/UI/UI/UI/Helpers/OpenedFormsHistoryManager.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/prod/oldAppImports.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/prod/Bridge.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/prod/saga.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/prod/index.ts","../../../TescoSW/UI/UI.React/utils/validate.ts","../../../TescoSW/UI/UI.React/utils/array.ts","../../../TescoSW/UI/UI.React/utils/checkKey.ts","../../../TescoSW/UI/UI.React/utils/combineRefs.ts","../../../TescoSW/UI/UI.React/utils/convert.ts","../../../TescoSW/UI/UI.React/utils/debounce.ts","../../../TescoSW/UI/UI.React/utils/element.ts","../../../TescoSW/UI/UI.React/utils/event.ts","../../../TescoSW/UI/UI.React/utils/file.ts","../../../TescoSW/UI/UI.React/utils/focusWithin.ts","../../../TescoSW/UI/UI.React/utils/keyGenerator.ts","../../../TescoSW/UI/UI.React/utils/math.ts","../../../TescoSW/UI/UI.React/utils/object.ts","../../../TescoSW/UI/UI.React/utils/parse.ts","../../../TescoSW/UI/UI.React/utils/qa.ts","../../../TescoSW/UI/UI.React/utils/redux.ts","../../../TescoSW/UI/UI.React/utils/saga.ts","../../../TescoSW/UI/UI.React/utils/string.ts","../../../TescoSW/UI/UI.React/utils/styles.ts","../../../TescoSW/UI/UI.React/utils/index.ts","../../../TescoSW/UI/UI.React/core/datasource/constants.ts","../../../TescoSW/UI/UI.React/core/datasource/types.ts","../../../TescoSW/UI/UI.React/core/types.ts","../../../TescoSW/UI/UI.React/types/react/index.ts","../../../TescoSW/UI/UI/UI/UIManagerInterfaces.ts","../../../TescoSW/Global/Base/DataSources/Interfaces.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IOWObjectList.ts","../../../TescoSW/OW.Remoting/Remoting/OWManagerInterfaces.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/IOWObject.ts","../../../TescoSW/Global/Base/FormatProviderRegistrator/Types.ts","../../../TescoSW/UI/UI.React/types/multiweb/index.ts","../../../TescoSW/contracts/menu.ts","../../../TescoSW/contracts/methods.ts","../../../TescoSW/contracts/OWDataType.ts","../../../TescoSW/contracts/modelDescriptions.ts","../../../TescoSW/contracts/tasks.ts","../../../TescoSW/contracts/user.ts","../../../TescoSW/contracts/userSettings.ts","../../../TescoSW/contracts/index.ts","../../../TescoSW/App/ApplicationInfo.ts","../../../TescoSW/App/AppContext.ts","../../../TescoSW/Cryptography/Crypto/ReadableStream.ts","../../../TescoSW/Cryptography/Crypto/Messages/ResultType.ts","../../../TescoSW/Cryptography/Crypto/SigningExtensionCommunicator.ts","../../../TescoSW/Cryptography/Crypto/WritableStream.ts","../../../TescoSW/Cryptography/Crypto/SigningSession.ts","../../../TescoSW/Cryptography/Crypto/Streams/StringSignatureStream.ts","../../../TescoSW/Cryptography/Crypto.OW/RemotingDocumentReferenceUriGenerator.ts","../../../TescoSW/Cryptography/Crypto.OW/DMSDocumentSignatureStream.ts","../../../TescoSW/Cryptography/Crypto.OW/EncryptedDocumentSignatureStream.ts","../../../TescoSW/Cryptography/Crypto.OW/LocalDocumentSignatureStream.ts","../../../TescoSW/Global/Base/NameOf.ts","../../../TescoSW/Global/Base/PublicProxyHandler.ts","../../../TescoSW/Global/Base/ReferenceParameter.ts","../../../TescoSW/Global/Base/Crypto/ISignatureData.ts","../../../TescoSW/Global/Base/DataTypes/IUserProfileInterfaces.ts","../../../TescoSW/Global/Base/NumeralDataFormat/NumeralDataFormat.ts","../../../TescoSW/Global/Base/Polyfill/ResizeObserver.ts","../../../TescoSW/Global/Base/Promises/AsyncIteratorUtils.ts","../../../TescoSW/Global/Base/Promises/SyncPromise.ts","../../../TescoSW/Global/Base/Rights/CancelRunningRightsEvaluationScheduler.ts","../../../TescoSW/Global/Base/Rights/ParallelRightsEvaluationScheduler.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/RightsParams.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/BaseRightsEvaluator.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/MultiObjectRightsEvaluator.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/SingleObjectRightsEvaluator.ts","../../../TescoSW/Global/Base/Rights/RightsEvaluator/RightsEvaluatorFactory.ts","../../../TescoSW/Global/Dom/Media/AudioSample.ts","../../../TescoSW/IndexedDB/Promises/IndexedDBPromise.ts","../../../TescoSW/Logging/defaultRegistrator.ts","../../../TescoSW/OW.Remoting/Remoting/Cache/ClassDescriptionCache/IAttributeDescription.ts","../../../TescoSW/OW.Remoting/Basic/IIndexedDbManager.ts","../../../TescoSW/OW.Remoting/Basic/IndexedDbManager.ts","../../../TescoSW/OW.Remoting/Basic/AttributeDescriptionDbManager.ts","../../../TescoSW/OW.Remoting/Remoting/Cache/ClassDescriptionCache/IClassDescriptionCache.ts","../../../TescoSW/OW.Remoting/Basic/ClassDescriptionDbManager.ts","../../../TescoSW/OW.Remoting/Basic/IndexedDbView.ts","../../../TescoSW/OW.Remoting/Localizations/ILocalizationManager.ts","../../../TescoSW/OW.Remoting/Localizations/ILocalizationStorage.ts","../../../TescoSW/OW.Remoting/Localizations/constants.ts","../../../TescoSW/OW.Remoting/Localizations/LocalizationManager.ts","../../../TescoSW/OW.Remoting/Localizations/LocalizationManagerThrottled.ts","../../../TescoSW/OW.Remoting/Localizations/LocalizationStorage.ts","../../../TescoSW/OW.Remoting/Remoting/DataEventsManager.ts","../../../TescoSW/OW.Remoting/Remoting/UserProfileManager.ts","../../../TescoSW/OW.Remoting/Remoting/UserSettingsManager.ts","../../../TescoSW/OW.Remoting/Remoting/WorkflowManager.ts","../../../TescoSW/OW.Remoting/Remoting/Auth/StandardAuthManager.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/BigIntOps.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWDecimal.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWInt64.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWObjectProxyHandler.ts","../../../TescoSW/OW.Remoting/Remoting/DataTypes/OWUint64.ts","../../../TescoSW/OW.Remoting/Remoting/Notifications/NotificationManager.ts","../../../TescoSW/OW.Remoting/Remoting/Notifications/index.ts","../../../TescoSW/UI/UI/DIIdentifiers.ts","../../../TescoSW/UI/UI/UI/DataBuilders/UpdateProgressContentBuilder.ts","../../../TescoSW/UI/UI/DefaultInterface/AppUpdateProgress.ts","../../../TescoSW/UI/UI.ReactControlConnectors/AvatarConnector/AvatarConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/AvatarConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/CheckBoxControlConnector/CheckBoxControlConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/CheckBoxControlConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ComboBoxControlConnector/ComboBoxControlConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/ComboBoxControlConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/NumEditConnector/NumEditConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/NumEditConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ReportingScalarConnector/ReportingScalarConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/ReportingScalarConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/RichTextEditConnector/RichTextEditConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/RichTextEditConnector/index.ts","../../../TescoSW/UI/UI.Controls/mixins/noEditMixin.tsx","../../../TescoSW/UI/UI.Controls/mixins/cursorValueAdjustableMixin.tsx","../../../TescoSW/UI/UI.Controls/mixins/multiEditMixin.tsx","../../../TescoSW/UI/UI.ElementarControls/NumEditFactory.ts","../../../TescoSW/UI/UI.ElementarControls/UnsupportedComponent.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/types.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GeneralItemRenderer/GeneralItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GeneralItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/DataGridItemRenderer/DataGridItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/DataGridItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/DetailFrameItemRenderer/DetailFrameItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/DetailFrameItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GridLayoutItemRenderer/GridLayoutItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GridLayoutItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GroupBoxItemRenderer/GroupBoxItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/GroupBoxItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/TreeFrameItemRenderer/TreeFrameItemRenderer.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/TreeFrameItemRenderer/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/mixins/hasCaption.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/mixins/hasVisibilityChange.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutItemRenderers/mixins/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/GridLayoutConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GridLayoutConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/logger.ts","../../../TescoSW/UI/UI.ReactControlConnectors/mixins/hasMultiselect.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ReactConnectorFramesManager/ReactConnectorFramesManager.ts","../../../TescoSW/UI/UI.ReactControlConnectors/ReactConnectorFramesManager/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/GeneralFrameConnector/GeneralFrameConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/GeneralFrameConnector/index.ts","../../../TescoSW/UI/UI.ReactControlConnectors/mixins/hasAutorefresh.ts","../../../TescoSW/UI/UI.ReactControlConnectors/mixins/hasFulltextsearch.ts","../../../TescoSW/UI/UI.ReactControlConnectors/LiteListFrameConnector/LiteListFrameConnector.tsx","../../../TescoSW/UI/UI.ReactControlConnectors/LiteListFrameConnector/index.ts","../../../TescoSW/UI/UI/UI/Controls/ColorEdit.ts","../../../TescoSW/UI/UI/UI/Controls/ContainerControl.ts","../../../TescoSW/UI/UI/UI/Controls/DateEditsParent.ts","../../../TescoSW/UI/UI/UI/Controls/DateEdit.ts","../../../TescoSW/UI/UI/UI/Controls/DateTimeEdit2.ts","../../../TescoSW/UI/UI/UI/Controls/GroupBox.ts","../../../TescoSW/UI/UI.Controls/ImageEditElement.ts","../../../TescoSW/UI/UI/UI/Controls/ImageEdit.ts","../../../TescoSW/UI/UI/UI/Controls/Label.ts","../../../TescoSW/UI/UI/UI/XGControls/ComponentExpander.ts","../../../TescoSW/UI/UI/UI/Controls/Memo.ts","../../../TescoSW/UI/UI/UI/Controls/RadioGroup.ts","../../../TescoSW/UI/UI/UI/Controls/SimpleLabel.ts","../../../TescoSW/UI/UI/UI/Controls/TimeEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/WFStaticAction.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/ClassListGridRow.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/DataGridMessages/EmptyTreeDataGridMessage.ts","../../../TescoSW/UI/UI.Controls/DataSource/ClassListDataSourceLightDataSource.ts","../../../TescoSW/UI/UI.Controls/ClassListGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/TreeClassViewRow.ts","../../../TescoSW/UI/UI.Controls/DataSource/ClassDescriptionLightDataSource.ts","../../../TescoSW/UI/UI.Controls/TreeClassGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/TreeHeaderRow.ts","../../../TescoSW/UI/UI.Controls/TreeViewGrid.ts","../../../TescoSW/UI/UI/UI/Controls/Caption.ts","../../../TescoSW/UI/UI/UI/XGControls/Actions/LoaderButton.ts","../../../TescoSW/UI/UI/UI/XGControls/Controls/ExportPanel.ts","../../../TescoSW/UI/UI/UI/XGControls/Controls/ImportPanel.ts","../../../TescoSW/UI/UI/UI/XGControls/DataLabel.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/CalendarItemTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/CalendarItem.ts","../../../TescoSW/UI/UI.Controls/DataSource/AggregatedDataSource.ts","../../../TescoSW/UI/UI.Controls/ICalendarTooltip.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CalendarDataRow.ts","../../../TescoSW/UI/UI.Controls/CalendarTooltip.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/CalendarEventItem.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/CalendarEvent.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/DayHourCell.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/DayCalendarGrid.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/CalendarHourEvent.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/CalendarCell.ts","../../../TescoSW/UI/UI.Controls/DataSource/AggregatedObjectDataSource.ts","../../../TescoSW/UI/UI.Controls/CalendarGrid.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/MonthDayCell.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/MonthCalendarGrid.ts","../../../TescoSW/UI/UI.Controls/CalendarGrids/WeekCalendarGrid.ts","../../../TescoSW/UI/UI/UI/DataBuilders/CalendarDateTextBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/CalendarFrameRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/CalendarFrame.ts","../../../TescoSW/UI/UI/UI/DataBuilders/ChartNameBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Colors.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ChartSettingsManager.ts","../../../TescoSW/UI/UI/UI/DataBuilders/ChartSettingsHeaderBuilder.ts","../../../TescoSW/UI/UI/UI/Controls/ChartDisplay.ts","../../../TescoSW/UI/UI/UI/Controls/ChartHorizontalAxis.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuComboBoxItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuInputItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownRadioButtons.ts","../../../TescoSW/UI/UI/UI/Controls/ChartItemRow.ts","../../../TescoSW/UI/UI/UI/Controls/ChartVerticalAxis.ts","../../../TescoSW/UI/UI/UI/DataBuilders/ChartSettingsContentBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ChartSettingsPanel.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ChartFrame.ts","../../../TescoSW/UI/UI.Controls/DataSource/CommentaryFrameDataSource.ts","../../../TescoSW/UI/UI.Controls/DataSource/CommentaryFrameDataSourceFullTree.ts","../../../TescoSW/UI/UI/UI/Controls/Avatar.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/CommentaryFrameDataRow.ts","../../../TescoSW/UI/UI.Controls/CommentaryFrameGrid.ts","../../../TescoSW/UI/UI.Controls/CrossFileEditElement.ts","../../../TescoSW/UI/UI/UI/Controls/CommentaryFrameAttachment.ts","../../../TescoSW/UI/UI/UI/Controls/CommentaryFrameInput.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/CommentaryFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/TreeViewFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/TreeFrame.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/DataGridMessages/TwoListEmptyDataGridMessage.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/TwoListFrameRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/TwoListFrame.ts","../../../TescoSW/UI/UI/UI/XGControls/InfoLabel.ts","../../../TescoSW/UI/UI/UI/XGControls/Internal/FormInternalPanel.ts","../../../TescoSW/UI/UI.Controls/DataSource/MSLOVDBDataSource.ts","../../../TescoSW/UI/UI.Controls/DataSource/NPDataSource.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/MSLOVGrid.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/MSLOVCheckedGrid.ts","../../../TescoSW/UI/UI/UI/XGControls/MSLOVRightEvaluationOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/MSLOV.ts","../../../TescoSW/UI/UI/UI/XGControls/ObjectListEditRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI/UI/XGControls/ObjectListEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/Constants.ts","../../../TescoSW/UI/UI/UI/XGControls/PDFEdit/PdfEditFeatures.ts","../../../TescoSW/UI/UI/UI/XGControls/PDFEdit/PdfEditElement.ts","../../../TescoSW/UI/UI/UI/XGControls/PDFEdit/PdfEdit.ts","../../../TescoSW/UI/UI/UI/XGControls/VerticalScrollViewer.ts","../../../TescoSW/UI/UI/UI/XGControls/WrapPanel.ts","../../../TescoSW/UI/UI/UI/DataBuilders/PasswordChangeBuilder.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/SectionHandler.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/PasswordSectionHandler.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/ChangePasswordSettings.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/LanguageSettings.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/MultiSelectList.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/RolesRangesSettings.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/UserInfoSettings.ts","../../../TescoSW/UI/UI/DefaultInterface/ComponentDefinitions.ts","../../../TescoSW/UI/UI/UI/UIManagerWorker.ts","../../../TescoSW/UI/UI/DefaultInterface/DefUIManagerWorker.ts","../../../TescoSW/UI/UI/DefaultInterface/KeyboardModifiersWatcher.ts","../../../TescoSW/UI/UI.React/MenuAppConnector.tsx","../../../TescoSW/UI/UI/Rights/IHasRightsEvaluationOverrides.ts","../../../TescoSW/UI/UI/LogicalTree/DynamicComponentTree.ts","../../../TescoSW/UI/UI/LogicalTree/MSLOVComponentTree.ts","../../../TescoSW/UI/UI/UI/BreadcrumbNav.ts","../../../TescoSW/UI/UI/UI/Controls/SigningStreamCreator.ts","../../../TescoSW/UI/UI/UI/DefUploadManager.ts","../../../TescoSW/UI/UI/UI/FormBuilders/ProgrammableForm.ts","../../../TescoSW/UI/UI/UI/FormBuilders/ChartFrameFormBuilder.ts","../../../TescoSW/UI/UI/DefaultInterface/ApplicationSettings/AppSettingsContainer.ts","../../../TescoSW/UI/UI/UI/FormBuilders/SettingWindowFormBuilder.ts","../../../TescoSW/UI/UI/UI/XGControls/Frames/ColumnTemplates/Cells/ButtonCellElement.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Templates/DataTypeTemplates/ButtonTemplate.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Columns/ButtonColumn.ts","../../../TescoSW/UI/UI.Controls/DataSource/DocumentVersionsDataSource.ts","../../../TescoSW/UI/UI/UI/FormBuilders/ShowArchiveVersionsFormBuilder.ts","../../../TescoSW/UI/UI/UI/FormManager/DefFormManager.ts","../../../TescoSW/UI/UI/UI/Controls/GenericPages.ts","../../../TescoSW/UI/UI/UI/Toolbar/ToolbarPages.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/DropDownMenuItems/DropDownMenuComboItem.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuCopyFormLinkItem.ts","../../../TescoSW/UI/UI/UI/XGControls/FormMenu.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuTwoStateItem.ts","../../../TescoSW/UI/UI/UI/Toolbar/ActionsContainer.ts","../../../TescoSW/UI/UI/UI/Toolbar/FulltextSearchControl.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuItemButton.ts","../../../TescoSW/UI/UI/UI/FormUI/ObjectActionsMenu.ts","../../../TescoSW/UI/UI/UI/FormUI/MenuUIStandard.ts","../../../TescoSW/UI/UI.Controls/DropDownMenu/DropDownMenuItemFlag.ts","../../../TescoSW/UI/UI/UI/FormUI/MenuUIStandardCalendar.ts","../../../TescoSW/UI/UI/UI/FormUI/MenuUIStandardChart.ts","../../../TescoSW/UI/UI/UI/FormUI/FormUIStandard.ts","../../../TescoSW/UI/UI.ElementarControls/Helpers/BasicValidationLocalizer.ts","../../../TescoSW/UI/UI/UI/RemotingValidationLocalizer.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/ExtendedFilterParser.ts","../../../TescoSW/UI/UI/UI/Nyan.ts","../../../TescoSW/UI/UI/DefaultInterface/MainForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/ILoginCredentialsProvider.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/ErrorMessages.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/FormBase.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/LoginStorage.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/LoginForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/VerificationForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/SmsForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/TotpForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/NavigationService.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/EmailForm.ts","../../../TescoSW/UI/UI/DefaultInterface/Login/LoginManager.ts","../../../TescoSW/UI/UI/Rights/RightsDebugProbe.ts","../../../TescoSW/UI/UI/UI/BrowserCacheManager.ts","../../../TescoSW/UI/UI/UI/PopupMenuSwitchable.ts","../../../TescoSW/UI/UI/UI/StylesLoader.ts","../../../TescoSW/UI/UI/UI/Controls/EventManager.ts","../../../TescoSW/UI/UI/UI/FormBuilders/CustomFormTestBuilder.ts","../../../TescoSW/UI/UI/UI/Helpers/ControlQueries.ts","../../../TescoSW/UI/UI/UI/XGControls/FakeComponent.ts","../../../TescoSW/UI/UI/UI/XGControls/AlignPanels/Margin.ts","../../../TescoSW/UI/UI/UI/XGControls/Filters/AdvancedFilters/BooleanAFilter.ts","../../../TescoSW/UI/UI.Controls/CheckedDataGrid.ts","../../../TescoSW/UI/UI.Controls/DataGridSubcontrols/Components/FrozenHeaderRow.ts","../../../TescoSW/UI/UI.ElementarControls/DateEditBase.ts","../../../TescoSW/UI/UI.React/setupTests.ts","../../../TescoSW/UI/UI.React/components/SectionPanel/SectionPanelHeader/index.ts","../../../TescoSW/UI/UI.React/components/SplitPanelLight/enums.ts","../../../TescoSW/UI/UI.React/components/ValidationErrorTooltip/constants.ts","../../../TescoSW/UI/UI.React/components/workarounds/VisbleHtmlElement/VisibleHtmlElement.tsx","../../../TescoSW/UI/UI.React/components/workarounds/VisbleHtmlElement/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/mock/MockBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/mock/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/proxy/ProxyBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/proxy/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/story/StoryBridge.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/story/saga.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/story/index.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/dev/utils.ts","../../../TescoSW/UI/UI.React/core/bridge/impl/dev/index.ts","../../../TescoSW/UI/UI.React/core/datasource/dev/index.ts","../../../TescoSW/UI/UI.React/core/workflow/constants.ts","../../../TescoSW/UI/UI.React/dropdown/components/Dropdown/enum.ts","../../../TescoSW/UI/UI.React/dropdown/components/DropdownComponent/index.ts","../../../TescoSW/UI/UI.React/frames/logger.ts","../../../TescoSW/UI/UI.React/frames/dev/index.ts","../../../TescoSW/UI/UI.React/menu/components/SettingsButton/SettingsButton.tsx","../../../TescoSW/UI/UI.React/menu/components/SettingsButton/index.ts","../../../TescoSW/UI/UI.React/menu/components/index.ts","../../../TescoSW/UI/UI.React/menu/dev/index.ts","../../../TescoSW/UI/UI.React/menu/openedItems/dev/index.ts","../../../TescoSW/UI/UI.React/menu/search/dev/index.ts","../../../TescoSW/UI/UI.React/picasso/treeManipulationUtils.ts","../../../TescoSW/UI/UI.React/richtextEditorWrapper/index.tsx","../../../TescoSW/UI/UI.React/setup/dev/index.ts","../../../TescoSW/UI/UI.React/toolbar/components/ToolbarGroupItem/utils.ts","../../../TescoSW/UI/UI.React/toolbar/components/ToolbarGroupItem/ToolbarGroupItem.tsx","../../../TescoSW/UI/UI.React/toolbar/components/ToolbarGroupItem/index.ts","../../../TescoSW/UI/UI.React/workarounds/reduxSagaTestPlanAlias/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/dialogs/index.ts","../../../TescoSW/UI/UI.React/workflowEditor/components/propertyPanel/components/LegendItemComponent/index.ts"],"names":[],"mappings":"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","sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-namespace,unused-imports/no-unused-vars\r\nnamespace TescoSW.Global {\r\n\r\n/**\r\n * Simulace metody process.nextTick v node.js\r\n */\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n const Process: { NextTick: (callback: () => void) => void } = {\r\n NextTick: (function() {\r\n const canSetImmediate = typeof window !== \"undefined\"\r\n && (window as any).setImmediate;\r\n const canPost = typeof window !== \"undefined\"\r\n && window.addEventListener;\r\n\r\n if (canSetImmediate) {\r\n return function(callback: () => void) {\r\n return (window as any).setImmediate(callback);\r\n };\r\n }\r\n\r\n if (canPost) {\r\n const queue: Array<() => void> = [];\r\n window.addEventListener(\"message\", function(ev) {\r\n const source = ev.source;\r\n if ((source === window || source === null) && ev.data === \"process-tick\") {\r\n ev.stopPropagation();\r\n if (queue.length > 0) {\r\n const fn = queue.shift();\r\n fn?.();\r\n }\r\n }\r\n }, true);\r\n\r\n return function nextTick(callback: () => void) {\r\n queue.push(callback);\r\n window.postMessage(\"process-tick\", \"*\");\r\n };\r\n }\r\n\r\n return function nextTick(callback: () => void) {\r\n self.setTimeout(callback, 0);\r\n };\r\n })(),\r\n };\r\n}\r\n","/**\r\n * Výčet oblastí pro logování.\r\n */\r\nexport enum LoggingSection {\r\n // obecné oblasti\r\n app = \"App\",\r\n authentication = \"Authentication\",\r\n configuration = \"Configuration\",\r\n upload = \"Upload\",\r\n dependencyInjection = \"DependencyInjection\",\r\n formComponentsStructure = \"FormComponentsStructure\",\r\n control = \"UI-Control\",\r\n cryptoWebExtension = \"CryptoWebExtension\",\r\n customElements = \"CustomElements\",\r\n dataEvents = \"DataEvents\",\r\n objectWrapper = \"ObjectWrapper\",\r\n dataSource = \"DataSource\",\r\n download = \"Download\",\r\n editableControl = \"EditableControl\",\r\n encryption = \"Encryption\",\r\n enums = \"Enums\",\r\n filters = \"Filters\",\r\n formProfiles = \"FormProfiles\",\r\n formUI = \"FormUI\",\r\n frames = \"Frames\",\r\n globalContext = \"GlobalContext\",\r\n heartBeat = \"HeartBeat\",\r\n chartFrame = \"ChartFrame\",\r\n indexedDB = \"IndexedDB\",\r\n localizations = \"Localizations\",\r\n modelDescription = \"ModelDescription\",\r\n core = \"Core\",\r\n coreReact = \"CoreReact\",\r\n coreRedux = \"CoreRedux\",\r\n rights = \"Rights\",\r\n serviceWorker = \"ServiceWorker\",\r\n coreUI = \"CoreUI\",\r\n validation = \"Validation\",\r\n webSocket = \"WebSocket\",\r\n workerCommunicator = \"WorkerCommunicator\",\r\n multiEditing = \"MultiEditing\",\r\n autosave = \"AutoSave\",\r\n userSettings = \"UserSettings\",\r\n dataFormatRegistrator = \"DataFormatRegistrator\",\r\n\r\n // XG komponenty (https://teaf.tescosw.cz/wiki/index.php?title=Ovl%C3%A1dac%C3%AD_prvky_-_seznam)\r\n detailFormAction = \"DetailFormAction\",\r\n calendarFrame = \"CalendarFrame\",\r\n commentaryFrame = \"CommentaryFrame\",\r\n cryptoAction = \"CryptoAction\",\r\n dataEventLabel = \"DataEventLabel\",\r\n dataLabel = \"DataLabel\",\r\n detailFrame = \"DetailFrame\",\r\n edit = \"Edit\",\r\n fileEdit = \"FileEdit\",\r\n form = \"Form\",\r\n infoLabel = \"InfoLabel\",\r\n listFrame = \"ListFrame\",\r\n liteListFrame = \"LiteListFrame\",\r\n lOVEdit = \"LOVEdit\",\r\n textLOVEdit = \"TextLOVEdit\",\r\n memo = \"Memo\",\r\n methodAction = \"MethodAction\",\r\n mslov = \"MSLOV\", // MultiSelectLOV\r\n objectListEdit = \"ObjectListEdit\",\r\n parametricFormAction = \"ParametricFormAction\",\r\n radioGroup = \"RadioGroup\",\r\n separateDetailFrame = \"SeparateDetailFrame\",\r\n showInsertAction = \"ShowInsertAction\",\r\n treeFrame = \"TreeFrame\",\r\n treeViewFrame = \"TreeViewFrame\",\r\n twoListFrame = \"TwoListFrame\",\r\n alignPanel = \"AlignPanel\",\r\n linkButton = \"LinkButton\",\r\n\r\n // další komponenty\r\n dataGrid = \"DataGrid\",\r\n dropDown = \"DropDown\",\r\n mainMenu = \"MainMenu\",\r\n unsupportedComponent = \"UnsupportedComponent\",\r\n sidePanel = \"SidePanel\",\r\n widget = \"Widget\",\r\n dataGridColumn = \"DataGridColumn\",\r\n numEdit = \"NumEdit\",\r\n reactControlConnector = \"ReactControlConnector\",\r\n xgAction = \"XGAction\",\r\n gridLayout = \"GridLayout\",\r\n exportImportFrame = \"ExportImportFrame\",\r\n}\r\n","import { LoggingSection } from \"./LoggingSection\";\r\n\r\nexport { LoggingSection };\r\n\r\nexport type LoggingSectionType = LoggingSection | string;\r\n\r\n/**\r\n * Výčet hlavních závažností pro logování.\r\n * - Musí to být čísla, protože úroveň logování se obecně zadává jako číslo. Tento výčet je pouze pro lepší čitelnost.\r\n * - Čím vyšší číslo, tím méně je zpráva závažná.\r\n */\r\nexport enum LoggingLevel {\r\n /**\r\n * Pro totální vypnutí logování. (Určeno pouze pro zadání prahu logování.)\r\n */\r\n off = 0,\r\n\r\n error = 1000,\r\n warning = 2000,\r\n info = 3000,\r\n debug = 4000,\r\n}\r\n\r\n/**\r\n * Závažnost logovaného záznamu. Čím větší číslo, tím menší závažnost.\r\n * Používá se:\r\n * - jako součást zalogování\r\n * - jako práh (section) loggeru říkající `\"zaloguji pouze záznamy s tímto nebo menším číslem\"`.\r\n */\r\nexport type LoggingLevelType = LoggingLevel | number;\r\n\r\n/**\r\n * Číslo v intervalu `<0.1000)`. Slouží jako parametr do metody {@link ISectionLogger.fineLog}.\r\n * A Představuje pozici mezi jednotlivými hlavními závažnostmi {@link LoggingLevel}.\r\n */\r\nexport type FineLevelOffset = number;\r\n\r\n/**\r\n * Typ nosné zprávy pro zalogování.\r\n * Typicky asi bude string. Ale kvůli obecnosti je `any`.\r\n */\r\nexport type LoggingMessage = any;\r\n\r\n/**\r\n * Zdroj zprávy pro zalogování. Buď je to zprává přímo, nebo funkce, která tuto zprávu vrací.\r\n *\r\n * Funkce to může být kvůli performance v souvislosti s prahem logování. Pokud by sestrojení zprávy bylo časově náročné,\r\n * tak je rozumné toto sestrojení odložit až poté, co víme, že k zalogování dojde. (Tj. až po projití prahem závažnosti.)\r\n */\r\nexport type LoggingMessageOrGenerator = LoggingMessage | (() => LoggingMessage);\r\n\r\n/**\r\n * Typ logovacích metod v {@link ISectionLogger}. Metody mohou příjmout:\r\n * - buď přímo zprávu\r\n * - nebo funkci generující zprávu (kvůli performane, abychom nesestavovali náročné zprávy, které se pak stejně nezalogují)\r\n */\r\nexport type SectionLoggerMethod = (messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]) => void;\r\n\r\n/**\r\n * Typ návratové hodnoty funkce {@link substituteArguments}.\r\n */\r\nexport type SubstituteMessageType = {\r\n substitutedMessage: LoggingMessage;\r\n unsubstitutedArguments: any[];\r\n};\r\n\r\n/**\r\n * Konfigurační vlastnosti logování.\r\n */\r\nexport interface ILoggingSettings {\r\n /**\r\n * Každá oblast může mít - volitelně - svůj vlastní práh závažnosti, od kterého se bude logovat.\r\n */\r\n readonly sections: {\r\n readonly [key in LoggingSectionType]: LoggingLevel;\r\n };\r\n\r\n /**\r\n * Defaultní práh závažnosti, od kterého se bude logovat. Použito, pokud pro danou oblast není závažnost definována explicitně.\r\n */\r\n readonly defaultLevel: LoggingLevel;\r\n}\r\n\r\n/**\r\n * Informace potřebné pro pozdější provední příkazu `ISectionLogger.group` nebo `ISectionLogger.groupCollapsed`.\r\n */\r\nexport type PendingGroup = Readonly<{\r\n messageOrGenerator: LoggingMessageOrGenerator;\r\n args: any[];\r\n isCollapsed: boolean;\r\n}>;\r\n","import { LoggingLevelType, LoggingMessage } from \"./types\";\r\n\r\n/**\r\n * Nízko úrovňové rozhraní pro tzv. \"klientské\" logování.\r\n * Dá se trochu chápat jako SPI (Service Provider Interface).\r\n * Programátor nejspíš nevyužije přímo, ale sáhne spíše po {@link ISectionLogger}.\r\n *\r\n * Počítá se s implementacemi:\r\n * - pro zalogování přes _console.log_ do prohlížeče\r\n * - pro poslání logu přes síť (např. na _sentry_ či kamkoli jinam)\r\n * - log jako záznam v databázi\r\n *\r\n * @includeToDoc\r\n * @see ISectionLogger\r\n */\r\nexport interface ILogger {\r\n /**\r\n * Zaloguje jeden záznam, reprezentovaný zadanými parametry. (Zaloguje 1:1, neprovádí žádnou substituci. Za substituci je zodpovědný {@link ISectionLogger}.)\r\n *\r\n * POZOR na neserializovatelné argumenty\r\n * -------------------------------------\r\n * Prohlížeč přes _console.log_ zobrazí kde co.\r\n * Ale posílat např. reactí eventu (se vším svým zanořením) přes internet či ukládat do databky ... Muselo by se stanovit, co z toho vyzobáme a co nikoliv.\r\n * Zatím stanoveno není.\r\n * **Proto raději používej s rozumem - a loguj jen argumenty s jasnou reprezentací a s vědomím, že se mohou posílat přes internat či ukládat do DB.**\r\n * Např. jednoduše převeditelné do JSON.\r\n *\r\n * Neloguje referencí, ale snapshotem\r\n * ----------------------------------\r\n * Implementace by měly zajistit, že předané argumenty se zalogují v okamžiku předání jako **\"SNAPSHOT\"**.\r\n * Tj. Aby v logu byla informace z doby zalogování. (Nikoli z doby zobrazení logu.)\r\n * (Týká se typicky implementace logující přes _console.log_.)\r\n *\r\n * Práh logování\r\n * -------------\r\n * Neřešíme. O toto se postarají vyšší vrstvy. Např. {@link ISectionLogger}.\r\n * - Pozn. Jde o odfiltrovávání logů na základě jejich závažnosti - tj. {@link LoggingLevelType}.\r\n * - Záměr je, aby implementace {@link ILogger} zalogovaly vše. Aby už si samy nic nefiltrovaly.\r\n *\r\n * @param section Jméno sekce, které se záznam týká (Např. \"MainMenu\", \"InitParam\", \"ServiceWorker\", ...).\r\n * @param level Závažnost záznamu.\r\n * @param message Nosná zpráva záznamu. Píšeme v angličtině. Může obsahovat substituční znaky - viz výše.\r\n * @param args Volitelné argumenty - dvou typů:\r\n * 1. Pokud `message` je string a obsahuje substituční znaky (např. `%s`), pak tu musí ke každému substitučnímu znaku být odpovídající argument.\r\n * (Klasika. Např. jako u _console.log_ v prohlížeči.)\r\n * (Je pak na konkrétní implementaci loggeru, jak k tomu přistoupí. Záměr je, že se tyto argumenty použijí na sestavení výsledné zprávy.)\r\n * Např. pokud bychom log posílali přes internet, pak se tyto substituční argumenty nebudou posílat, ale pošle se jen výsledná zpráva po substituci.)\r\n * 2. Argumenty nad rámec substitucí. Součást nebo doplnění nosné informace. Např. zanořený JSON,\r\n * který by se obtížně inlineoval substitucí do hlavní zprávy.\r\n */\r\n log(section: string, level: LoggingLevelType, message: LoggingMessage, ...args: any[]): void;\r\n\r\n /**\r\n * Zaloguje zadanou výjimku. K výjimce by měl zalogovat jméno třídy, message a stackTrace.\r\n * @param section Sekce, v rámci které k výjimce došlo.\r\n * @param level Závažnost záznamu.\r\n * @param exception Výjimka k zalogování.\r\n */\r\n logException(section: string, level: LoggingLevelType, exception: Error): void;\r\n\r\n /**\r\n * Má stejnou sémantiku jako `console.group`. Tj:\r\n * - Zaloguje stejně jako {@link log}.\r\n * - A tento záznam navíc označí jako \"rodičovský\" tak, že všechny následující volání {@link log} a {@link logException} vytvoří dceřiné záznamy.\r\n * A to až do provolání {@link groupEnd}.\r\n *\r\n * # Zamýšlený usecase\r\n * ```\r\n * logger.group(\"main information\");\r\n * logger.log(\"detail1\");\r\n * logger.log(\"detail2\");\r\n * logger.log(\"detail3\");\r\n * logger.groupEnd();\r\n * ```\r\n *\r\n * # Úskalí\r\n * Pokud bude používáno dle výše zamýšleného usecase (a pokud budou implementace {@link ILogger} správně naimplementovány),\r\n * pak se asi není čeho bát.\r\n *\r\n * ## Nechtěný log ze `setInterval` či `setTimeout`\r\n * - Kdybychom porušili usecase výše a logovali do groupy nestandardně, tak by se mohlo stát, že se nám do groupy přimíchají cizí logy.\r\n * Např. z funkcí volaných z `setTimeout` či `setInterval`.\r\n * - Pokud budeme logovat dle usecase výše, pak by toto - snad - hrozit nemělo. (Javascript - zdá se - může volat funkci z \"timeru\" až poté, co je prázdný callstack.)\r\n *\r\n * ## Výjimky\r\n * - Vyhození výjimky by mohlo způsobit, že se nezavolá {@link groupEnd}, čímž by se vše dál logovalo do groupy.\r\n * - Takže by bylo záhodno zajistit, aby zalogování nikdy nemohlo způsobit výjimku. (Což by bylo záhodno tak jak tak.)\r\n *\r\n * # Pro implementátory:\r\n * - Implementace {@link ILogger} musí zajistit, aby při správném používání {@link group} nedošlo k pomíchání logů. Viz úskalí výše.\r\n * - Počítat s tím, že volání {@link group} a {@link groupCollapsed} může být rekurzivní.\r\n */\r\n group(section: string, message: LoggingMessage, ...args: any[]): void;\r\n\r\n /**\r\n * Dělá totéž co {@link group}. Rozdíl je ve výchozím zobrazení.\r\n * - zatímco {@link group} zobrazí expandovaně - rovnou je vidět i dceřiné záznamy\r\n * - tak {@link groupCollapsed} zobrazí collapsovaně - dceřiné záznamy vidět nejsou\r\n */\r\n groupCollapsed(section: string, message: LoggingMessage, ...args: any[]): void;\r\n\r\n /**\r\n * Má stejnou sémantiku jako `console.groupEnd`. Tj. Ruší efekt seskupování naposledy volané {@link group} či {@link groupCollapsed}.\r\n */\r\n groupEnd(): void;\r\n}\r\n\r\nexport class ILogger {\r\n private static _properties: (keyof ILogger)[] = [];\r\n private static _methods = [\"log\", \"logException\", \"group\", \"groupCollapsed\", \"groupEnd\"];\r\n\r\n // zápis kvůli ES5\r\n public static get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { FineLevelOffset, LoggingLevel, LoggingMessage, SectionLoggerMethod } from \"./types\";\r\n\r\n/**\r\n * Rozhraní umožňující logování nezávislé na prostředí.\r\n * Instance rozhraní jsou vztaženy ke konkrétní oblasti MultiWebu. Viz {@link LoggingSectionType}.\r\n *\r\n * Jde o obálku nad {@link ILogger}, která logování usnadňuje. (Nemusí být pro zalogování předáváno tolik parametrů.)\r\n *\r\n * ## Práh logování\r\n * Implementace by také měly zajistit práh logování.\r\n * Tj. každá instance musí nějak tento práh získat - a logy s nižší závažností (tj. s vyšším číslem {@link LoggingLevelType}) zahodit.\r\n *\r\n * -\r\n *\r\n * ## POZOR na neserializovatelné argumenty\r\n * Viz {@link ILogger}.\r\n *\r\n * -\r\n *\r\n * ## Substituce\r\n * `message` může obsahovat substituční znaky, které budou nahrazeny za vhodnou reprezentaci odpovídajícího substitučního argumentu.\r\n * - `%s` - Převede na string - např. přes `arg.toString()`.\r\n * - `%d` - Indikuje, že argument by měl být (celé) číslo. To převede na string. Pokud je argument desetinné číslo, pak desetinnou část zahodí. Pokud argument číslo není, pak `NaN`.\r\n * - `%i` - Stejně jako `%d`.\r\n * - `%f` - Indikuje, že argument by měl být (desetinné) číslo. To převede na string. Pokud argument číslo není, pak `NaN`.\r\n * - '%%' - Vypíše `%`. K tomuto není žádný odpovídající argument. Např. `log(\"ahoj %%s %d\",10)` -> `ahoj %s 10`.\r\n *\r\n * Do {@link ILogger} bude předána již nahrazená zpráva a pouze zbylé argumenty, nepoužité pro nahrazení.\r\n * - Příklad: `sectionLogger.info(\"ahoj %s, jak se máš\", \"Michale\", \"Tomáši\", \"Klárko\"); --> ILogger.log(
, , \"ahoj Michale, jak se máš\", \"Tomáši\", \"Klárko\");`\r\n *\r\n * (Pozn. _console.log_ má i substituční znaky `%o` a `%O`, ale ty se záměrně nepodporují, neboť nejsou převoditelné na string.)\r\n *\r\n * Nepodporované substituční znaky budou do výsledné zprávy přepsány 1:1. Např. `log(\"muj objekt %o\", myObject)` -> `\"muj objekt %o\"`.\r\n *\r\n * @includeToDoc\r\n */\r\nexport interface ISectionLogger {\r\n\r\n /**\r\n * Zaloguje s úrovní {@link LoggingLevel.error}. Resp. nejdřív zkontroluje práh logování - a zaloguje pouze, pokud je {@link LoggingLevel.error} povolen.\r\n */\r\n error: SectionLoggerMethod;\r\n\r\n /**\r\n * Analogicky jako {@link error}.\r\n */\r\n debug: SectionLoggerMethod;\r\n\r\n /**\r\n * Analogicky jako {@link error}.\r\n */\r\n info: SectionLoggerMethod;\r\n\r\n /**\r\n * Alias pro {@link info}.\r\n */\r\n log: SectionLoggerMethod;\r\n\r\n /**\r\n * Analogicky jako {@link error}.\r\n */\r\n warn: SectionLoggerMethod;\r\n\r\n /**\r\n * Zaloguje s úrovní `mainLevel + fineLevelOffset`. Resp. nejdřív zkontroluje práh logování - a zaloguje pouze, pokud je logování dané úrovně povoleno.\r\n *\r\n * Příklady:\r\n * - `finaLog(LoggingLevel.warning, 200, \"someMessage\")` zaloguje s úrovní `2000+200 = 2200` což významově představuje mírnější warning (který má lehký náběh do `info`).\r\n * - `finaLog(LoggingLevel.error, 999, \"someMessage\")` zaloguje s úrovní `1000+999 = 1999` což významově představuje velmi slabou chybu, už je to spíše warning.\r\n *\r\n * @param mainLevel Hlavní závažnost - slouží pro lepší čitelnost a jako podklad pro výpočet výsledné závažnosti.\r\n * @param fineLevelOffset Jemné doladění závažnosti. Viz {@link FineLevelOffset}.\r\n * @param messageOrGenerator Buď přímo zpráva k zalogování, nebo funkce vracející tuto zprávu. Více o zprávě - viz {@link ILogger.log}.\r\n * @param args Volitelné argumenty pro zalogování. Více viz {@link ILogger.log}.\r\n */\r\n fineLog(mainLevel: LoggingLevel, fineLevelOffset: FineLevelOffset, messageOrGenerator: LoggingMessage | (() => LoggingMessage), ...args: any[]): void;\r\n\r\n /**\r\n * Zaloguje zadanou výjimku se závažností {@link LoggingLevel.error}. K výjimce by měl zalogovat sekci, jméno třídy, message a stackTrace.\r\n * @param exception Výjimka k zalogování.\r\n */\r\n logException(exception: Error): void;\r\n\r\n /**\r\n * Zaloguje zadanou výjimku analogicky jako {@link logException} ale s explicitně zadanou závažností.\r\n * Závažnost se zadává analogicky jako u {@link fineLog}.\r\n * @param mainLevel Hlavní závažnost - slouží pro lepší čitelnost a jako podklad pro výpočet výsledné závažnosti.\r\n * @param fineLevelOffset Jemné doladění závažnosti. Viz {@link FineLevelOffset}.\r\n * @param exception Výjimka k zalogování.\r\n */\r\n fineLogException(mainLevel: LoggingLevel, fineLevelOffset: FineLevelOffset, exception: Error): void;\r\n\r\n /**\r\n * Analogicky jako {@link error}. Akorát že místo {@link ILogger.log} provolává {@link ILogger.group}.\r\n *\r\n * Resp. Je to trochu komplikovanější - s ohledem na práh logování.\r\n * - Příkaz `group` nemá vlastní práh logování.\r\n * - To, zda-li se zaloguje, závisí na obsahu skupiny. Tj. na tom, co se do této skupiny zaloguje.\r\n * - Proto není možné okamžitě provolat {@link ILogger.group}.\r\n * - Implementace si musí tento požadavek zapamatovat na případné provedení později.\r\n * - Pokud - před provedením {@link ILogger.groupEnd} - dojde k zalogování (tj. dostatečná závažnost), pak se musí zpětně provolat {@link ILogger.group}.\r\n * - Pokud - před provedením {@link ILogger.groupEnd} - k zalogování nedojde (např. proto, že požadavek na zalogování měl malou závažnost), pak se zpětně již nic neprovolává.\r\n *\r\n * Příklad1:\r\n * ```\r\n * // práh logování === WARNING\r\n * sectionLogger.group(\"hlavní zpráva\"); // Zatím se nezaloguje - pouze interně poznačí.\r\n * sectionLogger.info(\"detail s malou závažností\"); // Nezaloguje se - malá závažnost.\r\n * sectionLogger.warn(\"detail1\"); // Zaloguje se. Ale ještě před tím se zpětně zaloguje `group(\"hlavní zpráva\")`.\r\n * sectionLogger.warn(\"detail2\"); // Zaloguje se. Nic víc.\r\n * sectionLogger.groupEnd(); // Provolá `ILogger.groupEnd()`.\r\n * ```\r\n *\r\n * Příklad2:\r\n * ```\r\n * // práh logování === WARNING\r\n * sectionLogger.group(\"hlavní zpráva\"); // Nezaloguje se - pouze interně poznačí.\r\n * sectionLogger.info(\"detail s malou závažností\"); // Nezaloguje se - malá závažnost.\r\n * sectionLogger.groupEnd(); // `ILogger.groupEnd()` neprovolá. Pouze zruší interní poznačení pro `group(\"hlavní zpráva\")`.\r\n * ```\r\n */\r\n group: SectionLoggerMethod;\r\n\r\n /**\r\n * Analogicky jako {@link group}. Akorát že místo {@link ILogger.group} provolává {@link ILogger.groupCollapsed}.\r\n */\r\n groupCollapsed: SectionLoggerMethod;\r\n\r\n /**\r\n * Ukončí aktuální skupinu, pokud nějaká existuje.\r\n * - Buď provoláním {@link ILogger.groupEnd}, pokud aktuální skupina byla zalogována.\r\n * - Nebo pouze zrušením poznačení této skupiny, pokud skupina zalogována nebyla.\r\n */\r\n groupEnd: () => void;\r\n}\r\n\r\nexport class ISectionLogger {\r\n private static _properties: string[] = [];\r\n private static _methods = [\"debug\", \"info\", \"warn\", \"error\", \"fineLog\", \"group\", \"groupCollapsed\", \"groupEnd\"];\r\n\r\n // zápis kvůli ES5\r\n public static get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && this._properties.every((value) => Reflect.has(instance, value)) &&\r\n this._methods.every(value => typeof instance[value] === \"function\");\r\n }\r\n}\r\n","import { ISectionLogger } from \"./ISectionLogger\";\r\nimport { LoggingSectionType } from \"./types\";\r\n\r\n/**\r\n * Továrna pro získávání nových instancí {@link ISectionLogger}-u.\r\n * (Použito interně - v rámci Logging-modulu. Navenek by měla stačit funkce _createSectionLogger_.)\r\n *\r\n * Implementace továrny je v DIContaineru, tak je možné ji nahradit za custom.\r\n * - Ale neměl by k tomu být důvod. (Výchozí implementace by měla být dostačující.)\r\n * - Pro zákaznické implementace je určeno primárně rozhraní {@link ILogger}.\r\n *\r\n * @includeToDoc\r\n */\r\nexport interface ISectionLoggerFactory {\r\n /**\r\n * Vrátí novou instanci {@link ISectionLogger}.\r\n * @param section SectionLogger bude vytvořen pro tuto oblast.\r\n */\r\n create(section: LoggingSectionType): ISectionLogger;\r\n}\r\n\r\nexport class ISectionLoggerFactory {\r\n private static _properties: string[] = [];\r\n private static _methods = [\"create\"];\r\n\r\n // zápis kvůli ES5\r\n public static get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { ISectionLogger } from \"./ISectionLogger\";\r\nimport { ISectionLoggerFactory } from \"./ISectionLoggerFactory\";\r\nimport { LoggingMessageOrGenerator, LoggingSectionType } from \"./types\";\r\n\r\n/**\r\n * Logging module chceme využívat např. i z react modulů.\r\n * Tyto moduly vznikají importem - a tj. ještě před tím, než jsou k dispozici potřebné dependencies.\r\n * Tj. nejsme schopni si - při vzniku react modulu - rovnou získat plně inicializovaný section logger.\r\n *\r\n * Proto je pro react moduly (a další místa s podobným problémem) určen {@link LazyLoadingSectionLogger}.\r\n * - Ten je možné vytvořit ještě před získáním dependencies.\r\n * - Předpoklad: Logovat se přes něj bude až už jsou dependencies k dispozici.\r\n * - Při prvním zalogování si dependencies dotáhne a bude tak moci řádně logovat.\r\n *\r\n * Záměr je, aby logování bylo i v reactu (a dalších neobjektových místech) jednoduché a čitelné - příklad:\r\n * ```\r\n * // Např. v menu/logger.ts (Dependencies ještě nejsou k dispozici)\r\n * const logger = new LazyLoadingSectionLogger(LoggingSection.mainMenu);\r\n * ...\r\n * // Např. v menu/saga.ts\r\n * someFunction() {\r\n * ...\r\n * logger.log(\"hello\"); // Dependencies už jsou k dispozici\r\n * ...\r\n * }\r\n * ```\r\n */\r\nexport class LazyLoadingSectionLogger implements ISectionLogger {\r\n /**\r\n * Implementace {@link ISectionLoggerFactory}, kterou chceme používat pro získání section loggerů.\r\n * Nebo `null`, pokud tato implementace ještě není k dispozici.\r\n *\r\n * Správné závislosti donastaví funkce {@link initDependencies}.\r\n */\r\n private static _sectionLoggerFactoryOrNull: ISectionLoggerFactory | undefined;\r\n\r\n /**\r\n * Oblast, které se tento logger týká.\r\n */\r\n private readonly _section: LoggingSectionType;\r\n\r\n /**\r\n * Sem se - při prvním zalogování - propíše \"ten správný\" section logger.\r\n * Předpoklad: Při prvním zalogování již {@link _sectionLoggerFactoryOrNull} obsahuje správně nainicializované závislosti.\r\n */\r\n private _suppliedSectionLogger: ISectionLogger | undefined;\r\n\r\n /**\r\n * Inicializuje závislosti, bez kterých tento logger nemůže logovat.\r\n * Určeno k externímu provolání (např. z `MainForm._registerDefaultTypes`).\r\n */\r\n public static initDependencies(sectionLoggerFactory: ISectionLoggerFactory): void {\r\n LazyLoadingSectionLogger._sectionLoggerFactoryOrNull = sectionLoggerFactory;\r\n }\r\n\r\n /**\r\n * Vytváří novou instanci lazy-loading-loggeru. Určeno pro externí volání - např. z react modulů.\r\n * Je tu kvůli zapouzdření. Aby bylo v budoucnu snazší implementaci nahradit za něco jiného.\r\n * @param section Oblast, které pro kterou bude vrácený logger logovat.\r\n */\r\n public static create(section: LoggingSectionType): LazyLoadingSectionLogger {\r\n return new LazyLoadingSectionLogger(section);\r\n }\r\n\r\n constructor(section: LoggingSectionType) {\r\n this._section = section;\r\n }\r\n\r\n public error = this._createFirstLog(\"error\");\r\n public warn = this._createFirstLog(\"warn\");\r\n public info = this._createFirstLog(\"info\");\r\n public log = this._createFirstLog(\"log\");\r\n public debug = this._createFirstLog(\"debug\");\r\n public fineLog = this._createFirstLog(\"fineLog\");\r\n public logException = this._createFirstLog(\"logException\");\r\n public fineLogException = this._createFirstLog(\"fineLogException\");\r\n\r\n public group(messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]): void {\r\n this._firstLog(\"group\", messageOrGenerator, ...args);\r\n }\r\n\r\n public groupCollapsed(messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]): void {\r\n this._firstLog(\"groupCollapsed\", messageOrGenerator, ...args);\r\n }\r\n\r\n public groupEnd(): void {\r\n this._firstLog(\"groupEnd\");\r\n }\r\n\r\n /**\r\n * Vrací logovací funkci, kterou this-section-logger provede **první** zalogování.\r\n * Je to jednoduchá obálka nad {@link _firstLog}. Více viz {@link _firstLog}.\r\n */\r\n private _createFirstLog(logFunctionName: string): (...args: any[]) => void {\r\n return ((...args: any[]) => this._firstLog(logFunctionName, ...args));\r\n }\r\n\r\n /**\r\n * Logovací funkce určená pro **první** zalogování.\r\n * - Slouží jako prvotní implementace pro všechny metody z {@link ISectionLogger}\r\n * - Předpoklad: První zalogování proběhne až v době, kdy je již řádně nastavena {@link _sectionLoggerFactoryOrNull}. Viz {@link initDependencies}.\r\n * - Druhé a další zalogování již bude probíhat napřímo přes metody {@link _suppliedSectionLogger}.\r\n *\r\n * Dotáhne section logger do {@link _suppliedSectionLogger} a přes ten zaloguje.\r\n *\r\n * Zároveň nahradí implementaci všech metod z {@link ISectionLogger}, aby ukazovaly napřímo na metody z {@link _suppliedSectionLogger}.\r\n * (Kvůli rychlostní optimalizaci. Aby další logování již šlo napřímo.)\r\n *\r\n * @param logFunctionName Jméno funkce z {@link ISectionLogger}, které se to týká.\r\n * @param args Volitelné argumenty k zalogování.\r\n */\r\n private _firstLog(logFunctionName: string, ...args: any[]): void {\r\n if (this._suppliedSectionLogger) {\r\n throw new Error(\"First log: Section logger already supplied.\");\r\n }\r\n this._suppliedSectionLogger = this._loadSectionLogger();\r\n this._replaceLoggingFunctions();\r\n this._getSuppliedLogFunction(logFunctionName)(...args);\r\n }\r\n\r\n private _loadSectionLogger(): ISectionLogger {\r\n if (!LazyLoadingSectionLogger._sectionLoggerFactoryOrNull) {\r\n throw new Error(`SectionLoggerFactory is not initialized yet (section=${this._section}).`);\r\n }\r\n return LazyLoadingSectionLogger._sectionLoggerFactoryOrNull.create(this._section);\r\n }\r\n\r\n /**\r\n * Nahradí implementace funkcí {@link ISectionLogger} za přímý odkaz na funkce z {@link _suppliedSectionLogger}.\r\n */\r\n private _replaceLoggingFunctions(): void {\r\n this._replaceLoggingFunction(\"error\");\r\n this._replaceLoggingFunction(\"warn\");\r\n this._replaceLoggingFunction(\"info\");\r\n this._replaceLoggingFunction(\"log\");\r\n this._replaceLoggingFunction(\"debug\");\r\n this._replaceLoggingFunction(\"fineLog\");\r\n this._replaceLoggingFunction(\"logException\");\r\n this._replaceLoggingFunction(\"fineLogException\");\r\n this._replaceLoggingFunction(\"group\");\r\n this._replaceLoggingFunction(\"groupCollapsed\");\r\n this._replaceLoggingFunction(\"groupEnd\");\r\n }\r\n\r\n private _replaceLoggingFunction(logFunctionName: string): void {\r\n (this as any)[logFunctionName] = this._getSuppliedLogFunction(logFunctionName);\r\n }\r\n\r\n /**\r\n * Vrací zadanou funkci z {@link _suppliedSectionLogger} napojenou na {@link _suppliedSectionLogger},\r\n * takže se dá volat napřímo (bez explicitního zadávání kontextu).\r\n * @example\r\n * const logError = this._getSuppliedLogFunction(\"error\");\r\n * logError(\"this is really serious ...\");\r\n * @param logFunctionName Jméno funkce, která bude vrácena. Musí jít o jednu z funkcí z {@link ISectionLogger}.\r\n */\r\n private _getSuppliedLogFunction(logFunctionName: string): any {\r\n if (!this._suppliedSectionLogger) {\r\n throw new Error(\"Section logger not supplied yet.\");\r\n }\r\n const logFunction = (this._suppliedSectionLogger as any)[logFunctionName];\r\n if (!logFunction) {\r\n throw new Error(`Supplied section logger doesn't contain function ${logFunctionName}.`);\r\n }\r\n return logFunction.bind(this._suppliedSectionLogger);\r\n }\r\n}\r\n","import { ILoggingSettings, LoggingLevel } from \"./types\";\r\n\r\n/**\r\n * Substituční znak pro logovanou zprávu. Nahrazuje se za odpovídající argument převedený na string (přes _arg.toString()_).\r\n *\r\n * Více viz {@link ILogger.log}.\r\n */\r\nexport const STRING_SUBSTITUTION = \"%s\";\r\n\r\n/**\r\n * Substituční znaky pro logovanou zprávu. Očekává, že odpovídající argument je (celé) číslo. Nahrazuje za toto číslo (oříznuté o desetinou část).\r\n *\r\n * Více viz {@link ILogger.log}.\r\n */\r\nexport const INTEGER_SUBSTITUTIONS = [\"%i\", \"%d\"];\r\n\r\n/**\r\n * Substituční znak pro logovanou zprávu. Očekává, že odpovídající argument je (desetinné) číslo. Nahrazuje za toto číslo.\r\n *\r\n * Více viz {@link ILogger.log}.\r\n */\r\nexport const FLOAT_SUBSTITUTION = \"%f\";\r\n\r\n/**\r\n * Dvojité procento se nahrazuje za jednoduché procento.\r\n */\r\nexport const DOUBLE_PERCENTAGE_SUBSTITUTION = \"%%\";\r\n\r\n/**\r\n * Pro potřeby utility `substituteArguments`. Regex pro rozdělení `message` podle substitučních znaků.\r\n * - Např. \"ahoj %s nazdar\" -> [\"ahoj\", \"%s\", \"nazdar\"]\r\n * - Nebo. \"ahoj %%%s nazdar\" -> [\"ahoj\", \"%%\", \"\", \"%s\", \"nazdar\"]\r\n */\r\nexport const MESSAGE_SPLIT_REGEX = /(%[sidf%])/;\r\n\r\n/**\r\n * Maximální očekávaná hloubka objektů, které budeme kopírovat přes {@link deepCopy}.\r\n */\r\nexport const MAX_DEEP_COPY_LEVEL = 1000;\r\n\r\n/**\r\n * Konstanta pro prázdný objekt. Umožňuje porovnávání referencí.\r\n */\r\nexport const EMPTY_OBJECT = {};\r\n\r\n/**\r\n * Konstanta pro prázdné pole. Umožňuje porovnávání referencí.\r\n */\r\nexport const EMPTY_ARRAY: ReadonlyArray = [];\r\n\r\n/**\r\n * Výchozí nastavení logování pro vývoj.\r\n */\r\nexport const DEFAULT_DEV_LOGGING_SETTINGS: ILoggingSettings = {\r\n sections: {\r\n // schválně prázdné, uplatní se default\r\n },\r\n defaultLevel: LoggingLevel.info,\r\n};\r\n\r\n/**\r\n * Výchozí nastavení logování pro produkci.\r\n */\r\nexport const DEFAULT_PRODUCTION_LOGGING_SETTINGS: ILoggingSettings = {\r\n sections: {\r\n // schválně prázdné, uplatní se default\r\n },\r\n defaultLevel: LoggingLevel.error,\r\n};\r\n","import {\r\n DEFAULT_DEV_LOGGING_SETTINGS,\r\n DEFAULT_PRODUCTION_LOGGING_SETTINGS,\r\n DOUBLE_PERCENTAGE_SUBSTITUTION,\r\n EMPTY_OBJECT,\r\n FLOAT_SUBSTITUTION,\r\n INTEGER_SUBSTITUTIONS,\r\n MAX_DEEP_COPY_LEVEL,\r\n MESSAGE_SPLIT_REGEX,\r\n STRING_SUBSTITUTION,\r\n} from \"./constants\";\r\nimport { ILoggingSettings, LoggingMessage, LoggingMessageOrGenerator, PendingGroup, SubstituteMessageType } from \"./types\";\r\n\r\n/**\r\n * Nahradí substituční znaky dle popisu v {@link ILogger.log}.\r\n *\r\n * Tato funkce slouží:\r\n * - Primárně pro unifikaci. Aby každá implementace {@link ILogger}-u toto mohla využít a my měli tak zajištěno, že to bude vždy stejné.\r\n * - Proto je použito i pro {@link ConsoleLogger}. Aby programátor věděl, že to co se mu zobrazuje do consoli\r\n * bude stejně předáváno i do jakýchkoli jiných potenciálních implementací {@link ILogger}.\r\n *\r\n * @param message Zpráva potenciálně obsahující substituční znaky.\r\n * @param args Argumenty odpovídající substitučním znakům. Budou použity pro substituci.\r\n * @returns Nahrazenou message + zbývající argumenty nepoužité pro nahrazení.\r\n */\r\nexport const substituteArguments = (message: LoggingMessage, ...args: any[]): SubstituteMessageType => (\r\n (typeof message === \"string\")\r\n ? substituteArgumentsForStringMessage(message, ...args)\r\n : {\r\n substitutedMessage: message,\r\n unsubstitutedArguments: args,\r\n }\r\n);\r\n\r\n/**\r\n * Vlastní implementace pro {@link substituteArguments}, pokud je `message` string.\r\n * @see substituteArguments\r\n */\r\nconst substituteArgumentsForStringMessage = (message: string, ...args: any[]): SubstituteMessageType => {\r\n const snippets = message.split(MESSAGE_SPLIT_REGEX);\r\n\r\n let isSubstitionTurn = true;\r\n let currentArgumentIndex = 0;\r\n\r\n const substitutedMessage = snippets.reduce((acc: string, snippet: string) => {\r\n isSubstitionTurn = !isSubstitionTurn;\r\n\r\n const isSnippetPossiblyReplacable = (isSubstitionTurn && (currentArgumentIndex < args.length));\r\n\r\n const { replacement, wasReplacementUsed } = isSnippetPossiblyReplacable\r\n ? trySubstitute(snippet, args[currentArgumentIndex])\r\n : { replacement: snippet, wasReplacementUsed: false };\r\n\r\n if (wasReplacementUsed) {\r\n ++currentArgumentIndex;\r\n }\r\n\r\n return acc + replacement;\r\n }, \"\");\r\n\r\n return {\r\n substitutedMessage,\r\n unsubstitutedArguments: args.slice(currentArgumentIndex),\r\n };\r\n};\r\n\r\n/**\r\n * Pokud zadaný `placeholder` představuje podporovaný substituční znak, pak vrátí patřičně modifikovaný `replacement`.\r\n * Jinak `placeholder`.\r\n */\r\nconst trySubstitute = (placeholder: string, replacement: any): { replacement: string | number; wasReplacementUsed: boolean } => {\r\n if (STRING_SUBSTITUTION === placeholder) {\r\n return {\r\n replacement: String(replacement),\r\n wasReplacementUsed: true,\r\n };\r\n } else if (INTEGER_SUBSTITUTIONS.indexOf(placeholder) >= 0) {\r\n return {\r\n replacement: parseInt(replacement),\r\n wasReplacementUsed: true,\r\n };\r\n } else if (FLOAT_SUBSTITUTION === placeholder) {\r\n return {\r\n replacement: parseFloat(replacement),\r\n wasReplacementUsed: true,\r\n };\r\n } else if (DOUBLE_PERCENTAGE_SUBSTITUTION === placeholder) {\r\n return {\r\n replacement: \"%\",\r\n wasReplacementUsed: false,\r\n };\r\n } else {\r\n return {\r\n replacement: placeholder,\r\n wasReplacementUsed: false,\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Určeno pro kopírování argumentů předaných do {@link ConsoleLogger}.\r\n * - Abychom zajistili, že se v console zobrazí data z doby zalogování. (Nikoli z doby zobrazení.)\r\n * - A aby tak programátor věděl, že to co se mu teď loguje do console, tak se mu stejně v budoucnu bude logovat i do jiných loggerů.\r\n *\r\n * Pozn. Při překročení maxDeepLevel vyhodí výjimku. Důsledky:\r\n * - výhoda: Výsledek `deepCopy` je vždy konzistentní. Tj. nikdy se nestane, že tam, kde původní `data` očekávají nonNull bychom vrátili null.\r\n * Nebo že místo čísla býchom vrátili string \"truncated\".\r\n * - nevýhoda: Úplne vstupní data (s ohledem na rekurzi) mohou být array (a v `ConsoleLogger-u` to tak je.)\r\n * Tím, že jedna jediná položka z tohoto array překročí `maxDeepLevel`, tak vyjíímka probublá až nahoru a přijdeme i o všechny ostatní položky z array.\r\n * - předpoklad a závěr: K překročení `maxDeeplevel` bude docházet jen zřídka. Proto je pro nás výhodnější zachovat typovou konzistenci a oželet případnou ztrátu.\r\n *\r\n * @param data Data ke zkopírování\r\n * @param maxDeepLevel Pojistka proti nekonečné rekurzi.\r\n * @throws Pokud je `maxDeepLevel <= 0`, pak vyhodí výjimku.\r\n */\r\nexport const deepCopy = (data: any, maxDeepLevel: number): any => {\r\n if (maxDeepLevel <= 0) {\r\n throw new Error(\"truncated, maxDeepLevel reached\");\r\n }\r\n if (data === null || data === undefined) {\r\n return data;\r\n }\r\n\r\n // Error musí být ošetřen explicitně, protože obsahuje i metodu \"toString\", kterou ale obecný Object.getOwnPropertyNames níže nekopíruje.\r\n // \"toString\" je důležitá kvůli ConsoleLoggeru, aby se chyba logovala stejně, jako před zavedením Logging modulu.\r\n // Tj. Aby byl přímo pěkně vidět stack trace.\r\n if (data instanceof Error) {\r\n // Error by neměl odkazovat žádné reference, které by v čas zalogování odkazovaly na jiná data než v čas zobrazení.\r\n // Proto je možné vrátit Error napřímo - bez duplikace.\r\n return data;\r\n }\r\n\r\n switch (typeof data) {\r\n case \"string\":\r\n case \"number\":\r\n case \"boolean\":\r\n case \"symbol\":\r\n return data;\r\n case \"object\":\r\n if (Array.isArray(data)) {\r\n return (data.map((item: any) => deepCopy(item, maxDeepLevel - 1)));\r\n } else if (data as any instanceof Set) {\r\n return new Set([...data.values()].map((item: any) => deepCopy(item, maxDeepLevel - 1)));\r\n } else if (data as any instanceof Map) {\r\n const copiedEntries = [...data.entries()].map(([key, value]) => [key, deepCopy(value, maxDeepLevel - 1)]) as [any, any][];\r\n return new Map(copiedEntries);\r\n } else {\r\n // Sem se dostaneme jak pro POJO, tak pro instance tříd (třeba složitých tříd).\r\n // Je otázka, jak se k tomuto stavět.\r\n // - deepCopy je určena pro argumenty logování. A V ILogger je jasně zmíněno, že by se měly předávat pouze argumenty řádně serializovatelné.\r\n // - přičemž není stanoveno, co \"serializovatelné\" vlastně znamená\r\n // - POJO je OK\r\n // - co třeba new Error(\"some error\")?\r\n // - .. např. zde již není možné použít Object.entries(), ale Object.getOwnPropertyNames()\r\n // - a co další třídní instance (různých potomků s různým prototype chain a kdo ví jakými vnitřními privátními fieldy)\r\n // ROZHODL jsem se to kopírovat přes Object.getOwnPropertyNames().\r\n // - doufám, že to bude pro většinu použití dostačující\r\n // - a pokud se časem narazí na něco, co je žádoucí logovat, ale nevyhovuje to, tak se to pořeší pak\r\n // -- Jan Kalendovský 23. červen 2020\r\n // NEKOPÍRUJE to věci z prototype.\r\n // - Např. metodu \"Error.toString\". (Proto je Error ošetřen výše zvlášť.)\r\n // - Pokud bude žádoucí, aby do loggeru chodily i metody, musí se to předělat.\r\n // - Je jak by metody logoval custom logger - např. logující přes internet nebo do databáze.\r\n return Object.getOwnPropertyNames(data)\r\n .map((key) => [key, deepCopy(data[key], maxDeepLevel - 1)])\r\n .reduce((acc, [key, value]) => {\r\n return { ...acc, [key]: value };\r\n }, EMPTY_OBJECT);\r\n }\r\n case \"function\":\r\n return data;\r\n default:\r\n throw new Error(`Unexpected data type: ${typeof data}`);\r\n }\r\n};\r\n\r\n/**\r\n * Obálka nad {@link deepCopy} kopírující pole a nastavující `maxDeepLevel` na {@link MAX_DEEP_COPY_LEVEL}.\r\n *\r\n * Nikdy nevyhodí výjimku. Místo výjimky raději vrátí prázdné pole.\r\n *\r\n * @param data Pole ke zkopírování\r\n */\r\nexport const deepArrayCopyOrEmptyIfError = (data: any[]): any[] => {\r\n try {\r\n return deepCopy(data, MAX_DEEP_COPY_LEVEL);\r\n } catch (e) {\r\n // K výjimce může dojít např. při překročení MAX_DEEP_COPY_LEVEL.\r\n // Počítá se s tím, že by toto mělo být zřídkavé.\r\n // Pak je výhodnější mít konzistentní implementaci deepCopy (viz deepCopy) a přijít i o všechny další argumenty,\r\n // které MAX_DEEP_COPY_LEVEL nepřekročily.\r\n return [];\r\n }\r\n};\r\n\r\n/**\r\n * @param isDevelopomentMode True, pokud MW běží v development režimu. Pro tento režim může funkce vrátit jiné nastavení, než pro produkci.\r\n * @return Výchozí nastavení logování.\r\n */\r\nexport const getDefaultLoggingSettings = (isDevelopomentMode: boolean): ILoggingSettings => {\r\n return isDevelopomentMode ? DEFAULT_DEV_LOGGING_SETTINGS : DEFAULT_PRODUCTION_LOGGING_SETTINGS;\r\n};\r\n\r\n/**\r\n * Vytvoří a vrátí novou instanci typu {@link PendingGroup} dle zadaných parametrů.\r\n * @param messageOrGenerator\r\n * @param args\r\n * @param isCollapsed\r\n */\r\nexport const createPendingGroup = (messageOrGenerator: LoggingMessageOrGenerator, args: any[], isCollapsed: boolean): PendingGroup => ({\r\n messageOrGenerator,\r\n args,\r\n isCollapsed,\r\n});\r\n","export { ILogger } from \"./ILogger\";\r\nexport { ISectionLogger } from \"./ISectionLogger\";\r\nexport { ISectionLoggerFactory } from \"./ISectionLoggerFactory\";\r\nexport { LazyLoadingSectionLogger } from \"./LazyLoadingSectionLogger\";\r\nexport { ILoggingSettings, LoggingLevel, LoggingLevelType, LoggingSection, LoggingSectionType } from \"./types\";\r\nexport { getDefaultLoggingSettings } from \"./utils\";\r\n","import { ILoggingSettings } from \"@multiweb/logging\";\r\n\r\n/**\r\n * Rozhraní inicializační zprávy upload workeru.\r\n */\r\nexport interface IWorkerInitializationMessageData {\r\n readonly loggingSettings: ILoggingSettings;\r\n}\r\n\r\n/**\r\n * Rozhraní dat konfigurující upload upload jednoho souboru\r\n * @internal\r\n */\r\nexport interface IUploadData {\r\n id: number;\r\n url: string;\r\n eTag: string;\r\n fileSize: number;\r\n fullHash?: string;\r\n fullHashAlg?: string;\r\n}\r\n\r\n/**\r\n * Data se stavem jednoho nahrávaného souboru\r\n * @internal\r\n */\r\nexport class UploadData implements IUploadData {\r\n public id!: number;\r\n public url!: string;\r\n public eTag!: string;\r\n public fileSize!: number;\r\n public canceled: boolean | undefined;\r\n public lastByteRead: number | undefined;\r\n public hasher: any | undefined;\r\n public responsePromise: Promise | undefined;\r\n public fullHash?: string;\r\n public fullHashAlg?: string;\r\n}\r\n","/* eslint-disable no-console */\r\nimport { ILogger } from \"./ILogger\";\r\nimport { LoggingLevel, LoggingLevelType, LoggingMessage } from \"./types\";\r\nimport { deepArrayCopyOrEmptyIfError } from \"./utils\";\r\n\r\n/**\r\n * Logger, který všechny zprávy zapisuje do konzole prohlížeče.\r\n *\r\n * **POZOR**: Nesubstituční argumenty loguje jako SNAPSHOT!\r\n *\r\n * @includeToDoc\r\n */\r\nexport class ConsoleLogger implements ILogger {\r\n private static _PURE_MESSAGE_TYPES = [\"string\", \"number\", \"boolean\"];\r\n\r\n public log(section: string, level: LoggingLevelType, message: LoggingMessage, ...args: any[]): void {\r\n const logFunction = _getLogFunction(level);\r\n this._log(logFunction, section, message, ...args);\r\n }\r\n\r\n /**\r\n * Zaloguje přes `console` funkcí `logFunction`.\r\n * Jako zprávu do console předá vždy řetězec obsahující prefix s oblastí.\r\n * Např. `this._log(console.info, \"mySection\", \"myMessage\") -> console.info(\"[mySection] myMessage\")`.\r\n *\r\n * Kvůli tomu také řeší to, zda-li `messageOrArgument` se do console předá jako message nebo jako argument:\r\n * - Jako message se předává pouze, pokud má smysl k `messageOrArgument` prefixovat oblast.\r\n * - pokud `messageOrArgument` je primitivní (string/number/boolean), pak se předá jako message\r\n * - jinak se přidá jako první argument k `args`.\r\n *\r\n * @param logFunction Jedna z: `console.log/group/groupCollapsed/info/warn/debug/error`.\r\n * @param section Přidá se jako prefix ke zprávě. Např. `this._log(console.info, \"mySection\", \"myMessage) -> console.info(\"[mySection] myMessage\")`\r\n * @param messageOrArgument Viz popis výše.\r\n * @param args Parametry pro předání do `console`. Může se k nim na první pozici přidat i `messageOrArgument`. Viz výše.\r\n * @example message je číslo\r\n * this._log(console.info, \"mySection\", 123.456) -> console.info(\"[mySection] 123.456\")\r\n * @example message je objekt\r\n * this._log(console.info, \"mySection\", {first: \"Michael\", age: 17}) -> console.info(\"[mySection]\", {first: \"Michael\", age: 17})\r\n */\r\n private _log(logFunction: (...args: any[]) => void, section: string, messageOrArgument: LoggingMessage, ...args: any[]): void {\r\n const { pureMessage, pureArgs } = (ConsoleLogger._PURE_MESSAGE_TYPES.indexOf(typeof messageOrArgument) >= 0)\r\n ? ({ pureMessage: messageOrArgument, pureArgs: args })\r\n : ({ pureMessage: \"\", pureArgs: [messageOrArgument, ...args] });\r\n this._logPure(logFunction, section, pureMessage, ...pureArgs);\r\n }\r\n\r\n /**\r\n * Core implementace k {@link _log}. Neřeší již `messageOrArgument`.\r\n */\r\n private _logPure(logFunction: (...args: any[]) => void, section: string, message: string, ...args: any[]): void {\r\n const argsForConsole = deepArrayCopyOrEmptyIfError(args);\r\n const messageForConsole = (typeof message === \"string\")\r\n ? _escapeForConsole(message, argsForConsole.length)\r\n : message;\r\n logFunction(`[${section}] ${messageForConsole}`, ...argsForConsole);\r\n }\r\n\r\n public logException(section: string, level: LoggingLevelType, exception: Error): void {\r\n _getLogFunction(level)(`[${section}]`, exception);\r\n }\r\n\r\n public group(section: string, message: LoggingMessage, ...args: any[]): void {\r\n this._log(console.group, section, message, ...args);\r\n }\r\n\r\n public groupCollapsed(section: string, message: LoggingMessage, ...args: any[]): void {\r\n this._log(console.groupCollapsed, section, message, ...args);\r\n }\r\n\r\n public groupEnd(): void {\r\n console.groupEnd();\r\n }\r\n}\r\n\r\nconst doNothing = () => { /* Prázdná arrow funkce */ };\r\n\r\nconst _getLogFunction = (level: LoggingLevelType) => {\r\n if (level >= LoggingLevel.debug) {\r\n return console.info; // schválně logujeme debug závažnost pomocí console.info, abychom měli příjemnější chování v konzoli prohlížeče a nebylo potřeba výpisy extra zapínat i v ní\r\n } else if (level >= LoggingLevel.info) {\r\n return console.info;\r\n } else if (level >= LoggingLevel.warning) {\r\n return console.warn;\r\n } else if (level >= LoggingLevel.error) {\r\n return console.error;\r\n } else {\r\n return doNothing;\r\n }\r\n};\r\n\r\n/**\r\n * Vrátí oescapovanou `message`, aby v ní již `console.log/warn/error/debug` nic nenahrazoval.\r\n */\r\nconst _escapeForConsole = (message: string, argsForConsoleCount: number): string => {\r\n let downCounter = argsForConsoleCount;\r\n\r\n const withPercentageEscaped = (argsForConsoleCount > 0)\r\n ? message.replace(/(%)(?![sidfoOc])/g, \"%%\")\r\n : message;\r\n return withPercentageEscaped.replace(/(%)(?=[sidfoOc])/g, (match) => (--downCounter >= 0) ? \"%%\" : match);\r\n};\r\n","/**\r\n * Ověří zda platí zadaná podmínka.\r\n * Zápis přes arrow funkci [není možný]{@link https://github.com/microsoft/TypeScript/issues/34523}.\r\n * @param condition Podmínka.\r\n * @param message Chybová hláška.\r\n * @throws Vyhazuje chybu v případě nepravdivé podmínky.\r\n */\r\nexport function invariant(condition: any, message: string): asserts condition {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n}\r\n","import { invariant } from \"Global/Base/Utils/AssertUtils\";\r\nimport { ILogger } from \"./ILogger\";\r\nimport { ISectionLogger } from \"./ISectionLogger\";\r\nimport {\r\n FineLevelOffset,\r\n LoggingLevel,\r\n LoggingLevelType,\r\n LoggingMessage,\r\n LoggingMessageOrGenerator,\r\n LoggingSectionType,\r\n PendingGroup,\r\n} from \"./types\";\r\nimport { createPendingGroup, substituteArguments } from \"./utils\";\r\n\r\n/**\r\n * Hlavní (defaultní) implementace {@link ISectionLogger}. Obálka nad {@link ILogger}.\r\n * Zná sekci a práh logování.\r\n * @see LazyLoadingSectionLogger\r\n */\r\nexport class SectionLogger implements ISectionLogger {\r\n /**\r\n * Oblast, které se tento logger týká.\r\n */\r\n private readonly _section: LoggingSectionType;\r\n\r\n /**\r\n * Práh logování. Zprávy s nižší závažností budou zahozeny.\r\n */\r\n private readonly _levelThreshold: LoggingLevelType;\r\n\r\n /**\r\n * Logujeme tímto loggerem.\r\n */\r\n private readonly _logger: ILogger;\r\n\r\n /**\r\n * Počet volání {@link group} a {@link groupCollapsed} bez odpovídajících provolání {@link groupEnd}.\r\n */\r\n private _groupsDeep: number;\r\n\r\n /**\r\n * Informace potřebné pro pozdější provedení příkazu {@link group} nebo {@link groupCollapsed}.\r\n * Viz {@link ISectionLogger.group}.\r\n */\r\n private _pendingGroups: PendingGroup[] = [];\r\n\r\n constructor(section: LoggingSectionType, levelThreshold: LoggingLevelType, logger: ILogger) {\r\n this._section = section;\r\n this._levelThreshold = levelThreshold;\r\n this._logger = logger;\r\n this._groupsDeep = 0;\r\n }\r\n\r\n public error = this._createLogIfEnabled(LoggingLevel.error);\r\n public warn = this._createLogIfEnabled(LoggingLevel.warning);\r\n public info = this._createLogIfEnabled(LoggingLevel.info);\r\n public log = this._createLogIfEnabled(LoggingLevel.info);\r\n public debug = this._createLogIfEnabled(LoggingLevel.debug);\r\n\r\n public fineLog(mainLevel: LoggingLevel, fineLevelOffset: FineLevelOffset, messageOrGenerator: LoggingMessage | (() => LoggingMessage), ...args: any[]): void {\r\n const fineLevel = mainLevel + fineLevelOffset;\r\n this._logIfEnabled(fineLevel, messageOrGenerator, ...args);\r\n }\r\n\r\n public logException(exception: Error): void {\r\n this._logExceptionIfEnabled(LoggingLevel.error, exception);\r\n }\r\n\r\n public fineLogException(mainLevel: LoggingLevel, fineLevelOffset: FineLevelOffset, exception: Error): void {\r\n const fineLevel = mainLevel + fineLevelOffset;\r\n this._logExceptionIfEnabled(fineLevel, exception);\r\n }\r\n\r\n public group(messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]): void {\r\n this._groupsDeep += 1;\r\n this._pendingGroups.push(createPendingGroup(messageOrGenerator, args, false));\r\n }\r\n\r\n public groupCollapsed(messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]): void {\r\n this._groupsDeep += 1;\r\n this._pendingGroups.push(createPendingGroup(messageOrGenerator, args, true));\r\n }\r\n\r\n public groupEnd(): void {\r\n invariant(this._groupsDeep > 0, \"`groupEnd` was called more times than group+groupCollapsed.\");\r\n if (this._pendingGroups.length > 0) {\r\n this._pendingGroups.pop();\r\n } else {\r\n this._logger.groupEnd();\r\n }\r\n this._groupsDeep -= 1;\r\n }\r\n\r\n private _handlePendingGroups(): void {\r\n this._pendingGroups.forEach(({ messageOrGenerator, args, isCollapsed }) => {\r\n const message = (typeof messageOrGenerator === \"function\") ? messageOrGenerator() : messageOrGenerator;\r\n const { substitutedMessage, unsubstitutedArguments } = substituteArguments(message, ...args);\r\n isCollapsed\r\n ? this._logger.groupCollapsed(this._section, substitutedMessage, ...unsubstitutedArguments)\r\n : this._logger.group(this._section, substitutedMessage, ...unsubstitutedArguments);\r\n });\r\n this._pendingGroups = [];\r\n }\r\n\r\n /**\r\n * Vrátí funkci, která loguje se zadanou závažností. S tím, že pokud je daná závažnost mimo stanovený práh, pak nic neprovede.\r\n * @param level Závažnost, se kterou bude vrácená funkce logovat.\r\n */\r\n private _createLogIfEnabled(level: LoggingLevel): (messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]) => void {\r\n return ((messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]) => this._logIfEnabled(level, messageOrGenerator, ...args));\r\n }\r\n\r\n /**\r\n * Zaloguje se zadanou závažností. S tím, že pokud je daná závažnost mimo stanovený práh, pak nic neprovede.\r\n */\r\n private _logIfEnabled(level: LoggingLevelType, messageOrGenerator: LoggingMessageOrGenerator, ...args: any[]): void {\r\n if (this._isLogEnabled(level)) {\r\n this._handlePendingGroups();\r\n const message = (typeof messageOrGenerator === \"function\") ? messageOrGenerator() : messageOrGenerator;\r\n const { substitutedMessage, unsubstitutedArguments } = substituteArguments(message, ...args);\r\n this._logger.log(this._section, level, substitutedMessage, ...unsubstitutedArguments);\r\n }\r\n }\r\n\r\n /**\r\n * Zaloguje výjimku se zadanou závažností. S tím, že pokud je daná závažnost mimo stanovený práh, pak nic neprovede.\r\n */\r\n private _logExceptionIfEnabled(level: LoggingLevelType, exception: Error): void {\r\n if (this._isLogEnabled(level)) {\r\n this._handlePendingGroups();\r\n this._logger.logException(this._section, level, exception);\r\n }\r\n }\r\n\r\n private _isLogEnabled(level: LoggingLevelType): boolean {\r\n return (level <= this._levelThreshold);\r\n }\r\n}\r\n","import { ILogger } from \"./ILogger\";\r\nimport { ISectionLogger } from \"./ISectionLogger\";\r\nimport { ISectionLoggerFactory } from \"./ISectionLoggerFactory\";\r\nimport { SectionLogger } from \"./SectionLogger\";\r\nimport { ILoggingSettings, LoggingSectionType } from \"./types\";\r\n\r\n/**\r\n * Defaultní implementace {@link ISectionLoggerFactory}.\r\n * @includeToDoc\r\n */\r\nexport class SectionLoggerFactory implements ISectionLoggerFactory {\r\n private readonly _loggingSettings: ILoggingSettings;\r\n /**\r\n * Nevystačíme s \"_logger\", protože instance `SectionLoggerFactory` je naše defaultní, kdežto implementace {@link ILogger}\r\n * může být dodána custom - a to až poté, co je instance `SectionLoggerFactory` již vytvořena a zaregistrována v DIContaineru.\r\n *\r\n * Proto je potřeba `_loggerFactory`, který dynamicky vrátí správnou implementaci {@link ILogger}.\r\n */\r\n private readonly _loggerFactory: () => ILogger;\r\n\r\n constructor(loggingSettings: ILoggingSettings, loggerFactory: () => ILogger) {\r\n this._loggingSettings = loggingSettings;\r\n this._loggerFactory = loggerFactory;\r\n }\r\n\r\n public create(section: LoggingSectionType): ISectionLogger {\r\n const levelThreshold = this._loggingSettings.sections[section] || this._loggingSettings.defaultLevel;\r\n return new SectionLogger(section, levelThreshold, this._loggerFactory());\r\n }\r\n}\r\n","import { ConsoleLogger } from \"./ConsoleLogger\";\r\nimport { SectionLoggerFactory } from \"./SectionLoggerFactory\";\r\nimport { ILoggingSettings } from \"./types\";\r\n\r\n/**\r\n * Výchozí implementace {@link ILogger}-u.\r\n * - K červnu 2020 je to {@link ConsoleLogger}. Ale programátor by se na to neměl spoléhat.\r\n * - Z libovolného důvodu se to může v budoucnu změnit.\r\n */\r\nconst defaultLogger = new ConsoleLogger();\r\n\r\n/**\r\n * Vytvoří továrnu pro loggery výchozího typu. Tato továrana je určena pro tvorbu loggerů na místech, kde není k dispozici DIContainer, nebo\r\n * kde ještě neproběhla registrace vlastních implementací loggerů. Z toho plyne, že tato továrna **nezohledňuje registrace vlastních implementací loggerů**.\r\n * Pro loggery používá {@link defaultLogger}.\r\n *\r\n * Pro běžné logování v aplikaci se používá:\r\n * - Továrna získaná z DIContaineru pomocí `DIContainer.instance.create(ISectionLoggerFactory)`.\r\n * - {@link LazyLoadingSectionLogger} pro reactovou část, nebo místa, která by neměla být přímo závislá na DIContaineru.\r\n *\r\n * @param loggingSettings Nastavení úrovní logování.\r\n */\r\nexport const createDefaultSectionLoggerFactory = (loggingSettings: ILoggingSettings) => new SectionLoggerFactory(loggingSettings, () => defaultLogger);\r\n","/**\r\n * Umožňuje uvolnění zdrojů\r\n * @generateInstanceClass\r\n */\r\nexport interface IDisposable {\r\n dispose(): void;\r\n}\r\n\r\nexport class IDisposable {\r\n public static get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && typeof instance.dispose === \"function\";\r\n }\r\n}\r\n\r\n/**\r\n * Umožňuje uvolnění zdrojů na které lze asynchronně čekat\r\n * @generateInstanceClass\r\n */\r\nexport interface IDisposableAsync {\r\n dispose(): Promise;\r\n}\r\n\r\nexport class IDisposableAsync {\r\n public static get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && typeof instance.dispose === \"function\";\r\n }\r\n}\r\n","/*\r\nA function to represent a queue\r\nCreated by Stephen Morley - http://code.stephenmorley.org/ - and released under\r\nthe terms of the CC0 1.0 Universal legal code: http://creativecommons.org/publicdomain/zero/1.0/legalcode\r\n*/\r\n\r\n/**\r\n * Creates a new queue. A queue is a first-in-first-out (FIFO) data structure -\r\n * items are added to the end of the queue and removed from the front.\r\n */\r\nexport class Queue {\r\n private _queue = new Array();\r\n private _offset = 0;\r\n\r\n public [Symbol.iterator](): Iterator {\r\n return this._iterator();\r\n }\r\n\r\n private *_iterator(): Iterator {\r\n while (this._queue.length > 0) {\r\n const val = this.dequeue();\r\n if (val == null)\r\n break;\r\n yield val;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the length of the queue.\r\n */\r\n public get length(): number {\r\n return this._queue.length - this._offset;\r\n }\r\n\r\n /**\r\n * Returns true if the queue is empty, and false otherwise.\r\n */\r\n public isEmpty(): boolean {\r\n return this._queue.length === 0;\r\n }\r\n\r\n /**\r\n * Enqueues the specified item to the end of the queue.\r\n * @param item the item to enqueue\r\n */\r\n public enqueue(item: T): void {\r\n this._queue.push(item);\r\n }\r\n\r\n /**\r\n * Dequeues an item from the front of the queue and returns it. If the queue is empty, the value null is returned.\r\n */\r\n public dequeue(): T | null {\r\n // if the queue is empty, return immediately\r\n if (this._queue.length === 0)\r\n return null;\r\n\r\n // store the item at the front of the queue\r\n const item = this._queue[this._offset];\r\n\r\n // increment the offset and remove the free space if necessary\r\n if (++this._offset * 2 >= this._queue.length) {\r\n this._queue = this._queue.slice(this._offset);\r\n this._offset = 0;\r\n }\r\n\r\n // return the dequeued item\r\n return item;\r\n }\r\n\r\n /**\r\n * Returns the item at the front of the queue (without dequeuing it). If the queue is empty then null is returned.\r\n */\r\n public peek(): T | null {\r\n return this._queue.length > 0 ? this._queue[this._offset] : null;\r\n }\r\n}\r\n","if (!Symbol.hasInstance)\r\n (Symbol as any).hasInstance = Symbol.for(\"hasInstance\");\r\n\r\n/**\r\n * Náhrada klasického instanceof používajícího Symbol.hasInstance v ES6+ pro aplikace běžíci v ES5 v IE a jiných starších prohlížečích.\r\n * Hlavně pro použítí s interfejsi\r\n * @param value Hodnota u které chceme zjistit dědičnost\r\n * @param interfaceClass Třída/Interface implementující metodu [Symbol.hasInstance]\r\n */\r\nexport function instanceOf(value: any, interfaceClass: { new(): T }): value is T {\r\n if (typeof value !== \"object\")\r\n return false;\r\n const checkFunc = interfaceClass[Symbol.hasInstance];\r\n return checkFunc && checkFunc(value);\r\n}\r\n\r\n/**\r\n * Na základě názvu ctoru porovná, jestli je objekt instancí některého ze zadaných objektů (Workaround pro cross-frame objekty).\r\n * Prochází prototypy hledaného objektu a porovnává je na základě názvu ctoru.\r\n * POZOR: Není typově bezpečný. Může vracet true v případě shodného názvu v hiearchii. Např. instanceOf(MyNamespaceA.MyObject, MyNamespaceB.MyObject) bude vracet true, protože název ctoru v obou případech bude \"MyObject\".\r\n * @param obj Objekt, který má být ověřen\r\n * @param objType typ(y) pro porovnání\r\n */\r\n/*export function instanceOf(obj: any, ...objType: any[]) {\r\n for (let t of objType) {\r\n while (obj != null) {\r\n if (obj.constructor.name === t.name)\r\n return true;\r\n obj = Reflect.getPrototypeOf(obj);\r\n }\r\n }\r\n return false;\r\n}*/\r\n\r\n/**\r\n * Na základě názvu ctoru porovná, jestli je objekt instancí některého ze zadaných objektů (Workaround pro cross-frame objekty).\r\n * @param value instance, jejíž typ se má kontrolvoat\r\n * @param objClass typ, proti kterému se ověřuje\r\n */\r\nexport function contextlessInstanceOf(value: any, objClass: { new(): T }): value is T;\r\nexport function contextlessInstanceOf(value: any, objClass: any): value is T;\r\nexport function contextlessInstanceOf(value: any, objClass: any): boolean {\r\n while (value != null) {\r\n if (value.constructor.name === objClass.name) {\r\n return true; //nelze použít rekurzivní kontrolu podle názvu ctoru předků. TC: obj typu EOWSessionTimeout má předka OWException, ale Reflect.getPrototypeOf(obj).constructor.name === \"EOWSessionTimeout\"\r\n }\r\n value = Object.getPrototypeOf(value);\r\n }\r\n return false;\r\n}\r\n","import { contextlessInstanceOf } from \"./Polyfill/instanceOf\";\r\n\r\n/**\r\n * Znaci, ze do metody byl predan neplatny argument. Je mozne specifikovat argument, u ktereho doslo k vyjimce.\r\n */\r\nexport class InvalidArgumentException extends Error {\r\n constructor(argument: string | null = null) {\r\n super(`Invalid argument${argument ? ` (${argument})` : \"\"}`); //`\r\n }\r\n\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, InvalidArgumentException);\r\n }\r\n}\r\n\r\nexport class InvalidOperationException extends Error {\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, InvalidOperationException);\r\n }\r\n}\r\n\r\nexport class NotImplementedException extends Error {\r\n constructor() {\r\n super(\"Not implemented\");\r\n }\r\n\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, NotImplementedException);\r\n }\r\n}\r\n\r\nexport class UserAbortedException extends Error {\r\n constructor() {\r\n super(\"User aborted operation\");\r\n }\r\n\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, UserAbortedException);\r\n }\r\n}\r\n\r\n/** Vyvolána v případě, že se nepovedlo načíst data z důvodu padavé chyby */\r\nexport class DataSourceException extends Error {\r\n /** DataSource je filtrován */\r\n public readonly isFiltered: boolean;\r\n\r\n constructor(isFiltered?: boolean) {\r\n super(\"Unable to load data\");\r\n\r\n this.isFiltered = isFiltered ? isFiltered : false;\r\n }\r\n\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, DataSourceException);\r\n }\r\n}\r\n\r\n/** Vyvolána v případě nevalidní podmínky pro filtr/dataReader */\r\nexport class InvalidConditionException extends Error {\r\n /** Nevalidní části podmínky */\r\n public readonly invalidValues: ReadonlyArray;\r\n\r\n constructor(invalidValues?: ReadonlyArray) {\r\n super(\"Invalid condition\");\r\n\r\n this.invalidValues = invalidValues ? invalidValues : [];\r\n }\r\n\r\n public static override get [Symbol.hasInstance](): (instance: any) => boolean {\r\n return (instance: any) => instance != null && contextlessInstanceOf(instance, InvalidConditionException);\r\n }\r\n}\r\n\r\n/** Nevalidní hodnota/atribut v podmínce */\r\nexport interface IInvalidConditionValue {\r\n /** Atribut, který neprošel validací */\r\n readonly attributeName: string;\r\n /** Typ problému */\r\n readonly errorType: ConditionErrorType;\r\n}\r\n\r\n/** Podporované typy chyb při validaci podmínky */\r\nexport enum ConditionErrorType {\r\n invalidAttributeName,\r\n forbiddenDataType,\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"Logging/index\";\r\nimport { InvalidArgumentException } from \"./Exceptions\";\r\n\r\nexport type GlobalContextIdentifier = string | symbol | { new(): T;[Symbol.hasInstance]: (i: any) => boolean };\r\n\r\nexport enum ContextType {\r\n current,\r\n top,\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.globalContext);\r\n\r\nexport class GlobalContext {\r\n public static register(typeIdentifier: GlobalContextIdentifier, property: any, contextType: ContextType = ContextType.current): void {\r\n const name = this._getIdentifierName(typeIdentifier);\r\n GlobalContext._register(name, property, contextType);\r\n }\r\n\r\n public static registerType(type: { new(...args: any[]): T }, contextType: ContextType = ContextType.current): void {\r\n GlobalContext._register(type.name, type, contextType);\r\n }\r\n\r\n private static _register(name: string, property: any, contextType: ContextType = ContextType.current): void {\r\n const context = contextType === ContextType.top && (self as any).top ? (self as any).top : self as any;\r\n if (!context.TescoSW)\r\n context.TescoSW = {};\r\n if (!context.TescoSW[name])\r\n context.TescoSW[name] = property;\r\n }\r\n\r\n public static get(typeIdentifier: GlobalContextIdentifier, contextType: ContextType = ContextType.current): T {\r\n const name = this._getIdentifierName(typeIdentifier);\r\n return GlobalContext._get(name, contextType);\r\n }\r\n\r\n public static getType(type: { new(...args: any[]): any }, contextType: ContextType = ContextType.current): T {\r\n const name = this._getIdentifierName(type.name);\r\n return GlobalContext._get(name, contextType);\r\n }\r\n\r\n private static _get(name: string, contextType: ContextType = ContextType.current): T {\r\n const context = contextType === ContextType.top && (self as any).top ? (self as any).top : self as any;\r\n const res = context.TescoSW && context.TescoSW[name] as T;\r\n if (!res)\r\n logger.error(`Global object ${name} not found in ${ContextType[contextType]} context!`);\r\n return res;\r\n }\r\n\r\n private static _getIdentifierName(typeIdentifier: GlobalContextIdentifier): string {\r\n switch (typeof typeIdentifier) {\r\n case \"function\":\r\n return (typeIdentifier as any).name;\r\n case \"string\":\r\n return typeIdentifier;\r\n case \"symbol\":\r\n return /Symbol\\((\\w*)\\)/.exec((typeIdentifier as any).toString()) ![1];\r\n }\r\n throw new InvalidArgumentException(\"typeIdentifier\");\r\n }\r\n}\r\n","// implementace podle rozhraní https://github.com/tc39/proposal-cancellation\r\n\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"Logging/index\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\n\r\ntype cancellationTokenInternal = { cancellationRequested: boolean; canBeCanceled: boolean; registeredMethods?: Set<() => void>; id?: number };\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.core);\r\n\r\n/**\r\n * An error thrown when an operation is canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#class-cancelerror}\r\n */\r\nexport class CancelError extends Error {\r\n /**\r\n * Initializes a new instance of the CancelError class.\r\n * @param message An optional message for the error.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#new-cancelerrormessage}\r\n */\r\n constructor(message?: string, id?: number) {\r\n super(message || `Operation ${id !== undefined ? `id ${id}` : \"\"} has been cancelled`); //`\r\n }\r\n}\r\n\r\n/**\r\n * Signals a CancellationToken that it should be canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#class-cancellationtokensource}\r\n */\r\nexport class CancellationTokenSource {\r\n private _toUnregister: Array<{ unregister(): void }> = [];\r\n\r\n /**\r\n * Initializes a new instance of a CancellationTokenSource.\r\n * By supplying a set of linked tokens, you can model a complex cancellation graph that allows you to signal cancellation to various subsets of a more complex asynchronous operation. For example, you can create a cancellation hierarchy where a root CancellationTokenSource can be used to signal cancellation for all asynchronous operations (such as when signing out of an application), with linked CancellationTokenSource children used to signal cancellation for subsets such as fetching pages of asynchronous data or stopping long-running background operations in a Web Worker. You can also create a CancellationTokenSource that is attached to multiple existing tokens, allowing you to aggregate multiple cancellation signals into a single token.\r\n * @param linkedTokens An optional iterable of tokens to which to link this source.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#new-cancellationtokensourcelinkedtokens}\r\n */\r\n constructor(linkedTokens?: Iterable) {\r\n if (linkedTokens)\r\n for (const lt of linkedTokens)\r\n try {\r\n //if (lt.id && lt.id > 0)\r\n // logger.log(\"Linking existing token \" + lt.id + \" to new \" + this.token.id);\r\n this._toUnregister.push(lt.register(() => this.cancel()));\r\n } catch (e) {\r\n logger.error(e);\r\n }\r\n }\r\n\r\n private _tokenInternal?: cancellationTokenInternal;\r\n private _token: CancellationToken | undefined;\r\n\r\n /**\r\n * Gets the CancellationToken linked to this source.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#sourcetoken}\r\n */\r\n public get token(): CancellationToken {\r\n return this._token || (this._token = _newCTokenAndSetInternals(this._tokenInternal = { cancellationRequested: false, canBeCanceled: true, registeredMethods: new Set() }));\r\n }\r\n\r\n /**\r\n * Cancels the source, evaluating any registered callbacks. If any callback raises an exception, the exception is propagated to a host specific unhandled exception mechanism (e.g. window.onerror or process.on(\"uncaughtException\")).\r\n * @see {@link https://github.com/tc39/proposal-cancellation#sourcecancel}\r\n */\r\n public cancel(): void {\r\n if (!this.token || !this._tokenInternal || this._tokenInternal.cancellationRequested)\r\n return;\r\n\r\n //logger.log(\"[CTS] Cancelled token \" + this.token.id);\r\n this._tokenInternal.cancellationRequested = true;\r\n if (!this._tokenInternal.registeredMethods)\r\n return;\r\n\r\n for (const rm of this._tokenInternal.registeredMethods.values())\r\n try {\r\n rm();\r\n } catch (e) {\r\n logger.error(e);\r\n }\r\n\r\n this._tokenInternal.registeredMethods.clear(); // odstrani vsechny registrovane metody, jelikoz uz je neni potreba volat a na zrusenem objektu uz se tato kolekce nevyuziva\r\n }\r\n\r\n /**\r\n * Closes the source, preventing the possibility of future cancellation. If the source is linked to any existing tokens, the links are unregistered.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#sourceclose}\r\n */\r\n public close(): void {\r\n for (const tu of this._toUnregister)\r\n tu.unregister();\r\n if (this._tokenInternal && this._tokenInternal.registeredMethods)\r\n this._tokenInternal.registeredMethods.clear();\r\n this._tokenInternal = undefined;\r\n }\r\n}\r\n\r\nconst _cancellationTokenInternals: WeakMap = new WeakMap();\r\n\r\nfunction _newCTokenAndSetInternals(internals: cancellationTokenInternal): CancellationToken {\r\n const ct = new (CancellationToken as any)(true);\r\n if (internals.id)\r\n ct.id = internals.id;\r\n _cancellationTokenInternals.set(ct, internals);\r\n return ct;\r\n}\r\n\r\nconst _getCTI = (key: CancellationToken) => _cancellationTokenInternals.get(key)!;\r\n\r\n/**\r\n * Propagates notifications that operations should be canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#class-cancellationtoken}\r\n */\r\nexport class CancellationToken {\r\n /**\r\n * Zapíná generování unikátního id pro každý token, které se poté předává i na CancelError\r\n */\r\n public static debugging: boolean = false;\r\n private static _debugId: number = 0;\r\n\r\n constructor(...args: any) {\r\n if (!args[0])\r\n throw Error(\"To create CancellationToken use CancellationTokenSource!\");\r\n\r\n if (CancellationToken.debugging)\r\n this.id = ++CancellationToken._debugId;\r\n }\r\n\r\n /**\r\n * Gets a value indicating whether cancellation has been requested.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#tokencancellationrequested}\r\n */\r\n public get cancellationRequested(): boolean {\r\n return _getCTI(this).cancellationRequested;\r\n }\r\n\r\n /**\r\n * Gets a value indicating whether the underlying source can be canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#tokencanbecanceled}\r\n */\r\n public get canBeCanceled(): boolean {\r\n return _getCTI(this).canBeCanceled;\r\n }\r\n\r\n public readonly id?: number;\r\n\r\n /**\r\n * Throws a CancelError if cancellation has been requested.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#tokenthrowifcancellationrequested}\r\n */\r\n public throwIfCancellationRequested(): void {\r\n if (this.cancellationRequested) {\r\n //logger.log(\"[CancellationToken] throwIfCancellationRequested: \", this.id);\r\n throw this.createCancelError();\r\n }\r\n }\r\n\r\n /**\r\n * Vytvoří CancelError z tohoto tokenu\r\n */\r\n public createCancelError(message?: string): CancelError {\r\n return new CancelError(message, this.id);\r\n }\r\n\r\n /**\r\n * Registers a callback to execute when cancellation is requested.\r\n * @param callback The callback to register.\r\n * @returns An object that can be used to unregister the callback.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#tokenregistercallback}\r\n */\r\n public register(callback: () => void): { unregister(): void } {\r\n if (this.cancellationRequested)\r\n callback();\r\n else {\r\n const cti = _getCTI(this);\r\n if (cti.registeredMethods) {\r\n cti.registeredMethods.add(callback);\r\n return {\r\n unregister: () => {\r\n if (cti && cti.registeredMethods)\r\n cti.registeredMethods.delete(callback);\r\n },\r\n };\r\n }\r\n }\r\n return { unregister: () => { /* Prázdná arrow funkce */ } };\r\n }\r\n\r\n /**\r\n * Gets a token which will never be canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#cancellationtokennone}\r\n */\r\n public static get none(): CancellationToken {\r\n return _none || (_none = _newCTokenAndSetInternals({ cancellationRequested: false, canBeCanceled: false, id: -1 }));\r\n }\r\n\r\n /**\r\n * Gets a token that is already canceled.\r\n * @see {@link https://github.com/tc39/proposal-cancellation#cancellationtokencanceled}\r\n */\r\n public static get canceled(): CancellationToken {\r\n return _canceled || (_canceled = _newCTokenAndSetInternals({ cancellationRequested: true, canBeCanceled: false, id: -2 }));\r\n }\r\n}\r\n\r\nlet _none: CancellationToken;\r\nlet _canceled: CancellationToken;\r\n\r\nGlobalContext.registerType(CancellationTokenSource);\r\nGlobalContext.registerType(CancellationToken);\r\nGlobalContext.registerType(CancelError);\r\n\r\n/*\r\nTC 1:\r\n(async () => {\r\n const csx = new TescoSW.CancellationTokenSource();\r\n const cs = new TescoSW.CancellationTokenSource([csx.token]);\r\n const d = TescoSW.PromiseUtils.delay(5000, cs.token).then(()=>false).catch((e)=>e instanceof TescoSW.CancelError);\r\n TescoSW.PromiseUtils.delay(2000).then(()=>csx.cancel());\r\n logger.log(await d);\r\n})();\r\n\r\nTC 2:\r\n(async () => { logger.log((await TescoSW.PromiseUtils.delay(5000, TescoSW.CancellationToken.canceled).then(()=>false).catch((e)=>e instanceof TescoSW.CancelError))); })();\r\n\r\nTC 3:\r\n(async () => { logger.log((await TescoSW.PromiseUtils.delay(5000, TescoSW.CancellationToken.none).then(()=>true).catch((e)=>false))); })();\r\n*/\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"Logging/index\";\r\nimport { CancelError, CancellationToken, CancellationTokenSource } from \"./CancellationTokenSource\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.core);\r\n\r\n/**\r\n * Pomocné metody pro práci s promisy\r\n * @includeToDoc\r\n */\r\nexport class PromiseUtils {\r\n /*\r\n * Řídí vypisování ladících informací\r\n */\r\n public static debugInfo: boolean = false;\r\n\r\n /**\r\n * Funkce vytvoří \"while\" cyklus, ve kterém spouští předanou akci dokud je splněný predikát a umožní čekat na souhrnný výsledek\r\n * @param predicate Predikátová funkce určující, zda se má pokračovat v cyklu\r\n * @param action Funkce, která se bude cyklicky vykonávat\r\n * @returns Souhrnný promise se všemi dílčími částmi\r\n */\r\n public static while(predicate: () => boolean | Promise, action: () => void | Promise): Promise {\r\n function loop(): Promise | undefined {\r\n if (!predicate())\r\n return undefined;\r\n return Promise.resolve(action()).then(loop);\r\n }\r\n\r\n return Promise.resolve().then(loop);\r\n }\r\n\r\n /**\r\n * Funkce vytvoří \"for\" cyklus, ve kterém sériově spustí předanou akci a umožní čekat na souhrnný výsledek\r\n * @param startIndexValue Počáteční hodnota indexu\r\n * @param lessThan Hodnota před jejímž dosažením se cyklus ukončí\r\n * @returns Souhrnný promise se všemi dílčími částmi\r\n */\r\n public static for(startIndexValue: number, indexLessThan: number, action: (index: number) => void | Promise): Promise {\r\n function loop(i: number): Promise | undefined {\r\n if (i < indexLessThan) {\r\n return Promise.resolve(action(i)).then(loop.bind(null, ++i) as () => Promise | undefined);\r\n }\r\n return undefined;\r\n }\r\n\r\n return Promise.resolve(startIndexValue).then(loop);\r\n }\r\n\r\n /**\r\n * Vytvoří odložený promise, který je pak možné ručně dokončit nebo zrušit\r\n */\r\n public static defer(): Deferred {\r\n const result: any = {};\r\n result.promise = new Promise((resolve: any, reject: any) => {\r\n result.resolve = resolve;\r\n result.reject = reject;\r\n });\r\n return result;\r\n }\r\n\r\n /**\r\n * Vytvoří odložený promise, na kterém jde kontrolovat jeho stav\r\n */\r\n public static deferStateful(): DeferredStateful {\r\n const result = PromiseUtils.defer() as any;\r\n result.isSettled = false;\r\n result.isResolved = false;\r\n result.isRejected = false;\r\n\r\n result.promise = result.promise.then((res: R) => {\r\n result.promiseValue = res;\r\n result.isSettled = true;\r\n result.isResolved = true;\r\n }, (e: Error) => {\r\n result.isSettled = true;\r\n result.isRejected = true;\r\n throw e;\r\n });\r\n return result;\r\n }\r\n\r\n /**\r\n * Polyfill pro async/await\r\n * @ignore\r\n */\r\n public static awaiter(thisArg: any, body: () => Iterator, P: PromiseConstructor = Promise): Promise {\r\n let bodyIterator: Iterator;\r\n return new P(function(resolve, reject) {\r\n function fulfilled(value: any) {\r\n try {\r\n step(bodyIterator.next(value));\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }\r\n\r\n function rejected(value: any) {\r\n try {\r\n step(bodyIterator.throw!(value));\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }\r\n\r\n function step(result: IteratorResult) {\r\n result.done ? resolve(result.value) : new P(function(resolve) {\r\n resolve(result.value);\r\n }).then(fulfilled, rejected);\r\n }\r\n\r\n bodyIterator = body.apply(thisArg);\r\n step(bodyIterator.next());\r\n });\r\n }\r\n\r\n /**\r\n * Vrátí promise, který se dokončí za stanovený čas\r\n * @param timeout Doba v ms\r\n * @param cancellationToken Token, kterým lze promise stornovat\r\n */\r\n public static delay(timeout: number, cancellationToken: CancellationToken = CancellationToken.none): Promise {\r\n if (PromiseUtils.debugInfo && timeout > 0)\r\n logger.info(`Waiting: ${timeout}ms`); //` vetšinou bychom se měli vyhýbat použití delaye\r\n\r\n return new Promise((resolve, reject) => {\r\n cancellationToken.throwIfCancellationRequested();\r\n\r\n const hid = self.setTimeout(() => {\r\n if (registration)\r\n registration.unregister();\r\n resolve();\r\n }, timeout);\r\n\r\n const registration = cancellationToken.register(() => {\r\n clearTimeout(hid);\r\n reject(new CancelError(undefined, cancellationToken.id));\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Zruší předchozí promise, pokud existuje, a odloží provádění předané funkce o zadaný čas\r\n * @param cts Pokud je předaný source předchozího promisu, tak se ukončí\r\n * @param delay Doba v ms, po které se spustí provádění předané funkce\r\n * @param func Funkce, která se spustí po prodlevě\r\n */\r\n public static cancelPrevAndDelayCall(cts: CancellationTokenSource, delay: number, func: (cancellationToken?: CancellationToken) => TResult | PromiseLike): { promise: Promise; cts: CancellationTokenSource } {\r\n if (cts)\r\n cts.cancel();\r\n\r\n cts = new CancellationTokenSource();\r\n return { promise: PromiseUtils.delay(delay, cts.token).then(() => func(cts.token)), cts: cts };\r\n }\r\n\r\n /**\r\n * Handler pro zachytávání výjimek CancelError. Tyto výjimky jsou zahozeny, ostatní jsou propagovány dále.\r\n * @param e Zpracovávaná chyba\r\n */\r\n public static cancellationCatch(e: Error): void {\r\n if (e instanceof CancelError) {\r\n //logger.log(\"cancellationCatch: \", e.message);\r\n return;\r\n }\r\n throw e;\r\n }\r\n\r\n /**\r\n * Handler pohltí všechny výjimky\r\n * @param e Zpracovávaná chyba\r\n */\r\n public static catchAll(e: Error): void {\r\n logger.error(\"CatchAll: \", e);\r\n }\r\n}\r\n\r\n/**\r\n * Odložený promise, který je možné ručně dokončit nebo zrušit\r\n * @includeToDoc\r\n */\r\nexport interface Deferred {\r\n /** Čekající promise */\r\n readonly promise: Promise;\r\n /** Metoda umožňující dokončení promisu */\r\n readonly resolve: (value?: R | Promise) => void;\r\n /** Metoda umožňující zrušení promisu */\r\n readonly reject: (error?: any) => void;\r\n}\r\n\r\n/**\r\n * Odložený promise, na kterém lze navíc sledovat jeho stav\r\n * @includeToDoc\r\n */\r\nexport interface DeferredStateful extends Deferred {\r\n /** Zda je už ukončený (ať už pozitivně nebo negativně) */\r\n readonly isSettled: boolean;\r\n /** Zda je ukončený a doběhl v pořádku */\r\n readonly isResolved: boolean;\r\n /** Zda je ukončený a byl zrušen nebo skončil s chybou */\r\n readonly isRejected: boolean;\r\n /** Pokud doběhl v pořádku, tak tady je hodnota */\r\n readonly promiseValue: R;\r\n}\r\n","import { Queue } from \"../DataTypes/Queue\";\r\nimport { DeferredStateful, PromiseUtils } from \"./PromiseUtils\";\r\n/**\r\n * Objekt vytvoření při asynchronním zamknutí, pomocí kterého jde (a je potřeba) zámek odemknout\r\n */\r\nexport class Releaser {\r\n private readonly _releasingFunc: () => void;\r\n\r\n constructor(releasingFunc: () => void) {\r\n this._releasingFunc = releasingFunc;\r\n }\r\n\r\n /**\r\n * Uvolní zámek\r\n */\r\n public release(): void {\r\n if (this._releasingFunc != null)\r\n this._releasingFunc();\r\n }\r\n}\r\n\r\n/**\r\n * Asynchronní zámek, který jde opakovaně zamykat\r\n */\r\nexport class AsyncLock {\r\n private readonly _semaphore: AsyncSemaphore;\r\n private readonly _releaser: Promise;\r\n\r\n constructor() {\r\n this._semaphore = new AsyncSemaphore(1);\r\n this._releaser = Promise.resolve(new Releaser(() => {\r\n this._semaphore.release();\r\n }));\r\n }\r\n\r\n /**\r\n * Zamkne zámek a vrací promise, na který je potřeba čekat, dokud se zámek neodemkne\r\n */\r\n public lock(): Promise {\r\n const wait = this._semaphore.wait();\r\n // pokud je už promise dokončený, tak se vrací releaser, což je dokončený promise s releaserem, jinak se k nedokončenému přidá další uvolnění\r\n return wait.isSettled ? this._releaser : wait.promise.then(() => {\r\n return new Releaser(() => {\r\n this._semaphore.release();\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport class MultiAsyncLock {\r\n private readonly _locks: Map = new Map();\r\n\r\n public get locks(): Map {\r\n return this._locks;\r\n }\r\n\r\n public getLock(key: any): AsyncLock {\r\n if (this._locks.has(key))\r\n return this._locks.get(key)!;\r\n\r\n const lock = new AsyncLock();\r\n this._locks.set(key, lock);\r\n return lock;\r\n }\r\n}\r\n\r\n/**\r\n * Asynchronní semafor udržující frontu všech čekajících úkolů\r\n */\r\nclass AsyncSemaphore {\r\n private static _completed: DeferredStateful = { promise: Promise.resolve(), resolve: () => null, reject: () => null, isSettled: true, isResolved: true, isRejected: false, promiseValue: undefined };\r\n private _waiters: Queue> = new Queue>();\r\n private _currentCount: number;\r\n\r\n constructor(initialCount: number) {\r\n if (initialCount < 0)\r\n throw new Error(\"initialCount can't be lower than zero\");\r\n this._currentCount = initialCount;\r\n }\r\n\r\n public wait(): DeferredStateful {\r\n if (this._currentCount > 0) {\r\n --this._currentCount;\r\n return AsyncSemaphore._completed;\r\n }\r\n\r\n const waiter = PromiseUtils.deferStateful();\r\n this._waiters.enqueue(waiter);\r\n return waiter;\r\n }\r\n\r\n public release(): void {\r\n if (!this._waiters.isEmpty()) {\r\n this._waiters.dequeue()!.resolve();\r\n } else {\r\n ++this._currentCount;\r\n }\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"Logging/index\";\r\nimport { IDisposable } from \"./IDisposable\";\r\nimport { AsyncLock, Releaser } from \"./Promises/AsyncLock\";\r\nimport { DeferredStateful, PromiseUtils } from \"./Promises/PromiseUtils\";\r\n\r\nexport type EventCallback = (sender: TSender, prm: TEventData) => void;\r\nexport type AwaitableStandardEventCallback = (cancellableEventArgs: CancellableEventArgs, sender: TSender, prm: TEventData) => Promise;\r\n\r\ninterface IListenerData {\r\n listener: EventCallback;\r\n oneTimeOnly?: boolean;\r\n limitingPredicate?: () => boolean;\r\n}\r\n\r\n/**\r\n * Třída reprezentuje obecnou událost a umožňuje přidávání a odebírání listenerů a její vyvolávání\r\n * @includeToDoc\r\n */\r\nexport class Event {\r\n private _listeners: IListenerData[] = [];\r\n\r\n /**\r\n * Informace, zda je událost aktivní a volají se listenery\r\n */\r\n public enabled: boolean = true;\r\n\r\n /**\r\n * Zaregistruje listener události\r\n * @param listener Naslouchající funkce\r\n * @param oneTimeOnly Zda má listener zavolán pouze jednou a pak uvolněn\r\n * @param asFirst Umožňuje zařadit listener na první místo\r\n */\r\n public add(listener: EventCallback, oneTimeOnly?: boolean, asFirst?: boolean): void {\r\n if (asFirst)\r\n this._listeners.unshift({ listener: listener, oneTimeOnly: oneTimeOnly });\r\n else\r\n this._listeners.push({ listener: listener, oneTimeOnly: oneTimeOnly });\r\n }\r\n\r\n /**\r\n * Zaregistruje listener události a při splnění predikátu je tento listener uvolněn\r\n * @param listener Naslouchající funkce\r\n * @param limitingPredicate Predikát, při jehož splnění dojde k uvolnění listeneru\r\n */\r\n public addPredicateLimitedListener(listener: EventCallback, limitingPredicate: () => boolean): void {\r\n this._listeners.push({ listener: listener, limitingPredicate: limitingPredicate });\r\n }\r\n\r\n /**\r\n * Odstraní předaný listener, takže už nebude dostávat informace o události\r\n * @param listener Funkce k odregistrování\r\n */\r\n public remove(listener: EventCallback): void {\r\n if (typeof listener === \"function\") {\r\n for (let i = 0, l = this._listeners.length; i < l; i++) {\r\n if (this._listeners[i].listener === listener) {\r\n this._listeners.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Odstraní všechny listenery\r\n */\r\n public removeAll(): void {\r\n this._listeners = [];\r\n }\r\n\r\n /**\r\n * Vyvolá událost\r\n * @param sender Objekt, na kterém byla událost vyvolaná\r\n * @param arg Data události předávaná do listenerů\r\n */\r\n public trigger(sender: TSender, arg: TEventData): void {\r\n if (!this.enabled)\r\n return;\r\n\r\n const listeners = [...this._listeners];\r\n const listenersForRemoval = [];\r\n for (const listenerData of listeners) {\r\n listenerData.listener.call(null, sender, arg);\r\n\r\n if (listenerData.oneTimeOnly || (listenerData.limitingPredicate && listenerData.limitingPredicate()))\r\n listenersForRemoval.push(listenerData.listener);\r\n }\r\n\r\n listenersForRemoval.forEach(l => this.remove(l));\r\n }\r\n\r\n /**\r\n * Zjistí, zda je předaný listener už zaregistrovaný\r\n * @param listener Hledaná funkce\r\n */\r\n public containsListener(listener: EventCallback): boolean {\r\n return this._listeners.some(ld => ld.listener === listener);\r\n }\r\n\r\n /**\r\n * Zjistí, zda je nějaký listener zaregistrovaný\r\n */\r\n public containsAnyListener(): boolean {\r\n return this._listeners.length > 0;\r\n }\r\n\r\n /**\r\n * Přidá do listenerů aktuální instance Eventu listenery z Eventu stejného typu předaného do parametru\r\n * @param eventToMerge Událost, jejíž listenery se mají přidat do této instance Eventu\r\n * @param removeListenersFromSourceEvent (Nepovinný) Určuje, zda se mají listenery ze zdrojového eventu rovnou odstranit. Výchozí = false\r\n */\r\n public mergeWith(eventToMerge: Event, removeListenersFromSourceEvent?: boolean): void {\r\n for (const listenerData of eventToMerge._listeners) {\r\n if (!this.containsListener(listenerData.listener)) {\r\n this.add(listenerData.listener, listenerData.oneTimeOnly);\r\n }\r\n if (removeListenersFromSourceEvent)\r\n eventToMerge.remove(listenerData.listener);\r\n }\r\n }\r\n\r\n /**\r\n * Počká na první vyvolání události\r\n * @param timeout Pokud je nastavený timeout (v ms) a událost není do té doby vyvolaná, tak promise končí chybou\r\n */\r\n public waitForEventTrigger(timeout?: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n let handle: number;\r\n\r\n this.add(() => {\r\n if (handle)\r\n clearTimeout(handle);\r\n resolve();\r\n }, true);\r\n //let handler:TimerHandler =\r\n if (timeout)\r\n handle = self.setTimeout(() => reject(new Error(`Timeout after ${timeout}ms`)), timeout); //`\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Třída reprezentuje stavovou událost. První vyvolání události ji nastaví aktivní stav. To lze provést pouze jednou.\r\n * Každé přidání listeneru v aktivním stavu ho automaticky hned vyvolá.\r\n * @includeToDoc\r\n */\r\nexport class StatefulEvent extends Event implements IDisposable {\r\n private _active: boolean = false;\r\n private _sender?: TSender;\r\n private _eventData?: TEventData;\r\n\r\n /**\r\n * Zda je událost aktivní (má aktivní stav) a tedy zda už byla spuštěna\r\n */\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n\r\n /**\r\n * Vyvolá událost a tím změní stav této instance na aktivní. Všechny další přidání listenerů automaticky vyvolávají událost.\r\n * Trigger (a tedy nastavení stavu) lze volat pouze jednou!\r\n * @param sender Objekt, na kterém byla událost vyvolaná\r\n * @param arg Data události předávaná do listenerů\r\n * @throws Vyhazuje Error pokud je už aktivní\r\n */\r\n public override trigger(sender: TSender, arg: TEventData): void {\r\n if (!this.enabled)\r\n return;\r\n\r\n if (this.active)\r\n throw new Error(\"Stateful event already triggered. Multiple state changes forbidden.\");\r\n\r\n this._sender = sender;\r\n if (this._sender === undefined)\r\n throw new Error(\"Stateful event triggered without sender parameter.\");\r\n\r\n this._eventData = arg;\r\n this._active = true;\r\n\r\n super.trigger(sender, arg);\r\n }\r\n\r\n /**\r\n * Zaregistruje listener události.\r\n * Pokud už byla událost aktivována, tak ihned listener spustí!\r\n * @param listener Naslouchající funkce\r\n * @param oneTimeOnly Zda má listener zavolán pouze jednou a pak uvolněn - irelevantní, vždy je volán pouze jednou\r\n */\r\n public override add(listener: EventCallback, oneTimeOnly?: boolean): void {\r\n super.add(listener, oneTimeOnly);\r\n\r\n if (!this.enabled || !this.active)\r\n return;\r\n\r\n if (this._sender === undefined)\r\n throw new Error(\"Stateful event triggered without sender parameter.\");\r\n\r\n listener.call(null, this._sender, this._eventData!); // TEventData může mít i typ undefined, takže nelze provést runtime kontrolu\r\n }\r\n\r\n public dispose(): void {\r\n this.removeAll();\r\n this._active = false;\r\n this._sender = undefined;\r\n this._eventData = undefined;\r\n }\r\n}\r\n/**\r\n * Rozhraní obecného listeneru, u kterého nám nezáleží na předaných argumentech ani na návratové hodnotě\r\n * @includeToDoc\r\n */\r\nexport interface IListener {\r\n (...args: any[]): any;\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.core);\r\n\r\n/**\r\n * Asynchronní událost.\r\n * Listenery berou jako parametr CancellableEventArgs, kterým je možné indikovat zrušení - negativní výsledek triggeru.\r\n * Trigger vrací promise - počká se na doběhnutí všech listenerů a vrací se true, pokud nebyl event zrušen.\r\n * Při opětovném volání triggeru z jiného místa, před doběhnutím předchozího, se na doběhnutí předchozího počká.\r\n * @includeToDoc\r\n */\r\nexport class AwaitableStandardEvent {\r\n /**\r\n * Informace, zda je událost aktivní a volají se listenery\r\n */\r\n public enabled: boolean = true;\r\n\r\n private _listeners: Array> = [];\r\n private _cancellableEventArgs: CancellableEventArgs = new CancellableEventArgs();\r\n\r\n private _triggeredProcessingLock: AsyncLock = new AsyncLock();\r\n private _lockPromise: Promise | null = null;\r\n private _locked = false;\r\n\r\n /**\r\n * Zaregistruje listener události\r\n * @param listener Naslouchající funkce\r\n */\r\n public add(listener: AwaitableStandardEventCallback): void {\r\n this._listeners.push(listener);\r\n }\r\n\r\n /**\r\n * Odstraní předaný listener, takže už nebude dostávat informace o události\r\n * @param listener Funkce k odregistrování\r\n */\r\n public remove(listener: AwaitableStandardEventCallback): void {\r\n if (typeof listener === \"function\") {\r\n for (let i = 0, l = this._listeners.length; i < l; i++) {\r\n if (this._listeners[i] === listener) {\r\n this._listeners.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Odstraní všechny listenery\r\n */\r\n public removeAll(): void {\r\n this._listeners = [];\r\n }\r\n\r\n /**\r\n * Vyvolá událost\r\n * @param sender Objekt, na kterém byla událost vyvolaná\r\n * @param arg Data události předávaná do listenerů\r\n */\r\n public async trigger(sender: TSender, arg: TEventData): Promise {\r\n if (!this.enabled)\r\n return false;\r\n\r\n if (!this._locked) {\r\n //logger.log(\"Locking...\");\r\n this._lockPromise = this._triggeredProcessingLock.lock(); // Zamkne event, aby doběhly všechny listenery před zpracováním dalšího triggeru eventu\r\n this._locked = true;\r\n } else {\r\n //logger.log(\"Waiting for previous trigger to finish.\");\r\n if (this._lockPromise)\r\n await this._lockPromise;\r\n //logger.log(\"Continuing...\");\r\n }\r\n\r\n this._cancellableEventArgs = new CancellableEventArgs();\r\n const listeners = this._listeners.slice(0);\r\n const promises: (Promise)[] = listeners.map(listener => listener(this._cancellableEventArgs, sender, arg));\r\n await Promise.all(promises); // Počká na doběhnutí všech asynchronních listenerů\r\n\r\n if (this._locked) {\r\n //logger.log(\"Unlocking...\");\r\n if (this._lockPromise)\r\n (await this._lockPromise).release();\r\n this._locked = false;\r\n }\r\n\r\n return this._cancellableEventArgs.cancelEvent;\r\n }\r\n\r\n /**\r\n * Zjistí, zda je předaný listener už zaregistrovaný\r\n * @param listener Hledaná funkce\r\n */\r\n public containsListener(listener: AwaitableStandardEventCallback): boolean {\r\n return this._listeners.indexOf(listener) > -1;\r\n }\r\n\r\n /**\r\n * Přidá do listenerů aktuální instance Eventu listenery z Eventu stejného typu předaného do parametru\r\n * @param eventToMerge Událost, jejíž listenery se mají přidat do této instance Eventu\r\n * @param removeListenersFromSourceEvent (Nepovinný) Určuje, zda se mají listenery ze zdrojového eventu rovnou odstranit. Výchozí = false\r\n */\r\n public mergeWith(eventToMerge: AwaitableStandardEvent, removeListenersFromSourceEvent?: boolean): void {\r\n for (const listener of eventToMerge._listeners) {\r\n if (!this.containsListener(listener)) {\r\n this.add(listener);\r\n }\r\n if (removeListenersFromSourceEvent)\r\n eventToMerge.remove(listener);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Třída pro použití v eventu, která může indikovat požadavek na zrušení.\r\n * @includeToDoc\r\n */\r\nexport class CancellableEventArgs {\r\n private _cancelEvent: boolean = false;\r\n\r\n /**\r\n * Stav příznaku zrušení\r\n */\r\n public get cancelEvent(): boolean {\r\n return this._cancelEvent;\r\n }\r\n\r\n /**\r\n * Nastaví příznak zrušení\r\n */\r\n public cancel(): void {\r\n this._cancelEvent = true;\r\n }\r\n}\r\n\r\n/**\r\n * Třída umožňuje vytvoření promisu, který se resolvne při triggeru předané události nebo rejectne po timeoutu\r\n * @includeToDoc\r\n */\r\nexport class EventAwaiter {\r\n private _awaiter: DeferredStateful = PromiseUtils.deferStateful();\r\n private readonly _eventHandler: () => void;\r\n\r\n private static _isDebugging = false;\r\n\r\n constructor(eventToAwait: Event, timeout: number = 1000) {\r\n if (EventAwaiter._isDebugging) console.time(\"EventAwaiter\");\r\n const timeoutId = self.setTimeout(() => {\r\n if (this._eventHandler)\r\n eventToAwait.remove(this._eventHandler);\r\n this._awaiter.reject();\r\n if (EventAwaiter._isDebugging) {\r\n logger.log(\"EventAwaiter timed out.\");\r\n console.timeEnd(\"EventAwaiter\");\r\n }\r\n }, timeout);\r\n\r\n eventToAwait.add(this._eventHandler = () => {\r\n clearTimeout(timeoutId);\r\n this._awaiter.resolve();\r\n if (EventAwaiter._isDebugging) {\r\n logger.log(\"EventAwaiter timed resolved.\");\r\n console.timeEnd(\"EventAwaiter\");\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Umožní čekat na spuštění události\r\n */\r\n public get awaiter(): Promise {\r\n return this._awaiter.promise;\r\n }\r\n\r\n /**\r\n * Zda už byla událost vyvolaná\r\n */\r\n public get isResolved(): boolean {\r\n return this._awaiter.isResolved;\r\n }\r\n\r\n /**\r\n * Vrací promise, který se resolvne při triggeru předané události nebo rejectne po timeoutu. POZOR - Je potřeba handlovat možnou exception při rejectu.\r\n * @param eventToAwait Událost, při jejímž triggrování se promise resolvuje\r\n * @param timeout Čas, po které dojde k rejectu promisu, pokud do té doby nedošlo k resolvu; defaultně je 1000ms\r\n */\r\n public static createEventAwaiter(eventToAwait: Event, timeout: number = 1000): Promise {\r\n return new EventAwaiter(eventToAwait, timeout).awaiter;\r\n }\r\n}\r\n","const _headersWM: WeakMap> = new WeakMap();\r\nconst _headers = (o: HeadersBuilder) => _headersWM.get(o)!;\r\n\r\nfunction normalizeName(name: string) {\r\n if (typeof name !== \"string\")\r\n name = String(name);\r\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name))\r\n throw new TypeError(\"Invalid character in header field name\");\r\n return name.toLowerCase();\r\n}\r\n\r\nexport class HeadersBuilder {\r\n constructor(...headers: ({ [name: string]: any } | Headers | HeadersBuilder | undefined)[]) {\r\n _headersWM.set(this, new Map());\r\n this.setHeaders(...headers);\r\n }\r\n\r\n /**\r\n * Přidá nový záznam ho objektu hlaviček\r\n * @param name jméno hlavičky\r\n * @param value hodnota\r\n * @param isDefaultValue funkce, která detekuje defaultní hodnotu která se nebude vkládat\r\n */\r\n public set(name: string, value: any, isDefaultValue?: (value: any) => boolean): void {\r\n const _h = _headers(this);\r\n if ((value != undefined) && (!isDefaultValue || !isDefaultValue(value)))\r\n _h.set(normalizeName(name), typeof value === \"string\" ? value : String(value));\r\n }\r\n\r\n /**\r\n * Spojí několik struktur s definicí hlaviček do jedné struktury\r\n * @param headers Definice hlaviček\r\n */\r\n public setHeaders(...headers: ({ [name: string]: string } | Headers | HeadersBuilder | undefined)[]): void {\r\n for (const item of headers)\r\n if (item)\r\n for (const [name, value] of (typeof (item as any)[Symbol.iterator] === \"function\" ? item as any : Object.entries(item)))\r\n this.set(name, value);\r\n }\r\n\r\n public delete(name: string): void {\r\n _headers(this).delete(name);\r\n }\r\n\r\n public get(name: string): string | undefined {\r\n return _headers(this).get(name);\r\n }\r\n\r\n public has(name: string): boolean {\r\n return _headers(this).has(name);\r\n }\r\n\r\n public entries(): IterableIterator<[string, string]> {\r\n return _headers(this).entries();\r\n }\r\n\r\n public [Symbol.iterator](): IterableIterator<[string, string]> {\r\n return this.entries();\r\n }\r\n\r\n public values(): IterableIterator {\r\n return _headers(this).values();\r\n }\r\n\r\n public keys(): IterableIterator {\r\n return _headers(this).keys();\r\n }\r\n}\r\n\r\n/*\r\nV Safari (< 11.1) neprojde tento testcase\r\nSafari iteruje vstupni objekty jen přes Object.entries\r\nChrome, FireFox, Sfari 11.1+ OK\r\n\r\nlet h1 = new TescoSW.HeadersBuilder({ \"Accept\": \"application/vnd.tescosw.ow-datarows+json\" });\r\nlet h2 = new Headers(h1);\r\nh2.append(\"X-1233\",15);\r\nfor (var pair of h2) {\r\n logger.log(pair[0]+ ': '+ pair[1]);\r\n}\r\n*/\r\n","/**\r\n * Popisy jednotlivých kódů HTTP odpovědí viz https://en.wikipedia.org/wiki/List_of_HTTP_status_codes\r\n * @includeToDoc\r\n */\r\nexport enum HTTPStatus {\r\n /** Standard response for successful HTTP requests. The actual response will depend on the request method used. In a GET request, the response will contain an entity corresponding to the requested resource. In a POST request, the response will contain an entity describing or containing the result of the action. */\r\n ok = 200,\r\n /** The request has been fulfilled, resulting in the creation of a new resource. */\r\n created = 201,\r\n /** The request has been accepted for processing, but the processing has not been completed. The request might or might not be eventually acted upon, and may be disallowed when processing occurs. */\r\n accepted = 202,\r\n /** The server is a transforming proxy (e.g. a Web accelerator) that received a 200 OK from its origin, but is returning a modified version of the origin's response. */\r\n nonAuthoritativeInformation = 203,\r\n /** The server successfully processed the request and is not returning any content. */\r\n noContent = 204,\r\n /** The server successfully processed the request, but is not returning any content. Unlike a 204 response, this response requires that the requester reset the document view. */\r\n resetContent = 205,\r\n /** The server is delivering only part of the resource (byte serving) due to a range header sent by the client. The range header is used by HTTP clients to enable resuming of interrupted downloads, or split a download into multiple simultaneous streams. */\r\n partialContent = 206,\r\n\r\n /** Indicates multiple options for the resource from which the client may choose (via agent-driven content negotiation). For example, this code could be used to present multiple video format options, to list files with different filename extensions, or to suggest word-sense disambiguation. */\r\n multipleChoices = 300,\r\n /** This and all future requests should be directed to the given URI. */\r\n movedPermanently = 301,\r\n /** This is an example of industry practice contradicting the standard. The HTTP/1.0 specification (RFC 1945) required the client to perform a temporary redirect (the original describing phrase was \"Moved Temporarily\"),[21] but popular browsers implemented 302 with the functionality of a 303 See Other. Therefore, HTTP/1.1 added status codes 303 and 307 to distinguish between the two behaviours. However, some Web applications and frameworks use the 302 status code as if it were the 303. */\r\n found = 302,\r\n /** The response to the request can be found under another URI using the GET method. When received in response to a POST (or PUT/DELETE), the client should presume that the server has received the data and should issue a new GET request to the given URI. */\r\n seeOther = 303,\r\n /** Indicates that the resource has not been modified since the version specified by the request headers If-Modified-Since or If-None-Match. In such case, there is no need to retransmit the resource since the client still has a previously-downloaded copy. */\r\n notModified = 304,\r\n\r\n /** The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing). */\r\n badRequest = 400,\r\n /** Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. The response must include a WWW-Authenticate header field containing a challenge applicable to the requested resource. See Basic access authentication and Digest access authentication.[33] 401 semantically means \"unauthenticated\",[34] i.e. the user does not have the necessary credentials.\r\n Note: Some sites issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website. */\r\n unauthorized = 401,\r\n /** Reserved for future use. The original intention was that this code might be used as part of some form of digital cash or micropayment scheme, as proposed for example by GNU Taler, but that has not yet happened, and this code is not usually used. Google Developers API uses this status if a particular developer has exceeded the daily limit on requests. */\r\n paymentRequired = 402,\r\n /** The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort. */\r\n forbidden = 403,\r\n /** The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible. */\r\n notFound = 404,\r\n /** A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource. */\r\n methodNotAllowed = 405,\r\n /** The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. See Content negotiation. */\r\n notAcceptable = 406,\r\n /** The client must first authenticate itself with the proxy. */\r\n proxyAuthenticationRequired = 407,\r\n /** The server timed out waiting for the request. According to HTTP specifications: \"The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time.\" */\r\n requestTimeout = 408,\r\n /** Indicates that the request could not be processed because of conflict in the request, such as an edit conflict between multiple simultaneous updates. */\r\n conflict = 409,\r\n /** Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a \"404 Not Found\" may be used instead. */\r\n gone = 410,\r\n /** The request did not specify the length of its content, which is required by the requested resource. */\r\n lengthRequired = 411,\r\n /** The server does not meet one of the preconditions that the requester put on the request. */\r\n preconditionFailed = 412,\r\n /** The request is larger than the server is willing or able to process. Previously called \"Request Entity Too Large\". */\r\n payloadTooLarge = 413,\r\n /** The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request. Called \"Request-URI Too Long\" previously. */\r\n uriTooLong = 414,\r\n /** The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format. */\r\n unsupportedMediaType = 415,\r\n /** The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file. Called \"Requested Range Not Satisfiable\" previously. */\r\n rangeNotSatisfiable = 416,\r\n /** The server cannot meet the requirements of the Expect request- header field. */\r\n expectationFailed = 417,\r\n /** The request was directed at a server that is not able to produce a response. */\r\n misdirectedRequest = 421,\r\n /** The request was well- formed but was unable to be followed due to semantic errors. */\r\n unprocessableEntity = 422,\r\n /** The resource that is being accessed is locked. */\r\n locked = 423,\r\n /** The request failed due to failure of a previous request (e.g., a PROPPATCH). */\r\n failedDependency = 424,\r\n /** The client should switch to a different protocol such as TLS / 1.0, given in the Upgrade header field. */\r\n upgradeRequired = 426,\r\n /** The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict. */\r\n preconditionRequired = 428,\r\n /** The user has sent too many requests in a given amount of time.Intended for use with rate-limiting schemes.*/\r\n tooManyRequests = 429,\r\n /** The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large. */\r\n requestHeaderFieldsTooLarge = 431,\r\n\r\n /** A generic error message, given when an unexpected condition was encountered and no more specific message is suitable. */\r\n internalServerError = 500,\r\n /** The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API). */\r\n notImplemented = 501,\r\n /** The server was acting as a gateway or proxy and received an invalid response from the upstream server. */\r\n badGateway = 502,\r\n /** The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state. */\r\n serviceUnavailable = 503,\r\n /** The server was acting as a gateway or proxy and did not receive a timely response from the upstream server. */\r\n gatewayTimeout = 504,\r\n /** The server does not support the HTTP protocol version used in the request. */\r\n httpVersionNotSupported = 505,\r\n /** Transparent content negotiation for the request results in a circular reference. */\r\n variantAlsoNegotiates = 506,\r\n}\r\n","import { Event } from \"../Events\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\nimport { CancelError, CancellationToken } from \"../Promises/CancellationTokenSource\";\r\nimport { HeadersBuilder } from \"./HeadersBuilder\";\r\nimport { HTTPStatus } from \"./HTTPStatus\";\r\n\r\nexport type HTTPHeaders = { [name: string]: string | boolean } | Headers | HeadersBuilder;\r\n\r\nexport interface IRequestParams {\r\n headers?: HTTPHeaders;\r\n readonly responseType?: XMLHttpRequestResponseType;\r\n readonly okStatusSet?: HTTPStatus[];\r\n}\r\n\r\nexport interface IRequestParamsAndData extends IRequestParams {\r\n readonly data?: any;\r\n}\r\n\r\nexport interface IGetRequest extends IRequestParams {\r\n readonly url: string;\r\n}\r\n\r\nexport interface IUniversalRequest extends IGetRequest, IRequestParamsAndData {\r\n requestMethod: string;\r\n}\r\n\r\nexport interface IExtendedRequest extends IUniversalRequest {\r\n readonly readResponseInfos?: boolean;\r\n}\r\n\r\nconst standardAllowedHTTPMethods: Set = new Set([\"GET\", \"POST\", \"HEAD\"]);\r\n// @ts-ignore - Condition will always return true - netroufám si kontrolu odebrat, robustnější řešení ničemu nevadí i kdyby bylo opravdu zbytečné\r\nconst supportAbortableFetch: boolean = self.fetch && (self as any).AbortController;\r\nconst supportIterableHeaders: boolean = (self as any).Headers && ((new Headers((new Map([[\"test\", \"abc\"]])) as any)).get(\"test\") === \"abc\"); // detekce jestli prohlížeč akceptuje jako parametr pro konstruktor Headers typ Iterable<[string,string]>, problém zaznamenán na Safari 11-\r\n/**\r\n* Třída pro obecné HTTP dotazy\r\n* @includeToDoc\r\n*/\r\nexport class HTTPRequest {\r\n public static useHTTPMethodOverrideHeader: boolean = true;\r\n\r\n private static _requestSent: Event = new Event();\r\n\r\n /**\r\n * Událost vyvolávaná po odeslání dotazu\r\n */\r\n public static get requestSent(): Event {\r\n const httpRequestClass = GlobalContext.getType(HTTPRequest);\r\n\r\n if (httpRequestClass._requestSent === undefined)\r\n httpRequestClass._requestSent = new Event();\r\n\r\n return httpRequestClass._requestSent;\r\n }\r\n\r\n /**\r\n * Obecná metoda pro posílání HTTP dotazů, která vrací celou odpověď včetně kódu a hlaviček\r\n * @param request Nastavení pro dotaz\r\n */\r\n public static async universalRequest(request: IExtendedRequest, cancellationToken: CancellationToken): Promise {\r\n cancellationToken = cancellationToken || CancellationToken.none; // pro volání mimo TS\r\n\r\n const requstMethod = request.requestMethod;\r\n const overrideHttpMethod = HTTPRequest.useHTTPMethodOverrideHeader && !standardAllowedHTTPMethods.has(requstMethod);\r\n if (overrideHttpMethod) {\r\n request.requestMethod = \"POST\";\r\n request.headers = new HeadersBuilder(request.headers, { \"X-HTTP-Method-Override\": requstMethod });\r\n }\r\n\r\n let result: IHTTPResult;\r\n if (supportAbortableFetch)\r\n result = await HTTPRequest._universalRequestFetch(request, cancellationToken);\r\n else\r\n result = await HTTPRequest._universalRequestXHR(request, cancellationToken);\r\n\r\n self.setTimeout(() => HTTPRequest.requestSent.trigger(request, result)); // setTimeout kvůli ES5 v IE pro LW\r\n\r\n return result;\r\n }\r\n\r\n private static async _universalRequestFetch(request: IExtendedRequest, cancellationToken: CancellationToken): Promise {\r\n cancellationToken.throwIfCancellationRequested();\r\n\r\n const controller = new (self as any).AbortController();\r\n const oncancel = () => controller.abort();\r\n const reg = cancellationToken.register(oncancel);\r\n\r\n const responseType = request.responseType || \"text\";\r\n\r\n try {\r\n const response = await fetch(request.url, {\r\n method: request.requestMethod,\r\n headers: !supportIterableHeaders && (request.headers instanceof HeadersBuilder) ? Array.from(request.headers as any) : request.headers as any, //TODO: pokud bude supportIterableHeaders ve všech námi podporovaných prohlížečích true - odstranit\r\n body: request.data === null ? undefined : request.data, // Edge má problém s NULL a nebere ji jako prázdnou hodnotu\r\n signal: controller.signal,\r\n credentials: \"same-origin\", /* pro odesílání cookies */\r\n } as any);\r\n const okStatus = request.okStatusSet ? request.okStatusSet : RequestDataProcessor.okStatuses;\r\n\r\n if (!okStatus.includes(response.status))\r\n throw new HTTPError(response, await HTTPRequest.getResponse(response, \"\"), request);\r\n\r\n return new HTTPResult(response, await HTTPRequest.getResponse(response, responseType), !!request.readResponseInfos);\r\n } catch (e) {\r\n return HTTPRequest._convertAbortError(e);\r\n } finally {\r\n reg.unregister();\r\n }\r\n }\r\n\r\n private static _convertAbortError(e: any): any {\r\n if (e.name === \"AbortError\") // v FF je to DOMException\r\n throw new CancelError(\"The operation was aborted.\");\r\n\r\n /* Test\r\n let cts = new TescoSW.CancellationTokenSource();\r\n TescoSW.HTTPRequest.universalRequest({ requestMethod: \"GET\", url: \"http://localhost/mw-dev/api/v02/as/data/FOV_hlav?select=Kod,Nazev,Stav_WF.Stav_dokladu,Datum_vystaveni,Datum_Odeslani,Termin_dodani,Datum_terminu_dodani,Zpusob_dodani,Dodavatel.Nazev,Dodavatel.Email,Splatnost_dni,Datum_splneni,Znacka,Odpovedny_prac.Nazev,Druh_objednavky.Nazev,Utvar_objednatele.Kod,Utvar_objednatele.Nazev,Zadavat_ceny_s_DPH,Suma_bez_DPH,Suma_s_DPH,Domaci_mena.Kod,Datum_synchronizace,Nakladove_stredisko.Kod,Nakladove_stredisko.Nazev,Platny,Adr_dodaci_nazev,Pocet_polozek,Schvalovatel.Kod,Schvalovatel.Nazev,Schvalovatel2.Nazev,Schvalovatel2.Kod,Datum_tisku,Last_modif_uzivatel\"}, cts.token).then((r)=>logger.log(r)).catch((e)=> { logger.log(e); logger.log(e.name); });\r\n self.setTimeout(()=>cts.cancel(), 1);\r\n */\r\n\r\n throw e;\r\n }\r\n\r\n private static _universalRequestXHR(request: IExtendedRequest, cancellationToken: CancellationToken): Promise {\r\n return new Promise((resolve, reject) => {\r\n cancellationToken.throwIfCancellationRequested();\r\n\r\n const responseType = request.responseType || \"text\";\r\n\r\n const req = new XMLHttpRequest();\r\n\r\n const oncancel = () => {\r\n req.abort();\r\n reject(new CancelError(undefined, cancellationToken.id));\r\n };\r\n\r\n const reg = cancellationToken.register(oncancel);\r\n\r\n req.onload = function(this: XMLHttpRequest) {\r\n try {\r\n reg.unregister();\r\n\r\n const okStatus = request.okStatusSet ? request.okStatusSet : RequestDataProcessor.okStatuses;\r\n if (okStatus.includes(this.status)) {\r\n resolve(new HTTPResult(this, this.response, !!request.readResponseInfos));\r\n } else {\r\n reject(new HTTPError(this, this.response, request));\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n };\r\n req.onerror = function(this: XMLHttpRequest) {\r\n try {\r\n reg.unregister();\r\n\r\n reject(new HTTPError(this, this.response, request));\r\n } catch (e) {\r\n reject(e);\r\n }\r\n };\r\n\r\n const url = request.url;\r\n\r\n req.open(request.requestMethod, url);\r\n\r\n const headers = request.headers;\r\n if (headers)\r\n for (const headerPair of (Reflect.has(headers, \"entries\") ? (headers as any).entries() : Object.entries(headers)))\r\n req.setRequestHeader(headerPair[0], headerPair[1]);\r\n\r\n req.responseType = responseType;\r\n\r\n req.send(request.data);\r\n });\r\n }\r\n\r\n /**\r\n * Obecná metoda pro posílání HTTP dotazů\r\n * @param requestMethod Typ requestu (\"GET\", \"POST\", ...)\r\n * @param url Adresa dotazu\r\n * @param data Odesílaná data v těle\r\n * @param headers Extra hlavičky dotazu\r\n * @param responseType Jakého typu mají být návratová data (\"text\", \"arraybuffer\", ...)\r\n */\r\n public static request(requestMethod: string, url: string, data?: any, headers?: HTTPHeaders, responseType: XMLHttpRequestResponseType = \"text\", okStatusSet?: HTTPStatus[], cancellationToken: CancellationToken = CancellationToken.none): Promise {\r\n return HTTPRequest.universalRequest({\r\n requestMethod: requestMethod,\r\n url: url,\r\n data: data,\r\n headers: headers,\r\n responseType: responseType,\r\n okStatusSet: okStatusSet,\r\n }, cancellationToken)\r\n .then((responseData) => responseData.response);\r\n }\r\n\r\n /**\r\n * Obecná metoda pro HTTP GET dotaz\r\n * @param url Adresa dotazu\r\n * @param responseType Jakého typu mají být návratová data (\"text\", \"arraybuffer\", ...)\r\n * @param headers Extra hlavičky dotazu\r\n */\r\n public static get(url: string, responseType: XMLHttpRequestResponseType = \"text\", headers?: HTTPHeaders, cancellationToken: CancellationToken = CancellationToken.none): Promise {\r\n return HTTPRequest.universalRequest({\r\n requestMethod: \"GET\",\r\n url: url,\r\n headers: headers,\r\n responseType: responseType,\r\n }, cancellationToken)\r\n .then((responseData) => responseData.response);\r\n }\r\n\r\n /**\r\n * Obecná metoda pro HTTP GET dotaz, která vrací celou odpověď včetně hlaviček\r\n * @param url Adresa dotazu\r\n * @param responseType Jakého typu mají být návratová data (\"text\", \"arraybuffer\", ...)\r\n * @param headers Extra hlavičky dotazu\r\n * @param okStatusSet Množina přijatelných stavových HTTP kódů\r\n */\r\n public static getWithWholeReponse(url: string, responseType: XMLHttpRequestResponseType = \"text\", headers?: HTTPHeaders, okStatusSet?: HTTPStatus[], cancellationToken: CancellationToken = CancellationToken.none): Promise {\r\n return HTTPRequest.universalRequest({\r\n requestMethod: \"GET\",\r\n url: url,\r\n headers: headers,\r\n responseType: responseType,\r\n okStatusSet: okStatusSet,\r\n readResponseInfos: true,\r\n }, cancellationToken);\r\n }\r\n\r\n public static readonly jsonHeaders = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n \"Accept\": \"application/json, text/javascript, */*; q=0.01\",\r\n };\r\n\r\n /**\r\n * Obecná metoda pro JSON dotaz\r\n * @param requestMethod Typ requestu (\"GET\", \"POST\", ...)\r\n * @param url Adresa dotazu\r\n * @param additionalData Další data, které můžou víc specifikovat dotaz\r\n */\r\n public static async jsonRequest(requestMethod: string, url: string, cancellationToken: CancellationToken, additionalData: IRequestParamsAndData): Promise {\r\n const headers = !additionalData.headers ? HTTPRequest.jsonHeaders : new HeadersBuilder(HTTPRequest.jsonHeaders, additionalData.headers);\r\n const responseData = await HTTPRequest.universalRequest({ requestMethod: requestMethod, url: url, data: JSON.stringify(additionalData.data), headers: headers, okStatusSet: additionalData.okStatusSet }, cancellationToken);\r\n return !responseData.response ? null : JSON.parse(responseData.response); // ideal responseData.json();\r\n }\r\n\r\n public static getHeader(response: XMLHttpRequest | Response, headerName: string): string | null {\r\n if (response instanceof XMLHttpRequest)\r\n return response.getResponseHeader(headerName);\r\n else\r\n return response.headers.get(headerName);\r\n }\r\n\r\n public static async getResponse(responseData: XMLHttpRequest | Response, responseType: XMLHttpRequestResponseType): Promise {\r\n if (responseData instanceof Response)\r\n try {\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n return await responseData.arrayBuffer();\r\n case \"blob\":\r\n return await responseData.blob();\r\n case \"json\":\r\n return await responseData.json();\r\n default:\r\n return await responseData.text();\r\n }\r\n } catch (e) {\r\n HTTPRequest._convertAbortError(e);\r\n }\r\n else {\r\n const covertError = () => {\r\n throw new TypeError(`Can not convert response from \"${responseData.responseType}\" to \"${responseType}\"`);\r\n };\r\n\r\n if (!responseType)\r\n return responseData.response;\r\n\r\n if (!responseData.responseType || responseData.responseType == \"text\")\r\n switch (responseType) {\r\n case \"text\":\r\n return responseData.response;\r\n case \"json\":\r\n return !responseData.response ? null : JSON.parse(responseData.response);\r\n default:\r\n covertError();\r\n }\r\n else if (responseData.responseType != responseType)\r\n covertError();\r\n\r\n return responseData.response;\r\n }\r\n }\r\n}\r\n\r\nGlobalContext.registerType(HTTPRequest);\r\n\r\nclass RequestDataProcessor {\r\n public static readonly okStatuses = [HTTPStatus.ok];\r\n\r\n public static setResponseInfos(httpResponse: IHTTPResult, serverResponse: XMLHttpRequest | Response, readResponseInfos: boolean): void {\r\n if (readResponseInfos) {\r\n httpResponse.status = serverResponse.status;\r\n httpResponse.statusText = serverResponse.statusText;\r\n const conType = serverResponse instanceof XMLHttpRequest ? serverResponse.getResponseHeader(\"Content-Type\") : serverResponse.headers.get(\"Content-Type\");\r\n httpResponse.contentType = conType ? conType : undefined;\r\n }\r\n }\r\n}\r\n\r\nexport interface IHTTPResult {\r\n status?: HTTPStatus;\r\n statusText?: string;\r\n response: any;\r\n\r\n contentType?: string;\r\n /**\r\n * Vrátí hodnotu požadované HTTP hlavičky nebo null, pokud nebyla nalezena. Vyhledává case-insensitive.\r\n * Hlavičky jsou ze standardu c-i, takže je vždy preferovaná tato metoda pro přístup k nim.\r\n * Chrome od vyšších verzí (cca 50+) si dokonce všechny přijaté hlavičky převádí na lower-case.\r\n * @param header Název hledané hlavičky\r\n */\r\n getResponseHeader: (header: string) => string | null;\r\n}\r\n\r\n// TODO: chtělo by to předělat na asynchronní dočítání response. Ideálně async metody json, text, ... jak jsou na fetch\r\n\r\n/**\r\n * Výjimka vyvolávaná při HTTP chybách\r\n */\r\nexport class HTTPError extends Error implements IHTTPResult {\r\n public readonly status: HTTPStatus | undefined;\r\n public readonly statusText: string | undefined;\r\n public readonly contentType?: string | undefined;\r\n public readonly response: any | undefined;\r\n public readonly request: IExtendedRequest;\r\n\r\n private readonly _serverResponse: XMLHttpRequest | Response | undefined;\r\n\r\n constructor(serverResponse: XMLHttpRequest | Response, responseBody: any, request: IExtendedRequest) {\r\n super(`${serverResponse.status} - ${serverResponse.statusText}`);\r\n this.response = responseBody;\r\n this.request = request;\r\n RequestDataProcessor.setResponseInfos(this, serverResponse, true);\r\n }\r\n\r\n public getResponseHeader(header: string): string | null {\r\n return HTTPRequest.getHeader(this._serverResponse!, header);\r\n }\r\n}\r\n\r\nclass HTTPResult implements IHTTPResult {\r\n public readonly status: HTTPStatus | undefined;\r\n public readonly statusText: string | undefined;\r\n public readonly contentType?: string;\r\n public readonly response: any;\r\n\r\n /*\r\n TODO: časem namísto response\r\n public json(): Promise { return HTTPRequest.getResponse(this._serverResponse, \"json\"); }\r\n public text(): Promise { return HTTPRequest.getResponse(this._serverResponse, \"text\"); }\r\n public getResponse(responseType: XMLHttpRequestResponseType): Promise { return HTTPRequest.getResponse(this._serverResponse, responseType); }\r\n */\r\n\r\n private readonly _serverResponse: XMLHttpRequest | Response;\r\n\r\n constructor(serverResponse: XMLHttpRequest | Response, responseBody: any, readResponseInfos: boolean) {\r\n this._serverResponse = serverResponse;\r\n this.response = responseBody;\r\n RequestDataProcessor.setResponseInfos(this, serverResponse, readResponseInfos);\r\n }\r\n\r\n public getResponseHeader(header: string): string | null {\r\n return HTTPRequest.getHeader(this._serverResponse, header);\r\n }\r\n}\r\n","import { ISerializedError } from \"./BasicWorker\";\r\n\r\nexport interface WorkerMessage {\r\n id?: string;\r\n type: string;\r\n data?: any;\r\n}\r\n\r\nexport interface WorkerResponseMessage {\r\n type: string;\r\n items: readonly WorkerResponseItem[];\r\n error?: string;\r\n}\r\n\r\nexport interface WorkerResponseItem {\r\n id?: string;\r\n data?: any;\r\n exception?: ISerializedError;\r\n}\r\n\r\n/** Zpráva konfigurující worker, který potřebuje komunikovat s webovou službou */\r\nexport interface ICommunicationInitializationMessageData {\r\n /** Url služby, se kterou se má komunikovat */\r\n readonly communicationUrl: string;\r\n /** Zda se má komunikovat přes staré rozhraní webové služby */\r\n readonly useLegacyApi: boolean;\r\n}\r\n","import { ILoggingSettings, ISectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { createDefaultSectionLoggerFactory } from \"Logging/defaultLogger\";\r\nimport { IHTTPResult } from \"../../Global/Base/Comunication/HTTPRequest\";\r\nimport { WorkerMessage, WorkerResponseMessage } from \"./WorkerMessages\";\r\n\r\nexport interface ISerializedError extends IHTTPResult {\r\n typeName: string | undefined;\r\n}\r\n\r\nexport class SerializedError implements ISerializedError {\r\n public status: number | undefined;\r\n public statusText: string | undefined;\r\n public response: any | undefined;\r\n public typeName: string | undefined;\r\n\r\n public getResponseHeader(_header: string): string | null {\r\n return null;\r\n }\r\n}\r\n\r\nexport interface IBasicWorkerInitializationMessageData {\r\n readonly loggingSettings: ILoggingSettings;\r\n readonly loggingSection: LoggingSection;\r\n}\r\n\r\nexport class BasicWorker {\r\n private _portGen: number = 0;\r\n private _ports: Map = new Map();\r\n\r\n /**\r\n * Určeno i pro potomky BasicWorkeru.\r\n */\r\n protected _logger: ISectionLogger | undefined;\r\n\r\n constructor() {\r\n (self as any).onmessage = this._processMessage.bind(this); // pokud bych pouzil tohle self.onmessage = this._processMessage , tak v metode _processMessage bude this obsahovat objekt self :-(\r\n // klidne by to slo udelat i takhle self.onmessage = (e) => this._processMessage(e);\r\n if (\"onconnect\" in self)\r\n (/**/self as any).onconnect = this._processConnect.bind(this);\r\n }\r\n\r\n /**\r\n * Musí být provoláno z potomků BasicWorkeru při inicializaci.\r\n */\r\n public initialize(initData: IBasicWorkerInitializationMessageData): void {\r\n // Nejsou tu zohledněny custom implementace.\r\n const defaultSectionLoggerFactory = createDefaultSectionLoggerFactory(initData.loggingSettings);\r\n this._logger = defaultSectionLoggerFactory.create(initData.loggingSection);\r\n }\r\n\r\n private _processMessage(e: MessageEvent): void {\r\n switch ((e.data as WorkerMessage).type) {\r\n case \"connect\":\r\n this._processConnect(e);\r\n break;\r\n }\r\n }\r\n\r\n private _processConnect(e: MessageEvent): void {\r\n const port: MessagePort = e.ports[0];\r\n if (port) {\r\n const portID = ++this._portGen;\r\n this._ports.set(portID, port);\r\n port.onmessage = this._processPortMessage.bind(this, portID);\r\n }\r\n }\r\n\r\n protected _processPortMessage(portID: number, e: MessageEvent): void {\r\n switch ((e.data as WorkerMessage).type) {\r\n case \"disconnect\": {\r\n const port = this._ports.get(portID);\r\n if (port) {\r\n this._ports.delete(portID);\r\n (port as any).onmessage = null;\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n\r\n public sendMessage(portID: number, msg: WorkerResponseMessage): void {\r\n try {\r\n const port = this._ports.get(portID);\r\n if (port)\r\n port.postMessage(msg);\r\n } catch (ex) {\r\n this._logger!.error(ex);\r\n }\r\n }\r\n\r\n public cloneException(ex: Error): ISerializedError {\r\n let result = new SerializedError();\r\n if (Reflect.has(ex, \"status\"))\r\n result.status = Reflect.get(ex, \"status\");\r\n if (ex instanceof Object) {\r\n const prot = Reflect.getPrototypeOf(ex);\r\n result = this._copyPrimitivePropertyValues(ex);\r\n result.typeName = prot?.constructor?.name;\r\n } else {\r\n result.typeName = typeof ex;\r\n result.response = ex + \"\";\r\n }\r\n return result;\r\n }\r\n\r\n private _copyPrimitivePropertyValues(obj: any): any {\r\n const result: any = {};\r\n for (const prop of Reflect.ownKeys(obj)) {\r\n const v = obj[prop];\r\n if (v instanceof Object)\r\n result[prop] = JSON.stringify(v);\r\n else\r\n result[prop] = v;\r\n }\r\n return result;\r\n }\r\n}\r\n","import { IBasicWorkerInitializationMessageData } from \"OW.Remoting/Basic/BasicWorker\";\r\nimport { ICommunicationInitializationMessageData } from \"OW.Remoting/Basic/WorkerMessages\";\r\n\r\nexport interface IWorkerInitializationMessageData extends ICommunicationInitializationMessageData, IBasicWorkerInitializationMessageData {\r\n readonly appId: string;\r\n}\r\n","import { IBasicWorkerInitializationMessageData } from \"../../OW.Remoting/Basic/BasicWorker\";\r\nimport { ICommunicationInitializationMessageData } from \"../../OW.Remoting/Basic/WorkerMessages\";\r\n\r\nexport interface IWorkerInitializationMessageData extends ICommunicationInitializationMessageData, IBasicWorkerInitializationMessageData {\r\n readonly preloadFormCount?: number;\r\n readonly appId: string;\r\n}\r\n","import { ILoggingSettings } from \"@multiweb/logging\";\r\n\r\n/**\r\n * Konfigurační vlastnosti pro klienta, které mohou být evedeny v souboru initParams.json\r\n * @includeToDoc\r\n */\r\nexport interface IInitParams {\r\n /**\r\n * Název aplikace zobrazovaný v levém horním rohu a na záložce prohlížeče.\r\n * Výchozí hodnota je prázdný řetězec.\r\n */\r\n appName: string;\r\n /**\r\n * Kódové označení klientské aplikace.\r\n * Používá se například pro párování konkrétní klientské aplikace na konfiguraci pro přihlašování na webové službě.\r\n * Výchozí hodnota je \"MW\".\r\n */\r\n clientCode: string;\r\n /**\r\n * Nastavení typu tiskových sestav.\r\n * Výchozí hodnota je \"pdf\".\r\n */\r\n reportType: string;\r\n /**\r\n * Pokud je specifikováno, tak omezuje kořenové uzly hlavního navigačního menu (jsou zobrazeny jen vyjmenované uzly).\r\n * Týká se atributu Kod položky menu.\r\n * Výchozí hodnota je `undefined`.\r\n */\r\n menuItems?: string[];\r\n /**\r\n * Typ použitého FormUI (vzhled toolbaru, formulářového menu a další ovládacích prvků).\r\n * Pokud je použita vlastní implementace FormUI, tak se zde nastaví její identifikátor a je potřeba ji zaregistrovat pomocí vlastní implementace IFormUIFactory.\r\n * Výchozí hodnota je \"standard\".\r\n */\r\n formUI: string; //TODO (WI-15673) Odstranit, nebude potřeba\r\n /**\r\n * Interval v minutách, po jehož uplynutí je při neaktivitě uživatele volán udržovací dotaz na webovou službu, který zajišťuje, že nevyprší uživatelská session.\r\n * Udržovací dotaz je ve tvaru \"UserRoleIDs?heartBeat=true\".\r\n * Hodnota 0 deaktivuje tuto funkcionalitu.\r\n * Výchozí hodnota je 0.\r\n */\r\n heartBeatInterval: number;\r\n /**\r\n * Doba v minutách, po kterou jsou volány udržovací dotazy na webovou službu při souvislé neaktivitě uživatele. Pokud neaktivita překročí tuto dobu, tak se udržovací dotazy přestanou posílat.\r\n * Hodnota 0 vypíná tento omezovač. Dotazy se budou opakovat do nekonečna.\r\n * Výchozí hodnota je 0.\r\n */\r\n heartBeatTimeout: number;\r\n /**\r\n * Seznam externích modulů, které mají být zavedeny.\r\n */\r\n dependencies?: IInitParamsDependency[];\r\n /**\r\n * Seznam konfigurace pro moduly\r\n */\r\n modules?: IInitParamsModulesConfigList;\r\n /**\r\n * Pole názvů souborů s CSS styly. Všechny soubory musí být uvnitř klientské složky 'css' nebo v její podsložce.\r\n * Pokud je hodnotou undefined (nevyplněno, výchozí hodnota), tak se použijí výchozí styly (multiweb.css a Custom.css).\r\n * Pokud je hodnotou pole, tak se automaticky nezavádí žádné styly, ale pouze styly uvedené v poli a zavádí se v daném pořadí.\r\n * Je tedy nutné uvést i soubor 'multiweb.css', pokud se má použít.\r\n * Pokud však máte vlastní soubor(y), tak styl 'multiweb.css' vůbec použít nemusíte a můžete vyjmenovat pouze své soubory se styly.\r\n * Soubory mohou být i hlouběji zanořeny.\r\n * Příklad použití: [\"multiweb.css\", \"dashboard/main.css\", \"dashboard/blue.css\", \"othercomponent/styles.css\"].\r\n */\r\n styles?: string[];\r\n /**\r\n * Výchozí chování porovnávání řetězců v našeptávači LOV. Může mít hodnotu \"startsWith\" nebo \"contains\" (výchozí)\r\n */\r\n defaultWhisperer: string;\r\n /**\r\n * Výchozí chování porovnávání řetězců ve filtru. Může mít hodnotu \"startsWith\" (výchozí) nebo \"contains\"\r\n */\r\n defaultFilter: string;\r\n /**\r\n * Vývojový režim. Povoluje některá nastavení a funkcionality, které usnadňují vývoj, ale ke kterým by neměl mít přístup běžný uživatel.\r\n * Na produkčním prostření NESMÍ být zapnuté.\r\n * Může nabývat boolean hodnot nebo obsahovat strukturu s dalším nastavením. Pokud obsahuje strukturu, tak je automaticky zapnutý.\r\n * Výchozí hodnota je false.\r\n */\r\n developmentMode: boolean | IDevelopmentSettings;\r\n\r\n /**\r\n * @see ILoggingSettings\r\n */\r\n logging: ILoggingSettings;\r\n\r\n /**\r\n * Interval v sekundách pro logování uživatelských akcí. Pokud není uvedeno nebo je hodnota 0 detekce uživatelských akcí je vypnutá.\r\n */\r\n userActionLoggerInterval: number;\r\n /**\r\n * Maximalní počet formulářů zobrazených v sekci 'poslední otevřené formuláře'. Výchozí hodnota je 5\r\n */\r\n openedFormsHistoryCount: number;\r\n /**\r\n * The maximum number of records for objectList defined by ids (created with CTRL+A). Default value is 500.\r\n */\r\n forceIdsInSelectAllConditionThreshold: number;\r\n /**\r\n * Nastavuje stav rozbalenosti hlavního menu. Výchozí hodnota je false, tedy menu je sbalené.\r\n */\r\n showMainMenuExpanded: boolean;\r\n /**\r\n * Nastavuje zobrazení popisků položek nejvyšší úrovně hlavního menu. Výchozí hodnota je false, tedy popisky jsou skryté.\r\n */\r\n showMainMenuCaptions: boolean;\r\n /**\r\n * Příznak, zda se v hlavičkách requestů na server budou posílat všechny aktivní role uživatele dle profilu. Výchozí hodnota je false.\r\n */\r\n legacyActiveRoles?: boolean;\r\n /**\r\n * Při nastavení této vlastnosti na true bude na všech ReportAction a SeparateDetailFrame implicitně nastavena vlastnost ShowSettings na true,\r\n * pokud není v definici formuláře explicitně přepsána na false.\r\n */\r\n defaultShowSettings?: boolean;\r\n /**\r\n * Url adresa webové služby, se kterou má aplikace komunikovat.\r\n * Může být absolutní, pak se uvádí i se schématem (https://).\r\n * Nebo může být relativní. Hodnota \".\" značí, že služba i klient jsou v jednom adresáři, hodnota \"..\" značí, že služba je o úroveň výše než klient (výchozí chování).\r\n */\r\n webServiceUrl: string;\r\n /**\r\n * Nastaví doménu pro přihlašování uživatelů. Zadaná doména se při přihlašování skrytě přidá před uživatelské jméno.\r\n * Výsledný UserName pro doménu 'tescosw.loc' a uživatele 'isum_test_01' bude vypadat takto: 'tescosw.loc\\isum_test_01'.\r\n * Výchozí hodnota je nevyplněno (undefined), kdy se UserName nějak neupravuje.\r\n */\r\n defaultDomain?: string;\r\n /**\r\n * Počet nejčastějších formulářů, jejich definice se přednačítají při spuštění aplikace.\r\n * Výchozí hodnota je 10.\r\n * Hodnota 0 předkešování vypne.\r\n */\r\n preloadFormCount: number;\r\n\r\n /**\r\n * Nastavuje, které experimentální funkcionality mají být aktivní, @see https://www.martinfowler.com/articles/feature-toggles.html Feature Toggles.\r\n * To umožňuje zkoušet některé funkcionality ještě dříve, než jsou kompletně dokončené a určené pro produkční nasazení.\r\n * V produkčním prostředí by neměly být aktivní žádné experimenty.\r\n * Výchozí hodnota je nevyplněno (undefined), tedy žádné experimentální funkcionality nejsou aktivovány.\r\n */\r\n experiments?: boolean | readonly ExperimentName[];\r\n\r\n /**\r\n * Výchozí ikona položek menu\r\n */\r\n defaultMenuItemsIcon?: string;\r\n}\r\n\r\n/**\r\n * Názvy experimentálních funkcionalit\r\n */\r\nexport type ExperimentName = \"EasterEggs\";\r\n\r\n/**\r\n * Interface pro definici externího modulu.\r\n * @includeToDoc\r\n */\r\nexport interface IInitParamsDependency {\r\n /**\r\n * Název modulu, který má být zaveden.\r\n */\r\n name: string;\r\n /**\r\n * Vygenerovaný soubor s modulem (bez přípony .js) uvnitř klientské složky 'js'.\r\n */\r\n file: string;\r\n}\r\n\r\n/**\r\n * Interface pro definici konfigurace modulu\r\n * @includeToDoc\r\n */\r\nexport interface IInitParamsModulesConfigList {\r\n pdfEditor?: IInitParamPDFEditorConfig;\r\n [module: string]: any;\r\n}\r\n\r\n/**\r\n * Definice podrobného nastavení pro vývojový režim. Povoluje některá nastavení a funkcionality, které usnadňují vývoj, ale ke kterým by neměl mít přístup běžný uživatel.\r\n * Na produkčním prostření NESMÍ být zapnuté.\r\n * @includeToDoc\r\n */\r\nexport interface IDevelopmentSettings {\r\n /**\r\n * Uživatelské jméno, pod kterým se aplikace automaticky přihlásí\r\n */\r\n userName?: string;\r\n /**\r\n * Uživatelské heslo, pod kterým se aplikace automaticky přihlásí\r\n */\r\n userPassword?: string;\r\n /**\r\n * Určuje verzi webové služby, na kterou se klientská aplikace napojuje.\r\n * Je potřeba jen v případě, že se klientská aplikace napojuje na službu starší verze, aby věděla, jak s ní komunikovat.\r\n * Pouze pro účely vývoje! Veškerá funkcionalita aplikace není zaručena, ale základní funkcionalita by měla fungovat.\r\n * Verze se zadává jako text ve tvaru XX.YY\r\n */\r\n webServiceVersion?: string;\r\n /**\r\n * Příznak, zda se má zapnout debug mód vyhodnocování lokálně vyhodnotitelných podmínek.\r\n * V něm se tyto podmínky posílají k vyhodnocení na server a výsledek se porovnává s lokálním výsledkem.\r\n */\r\n debugLocallyEvaluableConditions?: boolean;\r\n}\r\n\r\n/**\r\n * Rozhrani pro konfiguraci modulu PDFEditor\r\n */\r\nexport interface IInitParamPDFEditorConfig {\r\n previewFileSizeLimit?: number;\r\n}\r\n","import { ILoggingSettings } from \"@multiweb/logging\";\r\nimport { IDevelopmentSettings, IInitParams } from \"./IInitParams\";\r\n\r\n/**\r\n * Konfigurační třída představující objekt s InitParams\r\n */\r\nexport class AppConfigurationBase implements Readonly {\r\n // property převzaté z IInitParams, bez skutečných implementací a hodnot\r\n // anotace ts-ignore jsou potřeba pro striktní kompilaci, která nepozná, že se jedná o proxy a vlastnosti ve skutečnosti nejsou potřeba\r\n\r\n // @ts-ignore\r\n public readonly appName: string;\r\n // @ts-ignore\r\n public readonly clientCode: string;\r\n // @ts-ignore\r\n public readonly reportType: string;\r\n // @ts-ignore\r\n public readonly formUI: string;\r\n // @ts-ignore\r\n public readonly heartBeatInterval: number;\r\n // @ts-ignore\r\n public readonly heartBeatTimeout: number;\r\n // @ts-ignore\r\n public readonly developmentMode: boolean | IDevelopmentSettings;\r\n // @ts-ignore\r\n public readonly logging: ILoggingSettings;\r\n // @ts-ignore\r\n public readonly userActionLoggerInterval: number;\r\n // @ts-ignore\r\n public readonly openedFormsHistoryCount: number;\r\n // @ts-ignore\r\n public readonly forceIdsInSelectAllConditionThreshold: number;\r\n // @ts-ignore\r\n public readonly webServiceUrl: string;\r\n // @ts-ignore\r\n public readonly showMainMenuExpanded: boolean;\r\n // @ts-ignore\r\n public readonly showMainMenuCaptions: boolean;\r\n // @ts-ignore\r\n public readonly legacyActiveRoles: boolean;\r\n // @ts-ignore\r\n public readonly defaultShowSettings: boolean;\r\n // @ts-ignore\r\n public readonly preloadFormCount: number;\r\n // @ts-ignore\r\n public readonly defaultMenuItemsIcon: string;\r\n\r\n // @ts-ignore\r\n public get defaultWhisperer(): string;\r\n // @ts-ignore\r\n public get defaultFilter(): string;\r\n\r\n // skutečný obsah třídy začíná zde\r\n\r\n protected readonly _initParams: Readonly;\r\n\r\n constructor(initParams: IInitParams) {\r\n this._initParams = initParams;\r\n\r\n // přístup k původním initParams zabezpečuje Proxy\r\n const handler: ProxyHandler = {\r\n get: (_target: this, property: PropertyKey) => this._handleGetProperty(this._initParams, property),\r\n set: (_target: this, property: PropertyKey, value: any) => this._handleSetProperty(this._initParams, property, value),\r\n has: (_target: this, property: PropertyKey) => this._handlegetHas(this._initParams, property),\r\n ownKeys: (_target: this) => this._handleOwnKeys(this._initParams),\r\n getOwnPropertyDescriptor: (_target: this, property: PropertyKey) => this._handlegetOwnPropertyDescriptor(this._initParams, property),\r\n };\r\n\r\n return new Proxy(this, handler);\r\n }\r\n\r\n private _handleGetProperty(target: Readonly, property: PropertyKey): any {\r\n if (Reflect.has(this, property))\r\n return Reflect.get(this, property);\r\n\r\n return Reflect.get(target, property);\r\n }\r\n\r\n private _handleSetProperty(_target: Readonly, property: PropertyKey, value: any): boolean {\r\n if (Reflect.has(this, property))\r\n return Reflect.set(this, property, value);\r\n\r\n throw new Error(`Unable to set readonly property '${property.toString()}`);\r\n }\r\n\r\n private _handleOwnKeys(target: Readonly): (string | symbol)[] {\r\n return [...Reflect.ownKeys(target), ...Reflect.ownKeys(this)].filter(key => typeof key !== \"string\" || !key.startsWith(\"_\"));\r\n }\r\n\r\n private _handlegetOwnPropertyDescriptor(target: Readonly, property: PropertyKey): PropertyDescriptor | undefined {\r\n return Reflect.getOwnPropertyDescriptor(this, property) ?? Reflect.getOwnPropertyDescriptor(target, property);\r\n }\r\n\r\n private _handlegetHas(target: Readonly, property: PropertyKey): boolean {\r\n return Reflect.has(this, property) || Reflect.has(target, property);\r\n }\r\n}\r\n","import { ExperimentName, IDevelopmentSettings, IInitParams } from \"./IInitParams\";\r\n\r\n/**\r\n * Poskytuje konfigurační nastavení aplikace\r\n * @includeToDoc\r\n */\r\nexport interface IAppConfiguration extends Readonly {\r\n /**\r\n * Výchozí způsob srovnání řetězců v našeptávači LOV. Hodnota je ve formě řetězce používané ve struktuře filtrů.\r\n */\r\n readonly defaultWhisperer: string;\r\n /**\r\n * Výchozí způsob srovnání řetězců ve filtru. Hodnota je ve formě řetězce používané ve struktuře filtrů.\r\n */\r\n readonly defaultFilter: string;\r\n\r\n /**\r\n * Vrací hodnotu vlastnosti konfiguračního nastavení 'developmentMode' v initParams.\r\n * @param option Název vlastnosti, kterou chceme zjistit\r\n */\r\n getDevelopmentOption(option: K): Readonly | null;\r\n /**\r\n * Zjistí, zda je předaná experimentální funkcionalita aktivována.\r\n * @see https://www.martinfowler.com/articles/feature-toggles.html Feature Toggles\r\n * @param experimentName Název funkcionality\r\n */\r\n isExperimentEnabled(experimentName: ExperimentName): boolean;\r\n}\r\n","import { getDefaultLoggingSettings, ILoggingSettings, LoggingLevel, LoggingSection } from \"@multiweb/logging\";\r\nimport { createDefaultSectionLoggerFactory } from \"Logging/defaultLogger\";\r\nimport { AppConfigurationBase } from \"./AppConfigurationBase\";\r\nimport { IAppConfiguration } from \"./IAppConfiguration\";\r\nimport { ExperimentName, IDevelopmentSettings, IInitParams } from \"./IInitParams\";\r\n\r\nexport class AppConfiguration extends AppConfigurationBase implements IAppConfiguration {\r\n constructor(initParamsRaw: Partial) {\r\n if (!initParamsRaw) {\r\n super(AppConfiguration._createDefault());\r\n } else {\r\n super(AppConfiguration._validateAndAddDefaults(initParamsRaw));\r\n }\r\n\r\n if (this._initParams.developmentMode && !(location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\")) {\r\n const logger = createDefaultSectionLoggerFactory(this.logging).create(LoggingSection.configuration);\r\n logger.warn(\"Development mode enabled. It cannot be enabled in production environment!\");\r\n }\r\n }\r\n\r\n public override get defaultWhisperer(): string {\r\n if (StringComparisonTypes.isStartsWith(this._initParams.defaultWhisperer))\r\n return StringComparisonTypes.startsWith;\r\n else\r\n return StringComparisonTypes.contains;\r\n }\r\n\r\n public override get defaultFilter(): string {\r\n if (StringComparisonTypes.isContains(this._initParams.defaultFilter))\r\n return StringComparisonTypes.contains;\r\n else\r\n return StringComparisonTypes.startsWith;\r\n }\r\n\r\n private static _createDefault(): IInitParams {\r\n return {\r\n appName: \"\",\r\n clientCode: \"MW\",\r\n reportType: \"pdf\",\r\n formUI: \"standard\",\r\n developmentMode: false,\r\n logging: getDefaultLoggingSettings(false),\r\n heartBeatInterval: 0,\r\n heartBeatTimeout: 0,\r\n userActionLoggerInterval: 0,\r\n defaultWhisperer: StringComparisonTypes.contains,\r\n defaultFilter: StringComparisonTypes.startsWith,\r\n openedFormsHistoryCount: 5,\r\n forceIdsInSelectAllConditionThreshold: 500,\r\n showMainMenuExpanded: false,\r\n showMainMenuCaptions: false,\r\n legacyActiveRoles: false,\r\n defaultShowSettings: false,\r\n webServiceUrl: \"..\",\r\n preloadFormCount: 10,\r\n };\r\n }\r\n\r\n private static _createDefaultDevelopmentSettings(): IDevelopmentSettings {\r\n return {};\r\n }\r\n\r\n private static _getRawLoggingSettings(initParamsRaw: Partial): ILoggingSettings {\r\n const defaultSettings = getDefaultLoggingSettings(!!initParamsRaw.developmentMode);\r\n if (initParamsRaw.logging) {\r\n return {\r\n sections: initParamsRaw.logging.sections ?? defaultSettings.sections,\r\n defaultLevel: initParamsRaw.logging.defaultLevel ?? defaultSettings.defaultLevel,\r\n };\r\n } else {\r\n return defaultSettings;\r\n }\r\n }\r\n\r\n private static _validateAndAddDefaults(initParamsRaw: Partial): IInitParams {\r\n if (!initParamsRaw)\r\n throw new Error(\"Argument 'initParams' cannot be null\");\r\n\r\n const initParams = { ...initParamsRaw };\r\n\r\n const logger = createDefaultSectionLoggerFactory(AppConfiguration._getRawLoggingSettings(initParamsRaw)).create(LoggingSection.configuration);\r\n\r\n const validate = (options: T, defaults: T, property: K, predicate: (propertyValue: T[K]) => boolean, propertyTypeName: string, allowNull: boolean = false) => {\r\n if (options[property] == null) {\r\n if (!allowNull)\r\n logger.error(`Undefined property '${String(property)}'. Default value '${defaults[property]}' used instead.`); //`\r\n options[property] = defaults[property];\r\n } else if (!predicate(options[property])) {\r\n logger.error(`Parameter '${String(property)}' is not ${propertyTypeName}. Default value '${defaults[property]}' used instead.`); //`\r\n options[property] = defaults[property];\r\n }\r\n };\r\n\r\n const validateString = (options: T, defaults: T, property: K, allowNull: boolean = false) => {\r\n validate(options, defaults, property, (val) => typeof val === \"string\", \"string\", allowNull);\r\n };\r\n const validateArray = (options: T, defaults: T, property: K, allowNull: boolean = false) => {\r\n validate(options, defaults, property, (val) => Array.isArray(val), \"array\", allowNull);\r\n };\r\n const validateBoolean = (options: T, defaults: T, property: K, allowNull: boolean = false) => {\r\n validate(options, defaults, property, (val) => typeof val === \"boolean\", \"boolean\", allowNull);\r\n };\r\n\r\n /**\r\n * Usnadňuje validaci volitelné položky (`key/value`) objektu.\r\n * - Pokud je klíč platný, pak zvaliduje hodnotu.\r\n * - Pokud klíč platný není, pak zaloguje chybu a položku z rodiče odstraní.\r\n *\r\n * @param key Klíč, jehož se validace týká. (Vlastní validace se tu neprovádí. Slouží pro zalogování chyby a pro odebrání z rodiče.)\r\n * @param isKeyValid _True_, pokud je `key` platný.\r\n * @param parent Rodičovský objekt pro `key`. (Aneb `parent[key]` je předmětem validace.)\r\n * @param parentName Jméno rodičovského objektu. Bude součástí error-message v případě nevalidního klíče.\r\n * @param valueValidationCallback Provede validaci hodnoty (`parent[key]`), pokud je klíč validní.\r\n */\r\n const validateOrRemoveIfKeyInvalid = (key: string, isKeyValid: boolean, parent: {[key: string]: any}, parentName: string, valueValidationCallback: () => void) => {\r\n if (isKeyValid) {\r\n valueValidationCallback();\r\n } else {\r\n logger.error(`Key '${String(key)}' is not valid for ${parentName}. The key will be REMOVED!`);\r\n delete parent[key];\r\n }\r\n };\r\n\r\n /*const validateNumber = (options: T, defaults: T, property: K, allowNull: boolean = false) => {\r\n validate(options, defaults, property, (val) => typeof val === \"number\", \"number\", allowNull);\r\n };*/\r\n const validateNonNegativeNumber = (options: T, defaults: T, property: K, allowNull: boolean = false) => {\r\n validate(options, defaults, property, (val) => typeof val === \"number\" && val >= 0, \"positive number or zero\", allowNull);\r\n };\r\n\r\n const validateLoggingLevel = (options: T, defaults: T, property: K) => {\r\n const predicate = (val: any) => ((typeof val === \"number\") || Object.keys(LoggingLevel).includes(val));\r\n validate(options, defaults, property, predicate, \"LoggingLevelEnumParam\", true);\r\n\r\n // Převod ze řetězce na číslo (např. \"info\" -> 3000). String totiž není platná hodnota pro LoggingLevelType.\r\n // String slouží pouze pro čitelnější zápis v initParams.json či config.js.\r\n if (typeof options[property] !== \"number\") {\r\n options[property] = (LoggingLevel as any)[options[property]];\r\n }\r\n };\r\n\r\n /**\r\n * Zvaliduje komplet nastavení {@link IInitParams.logging}.\r\n */\r\n const validateLogging = (initParams: Partial, defaults: IInitParams) => {\r\n if (initParams.developmentMode) {\r\n defaults.logging = getDefaultLoggingSettings(true);\r\n }\r\n\r\n validate(initParams, defaults, \"logging\", (val) => typeof val === \"object\", \"ILoggingSettings\", true);\r\n const loggingSettings = initParams.logging!; // validate výše zajistí existenci\r\n validate(loggingSettings, defaults.logging, \"sections\", (val) => typeof val === \"object\", \"object (section)\", true);\r\n\r\n Object.entries(loggingSettings.sections).forEach(([key, _value]) => {\r\n const isKeyValid = (typeof key === \"string\");\r\n validateOrRemoveIfKeyInvalid(key, isKeyValid, loggingSettings.sections, \"logging.sections\", () => {\r\n validateLoggingLevel(loggingSettings.sections, defaults.logging.sections, key);\r\n });\r\n });\r\n\r\n validateLoggingLevel(loggingSettings, defaults.logging, \"defaultLevel\");\r\n };\r\n\r\n const defaults = AppConfiguration._createDefault();\r\n validateString(initParams, defaults, \"appName\");\r\n validateString(initParams, defaults, \"clientCode\", true);\r\n validateString(initParams, defaults, \"reportType\", true);\r\n validateArray(initParams, defaults, \"menuItems\", true);\r\n validateString(initParams, defaults, \"formUI\", true);\r\n validateNonNegativeNumber(initParams, defaults, \"heartBeatInterval\", true);\r\n validateNonNegativeNumber(initParams, defaults, \"heartBeatTimeout\", true);\r\n validateNonNegativeNumber(initParams, defaults, \"userActionLoggerInterval\", true);\r\n validateNonNegativeNumber(initParams, defaults, \"openedFormsHistoryCount\", true);\r\n validateNonNegativeNumber(initParams, defaults, \"forceIdsInSelectAllConditionThreshold\", true);\r\n validateArray(initParams, defaults, \"dependencies\", true);\r\n validateString(initParams, defaults, \"webServiceUrl\", true);\r\n validateBoolean(initParams, defaults, \"showMainMenuExpanded\", true);\r\n validateBoolean(initParams, defaults, \"showMainMenuCaptions\", true);\r\n validateBoolean(initParams, defaults, \"legacyActiveRoles\", true);\r\n validateBoolean(initParams, defaults, \"defaultShowSettings\", true);\r\n\r\n validate(initParams, defaults, \"developmentMode\", (val) => typeof val === \"boolean\" || typeof val === \"object\", \"boolean | IDevelopmentSettings\", true);\r\n\r\n if (initParams.developmentMode === true)\r\n initParams.developmentMode = AppConfiguration._createDefaultDevelopmentSettings();\r\n else if (typeof initParams.developmentMode === \"object\") {\r\n const defaultsDev = AppConfiguration._createDefaultDevelopmentSettings();\r\n validateString(initParams.developmentMode, defaultsDev, \"userName\", true);\r\n validateString(initParams.developmentMode, defaultsDev, \"userPassword\", true);\r\n validateString(initParams.developmentMode, defaultsDev, \"webServiceVersion\", true);\r\n validateString(initParams.developmentMode, defaultsDev, \"debugLocallyEvaluableConditions\", true);\r\n }\r\n\r\n validateLogging(initParams, defaults);\r\n\r\n if (initParams.formUI?.toLowerCase() === \"default\")\r\n initParams.formUI = \"standard\";\r\n\r\n return initParams as IInitParams;\r\n }\r\n\r\n public getDevelopmentOption(option: K): IDevelopmentSettings[K] | null {\r\n const settings = this._initParams?.developmentMode;\r\n if (!settings)\r\n return null;\r\n\r\n if (typeof settings !== \"object\")\r\n throw new Error(\"Invalid value for 'initParams.developmentMode'\");\r\n\r\n return settings[option];\r\n }\r\n\r\n public isExperimentEnabled(experimentName: ExperimentName): boolean {\r\n const settings = this._initParams?.experiments;\r\n if (!settings)\r\n return false;\r\n\r\n if (settings === true)\r\n return true;\r\n\r\n if (!Array.isArray(settings))\r\n throw new Error(\"Invalid value for 'initParams.experiments'\");\r\n\r\n return settings.includes(experimentName); // case sensitive, schválně\r\n }\r\n}\r\n\r\n/**\r\n * Typy porovnávání řetězců v našeptávači LOV a ve filtrech.\r\n */\r\nexport class StringComparisonTypes {\r\n /**\r\n * Konfigurační hodnota pro typ porovnání \"Začíná\", jak je uvedena v initParams\r\n */\r\n public static readonly startsWith = \"startsWith\";\r\n /**\r\n * Konfigurační hodnota pro typ porovnání \"Obsahuje\", jak je uvedena v initParams\r\n */\r\n public static readonly contains = \"contains\";\r\n\r\n /**\r\n * Vrací, zda hodnota uvedená v initParams je typu \"Začíná\" (= \"startsWith\")\r\n * @param paramValue Hodnota z initParams\r\n */\r\n public static isStartsWith(paramValue: string): boolean {\r\n return (paramValue === StringComparisonTypes.startsWith);\r\n }\r\n\r\n /**\r\n * Vrací, zda hodnota uvedená v initParams je typu \"Obsahuje\" (= \"contains\")\r\n * @param paramValue Hodnota z initParams\r\n */\r\n public static isContains(paramValue: string): boolean {\r\n return (paramValue === StringComparisonTypes.contains);\r\n }\r\n}\r\n","import { LoggingLevel } from \"@multiweb/logging\";\r\nimport { GlobalContext } from \"Global/Base/GlobalContext\";\r\nimport { ConsoleLogger } from \"../Logging/ConsoleLogger\";\r\nimport { IInitParams } from \"./IInitParams\";\r\n\r\n/**\r\n * Načte konfigurační data ze standardního umístění\r\n * @param settingPath Cesta k souboru s konfigurací\r\n */\r\nexport async function loadAppConfiguration(settingPath: string = \"./initParams.json\"): Promise | null> {\r\n let initParams: IInitParams | undefined = undefined;\r\n\r\n try {\r\n const response = await fetch(settingPath);\r\n initParams = await response.json();\r\n } catch (e1) {\r\n // pokud nebyla konfigurace nalezena ve složce s klientem, tak se zkouší najít ještě o úroveň výše (pro zachování zpětné kompatibility)\r\n try {\r\n const parentUrl = new URL(settingPath, new URL(\"..\", location.href));\r\n const response = await fetch(parentUrl.href);\r\n initParams = await response.json();\r\n } catch (e2) {\r\n const logger = new ConsoleLogger();\r\n logger.log(\"AppConfiguration\", LoggingLevel.error, \"Unable to load configuration from initParams.\", e2);\r\n }\r\n }\r\n\r\n return initParams || null;\r\n}\r\n\r\nGlobalContext.register(\"loadAppConfiguration\", loadAppConfiguration);\r\n","export { AppConfiguration, StringComparisonTypes } from \"./AppConfiguration\";\r\nexport { loadAppConfiguration } from \"./configurationLoader\";\r\nexport { IAppConfiguration } from \"./IAppConfiguration\";\r\nexport { ExperimentName, IDevelopmentSettings, IInitParams } from \"./IInitParams\";\r\n","export enum LoginResult {\r\n\r\n /** Zadané přihlašovací údaje jsou v pořádku */\r\n ok,\r\n\r\n /** Uživatel nebyl nalezen (špatné uživatelské jméno nebo heslo) */\r\n userNotFound,\r\n\r\n /** Doména není mezi povolenými */\r\n invalidDomain,\r\n\r\n /** Uživatelský účet není aktivován (disabled) */\r\n accountNotActivated,\r\n\r\n /** Uživatelské heslo expirovalo */\r\n passwordExpired,\r\n\r\n /** Uživatel musí provést změnu hesla */\r\n userMustChangePassword,\r\n\r\n /** Účet je uzamčen */\r\n accountLocked,\r\n\r\n /** Účet expiroval */\r\n accountExpired,\r\n\r\n /** Byl překročen limit pro neúspěšný počet přihlašovacích pokusů */\r\n logonLimitExceeded,\r\n\r\n /** Uživatel nemá povolený přístup do daného systému */\r\n accessDenied,\r\n\r\n /**\r\n * Přihlašovací údaje jsou v pořádku.\r\n * Vyžaduje přihlášení pomocí klíče OTP, který je poslán uživateli jako SMS,\r\n * protože je aktivní dvoufaktorová autentizace typu OTP.\r\n */\r\n OTPSmsRequired,\r\n\r\n /** Přihlašovací údaje jsou v pořádku.\r\n * Vyžaduje přihlášení pomocí klíče OTP, který je odeslán uživateli na email,\r\n * protože je aktivní dvoufaktorová autentizace typu OTP.\r\n */\r\n OTPEmailRequired,\r\n\r\n /** Přihlašovací údaje jsou v pořádku.\r\n * Vyžaduje TOTP autentizaci,\r\n * protože je aktivní dvoufaktorová autentizace typu TOTP.\r\n */\r\n TOTPRequired,\r\n\r\n /** Klíč druhého stupně dvoufaktorové autentizace nesouhlasí. */\r\n invalid2FAKey,\r\n\r\n /** Platnost klíče druhého stupně dvoufaktorové autentizace vypršela. */\r\n keyExpired,\r\n\r\n /** Klíč byl zadán vícekrát než je dovoleno za určitou jednotku času. */\r\n keyLimitExceeded,\r\n\r\n /** Neexistující záznam v databázi. */\r\n dbError,\r\n\r\n /** Token není platný. */\r\n invalidToken,\r\n}\r\n","export * from \"./loginResult\";\r\n","/**\r\n * Představuje nastavení jazyka.\r\n * @includeToDoc\r\n */\r\nexport interface ILanguage {\r\n /**\r\n * Kód jazyka v TescoSW formátu, nedrží se žádného standardu ani formátu.\r\n * Může obsahovat libovolný string, který by měl být pro aplikaci unikátní.\r\n * @example EN, CZ, MyLang, XYZ\r\n */\r\n readonly code: string;\r\n /**\r\n * Kultura ve standardu ISO 639-1 nebo v kombinaci se zkratkou státu.\r\n * @example en, en-US, en-GB\r\n * @see https://www.iso.org/iso-639-language-codes.html\r\n * @see https://iso639-3.sil.org/code_tables/639/data\r\n */\r\n readonly culture: string;\r\n}\r\n\r\n/**\r\n * Představuje nastavení jazyka s dalšími informacemi.\r\n * @includeToDoc\r\n */\r\nexport interface ILanguageExtended extends ILanguage {\r\n /** Zda je jazyk preferovaný jako primární. Takový měl být jen jediný. */\r\n readonly isPrimary: boolean;\r\n /** Lidsky čitelný název jazyka */\r\n readonly description: string;\r\n}\r\n","/**\r\n * Reprezentuje obálku zprávy DataEvent.\r\n * DataEvents je proprietární systém posílání realtime zpráv mezi klientskou aplikací a webovou službou.\r\n * @see https://teaf.tescosw.cz/wiki/index.php?title=DataEvents\r\n * @includeToDoc\r\n */\r\nexport interface IDataEvent {\r\n /** Označení typu zprávy */\r\n messageType: \"DataEvent\" | string;\r\n /** Název zdroje, ze kterého zpráva pochází. Webová služba TEAF používá \"OW\", ale obecně zpráva může přijít i z dalších služeb. */\r\n source: string;\r\n /** Přijatá zpráva */\r\n message: IDataEventMessage;\r\n}\r\n\r\n/**\r\n * Zpráva DataEvent, její typ a obsah\r\n * @includeToDoc\r\n */\r\nexport interface IDataEventMessage {\r\n /** Typ zprávy */\r\n type: string;\r\n /** Podtyp zprávy zpřesňující její význam */\r\n subType: string | null;\r\n /** Čas vzniku zprávy */\r\n time: string;\r\n /** Tělo zprávy, může obsahovat hodnotu primitivních datových typů, ale i JSON objekty */\r\n body: unknown | null;\r\n /** Id aplikačního záznamu, kterého se zpráva týká */\r\n id: string | null;\r\n}\r\n","/**\r\n * Rozhrani pro oznaceni datoveho typu, ktery obsahuje metody pro porovnani hodnot\r\n *\r\n * @generateInstanceClass\r\n */\r\nexport interface IComparable {\r\n compare(value: any): boolean;\r\n}\r\n\r\nexport class IComparable {\r\n private static _properties: string[] = [];\r\n private static _methods = [\"compare\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IComparable } from \"../IComparable\";\r\n\r\nexport interface IBigNumber extends IComparable {\r\n toString(): string;\r\n toLocaleString(locales?: string, options?: Intl.NumberFormatOptions): string;\r\n\r\n /** Vrátí true, pokud je hodnota BigNumber větší nebo rovna hodnotě `n`, v opačném případě vrátí false. */\r\n gte(n: number | string): boolean;\r\n /** Vrátí true, pokud je hodnota BigNumber menší nebo rovna hodnotě `n`, v opačném případě vrátí false. */\r\n lte(n: number | string): boolean;\r\n /** Vrací true, pokud je hodnota BigNumber NaN, jinak vrací false. */\r\n isNaN(): boolean;\r\n}\r\n","import { IBigNumber } from \"../Global/Base/DataTypes/IBigNumber\";\r\n\r\n/**\r\n * Představuje hodnotu atributu aplikačního objektu (ať už načtenou přes _data reader_ nebo _object reader_).\r\n * Jelikož zde definované metody (valueOf, toString) má jakýkoli javascriptový objekt (i primitivní typy), tak tento interface splňuje v podstatě cokoliv.\r\n * Rozhraní pouze označuje fakt, že to má být opravdu hodnota atributu a může mít navíc další metadata.\r\n * @includeToDoc\r\n */\r\n\r\nexport interface IAttrValue {\r\n /**\r\n * Skutečná hodnota atributu\r\n */\r\n valueOf(): any;\r\n /**\r\n * Převede hodnotu atributu na textovou podobu\r\n */\r\n toString(): string;\r\n}\r\n\r\nexport class IAttrValue {\r\n private static _methods = [\"valueOf\", \"toString\"];\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && //!this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Data jednoho řádku načteného _data readerem_.\r\n * Klíčem (sloupce) je název aplikačního atributu, hodnotou je struktura obsahující načtená data atributu\r\n * @includeToDoc\r\n */\r\nexport interface IRowData {\r\n /** Klíčem (sloupce) je název aplikačního atributu, hodnotou je struktura obsahující načtená data atributu */\r\n [name: string]: IAttrValue; // TODO Nastavit jako readonly a vytvořit typ IMutableRowData.\r\n}\r\n\r\n/**\r\n * Výsledek agregace několika atributů.\r\n * @includeToDoc\r\n */\r\nexport interface IAggregationsResult {\r\n readonly [key: string]: IBigNumber;\r\n}\r\n","/**\r\n * Popis slovníku metadat dokumentů uložených v systému DMS\r\n * @includeToDoc\r\n */\r\nexport interface IDocumentMetadata {\r\n /** Původní hash dat u šifrovaných dokumentů */\r\n originalHash: string;\r\n /** Skutečný hash dat uloženého dokumentu */\r\n hash: string;\r\n /** Kód algoritmu použitého pro vytvořené hashe */\r\n hashAlgorithm: string;\r\n\r\n [attribute: string]: string;\r\n}\r\n\r\n// ReSharper disable InconsistentNaming\r\n\r\n/** Obsahuje informace o jedné konkrétní verzi dokumentu\r\n * @includeToDoc\r\n */\r\nexport interface IDocumentVersionInfo {\r\n /** ID archivní verze dokumentu (alias k ArchiveVersionDocID) */\r\n ID: string;\r\n /** Jméno dokumentu */\r\n Name: string;\r\n /** ID verze dokumentu */\r\n VersionDocID: string;\r\n /** Název archivní verze dokumentu */\r\n ArchiveVersionName: string;\r\n /** ID archivní verze dokumentu */\r\n ArchiveVersionDocID: string;\r\n /** Čas vytvoření dokumentu */\r\n CreateTime: Date;\r\n /** Autor nahrání dokumentu */\r\n Author: string;\r\n /** Číslo verze */\r\n Number: number;\r\n}\r\n\r\n// ReSharper restore InconsistentNaming\r\n","/**\r\n * Položka historie posledních otevřených formulářů\r\n * @includeToDoc\r\n */\r\nexport interface IOpenedFormHistoryInfo {\r\n /** Kód formuláře */\r\n readonly formCode: string;\r\n /** Id položky menu, ze které byl otevřený */\r\n readonly menuItemId: number;\r\n /** Id profilu, který se má aplikovat */\r\n readonly profileId?: number;\r\n}\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\n\r\n/**\r\n * Kódy ikon odvozené přímo od LESS proměnných.\r\n * Změny je nutné reflektovat v proměnné @icon-codes.\r\n * @includeToDoc\r\n */\r\nexport enum IconCode {\r\n\r\n // Aliasy kódu ikon\r\n copy = \"doc-copy\",\r\n delete = \"editorial-trash\",\r\n detailFormActionIcon = \"doc-wboard-line\",\r\n download = \"ui-cloud-download\",\r\n edit = \"editorial-pencil\",\r\n execute = \"music-play\",\r\n export = \"ui-export\",\r\n false = \"ui-cross-small\",\r\n favorite = \"ui-star\",\r\n filter = \"ui-filter\",\r\n filterFilled = \"ui-filter-filled\",\r\n graph = \"doc-pie\",\r\n info = \"ui-circle-info\",\r\n layoutChange = \"ui-layout-sidebar-l-half\",\r\n moveLeft = \"ui-circle-minus\",\r\n moveRight = \"ui-circle-plus\",\r\n multi = \"web-tabs-plus\",\r\n new = \"ui-plus\",\r\n next = \"ui-chevron-right\",\r\n nextRecord = \"ui-chevron-right\",\r\n openDetail = \"openDetail\",\r\n openOnMainForm = \"web-tabs-plus\",\r\n prevRecord = \"ui-chevron-left\",\r\n print = \"doc-printer\",\r\n recordActions = \"ui-more\",\r\n refresh = \"ui-refresh\",\r\n remove = \"editorial-trash\",\r\n save = \"tool-floppy-disk\",\r\n selectAll = \"web-tabs-check\",\r\n selectFromLov = \"ui-check\",\r\n selectNone = \"web-tabs-cross\",\r\n settings = \"settings-gear\",\r\n true = \"ui-check-small\",\r\n triangleBottom = \"ui-triangle-bottom\",\r\n upload = \"ui-cloud-upload\",\r\n\r\n // Kódy ikon odvozené přímo z LESS proměnných\r\n // Regular verze (linky)\r\n buildingBed = \"building-bed\",\r\n buildingCabinet = \"building-cabinet\",\r\n buildingDaylight = \"building-daylight\",\r\n buildingDesk = \"building-desk\",\r\n buildingDoor = \"building-door\",\r\n buildingDrawer = \"building-drawer\",\r\n buildingExit = \"building-exit\",\r\n buildingFaucet = \"building-faucet\",\r\n buildingFireplace = \"building-fireplace\",\r\n buildingHangingRack = \"building-hanging-rack\",\r\n buildingHeater = \"building-heater\",\r\n buildingHouse = \"building-house\",\r\n buildingChair = \"building-chair\",\r\n buildingLamp = \"building-lamp\",\r\n buildingLampA = \"building-lamp-a\",\r\n buildingLift = \"building-lift\",\r\n buildingMuseum = \"building-museum\",\r\n buildingOffice = \"building-office\",\r\n buildingOfficeA = \"building-office-a\",\r\n buildingOfficeAddB = \"building-office-add-b\",\r\n buildingOfficeSettingsB = \"building-office-settings-b\",\r\n buildingPlanBalcony = \"building-plan-balcony\",\r\n buildingRealEstateDimensionsBlock = \"building-real-estate-dimensions-block\",\r\n buildingRealEstateDimensionsPlan = \"building-real-estate-dimensions-plan\",\r\n buildingRockerSwitch = \"building-rocker-switch\",\r\n buildingSafetyFireShield = \"building-safety-fire-shield\",\r\n buildingSofa = \"building-sofa\",\r\n buildingSofaA = \"building-sofa-a\",\r\n buildingToilet = \"building-cabinet\",\r\n buildingView = \"building-view\",\r\n comAdvertisingMegaphone = \"com-advertising-megaphone\",\r\n comBell = \"com-bell\",\r\n comBubble = \"com-bubble\",\r\n comBubbleA = \"com-bubble-a\",\r\n comBubbleDot = \"com-bubble-dot\",\r\n comBubbleDotA = \"com-bubble-dot-a\",\r\n comBubbleGroup = \"com-bubble-group\",\r\n comBubbleGroupA = \"com-bubble-group-a\",\r\n comBubbleLine = \"com-bubble-line\",\r\n comBubbleLineA = \"com-bubble-line-a\",\r\n comHelp = \"com-help\",\r\n comHelpA = \"com-help-a\",\r\n comLanguage = \"com-language\",\r\n comMail = \"com-mail\",\r\n comMailClock = \"com-mail-clock\",\r\n comMailCross = \"com-mail-cross\",\r\n comMailDownload = \"com-mail-download\",\r\n comMailCheck = \"com-mail-check\",\r\n comMailMinus = \"com-mail-minus\",\r\n comMailOpen = \"com-mail-open\",\r\n comMailOpenWarning = \"com-mail-open-warning\",\r\n comMailPlus = \"com-mail-plus\",\r\n comMailReceive = \"com-mail-receive\",\r\n comMailSync = \"com-mail-sync\",\r\n comMailWarning = \"com-mail-warning\",\r\n comMegaphone = \"com-megaphone\",\r\n comMic = \"com-mic\",\r\n comMicMute = \"com-mic-mute\",\r\n comMicrophonePodcast = \"com-microphone-podcast-2\",\r\n comPaperplane = \"com-paperplane\",\r\n comPhone = \"com-phone\",\r\n comPhoneLandline = \"com-phone-landline\",\r\n comPictures = \"com-pictures\",\r\n comPostcard = \"com-postcard\",\r\n comSatellite = \"com-satellite\",\r\n comVoicemail = \"com-voicemail\",\r\n comWarning = \"com-warning\",\r\n docAnalyticsUp = \"doc-analytics-up\",\r\n docArchive = \"doc-archive\",\r\n docArchiveDownload = \"doc-archive-download\",\r\n docArchiveEmpty = \"doc-archive-empty\",\r\n docArchiveFolder = \"doc-archive-folder\",\r\n docArchiveUpload = \"doc-archive-upload\",\r\n docArticle = \"doc-article\",\r\n docAttachment = \"doc-attachment\",\r\n docBook = \"doc-book\",\r\n docBookA = \"doc-book-a\",\r\n docBookB = \"doc-book-b\",\r\n docBookCash = \"doc-book-cash\",\r\n docBookDownload = \"doc-book-download\",\r\n docBookLibrary = \"doc-book-library\",\r\n docBookmark = \"doc-bookmark\",\r\n docBookModules = \"doc-book-modules\",\r\n docBookSettings = \"doc-book-settings\",\r\n docBookTarget = \"doc-book-target\",\r\n docBookUpload = \"doc-book-upload\",\r\n docBoxP = \"doc-box-p\",\r\n docBriefcase = \"doc-briefcase\",\r\n docCamera = \"doc-camera\",\r\n docCommonFileEdit = \"doc-common-file-edit\",\r\n docCommonFileHome = \"doc-common-file-home\",\r\n docCommonFileTextEdit = \"doc-common-file-text-edit\",\r\n docCompose = \"doc-compose\",\r\n docCopy = \"doc-copy\",\r\n docDiary = \"doc-diary\",\r\n docDownload = \"doc-download\",\r\n docFileBlank = \"doc-file-blank\",\r\n docFileBookmark = \"doc-file-bookmark\",\r\n docFileCross = \"doc-file-cross\",\r\n docFileCheck = \"doc-file-check\",\r\n docFileLine = \"doc-file-line\",\r\n docFileMinus = \"doc-file-minus\",\r\n docFileNext = \"doc-file-next\",\r\n docFilePlus = \"doc-file-plus\",\r\n docFilePrev = \"doc-file-prev\",\r\n docFilePrint = \"doc-file-print\",\r\n docFileRefresh = \"doc-file-refresh\",\r\n docFileSave = \"doc-file-save\",\r\n docFileXls = \"doc-file-xls\",\r\n docFolder = \"doc-folder\",\r\n docFolderCross = \"doc-folder-cross\",\r\n docFolderHome = \"doc-folder-home\",\r\n docFolderCheck = \"doc-folder-check\",\r\n docFolderMinus = \"doc-folder-minus\",\r\n docFolderPlus = \"doc-folder-plus\",\r\n docFolderSync = \"doc-folder-sync\",\r\n docGlasses = \"doc-glasses\",\r\n docIdCardVertical = \"doc-id-card-vertical\",\r\n docImage = \"doc-image\",\r\n docImageA = \"doc-image-a\",\r\n docInvoice = \"doc-invoice\",\r\n docList = \"doc-list\",\r\n docListNumbers = \"doc-list-numbers\",\r\n docMailboxIn = \"doc-mailbox-in\",\r\n docMinus = \"doc-minus\",\r\n docNewspaper = \"doc-newspaper\",\r\n docNotesFlip = \"doc-notes-flip\",\r\n docNotesGive = \"doc-notes-give\",\r\n docNotesHome = \"doc-notes-home\",\r\n docNotesPaperText = \"doc-notes-paper-text\",\r\n docNotesUpload = \"doc-notes-upload\",\r\n docOfficeFilePdf = \"doc-office-file-pdf\",\r\n docOfficeFolder = \"doc-office-folder\",\r\n docOfficeStampDocument = \"doc-office-stamp-document\",\r\n docPaperLine = \"doc-paper-line\",\r\n docPapers = \"doc-papers\",\r\n docPaperStack = \"doc-paper-stack\",\r\n docPie = \"doc-pie\",\r\n docPin = \"doc-pin\",\r\n docPlus = \"doc-plus\",\r\n docPrinter = \"doc-printer\",\r\n docProfile = \"doc-profile\",\r\n docStack = \"doc-stack\",\r\n docTaskChecklist = \"doc-task-checklist\",\r\n docTaskListQuestion = \"doc-task-list-question\",\r\n docTodoList = \"doc-todo-list\",\r\n docTodoListSquare = \"doc-todo-list-square\",\r\n docTodoListUser = \"doc-todo-list-user\",\r\n docUpload = \"doc-upload\",\r\n docWboardArrowTop = \"doc-wboard-arrow-top\",\r\n docWboardGear = \"doc-wboard-gear\",\r\n docWboardCheck = \"doc-wboard-check\",\r\n docWboardLine = \"doc-wboard-line\",\r\n docWboardSearch = \"doc-wboard-search\",\r\n editorialAlignCenter = \"editorial-align-center\",\r\n editorialAlignLeft = \"editorial-align-left\",\r\n editorialAlignRight = \"editorial-align-right\",\r\n editorialBookmark = \"editorial-bookmar\",\r\n editorialBrush = \"editorial-brush\",\r\n editorialColorPalette = \"editorial-color-palette\",\r\n editorialCombineIntersect = \"editorial-combine-intersect\",\r\n editorialFontSize = \"editorial-font-size\",\r\n editorialHash = \"editorial-hash\",\r\n editorialIndentLeft = \"editorial-indent-left\",\r\n editorialIndentRight = \"editorial-indent-right\",\r\n editorialItalicOff = \"editorial-italic-off\",\r\n editorialParagraph = \"editorial-paragraph\",\r\n editorialParagraphFirstLetter = \"editorial-paragraph-first-letter\",\r\n editorialPen = \"editorial-pen\",\r\n editorialPencil = \"editorial-pencil\",\r\n editorialPencilSmall = \"editorial-pencil-small\",\r\n editorialRedo = \"editorial-redo\",\r\n editorialSortAsc = \"editorial-sort-asc\",\r\n editorialSortCancel = \"editorial-sort-cancel\",\r\n editorialSortDesc = \"editorial-sort-desc\",\r\n editorialTextBold = \"editorial-text-bold\",\r\n editorialTextFormat = \"editorial-text-format\",\r\n editorialTextItalic = \"editorial-text-italic\",\r\n editorialTextStrike = \"editorial-text-strike-through\",\r\n editorialTextStyle = \"editorial-text-style\",\r\n editorialTextUnderline = \"editorial-text-underline\",\r\n editorialTrash = \"editorial-trash\",\r\n editorialTypingMachine = \"editorial-typing-machine\",\r\n editorialUndo = \"editorial-undo\",\r\n envAtomicBomb = \"env-atomic-bomb\",\r\n envEarth = \"env-earth\",\r\n envFlower = \"env-flower\",\r\n envLeaf = \"env-leaf\",\r\n envMountains = \"env-mountains\",\r\n envTree = \"env-tree\",\r\n envTreeA = \"env-tree-a\",\r\n locationCompass = \"location-compass\",\r\n locationDirection = \"location-direction\",\r\n locationDirectionSign = \"location-direction-sign\",\r\n locationMap = \"location-map\",\r\n locationMapCross = \"location-map-cross\",\r\n locationPin = \"location-pin\",\r\n locationPinA = \"location-pin-a\",\r\n locationPinB = \"location-pin-b\",\r\n locationPinCheck = \"location-pin-check\",\r\n locationPinMap = \"location-pin-map\",\r\n locationPinMinus = \"location-pin-minus\",\r\n locationPinPlus = \"location-pin-plus\",\r\n locationPins = \"location-pins\",\r\n locationStreetSign = \"location-street-sign\",\r\n locationStreetSignA = \"location-street-sign-a\",\r\n logoApple = \"logo-apple\",\r\n logoLinux = \"logo-linux\",\r\n logoWindows = \"logo-windows\",\r\n miscBulletDiamond = \"misc-bullet-diamond\",\r\n miscCrown = \"misc-crown\",\r\n miscCube = \"misc-cube\",\r\n miscCursorHandOpen = \"misc-cursor-hand-open\",\r\n miscFemaleSign = \"misc-female-sign\",\r\n miscGesture = \"misc-gesture\",\r\n miscGestureDoubleTap = \"misc-gesture-double-tap\",\r\n miscGestureSwipeLeft = \"misc-gesture-swipe-left\",\r\n miscGestureSwipeRight = \"misc-gesture-swipe-right\",\r\n miscGestureTap = \"misc-gesture-tap\",\r\n miscGlobe = \"misc-globe\",\r\n miscGridPerspective = \"misc-grid-perspective\",\r\n miscMaleSign = \"misc-male-sign\",\r\n miscPuzzle = \"misc-puzzle\",\r\n miscReceptionHotelBell = \"misc-reception-hotel-bell\",\r\n miscSmileAngry = \"misc-smile-angry\",\r\n miscSmileHappy = \"misc-smile-happy\",\r\n miscSmileLaught = \"misc-smile-laught\",\r\n miscSmileMeh = \"misc-smile-meh\",\r\n miscSmileSad = \"misc-smile-sad\",\r\n miscWifi = \"misc-wifi\",\r\n musicAlbum = \"music-album\",\r\n musicCd = \"music-cd\",\r\n musicEject = \"music-eject\",\r\n musicEqualiser = \"music-equaliser\",\r\n musicList = \"music-list\",\r\n musicMic = \"music-mic\",\r\n musicNext = \"music-next\",\r\n musicNextA = \"music-next-a\",\r\n musicNote = \"music-note\",\r\n musicNoteA = \"music-note-a\",\r\n musicPause = \"music-pause\",\r\n musicPlay = \"music-play\",\r\n musicPlaylist = \"music-playlist\",\r\n musicPrevious = \"music-previous\",\r\n musicPreviousA = \"music-previous-a\",\r\n musicRadio = \"music-radio\",\r\n musicRepeat = \"music-repeat\",\r\n musicRepeatOne = \"music-repeat-one\",\r\n musicShuffle = \"music-shuffle\",\r\n musicSpeaker = \"music-speaker\",\r\n musicStop = \"music-stop\",\r\n musicVolumeHigh = \"music-volume-high\",\r\n musicVolumeLow = \"music-volume-low\",\r\n musicVolumeMedium = \"music-volume-medium\",\r\n musicVolumeMute = \"music-volume-mute\",\r\n musicHeadphones = \"music-headphones\",\r\n musicHeadphonesA = \"music-headphones-a\",\r\n settingsAirplane = \"settings-airplane\",\r\n settingsAutoFlash = \"settings-auto-flash\",\r\n settingsColorMode = \"settings-color-mode\",\r\n settingsComonent = \"settings-comonent\",\r\n settingsEqualizer = \"settings-equalizer\",\r\n settingsGear = \"settings-gear\",\r\n settingsGearA = \"settings-gear-a\",\r\n settingsHotspot = \"settings-hotspot\",\r\n settingsMachineTrack = \"settings-machine-track\",\r\n settingsWrench = \"settings-wrench\",\r\n shopAccountingBillStack = \"shop-accounting-bill-stack\",\r\n shopBag = \"shop-bag\",\r\n shopBarcode = \"shop-barcode\",\r\n shopBasket = \"shop-basket\",\r\n shopBill = \"shop-bill\",\r\n shopBox = \"shop-box\",\r\n shopBoxEmpty = \"shop-box-empty\",\r\n shopBoxMinus = \"shop-box-minus\",\r\n shopBoxPlus = \"shop-box-plus\",\r\n shopCartDownload = \"shop-cart-download\",\r\n shopCartEmpty = \"shop-cart-empty\",\r\n shopCartFull = \"shop-cart-full\",\r\n shopCash = \"shop-cash\",\r\n shopCashDolar = \"shop-cash-dolar\",\r\n shopCoins = \"shop-coins\",\r\n shopCreditcard = \"shop-creditcard\",\r\n shopDiamond = \"shop-diamond\",\r\n shopDiscountCircle = \"shop-discount-circle\",\r\n shopDiscountCoupon = \"shop-discount-coupon\",\r\n shopDolar = \"shop-dolar\",\r\n shopEuro = \"shop-euro\",\r\n shopMarket = \"shop-market\",\r\n shopMastercard = \"shop-mastercard\",\r\n shopPerformanceMoneyDecrease = \"shop-performance-money-decrease\",\r\n shopPound = \"shop-pound\",\r\n shopPresent = \"shop-present\",\r\n shopSafeBox = \"shop-safe-box\",\r\n shopSavingPiggyBank = \"shop-saving-piggy-bank\",\r\n shopShipmentPackages = \"shop-shipment-packages\",\r\n shopSuitcase = \"shop-suitcase\",\r\n shopTag = \"shop-tag\",\r\n shopTagCross = \"shop-tag-cross\",\r\n shopTagDatabase = \"shop-tag-database\",\r\n shopTagCheck = \"shop-tag-check\",\r\n shopTagInfo = \"shop-tag-info\",\r\n shopTagLock = \"shop-tag-lock\",\r\n shopTagMinus = \"shop-tag-minus\",\r\n shopTagPlus = \"shop-tag-plus\",\r\n shopTagRefresh = \"shop-tag-refresh\",\r\n shopTagSearch = \"shop-tag-search\",\r\n shopTie = \"shop-tie\",\r\n shopTracking = \"shop-tracking\",\r\n shopWallet = \"shop-wallet\",\r\n sportBadge = \"sport-badge\",\r\n sportBadgeB = \"sport-badge-b\",\r\n sportBadgeC = \"sport-badge-c\",\r\n sportBadgeH = \"sport-badge-h\",\r\n sportDumbell = \"sport-dumbell\",\r\n sportFlag = \"sport-flag\",\r\n sportGauge = \"sport-gauge\",\r\n sportHeartPulse = \"sport-heart-pulse\",\r\n sportMedic = \"sport-medic\",\r\n sportMedicineLab = \"sport-medicine-lab\",\r\n sportPuzzle = \"sport-puzzle\",\r\n sportTrophy = \"sport-trophy\",\r\n sportTv = \"sport-tv\",\r\n timeAlarm = \"time-alarm\",\r\n timeCalendar = \"time-calendar\",\r\n timeCalendarCash = \"time-calendar-cash\",\r\n timeCalendarClock = \"time-calendar-clock\",\r\n timeCalendarDots = \"time-calendar-dots\",\r\n timeCalendarSmall = \"time-calendar-small\",\r\n timeCalendarWeek = \"time-calendar-week\",\r\n timeClockCircle = \"time-clock-circle\",\r\n timeClockF = \"time-clock-f\",\r\n timeHourglass = \"time-hourglass\",\r\n timeSpeedMeter = \"time-speed-meter\",\r\n timeStopwatch = \"time-stopwatch\",\r\n timeTimer = \"time-timer\",\r\n timeWatch = \"time-watch\",\r\n toolAndroidType = \"tool-android-type\",\r\n toolAreaType = \"tool-area-type\",\r\n toolBinoculars = \"tool-binoculars\",\r\n toolCalc = \"tool-calc\",\r\n toolCamera = \"tool-camera\",\r\n toolCompass = \"tool-compass\",\r\n toolConsole = \"tool-console\",\r\n toolConsoleA = \"tool-console-a\",\r\n toolDisplay = \"tool-display\",\r\n toolDisplayUser = \"tool-display-user\",\r\n toolFireExtinguisher = \"tool-fire-extinguisher\",\r\n toolFlashlight = \"tool-flashlight\",\r\n toolFloppyDisk = \"tool-floppy-disk\",\r\n toolFloppyDisks = \"tool-floppy-disks\",\r\n toolFloppyEdit = \"tool-floppy-edit\",\r\n toolFocus = \"tool-focus\",\r\n toolGearsType = \"tool-gears-type\",\r\n toolGrid = \"tool-grid\",\r\n toolHammer = \"tool-hammer\",\r\n toolHammerA = \"tool-hammer-a\",\r\n toolHammerAngle = \"tool-hammer-angle\",\r\n toolHammerPlus = \"tool-hammer-plus\",\r\n toolHardwareType = \"tool-hardware-type\",\r\n toolIntType = \"tool-int-type\",\r\n toolLaptop = \"tool-laptop\",\r\n toolMagicWand = \"tool-magic-wand\",\r\n toolMagnet = \"tool-magnet\",\r\n toolModuleThree = \"tool-module-three\",\r\n toolMouse = \"tool-mouse\",\r\n toolPhone = \"tool-phone\",\r\n toolPhoneLandscape = \"tool-phone-landscape\",\r\n toolPlug = \"tool-plug\",\r\n toolProjector = \"tool-projector\",\r\n toolPropertyType = \"tool-property-type\",\r\n toolProtectionType = \"tool-protection-type\",\r\n toolRazor = \"tool-razor\",\r\n toolRouterSignal = \"tool-router-signal\",\r\n toolRuler = \"tool-ruler\",\r\n toolRulerB = \"tool-ruler-b\",\r\n toolRulerCorner = \"tool-ruler-corner\",\r\n toolSateliteType = \"tool-satelite-type\",\r\n toolsBox = \"tools-box\",\r\n toolScissors = \"tool-scissors\",\r\n toolSmartphonePay = \"tool-smartphone-pay\",\r\n toolTextType = \"tool-text-type\",\r\n toolUmbrella = \"tool-umbrella\",\r\n transportBicycle = \"transport-bicycle\",\r\n transportBus = \"transport-bus\",\r\n transportBusA = \"transport-bus-a\",\r\n transportBusTicket = \"transport-bus-ticket\",\r\n transportCar = \"transport-car\",\r\n transportCarA = \"transport-car-a\",\r\n transportShip = \"transport-ship\",\r\n transportShipA = \"transport-ship-a\",\r\n transportSignStop = \"transport-sign-stop\",\r\n transportTrain = \"transport-train\",\r\n transportTruck = \"transport-truck\",\r\n transportTruckA = \"transport-truck-a\",\r\n uiAddConnectionPoint = \"ui-add-connection-point\",\r\n uiAlignBottom = \"ui-align-bottom\",\r\n uiAlignLeft = \"ui-align-left\",\r\n uiAlignRight = \"ui-align-right\",\r\n uiAlignTop = \"ui-align-top\",\r\n uiArrowBottom = \"ui-arrow-bottom\",\r\n uiArrowBottomA = \"ui-arrow-bottom-a\",\r\n uiArrowBottomLeft = \"ui-arrow-bottom-left\",\r\n uiArrowBottomRight = \"ui-arrow-bottom-right\",\r\n uiArrowBottomSmall = \"ui-arrow-bottom-small\",\r\n uiArrowLeft = \"ui-arrow-left\",\r\n uiArrowLeftA = \"ui-arrow-left-a\",\r\n uiArrowLeftSmall = \"ui-arrow-left-small\",\r\n uiArrowRight = \"ui-arrow-right\",\r\n uiArrowRightA = \"ui-arrow-right-a\",\r\n uiArrowRightSmall = \"ui-arrow-right-small\",\r\n uiArrowTop = \"ui-arrow-top\",\r\n uiArrowTopA = \"ui-arrow-top-a\",\r\n uiArrowTopLeft = \"ui-arrow-top-left\",\r\n uiArrowTopRight = \"ui-arrow-top-right\",\r\n uiArrowTopSmall = \"ui-arrow-top-small\",\r\n uiAttribute = \"ui-attribute\",\r\n uiAttributeInherited = \"ui-attribute-inherited\",\r\n uiBackspace = \"ui-backspace\",\r\n uiBlock = \"ui-block\",\r\n uiBoxHelp = \"ui-box-help\",\r\n uiBoxWarning = \"ui-box-warning\",\r\n uiBulletView = \"ui-bullet-view\",\r\n uiCard = \"ui-card\",\r\n uiCardView = \"ui-card-view\",\r\n uiCircle = \"ui-circle\",\r\n uiCircleArrowBottom = \"ui-circle-arrow-bottom\",\r\n uiCircleArrowLeft = \"ui-circle-arrow-left\",\r\n uiCircleArrowRight = \"ui-circle-arrow-right\",\r\n uiCircleArrowTop = \"ui-circle-arrow-top\",\r\n uiCircleCross = \"ui-circle-cross\",\r\n uiCircleHelp = \"ui-circle-help\",\r\n uiCircleCheck = \"ui-circle-check\",\r\n uiCircleCheckA = \"ui-circle-check-a\",\r\n uiCircleChevronBottom = \"ui-circle-chevron-bottom\",\r\n uiCircleChevronLeft = \"ui-circle-chevron-left\",\r\n uiCircleChevronRight = \"ui-circle-chevron-right\",\r\n uiCircleChevronTop = \"ui-circle-chevron-top\",\r\n uiCircleInfo = \"ui-circle-info\",\r\n uiCircleMinus = \"ui-circle-minus\",\r\n uiCirclePlus = \"ui-circle-plus\",\r\n uiCircleWarning = \"ui-circle-warning\",\r\n uiCloseParallelConnection = \"ui-close-parallel-connection\",\r\n uiCloudDownload = \"ui-cloud-download\",\r\n uiCloudUpload = \"ui-cloud-upload\",\r\n uiCmd = \"ui-cmd\",\r\n uiCombobox = \"ui-combobox\",\r\n uiCondition = \"ui-condition\",\r\n uiCone = \"ui-cone\",\r\n uiConnection = \"ui-connection\",\r\n uiConnectionInherited = \"ui-connection-inherited\",\r\n uiConnectionOpen = \"ui-connection-open\",\r\n uiConnectionOpenInherited = \"ui-connection-open-inherited\",\r\n uiCreateConnection = \"ui-create-connection\",\r\n uiCrop = \"ui-crop\",\r\n uiCross = \"ui-cross\",\r\n uiCrossSmall = \"ui-cross-small\",\r\n uiDot = \"ui-dot\",\r\n uiDotLarge = \"ui-dot-large\",\r\n uiDragHandle = \"ui-drag-handle\",\r\n uiEnlarge = \"ui-enlarge\",\r\n uiExpand = \"ui-expand\",\r\n uiExport = \"ui-export\",\r\n uiEye = \"ui-eye\",\r\n uiEyeCross = \"ui-eye-cross\",\r\n uiFilter = \"ui-filter\",\r\n uiForward = \"ui-forward\",\r\n uiFrame = \"ui-frame\",\r\n uiFullscreen = \"ui-fullscreen\",\r\n uiFullscreenA = \"ui-fullscreen-a\",\r\n uiGridView = \"ui-grid-view\",\r\n uiHamburger = \"ui-hamburger\",\r\n uiHeart = \"ui-heart\",\r\n uiHelp = \"ui-help\",\r\n uiHierarchy = \"ui-hierarchy\",\r\n uiHierarchyTree = \"ui-hierarchy-tree\",\r\n uiHome = \"ui-home\",\r\n uiHomeA = \"ui-home-a\",\r\n uiHouse = \"ui-house\",\r\n uiCheck = \"ui-check\",\r\n uiCheckbox = \"ui-checkbox\",\r\n uiCheckSmall = \"ui-check-small\",\r\n uiCheckSmallCircle = \"ui-check-small-circle\",\r\n uiChevronBottom = \"ui-chevron-bottom\",\r\n uiChevronBottomSmall = \"ui-chevron-bottom-small\",\r\n uiChevronLeft = \"ui-chevron-left\",\r\n uiChevronLeftSmall = \"ui-chevron-left-small\",\r\n uiChevronRight = \"ui-chevron-right\",\r\n uiChevronRightSmall = \"ui-chevron-right-small\",\r\n uiChevronRightTripple = \"ui-chevron-right-tripple\",\r\n uiChevronTop = \"ui-chevron-top\",\r\n uiChevronTopSmall = \"ui-chevron-top-small\",\r\n uiImport = \"ui-import\",\r\n uiInLink = \"ui-in-link\",\r\n uiKeyboard = \"ui-keyboard\",\r\n uiLayoutHalf = \"ui-layout-half\",\r\n uiLayoutHalfHorizontal = \"ui-layout-half-horizontal\",\r\n uiLayoutSidebarL = \"ui-layout-sidebar-l\",\r\n uiLayoutSidebarLHalf = \"ui-layout-sidebar-l-half\",\r\n uiLayoutTableView = \"ui-layout-table-view\",\r\n uiLayoutThirdVertical = \"ui-layout-third-vertical\",\r\n uiLayoutWireframe = \"ui-layout-wireframe\",\r\n uiListForward = \"ui-list-forward\",\r\n uiListShare = \"ui-list-share\",\r\n uiListUser = \"ui-list-user\",\r\n uiListView = \"ui-list-view\",\r\n uiLogin = \"ui-login\",\r\n uiLogout = \"ui-logout\",\r\n uiMethod = \"ui-method\",\r\n uiMethodInherited = \"ui-method-inherited\",\r\n uiMinus = \"ui-minus\",\r\n uiMinusSmall = \"ui-minus-small\",\r\n uiMore = \"ui-more\",\r\n uiMoreHorizontalSmall = \"ui-more-horizontal-small\",\r\n uiMoreSmall = \"ui-more-small\",\r\n uiMoreSmallCircle = \"ui-more-small-circle\",\r\n uiMoreVertical = \"ui-more-vertical\",\r\n uiMoreVerticalSmall = \"ui-more-vertical-small\",\r\n uiMove = \"ui-move\",\r\n uiNext = \"ui-next\",\r\n uiNextA = \"ui-next-a\",\r\n uiNumber = \"ui-number\",\r\n uiOutLink = \"ui-out-link\",\r\n uiPixel = \"ui-pixel\",\r\n uiPlus = \"ui-plus\",\r\n uiPlusSmall = \"ui-plus-small\",\r\n uiPopup = \"ui-popup\",\r\n uiPower = \"ui-power\",\r\n uiPrevious = \"ui-previous\",\r\n uiPreviousA = \"ui-previous-a\",\r\n uiPropertyAnd = \"ui-property-and\",\r\n uiRadiobutton = \"ui-radiobutton\",\r\n uiRefresh = \"ui-refresh\",\r\n uiRemoveConnectionPoint = \"ui-remove-connection-point\",\r\n uiRepeating = \"ui-repeating\",\r\n uiReply = \"ui-reply\",\r\n uiResizeBottomLeft = \"ui-resize-bottom-left\",\r\n uiResizeBottomRight = \"ui-resize-bottom-right\",\r\n uiResizeDiagonal = \"ui-resize-diagonal\",\r\n uiResizeHorizontal = \"ui-resize-horizontal\",\r\n uiResizeTopLeft = \"ui-resize-top-left\",\r\n uiResizeTopRight = \"ui-resize-top-right\",\r\n uiResizeVertical = \"ui-resize-vertical\",\r\n uiScrollHorizontal = \"ui-scroll-horizontal\",\r\n uiScrollVertical = \"ui-scroll-vertical\",\r\n uiSearch = \"ui-search\",\r\n uiSearchCross = \"ui-search-cross\",\r\n uiSearchCheck = \"ui-search-check\",\r\n uiSearchMinus = \"ui-search-minus\",\r\n uiSearchPlus = \"ui-search-plus\",\r\n uiShrink = \"ui-shrink\",\r\n uiSplitHorizontal = \"ui-split-horizontal\",\r\n uiSplitVertical = \"ui-split-vertical\",\r\n uiSqareDashed = \"ui-sqare-dashed\",\r\n uiStar = \"ui-star\",\r\n uiSync = \"ui-sync\",\r\n uiTarget = \"ui-target\",\r\n uiTreeLoad = \"ui-tree-load\",\r\n uiTreeSave = \"ui-tree-save\",\r\n uiTriangleBottom = \"ui-triangle-bottom\",\r\n uiTriangleLeft = \"ui-triangle-left\",\r\n uiTriangleRight = \"ui-triangle-right\",\r\n uiTriangleTop = \"ui-triangle-top\",\r\n uiUndo = \"ui-undo\",\r\n uiUndoA = \"ui-undo-a\",\r\n uiUndoB = \"ui-undo-b\",\r\n uiWindow = \"ui-window\",\r\n uiZoomInPage = \"ui-zoom-in-page\",\r\n user = \"user\",\r\n userBusinessDealCashExchange = \"user-business-deal-cash-exchange\",\r\n userCircle = \"user-circle\",\r\n userContactBook = \"user-contact-book\",\r\n userContactBookA = \"user-contact-book-a\",\r\n userCross = \"user-cross\",\r\n userFemale = \"user-female\",\r\n userFemaleCross = \"user-female-cross\",\r\n userFemaleCheck = \"user-female-check\",\r\n userFemaleList = \"user-female-list\",\r\n userFemaleMinus = \"user-female-minus\",\r\n userFemalePlus = \"user-female-plus\",\r\n userFemaleSign = \"user-female-sign\",\r\n userForward = \"user-forward\",\r\n userGear = \"user-gear\",\r\n userGroup = \"user-group\",\r\n userGroupA = \"user-group-a\",\r\n userGroupFemale = \"user-group-female\",\r\n userHeadset = \"user-headset\",\r\n userCheck = \"user-check\",\r\n userCheckA = \"user-check-a\",\r\n userCheckB = \"user-check-b\",\r\n userKey = \"user-key\",\r\n userList = \"user-list\",\r\n userLock = \"user-lock\",\r\n userLockUnlocked = \"user-lock-unlocked\",\r\n userLockUnlockedB = \"user-lock-unlocked-b\",\r\n userMale = \"user-male\",\r\n userMaleCross = \"user-male-cross\",\r\n userMaleCheck = \"user-male-check\",\r\n userMaleList = \"user-male-list\",\r\n userMaleMinus = \"user-male-minus\",\r\n userMalePlus = \"user-male-plus\",\r\n userMaleSign = \"user-male-sign\",\r\n userMessagesPeopleUserWarning = \"user-messages-people-user-warning\",\r\n userMinus = \"user-minus\",\r\n userMultipleUsers = \"user-multiple-users\",\r\n userPlus = \"user-plus\",\r\n userShare = \"user-share\",\r\n userSingleNeutralActionsBlock = \"user-single-neutral-actions-block\",\r\n userSingleNeutralActionsEdit = \"user-single-neutral-actions-edit\",\r\n userSingleNeutralHome = \"user-single-neutral-home\",\r\n userToiletSign = \"user-toilet-sign\",\r\n userWalking = \"user-walking\",\r\n videoPlayer = \"video-player\",\r\n weatherCloud = \"weather-cloud\",\r\n weatherCloudFlash = \"weather-cloud-flash\",\r\n weatherCloudRain = \"weather-cloud-rain\",\r\n weatherCloudSnow = \"weather-cloud-snow\",\r\n weatherFire = \"weather-fire\",\r\n weatherFlash = \"weather-flash\",\r\n weatherMoon = \"weather-moon\",\r\n weatherMoonA = \"weather-moon-a\",\r\n weatherSnowflake = \"weather-snowflake\",\r\n weatherSun = \"weather-sun\",\r\n weatherSunCloudSnow = \"weather-sun-cloud-snow\",\r\n weatherSunrise = \"weather-sunrise\",\r\n weatherThermometer = \" weather-thermometer\",\r\n weatherWater = \"weather-water\",\r\n weatherWindsock = \"weather-windsock\",\r\n webAnalyticsNet = \"web-analytics-net\",\r\n webAtSign = \"web-at-sign\",\r\n webBarsHome = \"web-bars-home\",\r\n webBrokenLink = \"web-broken-link\",\r\n webBrowser = \"web-browser\",\r\n webBrowserGrid = \"web-browser-grid\",\r\n webBrowserWindow = \"web-browser-window\",\r\n webBug = \"web-bug\",\r\n webCode = \"web-code\",\r\n webCollapseDown = \"web-collapse-down\",\r\n webCollapseLeft = \"web-collapse-left\",\r\n webCollapseRight = \"web-collapse-right\",\r\n webCollapseUp = \"web-collapse-up\",\r\n webConsole = \"web-console\",\r\n webDataFileBars = \"web-data-file-bars\",\r\n webDataFileBarsHome = \"web-data-file-bars-home\",\r\n webFlag = \"web-flag\",\r\n webFlagC = \"web-flag-c\",\r\n webGlobe = \"web-globe\",\r\n webGridUpload = \"web-grid-upload\",\r\n webChart = \"web-chart\",\r\n webIncreaseMail = \"web-increase-mail\",\r\n webLink = \"web-link\",\r\n webLinkB = \"web-link-b\",\r\n webLinkBCheck = \"web-link-b-check\",\r\n webRss = \"web-rss\",\r\n webRssSettings = \"web-rss-settings\",\r\n webServer = \"web-server\",\r\n webShare = \"web-share\",\r\n webStatistic = \"web-statistic\",\r\n webTabletIncrease = \"web-tablet-increase\",\r\n webTabs = \"web-tabs\",\r\n webTabsCross = \"web-tabs-cross\",\r\n webTabsCheck = \"web-tabs-check\",\r\n webTabsMinus = \"web-tabs-minus\",\r\n webTabsPlus = \"web-tabs-plus\",\r\n webWarning = \"web-warning\",\r\n webWebcam = \"web-webcam\",\r\n\r\n // Bold verze (tučné nebo vyplněné)\r\n // Liší se koncovkami *Filled a *-filled\r\n\r\n buildingBedFilled = \"building-bed-filled\",\r\n buildingCabinetFilled = \"building-cabinet-filled\",\r\n buildingDaylightFilled = \"building-daylight-filled\",\r\n buildingDeskFilled = \"building-desk-filled\",\r\n buildingDoorFilled = \"building-door-filled\",\r\n buildingDrawerFilled = \"building-drawer-filled\",\r\n buildingExitFilled = \"building-exit-filled\",\r\n buildingFaucetFilled = \"building-faucet-filled\",\r\n buildingFireplaceFilled = \"building-fireplace-filled\",\r\n buildingHangingRackFilled = \"building-hanging-rack-filled\",\r\n buildingHeaterFilled = \"building-heater-filled\",\r\n buildingHouseFilled = \"building-house-filled\",\r\n buildingChairFilled = \"building-chair-filled\",\r\n buildingLampAFilled = \"building-lamp-a-filled\",\r\n buildingLampFilled = \"building-lamp-filled\",\r\n buildingLiftFilled = \"building-lift-filled\",\r\n buildingMuseumFilled = \"building-museum-filled\",\r\n buildingOfficeAddBFilled = \"building-office-add-b-filled\",\r\n buildingOfficeAFilled = \"building-office-a-filled\",\r\n buildingOfficeFilled = \"building-office-filled\",\r\n buildingOfficeSettingsBFilled = \"building-office-settings-b-filled\",\r\n buildingPlanBalconyFilled = \"building-plan-balcony-filled\",\r\n buildingRealEstateDimensionsBlockFilled = \"building-real-estate-dimensions-block-filled\",\r\n buildingRealEstateDimensionsPlanFilled = \"building-real-estate-dimensions-plan-filled\",\r\n buildingRockerSwitchFilled = \"building-rocker-switch-filled\",\r\n buildingSafetyFireShieldFilled = \"building-safety-fire-shield-filled\",\r\n buildingSofaAFilled = \"building-sofa-a-filled\",\r\n buildingSofaFilled = \"building-sofa-filled\",\r\n buildingToiletFilled = \"building-cabinet-filled\",\r\n buildingViewFilled = \"building-view-filled\",\r\n comAdvertisingMegaphoneFilled = \"com-advertising-megaphone-filled\",\r\n comBellFilled = \"com-bell-filled\",\r\n comBubbleAFilled = \"com-bubble-a-filled\",\r\n comBubbleDotAFilled = \"com-bubble-dot-a-filled\",\r\n comBubbleDotFilled = \"com-bubble-dot-filled\",\r\n comBubbleFilled = \"com-bubble-filled\",\r\n comBubbleGroupAFilled = \"com-bubble-group-a-filled\",\r\n comBubbleGroupFilled = \"com-bubble-group-filled\",\r\n comBubbleLineAFilled = \"com-bubble-line-a-filled\",\r\n comBubbleLineFilled = \"com-bubble-line-filled\",\r\n comHelpAFilled = \"com-help-a-filled\",\r\n comHelpFilled = \"com-help-filled\",\r\n comLanguageFilled = \"com-language-filled\",\r\n comMailClockFilled = \"com-mail-clock-filled\",\r\n comMailCrossFilled = \"com-mail-cross-filled\",\r\n comMailDownloadFilled = \"com-mail-download-filled\",\r\n comMailFilled = \"com-mail-filled\",\r\n comMailCheckFilled = \"com-mail-check-filled\",\r\n comMailMinusFilled = \"com-mail-minus-filled\",\r\n comMailOpenFilled = \"com-mail-open-filled\",\r\n comMailOpenWarningFilled = \"com-mail-open-warning-filled\",\r\n comMailPlusFilled = \"com-mail-plus-filled\",\r\n comMailReceiveFilled = \"com-mail-receive-filled\",\r\n comMailSyncFilled = \"com-mail-sync-filled\",\r\n comMailWarningFilled = \"com-mail-warning-filled\",\r\n comMegaphoneFilled = \"com-megaphone-filled\",\r\n comMicFilled = \"com-mic-filled\",\r\n comMicMuteFilled = \"com-mic-mute-filled\",\r\n comMicrophonePodcastFilled = \"com-microphone-podcast-2-filled\",\r\n comPaperplaneFilled = \"com-paperplane-filled\",\r\n comPhoneFilled = \"com-phone-filled\",\r\n comPhoneLandlineFilled = \"com-phone-landline-filled\",\r\n comPicturesFilled = \"com-pictures-filled\",\r\n comPostcardFilled = \"com-postcard-filled\",\r\n comSatelliteFilled = \"com-satellite-filled\",\r\n comVoicemailFilled = \"com-voicemail-filled\",\r\n comWarningFilled = \"com-warning-filled\",\r\n docAnalyticsUpFilled = \"doc-analytics-up-filled\",\r\n docArchiveDownloadFilled = \"doc-archive-download-filled\",\r\n docArchiveEmptyFilled = \"doc-archive-empty-filled\",\r\n docArchiveFilled = \"doc-archive-filled\",\r\n docArchiveFolderFilled = \"doc-archive-folder-filled\",\r\n docArchiveUploadFilled = \"doc-archive-upload-filled\",\r\n docArticleFilled = \"doc-article-filled\",\r\n docAttachmentFilled = \"doc-attachment-filled\",\r\n docBookAFilled = \"doc-book-a-filled\",\r\n docBookBFilled = \"doc-book-b-filled\",\r\n docBookCashFilled = \"doc-book-cash-filled\",\r\n docBookDownloadFilled = \"doc-book-download-filled\",\r\n docBookFilled = \"doc-book-filled\",\r\n docBookLibraryFilled = \"doc-book-library-filled\",\r\n docBookmarkFilled = \"doc-bookmark-filled\",\r\n docBookModulesFilled = \"doc-book-modules-filled\",\r\n docBookSettingsFilled = \"doc-book-settings-filled\",\r\n docBookTargetFilled = \"doc-book-target-filled\",\r\n docBookUploadFilled = \"doc-book-upload-filled\",\r\n docBoxPFilled = \"doc-box-p-filled\",\r\n docBriefcaseFilled = \"doc-briefcase-filled\",\r\n docCameraFilled = \"doc-camera-filled\",\r\n docCommonFileEditFilled = \"doc-common-file-edit-filled\",\r\n docCommonFileHomeFilled = \"doc-common-file-home-filled\",\r\n docCommonFileTextEditFilled = \"doc-common-file-text-edit-filled\",\r\n docComposeFilled = \"doc-compose-filled\",\r\n docCopyFilled = \"doc-copy-filled\",\r\n docDiaryFilled = \"doc-diary-filled\",\r\n docDownloadFilled = \"doc-download-filled\",\r\n docFileBlankFilled = \"doc-file-blank-filled\",\r\n docFileBookmarkFilled = \"doc-file-bookmark-filled\",\r\n docFileCrossFilled = \"doc-file-cross-filled\",\r\n docFileCheckFilled = \"doc-file-check-filled\",\r\n docFileLineFilled = \"doc-file-line-filled\",\r\n docFileMinusFilled = \"doc-file-minus-filled\",\r\n docFileNextFilled = \"doc-file-next-filled\",\r\n docFilePlusFilled = \"doc-file-plus-filled\",\r\n docFilePrevFilled = \"doc-file-prev-filled\",\r\n docFilePrintFilled = \"doc-file-print-filled\",\r\n docFileRefreshFilled = \"doc-file-refresh-filled\",\r\n docFileSaveFilled = \"doc-file-save-filled\",\r\n docFileXlsFilled = \"doc-file-xls-filled\",\r\n docFolderCrossFilled = \"doc-folder-cross-filled\",\r\n docFolderFilled = \"doc-folder-filled\",\r\n docFolderHomeFilled = \"doc-folder-home-filled\",\r\n docFolderCheckFilled = \"doc-folder-check-filled\",\r\n docFolderMinusFilled = \"doc-folder-minus-filled\",\r\n docFolderPlusFilled = \"doc-folder-plus-filled\",\r\n docFolderSyncFilled = \"doc-folder-sync-filled\",\r\n docGlassesFilled = \"doc-glasses-filled\",\r\n docIdCardVerticalFilled = \"doc-id-card-vertical-filled\",\r\n docImageAFilled = \"doc-image-a-filled\",\r\n docImageFilled = \"doc-image-filled\",\r\n docInvoiceFilled = \"doc-invoice-filled\",\r\n docListFilled = \"doc-list-filled\",\r\n docListNumbersFilled = \"doc-list-numbers-filled\",\r\n docMailboxInFilled = \"doc-mailbox-in-filled\",\r\n docMinusFilled = \"doc-minus-filled\",\r\n docNewspaperFilled = \"doc-newspaper-filled\",\r\n docNotesFlipFilled = \"doc-notes-flip-filled\",\r\n docNotesGiveFilled = \"doc-notes-give-filled\",\r\n docNotesHomeFilled = \"doc-notes-home-filled\",\r\n docNotesPaperTextFilled = \"doc-notes-paper-text-filled\",\r\n docNotesUploadFilled = \"doc-notes-upload-filled\",\r\n docOfficeFilePdfFilled = \"doc-office-file-pdf-filled\",\r\n docOfficeFolderFilled = \"doc-office-folder-filled\",\r\n docOfficeStampDocumentFilled = \"doc-office-stamp-document-filled\",\r\n docPaperLineFilled = \"doc-paper-line-filled\",\r\n docPapersFilled = \"doc-papers-filled\",\r\n docPaperStackFilled = \"doc-paper-stack-filled\",\r\n docPieFilled = \"doc-pie-filled\",\r\n docPinFilled = \"doc-pin-filled\",\r\n docPlusFilled = \"doc-plus-filled\",\r\n docPrinterFilled = \"doc-printer-filled\",\r\n docProfileFilled = \"doc-profile-filled\",\r\n docStackFilled = \"doc-stack-filled\",\r\n docTaskChecklistFilled = \"doc-task-checklist-filled\",\r\n docTaskListQuestionFilled = \"doc-task-list-question-filled\",\r\n docTodoListFilled = \"doc-todo-list-filled\",\r\n docTodoListSquareFilled = \"doc-todo-list-square-filled\",\r\n docTodoListUserFilled = \"doc-todo-list-user-filled\",\r\n docUploadFilled = \"doc-upload-filled\",\r\n docWboardArrowTopFilled = \"doc-wboard-arrow-top-filled\",\r\n docWboardGearFilled = \"doc-wboard-gear-filled\",\r\n docWboardCheckFilled = \"doc-wboard-check-filled\",\r\n docWboardLineFilled = \"doc-wboard-line-filled\",\r\n docWboardSearchFilled = \"doc-wboard-search-filled\",\r\n editorialAlignCenterFilled = \"editorial-align-center-filled\",\r\n editorialAlignLeftFilled = \"editorial-align-left-filled\",\r\n editorialAlignRightFilled = \"editorial-align-right-filled\",\r\n editorialBookmarkFilled = \"editorial-bookmar-filled\",\r\n editorialBrushFilled = \"editorial-brush-filled\",\r\n editorialColorPaletteFilled = \"editorial-color-palette-filled\",\r\n editorialCombineIntersectFilled = \"editorial-combine-intersect-filled\",\r\n editorialFontSizeFilled = \"editorial-font-size-filled\",\r\n editorialHashFilled = \"editorial-hash-filled\",\r\n editorialIndentLeftFilled = \"editorial-indent-left-filled\",\r\n editorialIndentRightFilled = \"editorial-indent-right-filled\",\r\n editorialItalicOffFilled = \"editorial-italic-off-filled\",\r\n editorialParagraphFilled = \"editorial-paragraph-filled\",\r\n editorialParagraphFirstLetterFilled = \"editorial-paragraph-first-letter-filled\",\r\n editorialPencilFilled = \"editorial-pencil-filled\",\r\n editorialPencilSmallFilled = \"editorial-pencil-small-filled\",\r\n editorialPenFilled = \"editorial-pen-filled\",\r\n editorialRedoFilled = \"editorial-redo-filled\",\r\n editorialSortAscFilled = \"editorial-sort-asc-filled\",\r\n editorialSortCancelFilled = \"editorial-sort-cancel-filled\",\r\n editorialSortDescFilled = \"editorial-sort-desc-filled\",\r\n editorialTextBoldFilled = \"editorial-text-bold-filled\",\r\n editorialTextFormatFilled = \"editorial-text-format-filled\",\r\n editorialTextItalicFilled = \"editorial-text-italic-filled\",\r\n editorialTextStrikeFilled = \"editorial-text-strike-through-filled\",\r\n editorialTextStyleFilled = \"editorial-text-style-filled\",\r\n editorialTextUnderlineFilled = \"editorial-text-underline-filled\",\r\n editorialTrashFilled = \"editorial-trash-filled\",\r\n editorialTypingMachineFilled = \"editorial-typing-machine-filled\",\r\n editorialUndoFilled = \"editorial-undo-filled\",\r\n envAtomicBombFilled = \"env-atomic-bomb-filled\",\r\n envEarthFilled = \"env-earth-filled\",\r\n envFlowerFilled = \"env-flower-filled\",\r\n envLeafFilled = \"env-leaf-filled\",\r\n envMountainsFilled = \"env-mountains-filled\",\r\n envTreeAFilled = \"env-tree-a-filled\",\r\n envTreeFilled = \"env-tree-filled\",\r\n locationCompassFilled = \"location-compass-filled\",\r\n locationDirectionFilled = \"location-direction-filled\",\r\n locationDirectionSignFilled = \"location-direction-sign-filled\",\r\n locationMapCrossFilled = \"location-map-cross-filled\",\r\n locationMapFilled = \"location-map-filled\",\r\n locationPinAFilled = \"location-pin-a-filled\",\r\n locationPinBFilled = \"location-pin-b-filled\",\r\n locationPinFilled = \"location-pin-filled\",\r\n locationPinCheckFilled = \"location-pin-check-filled\",\r\n locationPinMapFilled = \"location-pin-map-filled\",\r\n locationPinMinusFilled = \"location-pin-minus-filled\",\r\n locationPinPlusFilled = \"location-pin-plus-filled\",\r\n locationPinsFilled = \"location-pins-filled\",\r\n locationStreetSignAFilled = \"location-street-sign-a-filled\",\r\n locationStreetSignFilled = \"location-street-sign-filled\",\r\n logoAppleFilled = \"logo-apple-filled\",\r\n logoLinuxFilled = \"logo-linux-filled\",\r\n logoWindowsFilled = \"logo-windows-filled\",\r\n miscBulletDiamondFilled = \"misc-bullet-diamond-filled\",\r\n miscCrownFilled = \"misc-crown-filled\",\r\n miscCubeFilled = \"misc-cube-filled\",\r\n miscCursorHandOpenFilled = \"misc-cursor-hand-open-filled\",\r\n miscFemaleSignFilled = \"misc-female-sign-filled\",\r\n miscGestureDoubleTapFilled = \"misc-gesture-double-tap-filled\",\r\n miscGestureFilled = \"misc-gesture-filled\",\r\n miscGestureSwipeLeftFilled = \"misc-gesture-swipe-left-filled\",\r\n miscGestureSwipeRightFilled = \"misc-gesture-swipe-right-filled\",\r\n miscGestureTapFilled = \"misc-gesture-tap-filled\",\r\n miscGlobeFilled = \"misc-globe-filled\",\r\n miscGridPerspectiveFilled = \"misc-grid-perspective-filled\",\r\n miscMaleSignFilled = \"misc-male-sign-filled\",\r\n miscPuzzleFilled = \"misc-puzzle-filled\",\r\n miscReceptionHotelBellFilled = \"misc-reception-hotel-bell-filled\",\r\n miscSmileAngryFilled = \"misc-smile-angry-filled\",\r\n miscSmileHappyFilled = \"misc-smile-happy-filled\",\r\n miscSmileLaughtFilled = \"misc-smile-laught-filled\",\r\n miscSmileMehFilled = \"misc-smile-meh-filled\",\r\n miscSmileSadFilled = \"misc-smile-sad-filled\",\r\n miscWifiFilled = \"misc-wifi-filled\",\r\n musicAlbumFilled = \"music-album-filled\",\r\n musicCdFilled = \"music-cd-filled\",\r\n musicEjectFilled = \"music-eject-filled\",\r\n musicEqualiserFilled = \"music-equaliser-filled\",\r\n musicListFilled = \"music-list-filled\",\r\n musicMicFilled = \"music-mic-filled\",\r\n musicNextAFilled = \"music-next-a-filled\",\r\n musicNextFilled = \"music-next-filled\",\r\n musicNoteAFilled = \"music-note-a-filled\",\r\n musicNoteFilled = \"music-note-filled\",\r\n musicPauseFilled = \"music-pause-filled\",\r\n musicPlayFilled = \"music-play-filled\",\r\n musicPlaylistFilled = \"music-playlist-filled\",\r\n musicPreviousAFilled = \"music-previous-a-filled\",\r\n musicPreviousFilled = \"music-previous-filled\",\r\n musicRadioFilled = \"music-radio-filled\",\r\n musicRepeatFilled = \"music-repeat-filled\",\r\n musicRepeatOneFilled = \"music-repeat-one-filled\",\r\n musicShuffleFilled = \"music-shuffle-filled\",\r\n musicSpeakerFilled = \"music-speaker-filled\",\r\n musicStopFilled = \"music-stop-filled\",\r\n musicVolumeHighFilled = \"music-volume-high-filled\",\r\n musicVolumeLowFilled = \"music-volume-low-filled\",\r\n musicVolumeMediumFilled = \"music-volume-medium-filled\",\r\n musicVolumeMuteFilled = \"music-volume-mute-filled\",\r\n musicHeadphonesAFilled = \"music-headphones-a-filled\",\r\n musicHeadphonesFilled = \"music-headphones-filled\",\r\n settingsAirplaneFilled = \"settings-airplane-filled\",\r\n settingsAutoFlashFilled = \"settings-auto-flash-filled\",\r\n settingsColorModeFilled = \"settings-color-mode-filled\",\r\n settingsComonentFilled = \"settings-comonent-filled\",\r\n settingsEqualizerFilled = \"settings-equalizer-filled\",\r\n settingsGearAFilled = \"settings-gear-a-filled\",\r\n settingsGearFilled = \"settings-gear-filled\",\r\n settingsHotspotFilled = \"settings-hotspot-filled\",\r\n settingsMachineTrackFilled = \"settings-machine-track-filled\",\r\n settingsWrenchFilled = \"settings-wrench-filled\",\r\n shopAccountingBillStackFilled = \"shop-accounting-bill-stack-filled\",\r\n shopBagFilled = \"shop-bag-filled\",\r\n shopBarcodeFilled = \"shop-barcode-filled\",\r\n shopBasketFilled = \"shop-basket-filled\",\r\n shopBillFilled = \"shop-bill-filled\",\r\n shopBoxEmptyFilled = \"shop-box-empty-filled\",\r\n shopBoxFilled = \"shop-box-filled\",\r\n shopBoxMinusFilled = \"shop-box-minus-filled\",\r\n shopBoxPlusFilled = \"shop-box-plus-filled\",\r\n shopCartDownloadFilled = \"shop-cart-download-filled\",\r\n shopCartEmptyFilled = \"shop-cart-empty-filled\",\r\n shopCartFullFilled = \"shop-cart-full-filled\",\r\n shopCashDolarFilled = \"shop-cash-dolar-filled\",\r\n shopCashFilled = \"shop-cash-filled\",\r\n shopCoinsFilled = \"shop-coins-filled\",\r\n shopCreditcardFilled = \"shop-creditcard-filled\",\r\n shopDiamondFilled = \"shop-diamond-filled\",\r\n shopDiscountCircleFilled = \"shop-discount-circle-filled\",\r\n shopDiscountCouponFilled = \"shop-discount-coupon-filled\",\r\n shopDolarFilled = \"shop-dolar-filled\",\r\n shopEuroFilled = \"shop-euro-filled\",\r\n shopMarketFilled = \"shop-market-filled\",\r\n shopMastercardFilled = \"shop-mastercard-filled\",\r\n shopPerformanceMoneyDecreaseFilled = \"shop-performance-money-decrease-filled\",\r\n shopPoundFilled = \"shop-pound-filled\",\r\n shopPresentFilled = \"shop-present-filled\",\r\n shopSafeBoxFilled = \"shop-safe-box-filled\",\r\n shopSavingPiggyBankFilled = \"shop-saving-piggy-bank-filled\",\r\n shopShipmentPackagesFilled = \"shop-shipment-packages-filled\",\r\n shopSuitcaseFilled = \"shop-suitcase-filled\",\r\n shopTagDatabaseFilled = \"shop-tag-database-filled\",\r\n shopTagFilled = \"shop-tag-filled\",\r\n shopTagCheckFilled = \"shop-tag-check-filled\",\r\n shopTagInfoFilled = \"shop-tag-info-filled\",\r\n shopTagLockFilled = \"shop-tag-lock-filled\",\r\n shopTagMinusFilled = \"shop-tag-minus-filled\",\r\n shopTagPlusFilled = \"shop-tag-plus-filled\",\r\n shopTagRefreshFilled = \"shop-tag-refresh-filled\",\r\n shopTagSearchFilled = \"shop-tag-search-filled\",\r\n shopTieFilled = \"shop-tie-filled\",\r\n shopTrackingFilled = \"shop-tracking-filled\",\r\n shopWalletFilled = \"shop-wallet-filled\",\r\n sportBadgeBFilled = \"sport-badge-b-filled\",\r\n sportBadgeCFilled = \"sport-badge-c-filled\",\r\n sportBadgeFilled = \"sport-badge-filled\",\r\n sportBadgeHFilled = \"sport-badge-h-filled\",\r\n sportDumbellFilled = \"sport-dumbell-filled\",\r\n sportFlagFilled = \"sport-flag-filled\",\r\n sportGaugeFilled = \"sport-gauge-filled\",\r\n sportHeartPulseFilled = \"sport-heart-pulse-filled\",\r\n sportMedicFilled = \"sport-medic-filled\",\r\n sportMedicineLabFilled = \"sport-medicine-lab-filled\",\r\n sportPuzzleFilled = \"sport-puzzle-filled\",\r\n sportTrophyFilled = \"sport-trophy-filled\",\r\n sportTvFilled = \"sport-tv-filled\",\r\n timeAlarmFilled = \"time-alarm-filled\",\r\n timeCalendarCashFilled = \"time-calendar-cash-filled\",\r\n timeCalendarClockFilled = \"time-calendar-clock-filled\",\r\n timeCalendarDotsFilled = \"time-calendar-dots-filled\",\r\n timeCalendarFilled = \"time-calendar-filled\",\r\n timeCalendarSmallFilled = \"time-calendar-small-filled\",\r\n timeCalendarWeekFilled = \"time-calendar-week-filled\",\r\n timeClockCircleFilled = \"time-clock-circle-filled\",\r\n timeClockFFilled = \"time-clock-f-filled\",\r\n timeHourglassFilled = \"time-hourglass-filled\",\r\n timeSpeedMeterFilled = \"time-speed-meter-filled\",\r\n timeStopwatchFilled = \"time-stopwatch-filled\",\r\n timeTimerFilled = \"time-timer-filled\",\r\n timeWatchFilled = \"time-watch-filled\",\r\n toolAndroidTypeFilled = \"tool-android-type-filled\",\r\n toolAreaTypeFilled = \"tool-area-type-filled\",\r\n toolBinocularsFilled = \"tool-binoculars-filled\",\r\n toolCalcFilled = \"tool-calc-filled\",\r\n toolCameraFilled = \"tool-camera-filled\",\r\n toolCompassFilled = \"tool-compass-filled\",\r\n toolConsoleAFilled = \"tool-console-a-filled\",\r\n toolConsoleFilled = \"tool-console-filled\",\r\n toolDisplayFilled = \"tool-display-filled\",\r\n toolDisplayUserFilled = \"tool-display-user-filled\",\r\n toolFireExtinguisherFilled = \"tool-fire-extinguisher-filled\",\r\n toolFlashlightFilled = \"tool-flashlight-filled\",\r\n toolFloppyDiskFilled = \"tool-floppy-disk-filled\",\r\n toolFloppyDisksFilled = \"tool-floppy-disks-filled\",\r\n toolFloppyEditFilled = \"tool-floppy-edit-filled\",\r\n toolFocuFilled = \"tool-focus-filled\",\r\n toolGearsTypeFilled = \"tool-gears-type-filled\",\r\n toolGridFilled = \"tool-grid-filled\",\r\n toolHammerAFilled = \"tool-hammer-a-filled\",\r\n toolHammerAngleFilled = \"tool-hammer-angle-filled\",\r\n toolHammerFilled = \"tool-hammer-filled\",\r\n toolHammerPlusFilled = \"tool-hammer-plus-filled\",\r\n toolHardwareTypeFilled = \"tool-hardware-type-filled\",\r\n toolIntTypeFilled = \"tool-int-type-filled\",\r\n toolLaptopFilled = \"tool-laptop-filled\",\r\n toolMagicWandFilled = \"tool-magic-wand-filled\",\r\n toolMagnetFilled = \"tool-magnet-filled\",\r\n toolModuleThreeFilled = \"tool-module-three-filled\",\r\n toolMouseFilled = \"tool-mouse-filled\",\r\n toolPhoneFilled = \"tool-phone-filled\",\r\n toolPhoneLandscapeFilled = \"tool-phone-landscape-filled\",\r\n toolPlugFilled = \"tool-plug-filled\",\r\n toolProjectorFilled = \"tool-projector-filled\",\r\n toolPropertyTypeFilled = \"tool-property-type-filled\",\r\n toolProtectionTypeFilled = \"tool-protection-type-filled\",\r\n toolRazorFilled = \"tool-razor-filled\",\r\n toolRouterSignalFilled = \"tool-router-signal-filled\",\r\n toolRulerBFilled = \"tool-ruler-b-filled\",\r\n toolRulerCornerFilled = \"tool-ruler-corner-filled\",\r\n toolRulerFilled = \"tool-ruler-filled\",\r\n toolSateliteTypeFilled = \"tool-satelite-type-filled\",\r\n toolsBoxFilled = \"tools-box-filled\",\r\n toolScissorsFilled = \"tool-scissors-filled\",\r\n toolSmartphonePayFilled = \"tool-smartphone-pay-filled\",\r\n toolTextTypeFilled = \"tool-text-type-filled\",\r\n toolUmbrellaFilled = \"tool-umbrella-filled\",\r\n transportBicycleFilled = \"transport-bicycle-filled\",\r\n transportBusAFilled = \"transport-bus-a-filled\",\r\n transportBusFilled = \"transport-bus-filled\",\r\n transportBusTicketFilled = \"transport-bus-ticket-filled\",\r\n transportCarAFilled = \"transport-car-a-filled\",\r\n transportCarFilled = \"transport-car-filled\",\r\n transportShipAFilled = \"transport-ship-a-filled\",\r\n transportShipFilled = \"transport-ship-filled\",\r\n transportSignStopFilled = \"transport-sign-stop-filled\",\r\n transportTrainFilled = \"transport-train-filled\",\r\n transportTruckAFilled = \"transport-truck-a-filled\",\r\n transportTruckFilled = \"transport-truck-filled\",\r\n uiAddConnectionPointFilled = \"ui-add-connection-point-filled\",\r\n uiAlignBottomFilled = \"ui-align-bottom-filled\",\r\n uiAlignLeftFilled = \"ui-align-left-filled\",\r\n uiAlignRightFilled = \"ui-align-right-filled\",\r\n uiAlignTopFilled = \"ui-align-top-filled\",\r\n uiArrowBottomAFilled = \"ui-arrow-bottom-a-filled\",\r\n uiArrowBottomFilled = \"ui-arrow-bottom-filled\",\r\n uiArrowBottomLeftFilled = \"ui-arrow-bottom-left-filled\",\r\n uiArrowBottomRightFilled = \"ui-arrow-bottom-right-filled\",\r\n uiArrowBottomSmallFilled = \"ui-arrow-bottom-small-filled\",\r\n uiArrowLeftAFilled = \"ui-arrow-left-a-filled\",\r\n uiArrowLeftFilled = \"ui-arrow-left-filled\",\r\n uiArrowLeftSmallFilled = \"ui-arrow-left-small-filled\",\r\n uiArrowRightAFilled = \"ui-arrow-right-a-filled\",\r\n uiArrowRightFilled = \"ui-arrow-right-filled\",\r\n uiArrowRightSmallFilled = \"ui-arrow-right-small-filled\",\r\n uiArrowTopAFilled = \"ui-arrow-top-a-filled\",\r\n uiArrowTopFilled = \"ui-arrow-top-filled\",\r\n uiArrowTopLeftFilled = \"ui-arrow-top-left-filled\",\r\n uiArrowTopRightFilled = \"ui-arrow-top-right-filled\",\r\n uiArrowTopSmallFilled = \"ui-arrow-top-small-filled\",\r\n uiAttributeFilled = \"ui-attribute-filled\",\r\n uiAttributeInheritedFilled = \"ui-attribute-inherited-filled\",\r\n uiBackspaceFilled = \"ui-backspace-filled\",\r\n uiBlockFilled = \"ui-block-filled\",\r\n uiBoxHelpFilled = \"ui-box-help-filled\",\r\n uiBoxWarningFilled = \"ui-box-warning-filled\",\r\n uiBulletViewFilled = \"ui-bullet-view-filled\",\r\n uiCardFilled = \"ui-card-filled\",\r\n uiCardViewFilled = \"ui-card-view-filled\",\r\n uiCircleArrowBottomFilled = \"ui-circle-arrow-bottom-filled\",\r\n uiCircleArrowLeftFilled = \"ui-circle-arrow-left-filled\",\r\n uiCircleArrowRightFilled = \"ui-circle-arrow-right-filled\",\r\n uiCircleArrowTopFilled = \"ui-circle-arrow-top-filled\",\r\n uiCircleCrossFilled = \"ui-circle-cross-filled\",\r\n uiCircleFilled = \"ui-circle-filled\",\r\n uiCircleHelpFilled = \"ui-circle-help-filled\",\r\n uiCircleCheckAFilled = \"ui-circle-check-a-filled\",\r\n uiCircleCheckFilled = \"ui-circle-check-filled\",\r\n uiCircleChevronBottomFilled = \"ui-circle-chevron-bottom-filled\",\r\n uiCircleChevronLeftFilled = \"ui-circle-chevron-left-filled\",\r\n uiCircleChevronRightFilled = \"ui-circle-chevron-right-filled\",\r\n uiCircleChevronTopFilled = \"ui-circle-chevron-top-filled\",\r\n uiCircleInfoFilled = \"ui-circle-info-filled\",\r\n uiCircleMinusFilled = \"ui-circle-minus-filled\",\r\n uiCirclePlusFilled = \"ui-circle-plus-filled\",\r\n uiCircleWarningFilled = \"ui-circle-warning-filled\",\r\n uiCloseParallelConnectionFilled = \"ui-close-parallel-connection-filled\",\r\n uiCloudDownloadFilled = \"ui-cloud-download-filled\",\r\n uiCloudUploadFilled = \"ui-cloud-upload-filled\",\r\n uiCmdFilled = \"ui-cmd-filled\",\r\n uiComboboxFilled = \"ui-combobox-filled\",\r\n uiConditionFilled = \"ui-condition-filled\",\r\n uiConeFilled = \"ui-cone-filled\",\r\n uiConnectionFilled = \"ui-connection-filled\",\r\n uiConnectionInheritedFilled = \"ui-connection-inherited-filled\",\r\n uiConnectionOpenFilled = \"ui-connection-open-filled\",\r\n uiConnectionOpenInheritedFilled = \"ui-connection-open-inherited-filled\",\r\n uiCreateConnectionFilled = \"ui-create-connection-filled\",\r\n uiCropFilled = \"ui-crop-filled\",\r\n uiCrossFilled = \"ui-cross-filled\",\r\n uiCrossSmallFilled = \"ui-cross-small-filled\",\r\n uiDotFilled = \"ui-dot-filled\",\r\n uiDotLargeFilled = \"ui-dot-large-filled\",\r\n uiDragHandleFilled = \"ui-drag-handle-filled\",\r\n uiEnlargeFilled = \"ui-enlarge-filled\",\r\n uiExpandFilled = \"ui-expand-filled\",\r\n uiExportFilled = \"ui-export-filled\",\r\n uiEyeCrossFilled = \"ui-eye-cross-filled\",\r\n uiEyeFilled = \"ui-eye-filled\",\r\n uiFilterFilled = \"ui-filter-filled\",\r\n uiForwardFilled = \"ui-forward-filled\",\r\n uiFrameFilled = \"ui-frame-filled\",\r\n uiFullscreenAFilled = \"ui-fullscreen-a-filled\",\r\n uiFullscreenFilled = \"ui-fullscreen-filled\",\r\n uiGridViewFilled = \"ui-grid-view-filled\",\r\n uiHamburgerFilled = \"ui-hamburger-filled\",\r\n uiHeartFilled = \"ui-heart-filled\",\r\n uiHelpFilled = \"ui-help-filled\",\r\n uiHierarchyFilled = \"ui-hierarchy-filled\",\r\n uiHierarchyTreeFilled = \"ui-hierarchy-tree-filled\",\r\n uiHomeAFilled = \"ui-home-a-filled\",\r\n uiHomeFilled = \"ui-home-filled\",\r\n uiHouseFilled = \"ui-house-filled\",\r\n uiCheckboxFilled = \"ui-checkbox-filled\",\r\n uiCheckFilled = \"ui-check-filled\",\r\n uiCheckSmallCircleFilled = \"ui-check-small-circle-filled\",\r\n uiCheckSmallFilled = \"ui-check-small-filled\",\r\n uiChevronBottomFilled = \"ui-chevron-bottom-filled\",\r\n uiChevronBottomSmallFilled = \"ui-chevron-bottom-small-filled\",\r\n uiChevronLeftFilled = \"ui-chevron-left-filled\",\r\n uiChevronLeftSmallFilled = \"ui-chevron-left-small-filled\",\r\n uiChevronRightFilled = \"ui-chevron-right-filled\",\r\n uiChevronRightSmallFilled = \"ui-chevron-right-small-filled\",\r\n uiChevronRightTrippleFilled = \"ui-chevron-right-tripple-filled\",\r\n uiChevronTopFilled = \"ui-chevron-top-filled\",\r\n uiChevronTopSmallFilled = \"ui-chevron-top-small-filled\",\r\n uiImportFilled = \"ui-import-filled\",\r\n uiInLinkFilled = \"ui-in-link-filled\",\r\n uiKeyboardFilled = \"ui-keyboard-filled\",\r\n uiLayoutHalfFilled = \"ui-layout-half-filled\",\r\n uiLayoutHalfHorizontalFilled = \"ui-layout-half-horizontal-filled\",\r\n uiLayoutSidebarLFilled = \"ui-layout-sidebar-l-filled\",\r\n uiLayoutSidebarLHalfFilled = \"ui-layout-sidebar-l-half-filled\",\r\n uiLayoutTableViewFilled = \"ui-layout-table-view-filled\",\r\n uiLayoutThirdVerticalFilled = \"ui-layout-third-vertical-filled\",\r\n uiLayoutWireframeFilled = \"ui-layout-wireframe-filled\",\r\n uiListForwardFilled = \"ui-list-forward-filled\",\r\n uiListShareFilled = \"ui-list-share-filled\",\r\n uiListUserFilled = \"ui-list-user-filled\",\r\n uiListViewFilled = \"ui-list-view-filled\",\r\n uiLoginFilled = \"ui-login-filled\",\r\n uiLogoutFilled = \"ui-logout-filled\",\r\n uiMethodFilled = \"ui-method-filled\",\r\n uiMethodInheritedFilled = \"ui-method-inherited-filled\",\r\n uiMinusFilled = \"ui-minus-filled\",\r\n uiMinusSmallFilled = \"ui-minus-small-filled\",\r\n uiMoreFilled = \"ui-more-filled\",\r\n uiMoreHorizontalSmallFilled = \"ui-more-horizontal-small-filled\",\r\n uiMoreSmallCircleFilled = \"ui-more-small-circle-filled\",\r\n uiMoreSmallFilled = \"ui-more-small-filled\",\r\n uiMoreVerticalFilled = \"ui-more-vertical-filled\",\r\n uiMoreVerticalSmallFilled = \"ui-more-vertical-small-filled\",\r\n uiMoveFilled = \"ui-move-filled\",\r\n uiNextAFilled = \"ui-next-a-filled\",\r\n uiNextFilled = \"ui-next-filled\",\r\n uiNumberFilled = \"ui-number-filled\",\r\n uiOutLinkFilled = \"ui-out-link-filled\",\r\n uiPixelFilled = \"ui-pixel-filled\",\r\n uiPlusFilled = \"ui-plus-filled\",\r\n uiPlusSmallFilled = \"ui-plus-small-filled\",\r\n uiPopupFilled = \"ui-popup-filled\",\r\n uiPowerFilled = \"ui-power-filled\",\r\n uiPreviousAFilled = \"ui-previous-a-filled\",\r\n uiPreviousFilled = \"ui-previous-filled\",\r\n uiPropertyAndFilled = \"ui-property-and-filled\",\r\n uiRadiobuttonFilled = \"ui-radiobutton-filled\",\r\n uiRefreshFilled = \"ui-refresh-filled\",\r\n uiRemoveConnectionPointFilled = \"ui-remove-connection-point-filled\",\r\n uiRepeatingFilled = \"ui-repeating-filled\",\r\n uiReplyFilled = \"ui-reply-filled\",\r\n uiResizeBottomLeftFilled = \"ui-resize-bottom-left-filled\",\r\n uiResizeBottomRightFilled = \"ui-resize-bottom-right-filled\",\r\n uiResizeDiagonalFilled = \"ui-resize-diagonal-filled\",\r\n uiResizeHorizontalFilled = \"ui-resize-horizontal-filled\",\r\n uiResizeTopLeftFilled = \"ui-resize-top-left-filled\",\r\n uiResizeTopRightFilled = \"ui-resize-top-right-filled\",\r\n uiResizeVerticalFilled = \"ui-resize-vertical-filled\",\r\n uiScrollHorizontalFilled = \"ui-scroll-horizontal-filled\",\r\n uiScrollVerticalFilled = \"ui-scroll-vertical-filled\",\r\n uiSearchCrossFilled = \"ui-search-cross-filled\",\r\n uiSearchFilled = \"ui-search-filled\",\r\n uiSearchCheckFilled = \"ui-search-check-filled\",\r\n uiSearchMinusFilled = \"ui-search-minus-filled\",\r\n uiSearchPlusFilled = \"ui-search-plus-filled\",\r\n uiShrinkFilled = \"ui-shrink-filled\",\r\n uiSplitHorizontalFilled = \"ui-split-horizontal-filled\",\r\n uiSplitVerticalFilled = \"ui-split-vertical-filled\",\r\n uiSqareDashedFilled = \"ui-sqare-dashed-filled\",\r\n uiStarFilled = \"ui-star-filled\",\r\n uiSyncFilled = \"ui-sync-filled\",\r\n uiTargetFilled = \"ui-target-filled\",\r\n uiTreeLoadFilled = \"ui-tree-load-filled\",\r\n uiTreeSaveFilled = \"ui-tree-save-filled\",\r\n uiTriangleBottomFilled = \"ui-triangle-bottom-filled\",\r\n uiTriangleLeftFilled = \"ui-triangle-left-filled\",\r\n uiTriangleRightFilled = \"ui-triangle-right-filled\",\r\n uiTriangleTopFilled = \"ui-triangle-top-filled\",\r\n uiUndoAFilled = \"ui-undo-a-filled\",\r\n uiUndoBFilled = \"ui-undo-b-filled\",\r\n uiUndoFilled = \"ui-undo-filled\",\r\n uiWindowFilled = \"ui-window-filled\",\r\n uiZoomInPageFilled = \"ui-zoom-in-page-filled\",\r\n userBusinessDealCashExchangeFilled = \"user-business-deal-cash-exchange-filled\",\r\n userCircleFilled = \"user-circle-filled\",\r\n userContactBookAFilled = \"user-contact-book-a-filled\",\r\n userContactBookFilled = \"user-contact-book-filled\",\r\n userCrossFilled = \"user-cross-filled\",\r\n userFemaleCrossFilled = \"user-female-cross-filled\",\r\n userFemaleFilled = \"user-female-filled\",\r\n userFemaleCheckFilled = \"user-female-check-filled\",\r\n userFemaleListFilled = \"user-female-list-filled\",\r\n userFemaleMinusFilled = \"user-female-minus-filled\",\r\n userFemalePlusFilled = \"user-female-plus-filled\",\r\n userFemaleSignFilled = \"user-female-sign-filled\",\r\n userFilled = \"user-filled\",\r\n userForwardFilled = \"user-forward-filled\",\r\n userGearFilled = \"user-gear-filled\",\r\n userGroupAFilled = \"user-group-a-filled\",\r\n userGroupFemaleFilled = \"user-group-female-filled\",\r\n userGroupFilled = \"user-group-filled\",\r\n userHeadsetFilled = \"user-headset-filled\",\r\n userCheckAFilled = \"user-check-a-filled\",\r\n userCheckBFilled = \"user-check-b-filled\",\r\n userCheckFilled = \"user-check-filled\",\r\n userKeyFilled = \"user-key-filled\",\r\n userListFilled = \"user-list-filled\",\r\n userLockFilled = \"user-lock-filled\",\r\n userLockUnlockedFilled = \"user-lock-unlocked-filled\",\r\n userLockUnlockedFilledB = \"user-lock-unlocked-b-filled\",\r\n userMaleCrossFilled = \"user-male-cross-filled\",\r\n userMaleFilled = \"user-male-filled\",\r\n userMaleCheckFilled = \"user-male-check-filled\",\r\n userMaleListFilled = \"user-male-list-filled\",\r\n userMaleMinusFilled = \"user-male-minus-filled\",\r\n userMalePlusFilled = \"user-male-plus-filled\",\r\n userMaleSignFilled = \"user-male-sign-filled\",\r\n userMessagesPeopleUserWarningFilled = \"user-messages-people-user-warning-filled\",\r\n userMinusFilled = \"user-minus-filled\",\r\n userMultipleUsersFilled = \"user-multiple-users-filled\",\r\n userPlusFilled = \"user-plus-filled\",\r\n userShareFilled = \"user-share-filled\",\r\n userSingleNeutralActionsBlockFilled = \"user-single-neutral-actions-block-filled\",\r\n userSingleNeutralActionsEditFilled = \"user-single-neutral-actions-edit-filled\",\r\n userSingleNeutralHomeFilled = \"user-single-neutral-home-filled\",\r\n userToiletSignFilled = \"user-toilet-sign-filled\",\r\n userWalkingFilled = \"user-walking-filled\",\r\n videoPlayerFilled = \"video-player-filled\",\r\n weatherCloudFilled = \"weather-cloud-filled\",\r\n weatherCloudFlashFilled = \"weather-cloud-flash-filled\",\r\n weatherCloudRainFilled = \"weather-cloud-rain-filled\",\r\n weatherCloudSnowFilled = \"weather-cloud-snow-filled\",\r\n weatherFireFilled = \"weather-fire-filled\",\r\n weatherFlashFilled = \"weather-flash-filled\",\r\n weatherMoonAFilled = \"weather-moon-a-filled\",\r\n weatherMoonFilled = \"weather-moon-filled\",\r\n weatherSnowflakeFilled = \"weather-snowflake-filled\",\r\n weatherSunCloudSnowFilled = \"weather-sun-cloud-snow-filled\",\r\n weatherSunFilled = \"weather-sun-filled\",\r\n weatherSunriseFilled = \"weather-sunrise-filled\",\r\n weatherThermometerFilled = \" weather-thermometer-filled\",\r\n weatherWaterFilled = \"weather-water-filled\",\r\n weatherWindsockFilled = \"weather-windsock-filled\",\r\n webAnalyticsNetFilled = \"web-analytics-net-filled\",\r\n webAtSignFilled = \"web-at-sign-filled\",\r\n webBarsHomeFilled = \"web-bars-home-filled\",\r\n webBrokenLinkFilled = \"web-broken-link-filled\",\r\n webBrowserFilled = \"web-browser-filled\",\r\n webBrowserGridFilled = \"web-browser-grid-filled\",\r\n webBrowserWindowFilled = \"web-browser-window-filled\",\r\n webBugFilled = \"web-bug-filled\",\r\n webCodeFilled = \"web-code-filled\",\r\n webCollapseDownFilled = \"web-collapse-down-filled\",\r\n webCollapseLeftFilled = \"web-collapse-left-filled\",\r\n webCollapseRightFilled = \"web-collapse-right-filled\",\r\n webCollapseUpFilled = \"web-collapse-up-filled\",\r\n webConsoleFilled = \"web-console-filled\",\r\n webDataFileBarsFilled = \"web-data-file-bars-filled\",\r\n webDataFileBarsHomeFilled = \"web-data-file-bars-home-filled\",\r\n webFlagCFilled = \"web-flag-c-filled\",\r\n webFlagFilled = \"web-flag-filled\",\r\n webGlobeFilled = \"web-globe-filled\",\r\n webGridUploadFilled = \"web-grid-upload-filled\",\r\n webChartFilled = \"web-chart-filled\",\r\n webIncreaseMailFilled = \"web-increase-mail-filled\",\r\n webLinkBFilled = \"web-link-b-filled\",\r\n webLinkBCheckFilled = \"web-link-b-check-filled\",\r\n webLinkFilled = \"web-link-filled\",\r\n webRssFilled = \"web-rss-filled\",\r\n webRssSettingsFilled = \"web-rss-settings-filled\",\r\n webServerFilled = \"web-server-filled\",\r\n webShareFilled = \"web-share-filled\",\r\n webStatisticFilled = \"web-statistic-filled\",\r\n webTabletIncreaseFilled = \"web-tablet-increase-filled\",\r\n webTabsCrossFilled = \"web-tabs-cross-filled\",\r\n webTabsFilled = \"web-tabs-filled\",\r\n webTabsCheckFilled = \"web-tabs-check-filled\",\r\n webTabsMinusFilled = \"web-tabs-minus-filled\",\r\n webTabsPlusFilled = \"web-tabs-plus-filled\",\r\n webWarningFilled = \"web-warning-filled\",\r\n webWebcamFilled = \"web-webcam-filled\",\r\n}\r\n","/**\r\n * Struktura s lokalizovanými texty pro konkrétní lokalizační klíc\r\n * @includeToDoc\r\n */\r\nexport interface ILocalizationItem {\r\n /** Jazyk lokalizace (např. 'EN' nebo 'CZ') */\r\n readonly language: string;\r\n /** Lokalizační klíč obsahující jak oblast, tak číslo (např. XX-12345) */\r\n readonly locKey: string;\r\n /** Text primárního překladu */\r\n readonly primaryText: string;\r\n /** Text sekundární překladu. Často obsahuje podrobnější popis a používá se například pro vysvětlující popisky a jako alternativní text */\r\n readonly secondaryText?: string;\r\n}\r\n","/**\r\n * Typ změny profilu\r\n */\r\nexport enum ProfileChangeType {\r\n /**\r\n * Přidání profilu\r\n */\r\n add = 1,\r\n /**\r\n * Aktualizace profilu\r\n */\r\n update = 2,\r\n /**\r\n * Odebrání profilu\r\n */\r\n remove = 3,\r\n}\r\n","import { IFormProfile } from \"@multiweb/types/contracts\";\r\nimport { ProfileChangeType } from \"@multiweb/uiShared/ProfileChangeType\";\r\n\r\nexport enum FormManagerProperty {\r\n favoriteForm,\r\n}\r\n\r\n/**\r\n * Struktura identifikující a popisující instanci otevřeného formuláře. Slouží primárně k zobrazování\r\n * otevřených formulářů v hlavním menu. Je součástí rozhraní pro otvírání a zavírání formulářů.\r\n * Neobsahuje otevřený formulář jako takový, ten je součástí IOpenedForm.\r\n *\r\n * Protože se používá v reduxu, může obsahovat pouze primitivní typy, pole a pure objekty.\r\n * @includeToDoc\r\n */\r\nexport interface IOpenedFormInfo {\r\n /**\r\n * Jedinečný identifikátor pro otevřenou instanci formuláře. Generuje se při otevření formuláře.\r\n * Používá se pro identifikaci při událostech otevření a zavření formuláře a také pro akci\r\n * zavření formuláře.\r\n */\r\n readonly formInstanceId: string;\r\n /**\r\n * Kód otevřeného formuláře. Slouží k možnosti otevřít formuláře bez položek v menu v nových záložkách.\r\n */\r\n readonly formCode: string;\r\n /** Id položky menu, ze které se formulář otevřel. */\r\n readonly menuItemId?: number;\r\n /** Id profilu, pokud byl formulář otevřený s aplikovaným profilem. */\r\n readonly profileId?: number;\r\n /** Lokalizační klíč názvu formuláře. Zobrazen jen pokud není nastaven customTitle. */\r\n readonly titleLocKey?: string;\r\n /** Id záznamu, který se má vybrat v hlavním framu při dalším otevření */\r\n readonly selectedId?: string;\r\n /** Příznak, zda má být na otevřeném formuláři viditelný pouze DetailFrame */\r\n readonly visibleOnlyDetail?: boolean;\r\n /** Příznak, zda má být zobrazen v menu */\r\n readonly showInMenu?: boolean;\r\n /** Příznak, zda jsou na formuláři neuložené změny */\r\n readonly isEdited?: boolean;\r\n}\r\n\r\n/**\r\n * Datový interface uchovávající informace o změně titulku formuláře\r\n * @includeToDoc\r\n */\r\nexport interface ICustomTitleChangedInfo {\r\n /**\r\n * Unikátní identifikátor formuláře\r\n */\r\n readonly formInstanceId: string;\r\n /**\r\n * Text titulku formuláře\r\n */\r\n readonly customTitle: string;\r\n}\r\n\r\n/**\r\n * Datový interface uchovávající informace o změně skrytí tlačítka zavření formuláře\r\n * @includeToDoc\r\n */\r\nexport interface IHideCloseButtonChanged {\r\n /**\r\n * Unikátní identifikátor formuláře\r\n */\r\n readonly formInstanceId: string;\r\n /**\r\n * Příznak, zda se má skrýt zavírací tlačítko formuláře\r\n */\r\n readonly hideCloseButton: boolean;\r\n}\r\n\r\n/**\r\n * Data události o změně profilu formuláře\r\n * @includeToDoc\r\n */\r\nexport interface IFormProfileChanged {\r\n /** Typ změny profilu */\r\n readonly type: ProfileChangeType;\r\n /** Data profilu */\r\n readonly profile: IFormProfile;\r\n}\r\n\r\n/**\r\n * Data události o přidání nebo odebrání formuláře do nebo z oblíbených\r\n * @includeToDoc\r\n */\r\nexport interface IFavoriteFormChanged {\r\n /** Id položky menu */\r\n readonly menuId: number;\r\n /** Kód formuláře */\r\n readonly formCode: string;\r\n /** Zda je jako oblíbený */\r\n readonly isFavorite: boolean;\r\n /** Id vybraného profilu */\r\n readonly profile?: IFormProfile;\r\n}\r\n\r\n/**\r\n * Data pro serializaci profilu oblíbených formulářů\r\n */\r\nexport interface IFavoriteFormsProfile {\r\n /** Kolekce formulářů */\r\n readonly forms: IFavoriteFormItem[];\r\n}\r\n\r\n/**\r\n * Datová struktura položky oblíbeného formuláře\r\n */\r\nexport interface IFavoriteFormItem {\r\n /** Id položky menu */\r\n readonly menuId: number;\r\n /** Kód formuláře */\r\n readonly formCode: string;\r\n /** Id vybraného profilu */\r\n readonly profileId?: number;\r\n}\r\n","import { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Parametry předávané do všech CRUD volání serveru.\r\n * @includeToDoc\r\n */\r\nexport type RequestContext = {\r\n readonly roles?: readonly string[];\r\n\r\n /** Verze nastavení práv, které se má použít pro request. */\r\n readonly rightsSettingsVersion?: string;\r\n\r\n //readonly transationContextId?: string;\r\n getTransactionContextId?: () => string | undefined;\r\n\r\n /** Umožňuje stornovat běžící dotaz */\r\n readonly cancellationToken: CancellationToken;\r\n};\r\n\r\n/**\r\n * Vrací request kontext sestávající pouze se zadaného `cancellationToken`.\r\n * Určeno pro situace, kdy se záměrně role ani ID transakčního kontextu nepředává.\r\n */\r\nexport const getCancellationTokenAsRequestContext = (cancellationToken: CancellationToken): RequestContext => ({\r\n roles: undefined,\r\n getTransactionContextId: () => undefined,\r\n cancellationToken,\r\n});\r\n\r\n/**\r\n * Request kontext bez rolí, bez transakčního kontextu a bez tokenu k přerušení operace.\r\n */\r\nexport const EMPTY_REQUEST_CONTEXT: RequestContext = {\r\n roles: undefined,\r\n getTransactionContextId: () => undefined,\r\n cancellationToken: CancellationToken.none,\r\n};\r\n","import { IAggregationsResult, IRowData } from \"@multiweb/types/contracts\";\r\nimport { IBigNumber } from \"Global/Base/DataTypes/IBigNumber\";\r\nimport { IComparable } from \"Global/Base/IComparable\";\r\nimport { RequestContext } from \"OW.Remoting/Remoting/RequestContext\";\r\n\r\n/** Typ hodnoty parametru podmínky */\r\nexport type ConditionParam = IComparable | boolean | number | string | null;\r\n\r\n/** Typ kolekce s hodnotami pro parametry podmínky */\r\nexport type ConditionParams = readonly ConditionParam[] | null | undefined;\r\n\r\n/**\r\n * Výčet dostupných agregačních funkcí.\r\n * @see {@link IDataReaderClient#getAggregation}\r\n * @includeToDoc\r\n */\r\nexport enum AggregationFunction {\r\n count = \"COUNT\",\r\n min = \"MIN\",\r\n max = \"MAX\",\r\n avg = \"AVG\",\r\n sum = \"SUM\",\r\n}\r\n\r\n/**\r\n * Rozhraní pro parametry specifikující chování načítání řádků dat\r\n * @includeToDoc\r\n */\r\nexport interface IDataRowsParams {\r\n /**\r\n * Pole parametrů, které jsou pak odkazovány v podmínce pomocí @indexVPoli (@0)\r\n */\r\n readonly params?: ConditionParams;\r\n /**\r\n * Pole parametrů, podle kterých se mají řadit výsledky dotazu\r\n */\r\n readonly orderBy?: readonly string[];\r\n /**\r\n * Pole parametrů, podle kterých se mají seskupovat výsledky dotazu\r\n */\r\n readonly groupBy?: readonly string[];\r\n /**\r\n * Index (pořadové číslo), od kterého záznamu se mají vrátit záznamy, defaultně 0\r\n */\r\n readonly startIndex?: number;\r\n /**\r\n * Maximum vrácených záznamů, defaultně -1 (neomezeno)\r\n */\r\n readonly count?: number;\r\n /**\r\n * Maximální délka dat jednotlivých atributů (ořežou se), defaultně 0 (ořežou se na nakonfigurovanou hodnotu TrimLength v konfiguraci služby), -1 pro neomezeně\r\n */\r\n readonly dataLength?: number;\r\n /**\r\n * Pouze unikátní záznamy\r\n */\r\n readonly distinct?: boolean;\r\n /**\r\n * Příznak, zda se mají číst i verzované záznamy\r\n */\r\n readonly readVersioned?: boolean;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro hromadnou agregaci atributů jedné třídy.\r\n * Výsledky agregací jsou zapsány k odpovídajícím klíčům z těchto vstupních parametrů.\r\n */\r\nexport interface IAggregationsParams {\r\n readonly [key: string]: AggregationParams;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro agregaci jednoho atributu třídy.\r\n */\r\nexport type AggregationParams = {\r\n /** Název atributu, který se agreguje */\r\n readonly attributeName: string;\r\n /** Agregační funkce určující způsob agregace */\r\n readonly aggregationFunction: AggregationFunction;\r\n};\r\n\r\n/**\r\n * Klient pro čtení aplikačních dat a agregačních funkcí nad nimi.\r\n * @includeToDoc\r\n */\r\nexport interface IDataReaderClient {\r\n\r\n /**\r\n * Získá výsledek agregační funkce použité nad zadaným atributem v záznamech třídy splňující omezující podmínku. Pokud atribut v odpovídajících záznamech neobsahuje žádná data, vrací hodnotu 0.\r\n *\r\n * @param aggregationFunction Agregační funkce určující způsob agregace\r\n * @param className Název třídy, jejíž atribut se agreguje\r\n * @param attributeName Název atributu, který se agreguje\r\n * @param condition Podmínka omezující agregovaná data\r\n * @param conditionParams Parametry pro podmínku omezující agregovaná data\r\n * @param readVersioned Příznak, zda se má agregace provádět i nad verzovanými záznamy\r\n * @param requestContext Viz {@link RequestContext}\r\n * @see AggregationFunction\r\n * @see getAggregations\r\n */\r\n getAggregation(aggregationFunction: AggregationFunction, className: string, attributeName: string, condition: string, conditionParams?: ConditionParams, readVersioned?: boolean, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Získá výsledek agregačních funkcí nad různými atributy v záznamech třídy splňující omezující podmínku. Pro atributy, které v odpovídajících záznamech neobsahují žádná data, vrací hodnotu 0.\r\n * @param aggregationParams Agregační parametry definující jaké atributy se mají agregovat a jaké agregační funkce se pro to použijí.\r\n * @param className Název třídy, jejíž atribut se agreguje\r\n * @param condition Podmínka omezující agregovaná data\r\n * @param conditionParams Parametry pro podmínku omezující agregovaná data\r\n * @param readVersioned Příznak, zda se má agregace provádět i nad verzovanými záznamy\r\n * @param requestContext Viz {@link RequestContext}\r\n * @example Použití\r\n * const result = await dataReaderClient.getAggregations({\r\n * jahodyMin: {attributeName: \"Jahody\", aggregationFunction: AggregationFunction.min},\r\n * jahodyMax: {attributeName: \"Jahody\", aggregationFunction: AggregationFunction.max},\r\n * jablkaAvg: {attributeName: \"Jablka\", aggregationFunction: AggregationFunction.avg},\r\n * }, \"Kosik_ovoce\", \"ID < 500\"));\r\n * // result obsahuje výsledky pod klíči odpovídajících parametrů, výsledky jsou typu IBigNumber:\r\n * // {\r\n * // jahodyMin: 12,\r\n * // jahodyMax: 25,\r\n * // jablkaAvg: 36,\r\n * // }\r\n */\r\n getAggregations(aggregationParams: IAggregationsParams, className: string, condition: string, conditionParams?: ConditionParams, readVersioned?: boolean, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Zjistí počet záznamů splňujících zadanou podmínku v rámci dané třídy.\r\n *\r\n * @param className Název třídy, pro kterou se získává počet\r\n * @param condition Podmínka omezující počítaná data\r\n * @param conditionParams Parametry pro podmínku omezující počítaná data\r\n * @param readVersioned Příznak, zda se mají číst i verzované záznamy\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getCount(className: string, condition: string, conditionParams?: ConditionParams, readVersioned?: boolean, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Zjistí, zda existuje záznam splňující zadanou podmínku v rámci dané třídy.\r\n *\r\n * @param className Název třídy, pro kterou se zjišťuje existence dat\r\n * @param condition Podmínka omezující zkoumaná data\r\n * @param conditionParams Parametry pro podmínku omezující zkoumaná data\r\n * @param readVersioned Příznak, zda se mají číst i verzované záznamy\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n exists(className: string, condition: string, conditionParams?: ConditionParams, readVersioned?: boolean, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Načte aplikační data pomocí tzv. _data readeru_ v tabulkovém formátu - tedy řádky a sloupce.\r\n * Načítání dat _data readerem_ je mnohem výkonnější než načítání pomocí instancí. Umožňuje načítání více záznamů najednou, ale neumožňuje změnu dat.\r\n * Každý řádek odpovídá jednomu záznamu.\r\n *\r\n * Data se čtou pro konkrétní třídu, sloupce jsou dané seznamem atributů dané aplikační třídy.\r\n * Výběr dat lze omezit pomocí podmínky (viz wiki _Podmínky TescoTools_).\r\n * Nad načítanými daty lze vyžádat další operace jako řazení, grupování, distinct, stránkování apod.\r\n *\r\n * Vrácená data jednoho řádku (záznamu) jsou klíčovaná názvem aplikačního atributu. Pod ním je uložená struktura s hodnotou.\r\n * Ke čtení koncové hodnoty je doporučené používat utility třídu @see AttrValueReader.\r\n *\r\n * @param className Název třídy, pro kterou se mají číst data\r\n * @param attributes Seznam atributů třídy, pro které se načítají data\r\n * @param condition Podmínka omezující načítaná data\r\n * @param parameters Parametry specifikující další operace jako řazení, grupování, distinct, stránkování...\r\n * @param fullDataAttributes Seznam atributů u kterých nechceme ořezávat načítaná data\r\n * @param requestContext Viz {@link RequestContext}\r\n * @returns Vrací seznam načtených řádků aplikačních dat\r\n */\r\n getDataRowsWithParams(className: string, attributes: readonly string[], condition: string, parameters?: IDataRowsParams, fullDataAttributes?: string[], requestContext?: RequestContext): Promise;\r\n}\r\n","export * from \"./IDataReaderClient\";\r\n","/**\r\n* Stavy podpisu\r\n*/\r\nexport enum DigitalSignatureState {\r\n notUsed = 0,\r\n empty = 1,\r\n valid = 2,\r\n invalid = 3,\r\n encrypted = 4,\r\n unknown = 5,\r\n allowUnknown = 6,\r\n indeterminate = 7,\r\n}\r\n\r\nexport interface ISignatureTemplate {\r\n className: string;\r\n identifier: string;\r\n attributes: string[];\r\n associatedCollections: Array;\r\n}\r\n\r\nexport interface ISignatureTemplateAssociatedCollection extends ISignatureTemplate {\r\n condition: string;\r\n conditionParams: string;\r\n}\r\n\r\nexport enum SignatureInfoType {\r\n empty,\r\n digitalSignature,\r\n digitalMark,\r\n timeStamp,\r\n unknown,\r\n}\r\n\r\nexport enum CertificateUsageType {\r\n crlSign,\r\n dataEncipherment,\r\n decipherOnly,\r\n digitalSignature,\r\n encipherOnly,\r\n keyAgreement,\r\n keyCertSign,\r\n keyEncipherment,\r\n nonRepudiation,\r\n}\r\n\r\n/**\r\n * Informace o certifikátu\r\n */\r\nexport interface ICertificate {\r\n subject: IDistinguishedName;\r\n validFrom: Date;\r\n validTo: Date;\r\n issuer: IDistinguishedName;\r\n version: number;\r\n hasPrivateKey: boolean;\r\n serialNumber: string;\r\n thumbprint: string;\r\n certificateKeyUsage: Array;\r\n signatureAlgorithm: string;\r\n publicKeyAlgorithm: string;\r\n publicKeySize: number;\r\n hashAlgorithm: string;\r\n}\r\n\r\n/**\r\n * Asociovaná kolekce informací získaných z položky certifikátu\r\n */\r\nexport interface IDistinguishedName {\r\n [key: string]: string[];\r\n}\r\n\r\n/**\r\n * Informace o podpisu\r\n */\r\nexport interface ISignatureInfo {\r\n valid: boolean | null;\r\n validationMessage?: string;\r\n certificate: ICertificate;\r\n time: Date;\r\n signatureInsideDocument?: boolean;\r\n type: SignatureInfoType;\r\n counterSignature?: Array;\r\n counterSignatureCount?: number;\r\n signedData?: string;\r\n}\r\n","/**\r\n * Výčtový typ popisující druhy práv, které je možné požadovat po serveru vyhodnotit\r\n */\r\nexport enum ClassItemRightTypes {\r\n all = 0, // TODO-rites: změnit z nuly; zároveň s taskem 19921 - úprava na serveru\r\n visible = 1 << 0,\r\n enabled = 1 << 1,\r\n required = 1 << 2,\r\n recommended = 1 << 3,\r\n postponedRequired = 1 << 4,\r\n openAsEnabled = 1 << 5,\r\n allRequired = required | recommended | postponedRequired,\r\n}\r\n\r\n/**\r\n * Informace o podminkach pro komponenty\r\n */\r\nexport interface IRightConditionItem {\r\n id: string;\r\n value: string;\r\n isStatic?: boolean;\r\n}\r\n\r\n// ReSharper disable InconsistentNaming\r\n\r\nexport enum ClassItemType {\r\n Attribute,\r\n Method,\r\n}\r\n\r\n/**\r\n * Množina implicitních práv prvků daného objektu práv pro jednotlivé role\r\n * */\r\nexport interface IRolesDefaultRightsResult {\r\n /**\r\n * Název prvku práv (třída, formulář, systémová operace\r\n */\r\n readonly name: string;\r\n /**\r\n * Pole implicitních práv za jednotlivé role\r\n */\r\n readonly rights: IRoleImplicitRights[];\r\n}\r\n\r\n/**\r\n * Informace o implicitním nastavení práv prvků dané role\r\n */\r\nexport interface IRoleImplicitRights {\r\n /**\r\n * ID role\r\n */\r\n readonly id: string;\r\n /**\r\n * Implicitní viditelnost\r\n */\r\n readonly visible: boolean;\r\n /**\r\n * Implicitní povolení editace\r\n */\r\n readonly enabled: boolean;\r\n /**\r\n * Implicitní povinnost\r\n */\r\n readonly required: boolean;\r\n /**\r\n * Implicitní odložená povinnost\r\n */\r\n readonly postponedRequired: boolean;\r\n /**\r\n * Implicitní nastavení doporučenosti prvku\r\n */\r\n readonly recommended: boolean;\r\n /**\r\n * Implicitní povolení spuštění metody\r\n */\r\n readonly executable: boolean;\r\n /**\r\n * Implicitní povolení spuštění metody v editačním režimu\r\n */\r\n readonly executableInEdit: boolean;\r\n /**\r\n * Indikátor, zda se jedná o nastavení načtenné z DB (false) nebo vytvořené serverem podle daných pravidel (true)\r\n */\r\n readonly notInDB: boolean;\r\n}\r\n\r\nexport interface IClassItem {\r\n name: string;\r\n type: ClassItemType;\r\n}\r\n\r\n/**\r\n * Informace o vyhodnocených právech prvku\r\n */\r\nexport interface IClassItemRights {\r\n /**\r\n * Jméno prvku\r\n */\r\n Name: string;\r\n\r\n /**\r\n * Typ prvku\r\n */\r\n Type: ClassItemType | null;\r\n\r\n /**\r\n * Hodnota práva přistupnosti\r\n */\r\n Enabled?: boolean;\r\n\r\n /**\r\n * Hodnota práva povinnosti\r\n */\r\n Required?: boolean;\r\n\r\n /**\r\n * Hodnota doporucenosti\r\n */\r\n Recommended?: boolean;\r\n\r\n /**\r\n * Hodnota práva odložené povinnosti\r\n */\r\n PostponedRequired?: boolean;\r\n\r\n /**\r\n * Hodnota práva viditelnosti\r\n */\r\n Visible?: boolean;\r\n\r\n /**\r\n * Výsledek vyhodnocení práv zda má být povoleno otevření formu jako editovatelného\r\n */\r\n OpenAsEnabled?: boolean;\r\n}\r\n\r\n/**\r\n * Objekt výsledku vyhodnocení práv prvku na úrovni třídy pro vracení klientovi\r\n */\r\nexport interface IClassItemRightsResult {\r\n /**\r\n * Běžný cyklus OWObject, na kterém byly vyhodnoceny práva prvků\r\n */\r\n AttrChangeCycle: number;\r\n\r\n /**\r\n * Seznam vyhodocených práv prvků\r\n */\r\n ItemRights: Array;\r\n}\r\n\r\n/**\r\n * Vyhodnocena podminka\r\n */\r\nexport interface IEvaluatedConditionResult {\r\n ID: string;\r\n Result: boolean;\r\n ExceptionText?: string;\r\n}\r\n\r\n/**\r\n * Udává, která práva jsou pevně zakázaná\r\n */\r\nexport interface IFirmlyDisabledRights {\r\n /** Právo editace je zakázané */\r\n readonly edit: boolean;\r\n /** Právo vkládání je zakázané */\r\n readonly insert: boolean;\r\n /** Právo mazání je zakázané */\r\n readonly delete: boolean;\r\n /** Právo zobrazení je zakázané */\r\n readonly view: boolean;\r\n /** Právo validace je zakázané */\r\n readonly validate: boolean;\r\n}\r\n\r\n/**\r\n * Obsahuje pole rolí, které umožní čtení, editaci a mazání dané třídy na rozhraní serveru\r\n */\r\nexport interface IClassInterfaceManipulativeRoles {\r\n /**Seznam id rolí, které umožňují přístup k objektu */\r\n readonly roleIds: string[];\r\n /**Seznam id rolí umožňující editaci */\r\n readonly editRoleIds: string[];\r\n /**Seznam id rolí umožňující mazání */\r\n readonly deleteRoleIds: string[];\r\n}\r\n","// Maťa:\r\n// Dočasné pomocné funkce pro pro vyhodnocení práv na prvcích\r\n// Použito jen zpětnou kompatibilitu\r\n// Až se vyhodnocování práv předelá tak tento soubor smazat\r\nimport { IClassItemRights as RemotingClassItemRights } from \"../../../OW.Remoting/Remoting/Rights\";\r\n\r\nexport interface IClassItemRights extends RemotingClassItemRights {\r\n /**\r\n * Hodnota práva zda se ma zavrit formular po vykonani akce\r\n */\r\n closeForm?: boolean;\r\n\r\n validate?: boolean;\r\n confirm?: boolean;\r\n /**\r\n * Výsledek vyhodnocení práv zda má být povoleno vytváření podpisů\r\n */\r\n useDigitalSign?: boolean;\r\n\r\n /**\r\n * Výsledek vyhodnocení práv zda má být povoleno šifrování\r\n */\r\n useEncryption?: boolean;\r\n\r\n /**\r\n * Výsledek vyhodnocení práv zda má být povoleno dešifrování\r\n */\r\n useDecryption?: boolean;\r\n}\r\n","import { CancellationToken } from \"@multiweb/types/multiweb\";\r\nimport { ClassItemRightTypes, ClassItemType } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { IClassItemRights } from \"./IClassItemRights\";\r\n\r\n/**\r\n * Kontext, vzhledem ke kterému se vyhodnocují práva. Typicky instance aplikačního záznamu.\r\n * @includeToDoc\r\n */\r\nexport interface IRightsContext {\r\n /** Unikátní identifikátor */\r\n id: any;\r\n /** Unikátní identifikátor instance */\r\n instanceID?: string;\r\n /** Příznak, zda jde o zrovna vytvářený kontext */\r\n readonly isNew: boolean;\r\n /**\r\n * Příznak, zda je povolená editace\r\n */\r\n readonly canEdit: boolean;\r\n /**\r\n * Příznak, zda je povoleno mazání\r\n */\r\n readonly canDelete: boolean;\r\n /**\r\n * Identifikátory rolí, pod kterými může uživatel přistupovat ke kontextu\r\n */\r\n readonly roleIds: string[];\r\n /**\r\n * Identifikátory rolí, pod kterými může uživatel kontext editovat\r\n */\r\n readonly editRoleIds: string[];\r\n /**\r\n * Identifikátory rolí, pod kterými může uživatel kontext mazat\r\n */\r\n readonly deleteRoleIds: string[];\r\n readonly isClientSideEncrypted: boolean;\r\n /**\r\n * Zjistí práva na zadanou položku kontextu na úrovni aplikačním serveru\r\n * @param itemName Název položky, pro kterou se zjišťují práva. Typicky atribut nebo metoda.\r\n * @param type Typ položky\r\n * @param evalRights Požadované právo k vyhodnocení\r\n * @param cancellationToken Viz {@link CancellationToken}\r\n */\r\n itemRights(itemName: string, type: ClassItemType, evalRights: ClassItemRightTypes, cancellationToken?: CancellationToken): Promise;\r\n /**\r\n * Vyhodnotí podmínky nad kontextem na základě Id podmínky\r\n * @param conditionID Id podmínky\r\n * @param cancellationToken Viz {@link CancellationToken}\r\n */\r\n evaluateCondition(conditionID: string, cancellationToken?: CancellationToken): Promise;\r\n}\r\n\r\nexport class IRightsContext {\r\n private static _properties: (keyof IRightsContext)[] = [\"id\", \"isNew\", \"canDelete\", \"canEdit\", \"roleIds\", \"editRoleIds\", \"deleteRoleIds\", \"isClientSideEncrypted\"];\r\n private static _methods: (keyof IRightsContext)[] = [\"itemRights\", \"evaluateCondition\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro komponentu, která si sama určuje, jaký kontext se použije\r\n * pro vyhodnocení práv na ní samotné a pokud se jedná o frame, tak i jeho potomcích.\r\n */\r\nexport interface IComponentWithCustomEvaluationContext {\r\n /**\r\n * Vrací kontext pro vyhodnocení práv na komponentě\r\n */\r\n getComponentCustomEvaluationContext(): Promise;\r\n}\r\n\r\nexport class IComponentWithCustomEvaluationContext {\r\n private static _methods: (keyof IComponentWithCustomEvaluationContext)[] = [\"getComponentCustomEvaluationContext\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IBaseOWClassDescription, IPublicAttributeInfo, OWAttributeDesciption } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Vrací informace o modelu\r\n */\r\nexport interface IModelDescriptionsManager {\r\n /**\r\n * Vrací popisnou třídu daného objektu\r\n */\r\n getClassInfo(className: string, cancelationToken?: CancellationToken): Promise;\r\n /**\r\n * Vrací informace o atributech přiřazených k dané třídě\r\n * @param className Název třídy\r\n * @param attributes Seznam atributu\r\n * @param cancelationToken rušící token\r\n */\r\n getAttributesInfo(className: string, attributes: ReadonlyArray, cancelationToken?: CancellationToken): Promise>;\r\n /**\r\n * Vrací informace o konkrétním atributu přiřazeném k dané třídě\r\n * @param className Název třídy\r\n * @param attribute Název atributu\r\n * @param cancelationToken rušící token\r\n */\r\n getAttributeInfo(className: string, attribute: string, cancelationToken?: CancellationToken): Promise;\r\n /**\r\n * Pročistí cache popisů tříd a atributů\r\n */\r\n clearCache(): void;\r\n}\r\n\r\nexport class IModelDescriptionsManager {\r\n private static _properties: (keyof(IModelDescriptionsManager))[] = [];\r\n private static _methods: (keyof(IModelDescriptionsManager))[] = [\"getClassInfo\", \"getAttributesInfo\", \"clearCache\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Základní typy\r\n */\r\nexport enum BasicDataType { Unknown, String, BasicNumber, BigNumber, Enum, StrNum, DateTime, Boolean, Color, OWObject, Binary, Document, OWObjectList }\r\n\r\n/**\r\n * Interface popisné třídy\r\n */\r\nexport interface IOWClassDescription extends IBaseOWClassDescription {\r\n\r\n /**\r\n * Vrátí základní informace o atributu\r\n * @param attrName Název atributu, může být i s vazbou či přetypováním\r\n */\r\n getAttributeInfo(attrName: string): Promise;\r\n}\r\n\r\n/**\r\n * Popis konkrétního datového typu\r\n */\r\nexport interface IDataTypeDescription {\r\n attrName: string;\r\n basicType: BasicDataType;\r\n /** Výchozí hodnota nenaplněného atributu */\r\n defaultValue: any;\r\n serverType?: string;\r\n}\r\n\r\n/**\r\n * Popis serializátoru konkrétního datového typu\r\n */\r\nexport interface IDataTypeSerialization {\r\n deserializer?: (value: any) => any;\r\n serializer?: (value: any, oldValue: any) => any;\r\n}\r\n\r\nexport type AttributeDescription = OWAttributeDesciption & {\r\n /**\r\n * Základní typ\r\n */\r\n basicType: BasicDataType;\r\n /**\r\n * Výchozí hodnota nenaplněného atributu\r\n */\r\n defaultValue: any;\r\n};\r\n","import { IDataEvent } from \"@multiweb/types/contracts\";\r\nimport { Event } from \"Global/Base/Events\";\r\nimport { IOWObject } from \"./DataTypes/IOWObject\";\r\nimport { RequestContext } from \"./RequestContext\";\r\n\r\n/**\r\n * Poskytuje prostředky pro prásci s workflow\r\n * @includeToDoc\r\n */\r\nexport interface IWorkflowManager {\r\n readonly openFormReceived: Event;\r\n\r\n /**\r\n * Spustí sledování vzniku požadavku na otevření formuláře z workflow\r\n */\r\n subscribeWFOpenForm(): void;\r\n /**\r\n * Zruší sledování vzniku požadavku na otevření formuláře z workflow\r\n */\r\n unsubscribeWFOpenForm(): void;\r\n /**\r\n * Dotazuje server na WF akce\r\n * @param object Aktuální objekt, pro který se dotazují WF akce\r\n * @param checkWf Příznak, zda se pro třídu objektu mají dotazovat práva\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getWFItems(object: IOWObject, checkWf: boolean, requestContext?: RequestContext): Promise;\r\n}\r\n\r\nexport class IWorkflowManager {\r\n private static _methods: (keyof IWorkflowManager)[] = [\r\n \"subscribeWFOpenForm\",\r\n \"unsubscribeWFOpenForm\",\r\n \"getWFItems\",\r\n ];\r\n private static _properties: (keyof IWorkflowManager)[] = [\r\n \"openFormReceived\",\r\n ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport interface IWorkflowMenuItem {\r\n ItemName: string;\r\n ID: string;\r\n Codename: string;\r\n IconName: string;\r\n ParticipantsSelecting: boolean;\r\n\r\n /**\r\n * Ukazuje, jestli je potřeba před spouštěním WF acke zkontrolovat vyplnění odloženě povinných polí\r\n */\r\n ValidatePostReq: boolean;\r\n\r\n /**\r\n * Ukazuje, jestli je potřeba před spouštěním WF acke zkontrolovat vyplnění doporučených polí\r\n */\r\n ValidateRecommended: boolean;\r\n\r\n /**\r\n * Určuje, zda je možné při spouštění WorkFlow ihned vybírat konkrétní uživatele\r\n */\r\n ChooseFromUsersDefault: boolean;\r\n\r\n /**\r\n * Název nadřízené položky ve stromovém menu\r\n */\r\n MasterNode: string;\r\n\r\n NextActivityID: string;\r\n\r\n ParamFormName: string;\r\n LinkAttrForSelObj: string;\r\n SetValues: string;\r\n ConfirmMessage: string;\r\n Order: number;\r\n}\r\n\r\nexport enum ParticipantType { Role = \"role\", User = \"user\" }\r\n\r\nexport interface IParticipantBase {\r\n readonly id: string;\r\n\r\n}\r\n\r\nexport interface IParticipant extends IParticipantBase {\r\n readonly participantType: ParticipantType;\r\n readonly name: string;\r\n}\r\n\r\nexport interface IUserParticipant extends IParticipant {\r\n readonly personName: string;\r\n}\r\n\r\nexport interface IRoleParticipantsInformation extends IParticipant {\r\n readonly actualRoleName: string;\r\n readonly roleUsers: IUserParticipant[];\r\n}\r\n\r\nexport interface IWFOpenFormParams {\r\n ActualInstanceID: string;\r\n FormName: string;\r\n Purpose: number;\r\n LinkAttr: string;\r\n Condition: string;\r\n}\r\n\r\nexport class IWFOpenFormParams {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"ActualInstanceID\") &&\r\n Reflect.has(instance, \"FormName\") &&\r\n Reflect.has(instance, \"Purpose\") &&\r\n Reflect.has(instance, \"LinkAttr\") &&\r\n Reflect.has(instance, \"Condition\");\r\n }\r\n}\r\n\r\n/**\r\n * Zapouzdřuje data pro událost o otevření formuláře z WF\r\n * @param Zpráva DataEventu\r\n * @param Příznak, zda byla již zpráva celá zpracována\r\n */\r\nexport interface IWFOpenFormEventArgs {\r\n message: IDataEvent;\r\n handled: boolean;\r\n}\r\n\r\nexport class IWFOpenFormEventArgs {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"message\") &&\r\n Reflect.has(instance, \"handled\");\r\n }\r\n}\r\n\r\n// ReSharper restore InconsistentNaming\r\n\r\nexport interface IWorkflowItemsResult {\r\n workflowMenuItems: IWorkflowMenuItem[];\r\n checkWorkflow: boolean;\r\n}\r\n\r\nexport class IWorkflowItemsResult {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"workflowMenuItems\") &&\r\n Reflect.has(instance, \"checkWorkflow\");\r\n }\r\n}\r\n","// neimportovat napřímo z \"@multiweb/types/react\" z důvodu prevence vůči cyklické závislosti\r\n\r\n/**\r\n * Konstanta pro prázdné pole. Umožňuje porovnávání referencí.\r\n */\r\nexport const EMPTY_ARRAY: ReadonlyArray = [];\r\n\r\n/**\r\n * Konstanta pro prázdný objekt. Umožňuje porovnávání referencí.\r\n */\r\nexport const EMPTY_OBJECT = {} as const;\r\n\r\n/**\r\n * Konstanta pro nicnedělající funkci. Vhodná pro nastavení výchozích hodnot.\r\n */\r\nexport const doNothing = () => {\r\n return;\r\n};\r\n\r\n/**\r\n * Konstanta pro nicnedělající promise.\r\n */\r\nexport const asyncDoNothing = () => new Promise((resolve) => {\r\n resolve();\r\n});\r\n\r\n/**\r\n * Konstanta pro funkci, která vrací svůj vstup beze změny.\r\n * @param value Vstupní hodnota.\r\n */\r\nexport const identity = (value: T): T => value;\r\n\r\n/**\r\n * Konstanta pro nicnedělající funkci.\r\n * Totéž, co {@link doNothing}, navíc vrací `undefined`.\r\n * Hodí se tam, kde se očekává getter, který má vracet `undefined`.\r\n */\r\nexport const doNothingAndReturnUndefined = (): undefined => undefined;\r\n\r\n/**\r\n * Obecná délka trvání animace v milisekundách.\r\n */\r\nexport const ANIMATION_DURATION_MS = 200;\r\n\r\n/**\r\n * Objekt obsahující hodnoty pro identifikaci událostí stisknutí kláves. Hodnoty odpovídají \"key\" z KeyboardEvent z \"react\",\r\n * které odpovídají https://www.w3.org/TR/uievents-key/#named-key-attribute-values.\r\n */\r\nexport const Key = {\r\n Enter: \"Enter\",\r\n Escape: \"Escape\",\r\n ArrowLeft: \"ArrowLeft\",\r\n ArrowUp: \"ArrowUp\",\r\n ArrowDown: \"ArrowDown\",\r\n ArrowRight: \"ArrowRight\",\r\n Space: \" \",\r\n Tab: \"Tab\",\r\n Backspace: \"Backspace\",\r\n Delete: \"Delete\",\r\n} as const;\r\n\r\n/**\r\n * Konstanta pro nastavení tabindex. Nastaví element jako zaměřitelný, nepřidá však element do tab sequence.\r\n */\r\nexport const TAB_INDEX_FOCUSABLE_ONLY = -1;\r\n\r\n/**\r\n * Konstanta pro nastavení tabindex. Nastaví element jako zaměřitelný a přidá ho do tab sequence.\r\n */\r\nexport const TAB_INDEX_FOCUSABLE_TAB_SEQUENCE = 0;\r\n\r\n/**\r\n * Konstanta pro nastavení tabindex. Pořadí je určeno hodnotou čísla.\r\n * Prvek s hodnotou tabindex větší než 0 obdrží fokus klávesnice před prvky bez hodnoty tabindex (nebo `tabindex = \"0\"`).\r\n * @description Použití kladného tabindex {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex| se nedoporučuje }\r\n */\r\nexport const TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT = 1;\r\n\r\n/**\r\n * Konstanta pro výchozí počet dat k načtení.\r\n */\r\nexport const DEFAULT_DATA_COUNT_TO_LOAD = 30;\r\n\r\n/**\r\n * Konstanta pro minimální výšku DataRow.\r\n */\r\nexport const DATA_ROW_MIN_HEIGHT = 24;\r\n\r\n/**\r\n * Čas v ms používaný pro odložené zpracování události. Používá se např. pro zajištění aktualizace stavu před zpracováním události v sáze.\r\n */\r\nexport const EVENT_POSTPROCESS_DELAY = 100;\r\n\r\n/**\r\n * Předpona pro vlastní CSS proměnné.\r\n * Používá se například v GridLayout komponentě při transformaci názvů props pomocí metody *transformKeysToParamCase*.\r\n */\r\nexport const CUSTOM_CSS_PROPERTY_PREFIX = \"--\";\r\n\r\n/**\r\n * Předpona pro id tooltipu.\r\n * Používá se při formulářových komponentách jako Edit nebo NumEdit kvůli přístupnosti.\r\n */\r\nexport const TOOLTIP_ID_PREFIX = \"error-tooltip-\";\r\n","/**\r\n * Výčtový typ obsahující všechny dostupné role, které může element mít.\r\n * Využívá se pro přístupnost komponent a předává se do atributu \"role\" elementu.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques#Roles\r\n */\r\nexport enum Role {\r\n button = \"button\",\r\n checkBox = \"checkbox\",\r\n gridCell = \"gridcell\",\r\n link = \"link\",\r\n menuItem = \"menuitem\",\r\n menuItemCheckBox = \"menuitemcheckbox\",\r\n menuItemRadio = \"menuitemradio\",\r\n option = \"option\",\r\n progressBar = \"progressbar\",\r\n radio = \"radio\",\r\n scrollBar = \"scrollbar\",\r\n searchBox = \"searchbox\",\r\n separator = \"separator\",\r\n slider = \"slider\",\r\n spinButton = \"spinbutton\",\r\n switch = \"switch\",\r\n tab = \"tab\",\r\n tabPanel = \"tabpanel\",\r\n textBox = \"textbox\",\r\n treeItem = \"treeitem\",\r\n comboBox = \"combobox\",\r\n grid = \"grid\",\r\n listBox = \"listbox\",\r\n menu = \"menu\",\r\n menuBar = \"menubar\",\r\n radioGroup = \"radiogroup\",\r\n tabList = \"tablist\",\r\n tree = \"tree\",\r\n treeGrid = \"treegrid\",\r\n application = \"application\",\r\n article = \"article\",\r\n cell = \"cell\",\r\n columnHeader = \"columnheader\",\r\n definition = \"definition\",\r\n directory = \"directory\",\r\n document = \"document\",\r\n feed = \"feed\",\r\n figure = \"figure\",\r\n group = \"group\",\r\n heading = \"heading\",\r\n img = \"img\",\r\n list = \"list\",\r\n listItem = \"listitem\",\r\n math = \"math\",\r\n none = \"none\",\r\n note = \"note\",\r\n presentation = \"presentation\",\r\n row = \"row\",\r\n rowGroup = \"rowgroup\",\r\n rowHeader = \"rowheader\",\r\n table = \"table\",\r\n term = \"term\",\r\n toolBar = \"toolbar\",\r\n toolTip = \"tooltip\",\r\n banner = \"banner\",\r\n complementary = \"complementary\",\r\n contentInfo = \"contentinfo\",\r\n form = \"form\",\r\n main = \"main\",\r\n navigation = \"navigation\",\r\n region = \"region\",\r\n search = \"search\",\r\n alert = \"alert\",\r\n log = \"log\",\r\n marquee = \"marquee\",\r\n status = \"status\",\r\n timer = \"timer\",\r\n alertDialog = \"alertdialog\",\r\n dialog = \"dialog\",\r\n}\r\n","export interface IAuthState {\r\n readonly userId: number | null;\r\n readonly userName: string | null;\r\n readonly displayName: string | null;\r\n}\r\n","export const isArray = (value: any): boolean => Array.isArray(value);\r\n\r\nexport const isNull = (value: any): boolean => value === null;\r\n\r\nexport const isUndefined = (value: any): boolean => value === undefined;\r\n\r\nexport const isEmptyString = (value: any): boolean => value === \"\";\r\n\r\nexport const isEmptyArray = (value: any): boolean => isArray(value) && value.length === 0;\r\n\r\nexport const isString = (value: any): value is string => typeof value === \"string\";\r\n\r\nexport const isBoolean = (value: any): value is boolean => typeof value === \"boolean\";\r\n\r\nexport const isNumber = (value: any): value is number => typeof value === \"number\";\r\n\r\nexport const isRegExp = (value: any): value is RegExp => value instanceof RegExp;\r\n","/**\r\n * Výčet barevných témat aplikace\r\n */\r\nexport enum ApplicationTheme {\r\n light = \"light\",\r\n dark = \"dark\",\r\n}\r\n","/**\r\n * Jméno modulu bridge. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"bridge\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = (actionType: string) => `${NAME}/${actionType}`;\r\n\r\n/** Konstanty typů akcí */\r\n// Commons\r\nexport const SET_LOCAL_STORAGE_KEY = createActionType(\"SET_LOCAL_STORAGE_KEY\");\r\nexport const LOAD_LOCAL_STORAGE_KEY = createActionType(\"LOAD_LOCAL_STORAGE_KEY\");\r\nexport const LOCAL_STORAGE_KEY_LOADED = createActionType(\"LOCAL_STORAGE_KEY_LOADED\");\r\nexport const LOAD_USER_INFO = createActionType(\"LOAD_USER_INFO\");\r\nexport const USER_INFO_LOADED = createActionType(\"USER_INFO_LOADED\");\r\nexport const SHOW_LOADING_INDICATOR = createActionType(\"SHOW_LOADING_INDICATOR\");\r\nexport const HIDE_LOADING_INDICATOR = createActionType(\"HIDE_LOADING_INDICATOR\");\r\nexport const LOGOUT = createActionType(\"LOGOUT\");\r\nexport const APPLY_THEME = createActionType(\"APPLY_THEME\");\r\n// Localizations\r\nexport const LOAD_LOCALIZATION_ITEMS = createActionType(\"LOAD_LOCALIZATION_ITEMS\");\r\nexport const LOCALIZATION_ITEMS_LOADED = createActionType(\"LOCALIZATION_ITEMS_LOADED\");\r\n// Forms\r\nexport const OPEN_FORM = createActionType(\"OPEN_FORM\");\r\nexport const OPEN_FORM_MODAL = createActionType(\"OPEN_FORM_MODAL\");\r\nexport const FORM_OPENED = createActionType(\"FORM_OPENED\");\r\nexport const SWITCH_TO_FORM = createActionType(\"SWITCH_TO_FORM\");\r\nexport const FORM_SWITCHED = createActionType(\"FORM_SWITCHED\");\r\nexport const CLOSE_FORM = createActionType(\"CLOSE_FORM\");\r\nexport const FORM_CLOSED = createActionType(\"FORM_CLOSED\");\r\nexport const FORM_OVERLAY_CLICKED = createActionType(\"FORM_OVERLAY_CLICKED\");\r\nexport const SHOW_FORM_OVERLAY = createActionType(\"SHOW_FORM_OVERLAY\");\r\nexport const HIDE_FORM_OVERLAY = createActionType(\"HIDE_FORM_OVERLAY\");\r\nexport const FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED = createActionType(\"FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED\");\r\nexport const FORM_CUSTOM_TITLE_CHANGED = createActionType(\"FORM_CUSTOM_TITLE_CHANGED\");\r\nexport const FORM_PROFILE_CHANGED = createActionType(\"FORM_PROFILE_CHANGED\");\r\nexport const SELECTED_PROFILE_CHANGED = createActionType(\"SELECTED_PROFILE_CHANGED\");\r\nexport const LOAD_HISTORY_FORMS_INFO = createActionType(\"LOAD_HISTORY_FORMS_INFO\");\r\nexport const HISTORY_FORMS_INFO_UPDATED = createActionType(\"HISTORY_FORMS_INFO_UPDATED\");\r\nexport const LOAD_FAVORITE_FORMS = createActionType(\"LOAD_FAVORITE_FORMS\");\r\nexport const FAVORITE_FORMS_LOADED = createActionType(\"FAVORITE_FORMS_LOADED\");\r\nexport const FAVORITE_FORM_UPDATED = createActionType(\"FAVORITE_FORM_UPDATED\");\r\nexport const SET_FORM_AS_FAVORITE_REQUEST = createActionType(\"SET_FORM_AS_FAVORITE_REQUEST\");\r\nexport const HIDE_ALL_FORMS = createActionType(\"HIDE_ALL_FORMS\");\r\n// Frames\r\nexport const EXECUTE_REACT_CONNECTOR_ACTION = createActionType(\"EXECUTE_REACT_CONNECTOR_ACTION\");\r\nexport const SET_REACT_CONNECTOR_MULTISELECT_MODE = createActionType(\"SET_REACT_CONNECTOR_MULTISELECT_MODE\");\r\n// Main menu\r\nexport const LOAD_MENU_ITEMS = createActionType(\"LOAD_MENU_ITEMS\");\r\nexport const MENU_ITEMS_LOADED = createActionType(\"MENU_ITEMS_LOADED\");\r\nexport const LOAD_NOTIFICATION_ITEMS = createActionType(\"LOAD_NOTIFICATION_ITEMS\");\r\nexport const NOTIFICATION_ITEMS_LOADED = createActionType(\"NOTIFICATION_ITEMS_LOADED\");\r\nexport const LOAD_NOTIFICATION_GROUPS = createActionType(\"LOAD_NOTIFICATION_GROUPS\");\r\nexport const NOTIFICATION_GROUPS_LOADED = createActionType(\"NOTIFICATION_GROUPS_LOADED\");\r\nexport const SET_NOTIFICATION_ITEM_AS_READ = createActionType(\"SET_NOTIFICATION_ITEM_AS_READ\");\r\nexport const SET_GROUP_NOTIFICATIONS_AS_READ = createActionType(\"SET_GROUP_NOTIFICATIONS_AS_READ\");\r\nexport const TASK_RESULT_DETAIL_LOADED = createActionType(\"TASK_RESULT_DETAIL_LOADED\");\r\nexport const LOAD_TASK_RESULT_DETAIL = createActionType(\"LOAD_TASK_RESULT_DETAIL\");\r\nexport const SHOW_SETTINGS = createActionType(\"SHOW_SETTINGS\");\r\nexport const MENU_ITEM_CUSTOM_ACTION_PROCESSED = createActionType(\"MENU_ITEM_CUSTOM_ACTION_PROCESSED\");\r\nexport const PROCESS_MENU_ITEM_CUSTOM_ACTION = createActionType(\"PROCESS_MENU_ITEM_CUSTOM_ACTION\");\r\n","import { Action } from \"redux\";\r\n\r\nimport {\r\n IFormProfile,\r\n ILocalizationItem,\r\n IMenuData,\r\n INotificationGroup,\r\n INotificationItem,\r\n IOpenedFormHistoryInfo,\r\n ITaskResultDetail,\r\n NotificationGroupId,\r\n NotificationItemId,\r\n OpenFormData,\r\n} from \"@multiweb/types/contracts\";\r\nimport {\r\n IMainMenuItemActionParams,\r\n IMainMenuItemActionResult,\r\n IOpenedFormInfo,\r\n IOpenFormModalParams,\r\n ProfileChangeType,\r\n} from \"@multiweb/types/multiweb\";\r\nimport { IResultAction, ReactActionId } from \"@multiweb/types/react\";\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport {\r\n APPLY_THEME,\r\n CLOSE_FORM,\r\n EXECUTE_REACT_CONNECTOR_ACTION,\r\n FAVORITE_FORM_UPDATED,\r\n FAVORITE_FORMS_LOADED,\r\n FORM_CLOSED,\r\n FORM_CUSTOM_TITLE_CHANGED,\r\n FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED,\r\n FORM_OPENED,\r\n FORM_OVERLAY_CLICKED,\r\n FORM_PROFILE_CHANGED,\r\n FORM_SWITCHED,\r\n HIDE_ALL_FORMS,\r\n HIDE_FORM_OVERLAY,\r\n HIDE_LOADING_INDICATOR,\r\n HISTORY_FORMS_INFO_UPDATED,\r\n LOAD_FAVORITE_FORMS,\r\n LOAD_HISTORY_FORMS_INFO,\r\n LOAD_LOCAL_STORAGE_KEY,\r\n LOAD_LOCALIZATION_ITEMS,\r\n LOAD_MENU_ITEMS,\r\n LOAD_NOTIFICATION_GROUPS,\r\n LOAD_NOTIFICATION_ITEMS,\r\n LOAD_TASK_RESULT_DETAIL,\r\n LOAD_USER_INFO,\r\n LOCAL_STORAGE_KEY_LOADED,\r\n LOCALIZATION_ITEMS_LOADED,\r\n LOGOUT,\r\n MENU_ITEM_CUSTOM_ACTION_PROCESSED,\r\n MENU_ITEMS_LOADED,\r\n NOTIFICATION_GROUPS_LOADED,\r\n NOTIFICATION_ITEMS_LOADED,\r\n OPEN_FORM,\r\n OPEN_FORM_MODAL,\r\n PROCESS_MENU_ITEM_CUSTOM_ACTION,\r\n SELECTED_PROFILE_CHANGED,\r\n SET_FORM_AS_FAVORITE_REQUEST,\r\n SET_GROUP_NOTIFICATIONS_AS_READ,\r\n SET_LOCAL_STORAGE_KEY,\r\n SET_NOTIFICATION_ITEM_AS_READ,\r\n SET_REACT_CONNECTOR_MULTISELECT_MODE,\r\n SHOW_FORM_OVERLAY,\r\n SHOW_LOADING_INDICATOR,\r\n SHOW_SETTINGS,\r\n SWITCH_TO_FORM,\r\n TASK_RESULT_DETAIL_LOADED,\r\n USER_INFO_LOADED,\r\n} from \"./constants\";\r\n\r\n/**\r\n * Metoda pro otevření formuláře.\r\n */\r\nexport enum FormOpenMethod {\r\n /**\r\n * Otevře formulář vždy jako nový.\r\n */\r\n new,\r\n /**\r\n * Pokud již je formulář otevřený, použije ho. Jinak otevře nový.\r\n */\r\n newOrExisting,\r\n /**\r\n * Otevře formulář v nové záložce prohlížeče.\r\n */\r\n inTab,\r\n}\r\n\r\n/** Typ otevření modálního okna. */\r\nexport enum ModalWindowType {\r\n parametricForm,\r\n lov,\r\n errorMsg,\r\n modalForm,\r\n}\r\n\r\n/** Informace o názvu souboru */\r\nexport { FileNameParts } from \"@multiweb/types/multiweb\";\r\n\r\n/** Informace o šifrování a podpisech */\r\nexport { ICryptographicInfo } from \"@multiweb/types/multiweb\";\r\n\r\n/** Informace o podpisu */\r\nexport { ISignatureInfo } from \"@multiweb/types/multiweb\";\r\n\r\n/**\r\n * Informace o uživateli.\r\n */\r\nexport type UserInfo = Readonly<{\r\n userId: number;\r\n userName: string;\r\n displayName: string;\r\n}>;\r\n\r\nexport interface ILoadLocalStorageKeyAction extends Action {\r\n readonly payload: {\r\n readonly key: string;\r\n };\r\n}\r\n\r\nexport class ILoadLocalStorageKeyAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_LOCAL_STORAGE_KEY;\r\n }\r\n}\r\n\r\nexport interface ISetLocalStorageKeyAction extends Action {\r\n readonly payload: {\r\n readonly key: string;\r\n readonly value: string;\r\n };\r\n}\r\n\r\nexport class ISetLocalStorageKeyAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_LOCAL_STORAGE_KEY;\r\n }\r\n}\r\n\r\nexport interface IProcessMenuItemCustomActionAction extends Action {\r\n readonly payload: {\r\n readonly menuItemParams: IMainMenuItemActionParams;\r\n };\r\n}\r\n\r\nexport class IProcessMenuItemCustomActionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === PROCESS_MENU_ITEM_CUSTOM_ACTION;\r\n }\r\n}\r\n\r\nexport interface ILoadUserInfoAction extends Action {\r\n}\r\n\r\nexport class ILoadUserInfoAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_USER_INFO;\r\n }\r\n}\r\n\r\nexport interface ILoadMenuItemsAction extends Action {\r\n}\r\n\r\nexport class ILoadMenuItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_MENU_ITEMS;\r\n }\r\n}\r\n\r\nexport interface ILoadLocalizationItemsAction extends Action {\r\n readonly payload: {\r\n readonly key: string;\r\n readonly locKeys: ReadonlyArray;\r\n };\r\n}\r\n\r\nexport class ILoadLocalizationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_LOCALIZATION_ITEMS;\r\n }\r\n}\r\n\r\nexport interface IShowLoadingIndicatorAction extends Action {}\r\n\r\nexport class IShowLoadingIndicatorAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SHOW_LOADING_INDICATOR;\r\n }\r\n}\r\n\r\nexport interface IHideLoadingIndicatorAction extends Action {}\r\n\r\nexport class IHideLoadingIndicatorAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === HIDE_LOADING_INDICATOR;\r\n }\r\n}\r\n\r\nexport interface IOpenFormAction extends Action {\r\n readonly payload: {\r\n readonly formCode: string;\r\n readonly openMethod: FormOpenMethod;\r\n readonly openFormData?: OpenFormData;\r\n };\r\n}\r\n\r\nexport class IOpenFormAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === OPEN_FORM;\r\n }\r\n}\r\n\r\nexport interface IOpenFormModalAction extends Action {\r\n readonly payload: {\r\n readonly params: IOpenFormModalParams;\r\n };\r\n}\r\n\r\nexport class IOpenFormModalAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === OPEN_FORM_MODAL;\r\n }\r\n}\r\n\r\nexport interface ILogoutAction extends Action {}\r\n\r\nexport class ILogoutAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOGOUT;\r\n }\r\n}\r\n\r\nexport interface IShowSettingsAction extends Action {}\r\n\r\nexport class IShowSettingsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SHOW_SETTINGS;\r\n }\r\n}\r\n\r\nexport interface IShowFormOverlayAction extends Action {}\r\n\r\nexport class IShowFormOverlayAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SHOW_FORM_OVERLAY;\r\n }\r\n}\r\n\r\nexport interface IHideFormOverlayAction extends Action {}\r\n\r\nexport class IHideFormOverlayAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === HIDE_FORM_OVERLAY;\r\n }\r\n}\r\n\r\nexport interface ILoadFavoriteFormsAction extends Action {}\r\n\r\nexport class ILoadFavoriteFormsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_FAVORITE_FORMS;\r\n }\r\n}\r\n\r\nexport interface ISetFormAsFavoriteRequestAction extends Action {\r\n readonly payload: {\r\n readonly menuId: number;\r\n readonly formCode: string;\r\n readonly isFavorite: boolean;\r\n readonly profile?: IFormProfile;\r\n };\r\n}\r\n\r\nexport class ISetFormAsFavoriteRequestAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_FORM_AS_FAVORITE_REQUEST;\r\n }\r\n}\r\n\r\nexport interface ILoadNotificationItemsAction extends Action {\r\n readonly payload: {\r\n readonly notificationGroupId: string;\r\n readonly startIndex: number;\r\n readonly itemsCount: number;\r\n };\r\n}\r\n\r\nexport class ILoadNotificationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_NOTIFICATION_ITEMS;\r\n }\r\n}\r\n\r\nexport interface ILoadNotificationGroupsAction extends Action {}\r\n\r\nexport class ILoadNotificationGroupsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_NOTIFICATION_GROUPS;\r\n }\r\n}\r\n\r\nexport interface ISetGroupNotificationsAsReadAction extends Action {\r\n readonly payload: {\r\n readonly notificationGroupId: NotificationGroupId;\r\n readonly panelItemId: string;\r\n };\r\n}\r\n\r\nexport class ISetGroupNotificationsAsReadAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_GROUP_NOTIFICATIONS_AS_READ;\r\n }\r\n}\r\n\r\nexport interface ISetNotificationItemAsReadAction extends Action {\r\n readonly payload: {\r\n readonly itemId: NotificationItemId;\r\n readonly isRead: boolean;\r\n };\r\n}\r\n\r\nexport class ISetNotificationItemAsReadAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_NOTIFICATION_ITEM_AS_READ;\r\n }\r\n}\r\n\r\nexport interface ILoadTaskResultDetailAction extends Action {\r\n readonly payload: {\r\n readonly objId: number;\r\n };\r\n}\r\n\r\nexport class ILoadTaskResultDetailAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_TASK_RESULT_DETAIL;\r\n }\r\n}\r\n\r\nexport interface ILoadHistoryFormsInfoAction extends Action {}\r\n\r\nexport class ILoadHistoryFormsInfoAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_HISTORY_FORMS_INFO;\r\n }\r\n}\r\n\r\nexport interface ICloseFormAction extends Action {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n };\r\n}\r\n\r\nexport class ICloseFormAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLOSE_FORM;\r\n }\r\n}\r\n\r\nexport interface IHideAllFormsAction extends Action {}\r\n\r\nexport class IHideAllFormsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === HIDE_ALL_FORMS;\r\n }\r\n}\r\n\r\nexport interface ISwitchToFormAction extends Action {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n };\r\n}\r\n\r\nexport class ISwitchToFormAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SWITCH_TO_FORM;\r\n }\r\n}\r\n\r\nexport interface IApplyThemeAction extends Action {\r\n readonly payload: {\r\n readonly theme: ApplicationTheme;\r\n };\r\n}\r\n\r\nexport class IApplyThemeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === APPLY_THEME;\r\n }\r\n}\r\n\r\nexport interface IExecuteReactConnectorActionAction extends Action {\r\n readonly payload: {\r\n readonly dataSourceKey: string;\r\n readonly actionId: ReactActionId;\r\n readonly dataObjectId: string;\r\n };\r\n}\r\n\r\nexport class IExecuteReactConnectorActionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === EXECUTE_REACT_CONNECTOR_ACTION;\r\n }\r\n}\r\n\r\nexport interface ISetReactConnectorMultiselectModeAction extends Action {\r\n readonly payload: {\r\n readonly dataSourceKey: string;\r\n readonly multiselectMode: boolean;\r\n };\r\n}\r\n\r\nexport class ISetReactConnectorMultiselectModeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_REACT_CONNECTOR_MULTISELECT_MODE;\r\n }\r\n}\r\n\r\nexport interface IFavoriteFormsLoadedAction extends Action {\r\n readonly payload: {\r\n readonly favoriteForms: ReadonlyArray<{ menuId: number; formCode: string; profileId?: number }>;\r\n };\r\n}\r\n\r\nexport class IFavoriteFormsLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FAVORITE_FORMS_LOADED;\r\n }\r\n}\r\n\r\nexport interface IHistoryFormsInfoUpdatedAction extends Action {\r\n readonly payload: {\r\n readonly historyFormsInfo: ReadonlyArray;\r\n };\r\n}\r\n\r\nexport class IHistoryFormsInfoUpdatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === HISTORY_FORMS_INFO_UPDATED;\r\n }\r\n}\r\n\r\nexport interface ILocalizationItemsLoadedAction extends Action {\r\n readonly payload: {\r\n readonly key: string;\r\n readonly localizationItems: ReadonlyMap;\r\n };\r\n}\r\n\r\nexport class ILocalizationItemsLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOCALIZATION_ITEMS_LOADED;\r\n }\r\n}\r\n\r\nexport interface ILocalStorageKeyLoadedAction extends Action {\r\n readonly payload: {\r\n readonly key: string;\r\n readonly value: string;\r\n };\r\n}\r\n\r\nexport class ILocalStorageKeyLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOCAL_STORAGE_KEY_LOADED;\r\n }\r\n}\r\n\r\nexport type MenuItemCustomActionErrorPayload = {\r\n /**\r\n * Příznak, zda chyba nastala kvůli tomu, že není zaregistrována žádná implementace pro zpracování custom akcí, nebo zda chyba nastala až při samotném\r\n * zpracování.\r\n */\r\n handlerNotFound: boolean;\r\n errorMessage: string;\r\n};\r\nexport interface IMenuItemCustomActionProcessedAction extends IResultAction {}\r\n\r\nexport interface IMenuItemsLoadedAction extends Action {\r\n readonly payload: {\r\n readonly menuItems: Readonly;\r\n };\r\n}\r\n\r\nexport class IMenuItemsLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === MENU_ITEMS_LOADED;\r\n }\r\n}\r\n\r\nexport interface INotificationGroupsLoadedAction extends Action {\r\n readonly payload: {\r\n readonly notificationGroups: readonly INotificationGroup[];\r\n };\r\n}\r\n\r\nexport class INotificationGroupsLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === NOTIFICATION_GROUPS_LOADED;\r\n }\r\n}\r\n\r\nexport interface INotificationItemsLoadedAction extends Action {\r\n readonly payload: {\r\n readonly notificationGroupId: NotificationGroupId;\r\n readonly notificationItems: ReadonlyArray;\r\n };\r\n}\r\n\r\nexport class INotificationItemsLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === NOTIFICATION_ITEMS_LOADED;\r\n }\r\n}\r\n\r\nexport interface ITaskResultDetailLoadedAction extends Action {\r\n readonly payload: {\r\n readonly taskResultDetail: ITaskResultDetail;\r\n };\r\n}\r\n\r\nexport class ITaskResultDetailLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === TASK_RESULT_DETAIL_LOADED;\r\n }\r\n}\r\n\r\nexport interface IUserInfoLoadedAction extends Action {\r\n readonly payload: {\r\n readonly userInfo: Readonly;\r\n };\r\n}\r\n\r\nexport class IUserInfoLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === USER_INFO_LOADED;\r\n }\r\n}\r\n\r\nexport interface IFavoriteFormUpdatedAction extends Action {\r\n readonly payload: {\r\n readonly menuId: number;\r\n readonly formCode: string;\r\n readonly isFavorite: boolean;\r\n readonly profile: IFormProfile | undefined;\r\n };\r\n}\r\n\r\nexport class IFavoriteFormUpdatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FAVORITE_FORM_UPDATED;\r\n }\r\n}\r\n\r\nexport interface IFormCustomTitleChangedAction extends Action {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly customTitle: string;\r\n };\r\n}\r\n\r\nexport class IFormCustomTitleChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_CUSTOM_TITLE_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IFormClosedAction extends Action {\r\n readonly payload: {\r\n readonly closedFormInfo: IOpenedFormInfo;\r\n };\r\n}\r\n\r\nexport class IFormClosedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_CLOSED;\r\n }\r\n}\r\n\r\nexport interface IFormItemInstanceCloseRestrictionsUpdatedAction extends Action {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly hideCloseAction: boolean;\r\n };\r\n}\r\n\r\nexport class IFormItemInstanceCloseRestrictionsUpdatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED;\r\n }\r\n}\r\n\r\nexport interface IFormOpenedAction extends Action {\r\n readonly payload: {\r\n readonly openedFormInfo: IOpenedFormInfo;\r\n readonly hideWindowActions: boolean;\r\n readonly openInBackground: boolean;\r\n };\r\n}\r\n\r\nexport class IFormOpenedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_OPENED;\r\n }\r\n}\r\n\r\nexport interface IFormOverlayClickedAction extends Action {}\r\n\r\nexport class IFormOverlayClickedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_OVERLAY_CLICKED;\r\n }\r\n}\r\n\r\nexport class IFormProfileChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_PROFILE_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IFormProfileChangedAction extends Action {\r\n readonly payload: {\r\n readonly type: ProfileChangeType;\r\n readonly profile: IFormProfile;\r\n };\r\n}\r\n\r\nexport class ISelectedProfileChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SELECTED_PROFILE_CHANGED;\r\n }\r\n}\r\n\r\nexport interface ISelectedProfileChangedAction extends Action {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly profile?: IFormProfile;\r\n };\r\n}\r\n\r\nexport interface IFormSwitchedAction extends Action {\r\n readonly payload: {\r\n readonly switchedFormInfo: IOpenedFormInfo;\r\n };\r\n}\r\n\r\nexport class IFormSwitchedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FORM_SWITCHED;\r\n }\r\n}\r\n","import { IFormProfile, NotificationGroupId, NotificationItemId, OpenFormData } from \"@multiweb/types/contracts\";\r\nimport { IMainMenuItemActionParams, IOpenFormModalParams } from \"@multiweb/types/multiweb\";\r\nimport { ReactActionId } from \"@multiweb/types/react\";\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport {\r\n APPLY_THEME,\r\n CLOSE_FORM,\r\n EXECUTE_REACT_CONNECTOR_ACTION,\r\n HIDE_ALL_FORMS,\r\n HIDE_FORM_OVERLAY,\r\n HIDE_LOADING_INDICATOR,\r\n LOAD_FAVORITE_FORMS,\r\n LOAD_HISTORY_FORMS_INFO,\r\n LOAD_LOCAL_STORAGE_KEY,\r\n LOAD_LOCALIZATION_ITEMS,\r\n LOAD_MENU_ITEMS,\r\n LOAD_NOTIFICATION_GROUPS,\r\n LOAD_NOTIFICATION_ITEMS,\r\n LOAD_TASK_RESULT_DETAIL,\r\n LOAD_USER_INFO,\r\n LOGOUT,\r\n OPEN_FORM,\r\n OPEN_FORM_MODAL,\r\n PROCESS_MENU_ITEM_CUSTOM_ACTION,\r\n SELECTED_PROFILE_CHANGED,\r\n SET_FORM_AS_FAVORITE_REQUEST,\r\n SET_GROUP_NOTIFICATIONS_AS_READ,\r\n SET_LOCAL_STORAGE_KEY,\r\n SET_NOTIFICATION_ITEM_AS_READ,\r\n SET_REACT_CONNECTOR_MULTISELECT_MODE,\r\n SHOW_FORM_OVERLAY,\r\n SHOW_LOADING_INDICATOR,\r\n SHOW_SETTINGS,\r\n SWITCH_TO_FORM,\r\n} from \"./constants\";\r\nimport {\r\n FormOpenMethod,\r\n IApplyThemeAction,\r\n ICloseFormAction,\r\n IExecuteReactConnectorActionAction,\r\n IHideAllFormsAction,\r\n IHideFormOverlayAction,\r\n IHideLoadingIndicatorAction,\r\n ILoadFavoriteFormsAction,\r\n ILoadHistoryFormsInfoAction,\r\n ILoadLocalizationItemsAction,\r\n ILoadLocalStorageKeyAction,\r\n ILoadMenuItemsAction,\r\n ILoadNotificationGroupsAction,\r\n ILoadNotificationItemsAction,\r\n ILoadTaskResultDetailAction,\r\n ILoadUserInfoAction,\r\n ILogoutAction,\r\n IOpenFormAction,\r\n IOpenFormModalAction,\r\n IProcessMenuItemCustomActionAction,\r\n ISelectedProfileChangedAction,\r\n ISetFormAsFavoriteRequestAction,\r\n ISetGroupNotificationsAsReadAction,\r\n ISetLocalStorageKeyAction,\r\n ISetNotificationItemAsReadAction,\r\n ISetReactConnectorMultiselectModeAction,\r\n IShowFormOverlayAction,\r\n IShowLoadingIndicatorAction,\r\n IShowSettingsAction,\r\n ISwitchToFormAction,\r\n} from \"./types\";\r\n\r\n/**\r\n * Akce vyvolávající načtení dat o přihlášeném uživateli.\r\n */\r\nexport const createLoadUserInfoAction = (): ILoadUserInfoAction => ({\r\n type: LOAD_USER_INFO,\r\n});\r\n\r\n/**\r\n * Akce vyvolávající načtení položek pro menu.\r\n */\r\nexport const createLoadMenuItemsAction = (): ILoadMenuItemsAction => ({\r\n type: LOAD_MENU_ITEMS,\r\n});\r\n\r\n/**\r\n * Akce vyvolávající načtení položek lokalizace pro zadané klíče.\r\n * @param locKeys Klíče, pro které mají být načteny lokalizační položky.\r\n * @param key Klíč pro jednoznačnou identifikaci požadavku. Umožňuje rozlišit více akcí tohoto typu z různých zdrojů.\r\n */\r\nexport const createLoadLocalizationItemsAction = (locKeys: readonly string[], key: string): ILoadLocalizationItemsAction => ({\r\n type: LOAD_LOCALIZATION_ITEMS,\r\n payload: {\r\n key,\r\n locKeys,\r\n },\r\n});\r\n\r\n/**\r\n * Akce zobrazující načítací indikátor. Akce může být volána vícekrát. Načítací indikátor je schován až když je zavolaný odpovídající počet akcí pro skrytí.\r\n */\r\nexport const createShowLoadingIndicatorAction = (): IShowLoadingIndicatorAction => ({\r\n type: SHOW_LOADING_INDICATOR,\r\n});\r\n\r\n/**\r\n * Akce skrývající načítací indikátor. Akce může být volána vícekrát. Indikátor je skryt až když je akce pro schování zavolána tolikrát, kolikrát byla akce pro zobrazení\r\n * a pokud neprovádí načítání původní část aplikace.\r\n */\r\nexport const createHideLoadingIndicatorAction = (): IHideLoadingIndicatorAction => ({\r\n type: HIDE_LOADING_INDICATOR,\r\n});\r\n\r\n/**\r\n * Akce pro otevření zadaného formulář.\r\n * @param formCode Kód formuláře k otevření.\r\n * @param openMethod Metoda otevření. Určuje, zda je možné využít existující formulář, nebo se vždy otevře nový.\r\n * @param openFormData Volitelná data využívaná při otevírání formuláře.\r\n */\r\nexport const createOpenFormAction = (formCode: string, openMethod: FormOpenMethod, openFormData: OpenFormData): IOpenFormAction => ({\r\n type: OPEN_FORM,\r\n payload: {\r\n formCode,\r\n openMethod,\r\n openFormData,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující změnu vybraného profilu formuláře\r\n * @param profile Změněný profil\r\n */\r\nexport const createSelectedProfileChangedAction = (formInstanceId: string, profile?: IFormProfile): ISelectedProfileChangedAction => ({\r\n type: SELECTED_PROFILE_CHANGED,\r\n payload: {\r\n formInstanceId,\r\n profile,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro otevření zadaného modálního okna.\r\n * @param formName Název formuláře k otevření.\r\n * @param attributeValues Seznam názvu attributů, jejichž hodnota se má získat.\r\n * @param onFormClose Callback volaný při zavření formuláře.\r\n * @param condition Podmínka pro otevíraný formulář.\r\n * @param conditionParamsObject Instance aplikačního záznamu, ze kterého se načítají hodnoty parametrů podmínky\r\n * @param conditionParamsAttrs Názvy aplikačních atributů, v nichž jsou hodnoty k parametrům podmínky\r\n * @param masterLinkToAttr Název vazby na nadřizeny objekt\r\n */\r\nexport const createOpenFormModalAction = (params: IOpenFormModalParams): IOpenFormModalAction => ({\r\n type: OPEN_FORM_MODAL,\r\n payload: {\r\n params,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro odhlášení uživatele.\r\n */\r\nexport const createLogoutAction = (): ILogoutAction => ({\r\n type: LOGOUT,\r\n});\r\n\r\n/**\r\n * Akce pro zobrazení dialogu s nastavením.\r\n */\r\nexport const createShowSettingsAction = (): IShowSettingsAction => ({\r\n type: SHOW_SETTINGS,\r\n});\r\n\r\n/**\r\n * Akce pro zobrazení overlaye nad formulářovou částí. Pokud je již overlay zobrazen, nemá žádný účinek.\r\n */\r\nexport const createShowFormOverlayAction = (): IShowFormOverlayAction => ({\r\n type: SHOW_FORM_OVERLAY,\r\n});\r\n\r\n/**\r\n * Akce pro skrytí overlaye nad formulářovou částí. Pokud je overlay již skrytý, nemá žádný účinek. Na rozdíl od indikátoru načítání,\r\n * je jedno kolikrát byla zavolána akce pro zobrazení, akce pro schování overlay vždy schová.\r\n */\r\nexport const createHideFormOverlayAction = (): IHideFormOverlayAction => ({\r\n type: HIDE_FORM_OVERLAY,\r\n});\r\n\r\n/**\r\n * Akce pro načtení oblíbených formulářů. Po načtení vrací výsledek pomocí akce FAVORITE_FORMS_LOADED.\r\n */\r\nexport const createLoadFavoriteFormsAction = (): ILoadFavoriteFormsAction => ({\r\n type: LOAD_FAVORITE_FORMS,\r\n});\r\n\r\n/**\r\n * Akce spouštící proces pro přepnutí oblíbenosti formuláře.\r\n * @param menuId ID položky menu.\r\n * @param formCode Kód formuláře k přepnutí.\r\n * @param isFavorite Hodnota, na kterou se má přepnout. True pro nastavení formuláře jako oblíbeného. False pro jeho odebrání z oblíbených.\r\n * @param profile Profil formuláře.\r\n */\r\nexport const createSetFormAsFavoriteRequestAction = (menuId: number, formCode: string, isFavorite: boolean, profile?: IFormProfile): ISetFormAsFavoriteRequestAction => ({\r\n type: SET_FORM_AS_FAVORITE_REQUEST,\r\n payload: {\r\n menuId,\r\n formCode,\r\n isFavorite,\r\n profile,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načtení notifikačních položek.\r\n * @param notificationGroupId Identifkátor notifikační skupiny notifikačních položek\r\n * @param startIndex Počáteční index načítaných notifikačních položek\r\n * @param itemsCount Počet načítaných notifikačních položek\r\n */\r\nexport const createLoadNotificationItemsAction = (notificationGroupId: NotificationGroupId, startIndex: number, itemsCount: number): ILoadNotificationItemsAction => ({\r\n type: LOAD_NOTIFICATION_ITEMS,\r\n payload: {\r\n notificationGroupId,\r\n startIndex,\r\n itemsCount,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načítání notifikačních skupin.\r\n */\r\nexport const createLoadNotificationGroupsAction = (): ILoadNotificationGroupsAction => ({\r\n type: LOAD_NOTIFICATION_GROUPS,\r\n});\r\n\r\n/**\r\n * Akce pro označení notifikační položky za přečtenou/nepřečtenou.\r\n * @param itemId Identifikátor notifikační položky\r\n * @param isRead Příznak, zda má být notifikační položka označena za přečtenou či nepřečtenou.\r\n */\r\nexport const createSetNotificationItemAsReadAction = (itemId: NotificationItemId, isRead: boolean): ISetNotificationItemAsReadAction => ({\r\n type: SET_NOTIFICATION_ITEM_AS_READ,\r\n payload: {\r\n itemId,\r\n isRead,\r\n },\r\n});\r\n/**\r\n * Akce pro označení všech notifikací dané skupiny za přečtené.\r\n * @param notificationGroupId Identifikátor skupiny\r\n * @param panelItemId Identifikátor panelu\r\n */\r\nexport const createSetGroupNotificationsAsReadAction = (notificationGroupId: NotificationGroupId, panelItemId: string): ISetGroupNotificationsAsReadAction => ({\r\n type: SET_GROUP_NOTIFICATIONS_AS_READ,\r\n payload: {\r\n notificationGroupId,\r\n panelItemId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načtení detailu o výsledku úlohy.\r\n * @param objId Identifikátor otevíraného objektu.\r\n */\r\nexport const createLoadTaskResultDetailAction = (objId: number): ILoadTaskResultDetailAction => ({\r\n type: LOAD_TASK_RESULT_DETAIL,\r\n payload: {\r\n objId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načtení historie otevřených formulářů. Po načtení vrací výsledek pomocí akce HISTORY_FORMS_INFO_UPDATED.\r\n */\r\nexport const createLoadHistoryFormsInfoAction = (): ILoadHistoryFormsInfoAction => ({\r\n type: LOAD_HISTORY_FORMS_INFO,\r\n});\r\n\r\n/**\r\n * Akce pro zavření formuláře.\r\n *\r\n * @param formInstanceId Informace identifikující otevřený formulář, který chceme zavřít.\r\n */\r\nexport const createCloseFormAction = (formInstanceId: string): ICloseFormAction => ({\r\n type: CLOSE_FORM,\r\n payload: {\r\n formInstanceId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro skrytí otevřených formulářů.\r\n */\r\nexport const createHideAllFormsAction = (): IHideAllFormsAction => ({\r\n type: HIDE_ALL_FORMS,\r\n});\r\n\r\n/**\r\n * Akce pro přepnutí otevřeného formuláře do popředí.\r\n * @param formInstanceId Id otevřené instance formuláře.\r\n */\r\nexport const createSwitchToFormAction = (formInstanceId: string): ISwitchToFormAction => ({\r\n type: SWITCH_TO_FORM,\r\n payload: {\r\n formInstanceId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aplikaci tématu aplikace.\r\n * @param theme Název tématu které se má nastavit.\r\n */\r\nexport const createApplyThemeAction = (theme: ApplicationTheme): IApplyThemeAction => ({\r\n type: APPLY_THEME,\r\n payload: {\r\n theme,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení hodnoty klíče v local storage.\r\n * @param key Klíč.\r\n * @param value Hodnota která se má nastavit.\r\n */\r\nexport const createSetLocalStorageKeyAction = (key: string, value: string): ISetLocalStorageKeyAction => ({\r\n type: SET_LOCAL_STORAGE_KEY,\r\n payload: {\r\n key,\r\n value,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načtení hodnoty klíče z local storage.\r\n * @param key Klíč.\r\n */\r\nexport const createLoadLocalStorageKeyAction = (key: string): ILoadLocalStorageKeyAction => ({\r\n type: LOAD_LOCAL_STORAGE_KEY,\r\n payload: {\r\n key,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro spuštění zpracování custom akce pro položku menu.\r\n * @param menuItemParams Údaje o položce menu, pro níž se má akce zpracovat.\r\n */\r\nexport const createProcessMenuItemCustomActionAction = (menuItemParams: IMainMenuItemActionParams): IProcessMenuItemCustomActionAction => ({\r\n type: PROCESS_MENU_ITEM_CUSTOM_ACTION,\r\n payload: {\r\n menuItemParams,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro zavolání metody execute na akci v connectoru.\r\n *\r\n * @param dataSourceKey Identifikátor connectoru.\r\n * @param actionId Identifikátor akce na connectoru.\r\n * @param dataObjectId Identifikátor záznamu, který způsobil zavolání metody exexute.\r\n */\r\nexport const createExecuteReactConnectorAction = (dataSourceKey: string, actionId: ReactActionId, dataObjectId: string): IExecuteReactConnectorActionAction => ({\r\n type: EXECUTE_REACT_CONNECTOR_ACTION,\r\n payload: {\r\n dataSourceKey,\r\n actionId,\r\n dataObjectId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení MultiselectMode v connectoru.\r\n * Musí se aktualizovat při každé změně MultiselectMode, aby měli akce v toolbaru\r\n * správnou viditelnost (toolbar není react komponenta, proto nemůže reagovat na změnu ve store).\r\n *\r\n * @param dataSourceKey Identifikátor connectoru.\r\n * @param multiselectMode Aktuální hodnota MultiselectMode.\r\n */\r\nexport const createSetReactConnectorMultiselectModeAction = (dataSourceKey: string, multiselectMode: boolean): ISetReactConnectorMultiselectModeAction => ({\r\n type: SET_REACT_CONNECTOR_MULTISELECT_MODE,\r\n payload: {\r\n dataSourceKey,\r\n multiselectMode,\r\n },\r\n});\r\n","import { SyntheticEvent } from \"react\";\r\nimport { Action, Store } from \"redux\";\r\nimport { SagaMiddleware, Task } from \"redux-saga\";\r\n\r\nimport { IDataReaderClient } from \"@multiweb/clients/dataReader\";\r\nimport {\r\n IAttrValue,\r\n ILanguageExtended,\r\n ILocalizationItem,\r\n IPublicAttributeInfo,\r\n IRunMethodResult,\r\n OWDataType,\r\n} from \"@multiweb/types/contracts\";\r\nimport {\r\n CancellationToken,\r\n ConditionOperator,\r\n DateTimeFormatObject,\r\n EventCallback,\r\n ExperimentName,\r\n ExtendedPropertiesType,\r\n GetFormattedNumberStringParams,\r\n IAppConfiguration,\r\n IBigNumber,\r\n IDataEventsManager,\r\n IDefferredWindow,\r\n IEnumType,\r\n IMenuNavigationConfig,\r\n INumberFormatInfo,\r\n INumberFormatOptions,\r\n IOWObject,\r\n IOWObjectList,\r\n IParticipant,\r\n ITypeFactory,\r\n IVisible,\r\n IWorkflowMenuItem,\r\n RequestContext,\r\n RunStaticMethodParams,\r\n RunStaticMethodWithParamsConfig,\r\n} from \"@multiweb/types/multiweb\";\r\nimport { ApplicationModule, IAppState, ObjectType, OpenEditWindowParams, ReactAction, ReactActionId, SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { Tail } from \"@redux-saga/core/effects\";\r\nimport { NAME } from \"./constants\";\r\nimport { FileNameParts, ICryptographicInfo, ISignatureInfo } from \"./types\";\r\n\r\n/**\r\n * Definuje rozhraní bridge modulu (bez akcí, ty jsou exportovány samostatně).\r\n * Bridge modul slouží pro komunikaci mezi původní částí aplikace a reactí částí.\r\n * Podrobnější informace o bridge modulu je možné najít v readme.md a ve Storybooku https://teaf/mw/storybook/?path=/story/dokumentace-moduly-core-bridge--dokumentace.\r\n *\r\n * Rozhraní je složené z menších dílčích rozhraní, které seskupují funkcionality podle oblasti.\r\n *\r\n * Metody tohoto rozhraní jsou často volané v ságách. Pro jednoduchost použití a unit testů je žádoucí,\r\n * aby byly metody využívající ve své implementaci \"this\" bindovány k instanci své třídy.\r\n * Doporučený postup je použití \"property initializer syntax\" a arrow funkcí.\r\n */\r\nexport interface IBridge extends\r\n IBridgeCore,\r\n IBridgeCommons,\r\n IBridgeData,\r\n IBridgeUI,\r\n IBridgeFormatting,\r\n IBridgeLocalization,\r\n IBridgeFrames,\r\n IBridgeMainMenu,\r\n IBridgeFile,\r\n IBridgeCrypto { }\r\n\r\n/**\r\n * Definuje základní funkcionalitu bridge modulu, která je nutná pro komunikaci mezi\r\n * původní částí aplikace a reactí částí aplikace. Jedná se o funkce pro inicializaci bridge modulu\r\n * a funkce pro podporu konektorů, které napojují konkrétní komponenty do původní aplikace.\r\n *\r\n * Více o konektorech ve Storybooku: https://teaf.tescosw.cz/mw/storybook/?path=/story/dokumentace-komponenty--2-konektory\r\n */\r\nexport interface IBridgeCore {\r\n\r\n /**\r\n * Obsahuje popis bridge modulu pro účely zapojení modulu do aplikace.\r\n * Určeno pouze pro použití v setup modulu, nebo v ProxyBridge.\r\n */\r\n readonly module: ApplicationModule;\r\n\r\n /**\r\n * Nastaví redux store pro bridge modul. Store se využívá pro vysílání akcí. Před použitím bridge modulu\r\n * je nutné nastavit store pomocí této metody. Store nemůže být importována přímo kvůli cyklickým závislostem.\r\n *\r\n * Funkce pro spuštění ságy umožňuje zapojit v Connector třídách dynamicky ságu. Díky tomu může Connector reagovat na akce z reduxu.\r\n *\r\n * @param storeParam Redux store pro vysílání akcí.\r\n * @param runSaga Funkce z redux saga middleware pro spouštění ság.\r\n */\r\n setStore(storeParam: Store, runSaga: SagaMiddleware[\"run\"]): void;\r\n\r\n /**\r\n * Zajistí vhodné zpracování chyby.\r\n *\r\n * Typicky se jedná o zobrazení chybového dialogu pomocí odpovídající manager třídy z původní části aplikace.\r\n *\r\n * @param error Odchycená chyba pro zpracování.\r\n */\r\n errorHandler(error: unknown): void;\r\n\r\n /**\r\n * Slouží pro komunikaci směrem z původní aplikace k Reactí části aplikace.\r\n * S Reactí částí se vždy komunikuje pomocí akcí. Tato metoda umožňuje vysílat akce.\r\n *\r\n * Před použitím musí být inicializovaná store.\r\n *\r\n * @param action Akce se vytvářejí pomocí action creator funkcí, které jsou k dispozici v rámci bridge modulu.\r\n * @example\r\n * import { StoreManager } from \"@multiweb/reactSetup\";\r\n * import { bridge } from \"@multiweb/reactCore/bridge\";\r\n * const { dispatchAction } = bridge;\r\n * StoreManager.initializeStore(!!AppContext.instance.configuration.developmentMode);\r\n * dispatchAction(createExampleAction(arg1, arg2));\r\n */\r\n dispatchAction(action: Action): void;\r\n\r\n /**\r\n * Spustí zadanou ságu a předá ji případné parametry. Slouží pro naslouchání akcí a získávání dat z Reactí části pro původní aplikaci.\r\n *\r\n * Před použitím musí být inicializovaná store.\r\n * @example\r\n * import { StoreManager } from \"@multiweb/reactSetup\";\r\n * import { bridge } from \"@multiweb/reactCore/bridge\";\r\n * const { runSaga } = bridge;\r\n * StoreManager.initializeStore(!!AppContext.instance.configuration.developmentMode);\r\n * runSaga(saga, arg1, arg2);\r\n */\r\n runSaga>(saga: S, ...args: Parameters): Task;\r\n\r\n /**\r\n * Slouží pro čtení dat původní aplikací z Reactí části aplikace.\r\n * Tato metoda umožňuje čtení stavu ze store. Příkladem využití může být např. selektor.\r\n *\r\n * Před použitím musí být inicializovaná store.\r\n *\r\n * @example\r\n * import { StoreManager } from \"@multiweb/reactSetup\";\r\n * import { bridge } from \"@multiweb/reactCore/bridge\";\r\n * const { getState } = bridge\";\r\n * import { getValue } from \"./selectors\"; // ukázka cesty\r\n * StoreManager.initializeStore(!!AppContext.instance.configuration.developmentMode);\r\n * const state = getState();\r\n * getValue(state, controlsKey);\r\n */\r\n getState(): IAppState;\r\n\r\n /**\r\n * Slouží pro zavolání selektoru v nereactí části aplikace.\r\n * @param selector Funkce selektoru\r\n * @param args Argumenty selektoru\r\n */\r\n useSelector>) => ReturnType>(\r\n selector: Fn,\r\n ...args: Tail>\r\n ): ReturnType;\r\n\r\n /**\r\n * Získá DIContainer. Určeno primárně pro použití pro customizaci react component.\r\n * V jiných místech by se nemělo využívat.\r\n */\r\n getDIContainer(): ITypeFactory;\r\n}\r\n\r\n/**\r\n * Definuje obecné funkce z multiwebu, které nepatří do žádné konkrétní oblasti a hodí se i pro použití v react části.\r\n */\r\nexport interface IBridgeCommons {\r\n\r\n /**\r\n * Vygeneruje univerzální unikátní identifikátor.\r\n */\r\n generateUUID(): string;\r\n\r\n /**\r\n * Vrací konfigurační nastavení aplikace.\r\n */\r\n getAppConfiguration(): IAppConfiguration;\r\n\r\n /**\r\n * Zjistí, zda je předaná experimentální funkcionalita aktivována.\r\n * @see https://www.martinfowler.com/articles/feature-toggles.html Feature Toggles\r\n *\r\n * Výsledek funkce je stálý!\r\n * - Resp. Není možné jej změnit za běhu aplikace.\r\n * - Hodnota je závislá na konfiguraci, která se načte jednorázově při startu aplikace.\r\n * - Proto je možné tuto funkci využít i v react komponentách.\r\n *\r\n * @param experimentName Název funkcionality\r\n */\r\n isExperimentEnabled(experimentName: ExperimentName): boolean;\r\n\r\n /**\r\n * Zjistí, zda je akce akcí signalizující načtení hodnoty určitého klíče z local storage.\r\n * @param key Klíč v local storage.\r\n */\r\n createIsLocalStorageKeyLoadedActionPattern(key: string): (action: Action) => boolean;\r\n\r\n /**\r\n * Vytvoří instanci třídy BigNumberProxy.\r\n * @param value Hodnota.\r\n */\r\n createBigNumberProxy(value: string | number): IBigNumber;\r\n\r\n /**\r\n * Otevře danou URL adresu\r\n * @param url URL adresa\r\n * @param target Specifikace cíle otevření\r\n */\r\n openUrl(url: string, target?: string): void;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní pro načítání různých dat a práci s atributy.\r\n */\r\nexport interface IBridgeData {\r\n /**\r\n * Načte seznam hráčů nad vybraným aktivním workflow\r\n *\r\n * @param instanceId identifikátor instance objektu\r\n * @param activityId identifikátor aktivity\r\n * @param requestContext Kontext, v rámci kterého bude požadavek vykonán. (Role uživatele, atd.)\r\n */\r\n getActivityParticipants(instanceId: string, objectList: IOWObjectList, activityId: string, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Vytvoří instanci třídy **AttrValue** se zadanou hodnotou.\r\n * @param value Hodnota\r\n */\r\n getAttrValue(value: any): IAttrValue;\r\n\r\n /**\r\n * Vrací informace o atributech přiřazených k dané třídě\r\n * @param objectName Název třídy\r\n * @param attributesToCheck Seznam atributu\r\n */\r\n getAttributeInfo(objectName: string, attributesToCheck: string[]): Promise;\r\n\r\n /** @see AttrValueReader.read */\r\n readAttributeValue(attrValue: IAttrValue | ObjectType | null | undefined, explicitKnownTypes?: any[]): any;\r\n\r\n /** Zkombinuje pole podmínek */\r\n combineConditionsArray(operator: ConditionOperator, conditions: string[]): string;\r\n\r\n /**\r\n * Získá klienta pro čtení dat.\r\n */\r\n getDataReaderClient(): IDataReaderClient;\r\n\r\n /**\r\n * Získá url pro stažení souboru z DMS\r\n * @param dataObjectId Jednoznačný identifikátor objektu.\r\n * @param objectName Název třídy objektu\r\n * @param attributeName Název atributu, který obsahuje odkaz na dokument uložený v DMS\r\n */\r\n getDocumentDownloadUrlByObjectId(dataObjectId: string, objectName: string, attributeName: string): Promise;\r\n\r\n /**\r\n * Spustí metodu na dané třídě\r\n * @param config Konfigurační objekt\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n runStaticMethod(config: RunStaticMethodParams, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Spustí metodu na dané třídě s parametry\r\n * @param config Konfigurační objekt\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n runStaticMethodWithParams(config: RunStaticMethodWithParamsConfig, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Vytváří prázdný OWObjectList\r\n */\r\n createObjectList(): IOWObjectList;\r\n\r\n /**\r\n * Jestli je Workflow definováno pro specifickou třídu, vrací true.\r\n *\r\n * @param className Název třídy, která se má zkontrolovat.\r\n * @param requestContext Viz {@link RequestContext}\r\n * @param force Ignorování cache\r\n * @return True, když Workflow je definováno pro specifickou třídu, jinak false.\r\n */\r\n isWFDefinedToClass(className: string, requestContext?: RequestContext, force?: boolean): Promise;\r\n\r\n /**\r\n * Vrací seznam spouštěčů typu Menu pro seznam objektů\r\n * Používá se pro konstrukci WF menu při hromadné editaci: průnik spouštěčů za objekty\r\n * @param objectList Seznam objektů, pro které se bude hledat průnik spouštěčů\r\n * @param requestContext Kontext, v rámci kterého bude požadavek vykonán. (Role uživatele, atd.)\r\n * @return Seznam workflowmenu objektů\r\n */\r\n objectsWFMenu(objectList: IOWObjectList, requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Získá zaregistrovanou instanci aplikačního objektu nebo null, pokud takový zaregitrovaný není\r\n * @param instanceId Identifikátor instance aplikačního objektu\r\n */\r\n getInstance(instanceId: string): IOWObject | null;\r\n\r\n /**\r\n * Spustí přípravu stahování souboru a zajistí, že po jejím doběhnutí je už nachystaný nebo došlo ke zrušení stahování.\r\n * V chybových situacích informuje uživatele oknem s chybovou hláškou nebo potvrzovacím dialogem.\r\n * @param url Url ke stažení dokumentu\r\n */\r\n prepareDownload(url: string): Promise;\r\n\r\n /**\r\n * Vrací ze serveru {@link IEnumType} na základě parametru `enumName`.\r\n * Pokud jméno enumu neexistuje, aplikace zaloguje chybu a vrací undefined.\r\n * @param enumName slouží k vyhledání typu enumu, který má metoda vrátit\r\n */\r\n getEnumData(enumName: string): Promise;\r\n\r\n /**\r\n * Vrací manager data eventů. Pokud není žádný manager zaregistrovaný, vrací undefined.\r\n */\r\n getDataEventsManager(): IDataEventsManager | undefined;\r\n\r\n /**\r\n * Zjistí jestli url a funkce obsahují pouze statické metody\r\n * @param url Šablona url adresy\r\n * @param functions Pole názvů funkcí\r\n */\r\n canCallOnlyStaticMethods(url: string, functions: ReadonlyArray): boolean;\r\n\r\n /**\r\n * Provede akce WorkFlow nad seznamem objektů\r\n * @param ids identifikátory objektů\r\n * @param className třída objektů\r\n * @param actionID identifikátor spouštěče\r\n * @param nextParticipants\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n objectWFActionExecuteWithoutInstance(ids: string[], className: string, actionID: string, nextParticipants: IParticipant[], requestContext?: RequestContext): Promise;\r\n}\r\n\r\n/**\r\n * Definuje obecné funkce pro práci související s uživatelským rozhraním.\r\n */\r\nexport interface IBridgeUI {\r\n\r\n /**\r\n * Zastaví propagaci události, ale současně notifikuje o tomto zastavení (vyvolává nativní událost \"Cancelled\")\r\n *\r\n * @param event Událost, která má být zastavena.\r\n */\r\n stopPropagation(event: SyntheticEvent): void;\r\n\r\n /**\r\n * Zastaví propagaci události, ale současně notifikuje o tomto zastavení (vyvolává nativní událost \"Cancelled\")\r\n *\r\n * @param event Událost, která má být zastavena.\r\n */\r\n stopPropagationNative(event: Event): void;\r\n\r\n /**\r\n * Vygeneruje id použitelné pro elementy komponent.\r\n */\r\n generateElementID(): string;\r\n\r\n /**\r\n * @see UserActionLogger.logEvent\r\n * @param event Událost k zalogování uživatelské aktivity.\r\n */\r\n logUserInteractionEvent(event: Event): Promise;\r\n\r\n /**\r\n * Vrací viditelnost komponenty dané identifikátorem.\r\n * Pokud komponenta nebyla nalezena nebo neimplementuje rozhraní IVisible, vrací **true**.\r\n *\r\n * @param componentId Identifikátor komponenty, pro kterou vrací její viditelnost.\r\n */\r\n getControlComponentVisibility(componentId: string): boolean;\r\n\r\n /**\r\n * Přidá listener na změnu viditelnosti komponentě dané identifikátorem.\r\n *\r\n * @param componentId Identifikátor komponenty, které nastavuje listener.\r\n * @param listener Listener, který přidá do komponenty dané identifikátorem.\r\n */\r\n addControlComponentVisibilityChangedListener(componentId: string, listener: EventCallback): void;\r\n\r\n /**\r\n * Odebere Listener na změnu viditelnosti komponentě dané identifikátorem.\r\n *\r\n * @param componentId Identifikátor komponenty, které nastavuje listener.\r\n * @param listener Listener, který odebere z komponenty dané identifikátorem.\r\n */\r\n removeControlComponentVisibilityChangedListener(componentId: string, listener: EventCallback): void;\r\n}\r\n\r\n/**\r\n * Poskytuje rozhraní pro formátování různých datových typů a pro práci s řetězci.\r\n */\r\nexport interface IBridgeFormatting {\r\n\r\n /** Znak pro oddělování desetinných míst */\r\n readonly decimalSeparator: string;\r\n\r\n /** Znak pro oddělování skupin znaků v čísle */\r\n readonly groupSeparator: string;\r\n\r\n /** Počet milisekund v jednom dni */\r\n readonly msPerDay: number;\r\n\r\n /**\r\n * Odstraní diakritiku z textu.\r\n * @param text Text, ze kterého se odstraní diakritika.\r\n */\r\n removeAccents(text: string): string;\r\n\r\n /**\r\n * Odstraní nebo nahradí HTML tagy v textu.\r\n * @param text Text, ve kterém se odstraní nebo nahradí HTML tagy.\r\n */\r\n stripHTMLFromText(text: string): string;\r\n\r\n /**\r\n * Zjistí, zda je zadané datum datem dnešním.\r\n * @param date Datum\r\n */\r\n isToday(date: Date): boolean;\r\n\r\n /**\r\n * Převede datum na řetězec.\r\n * @param date Datum\r\n * @param format Formát datumu. Výchozí hodnota je \"g\".\r\n */\r\n dateToString(date: Date, format?: string): string;\r\n\r\n /** @see UI/utils */\r\n getExtendedPropertiesFromElement(element: HTMLElement): ExtendedPropertiesType;\r\n\r\n /** @see NumberUtils.getDefaultFormat */\r\n getDefaultNumberFormat(dataType?: OWDataType | string): string;\r\n\r\n /** @see NumberUtils.getFormattedString */\r\n getFormattedNumberString(value: string | IBigNumber | number | null | undefined, params: GetFormattedNumberStringParams, formatedProviderKey?: string): string;\r\n\r\n /** @see NumberUtils.isWholeNumberType */\r\n isWholeNumberType(dataType: OWDataType | string): boolean;\r\n\r\n /** @see NumberUtils.getDefaultFormat */\r\n getDefaultFormat(dataType?: OWDataType | string): string;\r\n\r\n /** @see NumberUtils.getTypeMinMax */\r\n getTypeMinMax(dataType: OWDataType | string): Record<\"min\" | \"max\", number> | null;\r\n\r\n /** @see NumberUtils.numberToString */\r\n getNumberToString(numStr: string, params: INumberFormatOptions): string;\r\n\r\n /** @see StringUtils.isNullOrEmpty */\r\n isNullOrEmpty(value: string | null | undefined): boolean;\r\n\r\n /** @see StringUtils.compareCaseInsensitive */\r\n compareCaseInsensitive(value1: string | null | undefined, value2: string | null | undefined): boolean;\r\n\r\n /** @see EnumUtils.getEnumValueFromValue */\r\n stringToEnumValue(targetEnum: T, value: string, caseSensitive?: boolean): T[keyof T] | undefined;\r\n\r\n /** @see FlagUtils.flagToCss */\r\n flagToCss(flag: string): string;\r\n\r\n /** @see EnumUtils.getEnumValueFromValue */\r\n valueToEnumValue(targetEnum: T, value: string, caseSensitive?: boolean): T[keyof T] | undefined;\r\n\r\n /**\r\n * Načtení formátovací funkce\r\n * @param format Formát\r\n * @param culture Nepovinný parametr culture, který určuje, zda bude pro tento konkrétní formát použita jiná kultura než globální\r\n */\r\n getDateToStringFunction(format: string, culture?: string): DateTimeFormatObject;\r\n\r\n /**\r\n * Konvertuje danou hodnotu na boolean, pokud neodpovida hodnote.\r\n * @param value Obsahuje hodnotu pro parsovani.\r\n * @param defaultReturn Obsahuje defaultni navratovou hodnotu v pripade ze neprojde parsovanim.\r\n */\r\n stringToBoolean(value: string | null | undefined, defaultReturn?: boolean): boolean;\r\n\r\n /**\r\n * Konvertuje string na číslo. Pokud je hodnota undefined vrací místo NaN vrací undefined.\r\n * @param value Obsahuje hodnotu pro parsování.\r\n */\r\n stringToNumberOrUndefined(value: string | undefined): number | undefined;\r\n\r\n /**\r\n * Odstraní formátování a vrátí string s číslem v neutrální kultuře\r\n * @param value Hodnota, ze které má být odstraněno formátování\r\n * @param groupSeparator Oddělovač tisíců\r\n * @param decimalSeparator Oddělovač desetinných míst\r\n */\r\n removeFormatting(value: string, groupSeparator: string, decimalSeparator: string): string;\r\n\r\n /**\r\n * Testuje zda je řetězec url adresa.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o url adresu.\r\n */\r\n isUrl(value: string): boolean;\r\n\r\n /**\r\n * Funkce testuje zda je url parametrická\r\n * @param url Testovaná url\r\n * @returns {boolean} - Vrací true v případě, že jde o parametrickou url (obsahuje @ a nejedná se o email)\r\n */\r\n isParametricUrl(url: string): boolean;\r\n\r\n /**\r\n * Testuje zda je řetězec emailová adresa.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o emailovou adresu.\r\n */\r\n isEmail(value: string): boolean;\r\n\r\n /**\r\n * Testuje zda je řetězec parametrická emailová adresa s \"mailto\".\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o parametrickou emailovou adresu s \"mailto\".\r\n */\r\n isParametricMailto(value: string): boolean;\r\n\r\n /**\r\n * Testuje zda je řetězec cesta k souboru.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o cestu k souboru.\r\n */\r\n isFile(value: string): boolean;\r\n\r\n /**\r\n * Funkce testuje zda adresa obsahuje parametry\r\n * @param url Testovaná url\r\n * @returns {boolean} - Vrací true v případě, že adresa obsahuje parametry\r\n */\r\n hasParameters(url: string): boolean;\r\n\r\n /**\r\n * Projde celý řetězec a nahradí všechny výskyty hledaného řetězce za zadanou hodnotu.\r\n * @param text Vstupní řetězec\r\n * @param searchValue Hledaná hodnota nebo výraz\r\n * @param replaceValue Požadovaná hodnota pro nahrazení\r\n */\r\n replaceAll(text: string, searchValue: string | RegExp, replaceValue: string): string;\r\n\r\n /**\r\n * Funkce projde celý text a nahradí hledaný řetězec požadovanou hodnotou, ale pouze v případě, že před hledaným\r\n * řetězcem není zakázaný řetězec. V takovém případě vrací původní text.\r\n * @param text Vstupní text\r\n * @param searchedString Hledaný řetězec\r\n * @param value Požadovaná hodnota pro nahrazení\r\n * @param forbiddenString Zakázaný řetězec\r\n * @returns Vrací upravený vstupní řetězec nebo původní řetězec.\r\n */\r\n replaceAllWithLookahead(text: string, searchedString: string, value: string, forbiddenString: string): string;\r\n\r\n /**\r\n * Vrací instanci DefferedWindow, pro korektní\r\n * otevírání stránek z async callu v Safari\r\n */\r\n createDefferedWindow(): IDefferredWindow;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní pro práci s lokalizacemi. Toto rozhraní by se ve většině případů nemělo používat mimo modul core/i18n.\r\n */\r\nexport interface IBridgeLocalization {\r\n\r\n /**\r\n * Načte lokalizační data pro zadané klíče. Tato funkce by se v reactí části neměla volat přímo,\r\n * ale měl by se použít core modul i18n. Tato funkce je vhodná pouze pro případy,\r\n * kdy je potřeba lokalizovat text v nereactím kódu, který se ale nachází ve složkách pro react,\r\n * například editor WF, editor formulářů...\r\n * @param locKeys Lokalizační klíče, které se mají načíst.\r\n */\r\n loadLocalizationItems(locKeys: readonly string[]): Promise>;\r\n\r\n /**\r\n * Aplikuje parametry na lokalizovaný řetězec.\r\n * @param text Lokalizovaný text s případnými placeholdery (např. `@0`).\r\n * @param params Parametry, které budou dosazeny za placeholdery.\r\n */\r\n applyLocParams(text: string, params?: string[]): string;\r\n\r\n /**\r\n * Vrací kulturu ve standardu ISO 639-1, tedy dvoupísmenný formát, např. en, cs, ...\r\n */\r\n readonly actualCultureISO639_1: string;\r\n\r\n /**\r\n * Načte seznam podporovaných jazyků aplikace.\r\n */\r\n getSupportedLanguages(): Promise;\r\n\r\n /** Vrací informace o formátování čísla v aktuální kultuře. */\r\n getNumberFormat(): INumberFormatInfo;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní pro podporu frames modulu.\r\n */\r\nexport interface IBridgeFrames {\r\n\r\n /**\r\n * Funkce, která provede akci na daném konektoru.\r\n *\r\n * @param dataSourceKey Identifikátor konektoru.\r\n * @param actionId Identifikátor akce.\r\n * @param dataObjectId Identifikátor záznamu.\r\n */\r\n executeReactConnectorAction(dataSourceKey: string, actionId: ReactActionId, dataObjectId: string): void;\r\n\r\n /**\r\n * Funkce, která otevře detail záznamu na daném konektoru.\r\n *\r\n * @param dataSourceKey Identifikátor konektoru.\r\n * @param dataObjectId Identifikátor záznamu.\r\n */\r\n openReactConnectorDetail(dataSourceKey: string, dataObjectId: string): Promise;\r\n\r\n /**\r\n * Funkce, která otevře editační okno daného atributu v záznamu na daném konektoru.\r\n *\r\n * @param params Typ s informacemi potřebnými k otevření editačního okna.\r\n */\r\n openAttributeEditWindow(params: OpenEditWindowParams): Promise;\r\n\r\n /**\r\n * Funkce, která nastavuje režim výběru více záznamů konektoru.\r\n *\r\n * @param dataSourceKey Identifikátor konektoru.\r\n * @param multiselectMode Značí, zda je aktivní režim výběru více záznamů.\r\n */\r\n setReactConnectorMultiselectMode(dataSourceKey: string, multiselectMode: boolean): void;\r\n\r\n /**\r\n * Funkce, která vrací pole akcí z konektoru.\r\n *\r\n * @param dataSourceKey Identifikátor konektoru.\r\n */\r\n getReactConnectorRowActions(dataSourceKey: string): ReadonlyArray;\r\n\r\n /**\r\n * Funkce, která resetuje timeout na AutoRefresheru.\r\n * @param dataSourceKey Identifikátor konektoru.\r\n */\r\n resetRefreshTimeout(dataSourceKey: string): void;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní poskytující funkcionalitu specifickou pro hlavní menu.\r\n */\r\nexport interface IBridgeMainMenu {\r\n\r\n /**\r\n * Získá nastavení pro customizaci navigace v hlavním menu. Pokud není žádné nastavení zaregistrované, vrací undefined.\r\n */\r\n getMenuNavigationConfig(): IMenuNavigationConfig | undefined;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní poskytující funkcionalitu specifickou pro práci se soubory.\r\n */\r\nexport interface IBridgeFile {\r\n /**\r\n * Název souboru rozdělí na název a příponu\r\n * @param fileName název souboru k rozdělení\r\n */\r\n splitFileName(fileName: string): FileNameParts;\r\n\r\n /**\r\n * Uživatelsky přívětivě naformátuje velikost souboru v bytech\r\n * @param fileSize Velikost souboru v bytech\r\n * @param locale Kultura pro formátování čísla\r\n */\r\n prettyPrintFileSize(fileSize: number, locale?: string | string[]): string;\r\n}\r\n\r\n/**\r\n * Definuje rozhraní poskytující funkcionalitu specifickou pro práci s kryptografií.\r\n */\r\nexport interface IBridgeCrypto {\r\n /**\r\n * Metoda vrátí true, pokud je podpis prázdný nebo neexistuje\r\n * @param signatureInfo Informace o podpisu\r\n */\r\n isSignatureEmpty(signatureInfo: ISignatureInfo | null | undefined): boolean;\r\n\r\n /**\r\n * Metoda vrátí true, pokud podpis není prázdný\r\n * @param signatureInfo Informace o podpisu\r\n */\r\n isSigned(signatureInfo: ISignatureInfo | null | undefined): boolean;\r\n\r\n /**\r\n * Metoda vrátí true, pokud je záznam šifrován\r\n * @param cryptoInfo Informace o šifrování a podpisech\r\n */\r\n isEncrypted(cryptoInfo: ICryptographicInfo | null | undefined): boolean;\r\n\r\n /**\r\n * Metoda vrací true, pokud podpis není plně validní nebo se nedá korektně ověřit\r\n * @param signatureInfo Informace o podpisu\r\n * @param withCounterSignatures Rozlišuje, jestli se má zkontrolovat první nebo poslední podpis\r\n */\r\n hasSignatureWarning(signatureInfo: ISignatureInfo | null | undefined, withCounterSignatures?: boolean): boolean;\r\n}\r\n","import { IBridge } from \"./IBridge\";\r\n\r\n/**\r\n * Rozhraní proxy pro bridge modul, které umožňuje vyměnit implementaci bridge v runtime.\r\n * Určeno pouze pro neprodukční použití (unit testy, Storybook).\r\n *\r\n * Proxy používá jako výchozí implementaci \"mock\" modul bridge.\r\n */\r\nexport interface IProxyBridge extends IBridge {\r\n\r\n /**\r\n * Nastaví implementaci bridge, která je z proxy provolávaná.\r\n * Pokud byl ProxyBridge inicializován pomocí {@link IBridge.setStore}, pak provede inicializaci nastavené implementace pomocí volání {@link IBridge#setStore} a pokud\r\n * má nastavená implementace v {@link IBridge#module} definovanou ságu, spustí ji.\r\n *\r\n * Pokud se nastavuje nová implementace a předchozí implementace měla ságu, pak je předchozí\r\n * sága zrušena.\r\n *\r\n * @param bridgeImpl Implementace bridge k nastavení.\r\n */\r\n setBridgeImpl(bridgeImpl: IBridge): void;\r\n\r\n /**\r\n * Nastaví provolávanou implementaci bridge na výchozí hodnotu, kterou je \"mock\" modul.\r\n * Hodí se např. v unit testech pro návrat proxy bridge do původního stavu po nastavení\r\n * vlastní implementace pomocí {@link setBridgeImpl}.\r\n */\r\n resetToDefaultImpl(): void;\r\n}\r\n\r\nexport class IProxyBridge {\r\n private static _methods = [\"setBridgeImpl\", \"resetToDefaultImpl\"];\r\n // není třeba kontrolovat obsah rozhraní IBridge, protože proxy se využívá pouze v neprodukčním prostředí, kde je riziko zanedbatelné\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._methods.every(value => typeof instance[value] === \"function\");\r\n }\r\n}\r\n","export * from \"./actions\";\r\nexport * from \"./constants\";\r\nexport * from \"./IBridge\";\r\nexport * from \"./IProxyBridge\";\r\nexport * from \"./types\";\r\n","/**\r\n * Výčet typů klientů pro komunikaci s webovým API.\r\n * @includeToDoc\r\n */\r\nexport enum ClientType {\r\n menu = \"menu\",\r\n user = \"user\",\r\n notifications = \"notifications\",\r\n tasks = \"tasks\",\r\n authentication = \"authentication\",\r\n userSettings = \"userSettings\",\r\n localizations = \"localizations\",\r\n culture = \"culture\",\r\n dataReader = \"dataReader\",\r\n document = \"document\",\r\n dataEvents = \"dataEvents\",\r\n modelDescriptions = \"modelDescriptions\",\r\n context = \"context\",\r\n exportImport = \"exportimport\",\r\n}\r\n","import { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\nexport interface IExportImportClient {\r\n /**\r\n * Odešle data označena k exportu na službu\r\n * @param jsonData Data k exportu\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n */\r\n export(jsonData: readonly INode[], cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Odešle soubor, který má být použit pro import dat\r\n * @param docTempId Temp id dokumentu na DMS\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n */\r\n import(docTempId: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Zkontroluje předanou podmínku\r\n * @param condition Podmínka\r\n * @param objectName Název objektu, ke kterému se podmínka vztahuje\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n */\r\n checkCondition(condition: string, objectName: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Načte seznam názvů tříd\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n */\r\n getClassNames(cancellationToken?: CancellationToken): Promise;\r\n}\r\n\r\ninterface IGlobalNode {\r\n name: string;\r\n}\r\n\r\ninterface IObjectNode {\r\n isObject: true;\r\n className?: string;\r\n condition?: string;\r\n isPersistent?: boolean;\r\n children?: INode[];\r\n}\r\n\r\ninterface IOtherNode {\r\n isObject: false;\r\n}\r\n\r\nexport type INode = IGlobalNode & (IObjectNode | IOtherNode);\r\n","export * from \"./IExportImportClient\";\r\n","/**\r\n * Informace potřebné ke změně hesla.\r\n * @includeToDoc\r\n */\r\nexport interface IChangePasswordParams {\r\n /** Uživatelské jméno */\r\n userName: string;\r\n /** Staré heslo uživatele */\r\n oldPassword: string;\r\n /** Nové heslo uživatele */\r\n newPassword: string;\r\n /** Kód jazyka */\r\n language: string;\r\n}\r\n\r\n/**\r\n * Údaje nutné k přihlášení\r\n * @includeToDoc\r\n */\r\nexport interface ILoginCredentials {\r\n /** Uživatelské jméno */\r\n userName: string;\r\n /** Heslo uživatele */\r\n password: string;\r\n /** Kód jazyka */\r\n language: string;\r\n}\r\n\r\n/**\r\n * Parametry potřebné k provedení CheckLogon operace.\r\n * @includeToDoc\r\n */\r\nexport interface ICheckLoginParams {\r\n winAuth: boolean;\r\n sso: boolean;\r\n}\r\n\r\nexport type AuthManagerChangePasswordType = {\r\n status: boolean;\r\n error?: {\r\n code: string;\r\n message: string;\r\n };\r\n};\r\n\r\n/**\r\n * Výsledek přihlášení\r\n *\r\n * @includeToDoc\r\n */\r\nexport type LoginResultData = {\r\n /** Výsledek přihlášení */\r\n result: string;\r\n /** AuthId, které je po přihlášení vráceno */\r\n authId: string;\r\n};\r\n\r\n/**\r\n * Výsledek kontroly přihlášení\r\n *\r\n * @includeToDoc\r\n */\r\nexport type CheckLoginResultData = {\r\n /** Informace zda je uživatel přihlášený */\r\n isLoggedIn: boolean;\r\n /** AuthId, které je platné pro aktuálního uživatele */\r\n authId: string | null;\r\n};\r\n","import { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { CheckLoginResultData, IChangePasswordParams, ICheckLoginParams as ICheckLoginParams, ILoginCredentials, LoginResultData } from \"./types\";\r\n\r\n/**\r\n * Rozhraní definující metody zajišťující komunikaci se službami zaopatřující proces přihlášení.\r\n * Tyto metody zajišťují volání AS.\r\n * @includeToDoc\r\n */\r\nexport interface IAuthClient {\r\n\r\n /**\r\n * Přesměruje na stránku určenou k přihlašování.\r\n * @param queryString Volitelné další parametry k předání do url pro přihlašování. Řetězec musí být platným url řetězcem.\r\n * @param clientCode Kód klienta, kterým je identifikován v rámci autentizace na webové službě.\r\n */\r\n redirectToLoginPage(clientCode: string, queryString?: string): void;\r\n\r\n /**\r\n * Volá přihlášení.\r\n * @param credentials Údaje potřebné k přihlášení\r\n * @param cancellationToken Token k přerušení operace\r\n *\r\n * @throws {TwoFARequiredException} Vyvolá při požadavku na dvoufazovou autentizaci\r\n */\r\n login(credentials: ILoginCredentials, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Volá odhlášení.\r\n * @param clientCode Kód klienta, kterým je identifikován v rámci autentizace na webové službě.\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n logout(clientCode: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Volá změnu hesla.\r\n * @param params Údaje potřebné ke změne hesla\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n changeExpiredPassword(params: IChangePasswordParams, cancellationToken?: CancellationToken): Promise;\r\n /**\r\n * Přihlásí se jako anonymní uživatel.\r\n * @param language Jazyk pro přihlášení\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n loginAnonymously(language: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Uvěřuje stav přihlášení aktuálního uživatele.\r\n * @param params Parametry operace kontroly\r\n * @param cancellationToken Token k přerušení operace\r\n */\r\n checkLogin(params: ICheckLoginParams, cancellationToken?: CancellationToken): Promise;\r\n}\r\n\r\nexport class IAuthClient {\r\n private static _methods: Array = [\r\n \"redirectToLoginPage\",\r\n \"login\",\r\n \"logout\",\r\n \"loginAnonymously\",\r\n \"checkLogin\",\r\n ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","export * from \"./IAuthClient\";\r\nexport * from \"./types\";\r\n","import { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\nexport interface IContextClient {\r\n /**\r\n * Založení kontextu\r\n *\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n * @returns ID vytvořeného kontextu\r\n */\r\n createContext(cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Ukončení kontextu a potvrzení kontextu\r\n *\r\n * @param contextId identifikátor kontextu\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n * @returns Informaci o úspěšném ukončení kontextu\r\n */\r\n commitContext(contextId: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Ukončí kontext zahozením změn\r\n *\r\n * @param contextId identifikátor kontextu\r\n * @param cancellationToken Umožňuje stornovat běžící dotaz\r\n * @returns Informaci o úspěšném ukončení kontextu\r\n */\r\n rollbackContext(contextId: string, cancellationToken?: CancellationToken): Promise;\r\n}\r\n","export * from \"./IContextClient\";\r\n","import { ILanguage, ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken } from \"../../../../../Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Umožňuje načítat informace o jazycích a kulturách a nastavovat jazyk, který má být použitý\r\n * @includeToDoc\r\n */\r\nexport interface ICultureClient {\r\n /**\r\n * Načte všechny dostupné jazyky a kultury pro aplikaci\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getSupportedLanguages(cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Získá jazyk a kulturu, které jsou nastavené pro aktuálního uživatele\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getCurrentLanguage(cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Nastaví jazyk, který se má uplatňovat pro aktuálního uživatele\r\n * @param code Kód jazyka v TescoSW formátu\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n setLanguage(code: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Uloží jazyk do profilu aktuálního uživatele\r\n * @param code Kód jazyka v TescoSW formátu\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n saveLanguageProfile(code: string, cancellationToken: CancellationToken): Promise;\r\n\r\n /**\r\n * Načte jazyk z profilu aktuálního uživatele\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n loadLanguageProfile(cancellationToken: CancellationToken): Promise;\r\n}\r\n","export * from \"./ICultureClient\";\r\n","import { IDataEvent } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Listener pro DataEvent\r\n * @includeToDoc\r\n */\r\nexport type DataEventListener = (dataEvent: IDataEvent) => void;\r\n\r\n/**\r\n * Komunikační klient, který umožňuje vytvořit trvalý obousměrný komunikační kanál s webovou službou.\r\n * Konzument si může registrovat poslouchání různým typům zpráv.\r\n * Webová služba mu pak může v reálném čase tyto zprávy posílat.\r\n * @includeToDoc\r\n */\r\nexport interface IDataEventsClient {\r\n /**\r\n * Registrace naslouchání obecnému DataEventu\r\n * @param source Pojmenování zdroje zpráv (pro sytémové zprávy je to \"OW\", pro ostatní podle jejich nastavení)\r\n * @param type Typ zprávy\r\n * @param subType Volitelný podtyp zprávy - může zpřesňovat naslouchání jen menší množině zpráv (\"*\" značí naslouchání všemu)\r\n * @param listener Listener volaný při obdržení zprávy\r\n */\r\n subscribeDataEvent(source: string, type: string, subType: string, listener: DataEventListener): void;\r\n /**\r\n * Odregistrování naslouchání obecnému DataEventu\r\n * @param source Pojmenování zdroje zpráv (pro sytémové zprávy je to \"OW\", pro ostatní podle jejich nastavení)\r\n * @param type Typ zprávy\r\n * @param subType Volitelný podtyp zprávy - může zpřesňovat naslouchání jen menší množině zpráv (\"*\" značí naslouchání všemu)\r\n * @param listener Listener použitý při registraci. Pokud není vyplněn, tak jsou odregistrovany vsechny listenery pro daný DataEvent\r\n */\r\n unsubscribeDataEvent(source: string, type: string, subType: string, listener?: DataEventListener): void;\r\n}\r\n","export * from \"./IDataEventsClient\";\r\n","import { IDocumentMetadata, IDocumentVersionInfo } from \"@multiweb/types/contracts\";\r\nimport { RequestContext } from \"../../../RequestContext\";\r\n\r\n/**\r\n * Komunikační klient umožňující načítání informací o dokumentech uložených v aplikaci\r\n * @includeToDoc\r\n */\r\nexport interface IDocumentClient {\r\n /**\r\n * Získá název souboru\r\n * @param instanceID Instance objektu, ze kterého chceme číst název souboru\r\n * @param attributeName Název atributu s dokumentem\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getDocumentName(instanceID: string, attributeName: string, requestContext?: RequestContext): Promise;\r\n /**\r\n * Získá hash souboru\r\n * @param instanceID Instance objektu, ve kterém je umístěn soubor\r\n * @param attributeName Název atributu s dokumentem\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getDocumentHashCode(instanceID: string, attributeName: string, requestContext?: RequestContext): Promise;\r\n /**\r\n * Získá metadata souboru\r\n * @param instanceID Instance objektu, ve kterém je umístěn soubor\r\n * @param attributeName Název atributu s dokumentem\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getDocumentMetadata(instanceID: string, attributeName: string, requestContext?: RequestContext): Promise;\r\n /**\r\n * Získá seznam verzí dokumentu\r\n * @param instanceID Instance objektu, ve kterém je umístěn soubor\r\n * @param attributeName Název atributu s dokumentem\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getDocumentVersions(instanceID: string, attributeName: string, requestContext?: RequestContext): Promise;\r\n}\r\n","export * from \"./IDocumentClient\";\r\n","import { ILocalizationItem } from \"@multiweb/types/contracts/localizations\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Komunikační klient poskytuje přístup k lokalizovaným překladům textů\r\n * @includeToDoc\r\n */\r\nexport interface ILocalizationClient {\r\n\r\n /**\r\n * Získá lokalizované hodnoty pro požadované lokalizační klíče\r\n * @param language Jazyk lokalizace (např. 'EN' nebo 'CZ')\r\n * @param locKeys Pole lokalizačních klíčů obsahujících jak oblast, tak číslo (např. XX-12345)\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n * @returns Pole lokalizovaných hodnot\r\n */\r\n getLocalizations(language: string, locKeys: readonly string[], cancellationToken?: CancellationToken): Promise;\r\n}\r\n","export * from \"./ILocalizationClient\";\r\n","import { RequestContext } from \"./RequestContext\";\r\n\r\n/**\r\n * Request kontext bez transakčního kontextu. Určeno pro požadavky, které pracují s rolemi, ale transakční kontext nepodporují.\r\n * @includeToDoc\r\n */\r\nexport type RequestContextWithoutTransactionContextId = Omit;\r\n","import { IMenuData } from \"@multiweb/types/contracts\";\r\nimport { RequestContextWithoutTransactionContextId } from \"../../../RequestContextWithoutTransactionContextId\";\r\n\r\n/**\r\n * Klient poskytující přístup k datům pro hlavní menu s volitelnou filtrací položek na základě aktivních rolí uživatele.\r\n * @includeToDoc\r\n */\r\nexport interface IMenuClient {\r\n /**\r\n * Získá datovou definici strukutry a položek hlavního menu aplikace na základě aktivních rolí uživatele.\r\n * Pokud jsou aktivní role uživatele zadány, vrátí položky, na které má uživatel právo. Pokud nejsou, vrací všechny položky menu.\r\n *\r\n * @param requestContext Viz {@link RequestContextWithoutTransactionContextId}\r\n */\r\n getMenuItems(requestContext?: RequestContextWithoutTransactionContextId): Promise;\r\n}\r\n","export * from \"./IMenuClient\";\r\n","import { IBaseOWClassDescription, IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Klient poskytující přístup k informacím o modelu\r\n * @includeToDoc\r\n */\r\nexport interface IModelDescriptionsClient {\r\n\r\n /**\r\n * Získá informace o třídě\r\n * @param className Třída, pro kterou se informace získávají\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getClassInfo(className: string, cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Získá veřejné informace o atributu\r\n * @param className Třída atributu\r\n * @param attributes Pole atributů, pro které se informace získávají\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getAttributesPublicInfo(className: string, attributes: ReadonlyArray, cancellationToken?: CancellationToken): Promise>;\r\n}\r\n","export * from \"./IModelDescriptionsClient\";\r\n","import { INotificationGroupType, INotificationItem } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\nexport type NotificationListener = () => Promise;\r\n\r\n/**\r\n * Umožňuje manipulovat s daty (čtení, editace) notifikací na rozhraní webové služby\r\n * @includeToDoc\r\n */\r\nexport interface INotificationClient {\r\n /**\r\n * Načte všechny dostupné typy notifikací spolu s dalšími konfiguračními informacemi\r\n * @param cancellationToken Umožňuje zrušit stávající dotaz\r\n * @returns Kolekce typů notifikací\r\n */\r\n getNotificationGroups(cancellationToken?: CancellationToken): Promise[]>;\r\n /**\r\n * Zjistí, zda v dané skupině notifikací existuje nějaká nepřečtená\r\n * @param groupName Název skupiny notifikací\r\n * @param cancellationToken Umožňuje zrušit stávající dotaz\r\n */\r\n existsUnreadNotification(groupName: string, cancellationToken?: CancellationToken): Promise;\r\n /**\r\n * Načte všechny notifikace určité skupiny\r\n * @param groupName Název skupiny notifikací\r\n * @param onlyUnread Zda se mají načítat pouze nepřečtené notifikace\r\n * @param startIndex Od jaké pozice se mají načítat data\r\n * @param itemsCount Kolik položek se má načíst\r\n * @param cancellationToken Umožňuje zrušit stávající dotaz\r\n */\r\n getNotificationItems(groupName: string, onlyUnread: boolean, startIndex: number, itemsCount: number, cancellationToken?: CancellationToken): Promise[]>;\r\n /**\r\n * Označí notifikaci jako přečtenou nebo nepřečtenou\r\n * @param notificationId Identifikátor notifikace\r\n * @param markAsRead Zda se má označit jako přečtená\r\n * @param cancellationToken Umožňuje zrušit stávající dotaz\r\n */\r\n setNotificationAsRead(notificationId: number, markAsRead: boolean, cancellationToken?: CancellationToken): Promise;\r\n /**\r\n * Označí všechny notifikace dané skupiny jako přečtené\r\n * @param notificationGroupId Identifikátor skupiny\r\n * @param cancellationToken Umožňuje zrušit stávající dotaz\r\n */\r\n setGroupNotificationsAsRead(notificationGroupId: string, cancellationToken?: CancellationToken): Promise;\r\n /**\r\n * Registruje listener pro naslouchání změnám položek notifikací (vznik, změna, smazání).\r\n * @param listener Listener volaný při změně notifikací\r\n */\r\n subscribeNotificationChange(listener: NotificationListener): Promise;\r\n /**\r\n * Odregistruje listener pro naslouchání změnám položek notifikací (vznik, změna, smazání).\r\n * @param listener Listener volaný při změně notifikací\r\n */\r\n unsubscribeNotificationChange(listener: NotificationListener): Promise;\r\n}\r\n","export * from \"./INotificationClient\";\r\n","import { ITaskResultDetail } from \"@multiweb/types/contracts\";\r\nimport { RequestContext } from \"../../../RequestContext\";\r\n\r\n/**\r\n * Umožňuje pracovat s daty dlouhotrvajících operací\r\n * @includeToDoc\r\n */\r\nexport interface ITaskClient {\r\n /**\r\n * Získá detailní informace o dokončeném úkolu.\r\n * @param resultId Kód záznamu\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n getResultDetails(resultId: string, requestContext?: RequestContext): Promise;\r\n}\r\n","export * from \"./ITaskClient\";\r\n","import { IUser } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\n\r\n/**\r\n * Klient poskytující přístup k informacím o aktuálním přihlášeném uživateli\r\n * @includeToDoc\r\n */\r\nexport interface IUserClient {\r\n /**\r\n * Získá základní informace o aktuálně přihlášeném uživateli\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getCurrentUserInfo(cancellationToken?: CancellationToken): Promise;\r\n}\r\n","export * from \"./IUserClient\";\r\n","import { IAssignedCompetence, IAssignedRole } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Role s kompetencemi, která obsahuje informaci o aktivnosti.\r\n */\r\nexport interface IRole extends IAssignedRole {\r\n /**\r\n * Zda je role aktivní\r\n */\r\n active: boolean;\r\n\r\n /**\r\n * Seznam kompetenčních okruhů přiřazených k této roli\r\n */\r\n competenceRanges?: ICompetence[];\r\n}\r\n\r\n/**\r\n * Kompetenční okruh spolu s jeho aktivností.\r\n */\r\nexport interface ICompetence extends IAssignedCompetence {\r\n /**\r\n * Zda je okruh aktivní\r\n */\r\n active: boolean;\r\n}\r\n\r\n/**\r\n * Asociativní kolekce všech rolí přidělených uživateli, včetně jejich aktivností\r\n * @param roleID klíčem je id dané role\r\n */\r\nexport interface IRoles {\r\n [roleID: string]: IRole;\r\n}\r\n","import { IAssignedRoles, IOpenedFormHistoryInfo, IUserRoleActivity } from \"@multiweb/types/contracts\";\r\nimport { RequestContext } from \"@multiweb/types/multiweb\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { IRole } from \"OW.Remoting/Remoting/IRolesAndICompetences\";\r\n\r\n/**\r\n * Klient poskytující přístup uloženými předvolbami uživateli\r\n * Týká se hlavně dočasně uložených informací\r\n * Umožňuje práci s profilem nebo historií formulářů\r\n * @includeToDoc\r\n */\r\nexport interface IUserSettingsClient {\r\n\r\n /**\r\n * Získá seznam posledních použitých formulářů přihlášeného uživatele\r\n * @param roles Role přidělené uživateli\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getOpenedFormsHistory(requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Uloží poslední otevřené formuláře\r\n * @param history Historie k uložení\r\n * @param roles Role přidělené uživateli\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n *\r\n */\r\n saveOpenedFormsHistory(history: readonly IOpenedFormHistoryInfo[], requestContext?: RequestContext): Promise;\r\n\r\n /**\r\n * Ziská přidělené role bez aktivnosti\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getAssignedRoles(cancellationToken?: CancellationToken): Promise;\r\n\r\n /**\r\n * Uloží zaslané role v parametru\r\n * @param roles Role, které se mají uložit\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n saveActiveRoles(roles: readonly IUserRoleActivity[], cancellationToken: CancellationToken): Promise;\r\n\r\n /**\r\n * Získá uložené role\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n getActiveRoles(cancellationToken: CancellationToken): Promise;\r\n\r\n /**\r\n * Nastaví aktivní okruhy.\r\n * @param userRoles Role uživatele\r\n */\r\n setActiveUserRoleRanges(userRoles: IRole[]): Promise;\r\n}\r\n","export * from \"./IUserSettingsClient\";\r\n","import { IExportImportClient } from \"@multiweb/clients/exportImport\";\r\nimport { IAuthClient } from \"./auth\";\r\nimport { ClientType } from \"./ClientType\";\r\nimport { IContextClient } from \"./context\";\r\nimport { ICultureClient } from \"./culture\";\r\nimport { IDataEventsClient } from \"./dataEvents\";\r\nimport { IDataReaderClient } from \"./dataReader\";\r\nimport { IDocumentClient } from \"./documents\";\r\nimport { ILocalizationClient } from \"./localization\";\r\nimport { IMenuClient } from \"./menu\";\r\nimport { IModelDescriptionsClient } from \"./modelDescriptions\";\r\nimport { INotificationClient } from \"./notifications\";\r\nimport { ITaskClient } from \"./tasks\";\r\nimport { IUserClient } from \"./user\";\r\nimport { IUserSettingsClient } from \"./userSettings\";\r\n\r\n/**\r\n * Tovární funkce vracející instanci klienta.\r\n * @includeToDoc\r\n */\r\nexport type FactoryFunction = () => T;\r\n\r\ntype ClientTypeMap = {\r\n [ClientType.menu]: IMenuClient;\r\n [ClientType.user]: IUserClient;\r\n [ClientType.notifications]: INotificationClient;\r\n [ClientType.tasks]: ITaskClient;\r\n [ClientType.authentication]: IAuthClient;\r\n [ClientType.userSettings]: IUserSettingsClient;\r\n [ClientType.localizations]: ILocalizationClient;\r\n [ClientType.culture]: ICultureClient;\r\n [ClientType.dataReader]: IDataReaderClient;\r\n [ClientType.document]: IDocumentClient;\r\n [ClientType.dataEvents]: IDataEventsClient;\r\n [ClientType.modelDescriptions]: IModelDescriptionsClient;\r\n [ClientType.context]: IContextClient;\r\n [ClientType.exportImport]: IExportImportClient;\r\n};\r\n\r\n/**\r\n * Továrna pro vytváření klientů pro komunikaci s webovým API.\r\n * @includeToDoc\r\n */\r\nexport interface IClientFactory {\r\n /**\r\n * Zaregistruje implementaci komunikačního klienta.\r\n * @param clientType Typ komunikačního klienta\r\n * @param factory Tovární funkce vracející instanci klienta\r\n */\r\n register(clientType: K, factory: FactoryFunction): void;\r\n register(clientType: string | ClientType, factory: FactoryFunction): void;\r\n\r\n /**\r\n * Získá instanci komunikačního klienta pro zadaný typ.\r\n * @param clientType Typ komunikačního klienta\r\n * @returns Instance komunikačního klienta\r\n */\r\n get(clientType: K): ClientTypeMap[K];\r\n get(clientType: string | ClientType): unknown;\r\n}\r\n\r\nexport class IClientFactory {\r\n private static _methods: (keyof IClientFactory)[] = [\"register\", \"get\"];\r\n private static _properties: (keyof IClientFactory)[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","/**\r\n * Zjistí jestli url a funkce obsahují pouze statické metody\r\n * @param url Šablona url adresy\r\n * @param functions Pole názvů funkcí\r\n*/\r\nexport const canCallOnlyStaticMethods = (url: string, functions: ReadonlyArray): boolean => {\r\n for (let i = 0; i < url.length - 1; i++) {\r\n if (url[i] === \"@\") {\r\n if (url[i + 1] !== \"@\") {\r\n return false;\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n if (functions.some(f => !f.includes(\".\"))) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n","/**\r\n * Rozhraní pro komponentu, která podporuje auto refresh\r\n * @includeToDoc\r\n * @generateInstanceClass\r\n */\r\nexport interface IHasAutorefresh {\r\n /** Resetuje timeout pro auto refresh. */\r\n resetRefreshTimeout(): void;\r\n}\r\n\r\nexport class IHasAutorefresh {\r\n private static _methods = [\"resetRefreshTimeout\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","/**\r\n * Ověří zda platí zadaná podmínka.\r\n * Zápis přes arrow funkci [není možný]{@link https://github.com/microsoft/TypeScript/issues/34523}.\r\n * @param condition Podmínka.\r\n * @param message Chybová hláška.\r\n * @throws Vyhazuje chybu v případě nepravdivé podmínky.\r\n */\r\nexport function invariant(condition: any, message: string): asserts condition {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n}\r\n","import { Action } from \"redux\";\r\n\r\n/**\r\n * Typ výsledkové akce, která může skončit úspěchem nebo chybou. Slouží jako základ pro konkrétní výsledkové akce.\r\n *\r\n * @template T Typ akce. Slouží pro rozlišení různých akcí. Běžně se získává z řetězcové konstanty pomocí typeof.\r\n * @template R Typ pro obsah akce v případě úspěchu.\r\n * @template E Typ pro obsah akce v případě chyby.\r\n *\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport interface IResultAction extends Action {\r\n readonly payload: R | E;\r\n readonly error: boolean;\r\n /** Meta v tomto případě slouží pouze pro účely TypeScript, aby zvládl odvodit typy R a E v pomocných typech. */\r\n readonly meta?: {\r\n readonly genericTypes?: {\r\n readonly resultType: R;\r\n readonly errorType: E;\r\n };\r\n };\r\n}\r\n\r\n/** Pomocný typ pro odvození typu generika T (typ akce) z typu IResultAction. */\r\ntype ExtractActionType = A extends IResultAction ? T : never;\r\n/** Pomocný typ pro odvození typu generika R (typ obsahu akce při úspěchu) z typu IResultAction. */\r\ntype ExtractResultType = A extends IResultAction ? R : never;\r\n/** Pomocný typ pro odvození typu generika E (typ obsahu akce při chybě) z typu IResultAction. */\r\ntype ExtractErrorType = A extends IResultAction ? E : never;\r\n\r\n/**\r\n * Typ výsledkové akce zúžený na úspěch.\r\n *\r\n * @template A Typ výsledkové akce, který se zúží na úspěch.\r\n *\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport interface IResultActionSuccess extends Action> {\r\n readonly payload: ExtractResultType;\r\n readonly error: false;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport class IResultActionSuccess {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.type === \"string\" && instance.error === false;\r\n }\r\n}\r\n\r\n/**\r\n * Typ výsledkové akce zúžený na chybu.\r\n *\r\n * @template A Typ výsledkové akce, který se zúží na chybu.\r\n *\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport interface IResultActionError extends Action> {\r\n readonly payload: ExtractErrorType;\r\n readonly error: true;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport class IResultActionError {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.type === \"string\" && instance.error === true;\r\n }\r\n}\r\n","/**\r\n * Tento soubor slouží jako workaround pro zprovoznění importů z 'redux-saga/effects'. Při tomto importu se aplikace snaží získat\r\n * separátní balíček pro efekty. Ten ale neexistuje, protože redux-saga poskytuje jeden výsledný UMD balíček, který v sobě má i effects.\r\n * Typings pro redux-saga ale nereflektují skutečnost jednoho UMD balíčku, proto nelze v aplikaci importovat 'effects' bez použití ts-ignore.\r\n *\r\n * Tento balíček společně s nastavením aliasů v main.tsconfig.json pomocí paths umožňuje přesměrovat importy, takže v aplikaci můžeme importovat\r\n * efekty klasickým způsobem, který odpovídá typingům.\r\n */\r\n\r\n// @ts-ignore\r\nimport {effects} from \"redux-saga\";\r\n\r\nexport const effectTypes = effects.effectTypes;\r\nexport const take = effects.take;\r\nexport const takeMaybe = effects.takeMaybe;\r\nexport const put = effects.put;\r\nexport const putResolve = effects.putResolve;\r\nexport const all = effects.all;\r\nexport const race = effects.race;\r\nexport const call = effects.call;\r\nexport const apply = effects.apply;\r\nexport const cps = effects.cps;\r\nexport const fork = effects.fork;\r\nexport const spawn = effects.spawn;\r\nexport const join = effects.join;\r\nexport const cancel = effects.cancel;\r\nexport const select = effects.select;\r\nexport const actionChannel = effects.actionChannel;\r\nexport const cancelled = effects.cancelled;\r\nexport const flush = effects.flush;\r\nexport const getContext = effects.getContext;\r\nexport const setContext = effects.setContext;\r\nexport const delay = effects.delay;\r\nexport const debounce = effects.debounce;\r\nexport const retry = effects.retry;\r\nexport const takeEvery = effects.takeEvery;\r\nexport const takeLatest = effects.takeLatest;\r\nexport const takeLeading = effects.takeLeading;\r\n","import { Action } from \"redux\";\r\nimport { fork, take } from \"redux-saga/effects\";\r\n\r\nimport { SagaWithReturnType } from \"../types/react\";\r\nimport { IResultAction, IResultActionError, IResultActionSuccess } from \"./types\";\r\n\r\ntype anyArray = any[];\r\n\r\n/**\r\n * Pomocná funkce pro tvorbu výsledkových akcí. Zajišťuje typovou kontrolu nad možnými kombinacemi chybového a úspěšného\r\n * obsahu akce.\r\n *\r\n * @param type Typ akce, která se má vytvořit.\r\n * @param successPayload Obsah pro akci v případě, že akce byla úspěšná.\r\n * @param errorPayload Obsah pro akci v případě, že akce skončila chybou.\r\n * @throws Vyhazuje chybu v případě, že není zadán žádný obsah, nebo když je najednou zadán úspěšný i chybový obsah.\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport const createResultAction = (type: T, successPayload?: R, errorPayload?: E): IResultAction => {\r\n if (successPayload !== undefined && errorPayload === undefined) {\r\n return {\r\n type,\r\n payload: successPayload,\r\n error: false,\r\n };\r\n } else if (errorPayload !== undefined && successPayload === undefined) {\r\n return {\r\n type,\r\n payload: errorPayload,\r\n error: true,\r\n };\r\n } else {\r\n throw new Error(\"[Redux] Invalid parameters for createResultAction function. You must provide result or error.\");\r\n }\r\n};\r\n\r\n/**\r\n * Zkontroluje, zda je zadaná akce výsledkovou akcí daného typu, která skončila úspěchem.\r\n * Funguje jako TypeGuard.\r\n * @param action Akce ke kontrole.\r\n * @param type Typ výsledkové akce, kterou hledáme (hodnota typu).\r\n * @template A Typ výsledkové akce, kterou hledáme (interface).\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport const isSuccessAction = (action: Action, type: string): action is IResultActionSuccess => {\r\n return action.type === type && action instanceof IResultActionSuccess;\r\n};\r\n\r\n/**\r\n * Zkontroluje, zda je zadaná akce výsledkovou akcí daného typu, která skončila chybou.\r\n * Funguje jako TypeGuard.\r\n * @param action Akce ke kontrole.\r\n * @param type Typ výsledkové akce, kterou hledáme (hodnota typu).\r\n * @template A Typ výsledkové akce, kterou hledáme (interface).\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport const isErrorAction = (action: Action, type: string): action is IResultActionError => {\r\n return action.type === type && action instanceof IResultActionError;\r\n};\r\n/**\r\n * Pomocná sága pro odchytávání výsledkových akcí.\r\n * @param pattern Typ akce, na kterou se čeká.\r\n * @param successSaga Sága, která se spustí, pokud byla akce úspěšná. Jako parametr dostane odchycenou akci.\r\n * @param errorSaga Sága, která se spustí, pokud akce skončila chybou. Jako parametr dostane odchycenou akci.\r\n * @param args Dodatečné parametry pro spouštěné ságy. Parametry jsou společné pro úspěšnou i chybovou ságu.\r\n * @throws Vyhazuje chybu, pokud odchycená akce není výsledkovou akcí.\r\n * @see Detaily použití v conventions/redux/actions.md.\r\n */\r\nexport const takeResultAction: SagaWithReturnType<[string, SagaWithReturnType<[...anyArray]>, SagaWithReturnType<[...anyArray]>, ...anyArray]> = function* takeResultAction(pattern, successSaga, errorSaga, ...args) {\r\n const action: Action = yield take(pattern);\r\n if (action instanceof IResultActionSuccess) {\r\n yield fork(successSaga, action, ...args);\r\n } else if (action instanceof IResultActionError) {\r\n yield fork(errorSaga, action, ...args);\r\n } else {\r\n throw new Error(\"[Saga helper takeResultAction] Action specified by pattern <\" + pattern + \"> is not a result action.\");\r\n }\r\n};\r\n","export { IResultAction, IResultActionError, IResultActionSuccess } from \"./types\";\r\nexport { createResultAction, isErrorAction, isSuccessAction, takeResultAction } from \"./utils\";\r\n","import {\r\n FAVORITE_FORM_UPDATED,\r\n FAVORITE_FORMS_LOADED,\r\n FORM_CLOSED,\r\n FORM_CUSTOM_TITLE_CHANGED,\r\n FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED,\r\n FORM_OPENED,\r\n FORM_OVERLAY_CLICKED,\r\n FORM_PROFILE_CHANGED,\r\n FORM_SWITCHED,\r\n HISTORY_FORMS_INFO_UPDATED,\r\n IFavoriteFormsLoadedAction,\r\n IFavoriteFormUpdatedAction,\r\n IFormClosedAction,\r\n IFormCustomTitleChangedAction,\r\n IFormItemInstanceCloseRestrictionsUpdatedAction,\r\n IFormOpenedAction,\r\n IFormOverlayClickedAction,\r\n IFormProfileChangedAction,\r\n IFormSwitchedAction,\r\n IHistoryFormsInfoUpdatedAction,\r\n ILocalizationItemsLoadedAction,\r\n ILocalStorageKeyLoadedAction,\r\n IMenuItemCustomActionProcessedAction,\r\n IMenuItemsLoadedAction,\r\n INotificationGroupsLoadedAction,\r\n INotificationItemsLoadedAction,\r\n ITaskResultDetailLoadedAction,\r\n IUserInfoLoadedAction,\r\n LOCAL_STORAGE_KEY_LOADED,\r\n LOCALIZATION_ITEMS_LOADED,\r\n MENU_ITEM_CUSTOM_ACTION_PROCESSED,\r\n MENU_ITEMS_LOADED,\r\n MenuItemCustomActionErrorPayload,\r\n NOTIFICATION_GROUPS_LOADED,\r\n NOTIFICATION_ITEMS_LOADED,\r\n TASK_RESULT_DETAIL_LOADED,\r\n USER_INFO_LOADED,\r\n UserInfo,\r\n} from \"@multiweb/reactCore/bridge/api\";\r\nimport { IFormProfile, ILocalizationItem, IMenuData, INotificationGroup, INotificationItem, IOpenedFormHistoryInfo, ITaskResultDetail, NotificationGroupId } from \"@multiweb/types/contracts\";\r\nimport { IMainMenuItemActionResult, IOpenedFormInfo, ProfileChangeType } from \"@multiweb/types/multiweb\";\r\n// Import createResultAction nemůže být v bridge modulu z @multiweb/types/react kvůli cyklickým závislostem.\r\nimport { createResultAction } from \"../../../resultActions\";\r\n\r\n/**\r\n * Tento soubor poskytuje action creatory pro akce, jejichž typy jsou sice veřejné,\r\n * ale které by se měly vytvářet pouze v bridge modulu. Proto nejsou tyto action\r\n * creatory součástí bridge api.\r\n */\r\n\r\n/**\r\n * Akce indikující načtení oblíbených formulářů.\r\n * @param favoriteFormCodes Kódy oblíbených formulářů.\r\n */\r\nexport const createFavoriteFormsLoadedAction = (favoriteForms: readonly { menuId: number; formCode: string; profileId?: number }[]): IFavoriteFormsLoadedAction => ({\r\n type: FAVORITE_FORMS_LOADED,\r\n payload: {\r\n favoriteForms,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující změnu v historii otevřených formulářů.\r\n * @param historyFormsInfo Nová data historie. Nejnovější záznam v historii je na konci pole.\r\n */\r\nexport const createHistoryFormsInfoUpdatedAction = (historyFormsInfo: ReadonlyArray): IHistoryFormsInfoUpdatedAction => ({\r\n type: HISTORY_FORMS_INFO_UPDATED,\r\n payload: {\r\n historyFormsInfo,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení lokalizačních položek proběhlo v pořádku.\r\n * @param localizationItems Načtené lokalizační položky.\r\n * @param key Klíč pro jednoznačnou identifikaci požadavku. Umožňuje rozlišit více akcí tohoto typu z různých zdrojů.\r\n */\r\nexport const createLocalizationItemsLoadedAction = (localizationItems: ReadonlyMap, key: string): ILocalizationItemsLoadedAction => ({\r\n type: LOCALIZATION_ITEMS_LOADED,\r\n payload: {\r\n key,\r\n localizationItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení hodnoty z local storage proběhlo v pořádku.\r\n * @param key Klíč.\r\n * @param value Hodnota která byla načtena.\r\n */\r\nexport const createLocalStorageKeyLoadedAction = (key: string, value: string): ILocalStorageKeyLoadedAction => ({\r\n type: LOCAL_STORAGE_KEY_LOADED,\r\n payload: {\r\n key,\r\n value,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující dokončené zpracování custom akce pro položku menu.\r\n * @param menuItemActionResult Výsledek zpracování, pokud je úspěšné.\r\n * @param error Chybový objekt, pokud se zpracování nezdařilo.\r\n */\r\nexport const createMenuItemCustomActionProcessedAction = (menuItemActionResult?: IMainMenuItemActionResult, error?: MenuItemCustomActionErrorPayload): IMenuItemCustomActionProcessedAction =>\r\n createResultAction(MENU_ITEM_CUSTOM_ACTION_PROCESSED, menuItemActionResult, error);\r\n\r\n/**\r\n * Akce indikující, že načtení dat položek menu proběhlo v pořádku.\r\n *\r\n * @param menuItems Načtené položky pro menu.\r\n */\r\nexport const createMenuItemsLoadedAction = (menuItems: IMenuData): IMenuItemsLoadedAction => ({\r\n type: MENU_ITEMS_LOADED,\r\n payload: {\r\n menuItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení notifikačních skupin proběhlo v pořádku.\r\n * @param notificationGroups Načtené notifikační skupiny\r\n */\r\nexport const createNotificationGroupsLoadedAction = (notificationGroups: ReadonlyArray): INotificationGroupsLoadedAction => ({\r\n type: NOTIFICATION_GROUPS_LOADED,\r\n payload: {\r\n notificationGroups,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení notifikačních položek proběhlo v pořádku.\r\n * @param notificationGroupId Identifkátor notifikační skupiny notifikačních položek\r\n * @param notificationItems Načtené notifikační položky\r\n */\r\nexport const createNotificationItemsLoadedAction = (notificationGroupId: NotificationGroupId, notificationItems: ReadonlyArray): INotificationItemsLoadedAction => ({\r\n type: NOTIFICATION_ITEMS_LOADED,\r\n payload: {\r\n notificationGroupId,\r\n notificationItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení detailu o výsledku úlohy proběhlo v pořádku.\r\n * @param taskResultDetail Detail o výsledku úlohy.\r\n */\r\nexport const createTaskResultDetailsLoadedAction = (taskResultDetail: ITaskResultDetail): ITaskResultDetailLoadedAction => ({\r\n type: TASK_RESULT_DETAIL_LOADED,\r\n payload: {\r\n taskResultDetail,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení dat o přihlášeném uživateli proběhlo v pořádku.\r\n *\r\n * @param userInfo Objekt obsahující informace o uživateli.\r\n */\r\nexport const createUserInfoLoadedAction = (userInfo: UserInfo): IUserInfoLoadedAction => ({\r\n type: USER_INFO_LOADED,\r\n payload: {\r\n userInfo,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující změnu oblíbenosti formuláře.\r\n * @param menuId ID položky menu.\r\n * @param formCode Kód změněného formuláře.\r\n * @param isFavorite True pokud byl formulář přidán do oblíbených, false pokud byl odebrán.\r\n */\r\nexport const createFavoriteFormUpdatedAction = (menuId: number, formCode: string, isFavorite: boolean, profile?: IFormProfile): IFavoriteFormUpdatedAction => ({\r\n type: FAVORITE_FORM_UPDATED,\r\n payload: {\r\n menuId,\r\n formCode,\r\n isFavorite,\r\n profile,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující změnu custom title ve formuláři.\r\n * @param formInstanceId Id otevřeného formuláře, u kterého se změnil custom title.\r\n * @param customTitle Nová hodnota custom title.\r\n */\r\nexport const createFormCustomTitleChangedAction = (formInstanceId: string, customTitle: string): IFormCustomTitleChangedAction => ({\r\n type: FORM_CUSTOM_TITLE_CHANGED,\r\n payload: {\r\n formInstanceId,\r\n customTitle,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující zavření formuláře.\r\n *\r\n * @param closedFormInfo Informace o zavřeném formuláři.\r\n */\r\nexport const createFormClosedAction = (closedFormInfo: IOpenedFormInfo): IFormClosedAction => ({\r\n type: FORM_CLOSED,\r\n payload: {\r\n closedFormInfo,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující aktualizaci omezení pro zobrazení akční položky zavření instance formulářové položky.\r\n * @param formInstanceId Id instance otevřené formulářové položky, pro kterou se nastaví omezení.\r\n * @param hideCloseAction True zapne omezení akce zavření, false vypne.\r\n */\r\nexport const createFormItemCloseRestrictionsUpdatedAction = (formInstanceId: string, hideCloseAction: boolean): IFormItemInstanceCloseRestrictionsUpdatedAction => ({\r\n type: FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED,\r\n payload: {\r\n formInstanceId,\r\n hideCloseAction,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že proběhlo otevření formuláře.\r\n *\r\n * @param openedFormInfo Informace identifikující otevřený formulář.\r\n * @param hideWindowActions Indikátor, zda položka menu, která způsobila otevření tohoto formuláře, má mít skryté akce pro otevření.\r\n * @param openInBackground Indikátor, zda se formulář otevírá na pozadí a položka menu se tedy nemá zaktivňovat.\r\n */\r\nexport const createFormOpenedAction = (openedFormInfo: IOpenedFormInfo, hideWindowActions: boolean, openInBackground = false): IFormOpenedAction => ({\r\n type: FORM_OPENED,\r\n payload: {\r\n openedFormInfo,\r\n hideWindowActions,\r\n openInBackground,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující kliknutí na overlay nad formulářovou částí.\r\n */\r\nexport const createFormOverlayClickedAction = (): IFormOverlayClickedAction => ({\r\n type: FORM_OVERLAY_CLICKED,\r\n});\r\n\r\n/**\r\n * Akce indikující změnu profilu formuláře\r\n * @param type Typ změny\r\n * @param profile Změněný profil\r\n */\r\nexport const createFormProfileChangedAction = (type: ProfileChangeType, profile: IFormProfile): IFormProfileChangedAction => ({\r\n type: FORM_PROFILE_CHANGED,\r\n payload: {\r\n type,\r\n profile,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující dokončení přepnutí na formulář.\r\n * @param switchedFormInfo Informace o formuláři, na který se přepnulo.\r\n */\r\nexport const createFormSwitchedAction = (switchedFormInfo: IOpenedFormInfo): IFormSwitchedAction => ({\r\n type: FORM_SWITCHED,\r\n payload: {\r\n switchedFormInfo,\r\n },\r\n});\r\n","import { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport class MemoryUtils {\r\n /**\r\n * Spojí několik paměťových bloků do jednoho.\r\n * @param buffers Paměťové bloky které se mají spojit\r\n */\r\n public static join(...buffers: BufferSource[]): ArrayBuffer {\r\n const bytesSum = buffers.reduce((pv, cv) => pv + cv.byteLength, 0);\r\n const result = new Uint8Array(bytesSum);\r\n let position = 0;\r\n for (const buffer of buffers) {\r\n if (buffer instanceof Uint8Array)\r\n result.set(buffer, position);\r\n else if (ArrayBuffer.isView(buffer))\r\n result.set(new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength), position);\r\n else\r\n result.set(new Uint8Array(buffer), position);\r\n position += buffer.byteLength;\r\n }\r\n return result.buffer as ArrayBuffer;\r\n }\r\n\r\n /**\r\n * Spojí dvě 32bitové pole\r\n */\r\n public static join32bitArrays(buf1: Uint32Array, buf2: Uint32Array): Uint32Array {\r\n const result = new Uint32Array(buf1.length + buf2.length);\r\n result.set(buf1);\r\n result.set(buf2, buf1.length);\r\n return result;\r\n }\r\n\r\n /**\r\n * Převede BufferSource do ArrayBufferu\r\n * Pokud je zdroj ArrayBufferView (např. new Uint8Array(arrayBuffer, 2, 10)), kde je to jen pohled na část interního ArrayBufferu, tak se z něho udělá výřez do nového paměťového bloku,\r\n * tak je pořebné zvážit jestli je použití této funkce na daném místě vhodný, nebo by bylo lepší požít přímo ArrayBufferView.\r\n * @param buffer Zdroj, který chceme převést na ArrayBufferu.\r\n */\r\n public static bufferSourceToArrayBuffer(data: BufferSource): ArrayBuffer {\r\n return (ArrayBuffer.isView(data) ? (data.byteOffset != 0 || data.byteLength != data.buffer.byteLength ? data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength) : data.buffer) : data) as ArrayBuffer;\r\n }\r\n}\r\n\r\nGlobalContext.registerType(MemoryUtils);\r\n","import { GlobalContext } from \"../GlobalContext\";\r\n/**\r\n * Operátor spojující jednotlivé části podmínky\r\n */\r\nexport enum ConditionOperator {\r\n and,\r\n or,\r\n}\r\n\r\nexport class StringUtils {\r\n private static _diacriticsMapsLoaded: boolean = false;\r\n private static _diacriticsMap: any = {};\r\n private static _lettersMap: any = {};\r\n\r\n private static readonly _HTML_ESCAPES: { [index: string]: string } = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n \"\\\"\": \""\",\r\n \"'\": \"'\",\r\n \"/\": \"/\",\r\n };\r\n\r\n // Regex containing the keys listed immediately above.\r\n private static readonly _HTML_ESCAPER = /[&<>\"'/]/g;\r\n\r\n /** HTML tags that should be replaced with space.*/\r\n private static readonly _HTML_STRIP_SPACE_TAGS: string[] = [ \"br\", \"td\", \"th\", \"li\", \"ul\", \"dt\", \"dd\" ];\r\n\r\n /** Regex to match all HTML tags. Match has three named groups - \"comment\" for comments, \"spaceTag\" for those that should be replaced with space and \"tag\" for everything else. */\r\n private static readonly _HTML_STRIP_TAGS_REGEX: RegExp = new RegExp(\"(?|)|(?|(?:/|\\\\s)[^>]*>))|(?<[^>]*(?:$|>))\", \"gi\");\r\n\r\n /**\r\n * Funkce naformátuje řetězec a nahradí jeho parametry za předané hodnoty\r\n * @param value Řetězec se zástupnými znaky pro parametry (@0 - @n), za které se dosadí předané hodnoty\r\n * @param param Pole parametrů, které se dosazují za placeholdery\r\n * @returns Vrací naformátovaný řetězec\r\n * @includeToDoc\r\n */\r\n public static format(value: string, param: any[]): string | undefined {\r\n if (typeof value !== \"string\") {\r\n return undefined;\r\n }\r\n let editStr = value;\r\n let requiredParam: string[] | null;\r\n if (param == null || param.length === 0) {\r\n requiredParam = value.match(/@([0-9]+)/g);\r\n if (requiredParam && requiredParam.length > 0) {\r\n throw new Error(`Formatted string '${value}' contains ${requiredParam.length} parameter placeholders but no parameter values given.`);\r\n }\r\n } else {\r\n const allParams = value.match(/(@[0-9]+)/g);\r\n if (allParams) {\r\n requiredParam = StringUtils._getUnique(allParams);\r\n for (let i = 0, lng = requiredParam.length; i < lng; i++) {\r\n const currentParam = parseInt(requiredParam[i][1]);\r\n\r\n if (currentParam >= param.length) {\r\n throw new Error(`Formatted string '${value}' contains parameter placeholders @${currentParam} but only ${param.length} given (${JSON.stringify(param)}).`);\r\n } else {\r\n const re = new RegExp(StringUtils._escapeRegExt(requiredParam[i]), \"g\");\r\n const index: any = requiredParam[i].match(/@([0-9]+)/)![1];\r\n\r\n const paramAtIndexOrEmpty = typeof param[index] === \"undefined\" ? \"\" : param[index];\r\n editStr = editStr.replace(re, paramAtIndexOrEmpty);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return editStr;\r\n }\r\n\r\n public static stringToUnicodeTypedArray(s: string): Uint16Array {\r\n StringUtils._throwIfNotString(s);\r\n\r\n const a = new Uint16Array(s.length);\r\n const l = s.length;\r\n for (let i = 0; i < l; i++) {\r\n a[i] = s.charCodeAt(i);\r\n }\r\n return a;\r\n }\r\n\r\n /**\r\n * převede text pole bytů kódovaných UTF8kou\r\n * @param text text, který se má převést na pole bytů\r\n */\r\n public static stringToUTF8Bytes(text: string): Uint8Array {\r\n StringUtils._throwIfNotString(text);\r\n\r\n const encoder = new (self as any).TextEncoder();\r\n return encoder.encode(text);\r\n }\r\n\r\n /**\r\n * převede pole UTF8 bytů na text\r\n * @param bytes data pro převod na text\r\n */\r\n public static utf8BytesToString(bytes: BufferSource): string {\r\n const decoder = new (self as any).TextDecoder();\r\n return decoder.decode(bytes);\r\n }\r\n\r\n private static _escapeRegExt(val: string): string {\r\n StringUtils._throwIfNotString(val);\r\n\r\n return val.replace(/([.*+?^=!:${}@()|[\\]/\\\\])/g, \"\\\\$1\");\r\n }\r\n\r\n /**\r\n * Pomocna funkce pro formatovani, která vrátí unikátní pole parametru nachazejicich se v retezci\r\n * @param val Pole vsech parametru\r\n * @returns pole unikatnich parametru\r\n */\r\n private static _getUnique(val: string[]): string[] {\r\n const u: any = {};\r\n const a: any[] = [] as Array;\r\n for (let i = 0, l = val.length; i < l; ++i) {\r\n if (Object.prototype.hasOwnProperty.call(u, val[i])) {\r\n continue;\r\n }\r\n a.push(val[i]);\r\n u[val[i]] = 1;\r\n }\r\n return a;\r\n }\r\n\r\n /**\r\n * Spojí všechny předané neprázdné podmínky do jedné (prázdné, null a undefined zahodí)\r\n * @param operator typ operátoru, který se má použít pro spojení jednotlivých částí podmínky\r\n * @param conditions podmínky ke spojení, některé mohou být i prázdné, ty jsou preskočeny\r\n */\r\n public static combineConditions(operator: ConditionOperator, ...conditions: string[]): string {\r\n return this.combineConditionsArray(operator, conditions);\r\n }\r\n\r\n /**\r\n * Spojí všechny předané neprázdné podmínky do jedné (prázdné, null a undefined zahodí)\r\n * @param operator typ operátoru, který se má použít pro spojení jednotlivých částí podmínky\r\n * @param conditions podmínky ke spojení, některé mohou být i prázdné, ty jsou preskočeny\r\n */\r\n public static combineConditionsArray(operator: ConditionOperator, conditions: string[]): string {\r\n const preparedConds = new Array();\r\n for (const c of conditions) {\r\n if (c && c.trim() !== \"\")\r\n preparedConds.push(`(${c.trim()})`); //`\r\n }\r\n\r\n return preparedConds.join(` ${ConditionOperator[operator].toUpperCase()} `); //`\r\n }\r\n\r\n /**\r\n * Vytvoří negaci předané podmínky\r\n * @param condition podmínka k negaci, pro prázdnou nebo null vrací prázdný řetězec\r\n */\r\n public static invertCondition(condition: string): string {\r\n if (!condition)\r\n return \"\";\r\n return `NOT (${condition.trim()})`; //`\r\n }\r\n\r\n /**\r\n * Odstraní nadbytecné mezery z podmínky\r\n * @param condition\r\n */\r\n public static cleanCondition(condition: string): string {\r\n let result = \"\";\r\n const afterBeforeCharNoWS = [ \")\", \"]\", \"}\", \">\", \"=\", \",\", \";\", \"!\", \"<\", \"(\", \"[\", \"{\" ];\r\n\r\n let inString = false;\r\n let whiteChar = false;\r\n let startStringChar = \"\";\r\n let isLastCharNoWS = false;\r\n\r\n for (let i = 0; i < condition.length; i++) {\r\n const char = condition[i];\r\n const char1 = condition?.[i + 1];\r\n\r\n if (char === \"'\" || char === \"/\") {\r\n if (inString && startStringChar === char) inString = false;\r\n else if (!inString) {\r\n startStringChar = char;\r\n inString = true;\r\n whiteChar = false;\r\n isLastCharNoWS = false;\r\n }\r\n }\r\n\r\n if ((char === \"\\\\\" && char1 === \"/\" && char1 === startStringChar || char === \"'\" && char1 === \"'\" && char1 === startStringChar) && inString) {\r\n i++;\r\n result += `\\\\${startStringChar}`;\r\n continue;\r\n }\r\n\r\n if (!inString) {\r\n if (afterBeforeCharNoWS.indexOf(char) !== -1) {\r\n whiteChar = true;\r\n isLastCharNoWS = true;\r\n } else if (/\\s/.test(char)) {\r\n if (whiteChar) {\r\n continue;\r\n } else {\r\n whiteChar = true;\r\n continue;\r\n }\r\n } else {\r\n if (whiteChar && !isLastCharNoWS) result += \" \";\r\n whiteChar = false;\r\n isLastCharNoWS = false;\r\n }\r\n }\r\n\r\n result += char;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Kontroluje zda je zadaná hodnota null nebo prázdný řetězec\r\n * @param value retezec\r\n * @return true pokud je retezec prazdny nebo null v opacnem pripade false\r\n */\r\n public static isNullOrEmpty(value: string | null | undefined): boolean {\r\n if (value == null)\r\n return true;\r\n if (typeof value === \"string\")\r\n return value.length === 0;\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Kontroluje zda je zadaná hodnota null, prázdná a nebo obsahuje jen bíle znaky\r\n * @param value retezec\r\n * @return true pokud je retezec prazdny, obsahuje pouze bile znaky nebo null v opacnem pripade false\r\n */\r\n public static isNullOrWhiteSpace(value: string): boolean {\r\n if (value == null)\r\n return true;\r\n if (typeof value === \"string\") {\r\n return /^\\s*$/.test(value);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Porovná dvě hodnoty bez ohledu na velikosti písmen. Null a undefined se navzájem rovnají, ale prázdný řetězec už se jim nerovná.\r\n * @param value1 První hodnota k porovnání\r\n * @param value2 Druhá hodnota k porovnání\r\n */\r\n public static compareCaseInsensitive(value1: string | null | undefined, value2: string | null | undefined): boolean {\r\n if (value1 == value2)\r\n return true;\r\n\r\n if (!value1 || !value2)\r\n return false;\r\n\r\n return value1.toUpperCase() === value2.toUpperCase();\r\n }\r\n\r\n /**\r\n * Porovná dvě hodnoty bez ohledu na velikosti písmen s ohledem na místní nastavení. Null a undefined se navzájem rovnají, ale prázdný řetězec už se jim nerovná.\r\n * @param value1 První hodnota k porovnání\r\n * @param value2 Druhá hodnota k porovnání\r\n */\r\n public static compareLocaleCaseInsensitive(value1: string | null | undefined, value2: string | null | undefined): boolean {\r\n if (value1 == value2)\r\n return true;\r\n\r\n if (!value1 || !value2)\r\n return false;\r\n\r\n return value1.toLocaleUpperCase() === value2.toLocaleUpperCase();\r\n }\r\n\r\n /**\r\n * Funkce na odstraneni diakritiky\r\n * @param value Text ze ktereho bude odstranena diakritiky\r\n * @return Text bez diakritiky\r\n */\r\n public static removeAccents(value: string): string {\r\n StringUtils._throwIfNotString(value);\r\n\r\n StringUtils._loadDiacriticsMap();\r\n\r\n //return value.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g, \"\");\r\n // eslint-disable-next-line no-control-regex\r\n return value.replace(/[^\\u0000-\\u007E]/g, (a) => {\r\n return StringUtils._diacriticsMap[a] || a;\r\n });\r\n }\r\n\r\n /**\r\n * Funkce na převedení řetězce ve formě \"nazev1=hodnota1;nazev2=hodnota2;nazev...\" do slovníku.\r\n * @param inlineDictionary vstupní string reprezentující slovník\r\n * @returns Slovník odpovídající vstupnímu řetězci.\r\n */\r\n public static parseInlineDictionary(inlineDictionary: string): Map {\r\n const parsedDictionary = new Map();\r\n\r\n if (!inlineDictionary)\r\n return parsedDictionary;\r\n\r\n const trimmedInlineDictionary = inlineDictionary.replace(/;+$/g, \"\"); //trimne na konci všechny středníky\r\n const dictionaryPairs = trimmedInlineDictionary.split(\";\");\r\n\r\n for (const pair of dictionaryPairs) {\r\n const [key, value] = pair.split(\"=\");\r\n\r\n if (key === \"\")\r\n throw new Error(\"Key cannot be an empty string! Check the validity of input string.\");\r\n\r\n parsedDictionary.set(key, value ?? \"\");\r\n }\r\n\r\n return parsedDictionary;\r\n }\r\n\r\n public static getToRegEx(base: string): string {\r\n StringUtils._throwIfNotString(base);\r\n\r\n StringUtils._loadDiacriticsMap();\r\n\r\n return StringUtils._lettersMap[base] || base;\r\n }\r\n\r\n /**\r\n * Provede escapování řetězce pro HTML značky, nahradí uživatelské značky \\n a \\t za HTML výrazy a odstraní zbylý nadbytečný escaping (\\\\ = \\)\r\n * @param text Převáděný text\r\n * @returns Escapovaný text\r\n */\r\n public static stringToHTMLText(text: string): string {\r\n StringUtils._throwIfNotString(text);\r\n\r\n return text.replace(StringUtils._HTML_ESCAPER, (match) => StringUtils._HTML_ESCAPES[match])\r\n .replace(/\\r\\n/g, \"
\")\r\n .replace(/\\\\n/g, \"
\")\r\n .replace(/\\n/g, \"
\")\r\n .replace(/\\\\t/g, \" \")\r\n .replace(/\\\\\\\\/g, \"\\\\\");\r\n }\r\n\r\n /** Odstraní z textu html tagy a ty, které jsou uvedeny v _HTML_STRIP_SPACE_TAGS, nahradí mezerou. HTML entity převede na unicode znaky.\r\n * @param text Text, ze kterého se mají tagy odstranit.\r\n */\r\n public static stripHTMLFromText(text: string): string {\r\n StringUtils._throwIfNotString(text);\r\n const span = document.createElement(\"span\");\r\n span.innerHTML = text?.replace(StringUtils._HTML_STRIP_TAGS_REGEX, function(_match, _comment, spaceTag, _tag) {\r\n return spaceTag ? \" \" : \"\"; // Nahrazení tagu mezerou, nebo jeho odstranění.\r\n }).replace(/\\s\\s*/g, \" \").trim(); // Nakonec se ještě nahradí konce řádků a zdvojené mezery jenom jednou mezerou.\r\n return span.textContent ?? \"\"; // Vrací textContent, kvůli převedení HTML entit.\r\n }\r\n\r\n private static _throwIfNotString(text: string): void {\r\n if (text == null || typeof text !== \"string\")\r\n throw new Error();\r\n }\r\n\r\n public static stringToXmlCodes(str: string): string {\r\n StringUtils._throwIfNotString(str);\r\n\r\n str = (self as any).escape(str);\r\n let nc: string = \"\";\r\n for (let i = 0; i < str.length; i++) {\r\n const s: string = str.substr(i, 6);\r\n let arr: any;\r\n let c: string;\r\n if ((arr = s.match(/%u[0-9A-F][0-9A-F][0-9A-F][0-9A-F]/i))) {\r\n c = arr[0].substr(2, 4);\r\n c = \"&#\" + parseInt(c, 16) + \";\";\r\n i += 5;\r\n } else if ((arr = s.match(/^%[0-9A-F][0-9A-F]/i))) {\r\n c = arr[0].substr(1, 2);\r\n c = \"&#\" + parseInt(c, 16) + \";\";\r\n i += 2;\r\n } else {\r\n c = str.charAt(i);\r\n }\r\n nc += c;\r\n }\r\n return nc;\r\n }\r\n\r\n /**\r\n * Metoda na rozložení řetězce podle nějakého rozdělovače na pole obsahující první element a zbytek textu.\r\n * @param text Vstupní text\r\n * @param delimiter Rozdělovač\r\n * @returns Pole obsahující první element před rozdělovačem a zbytek textu\r\n *\r\n * @example\r\n * const testText = \"CMerna_Jednotka.Metoda('param.param')\";\r\n * const res1 = splitFirst(testText, \".\");\r\n * const res2 = testText.split(\".\", 1);\r\n * // res1 = [ \"CMerna_Jednotka\", \"Metoda('param.param')\" ];\r\n * // res2 = [ \"CMerna_Jednotka\" ]\r\n */\r\n public static splitFirst(text: string, delimiter: string): [string, string] {\r\n if (typeof text !== \"string\") throw new Error(\"Argument 'text' must be string\");\r\n\r\n const i = text.indexOf(delimiter);\r\n if (i === -1) return [text, \"\"];\r\n return [text.substring(0, i), text.substring(i + 1)];\r\n }\r\n\r\n /**\r\n * Projde celý řetězec a nahradí všechny výskyty hledaného řetězce za zadanou hodnotu.\r\n * @param text Vstupní řetězec\r\n * @param searchValue Hledaná hodnota nebo výraz\r\n * @param replaceValue Požadovaná hodnota pro nahrazení\r\n */\r\n public static replaceAll(text: string, searchValue: string | RegExp, replaceValue: string): string {\r\n return text.replace(new RegExp(searchValue, \"g\"), replaceValue);\r\n }\r\n\r\n /**\r\n * Metoda projde celý text a nahradí hledaný řetězec požadovanou hodnotou, ale pouze v případě, že před hledaným\r\n * řetězcem není zakázaný řetězec. V takovém případě vrací původní text.\r\n * @param text Vstupní text\r\n * @param searchedString Hledaný řetězec\r\n * @param value Požadovaná hodnota pro nahrazení\r\n * @param forbiddenString Zakázaný řetězec\r\n * @returns Vrací upravený vstupní řetězec nebo původní řetězec.\r\n */\r\n\r\n public static replaceAllWithLookahead(text: string, searchedString: string | RegExp, value: string, forbiddenString: string): string {\r\n return text.replace(new RegExp(searchedString, \"g\"), (match: string, index: number, currentText: string) => {\r\n if ((currentText.substring(index - (forbiddenString.length || 1), index)) !== forbiddenString) {\r\n return value;\r\n }\r\n\r\n return match;\r\n });\r\n }\r\n\r\n private static _loadDiacriticsMap(): void {\r\n if (!StringUtils._diacriticsMapsLoaded) {\r\n StringUtils._diacriticsMapsLoaded = true;\r\n for (let i = 0; i < StringUtils._defaultDiacriticsRemovalap.length; i++) {\r\n const letters = StringUtils._defaultDiacriticsRemovalap[i].letters;\r\n const base = StringUtils._defaultDiacriticsRemovalap[i].base;\r\n StringUtils._lettersMap[base] = \"\";\r\n for (let j = 0; j < letters.length; j++) {\r\n StringUtils._diacriticsMap[letters[j]] = base;\r\n if (StringUtils._lettersMap[base].length > 0)\r\n StringUtils._lettersMap[base] += \"|\";\r\n StringUtils._lettersMap[base] += letters[j];\r\n }\r\n StringUtils._lettersMap[base] = \"(\" + StringUtils._lettersMap[base] + \")\";\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Function that converts any two values to strings and compares them.\r\n * Undefined and null values are considered equal to \"\".\r\n * @param first First argument to compare.\r\n * @param second Second argument to compare.\r\n */\r\n public static stringCompare(\r\n first: object | number | string | boolean | null | undefined,\r\n second: object | number | string | boolean | null | undefined,\r\n ): boolean {\r\n if (first === null || first === undefined) {\r\n first = \"\";\r\n }\r\n if (second === null || second === undefined) {\r\n second = \"\";\r\n }\r\n return first.toString() === second.toString();\r\n }\r\n\r\n // Funkce na odstraneni diakritiky\r\n private static _defaultDiacriticsRemovalap: Array<{ \"base\": string; \"letters\": string }> = [\r\n { \"base\": \"A\", \"letters\": \"\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\" },\r\n { \"base\": \"AA\", \"letters\": \"\\uA732\" },\r\n { \"base\": \"AE\", \"letters\": \"\\u00C6\\u01FC\\u01E2\" },\r\n { \"base\": \"AO\", \"letters\": \"\\uA734\" },\r\n { \"base\": \"AU\", \"letters\": \"\\uA736\" },\r\n { \"base\": \"AV\", \"letters\": \"\\uA738\\uA73A\" },\r\n { \"base\": \"AY\", \"letters\": \"\\uA73C\" },\r\n { \"base\": \"B\", \"letters\": \"\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\" },\r\n { \"base\": \"C\", \"letters\": \"\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E\" },\r\n { \"base\": \"D\", \"letters\": \"\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\" },\r\n { \"base\": \"DZ\", \"letters\": \"\\u01F1\\u01C4\" },\r\n { \"base\": \"Dz\", \"letters\": \"\\u01F2\\u01C5\" },\r\n { \"base\": \"E\", \"letters\": \"\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\" },\r\n { \"base\": \"F\", \"letters\": \"\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\" },\r\n { \"base\": \"G\", \"letters\": \"\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\" },\r\n { \"base\": \"H\", \"letters\": \"\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\" },\r\n { \"base\": \"I\", \"letters\": \"\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\" },\r\n { \"base\": \"J\", \"letters\": \"\\u004A\\u24BF\\uFF2A\\u0134\\u0248\" },\r\n { \"base\": \"K\", \"letters\": \"\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\" },\r\n { \"base\": \"L\", \"letters\": \"\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\" },\r\n { \"base\": \"LJ\", \"letters\": \"\\u01C7\" },\r\n { \"base\": \"Lj\", \"letters\": \"\\u01C8\" },\r\n { \"base\": \"M\", \"letters\": \"\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\" },\r\n { \"base\": \"N\", \"letters\": \"\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\" },\r\n { \"base\": \"NJ\", \"letters\": \"\\u01CA\" },\r\n { \"base\": \"Nj\", \"letters\": \"\\u01CB\" },\r\n { \"base\": \"O\", \"letters\": \"\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\" },\r\n { \"base\": \"OI\", \"letters\": \"\\u01A2\" },\r\n { \"base\": \"OO\", \"letters\": \"\\uA74E\" },\r\n { \"base\": \"OU\", \"letters\": \"\\u0222\" },\r\n { \"base\": \"OE\", \"letters\": \"\\u008C\\u0152\" },\r\n { \"base\": \"oe\", \"letters\": \"\\u009C\\u0153\" },\r\n { \"base\": \"P\", \"letters\": \"\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\" },\r\n { \"base\": \"Q\", \"letters\": \"\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A\" },\r\n { \"base\": \"R\", \"letters\": \"\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\" },\r\n { \"base\": \"S\", \"letters\": \"\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\" },\r\n { \"base\": \"T\", \"letters\": \"\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\" },\r\n { \"base\": \"TZ\", \"letters\": \"\\uA728\" },\r\n { \"base\": \"U\", \"letters\": \"\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\" },\r\n { \"base\": \"V\", \"letters\": \"\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\" },\r\n { \"base\": \"VY\", \"letters\": \"\\uA760\" },\r\n { \"base\": \"W\", \"letters\": \"\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\" },\r\n { \"base\": \"X\", \"letters\": \"\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C\" },\r\n { \"base\": \"Y\", \"letters\": \"\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\" },\r\n { \"base\": \"Z\", \"letters\": \"\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\" },\r\n { \"base\": \"a\", \"letters\": \"\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\" },\r\n { \"base\": \"aa\", \"letters\": \"\\uA733\" },\r\n { \"base\": \"ae\", \"letters\": \"\\u00E6\\u01FD\\u01E3\" },\r\n { \"base\": \"ao\", \"letters\": \"\\uA735\" },\r\n { \"base\": \"au\", \"letters\": \"\\uA737\" },\r\n { \"base\": \"av\", \"letters\": \"\\uA739\\uA73B\" },\r\n { \"base\": \"ay\", \"letters\": \"\\uA73D\" },\r\n { \"base\": \"b\", \"letters\": \"\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\" },\r\n { \"base\": \"c\", \"letters\": \"\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184\" },\r\n { \"base\": \"d\", \"letters\": \"\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\" },\r\n { \"base\": \"dz\", \"letters\": \"\\u01F3\\u01C6\" },\r\n { \"base\": \"e\", \"letters\": \"\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\" },\r\n { \"base\": \"f\", \"letters\": \"\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\" },\r\n { \"base\": \"g\", \"letters\": \"\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\" },\r\n { \"base\": \"h\", \"letters\": \"\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\" },\r\n { \"base\": \"hv\", \"letters\": \"\\u0195\" },\r\n { \"base\": \"i\", \"letters\": \"\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\" },\r\n { \"base\": \"j\", \"letters\": \"\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\" },\r\n { \"base\": \"k\", \"letters\": \"\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\" },\r\n { \"base\": \"l\", \"letters\": \"\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\" },\r\n { \"base\": \"lj\", \"letters\": \"\\u01C9\" },\r\n { \"base\": \"m\", \"letters\": \"\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\" },\r\n { \"base\": \"n\", \"letters\": \"\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\" },\r\n { \"base\": \"nj\", \"letters\": \"\\u01CC\" },\r\n { \"base\": \"o\", \"letters\": \"\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\" },\r\n { \"base\": \"oi\", \"letters\": \"\\u01A3\" },\r\n { \"base\": \"ou\", \"letters\": \"\\u0223\" },\r\n { \"base\": \"oo\", \"letters\": \"\\uA74F\" },\r\n { \"base\": \"p\", \"letters\": \"\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\" },\r\n { \"base\": \"q\", \"letters\": \"\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759\" },\r\n { \"base\": \"r\", \"letters\": \"\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\" },\r\n { \"base\": \"s\", \"letters\": \"\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\" },\r\n { \"base\": \"t\", \"letters\": \"\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\" },\r\n { \"base\": \"tz\", \"letters\": \"\\uA729\" },\r\n { \"base\": \"u\", \"letters\": \"\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\" },\r\n { \"base\": \"v\", \"letters\": \"\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\" },\r\n { \"base\": \"vy\", \"letters\": \"\\uA761\" },\r\n { \"base\": \"w\", \"letters\": \"\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\" },\r\n { \"base\": \"x\", \"letters\": \"\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D\" },\r\n { \"base\": \"y\", \"letters\": \"\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\" },\r\n { \"base\": \"z\", \"letters\": \"\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\" },\r\n ];\r\n}\r\n\r\nGlobalContext.registerType(StringUtils);\r\n","/*\r\nBASE64-JS plugin (MIT License)\r\nhttps://github.com/beatgammit/base64-js\r\ndoes basic base64 encoding/decoding in pure JS.\r\n*/\r\n\r\nexport class Base64js {\r\n private static __lookup: any[] = [];\r\n private static __revLookup: any[] = [];\r\n private static _arr: any = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\r\n private static _code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n\r\n private static _isInitialized: boolean = false;\r\n\r\n private static get _lookup(): any[] {\r\n if (!Base64js._isInitialized)\r\n Base64js._initialize();\r\n return Base64js.__lookup;\r\n }\r\n\r\n private static get _revLookup(): any[] {\r\n if (!Base64js._isInitialized)\r\n Base64js._initialize();\r\n return Base64js.__revLookup;\r\n }\r\n\r\n private static _initialize(): void {\r\n for (let i = 0, len = this._code.length; i < len; ++i) {\r\n Base64js.__lookup[i] = this._code[i];\r\n Base64js.__revLookup[this._code.charCodeAt(i)] = i;\r\n }\r\n\r\n Base64js.__revLookup[\"-\".charCodeAt(0)] = 62;\r\n Base64js.__revLookup[\"_\".charCodeAt(0)] = 63;\r\n }\r\n\r\n private static _placeHoldersCount(b64: any): 0 | 1 | 2 {\r\n const len = b64.length;\r\n if (len % 4 > 0) {\r\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\r\n }\r\n\r\n // the number of equal signs (place holders)\r\n // if there are two placeholders, than the two characters before it\r\n // represent one byte\r\n // if there is only one, then the three characters before it represent 2 bytes\r\n // this is just a cheap hack to not do indexOf twice\r\n return b64[len - 2] === \"=\" ? 2 : b64[len - 1] === \"=\" ? 1 : 0;\r\n }\r\n\r\n //private static byteLength(b64: any) {\r\n // // base64 is 4/3 + up to two characters of the original data\r\n // return (b64.length * 3 / 4) - this.placeHoldersCount(b64)\r\n //}\r\n\r\n public static toByteArray(b64: any): any {\r\n const len = b64.length;\r\n const placeHolders = this._placeHoldersCount(b64);\r\n const arr = new this._arr((len * 3 / 4) - placeHolders);\r\n\r\n // if there are placeholders, only get up to the last complete 4 chars\r\n const l = placeHolders > 0 ? len - 4 : len;\r\n\r\n let L = 0;\r\n\r\n let i, tmp;\r\n for (i = 0; i < l; i += 4) {\r\n tmp = (Base64js._revLookup[b64.charCodeAt(i)] << 18) | (Base64js._revLookup[b64.charCodeAt(i + 1)] << 12) | (Base64js._revLookup[b64.charCodeAt(i + 2)] << 6) | Base64js._revLookup[b64.charCodeAt(i + 3)];\r\n arr[L++] = (tmp >> 16) & 0xFF;\r\n arr[L++] = (tmp >> 8) & 0xFF;\r\n arr[L++] = tmp & 0xFF;\r\n }\r\n\r\n if (placeHolders === 2) {\r\n tmp = (Base64js._revLookup[b64.charCodeAt(i)] << 2) | (Base64js._revLookup[b64.charCodeAt(i + 1)] >> 4);\r\n arr[L++] = tmp & 0xFF;\r\n } else if (placeHolders === 1) {\r\n tmp = (Base64js._revLookup[b64.charCodeAt(i)] << 10) | (Base64js._revLookup[b64.charCodeAt(i + 1)] << 4) | (Base64js._revLookup[b64.charCodeAt(i + 2)] >> 2);\r\n arr[L++] = (tmp >> 8) & 0xFF;\r\n arr[L++] = tmp & 0xFF;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n private static _tripletToBase64(num: any): any {\r\n return Base64js._lookup[num >> 18 & 0x3F] + Base64js._lookup[num >> 12 & 0x3F] + Base64js._lookup[num >> 6 & 0x3F] + Base64js._lookup[num & 0x3F];\r\n }\r\n\r\n private static _encodeChunk(uint8: any, start: any, end: any): string {\r\n let tmp;\r\n const output: any[] = [];\r\n for (let i = start; i < end; i += 3) {\r\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\r\n output.push(Base64js._tripletToBase64(tmp));\r\n }\r\n return output.join(\"\");\r\n }\r\n\r\n public static fromByteArray(uint8: any): string {\r\n let tmp;\r\n const len = uint8.length;\r\n const extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\r\n let output = \"\";\r\n const parts: string[] = [];\r\n const maxChunkLength = 16383; // must be multiple of 3\r\n\r\n // go through the array every three bytes, we'll deal with trailing stuff later\r\n for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\r\n parts.push(Base64js._encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\r\n }\r\n\r\n // pad the end with zeros, but make sure to not forget the extra bytes\r\n if (extraBytes === 1) {\r\n tmp = uint8[len - 1];\r\n output += Base64js._lookup[tmp >> 2];\r\n output += Base64js._lookup[(tmp << 4) & 0x3F];\r\n output += \"==\";\r\n } else if (extraBytes === 2) {\r\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\r\n output += Base64js._lookup[tmp >> 10];\r\n output += Base64js._lookup[(tmp >> 4) & 0x3F];\r\n output += Base64js._lookup[(tmp << 2) & 0x3F];\r\n output += \"=\";\r\n }\r\n\r\n parts.push(output);\r\n\r\n return parts.join(\"\");\r\n }\r\n}\r\n","import { GlobalContext } from \"../GlobalContext\";\r\nimport { MemoryUtils } from \"../Utils/MemoryUtils\";\r\nimport { StringUtils } from \"../Utils/StringUtils\";\r\nimport { Base64js } from \"./Base64js\";\r\n\r\nexport class DataConverter {\r\n public static bufferToBase64(buffer: BufferSource): string {\r\n return _base64ArrayBuffer(MemoryUtils.bufferSourceToArrayBuffer(buffer));\r\n }\r\n\r\n public static base64ToArrayBuffer(b64Encoded: string): ArrayBuffer {\r\n return DataConverter.base64ToArray(b64Encoded).buffer as ArrayBuffer;\r\n }\r\n\r\n public static base64ToArray(input: string): Uint8Array {\r\n // new Uint8Array([...atob(input)].map((v) => v.charCodeAt(0)))\r\n\r\n /*\r\n // mnohem rychlejsi a efektivnejsi verze predesleho reseni\r\n const binary = atob(input);\r\n const len = binary.length >>> 0;\r\n const view = new Uint8Array(len);\r\n let i: number;\r\n for (i = 0; i < len; ++i) view[i] = binary.charCodeAt(i);\r\n return view;\r\n */\r\n\r\n return _base64ToUint8Array(input);\r\n }\r\n\r\n public static toDate(value: string): Date | null {\r\n if (value) {\r\n const ret = new Date(value);\r\n if (isNaN(ret.getTime()))\r\n return null;\r\n else\r\n return ret;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí datum ve formátu pro podmínky\r\n * @param value Datum\r\n * @param withTime Přepínač, zda to vrátit i s časem nebo ne.\r\n */\r\n public static toConditionDateString(value: Date, withTime: boolean = false): string | null {\r\n if (value == null)\r\n return null;\r\n const f_pad = (v: number) => (v < 10) ? `0${v}` : v.toString(); // `\r\n\r\n const retString = `${value.getFullYear()}-${f_pad(value.getMonth() + 1)}-${f_pad(value.getDate())}`; // `\r\n if (!withTime)\r\n return retString;\r\n\r\n return retString + ` ${f_pad(value.getHours())}:${f_pad(value.getMinutes())}:${f_pad(value.getSeconds())}`; //`\r\n }\r\n\r\n /**\r\n * Konvertuje danou hodnotu na boolean, pokud neodpovida hodnote\r\n * @param string Obsahuje hodnotu pro parsovani\r\n * @param any Obsahuje defaultni navratovou hodnotu v pripade ze neprojde parsovanim\r\n */\r\n public static toBoolean(value: string | null | undefined, defaultReturn: any = false): boolean {\r\n if (value == null)\r\n return defaultReturn;\r\n else if (typeof value === \"string\") {\r\n value = value.toLowerCase();\r\n if (value === \"true\")\r\n return true;\r\n else if (value === \"false\")\r\n return false;\r\n else\r\n return defaultReturn;\r\n } else\r\n return defaultReturn;\r\n }\r\n\r\n public static toNumber(value: string): number {\r\n return Number(value);\r\n }\r\n\r\n /** Konvertuje string na číslo. Pokud je hodnota undefined vrací místo NaN vrací undefined. */\r\n public static toNumberOrUndefined(value: string | undefined): number | undefined {\r\n return value ? Number(value) : undefined;\r\n }\r\n\r\n public static btoaUtf8(str: string): string {\r\n const encoded = StringUtils.stringToUTF8Bytes(str);\r\n const b64Encoded = Base64js.fromByteArray(encoded);\r\n return b64Encoded;\r\n }\r\n\r\n /**\r\n * Převede barvu z formátu rgb/rgba do hex\r\n * @param color - barva komponenty\r\n * @param background - barva podkladu, na kterém je komponenta umístěna. Je využívána k dopočítání správné barvy v případě existence alfa kanálu\r\n */\r\n public static rgbToHex(color: string, background?: string): string | null { // Používáno ColorEditem\r\n if (color == null || color.startsWith(\"#\")) {\r\n return color;\r\n }\r\n\r\n const parsedColor = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),?\\s*(\\d*\\.?\\d+)?\\)*$/);\r\n\r\n if (parsedColor == null) {\r\n return null;\r\n }\r\n\r\n let red = Number(parsedColor[1]);\r\n let blue = Number(parsedColor[2]);\r\n let green = Number(parsedColor[3]);\r\n\r\n if (background && parsedColor[4]) { // Existuje alfa kanál a je nastavená barva podkladu (např. detailu), provedeme korekci před konverzí na hex\r\n // https://marcodiiga.github.io/rgba-to-rgb-conversion\r\n const alpha = Number(parsedColor[4]);\r\n\r\n const parsedBackground = background.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),?.*\\)*$/);\r\n\r\n if (parsedBackground != null) {\r\n red = Math.round((1 - alpha) * Number(parsedBackground[1]) + alpha * red);\r\n blue = Math.round((1 - alpha) * Number(parsedBackground[2]) + alpha * blue);\r\n green = Math.round((1 - alpha) * Number(parsedBackground[3]) + alpha * green);\r\n }\r\n }\r\n\r\n return \"#\" + [red, blue, green].map(x => {\r\n const hex = x.toString(16);\r\n return hex.length === 1 ? \"0\" + hex : hex;\r\n }).join(\"\");\r\n }\r\n}\r\n\r\n// https://gist.github.com/jonleighton/958841\r\n// Converts an ArrayBuffer directly to base64, without any intermediate 'convert to string then\r\n// use window.btoa' step. According to my tests, this appears to be a faster approach:\r\n// http://jsperf.com/encoding-xhr-image-data/5\r\n\r\n/*\r\nMIT LICENSE\r\nCopyright 2011 Jon Leighton\r\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n*/\r\n\r\nfunction _base64ArrayBuffer(arrayBuffer: ArrayBuffer) {\r\n let base64 = \"\";\r\n const encodings = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n\r\n const bytes = new Uint8Array(arrayBuffer);\r\n const byteLength = bytes.byteLength;\r\n const byteRemainder = byteLength % 3;\r\n const mainLength = byteLength - byteRemainder;\r\n let a: number;\r\n let b: number;\r\n let c: number;\r\n let d: number;\r\n let chunk: number;\r\n\r\n // Main loop deals with bytes in chunks of 3\r\n for (let i = 0; i < mainLength; i = i + 3) {\r\n // Combine the three bytes into a single integer\r\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\r\n\r\n // Use bitmasks to extract 6-bit segments from the triplet\r\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\r\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\r\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\r\n d = chunk & 63; // 63 = 2^6 - 1\r\n\r\n // Convert the raw binary segments to the appropriate ASCII encoding\r\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\r\n }\r\n\r\n // Deal with the remaining bytes and padding\r\n if (byteRemainder === 1) {\r\n chunk = bytes[mainLength];\r\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\r\n\r\n // Set the 4 least significant bits to zero\r\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + \"==\";\r\n } else if (byteRemainder === 2) {\r\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\r\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\r\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\r\n\r\n // Set the 2 least significant bits to zero\r\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\r\n\r\n base64 += encodings[a] + encodings[b] + encodings[c] + \"=\";\r\n }\r\n\r\n return base64;\r\n}\r\n\r\nconst ranks = new Uint8Array([\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,\r\n 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1,\r\n -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,\r\n 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,\r\n -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,\r\n 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\r\n]);\r\n\r\n// bezkonkurencne nejrychlejsi reseni ve vetsine prohlizecu\r\n// https://jsperf.com/base64-to-uint8array/18\r\n// v Safari az dvakrat nez ostatni reseni\r\n// neumí dekodovat YW55IGNhcm5hbCBwbGVhcw, ale jen s paddingem YW55IGNhcm5hbCBwbGVhcw==, ale to neumi ani .NET, tak by to melo byt v pohode\r\n// https://en.wikipedia.org/wiki/Base64\r\n\r\nfunction _base64ToUint8Array(input: string): Uint8Array {\r\n let len = input.length >>> 0;\r\n const lastEqu = +(input[len - 1] === \"=\"); // konverze bool na cislo\r\n const scndLastEqu = +(input[len - 2] === \"=\");\r\n let i = -1;\r\n let outptr = -1;\r\n let save = 0;\r\n const output = new Uint8Array((len >>> 2) + (len >>> 1) - lastEqu - scndLastEqu);\r\n len = (len >> 2) - lastEqu;\r\n while (len--) {\r\n save = ranks[input.charCodeAt(++i)] << 18;\r\n save |= ranks[input.charCodeAt(++i)] << 12;\r\n save |= ranks[input.charCodeAt(++i)] << 6;\r\n save |= ranks[input.charCodeAt(++i)];\r\n output[++outptr] = save >>> 16;\r\n output[++outptr] = save >>> 8;\r\n output[++outptr] = save;\r\n }\r\n if (lastEqu) {\r\n save = ranks[input.charCodeAt(++i)] << 18;\r\n save |= ranks[input.charCodeAt(++i)] << 12;\r\n save |= ranks[input.charCodeAt(++i)] << 6;\r\n output[++outptr] = save >>> 16;\r\n if (!scndLastEqu)\r\n output[++outptr] = save >>> 8;\r\n }\r\n return output;\r\n}\r\n\r\nGlobalContext.registerType(DataConverter);\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Představuje šifrovanou hodnotu atributu aplikačního objektu spolu s dalšími informacemi.\r\n * @includeToDoc\r\n */\r\nexport interface IEncAttrValue extends IAttrValue {\r\n /**\r\n * Zda obsahuje právě zašifrovanou nebo rozšifrovanou hodnotu\r\n */\r\n readonly isEncrypted: boolean;\r\n\r\n /**\r\n * True, pokud atribut obsahuje zašifrovanou hodnotu.\r\n */\r\n readonly hasEncryptedValue: boolean;\r\n\r\n /**\r\n * Dešifruje hodnotu atributu předaným klíčem a pomocí deserializeru ji převede na původní datový typ\r\n * @param key Dešifrovací klíč\r\n * @returns True pokud se povedlo dešifrovat nebo to nebylo třeba, jinak false\r\n */\r\n decrypt(key: CryptoKey): Promise;\r\n}\r\n\r\nexport class IEncAttrValue {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" &&\r\n Reflect.has(instance, \"isEncrypted\") &&\r\n Reflect.has(instance, \"decrypt\");\r\n }\r\n}\r\n\r\n/** Představuje řetězcovou hodnotu atributu aplikačního objektu. */\r\nexport interface IAttrStringValue extends IAttrValue {\r\n /**\r\n * Příznak indikující, že se jedná o zkrácenou hodnotu atributu.\r\n */\r\n shortened: boolean;\r\n}\r\n\r\nexport class IAttrStringValue {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" &&\r\n Reflect.has(instance, \"shortened\");\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { IAttrStringValue } from \"./IAttrValue\";\r\n\r\nexport class AttrValue implements IAttrValue {\r\n protected _value: any;\r\n\r\n constructor(value: any) {\r\n this._value = value;\r\n }\r\n\r\n public valueOf(): any {\r\n return this._value;\r\n }\r\n\r\n public toString(): string {\r\n return this._value != null ? this._value.toString() : \"\";\r\n }\r\n}\r\n\r\n/** Představuje řetězcovou hodnotu atributu aplikačního objektu. */\r\nexport class AttrStringValue extends AttrValue implements IAttrStringValue {\r\n public readonly shortened: boolean;\r\n\r\n constructor(value: any, shortened: boolean = false) {\r\n super(value);\r\n this.shortened = shortened;\r\n }\r\n\r\n public override toString(): string {\r\n return this._value != null ? this.shortened ? this._value.toString() + \"...\" : this._value.toString() : \"\";\r\n }\r\n}\r\n","export class Globalization {\r\n private static _actualCulture: string = \"cs-CZ\";\r\n private static _numberFormat: INumberFormatInfo;\r\n private static _timeFormat: ITimeInfo;\r\n\r\n public static get actualCulture(): string {\r\n return Globalization._actualCulture;\r\n }\r\n\r\n /**\r\n * Vrací kulturu ve standardu ISO 639-1 nebo v kombinaci se zkratkou státu, tedy buď en nebo en-US, en-GB, ...\r\n */\r\n public static set actualCulture(value: string) {\r\n Globalization._actualCulture = value;\r\n Globalization._numberFormat = Globalization.getNumberFormat(value);\r\n Globalization._timeFormat = Globalization.getTimeFormat(value);\r\n }\r\n\r\n /**\r\n * Vrací kulturu ve standardu ISO 639-1, tedy dvoupísmenný formát, např. en, cs, ...\r\n */\r\n public static get actualCultureISO639_1(): string {\r\n return Globalization._actualCulture && Globalization._actualCulture.length > 2 ? Globalization._actualCulture.substr(0, 2) : Globalization._actualCulture;\r\n }\r\n\r\n public static formatValue(value: any, format?: Intl.NumberFormatOptions | Intl.DateTimeFormatOptions): string {\r\n return value && value.toLocaleString ? value.toLocaleString(Globalization._actualCulture, format) : value === null || value === undefined ? \"\" : value + \"\";\r\n }\r\n\r\n public static get numberFormat(): INumberFormatInfo {\r\n if (!Globalization._numberFormat)\r\n Globalization._numberFormat = Globalization.getNumberFormat(Globalization.actualCulture);\r\n return Globalization._numberFormat;\r\n }\r\n\r\n public static get timeFormat(): ITimeInfo {\r\n if (!Globalization._timeFormat)\r\n Globalization._timeFormat = Globalization.getTimeFormat(Globalization.actualCulture);\r\n return Globalization._timeFormat;\r\n }\r\n\r\n private static _numberFormatCache: Map = new Map();\r\n /**\r\n * Vrátí number format podle předané kultury\r\n * @param culture požadovaná kultura - pro aktuální kulturu použijte property NumberFormat\r\n */\r\n public static getNumberFormat(culture: string): INumberFormatInfo {\r\n const lowerCult = culture.toLowerCase();\r\n if (Globalization._numberFormatCache.has(lowerCult)) return Globalization._numberFormatCache.get(lowerCult) as INumberFormatInfo;\r\n\r\n const numReplace = \"#cv#\";\r\n const oneInLoc = (1).toLocaleString(culture, { style: \"decimal\", maximumFractionDigits: 0 });\r\n const twoInLoc = (2).toLocaleString(culture, { style: \"decimal\", maximumFractionDigits: 0 });\r\n const minusOneInLoc = (-1).toLocaleString(culture, { style: \"decimal\", maximumFractionDigits: 0 });\r\n const oneInLocRegex = new RegExp(oneInLoc, \"g\");\r\n\r\n const minusReplacePosition = minusOneInLoc.replace(oneInLoc, numReplace);\r\n\r\n const curCultureIntGroupCountString = (2111111111).toLocaleString(culture, { useGrouping: true });\r\n const curCultureIntString = (1111).toLocaleString(culture, { useGrouping: true });\r\n const curCultureFloatString = (1.1).toLocaleString(culture);\r\n\r\n const orientation: INumberFormatInfoOrienation = curCultureIntGroupCountString.indexOf(twoInLoc) < curCultureIntGroupCountString.indexOf(oneInLoc) ? INumberFormatInfoOrienation.leftToRight : INumberFormatInfoOrienation.rightToLeft;\r\n\r\n const decimalSeparator = curCultureFloatString.replace(oneInLocRegex, \"\");\r\n const groupSeparator = curCultureIntString.replace(oneInLocRegex, \"\");\r\n\r\n let secondaryGroup = 0;\r\n let primaryGroup = 0;\r\n for (let i = curCultureIntGroupCountString.length - 1, z = 0; i >= 0; i--) {\r\n const c = curCultureIntGroupCountString[i];\r\n if (c === groupSeparator) {\r\n if (++z >= 2) break;\r\n } else {\r\n if (z === 0) secondaryGroup++;\r\n else primaryGroup++;\r\n }\r\n }\r\n\r\n const numbers: string[] = [];\r\n let useArabicNum = true;\r\n\r\n for (let i = 0; i < 10; i++) {\r\n const num = (i).toLocaleString(culture, { style: \"decimal\", maximumFractionDigits: 0 });\r\n if (num != \"\" + i) useArabicNum = false;\r\n numbers.push(num);\r\n }\r\n\r\n const nf: INumberFormatInfo = {\r\n decimalSeparator: decimalSeparator,\r\n groupSeparator: groupSeparator,\r\n groupSize: primaryGroup,\r\n secondaryGroupSize: secondaryGroup,\r\n orientation: orientation,\r\n numbers: numbers,\r\n useArabicNumbers: useArabicNum,\r\n positions: {\r\n minus: minusReplacePosition,\r\n },\r\n };\r\n\r\n Globalization._numberFormatCache.set(lowerCult, nf);\r\n\r\n return nf;\r\n }\r\n\r\n private static _currencyDataCache: Map = new Map();\r\n\r\n /**\r\n * Vrátí informace o zobrazení mění v určitém jazyce\r\n * @param culture Nastavení kultůry, ktera se má použít pro formát měny\r\n * @param currency Měna, která se má v dané kultůře naformátovat\r\n *\r\n * @returns Vrací typ ICurrencyInfo, kde jsou informace o znaku, symbolu, lokalizovanem názvu měny a pozici\r\n * - Informace o pozici se vrati ve formatu obsahujici specialni frazi:\r\n * #cv# - je treba nahradit danou ciselnou hodnotou\r\n *\r\n */\r\n public static getCurrencyFormatInfo(culture: string, currency: string): ICurrencyInfo {\r\n const idCD = (culture + \"|\" + currency).toLowerCase();\r\n const cultureData = this.getNumberFormat(culture);\r\n const numReplace = \"#cv#\";\r\n\r\n if (this._currencyDataCache.has(idCD)) return this._currencyDataCache.get(idCD) as ICurrencyInfo;\r\n\r\n const ci: ICurrencyInfo = {\r\n minorUnit: 2,\r\n symbol: \"\",\r\n code: \"\",\r\n name: \"\",\r\n positions: {\r\n symbol: \"\",\r\n code: \"\",\r\n name: \"\",\r\n },\r\n };\r\n\r\n const n1 = (1).toLocaleString(culture, { style: \"decimal\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n const curSymRegex = new RegExp(\"\\\\s*\" + n1 + \"\\\\s*\");\r\n\r\n const currencySymbolFull = (1).toLocaleString(culture, { style: \"currency\", currency: currency, currencyDisplay: \"symbol\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n const currencyNameFull = (1).toLocaleString(culture, { style: \"currency\", currency: currency, currencyDisplay: \"name\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n const currencyCodeFull = (1).toLocaleString(culture, { style: \"currency\", currency: currency, currencyDisplay: \"code\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n\r\n const currencySymbol = currencySymbolFull.replace(curSymRegex, \"\");\r\n const currencyName = currencyNameFull.replace(curSymRegex, \"\");\r\n const currencyCode = currencyCodeFull.replace(curSymRegex, \"\");\r\n\r\n const minorUnitFull = (1.222222224).toLocaleString(culture, { style: \"currency\", currency: currency, currencyDisplay: \"code\" });\r\n const minorUnit = minorUnitFull.replace(n1, \"\").replace(cultureData.decimalSeparator, \"\").replace(currencyCode, \"\").replace(/\\s+/gi, \"\");\r\n ci.minorUnit = minorUnit.length;\r\n\r\n ci.symbol = currencySymbol;\r\n ci.code = currencyCode;\r\n ci.name = currencyName;\r\n\r\n ci.positions.symbol = currencySymbolFull.replace(n1, numReplace);\r\n ci.positions.code = currencyCodeFull.replace(n1, numReplace);\r\n ci.positions.name = currencyNameFull.replace(n1, numReplace);\r\n\r\n this._currencyDataCache.set(idCD, ci);\r\n\r\n return ci;\r\n }\r\n\r\n private static _percentDataCache: Map = new Map();\r\n /**\r\n * Vrátí informace o zobrazení procent v určitém jazyce\r\n * @param culture Nastavení kultůry, ktera se má použít pro formát procent\r\n *\r\n * @returns Vrací typ INumberFormatPercentInfo, kde jsou informace o symbolu a pozici\r\n * - Informace o pozici se vrati ve formatu obsahujici specialni frazi:\r\n * #cv# - je treba nahradit danou ciselnou hodnotou\r\n */\r\n public static getPercentFormatInfo(culture: string): INumberFormatPercentInfo {\r\n const lowerCult = culture.toLowerCase();\r\n if (this._percentDataCache.has(lowerCult)) return this._percentDataCache.get(lowerCult) as INumberFormatPercentInfo;\r\n\r\n const n1 = (0).toLocaleString(culture, { style: \"decimal\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n const curSymRegex = new RegExp(\"\\\\s*\" + n1 + \"\\\\s*\");\r\n\r\n const percentSymbolFull = (0).toLocaleString(culture, { style: \"percent\", minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n const percentSymbol = percentSymbolFull.replace(curSymRegex, \"\");\r\n\r\n const val = {\r\n symbol: percentSymbol,\r\n position: percentSymbolFull.replace(n1, \"#cv#\"),\r\n };\r\n\r\n this._percentDataCache.set(lowerCult, val);\r\n\r\n return val;\r\n }\r\n\r\n /**\r\n * Vrátí regulární výrazy pro kontrolu času na základě vstupního parametru\r\n * @param timeFormat Časový formát pro ktere se budou vyhodnocovat regulární výrazy\r\n */\r\n private static _getTimeRegExp(timeFormat: ITimeInfo): ITimeInfoRegExp {\r\n const separator = timeFormat.separator === \".\" ? \"\\\\.\" : timeFormat.separator;\r\n\r\n if (timeFormat.hour12) {\r\n //#region Nastaveni regexp\r\n let validTime12 = /^(0?[1-9]?|1[0-2]?):?([0-5]\\d?)?:?([0-5]\\d?)?$/i;\r\n const time12HourSec = new RegExp(\r\n (timeFormat.amPmOnRight\r\n ? \"^\"\r\n : `((${timeFormat.amText}|${timeFormat.pmText})\\\\s?)?`) +\r\n `(0?[1-9]|1[0-2])${separator}[0-5][0-9]${separator}[0-5][0-9]` +\r\n (timeFormat.amPmOnRight\r\n ? `(\\\\s?(${timeFormat.amText}|${timeFormat.pmText}))?$`\r\n : \"$\"), \"i\");\r\n const time12HourMin = new RegExp(\r\n (timeFormat.amPmOnRight\r\n ? \"^\"\r\n : `((${timeFormat.amText}|${timeFormat.pmText})\\\\s?)?`) +\r\n `(0?[1-9]|1[0-2])${separator}[0-5][0-9]` +\r\n (timeFormat.amPmOnRight\r\n ? `(\\\\s?(${timeFormat.amText}|${timeFormat.pmText}))?$`\r\n : \"$\"), \"i\");\r\n //const TIME12HOUR = new RegExp(\r\n // (timeFormat.AmPmOnRight\r\n // ? \"^\"\r\n // : `((${timeFormat.AmText}|${timeFormat.PmText})\\\\s?)?`) +\r\n // `(0?[1-9]|1[0-2])${separator}00` +\r\n // (timeFormat.AmPmOnRight\r\n // ? `(\\\\s?(${timeFormat.AmText}|${timeFormat.PmText}))?$`\r\n // : \"$\"), \"i\");\r\n const time12Hour = new RegExp(\r\n (timeFormat.amPmOnRight\r\n ? \"^\"\r\n : `((${timeFormat.amText}|${timeFormat.pmText})\\\\s?)?`) +\r\n \"(0?[1-9]|1[0-2])\" +\r\n (timeFormat.amPmOnRight\r\n ? `(\\\\s?(${timeFormat.amText}|${timeFormat.pmText}))?$`\r\n : \"$\"), \"i\");\r\n\r\n if (timeFormat.useAmPm) {\r\n let validTime12Str = `(0?[1-9]?|1[0-2]?)${separator}?([0-5]\\\\d?)?${separator}?([0-5]\\\\d?)?`;\r\n let validTime12AmpmText = \"(\";\r\n for (let i = 0, len = timeFormat.pmText.length; i < len; i++) {\r\n const char = timeFormat.pmText[i];\r\n validTime12AmpmText += `${char}${i === 0 ? \"\" : \"?\"}`;\r\n }\r\n validTime12AmpmText += \"|\";\r\n for (let i = 0, len = timeFormat.amText.length; i < len; i++) {\r\n const char = timeFormat.amText[i];\r\n validTime12AmpmText += `${char}${i === 0 ? \"\" : \"?\"}`;\r\n }\r\n validTime12AmpmText += \")?\";\r\n\r\n if (timeFormat.amPmOnRight) validTime12Str = `^${validTime12Str}\\\\s?${validTime12AmpmText}$`;\r\n else validTime12Str = `^${validTime12AmpmText}\\\\s?${validTime12Str}$`;\r\n\r\n validTime12 = new RegExp(validTime12Str, \"i\");\r\n }\r\n //#endregion Nastaveni regexp\r\n return {\r\n timeHour: time12Hour,\r\n timeMin: time12HourMin,\r\n timeSec: time12HourSec,\r\n timeTypeValid: validTime12,\r\n };\r\n } else {\r\n //const TIME24HOUR = new RegExp(`^(0?[0-9]|1[0-9]|2[0-4])${separator}00$`);\r\n const time24Hour = new RegExp(\"^(0?[0-9]|1[0-9]|2[0-4])$\");\r\n const time24HourMin = new RegExp(`^(0?[0-9]|1[0-9]|2[0-4])${separator}[0-5][0-9]$`);\r\n const time24HourSec = new RegExp(`^(0?[0-9]|1[0-9]|2[0-4])${separator}[0-5][0-9]${separator}[0-5][0-9]$`);\r\n const validTime24 = new RegExp(`^(0?[0-9]?|1[0-9]?|2[0-4]?)${separator}?([0-5][0-9]?)?${separator}?([0-5][0-9]?)?$`);\r\n\r\n return {\r\n timeHour: time24Hour,\r\n timeMin: time24HourMin,\r\n timeSec: time24HourSec,\r\n timeTypeValid: validTime24,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí formátovací informace o čase na základě vstupního parametru\r\n * @param culture kultura, pro kterou bude vrácen její formát - pro aktuální kulturu použijte property TimeFormat\r\n */\r\n public static getTimeFormat(culture: string): ITimeInfo {\r\n //let ampmpattern = /^(0?[1-9]|1[0-2]):?([0-5]\\d)?:?([0-5]\\d)?(\\s?(AM|PM))$/i;\r\n const amppmtextPattern = /([0-2]?\\d)(\\D)([0-5]\\d)(\\D)([0-5]\\d)/i;\r\n const separatorRegExp = /(?:[0-2]?\\d)(\\D)(?:[0-5]\\d)(?:\\D)(?:[0-5]\\d)/i;\r\n let frmtTime: string;\r\n let frmtTimeAm: string;\r\n const d = new Date;\r\n const d_am = new Date;\r\n d_am.setHours(2, 0, 0, 0);\r\n d.setHours(14, 0, 0, 0);\r\n\r\n const res: ITimeInfo = {\r\n hour12: false,\r\n useAmPm: false,\r\n pmText: \"\",\r\n amText: \"\",\r\n separator: \":\",\r\n amPmOnRight: true,\r\n };\r\n\r\n try {\r\n frmtTime = d.toLocaleTimeString(culture);\r\n frmtTimeAm = d_am.toLocaleTimeString(culture);\r\n } catch (e) {\r\n frmtTime = d.toLocaleTimeString();\r\n frmtTimeAm = d_am.toLocaleTimeString();\r\n }\r\n const am = frmtTimeAm.replace(amppmtextPattern, \"\");\r\n if (am[0] !== \" \") res.amPmOnRight = false;\r\n\r\n res.amText = am.trim();\r\n res.pmText = frmtTime.replace(amppmtextPattern, \"\").trim();\r\n\r\n if (res.amText.length > 0) res.useAmPm = true;\r\n const sep = separatorRegExp.exec(frmtTime);\r\n if (sep && sep.length > 1) {\r\n res.separator = sep[1];\r\n }\r\n\r\n const hour12Text = frmtTime.replace(/[\\D0]/ig, \"\");\r\n if (hour12Text.length === 1) res.hour12 = true;\r\n\r\n //let ampmpattern_text = \"(0?[1-9]|1[0-2]):?([0-5]\\\\d)?:?([0-5]\\\\d)?\";\r\n //if (res.AmPmOnRight) ampmpattern_text = `^${ampmpattern_text}(\\\\s?(${res.AmText}|${res.PmText}))$`;\r\n //else ampmpattern_text = `((${res.AmText}|${res.PmText})\\\\s?)${ampmpattern_text}$`;\r\n\r\n //const ampmpattern = new RegExp(ampmpattern_text, \"i\");\r\n //if (ampmpattern.test(frmt_time)) res.useAmPm = true;\r\n\r\n // Nacteni regularnich vyrazu\r\n res.regExp = Globalization._getTimeRegExp(res);\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * Vrátí formátovací informace o datu na základě vstupního parametru\r\n * @param culture kultura, pro kterou bude vrácen její formát\r\n */\r\n public static getDateFormat(culture: string): IDateInfo {\r\n const testDate = new Date(5555, 0, 2); // testovací datum\r\n let frmtDate: string;\r\n const ordDate: Array = [];\r\n let separatorAfterDay: string = \"\";\r\n let separatorAfterMonth: string = \"\";\r\n let separatorAfterYear: string = \"\";\r\n\r\n try {\r\n frmtDate = testDate.toLocaleDateString(culture);\r\n } catch (e) {\r\n frmtDate = testDate.toLocaleDateString();\r\n }\r\n\r\n let year = 0; // 0 - nic, 1 - zapisuje, 2 - zapsano\r\n let month = 0;\r\n let day = 0;\r\n let yearNumCnt = 0;\r\n let monthNumCnt = 0;\r\n let dayNumCnt = 0;\r\n\r\n for (let i = 0, lng = frmtDate.length; i < lng; i++) {\r\n const num = parseInt(frmtDate[i]);\r\n if (!isNaN(num)) {\r\n if (num === 5) {\r\n yearNumCnt++;\r\n if (month === 1) month = 2;\r\n if (day === 1) day = 2;\r\n if (year === 0) {\r\n year = 1;\r\n ordDate.push(DateTokenOrder.year);\r\n }\r\n } else if (num === 1) {\r\n monthNumCnt++;\r\n if (year === 1) year = 2;\r\n if (day === 1) day = 2;\r\n if (month === 0) {\r\n month = 1;\r\n ordDate.push(DateTokenOrder.month);\r\n }\r\n } else if (num === 2) {\r\n dayNumCnt++;\r\n if (year === 1) year = 2;\r\n if (month === 1) month = 2;\r\n if (day === 0) {\r\n day = 1;\r\n ordDate.push(DateTokenOrder.day);\r\n }\r\n } else if (num === 0) {\r\n if (year === 1) year = 2;\r\n if (day === 1) day = 2;\r\n if (month === 1) month = 2;\r\n\r\n if ((i + 1) < lng) {\r\n const n1 = parseInt(frmtDate[i + 1]);\r\n if (!isNaN(n1)) {\r\n if (n1 === 1) monthNumCnt++;\r\n else if (n1 === 2) dayNumCnt++;\r\n }\r\n }\r\n }\r\n } else {\r\n if (year === 1) separatorAfterYear += frmtDate[i];\r\n if (day === 1) separatorAfterDay += frmtDate[i];\r\n if (month === 1) separatorAfterMonth += frmtDate[i];\r\n }\r\n }\r\n\r\n const ret: IDateInfo = {\r\n dateOrder: ordDate,\r\n year4Digits: yearNumCnt === 4,\r\n monthBeginZero: monthNumCnt > 1,\r\n dayBeginZero: dayNumCnt > 1,\r\n separators: {\r\n day: separatorAfterDay,\r\n month: separatorAfterMonth,\r\n year: separatorAfterYear,\r\n },\r\n };\r\n\r\n ret.regExp = Globalization._getDateRegexp(ret);\r\n\r\n return ret;\r\n }\r\n\r\n private static _getDateRegexp(dateFormat: IDateInfo): { date: RegExp; validate: RegExp } {\r\n let validDate = \"^\";\r\n let fullDate = \"^\";\r\n const f_updateSeparator = (sep: string): string => {\r\n let newSep = \"\";\r\n for (let i = 0; i < sep.length; i++) {\r\n if (sep[i] === \".\") newSep += \"\\\\.\";\r\n else newSep += sep[i];\r\n }\r\n\r\n return newSep;\r\n };\r\n for (const ord of dateFormat.dateOrder) {\r\n if (ord === DateTokenOrder.day) {\r\n if (dateFormat.dayBeginZero) {\r\n fullDate += \"(0[0-9]|[1-2][0-9]|3[0-1])\";\r\n } else {\r\n fullDate += \"([0-9]|[1-2][1-9]|3[0-1])\";\r\n }\r\n fullDate += f_updateSeparator(dateFormat.separators.day);\r\n } else if (ord === DateTokenOrder.month) {\r\n if (dateFormat.monthBeginZero) {\r\n fullDate += \"(0[0-9]|1[0-2])\";\r\n } else {\r\n fullDate += \"([0-9]|1[0-2])\";\r\n }\r\n fullDate += f_updateSeparator(dateFormat.separators.month);\r\n } else if (ord === DateTokenOrder.year) {\r\n if (dateFormat.year4Digits) {\r\n fullDate += \"([0-9]{4})\";\r\n } else {\r\n fullDate += \"([0-9]{2})\";\r\n }\r\n fullDate += f_updateSeparator(dateFormat.separators.year);\r\n }\r\n }\r\n\r\n fullDate += \"$\";\r\n validDate += \"$\";\r\n\r\n return {\r\n date: new RegExp(fullDate, \"i\"),\r\n validate: new RegExp(validDate, \"i\"),\r\n };\r\n }\r\n\r\n public static getStandardDateTimeOptions(shortFormat: string): Intl.DateTimeFormatOptions | undefined {\r\n switch (shortFormat) {\r\n case \"d\": // Short date pattern\r\n return {\r\n //year: 'numeric', month: '2-digit', day: '2-digit'\r\n year: \"numeric\", month: \"numeric\", day: \"numeric\",\r\n };\r\n case \"D\": { // Long date pattern\r\n const n = Globalization._actualCulture;\r\n return (n === \"en-US\" || n.substr(0, 2) === \"de\")\r\n ? { year: \"numeric\", month: \"long\", day: \"numeric\", weekday: \"long\" }\r\n : { year: \"numeric\", month: \"long\", day: \"numeric\" };\r\n }\r\n case \"f\": { // Full date / time pattern(short time)\r\n const d: any = Globalization.getStandardDateTimeOptions(\"D\");\r\n const t: any = Globalization.getStandardDateTimeOptions(\"t\");\r\n for (const att in t) {\r\n if (Object.prototype.hasOwnProperty.call(t, att)) {\r\n d[att] = t[att];\r\n }\r\n }\r\n return d;\r\n }\r\n case \"F\": { // Full date / time pattern(long time)\r\n const d: any = Globalization.getStandardDateTimeOptions(\"D\");\r\n const t: any = Globalization.getStandardDateTimeOptions(\"T\");\r\n for (const att in t) {\r\n if (Object.prototype.hasOwnProperty.call(t, att)) {\r\n d[att] = t[att];\r\n }\r\n }\r\n return d;\r\n }\r\n case \"g\": // General date / time pattern(short time)\r\n return { year: \"numeric\", month: \"numeric\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\" };\r\n //return { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' };\r\n case \"G\": // General date / time pattern(long time)\r\n return { year: \"numeric\", month: \"numeric\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\", second: \"numeric\" };\r\n //return { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' };\r\n case \"M\":\r\n case \"m\": // Month / day pattern\r\n //return { month: 'long', day: '2-digit' };\r\n return { month: \"long\", day: \"numeric\" };\r\n case \"t\": // Short time pattern\r\n return { hour: \"numeric\", minute: \"2-digit\" };\r\n //return { hour: '2-digit', minute: '2-digit' };\r\n case \"T\": // Long time pattern\r\n //return { hour: '2-digit', minute: '2-digit', second: '2-digit' };\r\n return { hour: \"numeric\", minute: \"2-digit\", second: \"2-digit\" };\r\n case \"U\": { // Universal full date / time pattern\r\n const o = Globalization.getStandardDateTimeOptions(\"F\");\r\n if (o) o.timeZone = \"UTC\";\r\n return o;\r\n }\r\n case \"Y\":\r\n case \"y\": // Year month pattern\r\n return { year: \"numeric\", month: \"long\" };\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n\r\nexport interface ICultureInfo {\r\n name: string;\r\n englishName: string;\r\n nativeName: string;\r\n numberFormat: INumberFormatInfo;\r\n dateTimeFormat: IDateTimeFormatInfo;\r\n}\r\n\r\n/**\r\n * Interface pro číselný formát\r\n */\r\nexport interface INumberFormatInfo {\r\n /**\r\n * Oddělovač desetinných míst\r\n */\r\n decimalSeparator: string;\r\n /**\r\n * Oddělovač tisíců\r\n */\r\n groupSeparator: string;\r\n /**\r\n * Velikost skupiny pro oddělovač\r\n */\r\n groupSize: number;\r\n /**\r\n * Nektere jazyky pouzivaji dvojite formatovani, treba en-IN pouziva cislo ve formatu 1,00,00,000\r\n */\r\n secondaryGroupSize: number;\r\n /**\r\n * Orientace psaní čísel\r\n */\r\n orientation: INumberFormatInfoOrienation;\r\n /**\r\n * Mapa čísel pro danou culture, pokud nejsou psány arabskymi pismeny.\r\n * Mapování odpovídá [0] => 0, [1] => 1 ... [9] => 9\r\n */\r\n numbers: string[];\r\n /**\r\n * Indikace použití standardních arabských čísel\r\n */\r\n useArabicNumbers: boolean;\r\n /**\r\n * Poziční stringy, obsahujici nahrazujici sekvenci #cv#\r\n * - minus - pozicni string pro minus (- #cv#)\r\n */\r\n positions: {\r\n minus: string;\r\n };\r\n}\r\n\r\nexport enum INumberFormatInfoOrienation {\r\n leftToRight,\r\n rightToLeft,\r\n}\r\n\r\n/**\r\n * Interface pro zápis měny\r\n */\r\nexport interface ICurrencyInfo {\r\n minorUnit: number;\r\n /**\r\n * Symbol měny (€)\r\n */\r\n symbol: string;\r\n /**\r\n * Kód měny (EUR)\r\n */\r\n code: string;\r\n /**\r\n * Lokalizovaný název měny (Euro)\r\n */\r\n name: string;\r\n /**\r\n * Poziční stringy, obsahujici nahrazujici sekvenci #cv#\r\n * - symbol - pozicni string pro minus (#cv# €)\r\n * - code - pozicni string pro minus (#cv# EUR)\r\n */\r\n positions: {\r\n symbol: string;\r\n code: string;\r\n name: string;\r\n };\r\n}\r\n\r\nexport interface INumberFormatPercentInfo {\r\n symbol: string;\r\n position: string;\r\n}\r\n\r\nexport interface IDateTimeFormatInfo {\r\n monthNames: string[];\r\n dayNames: string[];\r\n abbreviatedMonthNames: string[];\r\n abbreviatedDayNames: string[];\r\n pmDesignator: string;\r\n amDesignator: string;\r\n formatPatterns: IFormatPatterns;\r\n}\r\n\r\nexport interface IFormatPatterns {\r\n shortDate: string;\r\n longDate: string;\r\n shortTime: string;\r\n longTime: string;\r\n fullDateTime: string;\r\n sortableDateTime: string;\r\n universalSortableDateTime: string;\r\n rfc1123: string;\r\n monthDay: string;\r\n yearMonth: string;\r\n}\r\n\r\nexport interface ITimeInfoRegExp {\r\n timeHour: RegExp;\r\n timeMin: RegExp;\r\n timeSec: RegExp;\r\n timeTypeValid: RegExp;\r\n}\r\n\r\nexport interface ITimeInfo {\r\n hour12: boolean;\r\n useAmPm: boolean;\r\n amText: string;\r\n pmText: string;\r\n separator: string;\r\n amPmOnRight: boolean; // pozice am/pm v textu\r\n regExp?: ITimeInfoRegExp;\r\n}\r\n\r\nexport interface IDateInfo {\r\n dateOrder: Array;\r\n year4Digits: boolean;\r\n monthBeginZero: boolean;\r\n dayBeginZero: boolean;\r\n separators: {\r\n day: string;\r\n month: string;\r\n year: string;\r\n };\r\n regExp?: IDateInfoRegExp;\r\n}\r\n\r\nexport interface IDateInfoRegExp {\r\n date: RegExp;\r\n validate: RegExp;\r\n}\r\n\r\nexport enum DateTokenOrder {\r\n day,\r\n month,\r\n year,\r\n}\r\n","import BigNumber from \"bignumber.js\";\r\n\r\nimport { Globalization, INumberFormatInfoOrienation } from \"../../Dom/Globalization\";\r\nimport { IBigNumber } from \"./IBigNumber\";\r\n\r\nexport class BigNumberProxy implements IBigNumber {\r\n private bn: BigNumber;\r\n private _originalValue: string | number | BigNumber;\r\n\r\n private __length: number | undefined = undefined;\r\n private get _length(): number {\r\n if (this.__length) return this.__length;\r\n let strNum: string = \"\";\r\n\r\n if (this._originalValue == undefined) {\r\n return 0;\r\n } else if (typeof this._originalValue === \"string\") {\r\n strNum = this._originalValue;\r\n } else if (typeof this._originalValue === \"number\") {\r\n strNum = this._originalValue.toPrecision();\r\n } else {\r\n this.__length = parseInt(this._originalValue.toPrecision(1).replace(/\\d[.?\\d]*e[+|-](\\d+)/, \"$1\")) + 1;\r\n return this.__length;\r\n }\r\n\r\n let lng = strNum.length;\r\n if (strNum.includes(\".\")) lng--;\r\n if (strNum.includes(\"-\")) lng--;\r\n\r\n this.__length = lng;\r\n return this.__length;\r\n }\r\n\r\n constructor(value: string | number | BigNumber) {\r\n this._originalValue = value;\r\n this.bn = new BigNumber(value);\r\n }\r\n\r\n public compare(value: any): boolean {\r\n if (value instanceof BigNumberProxy) {\r\n return this.toString() == value.toString();\r\n }\r\n return false;\r\n }\r\n\r\n public toString(): string {\r\n if (this.bn.integerValue().toString() == \"0\" || this._length == 0) return this.bn.toPrecision();\r\n return this.bn.toPrecision(this._length);\r\n }\r\n\r\n public toLocaleString(locales?: string, options?: Intl.NumberFormatOptions): string {\r\n if (!locales) locales = Globalization.actualCulture;\r\n\r\n // vrátí zadaný počet nul\r\n const f_getZero = (cnt: number) => {\r\n let z = \"\";\r\n for (let i = 0; i < cnt; i++) {\r\n z += \"0\";\r\n }\r\n\r\n return z;\r\n };\r\n\r\n // zkontroluje zda předaná čáselná část obsahuje jen nuly\r\n const f_checkOnlyZero = (num: string) => {\r\n if (!num) return true;\r\n\r\n for (const c of num) if (c != \"0\") return false;\r\n\r\n return true;\r\n };\r\n\r\n const numFormat = Globalization.getNumberFormat(locales);\r\n const opt = BigNumberProxy._getLocaleOptions(locales, options);\r\n let bn = new BigNumber(this.bn.toPrecision(this._length));\r\n\r\n let replaceText: string | undefined = undefined;\r\n\r\n // Zpracování standartních nastaveni pro NumberOptions v toLocaleString\r\n if (opt.style == \"percent\") {\r\n bn = bn.multipliedBy(100);\r\n const percentInfo = Globalization.getPercentFormatInfo(locales);\r\n replaceText = percentInfo.position;\r\n }\r\n if (opt.style == \"currency\" && opt.currency) {\r\n const currencyInfo = Globalization.getCurrencyFormatInfo(locales, opt.currency);\r\n if (opt.currencyDisplay == \"symbol\") replaceText = currencyInfo.positions.symbol;\r\n else if (opt.currencyDisplay == \"code\") replaceText = currencyInfo.positions.code;\r\n else if (opt.currencyDisplay == \"name\") replaceText = currencyInfo.positions.name;\r\n }\r\n\r\n // toPrecision vrátí číslo bez zaokrouhlování tak jak je v invariantCulture\r\n let numParts = bn.toPrecision(this._length).split(\".\");\r\n\r\n let intPart = numParts[0]; // celočíselná část\r\n let decPart = numParts.length == 2 ? numParts[1] : \"\"; // desetinná část\r\n const isPositive = intPart[0] != \"-\";\r\n\r\n if (!isPositive) intPart = intPart.substring(1);\r\n\r\n // kontrola na maximum desetinnych mist\r\n if (opt.maximumFractionDigits != undefined) {\r\n if (opt.maximumFractionDigits < decPart.length) {\r\n // orezanim desetinnych mist muze dojit k zaokrouhleni,\r\n // a proto vytvoříme znova číslo pomoci knihovyn BigNumber a zaokrouhlíme pomocí toFixed,\r\n // ktera by měla zaokrouhlení správně vyhodnotit a znova rozdelime na dve casti\r\n const bn = new BigNumber(intPart + \".\" + decPart);\r\n numParts = bn.toFixed(opt.maximumFractionDigits).split(\".\");\r\n intPart = numParts[0];\r\n decPart = numParts[1];\r\n }\r\n }\r\n\r\n // kontrola na vyznamna cisla\r\n if (opt.maximumSignificantDigits != undefined) {\r\n if (opt.maximumSignificantDigits < decPart.length + intPart.length) {\r\n const bn = new BigNumber(intPart + \".\" + decPart);\r\n const bn_string = bn.precision(opt.maximumSignificantDigits).toString();\r\n if (opt.maximumSignificantDigits <= intPart.length && intPart != \"0\") {\r\n // tahle cast je tu proto, ze tahle knihovna cislo, ktere \"zkracuje\" svou celou cast, da do formatu 1.2e6 coz je potreba eliminovat\r\n const originalLength = intPart.length;\r\n intPart = bn_string.replace(\".\", \"\");\r\n const eIndex = intPart.indexOf(\"e\");\r\n intPart = eIndex >= 0 ? intPart.substring(0, eIndex) : intPart;\r\n\r\n intPart += f_getZero(originalLength - intPart.length);\r\n decPart = \"\";\r\n } else {\r\n numParts = bn_string.split(\".\");\r\n intPart = numParts[0];\r\n decPart = numParts[1];\r\n }\r\n }\r\n }\r\n\r\n if (f_checkOnlyZero(decPart)) decPart = \"\";\r\n\r\n let beforeDecimalPoint = \"\";\r\n let afterDecimalPoint = \"\";\r\n let f_appendChar: (ch: string, target: string) => string;\r\n\r\n // zpracovani funkce pro zapis cisel v opacne orientaci znaků\r\n if (numFormat.orientation == INumberFormatInfoOrienation.leftToRight) {\r\n f_appendChar = (ch: string, target: string) => {\r\n return ch + target;\r\n };\r\n } else {\r\n f_appendChar = (ch: string, target: string) => {\r\n return target + ch;\r\n };\r\n }\r\n\r\n for (let i = intPart.length - 1, grpCnt = 0, chCnt = 1; i >= 0; i--) {\r\n const c = intPart[i];\r\n beforeDecimalPoint = f_appendChar(c, beforeDecimalPoint);\r\n\r\n // zpracovani groupování čísel podle dané culture\r\n if (opt.useGrouping) {\r\n // secondaryGroupSize, nektere kultury maji pro prvni groupu jina pravidla nez pro zbyvajici\r\n // groupani se vztahuje jen na celociselnou cast\r\n if ((chCnt == numFormat.secondaryGroupSize && grpCnt == 0 || chCnt == numFormat.groupSize && grpCnt > 0) && i > 0) {\r\n beforeDecimalPoint = f_appendChar(numFormat.groupSeparator, beforeDecimalPoint);\r\n grpCnt++;\r\n chCnt = 1;\r\n } else chCnt++;\r\n }\r\n }\r\n\r\n for (let i = decPart.length - 1; i >= 0; i--) {\r\n const c = decPart[i];\r\n afterDecimalPoint = f_appendChar(c, afterDecimalPoint);\r\n }\r\n\r\n // kontrola na minimum desetinnych cisel\r\n if (opt.minimumFractionDigits != undefined) {\r\n if (opt.minimumFractionDigits > 0) {\r\n if (afterDecimalPoint.length < opt.minimumFractionDigits) {\r\n afterDecimalPoint += f_getZero(opt.minimumFractionDigits - afterDecimalPoint.length);\r\n }\r\n }\r\n }\r\n\r\n // při použití jiných než arabských čísel musíme provést jejich nahrazení z tabulky znaků\r\n if (!numFormat.useArabicNumbers) {\r\n let i = 0;\r\n for (const ch of numFormat.numbers) {\r\n afterDecimalPoint = afterDecimalPoint.replace(new RegExp(\"\" + i, \"g\"), ch);\r\n beforeDecimalPoint = beforeDecimalPoint.replace(new RegExp(\"\" + i++, \"g\"), ch);\r\n }\r\n }\r\n\r\n if (afterDecimalPoint.length > 0) {\r\n beforeDecimalPoint = beforeDecimalPoint + numFormat.decimalSeparator + afterDecimalPoint;\r\n }\r\n\r\n // nektere kultury maji jinak umisteny minus neb ho zapisuji uplne jinak a proto se provede nahrazeni do sablony\r\n if (!isPositive) beforeDecimalPoint = numFormat.positions.minus.replace(\"#cv#\", beforeDecimalPoint);\r\n\r\n if (replaceText) return replaceText.replace(\"#cv#\", beforeDecimalPoint);\r\n\r\n return beforeDecimalPoint;\r\n }\r\n\r\n private static _getLocaleOptions(culture: string, options: Intl.NumberFormatOptions = {}): Intl.NumberFormatOptions {\r\n const opt: any = {};\r\n\r\n opt.style = options.style == undefined ? \"decimal\" : options.style.toLowerCase();\r\n\r\n if (opt.style != \"decimal\" && opt.style != \"percent\" && opt.style != \"currency\") {\r\n throw new RangeError(\"Value \" + opt.style + \" out of range for numberformat options property style\");\r\n }\r\n\r\n opt.useGrouping = options.useGrouping == undefined ? true : options.useGrouping;\r\n\r\n if (opt.style == \"currency\") {\r\n if (!options.currency) {\r\n throw new TypeError(\"Currency code is required with currency style.\");\r\n }\r\n opt.currency = options.currency;\r\n opt.currencyDisplay = options.currencyDisplay || \"symbol\"; // \"symbol\" [€], \"code\" [EUR], \"name\" [Euro]\r\n }\r\n\r\n if (options.minimumSignificantDigits || options.maximumSignificantDigits) {\r\n opt.minimumSignificantDigits = options.minimumSignificantDigits || 1;\r\n opt.maximumSignificantDigits = options.maximumSignificantDigits;\r\n\r\n if (opt.minimumSignificantDigits < 1) {\r\n throw new RangeError(\"minimumSignificantDigits value is out of range.\");\r\n }\r\n\r\n if (opt.maximumSignificantDigits != undefined) {\r\n if (opt.maximumSignificantDigits < 1 || opt.maximumSignificantDigits < opt.minimumSignificantDigits) {\r\n throw new RangeError(\"maximumSignificantDigits value is out of range.\");\r\n }\r\n }\r\n } else {\r\n opt.minimumIntegerDigits = options.minimumIntegerDigits || 1;\r\n\r\n if (!options.minimumFractionDigits) {\r\n if (opt.style == \"currency\") {\r\n const currencyInfo = Globalization.getCurrencyFormatInfo(culture, opt.currency);\r\n opt.minimumFractionDigits = currencyInfo.minorUnit;\r\n } else opt.minimumFractionDigits = 0;\r\n } else opt.minimumFractionDigits = options.minimumFractionDigits;\r\n\r\n opt.minimumFractionDigits = options.minimumFractionDigits || (opt.style == \"currency\" ? 2 : 0);\r\n\r\n if (options.maximumFractionDigits == undefined) {\r\n if (opt.style == \"decimal\") {\r\n opt.maximumFractionDigits = opt.minimumFractionDigits < 3 ? 3 : opt.minimumFractionDigits;\r\n } else if (opt.style == \"currency\") {\r\n const currencyInfo = Globalization.getCurrencyFormatInfo(culture, opt.currency);\r\n opt.maximumFractionDigits = opt.minimumFractionDigits < currencyInfo.minorUnit ? currencyInfo.minorUnit : opt.minimumFractionDigits;\r\n } else if (opt.style == \"percent\") {\r\n opt.maximumFractionDigits = opt.minimumFractionDigits > 0 ? opt.minimumFractionDigits : 0;\r\n }\r\n } else {\r\n opt.maximumFractionDigits = options.maximumFractionDigits;\r\n }\r\n }\r\n\r\n return opt;\r\n }\r\n\r\n public plus(value: number): BigNumberProxy {\r\n return new BigNumberProxy(this.bn.plus(value));\r\n }\r\n\r\n /** @inheritDoc */\r\n public gte(n: number | string): boolean {\r\n return this.bn.gte(n);\r\n }\r\n\r\n /** @inheritDoc */\r\n public lte(n: number | string): boolean {\r\n return this.bn.lte(n);\r\n }\r\n\r\n /** @inheritDoc */\r\n public isNaN(): boolean {\r\n return this.bn.isNaN();\r\n }\r\n}\r\n\r\n(window as any).BigNumber = BigNumberProxy;\r\n","/**\r\n * vytvořeno podle\r\n *\r\n * Fast UUID generator, RFC4122 version 4 compliant.\r\n * @author Jeff Ward (jcward.com).\r\n * @license MIT license\r\n * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\r\n **/\r\n\r\nexport class UUID {\r\n private static *_lutGen(): Generator {\r\n for (let i = 0; i < 256; i++)\r\n yield (i < 16 ? \"0\" : \"\") + (i).toString(16);\r\n }\r\n\r\n private static readonly _lut: string[] = Array.from(UUID._lutGen());\r\n\r\n public static generate(): string {\r\n const lut = UUID._lut;\r\n const d0 = Math.random() * 0xffffffff | 0;\r\n const d1 = Math.random() * 0xffffffff | 0;\r\n const d2 = Math.random() * 0xffffffff | 0;\r\n const d3 = Math.random() * 0xffffffff | 0;\r\n return lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + \"-\" +\r\n lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + \"-\" + lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + \"-\" +\r\n lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + \"-\" + lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] +\r\n lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff];\r\n }\r\n}\r\n","import { InvalidArgumentException, InvalidOperationException } from \"../Base/Exceptions\";\r\nimport { Globalization, ICultureInfo, INumberFormatInfoOrienation } from \"./Globalization\";\r\n\r\nexport class CultureInfo {\r\n private static _actualCulture: string;\r\n private static _actualCultureInfo: ICultureInfo;\r\n\r\n public static hasI18N: boolean; // jestli browser podporuje Internacionalizaci\r\n\r\n // seznam kultur a informaci\r\n private static readonly _cultureInfos: { [culture: string]: ICultureInfo } = {\r\n \"cs-CZ\": {\r\n name: \"cs-CZ\",\r\n englishName: \"Czech (Czech Republic)\",\r\n nativeName: \"čeština (Česká republika)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"Kč\"\r\n //CurrencyNegativePattern\r\n //CurrencyPositivePattern\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"leden\", \"únor\", \"březen\", \"duben\", \"květen\", \"červen\", \"červenec\", \"srpen\", \"září\", \"říjen\", \"listopad\", \"prosinec\"],\r\n abbreviatedMonthNames: [\"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\", \"X\", \"XI\", \"XII\"],\r\n dayNames: [\"neděle\", \"pondělí\", \"úterý\", \"středa\", \"čtvrtek\", \"pátek\", \"sobota\"],\r\n abbreviatedDayNames: [\"ne\", \"po\", \"út\", \"st\", \"čt\", \"pá\", \"so\"],\r\n amDesignator: \"dop.\",\r\n pmDesignator: \"odp.\",\r\n formatPatterns: {\r\n shortDate: \"d.M.yyyy\",\r\n longDate: \"d. MMMM yyyy\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"d. MMMM yyyy H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"dd MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"sk-SK\": {\r\n name: \"sk-SK\",\r\n englishName: \"Slovak (Slovakia)\",\r\n nativeName: \"slovenčina (Slovenská republika)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"€\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"január\", \"február\", \"marec\", \"apríl\", \"máj\", \"jún\", \"júl\", \"august\", \"september\", \"október\", \"november\", \"december\"],\r\n abbreviatedMonthNames: [\"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\", \"X\", \"XI\", \"XII\"],\r\n dayNames: [\"nedeľa\", \"pondelok\", \"utorok\", \"streda\", \"štvrtok\", \"piatok\", \"sobota\"],\r\n abbreviatedDayNames: [\"ne\", \"po\", \"ut\", \"st\", \"št\", \"pi\", \"so\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"d.M.yyyy\",\r\n longDate: \"d. MMMM yyyy\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"d. MMMM yyyy H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"dd MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"en-US\": {\r\n name: \"en-US\",\r\n englishName: \"English (United States)\",\r\n nativeName: \"English (United States)\",\r\n numberFormat: {\r\n decimalSeparator: \".\",\r\n groupSeparator: \",\",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"$\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n abbreviatedMonthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n abbreviatedDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n amDesignator: \"AM\",\r\n pmDesignator: \"PM\",\r\n formatPatterns: {\r\n shortDate: \"M/d/yyyy\",\r\n longDate: \"dddd, MMMM dd, yyyy\",\r\n shortTime: \"h:mm tt\",\r\n longTime: \"h:mm:ss tt\",\r\n fullDateTime: \"dddd, MMMM dd, yyyy h:mm:ss tt\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"MMMM dd\",\r\n yearMonth: \"MMMM, yyyy\",\r\n },\r\n },\r\n },\r\n \"en-GB\": {\r\n name: \"en-GB\",\r\n englishName: \"English (United Kingdom)\",\r\n nativeName: \"English (United Kingdom)\",\r\n numberFormat: {\r\n decimalSeparator: \".\",\r\n groupSeparator: \",\",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"£\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\r\n abbreviatedMonthNames: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\r\n abbreviatedDayNames: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\r\n amDesignator: \"AM\",\r\n pmDesignator: \"PM\",\r\n formatPatterns: {\r\n shortDate: \"dd/MM/yyyy\",\r\n longDate: \"dd MMMM yyyy\",\r\n shortTime: \"HH:mm\",\r\n longTime: \"HH:mm:ss\",\r\n fullDateTime: \"dd MMMM yyyy HH:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"dd MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"pl-PL\": {\r\n name: \"pl-PL\",\r\n englishName: \"Polish (Poland)\",\r\n nativeName: \"polski (Polska)\",\r\n numberFormat: {\r\n decimalSeparator: \".\",\r\n groupSeparator: \",\",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"zł\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"styczeń\", \"luty\", \"marzec\", \"kwiecień\", \"maj\", \"czerwiec\", \"lipiec\", \"sierpień\", \"wrzesień\", \"październik\", \"listopad\", \"grudzień\"],\r\n abbreviatedMonthNames: [\"sty\", \"lut\", \"mar\", \"kwi\", \"maj\", \"cze\", \"lip\", \"sie\", \"wrz\", \"paź\", \"lis\", \"gru\"],\r\n dayNames: [\"niedziela\", \"poniedziałek\", \"wtorek\", \"środa\", \"czwartek\", \"piątek\", \"sobota\"],\r\n abbreviatedDayNames: [\"N\", \"Pn\", \"Wt\", \"Śr\", \"Cz\", \"Pt\", \"So\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"yyyy-MM-dd\",\r\n longDate: \"d MMMM yyyy\",\r\n shortTime: \"HH:mm\",\r\n longTime: \"HH:mm:ss\",\r\n fullDateTime: \"d MMMM yyyy HH:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"d MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"de-DE\": {\r\n name: \"de-DE\",\r\n englishName: \"German (Germany)\",\r\n nativeName: \"Deutsch (Deutschland)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \".\",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"€\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"Januar\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\r\n abbreviatedMonthNames: [\"Jan\", \"Feb\", \"Mrz\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\r\n dayNames: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"],\r\n abbreviatedDayNames: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"dd.MM.yyyy\",\r\n longDate: \"dddd, d. MMMM yyyy\",\r\n shortTime: \"HH:mm\",\r\n longTime: \"HH:mm:ss\",\r\n fullDateTime: \"dddd, d. MMMM yyyy HH:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"dd MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"de-AT\": {\r\n name: \"de-AT\",\r\n englishName: \"German (Austria)\",\r\n nativeName: \"Deutsch (Österreich)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"€\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"Jänner\", \"Februar\", \"März\", \"April\", \"Mai\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"Dezember\"],\r\n abbreviatedMonthNames: [\"Jän\", \"Feb\", \"Mär\", \"Apr\", \"Mai\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Okt\", \"Nov\", \"Dez\"],\r\n dayNames: [\"Sonntag\", \"Montag\", \"Dienstag\", \"Mittwoch\", \"Donnerstag\", \"Freitag\", \"Samstag\"],\r\n abbreviatedDayNames: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"dd.MM.yyyy\",\r\n longDate: \"dddd, dd. MMMM yyyy\",\r\n shortTime: \"HH:mm\",\r\n longTime: \"HH:mm:ss\",\r\n fullDateTime: \"dddd, dd. MMMM yyyy HH:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"dd MMMM\",\r\n yearMonth: \"MMMM yyyy\",\r\n },\r\n },\r\n },\r\n \"hu-HU\": {\r\n name: \"hu-HU\",\r\n englishName: \"Hungarian (Hungary)\",\r\n nativeName: \"magyar (Magyarország)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n //currencySymbol: \"Ft\"\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"január\", \"február\", \"március\", \"április\", \"május\", \"június\", \"július\", \"augusztus\", \"szeptember\", \"október\", \"november\", \"december\"],\r\n abbreviatedMonthNames: [\"jan.\", \"febr.\", \"márc.\", \"ápr.\", \"máj.\", \"jún.\", \"júl.\", \"aug.\", \"szept.\", \"okt.\", \"nov.\", \"dec.\"],\r\n dayNames: [\"vasárnap\", \"hétfő\", \"kedd\", \"szerda\", \"csütörtök\", \"péntek\", \"szombat\"],\r\n abbreviatedDayNames: [\"V\", \"H\", \"K\", \"Sze\", \"Cs\", \"P\", \"Szo\"],\r\n amDesignator: \"de.\",\r\n pmDesignator: \"du.\",\r\n formatPatterns: {\r\n shortDate: \"yyyy. MM. dd.\",\r\n longDate: \"yyyy. MMMM d.\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"yyyy. MMMM d. H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"MMMM d.\",\r\n yearMonth: \"yyyy. MMMM\",\r\n },\r\n },\r\n },\r\n \"ru-RU\": {\r\n name: \"ru-RU\",\r\n englishName: \"Russian (Russia)\",\r\n nativeName: \"русский (Россия)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n //currencySymbol: \"руб.\"\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"],\r\n abbreviatedMonthNames: [\"янв\", \"фев\", \"мар\", \"апр\", \"май\", \"июн\", \"июл\", \"авг\", \"сен\", \"окт\", \"ноя\", \"дек\"],\r\n dayNames: [\"воскресенье\", \"понедельник\", \"вторник\", \"среда\", \"четверг\", \"пятница\", \"суббота\"],\r\n abbreviatedDayNames: [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"dd.MM.yyyy\",\r\n longDate: \"d MMMM yyyy 'г.'\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"d MMMM yyyy 'г.' H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"MMMM dd\",\r\n yearMonth: \"MMMM yyyy 'г.'\",\r\n },\r\n },\r\n },\r\n \"uk-UA\": {\r\n name: \"uk-UA\",\r\n englishName: \"Ukrainian (Ukraine)\",\r\n nativeName: \"україньска (Україна)\",\r\n numberFormat: {\r\n decimalSeparator: \",\",\r\n groupSeparator: \" \",\r\n //currencySymbol: \"₴\"\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\r\n abbreviatedMonthNames: [\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\"],\r\n dayNames: [\"неділя\", \"понеділок\", \"вівторок\", \"середа\", \"четвер\", \"п'ятниця\", \"субота\"],\r\n abbreviatedDayNames: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"dd.MM.yyyy\",\r\n longDate: \"d MMMM yyyy' р.'\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"d MMMM yyyy' р.' H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"d MMMM\",\r\n yearMonth: \"MMMM yyyy' р.'\",\r\n },\r\n },\r\n },\r\n \"ms-MY\": { // pridano pro testovani, aby byl oznacen jako validni jazyk\r\n name: \"ms-MY\",\r\n englishName: \"\tMalaysian\",\r\n nativeName: \"بهاس مليسيا\",\r\n numberFormat: {\r\n decimalSeparator: \".\",\r\n groupSeparator: \",\",\r\n //currencySymbol: \"MYR\"\r\n groupSize: 3,\r\n secondaryGroupSize: 3,\r\n orientation: INumberFormatInfoOrienation.leftToRight,\r\n numbers: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\r\n useArabicNumbers: true,\r\n positions: {\r\n minus: \"- #cv#\",\r\n },\r\n },\r\n dateTimeFormat: {\r\n monthNames: [\"Січень\", \"Лютий\", \"Березень\", \"Квітень\", \"Травень\", \"Червень\", \"Липень\", \"Серпень\", \"Вересень\", \"Жовтень\", \"Листопад\", \"Грудень\"],\r\n abbreviatedMonthNames: [\"Січ\", \"Лют\", \"Бер\", \"Кві\", \"Тра\", \"Чер\", \"Лип\", \"Сер\", \"Вер\", \"Жов\", \"Лис\", \"Гру\"],\r\n dayNames: [\"неділя\", \"понеділок\", \"вівторок\", \"середа\", \"четвер\", \"п'ятниця\", \"субота\"],\r\n abbreviatedDayNames: [\"Нд\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\r\n amDesignator: \"\",\r\n pmDesignator: \"\",\r\n formatPatterns: {\r\n shortDate: \"dd.MM.yyyy\",\r\n longDate: \"d MMMM yyyy' р.'\",\r\n shortTime: \"H:mm\",\r\n longTime: \"H:mm:ss\",\r\n fullDateTime: \"d MMMM yyyy' р.' H:mm:ss\",\r\n sortableDateTime: \"yyyy-MM-ddTHH:mm:ss\",\r\n universalSortableDateTime: \"yyyy-MM-dd HH:mm:ssZ\",\r\n rfc1123: \"ddd, dd MMM yyyy HH:mm:ss GMT\",\r\n monthDay: \"d MMMM\",\r\n yearMonth: \"MMMM yyyy' р.'\",\r\n },\r\n },\r\n },\r\n };\r\n\r\n public static setCulture(culture: string): void {\r\n Globalization.actualCulture = culture;\r\n let cI: ICultureInfo = CultureInfo._cultureInfos[culture];\r\n if (typeof cI === \"undefined\") {\r\n const c = culture.split(\"-\");\r\n cI = CultureInfo._cultureInfos[c[0]];\r\n if (typeof cI === \"undefined\")\r\n throw new InvalidOperationException(\"invalid culture\");\r\n }\r\n\r\n CultureInfo._actualCulture = culture;\r\n CultureInfo._actualCultureInfo = cI;\r\n }\r\n\r\n /**\r\n * Struktura s aktuálně použitou kulturou\r\n */\r\n public static getCultureInfo(): ICultureInfo {\r\n return CultureInfo._actualCultureInfo;\r\n }\r\n\r\n /**\r\n * Kód aktuálně použité kultury\r\n */\r\n public static getCulture(): string {\r\n return CultureInfo._actualCulture;\r\n }\r\n\r\n public static getStandardDateTimeFormat(shortFormat: string): string {\r\n const fp = CultureInfo._actualCultureInfo.dateTimeFormat.formatPatterns;\r\n switch (shortFormat) {\r\n case \"d\": // Short date pattern\r\n return fp.shortDate;\r\n case \"D\": // Long date pattern\r\n return fp.longDate;\r\n case \"f\": // Full date / time pattern(short time)\r\n return fp.longDate + \" \" + fp.shortTime;\r\n case \"F\": // Full date / time pattern(long time)\r\n return fp.fullDateTime;\r\n case \"g\": // General date / time pattern(short time)\r\n return fp.shortDate + \" \" + fp.shortTime;\r\n case \"G\": // General date / time pattern(long time)\r\n return fp.shortDate + \" \" + fp.longTime;\r\n case \"M\":\r\n case \"m\": // Month / day pattern\r\n return fp.monthDay;\r\n\r\n //TODO: smazat\r\n case \"O\":\r\n case \"o\": // Round - trip date / time pattern.\r\n return \"yyyy-MM-ddTHH:mm:ss.fffffff\";\r\n case \"R\":\r\n case \"r\": // Round - trip date / time pattern.\r\n return fp.monthDay + \" \" + \"yyyy\" + \" \" + fp.shortTime;\r\n //TODO: smazat\r\n case \"s\": // Sortable date/time pattern\r\n return fp.sortableDateTime;\r\n\r\n case \"t\": // Short time pattern\r\n return fp.shortTime;\r\n case \"T\": // Long time pattern\r\n return fp.longTime;\r\n\r\n //TODO: smazat\r\n case \"u\": // Universal sortable date/time pattern\r\n return fp.universalSortableDateTime;\r\n\r\n //TODO: smazat\r\n case \"U\": // Universal full date / time pattern\r\n return fp.fullDateTime;\r\n case \"Y\":\r\n case \"y\": // Year month pattern\r\n return fp.yearMonth;\r\n }\r\n\r\n throw new InvalidArgumentException(\"shortFormat\");\r\n }\r\n\r\n public static getStandardDateTimeOptions(shortFormat: string): Intl.DateTimeFormatOptions {\r\n switch (shortFormat) {\r\n case \"d\": // Short date pattern\r\n return {\r\n //year: 'numeric', month: '2-digit', day: '2-digit'\r\n year: \"numeric\", month: \"numeric\", day: \"numeric\",\r\n };\r\n case \"D\": { // Long date pattern\r\n const n = CultureInfo._actualCultureInfo.name;\r\n return (n === \"en-US\" || n === \"de-DE\" || n === \"de-AT\")\r\n ? { year: \"numeric\", month: \"long\", day: \"numeric\", weekday: \"long\" }\r\n : { year: \"numeric\", month: \"long\", day: \"numeric\" };\r\n }\r\n case \"f\": { // Full date / time pattern(short time)\r\n const d: any = CultureInfo.getStandardDateTimeOptions(\"D\");\r\n const t: any = CultureInfo.getStandardDateTimeOptions(\"t\");\r\n for (const att in t) {\r\n if (Object.prototype.hasOwnProperty.call(t, att)) {\r\n d[att] = t[att];\r\n }\r\n }\r\n return d;\r\n }\r\n case \"F\": { // Full date / time pattern(long time)\r\n const d: any = CultureInfo.getStandardDateTimeOptions(\"D\");\r\n const t: any = CultureInfo.getStandardDateTimeOptions(\"T\");\r\n for (const att in t) {\r\n if (Object.prototype.hasOwnProperty.call(t, att)) {\r\n d[att] = t[att];\r\n }\r\n }\r\n return d;\r\n }\r\n case \"g\": // General date / time pattern(short time)\r\n return { year: \"numeric\", month: \"numeric\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\" };\r\n //return { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' };\r\n case \"G\": // General date / time pattern(long time)\r\n return { year: \"numeric\", month: \"numeric\", day: \"numeric\", hour: \"numeric\", minute: \"numeric\", second: \"numeric\" };\r\n //return { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' };\r\n case \"M\":\r\n case \"m\": // Month / day pattern\r\n //return { month: 'long', day: '2-digit' };\r\n return { month: \"long\", day: \"numeric\" };\r\n case \"t\": // Short time pattern\r\n return { hour: \"numeric\", minute: \"2-digit\" };\r\n //return { hour: '2-digit', minute: '2-digit' };\r\n case \"T\": // Long time pattern\r\n //return { hour: '2-digit', minute: '2-digit', second: '2-digit' };\r\n return { hour: \"numeric\", minute: \"2-digit\", second: \"2-digit\" };\r\n case \"U\": { // Universal full date / time pattern\r\n const o = CultureInfo.getStandardDateTimeOptions(\"F\");\r\n if (o) o.timeZone = \"UTC\";\r\n return o;\r\n }\r\n case \"Y\":\r\n case \"y\": // Year month pattern\r\n return { year: \"numeric\", month: \"long\" };\r\n }\r\n\r\n throw new InvalidArgumentException(\"shortFormat\");\r\n }\r\n\r\n // nahrada za staticky konstruktor\r\n public static init(): void {\r\n CultureInfo._cultureInfos[\"cs\"] = CultureInfo._cultureInfos[\"cs-CZ\"];\r\n CultureInfo._cultureInfos[\"pl\"] = CultureInfo._cultureInfos[\"pl-PL\"];\r\n CultureInfo._cultureInfos[\"de\"] = CultureInfo._cultureInfos[\"de-DE\"];\r\n CultureInfo._cultureInfos[\"en\"] = CultureInfo._cultureInfos[\"en-US\"];\r\n CultureInfo._cultureInfos[\"hu\"] = CultureInfo._cultureInfos[\"hu-HU\"];\r\n CultureInfo._cultureInfos[\"ru\"] = CultureInfo._cultureInfos[\"ru-RU\"];\r\n CultureInfo._cultureInfos[\"uk\"] = CultureInfo._cultureInfos[\"uk-UA\"];\r\n\r\n if (!CultureInfo._actualCulture)\r\n CultureInfo.setCulture(\"cs\");\r\n\r\n CultureInfo.hasI18N = !!(self as any).Intl;\r\n }\r\n}\r\n\r\nCultureInfo.init();\r\n\r\n//interface Window {\r\n// Intl: any;\r\n//}\r\n","import { CultureInfo } from \"../../Dom/CultureInfo\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport class DateUtils {\r\n public static readonly miliSecPerDay: number = 24 * 60 * 60 * 1000;\r\n\r\n // Staticka promenna pro ukladani funkci\r\n private static readonly _dateToStringFunctionList: any = {};\r\n\r\n public static fromXsdDateTime(s: string): Date | null {\r\n if (s == null)\r\n return null;\r\n\r\n const re = /Z|[+-][0-9]{2}:[0-9]{2}$/;\r\n let match: any;\r\n let value: string;\r\n\r\n if (typeof s === \"string\") {\r\n match = s.match(re);\r\n value = s;\r\n } else {\r\n if ((s as any).v == null)\r\n return null;\r\n match = (s as any).v.match(re);\r\n value = (s as any).v;\r\n }\r\n\r\n if (match)\r\n return new Date(value);\r\n\r\n const d = new Date(value + \"Z\");\r\n d.setMinutes(d.getMinutes() + d.getTimezoneOffset());\r\n\r\n return d;\r\n }\r\n\r\n public static toXsdDateTime(d: Date, inUtc: boolean = false): string {\r\n if (!d || isNaN(d.getTime()))\r\n return \"\";\r\n if (inUtc)\r\n return d.toISOString();\r\n\r\n const e = new Date(d.getTime());\r\n e.setMinutes(e.getMinutes() - e.getTimezoneOffset());\r\n\r\n if (isNaN(e.getTime())) {\r\n return d.toISOString().slice(0, -1);\r\n }\r\n return e.toISOString().slice(0, -1);\r\n }\r\n\r\n public static compareDates(d1: Date, d2: Date): boolean {\r\n return d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate() &&\r\n d1.getFullYear() == d2.getFullYear();\r\n }\r\n\r\n public static compareDateTimes(d1: Date, d2: Date): boolean {\r\n return DateUtils.compareDates(d1, d2) && d1.getHours() == d2.getHours() && d1.getMinutes() == d2.getMinutes() && d1.getSeconds() == d2.getSeconds() && d1.getMilliseconds() == d2.getMilliseconds();\r\n }\r\n\r\n /**\r\n * Zkombinuje datum z prvniho parametru s casem z druheho parametru\r\n */\r\n public static unionDateAndTime(date: Date, time: Date): Date {\r\n /*\r\n let ms = DateUtils.miliSecPerDay;\r\n\r\n let d = date; // v JS jde s Date pracovat jako s cislem ktere reprezentuje hodnotu Date.valueOf()\r\n let _t = d % ms;\r\n d = d - (_t < 0 ? _t + ms : _t);\r\n\r\n let t = time;\r\n _t = t % ms;\r\n t = _t < 0 ? _t + ms : _t;\r\n\r\n return new Date(d + t);\r\n */\r\n const result = new Date(time.getTime());\r\n result.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\r\n return result;\r\n }\r\n\r\n /**\r\n * Zkombinuje datum z prvniho parametru s casem z druheho parametru\r\n */\r\n public static localDateTimeToTime(datetime: Date | number): number {\r\n const ms = DateUtils.miliSecPerDay;\r\n\r\n let t = datetime as number; // v JS jde s Date pracovat jako s cislem ktere reprezentuje hodnotu Date.valueOf()\r\n const _t = t % ms;\r\n t = _t < 0 ? _t + ms : _t;\r\n\r\n return t;\r\n }\r\n\r\n /**\r\n * OADate (OLE Automation date) - vystup jako DateTime.ToOADate v .NET\r\n */\r\n public static toOaDate(date: Date): number {\r\n return (date as any as number - (new Date(Date.UTC(1899, 11, 30)) as any as number)) / DateUtils.miliSecPerDay;\r\n }\r\n\r\n /**\r\n * Nacteni formatovaci funkce\r\n * @param format Format\r\n * @param culture Nepovinny parametr culture, ktery urcuje, zda bude pro tento konkretni format pouzita jina kultura nez globalni\r\n */\r\n public static getDateToStringFunction(format: string, culture?: string): DateTimeFormatObject {\r\n if (!format)\r\n format = \"g\";\r\n\r\n const cn = culture ? culture : CultureInfo.getCultureInfo().name;\r\n // Zkontroluje, zda je zadana funkce seznamu, pokud je tak ji vrati, pokud neni projde celym ancablem tech ifu. Je to zde pro urychleni behu.\r\n if (!DateUtils._dateToStringFunctionList[format])\r\n DateUtils._dateToStringFunctionList[format] = {};\r\n if (DateUtils._dateToStringFunctionList[format][cn])\r\n return DateUtils._dateToStringFunctionList[format][cn];\r\n\r\n // podle http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx\r\n\r\n if (format.toLowerCase() === \"r\") { // RFC-1123 format (ddd, dd MMM yyyy HH:mm:ss GMT) v UTC zone\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n return date.toUTCString();\r\n },\r\n };\r\n } else if (format.toLowerCase() === \"i\") { // ISO format (YYYY-MM-DDTHH:mm:ss.sssZ) v UTC zone\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n return date.toISOString();\r\n },\r\n };\r\n } else if (format === \"s\") { // sortable v lokalnim case bez ms\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n const d = new Date(date.getTime());\r\n d.setMinutes(d.getMinutes() - d.getTimezoneOffset());\r\n return d.toISOString().slice(0, -5);\r\n },\r\n };\r\n } else if (format === \"o\") { // cas v lokalni zone v ISO formatu plus info o posunu vuci UTC ve forme +02:00\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n const d = new Date(date.getTime()),\r\n off = date.getTimezoneOffset(),\r\n pad = (s: string) => {\r\n return s[1] ? s : \"0\" + s;\r\n };\r\n d.setMinutes(d.getMinutes() - off);\r\n return d.toISOString().replace(\"Z\", \"\") + (off > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(off / 60)) + \"\") + \":\" + pad(Math.abs(off % 60) + \"\");\r\n },\r\n };\r\n } else if (format === \"u\") { // cas je v UTC\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n return date.toISOString().replace(\"T\", \" \");\r\n },\r\n };\r\n } else if (format === \"dd\") {\r\n DateUtils._dateToStringFunctionList[format][cn] = new Intl.DateTimeFormat(cn); // nativni fce\r\n } else if (format === \"U\") { // vysledek zobrazen v narodnim jazyce ale cas je v UTC\r\n if (CultureInfo.hasI18N) {\r\n DateUtils._dateToStringFunctionList[format][cn] = new Intl.DateTimeFormat(cn, CultureInfo.getStandardDateTimeOptions(format));\r\n } else {\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n const d = new Date(date.getTime());\r\n d.setMinutes(d.getMinutes() + d.getTimezoneOffset());\r\n return DateUtils.dateToString(d, format);\r\n },\r\n };\r\n }\r\n } else if (!CultureInfo.hasI18N || format.length > 1) { // Tesco fce\r\n DateUtils._dateToStringFunctionList[format][cn] = {\r\n format: (date: Date) => {\r\n return DateUtils.dateToString(date, format);\r\n },\r\n };\r\n } else {\r\n const opts = CultureInfo.getStandardDateTimeOptions(format);\r\n DateUtils._dateToStringFunctionList[format][cn] = new Intl.DateTimeFormat(cn, opts); // nativni fce\r\n }\r\n\r\n return DateUtils._dateToStringFunctionList[format][cn];\r\n }\r\n\r\n public static dateToString(date: Date, format: string = \"g\"): string {\r\n function p(s: number, l: number = 2): string {\r\n return (\"000\" + s).slice(l * -1);\r\n }\r\n\r\n if (isNaN(date.getTime())) {\r\n return \"\";\r\n }\r\n\r\n if (format && format.length === 1)\r\n format = CultureInfo.getStandardDateTimeFormat(format);\r\n\r\n const x: any = date;\r\n const df = CultureInfo.getCultureInfo().dateTimeFormat;\r\n x.h = x.getHours;\r\n\r\n return format.replace(/(\\\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|f{0,7})/g,\r\n function(m: string): any {\r\n if (m.charAt(0) === \"\\\\\") {\r\n return m.replace(\"\\\\\", \"\");\r\n }\r\n\r\n switch (m) {\r\n case \"hh\":\r\n {\r\n const h = x.h();\r\n return p(h < 13 ? (h === 0 ? 12 : h) : (h - 12));\r\n }\r\n case \"h\":\r\n {\r\n const h = x.h();\r\n return h < 13 ? (h === 0 ? 12 : h) : (h - 12);\r\n }\r\n case \"HH\":\r\n return p(x.h());\r\n case \"H\":\r\n return x.h();\r\n case \"mm\":\r\n return p(x.getMinutes());\r\n case \"m\":\r\n return x.getMinutes();\r\n case \"ss\":\r\n return p(x.getSeconds());\r\n case \"s\":\r\n return x.getSeconds();\r\n case \"yyyy\":\r\n return p(x.getFullYear(), 4);\r\n case \"yy\":\r\n return p(x.getFullYear());\r\n case \"dddd\":\r\n return df.dayNames[x.getDay()];\r\n case \"ddd\":\r\n return df.abbreviatedDayNames[x.getDay()];\r\n case \"dd\":\r\n return p(x.getDate());\r\n case \"d\":\r\n return x.getDate();\r\n case \"MMMM\":\r\n return df.monthNames[x.getMonth()];\r\n case \"MMM\":\r\n return df.abbreviatedMonthNames[x.getMonth()];\r\n case \"MM\":\r\n return p((x.getMonth() + 1));\r\n case \"M\":\r\n return x.getMonth() + 1;\r\n case \"t\":\r\n return x.h() < 12 ? df.amDesignator.substring(0, 1) : df.pmDesignator.substring(0, 1);\r\n case \"tt\":\r\n return x.h() < 12 ? df.amDesignator : df.pmDesignator;\r\n case \"f\":\r\n return Math.floor(x.getMilliseconds() / 100);\r\n case \"ff\":\r\n return p(Math.floor(x.getMilliseconds() / 10));\r\n case \"fff\":\r\n case \"ffff\":\r\n case \"fffff\":\r\n case \"ffffff\":\r\n case \"fffffff\":\r\n return p(x.getMilliseconds(), 3);\r\n default:\r\n return m;\r\n }\r\n });\r\n }\r\n\r\n /* Ziska datum z uzivatelem psaneho textu, vraci jej jako objekt typu Date. V pripade nevalidniho vstupu vraci null. */\r\n public static getDateFromKbd(value: string): Date | null {\r\n if (!value)\r\n return null;\r\n\r\n const fmtInfo = this.getFormatInfo();\r\n let rexstr = \"^\\\\s*\";\r\n for (let i = 0; i < fmtInfo.formatOrder.length; i++) {\r\n if (fmtInfo.formatOrder[i] === \"d\")\r\n rexstr += \"(\\\\d{1,2})\" + (fmtInfo.daySeparator === \".\" ? \"\\\\.\\\\s*\" : fmtInfo.daySeparator);\r\n else if (fmtInfo.formatOrder[i] === \"m\")\r\n rexstr += \"(\\\\d{1,2})\" + (fmtInfo.monthSeparator === \".\" ? \"\\\\.\\\\s*\" : fmtInfo.monthSeparator);\r\n else\r\n rexstr += \"(\\\\d{2}|\\\\d{4})\" + (fmtInfo.yearSeparator === \".\" ? \"\\\\.\\\\s*\" : fmtInfo.yearSeparator);\r\n }\r\n rexstr += \"\\\\s*$\";\r\n\r\n const res = new RegExp(rexstr).exec(value);\r\n\r\n if (!res) // nevalidni format data\r\n return null;\r\n\r\n const y = fmtInfo.formatOrder.indexOf(\"y\");\r\n const m = fmtInfo.formatOrder.indexOf(\"m\");\r\n const d = fmtInfo.formatOrder.indexOf(\"d\");\r\n const yr = res[y + 1].length === 2 ? \"20\" + res[y + 1] : res[y + 1]; // doplneni roku o 20\r\n\r\n const date = new Date(+yr, +res[m + 1] - 1, +res[d + 1]);\r\n if (date.getFullYear() === +yr && date.getMonth() === +res[m + 1] - 1 && date.getDate() === +res[d + 1])\r\n return date;\r\n else\r\n return null;\r\n }\r\n\r\n public static getFormatInfo(): dateFormatInfo {\r\n const fmt = CultureInfo.getStandardDateTimeFormat(\"d\");\r\n if (!fmt)\r\n throw new Error(\"Invalidate date format for short format 'd'.\");\r\n\r\n const groups = /(d+|m+|y+)([^dmy]+)(d+|m+|y+)([^dmy]+)(d+|m+|y+)([^dmy]*)/i.exec(fmt);\r\n let fmtOrder = \"\";\r\n let daySep = \"\";\r\n let monthSep = \"\";\r\n let yearSep = \"\";\r\n\r\n if (!groups)\r\n throw new Error(\"Invalidate date format for short format 'd'.\");\r\n for (let i = 1; i < 6; i += 2) {\r\n if (/d/i.test(groups[i])) {\r\n fmtOrder += \"d\";\r\n daySep = groups[i + 1];\r\n } else if (/m/i.test(groups[i])) {\r\n fmtOrder += \"m\";\r\n monthSep = groups[i + 1];\r\n } else if (/y/i.test(groups[i])) {\r\n fmtOrder += \"y\";\r\n yearSep = groups[i + 1];\r\n }\r\n }\r\n\r\n return {\r\n daySeparator: daySep,\r\n monthSeparator: monthSep,\r\n yearSeparator: yearSep,\r\n formatOrder: fmtOrder,\r\n };\r\n }\r\n\r\n /**\r\n * Vraci specificke datum podle toho, jaky krok se zada. Pro odcitani zadat zapornou hodnotu prvniho parametru\r\n * @param step pocet dnu, o ktere se ma datum posunout dopredu/dozadu\r\n * @param separator oddelovac dnu, mesicu a roku\r\n */\r\n public static getSpecificDate(step: number, separator: string = \"-\"): string | null {\r\n if (separator == null) {\r\n return null;\r\n }\r\n const date = new Date();\r\n date.setDate(date.getDate() + step);\r\n\r\n const dd = date.getDate();\r\n const mm = date.getMonth() + 1;\r\n const yyyy = date.getFullYear();\r\n\r\n return dd + separator + mm + separator + yyyy;\r\n }\r\n}\r\n\r\nexport interface DateTimeFormatObject {\r\n format: (date: Date) => string;\r\n}\r\n\r\nexport interface dateFormatInfo {\r\n daySeparator: string;\r\n monthSeparator: string;\r\n yearSeparator: string;\r\n formatOrder: string;\r\n}\r\n\r\nGlobalContext.registerType(DateUtils);\r\n","export class CaseInsensitiveMap extends Map {\r\n public override delete(key: string): boolean {\r\n if (key == null) {\r\n return false;\r\n }\r\n\r\n key = key.toLowerCase();\r\n\r\n return super.delete(key);\r\n }\r\n\r\n public override get(key: string): V | undefined {\r\n if (key == null) {\r\n return undefined;\r\n }\r\n\r\n key = key.toLowerCase();\r\n\r\n return super.get(key);\r\n }\r\n\r\n public override has(key: string): boolean {\r\n if (key == null) {\r\n return false;\r\n }\r\n\r\n key = key.toLowerCase();\r\n\r\n return super.has(key);\r\n }\r\n\r\n public override set(key: string, value: V): this {\r\n key = key.toLowerCase();\r\n return super.set(key, value);\r\n }\r\n}\r\n","import { CaseInsensitiveMap } from \"../DataTypes/CaseInsensitiveMap\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport interface INumericEnum {\r\n [id: number]: string;\r\n}\r\n\r\nexport interface IStringEnum {\r\n [id: string]: string;\r\n}\r\n\r\nexport type IEnum = INumericEnum | IStringEnum;\r\n\r\n/**\r\n * Pomocné metody pro práci s enumy\r\n * @includeToDoc\r\n */\r\nexport class EnumUtils {\r\n /**\r\n * Vrací hodnotu položky předaného enumu podle předané textové hodnoty (hledá v klíčích enumu). Pokud enum nemá odpovídající položku, vrací undefined.\r\n * @param targetEnum Typ enumu, jehož hodnota se má vracet\r\n * @param value Textová hodnota pro výběr z předaného enumu\r\n * @param caseSensitive Pokud není true, tak ignoruje velikost písmen\r\n */\r\n public static getEnumValueFromName(targetEnum: T, value: string, caseSensitive?: boolean): T[keyof T] | undefined {\r\n if (caseSensitive) {\r\n const enumValueName: keyof typeof targetEnum = value as keyof typeof targetEnum;\r\n return targetEnum[enumValueName];\r\n } else {\r\n const mapped: [string, keyof T][] = Object.keys(targetEnum).map(k => {\r\n return [k.toLowerCase(), k as keyof typeof targetEnum];\r\n });\r\n const map = new CaseInsensitiveMap(mapped);\r\n return map.get(value) ? targetEnum[map.get(value)!] : undefined;\r\n }\r\n }\r\n\r\n /**\r\n * Vrací hodnotu položky předaného enumu podle předané textové hodnoty (hledá v hodnotách enumu). Pokud enum nemá odpovídající položku, vrací undefined.\r\n * @param targetEnum Typ enumu, jehož hodnota se má vracet\r\n * @param value Textová hodnota pro výběr z předaného enumu\r\n * @param caseSensitive Pokud není true, tak ignoruje velikost písmen\r\n */\r\n public static getEnumValueFromValue(targetEnum: T, value: string, caseSensitive?: boolean): T[keyof T] | undefined {\r\n if (value == null) {\r\n return undefined;\r\n }\r\n const allValues = Object.values(targetEnum);\r\n if (caseSensitive) {\r\n return allValues.find(enumValue => typeof enumValue === \"string\" && enumValue === value);\r\n } else {\r\n value = value?.toLowerCase();\r\n return allValues.find(enumValue => typeof enumValue === \"string\" && enumValue.toLowerCase() === value);\r\n }\r\n }\r\n\r\n /**\r\n * Vrací pole textových reprezentací hodnot enumu, který je číselně indexován\r\n * @param targetEnum Typ enumu, jehož hodnoty se mají vracet\r\n */\r\n public static getNumericEnumStringValues(targetEnum: T): string[] {\r\n const resultValues: string[] = [];\r\n for (const value of Object.keys(targetEnum)) {\r\n const enumValueName: keyof typeof targetEnum = value as keyof typeof targetEnum;\r\n if (typeof targetEnum[enumValueName] === \"number\")\r\n resultValues.push(value);\r\n }\r\n return resultValues;\r\n }\r\n\r\n /**\r\n * Vrací pole textových hodnot stringového enumu\r\n * @param targetEnum Typ enumu, jehož hodnoty se mají vracet\r\n */\r\n public static getStringEnumValues(targetEnum: T): string[] {\r\n const resultValues: string[] = [];\r\n for (const value of Object.keys(targetEnum)) {\r\n const enumValueName: keyof typeof targetEnum = value as keyof typeof targetEnum;\r\n if (typeof targetEnum[enumValueName] === \"string\")\r\n resultValues.push(value);\r\n }\r\n return resultValues;\r\n }\r\n\r\n /**\r\n * Prohledá hodnoty enumu a pokud enum obsahuje hledanou hodnotu, vrací true\r\n * @param targetEnum Enum které se má prohledávat\r\n * @param value Hledaná textová hodnota\r\n */\r\n public static hasEnumValue(targetEnum: T, value: string | number): boolean {\r\n return Object.values(targetEnum).includes(value);\r\n }\r\n\r\n /**\r\n * Vrací pole možných číselných hodnot hodnot enumu, který je číselně indexován\r\n * @param targetEnum Enum jehož hodnoty se mají vracet\r\n */\r\n public static getNumericEnumValues(targetEnum: T): Array {\r\n const resultValues: number[] = [];\r\n for (const value of Object.keys(targetEnum)) {\r\n const enumValueName: keyof typeof targetEnum = value as keyof typeof targetEnum;\r\n if (typeof targetEnum[enumValueName] === \"string\") {\r\n const numericValue = Number(value);\r\n if (!isNaN(numericValue))\r\n resultValues.push(numericValue);\r\n }\r\n }\r\n return resultValues;\r\n }\r\n\r\n /**\r\n * Provede konverzi enumu na pole s jeho řetězcovou reprezentací\r\n * @param sourceEnum Typ enumu, jež má být převeden na pole\r\n */\r\n public static getEnumAsArray(sourceEnum: T): string[] {\r\n return Object.values(sourceEnum).filter(value => typeof value === \"string\") as string[];\r\n }\r\n /**\r\n * Zjistí, zda hodnota masky obsahuje zadaný flag\r\n * @param enumValue Číselná hodnota masky\r\n * @param flag Flag, bit určující hodnotu\r\n */\r\n public static hasFlag(enumValue: number, flag: number): boolean {\r\n return (enumValue & flag) === flag;\r\n }\r\n\r\n /**\r\n * Vrací pole dílčích flagů enumu, ze kterého je hodnota složena\r\n * @param targetEnum Enum\r\n * @param composedValue Složená hodnota enumu\r\n */\r\n public static decomposeFlagEnumValue(targetEnum: T, composedValue: number): number[] {\r\n const decomposedValues: number[] = [];\r\n const possibleEnumNumericValues = EnumUtils.getNumericEnumValues(targetEnum);\r\n\r\n for (const numericValue of possibleEnumNumericValues) {\r\n if (!composedValue)\r\n break;\r\n\r\n if (composedValue & numericValue) {\r\n decomposedValues.push(numericValue);\r\n composedValue -= numericValue;\r\n }\r\n }\r\n\r\n return decomposedValues;\r\n }\r\n\r\n /**\r\n * Převede číselné hodnoty enumu na textové a spojí je lepidlem\r\n * @param sourceEnum Typ enumu\r\n * @param enumValues Hodnoty enumu\r\n * @param glue Lepidlo spojující jednotlivé položky\r\n */\r\n public static formatEnums(sourceEnum: INumericEnum, enumValues: number[], glue: string = \", \"): string {\r\n return enumValues.map(val => sourceEnum[val]).join(glue);\r\n }\r\n}\r\n\r\nGlobalContext.registerType(EnumUtils);\r\n","/**\r\n * Pomocné metody pro práci s flagy\r\n */\r\nexport class FlagUtils {\r\n /**\r\n * Zkonvertuje hodnotu z flagu na hodnotu z css\r\n * @param color Hodnota flagu\r\n * @returns Hodnota css stylu\r\n */\r\n public static flagToCss(color: string): string {\r\n if (!color)\r\n return \"\";\r\n\r\n return (color[0] === \"f\" ? color.substring(1) : color).toLowerCase();\r\n }\r\n}\r\n","/**\r\n * Identifikátor registrovaného typu\r\n * @includeToDoc\r\n */\r\nexport type TypeIdentifier = string | symbol | { new(...params: any[]): T;[Symbol.hasInstance]: (i: any) => boolean };\r\n","import { createDefaultSectionLoggerFactory } from \"Logging/defaultLogger\";\r\nimport { getDefaultLoggingSettings, LoggingSection } from \"Logging/index\";\r\nimport { TypeIdentifier } from \"./DIContainerInterfaces\";\r\nimport { InvalidArgumentException, InvalidOperationException } from \"./Exceptions\";\r\nimport { GlobalContext } from \"./GlobalContext\";\r\n\r\n/**\r\n * Dekorátor, který jde použít pro injectování parametru\r\n * @includeToDoc\r\n */\r\nexport type ParameterDecorator = (target: Object, propertyKey: string | symbol, parameterIndex: number) => void;\r\n\r\n/**\r\n * Rozhraní Dependency Injection kontejneru\r\n * @includeToDoc\r\n */\r\nexport interface ITypeFactory {\r\n /**\r\n * Získá instanci konkrétní implementace pro rozhraní definované identifikátorem (pro singletony je vracena vždy jedna instance)\r\n * @param typeIdentifier Identifikátor definující, pro které rozhraní se má hledat implementace\r\n * @param params Volitelné parametry, které se předávají do konstruktoru vytvářené property\r\n * @returns Instance třídy implementující rozhraní T\r\n */\r\n create(typeIdentifier: TypeIdentifier, ...params: any[]): T;\r\n\r\n /**\r\n * Vrátí příznak, zda je dostupná instance konkrétní implementace pro rozhraní definované identifikátorem\r\n * @param typeIdentifier Identifikátor definující hledanou implementaci se zadaným rozhraním\r\n * @returns Příznak, zda je dostupná instance třídy implementující rozhraní T\r\n */\r\n has(typeIdentifier: TypeIdentifier): boolean;\r\n\r\n /**\r\n * Vytvoří tovární funkci vytvářející instanci konkrétní implementace pro rozhraní definované identifikátorem (pro singletony je vracena vždy jedna instance)\r\n * @param typeIdentifier Identifikátor definující, pro které rozhraní se má hledat implementace\r\n * @param params Volitelné parametry, které se předávají do konstruktoru vytvářené property\r\n * @returns Tovární funkci vytvářející instanci třídy implementující rozhraní T\r\n */\r\n createFactory(typeIdentifier: TypeIdentifier, ...params: any[]): () => T;\r\n\r\n /**\r\n * Zaregistruje implementaci pro rozhraní definované identifikátorem\r\n * @param typeIdentifier Identifikátor definující rozhraní\r\n * @param classImplementedType Třída implementující dané rozhraní\r\n * @param isSingleton Zda je třída singleton, ted zda se má vždy vracet stejná instance\r\n * @param params Volitelné parametry předávané do konstruktoru při vytváření instance\r\n */\r\n register(typeIdentifier: TypeIdentifier, classImplementedType: new(...params: any[]) => T, isSingleton?: boolean, ...params: any[]): void;\r\n\r\n /**\r\n * Zaregistruje tovární funkci vracející implementaci pro rozhraní definované identifikátorem\r\n * @param typeIdentifier Identifikátor definující rozhraní\r\n * @param factoryFunction Tovární funkce vracející implementaci pro rozhraní definované identifikátorem\r\n * @param isSingleton Zda je třída singleton, ted zda se má vždy vracet stejná instance\r\n * @returns {}\r\n */\r\n registerFactory(typeIdentifier: TypeIdentifier, factoryFunction?: (...params: any[]) => T, isSingleton?: boolean): void;\r\n\r\n /**\r\n * Dekorátor pro automatické předání instance z TypeFactory do zadaného parametru\r\n * @param typeIdentifier Identifikátor definující rozhraní\r\n */\r\n bindType(typeIdentifier: TypeIdentifier): ParameterDecorator;\r\n\r\n /**\r\n * Dekorátor pro automatické předání funkce, která vrací instance z TypeFactory\r\n * @param typeIdentifier Identifikátor definující rozhraní\r\n */\r\n bindFactory(typeIdentifier: TypeIdentifier): ParameterDecorator;\r\n}\r\n\r\n// -------------------------------------------------------- defaultní implementace ---------------------------------------------------------\r\n\r\ninterface IFactoryData {\r\n classImplementedType?: new(...params: any[]) => any;\r\n factoryFunction?: (...params: any[]) => any;\r\n isSingleton?: boolean;\r\n singletonInstance?: any;\r\n params?: any[];\r\n}\r\n\r\nconst _typeFactoryMetadata: string | symbol = (self as any).Symbol ? Symbol(\"typeFactoryMetadata\") : \"__TSW_TypeFactory_Metadata__\";\r\n\r\ninterface ITypeFactoryMetadata {\r\n parameterBinds: Array<{ type: ITypeFactoryBindType; typeIdentifier: TypeIdentifier; params: any[] }>;\r\n}\r\n\r\nenum ITypeFactoryBindType { Type, Factory }\r\n\r\n/** Nastaveni urcuje zda v konzoli vypsat seznam properties/methods, ktere nebyly nalezeny v interface */\r\nconst DEBUG_TYPE_FACTORY_SHOW_NOT_FOUND_ITEMS = false;\r\n\r\n/**\r\n * Defaultní implementace ITypeFactory\r\n */\r\nclass _TypeFactory implements ITypeFactory {\r\n // ----- zvláštní syntaxe kvůli ES5 ;-) ----------------------------\r\n private _registeredTypes: { [key: string]: IFactoryData } = {};\r\n\r\n private _hasInstanceIsDefined = (self as any).Symbol && (self as any).Symbol.hasInstance;\r\n\r\n private readonly _logger = createDefaultSectionLoggerFactory(getDefaultLoggingSettings(false)).create(LoggingSection.dependencyInjection);\r\n\r\n private _checkInterfaceSupport(typeIdentifier: TypeIdentifier, obj: any): void {\r\n if (typeof typeIdentifier === \"function\" &&\r\n this._hasInstanceIsDefined &&\r\n (typeIdentifier as any)[(self as any).Symbol.hasInstance] &&\r\n !(typeIdentifier as any)[(self as any).Symbol.hasInstance](obj)) {\r\n if (DEBUG_TYPE_FACTORY_SHOW_NOT_FOUND_ITEMS) {\r\n // debug\r\n try {\r\n //_properties.some((value) => !Reflect.has(instance, value)\r\n const notFoundProp = [];\r\n const notFoundFnc = [];\r\n for (const prop of (typeIdentifier as any)._properties) {\r\n if (!Reflect.has(obj, prop)) notFoundProp.push(prop);\r\n }\r\n for (const prop of (typeIdentifier as any)._methods) {\r\n if (typeof obj[prop] !== \"function\") {\r\n notFoundFnc.push(prop);\r\n }\r\n }\r\n\r\n this._logger.log(\"Not found props: \", notFoundProp);\r\n this._logger.log(\"Not found fnc: \", notFoundFnc);\r\n } catch (e) { /* ignore */ }\r\n }\r\n throw new InvalidOperationException(`Class ${obj.constructor.name} does not implement interface ${this._getIdentifierName(typeIdentifier)}!`); //`\r\n }\r\n }\r\n // ----- zvláštní syntaxe kvůli ES5 ;-) ----------------------------\r\n\r\n private _getIdentifierName(typeIdentifier: TypeIdentifier): string {\r\n switch (typeof typeIdentifier) {\r\n case \"function\":\r\n return (typeIdentifier as any).name; // pokud bych to napsal do jako if, tak by tam nemuselo být přetypování na any, ale tohle TypeScript neumí\r\n case \"string\":\r\n return typeIdentifier;\r\n case \"symbol\":\r\n return /Symbol\\((\\w*)\\)/.exec((typeIdentifier as any).toString()) ![1];\r\n }\r\n throw new InvalidArgumentException(\"typeIdentifier\");\r\n }\r\n\r\n public create(typeIdentifier: TypeIdentifier, ...params: any[]): T {\r\n const identifierName = this._getIdentifierName(typeIdentifier);\r\n\r\n const typeDef = this._registeredTypes[identifierName];\r\n if (!typeDef)\r\n throw new InvalidOperationException(`Implementation for ${typeof typeIdentifier}(${identifierName}) not found!`); //`\r\n\r\n if (typeDef.isSingleton) {\r\n if (!typeDef.singletonInstance)\r\n typeDef.singletonInstance = this._createInstance(typeIdentifier, typeDef, ...params);\r\n return typeDef.singletonInstance as T;\r\n }\r\n\r\n return this._createInstance(typeIdentifier, typeDef, ...params) as T;\r\n }\r\n\r\n public has(typeIdentifier: TypeIdentifier): boolean {\r\n const identifierName = this._getIdentifierName(typeIdentifier);\r\n return !!this._registeredTypes[identifierName];\r\n }\r\n\r\n public createFactory(typeIdentifier: TypeIdentifier, ...params: any[]): (...params: any[]) => T {\r\n const getParams = (params: any[], params2: any[]) => (params ? params.concat(params2) : params2);\r\n return (...params2) => this.create(typeIdentifier, ...getParams(params, params2));\r\n }\r\n\r\n public register(typeIdentifier: TypeIdentifier, classImplementedType: new() => T, isSingleton?: boolean, ...params: any[]): void {\r\n this._checkInterfaceSupport(typeIdentifier, classImplementedType.prototype);\r\n\r\n const identifierName = this._getIdentifierName(typeIdentifier);\r\n this._registeredTypes[identifierName] = { classImplementedType: classImplementedType, isSingleton: !!isSingleton, params: params };\r\n }\r\n\r\n public registerFactory(typeIdentifier: TypeIdentifier, factoryFunction: (...params: any[]) => T, isSingleton?: boolean): void {\r\n const identifierName = this._getIdentifierName(typeIdentifier);\r\n this._registeredTypes[identifierName] = { factoryFunction: factoryFunction, isSingleton: !!isSingleton };\r\n }\r\n\r\n private _createInstance(typeIdentifier: TypeIdentifier, typeDef: IFactoryData, ...params: any[]): any {\r\n const getParams = () => (typeDef.params ? typeDef.params.concat(params) : params);\r\n\r\n let result: any;\r\n\r\n if (typeDef.classImplementedType) {\r\n const impType = typeDef.classImplementedType;\r\n const metadata: ITypeFactoryMetadata = (impType as any)[_typeFactoryMetadata as any];\r\n let _params: Array;\r\n if (metadata && metadata.parameterBinds) {\r\n _params = [];\r\n // naplní hodnoty podle dekorátorů\r\n for (const index in metadata.parameterBinds) {\r\n const pBinds = metadata.parameterBinds[index];\r\n switch (pBinds.type) {\r\n case ITypeFactoryBindType.Type:\r\n _params[index] = this.create(pBinds.typeIdentifier, ...pBinds.params);\r\n break;\r\n case ITypeFactoryBindType.Factory:\r\n _params[index] = this.createFactory(pBinds.typeIdentifier, ...pBinds.params);\r\n break;\r\n }\r\n }\r\n let pIndex = 0;\r\n // hodnoty nenaplněné dokorátory doplní hodnotami z parametrů\r\n for (const param of getParams()) {\r\n while (_params[pIndex])\r\n pIndex++;\r\n _params[pIndex] = param;\r\n }\r\n } else\r\n _params = getParams();\r\n\r\n result = new typeDef.classImplementedType(..._params);\r\n }\r\n\r\n if (typeDef.factoryFunction)\r\n result = typeDef.factoryFunction(...getParams());\r\n\r\n if (result) {\r\n this._checkInterfaceSupport(typeIdentifier, result);\r\n return result;\r\n }\r\n\r\n throw new InvalidOperationException(`Implementation for ${typeof typeIdentifier}(${this._getIdentifierName(typeIdentifier)}) not found!`); //`\r\n }\r\n\r\n public bindType(typeIdentifier: TypeIdentifier, ...params: any[]): ParameterDecorator {\r\n return (target: Object, _propertyKey: string | symbol, parameterIndex: number) => {\r\n if (typeof target !== \"function\")\r\n throw new InvalidArgumentException(\"target\");\r\n this._createMetadataItem(target, parameterIndex, typeIdentifier, params, ITypeFactoryBindType.Type);\r\n };\r\n }\r\n\r\n public bindFactory(typeIdentifier: TypeIdentifier, ...params: any[]): ParameterDecorator {\r\n return (target: Object, _propertyKey: string | symbol, parameterIndex: number) => {\r\n if (typeof target !== \"function\")\r\n throw new InvalidArgumentException(\"target\");\r\n this._createMetadataItem(target, parameterIndex, typeIdentifier, params, ITypeFactoryBindType.Factory);\r\n };\r\n }\r\n\r\n private _createMetadataItem(target: Object, parameterIndex: number, typeIdentifier: TypeIdentifier, params: any[], type: ITypeFactoryBindType): void {\r\n const metadata: ITypeFactoryMetadata = (target as any)[_typeFactoryMetadata as any] || ((target as any)[_typeFactoryMetadata as any] = {});\r\n const parameterBinds = metadata.parameterBinds || (metadata.parameterBinds = []);\r\n parameterBinds[parameterIndex] = {\r\n type: type,\r\n typeIdentifier: typeIdentifier,\r\n params: params,\r\n };\r\n }\r\n}\r\n\r\n// -------------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Pomocná třída pro vytváření lazy getteru property pro instancializaci z DI kontejneru\r\n * @includeToDoc\r\n */\r\nexport class InjectedProperty {\r\n /**\r\n * Vytvoří property s lazy getterem, který vrací singleton instanci vytvořenou DI kontejnerem\r\n * @param object Objekt, na kterém se má property vytvořit\r\n * @param propertyName Název property\r\n * @param typeIdentifier Identifikátor, podle kterého se má najít konkrétní implementace v kontejneru\r\n */\r\n public static bindProperty(object: any, propertyName: PropertyKey, typeIdentifier: TypeIdentifier): void {\r\n let instance: any;\r\n Object.defineProperty(object, propertyName, {\r\n get: () => {\r\n if (!instance)\r\n instance = DIContainer.instance.create(typeIdentifier);\r\n return instance;\r\n },\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n */\r\nexport class LazyProperty {\r\n /**\r\n * Vytvoří property s lazy getterem, který vrací instanci vytvořenou pomocí předané tovární metody\r\n * @param object Objekt, na kterém se má property vytvořit\r\n * @param propertyName Název property\r\n * @param factoryMethod Metoda pro získání instance\r\n */\r\n public static bindProperty(object: any, propertyName: PropertyKey, factoryMethod: () => T): void {\r\n let instance: any;\r\n Object.defineProperty(object, propertyName, {\r\n get: () => {\r\n if (!instance)\r\n instance = factoryMethod();\r\n return instance;\r\n },\r\n });\r\n }\r\n}\r\n\r\nlet _typeFactoryImplementation: new() => ITypeFactory = _TypeFactory;\r\n\r\n/**\r\n * Metoda sloužící pro registraci vlastní implementace TypeFactory\r\n * @param impl třída reprezentující vlastní implementaci TypeFactory\r\n * @includeToDoc\r\n */\r\nexport function setDIContainerImplementation(impl: new() => ITypeFactory) {\r\n _typeFactoryImplementation = impl;\r\n}\r\n\r\n// ----- property DIContainer -------------------\r\nlet _typeFactory: ITypeFactory;\r\n\r\nexport function getDIContainer(): ITypeFactory {\r\n if (!_typeFactory)\r\n _typeFactory = new _typeFactoryImplementation();\r\n return _typeFactory;\r\n}\r\n\r\n/**\r\n * Třída sloužící pro přístup k Dependency Injection kontejneru\r\n */\r\nexport class DIContainer {\r\n public static get instance(): ITypeFactory {\r\n return getDIContainer();\r\n }\r\n}\r\n// ----- property TypeFactory --------------------\r\n\r\nGlobalContext.registerType(DIContainer);\r\n","import { ISectionLogger, ISectionLoggerFactory, LoggingSection } from \"@multiweb/logging\";\r\nimport { FormatProviderInputValues, FormatProviderParams } from \"@multiweb/types/multiweb\";\r\nimport { CaseInsensitiveMap } from \"../DataTypes/CaseInsensitiveMap\";\r\nimport { DIContainer } from \"../DIContainer\";\r\n\r\nexport interface IFactoryFormatProviderFunction {\r\n (value: FormatProviderInputValues,\r\n params: FormatProviderParams): string;\r\n}\r\n\r\nexport class FormatProviderRegistrator {\r\n private _fncs = new CaseInsensitiveMap();\r\n\r\n private _logger: ISectionLogger;\r\n private static _instance: FormatProviderRegistrator;\r\n private static _getInstance(): FormatProviderRegistrator {\r\n if (!this._instance)\r\n this._instance = new FormatProviderRegistrator();\r\n\r\n return this._instance;\r\n }\r\n\r\n constructor() {\r\n this._logger = DIContainer.instance.create(ISectionLoggerFactory).create(LoggingSection.dataFormatRegistrator);\r\n }\r\n\r\n public static register(formatedProviderKey: string, fnc: IFactoryFormatProviderFunction): void {\r\n FormatProviderRegistrator._getInstance()._fncs.set(formatedProviderKey.toLowerCase(), fnc);\r\n }\r\n\r\n public static getFormatProvider(formatProviderKey: string, value: FormatProviderInputValues, params: FormatProviderParams): string {\r\n if (!formatProviderKey)\r\n return String(value);\r\n\r\n const factoryFncName = FormatProviderRegistrator._getInstance()._fncs.get(formatProviderKey.toLowerCase());\r\n if (factoryFncName) {\r\n return factoryFncName(value, params);\r\n } else {\r\n FormatProviderRegistrator._getInstance()._logger.warn(\"Definition for data format function %s was not found. Not formating.\", formatProviderKey.toLowerCase());\r\n return String(value);\r\n }\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { CultureInfo } from \"../../Dom/CultureInfo\";\r\nimport { BigNumberProxy } from \"../DataTypes/BigNumber\";\r\nimport { IBigNumber } from \"../DataTypes/IBigNumber\";\r\nimport { FormatProviderRegistrator } from \"../FormatProviderRegistrator/FormatProviderRegistrator\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.core);\r\n\r\nexport type GetFormattedNumberStringParams = {\r\n displayFormat?: string;\r\n currency?: string;\r\n dataType?: OWDataType | string;\r\n};\r\n\r\nexport class NumberUtils {\r\n public static readonly BYTE_MAX = 255;\r\n public static readonly BYTE_MIN = 0;\r\n\r\n public static readonly SHORT_MAX = 32767;\r\n public static readonly SHORT_MIN = -32768;\r\n\r\n public static readonly INT_MAX = 2147483647;\r\n public static readonly INT_MIN = -2147483648;\r\n\r\n public static readonly INT64_MAX = 4503599627370496;\r\n public static readonly INT64_MIN = -4503599627370496;\r\n\r\n public static readonly SINGLE_MAX = 1.7e+38;\r\n public static readonly SINGLE_MIN = -1.7e+38;\r\n\r\n public static readonly DOUBLE_MAX = 3.4e+38;\r\n public static readonly DOUBLE_MIN = -3.4e+38;\r\n\r\n public static readonly DECIMAL_MAX = 7.9e+28;\r\n public static readonly DECIMAL_MIN = -7.9e+28;\r\n\r\n /**\r\n * Formátovací masky: https://wiki-dokumentace/index.php?title=Form%C3%A1tovac%C3%AD_masky\r\n */\r\n\r\n /**oddělovač tisíců a 2 desetinná místa, to je obvyklé pro peněžní částky.*/\r\n public static readonly DEFAULT_FORMAT_MONEY = \"#,##0.00\";\r\n /**oddělovat tisíců a bez desetinných míst.*/\r\n public static readonly DEFAULT_FORMAT_REAL_NUMBER = \"#,##0.###############\";\r\n /**oddělovat tisíců a bez desetinných míst.*/\r\n public static readonly DEFAULT_FORMAT_WHOLE_NUMBER = \"#,##0\";\r\n /**general - oddělovač tisíců a variabilní desetinná místa.*/\r\n public static readonly DEFAULT_FORMAT_GENERAL = \"g\";\r\n\r\n /**\r\n * Podporované datové typy https://wiki-dokumentace/index.php?title=Podporovan%C3%A9_datov%C3%A9_typy\r\n */\r\n\r\n public static readonly DATE_TYPES = new Set([\r\n OWDataType.date,\r\n OWDataType.time,\r\n OWDataType.dateTime,\r\n ]);\r\n\r\n public static readonly NUMBER_TYPES = new Set([\r\n OWDataType.decimal,\r\n OWDataType.money,\r\n OWDataType.bcd,\r\n OWDataType.double,\r\n OWDataType.single,\r\n OWDataType.byte,\r\n OWDataType.short,\r\n OWDataType.integer,\r\n OWDataType.int64,\r\n ]);\r\n\r\n private static readonly _MONEY_NUMBER_TYPES = new Set([\r\n OWDataType.decimal,\r\n OWDataType.money,\r\n ]);\r\n\r\n private static readonly _REAL_NUMBER_TYPES = new Set([\r\n OWDataType.bcd,\r\n OWDataType.double,\r\n OWDataType.single,\r\n ]);\r\n\r\n private static readonly _WHOLE_NUMBER_TYPES = new Set([\r\n OWDataType.byte,\r\n OWDataType.short,\r\n OWDataType.integer,\r\n OWDataType.int64,\r\n ]);\r\n\r\n /**\r\n * Regularni vyraz ktery zjisti, jestli cislo je ve formatu 123.45 nebo 12.3e-45\r\n * a rozdeli ho na znamenko, desetinnou cast, celou cast a exponent.\r\n * @private\r\n */\r\n private static readonly _NEX = /^([+-])?(\\d*)(?:\\.(\\d+))?(?:e([+-])(\\d+))?$/;\r\n private static readonly _HI = [\"⁰\", \"¹\", \"²\", \"³\", \"⁴\", \"⁵\", \"⁶\", \"⁷\", \"⁸\", \"⁹\"]; // horni indexy ⁻ ⁺\r\n private static readonly _FEX = /([0#,]+)(?:\\.([0#]+))?/;\r\n /** Regulární výraz který zjistí, zda je znak oddělovače tisíců mezera (včetně nedělitelné mezery). */\r\n public static readonly WHITESPACE_GROUP_SEPARATOR_REGEX = /^(\\s)$/;\r\n /** Regulární výraz pro nahrazení mezer v řetězci. */\r\n public static readonly WHITESPACE_REGEX_GLOBAL = /\\s/g;\r\n\r\n private static readonly _NUM_TO_STR_FUNCS: any = {};\r\n\r\n public static displayFormatToNumberFormat(format: string): INumberFormatOptions {\r\n const s = NumberUtils._FEX.exec(format);\r\n const r: INumberFormatOptions = {};\r\n if (s) {\r\n const d = s[2];\r\n if (d != null)\r\n r.maximumFractionDigits = (d.lastIndexOf(\"0\") + 1) || d.length; // .## , .#0 bere jako .00 - casem doladit\r\n }\r\n return r;\r\n }\r\n\r\n public static numberToString(numStr: string, params: Readonly): string {\r\n const n = numStr,\r\n nf = CultureInfo.getCultureInfo().numberFormat,\r\n s = NumberUtils._NEX.exec(n);\r\n\r\n if (!s)\r\n return n.replace(/Infinity/gi, \"∞\");\r\n\r\n const sign = (s[1] === undefined || s[1] === \"+\") ? \"\" : \"-\";\r\n let fractions = s[3] ?? \"\"; // desetinna cast cisla\r\n let integer = s[2]; // cela cast cisla\r\n\r\n if (s[4]) { // jestli bylo nalezeno znamenko exponentu\r\n const hI = NumberUtils._HI;\r\n const exponentSign = s[4] === \"-\" ? \"⁻\" : \"\";\r\n const exponent = s[5].replace(/./g, (v) => hI[parseInt(v)]);\r\n return sign + integer + nf.decimalSeparator + fractions + \"×10\" + exponentSign + exponent;\r\n }\r\n\r\n let carry: boolean = false; // příznak, zda se má navýšit celá část čísla po zaokrouhlení\r\n\r\n const minFractionDigits = params.minimumFractionDigits ?? -1;\r\n const maxFractionDigits = params.maximumFractionDigits ?? -1;\r\n\r\n const minIntegerDigits = params.minimumIntegerDigits;\r\n if (minFractionDigits > -1 || maxFractionDigits > -1) {\r\n if (fractions === undefined)\r\n fractions = \"\";\r\n\r\n // rozšíření o nuly\r\n let fractionDigits = fractions.length;\r\n if (fractionDigits < minFractionDigits)\r\n fractions += new Array(minFractionDigits - fractionDigits + 1).join(\"0\");\r\n\r\n // zkrácení na maximální délku a zaokrouhlení\r\n fractionDigits = fractions.length;\r\n\r\n if (fractionDigits !== 0 && fractionDigits > maxFractionDigits) {\r\n const exceedingDigit: number = +fractions[maxFractionDigits];\r\n const shouldRound: boolean = exceedingDigit >= 5;\r\n const trimmedNumberString: string = fractions.substring(0, maxFractionDigits);\r\n\r\n if (trimmedNumberString === \"\") {\r\n // Počet desetinných čísel je 0, nastavíme prázdný řetězec\r\n fractions = trimmedNumberString;\r\n if (shouldRound) { // Zaokrouhlení na místě desetin později připíšeme do celé části čísla\r\n carry = true;\r\n }\r\n } else {\r\n if (shouldRound) { // zaokrouhlení nahoru\r\n let roundedResult = Number.isSafeInteger(+trimmedNumberString)\r\n ? (+trimmedNumberString + 1).toString()\r\n : new BigNumberProxy(trimmedNumberString).plus(1).toString();\r\n\r\n // Doplní nuly před zaokrouhlenou hodnotou - nutné pro případy kdy `+trimmedNumberString === 0`\r\n roundedResult = roundedResult.padStart(maxFractionDigits, \"0\");\r\n\r\n if (roundedResult.length > maxFractionDigits) {\r\n // po zaokrouhlení má desetinná část více číslic než dříve - tzn. vznikl přenos do celé části\r\n carry = true;\r\n fractions = \"0\".repeat(maxFractionDigits);\r\n } else {\r\n fractions = roundedResult;\r\n }\r\n } else { // zaokrouhlení dolů\r\n fractions = trimmedNumberString;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (minIntegerDigits !== undefined && minIntegerDigits > -1) {\r\n if (integer === undefined)\r\n integer = \"\";\r\n const l = integer.length;\r\n if (l < minIntegerDigits)\r\n integer = new Array(minIntegerDigits - l + 1).join(\"0\") + integer;\r\n }\r\n\r\n // Pokud při zaokrouhlování vznikl přenos do celé části čísla, přičte se 1\r\n if (carry) {\r\n integer = Number.isSafeInteger(+integer)\r\n ? (+integer + 1).toString()\r\n : new BigNumberProxy(integer).plus(1).toString();\r\n }\r\n\r\n const grp = params.groupSizes;\r\n let reg: RegExp;\r\n if (grp && grp.length === 1) {\r\n reg = grp[0] === 3 ? /(\\d)(?=(\\d{3})+\\b)/g : new RegExp(\"(\\\\d)(?=(\\\\d{\" + grp[0] + \"})+\\\\b)\", \"g\");\r\n integer = integer.replace(reg, \"$1\" + nf.groupSeparator);\r\n }\r\n\r\n if (fractions) { // Jedná se o desetinné číslo\r\n const decimalPart = nf.decimalSeparator + fractions;\r\n return sign + integer + decimalPart;\r\n } else { // Jedná se o celé číslo\r\n return integer === \"0\" // Řeší problém se zápornou nulou\r\n ? integer\r\n : sign + integer;\r\n }\r\n }\r\n\r\n /**\r\n * Vrací výchozí formátování podle datového typu.\r\n */\r\n public static getDefaultFormat(dataType?: OWDataType | string): string {\r\n if (!dataType)\r\n return this.DEFAULT_FORMAT_GENERAL;\r\n\r\n if (NumberUtils._MONEY_NUMBER_TYPES.has(dataType))\r\n return this.DEFAULT_FORMAT_MONEY;\r\n else if (NumberUtils._REAL_NUMBER_TYPES.has(dataType))\r\n return this.DEFAULT_FORMAT_REAL_NUMBER;\r\n else if (NumberUtils._WHOLE_NUMBER_TYPES.has(dataType))\r\n return this.DEFAULT_FORMAT_WHOLE_NUMBER;\r\n\r\n return this.DEFAULT_FORMAT_GENERAL;\r\n }\r\n\r\n public static getStandardNumberFormatOptions(format?: string, currency?: string, dataType?: OWDataType | string): INumberFormatOptions {\r\n if (!format || format === this.DEFAULT_FORMAT_GENERAL) { //pokud je format 'g' nebo prázdný, tak zkontroluje datový typ a případně format upraví\r\n format = this.getDefaultFormat(dataType);\r\n }\r\n\r\n const opts: INumberFormatOptions = {};\r\n // casem doresit Money - nutno pridat k formatu i info o mene pro zobrazeni symbolu\r\n\r\n if (format === \"g\") { // oddelovac tisicu + promenlivy pocet des. mist\r\n opts.maximumFractionDigits = 2;\r\n return opts;\r\n }\r\n\r\n const grouping = format.indexOf(\",\") >= 0 || format === \"g\";\r\n\r\n const frSepPos = format.indexOf(\".\");\r\n if (frSepPos >= 0) {\r\n const splitDisplay = format.split(\".\");\r\n const leftD = splitDisplay[0];\r\n const rightD = splitDisplay[1];\r\n\r\n let minIntD = NumberUtils._getNumOfOccurrences(leftD, \"0\"); //povinny pocet znaku\r\n // musi byt v rozsahu 1-21\r\n if (minIntD <= 0)\r\n minIntD = 1;\r\n if (minIntD > 21)\r\n minIntD = 21;\r\n let minFractD = NumberUtils._getNumOfOccurrences(rightD, \"0\"); //povinny pocet znaku\r\n // musi byt v rozsahu 0-20\r\n if (minFractD < 0)\r\n minFractD = 0;\r\n if (minFractD > 20)\r\n minFractD = 20;\r\n let maxFractD = NumberUtils._getNumOfOccurrences(rightD, \"#\"); //volitelny pocet znaku\r\n // musi byt v rozsahu 0-20\r\n if (maxFractD < 0)\r\n maxFractD = 0;\r\n if (maxFractD > 20)\r\n maxFractD = 20;\r\n\r\n opts.minimumIntegerDigits = minIntD;\r\n opts.minimumFractionDigits = minFractD > 0 ? minFractD + maxFractD : 0;\r\n opts.maximumFractionDigits = minFractD + maxFractD;\r\n } else {\r\n opts.maximumFractionDigits = 0;\r\n }\r\n\r\n if (grouping) {\r\n opts.useGrouping = true;\r\n opts.groupSizes = [3];\r\n } else\r\n opts.useGrouping = false;\r\n\r\n if (currency) { // Money\r\n opts.style = \"currency\";\r\n opts.currency = currency;\r\n }\r\n\r\n return opts;\r\n }\r\n\r\n /**\r\n * Naformátuje zadanou hodnotu (v pořadí podle priority):\r\n * 1. Podle vlastnosti `displayFormat` - řešeno v {@link getNumberToStringFunction}\r\n * 2. Podle datového typu `dataType` - řešeno v {@link getNumberToStringFunction}\r\n * 3. Podle nastavené kultury prohlížeče - řešeno v {@link BigNumberProxy.toLocaleString} pro BigNumber\r\n * a pro obyčejné čísla nativně pomocí {@link Number.toLocaleString}.\r\n *\r\n * - Podporuje nastavení znaku měny (např. \"EUR\", \"JPY\").\r\n * - Umí pracovat s BigNumber.\r\n * @param val Hodnota k naformátování.\r\n * @param displayFormat Formátovací maska.\r\n * @param currency Měna.\r\n * @param dataType Datový typ.\r\n * @param formatedProviderKey klíč formátovací funkce.\r\n */\r\n public static getFormattedNumberString(\r\n val: string | IBigNumber | number | null | undefined,\r\n { displayFormat, currency, dataType }: GetFormattedNumberStringParams,\r\n formatedProviderKey?: string,\r\n ): string {\r\n if (val == null || val === \"\" || Number.isNaN(+val)) {\r\n return \"\";\r\n }\r\n const cultureInfo = CultureInfo.getCultureInfo();\r\n const culture = cultureInfo.name;\r\n if (formatedProviderKey) {\r\n return FormatProviderRegistrator.getFormatProvider(formatedProviderKey, val, { displayFormat, currency, dataType, culture });\r\n } else if (cultureInfo.numberFormat.useArabicNumbers && (displayFormat || currency || dataType)) {\r\n return NumberUtils.getNumberToStringFunction(displayFormat, currency, dataType).format(val);\r\n } else {\r\n // Pro formátování BigNumber podle kultury se použije vlastní implementace `toLocaleString` z třídy BigNumberProxy,\r\n // Ve zbývajících případech se použije nativní metoda Number.toLocaleString.\r\n return val instanceof BigNumberProxy ? val.toLocaleString(culture) : (+val).toLocaleString(culture);\r\n }\r\n }\r\n\r\n /**\r\n * Zjisteni poctu vyskytu retezce v nejakem nadrazenem retezci -> je to daleko rychlejsi nez RegExpy\r\n * @param str retezec, ve kterem se vyhledava\r\n * @param subString retezec, ktery se hleda\r\n * @returns pocet vyskytu\r\n */\r\n private static _getNumOfOccurrences(str: string, subString: string): number {\r\n str += \"\";\r\n subString += \"\";\r\n if (subString.length <= 0)\r\n return str.length + 1;\r\n let n = 0;\r\n let pos = 0;\r\n const step = subString.length;\r\n\r\n for (;;) {\r\n pos = str.indexOf(subString, pos);\r\n if (pos >= 0) {\r\n n++;\r\n pos += step;\r\n } else\r\n break;\r\n }\r\n return n;\r\n }\r\n\r\n public static getNumberToStringFunction(format?: string, currency?: string, dataType?: OWDataType | string): INumberFormatObject {\r\n const opts = NumberUtils.getStandardNumberFormatOptions(format, currency, dataType);\r\n let obj: INumberFormatObject;\r\n\r\n if (CultureInfo.hasI18N) {\r\n const cn = CultureInfo.getCultureInfo().name;\r\n\r\n if (format && NumberUtils._NUM_TO_STR_FUNCS[cn] && NumberUtils._NUM_TO_STR_FUNCS[cn][format])\r\n return NumberUtils._NUM_TO_STR_FUNCS[cn][format];\r\n\r\n const formatFn = (new Intl.NumberFormat(cn, opts)).format;\r\n\r\n obj = {\r\n format: function(value: any) {\r\n if (typeof value === \"number\") {\r\n return formatFn(value);\r\n } else if (typeof value === \"object\") // BigNumber\r\n return NumberUtils.numberToString(value.toString(), opts);\r\n else if (typeof value === \"string\") { // number as string\r\n return NumberUtils.numberToString(value, opts);\r\n }\r\n return \"\";\r\n },\r\n };\r\n\r\n if (!NumberUtils._NUM_TO_STR_FUNCS[cn])\r\n NumberUtils._NUM_TO_STR_FUNCS[cn] = {};\r\n\r\n if (format) {\r\n NumberUtils._NUM_TO_STR_FUNCS[cn][format] = obj;\r\n }\r\n return obj;\r\n } else {\r\n if (format && NumberUtils._NUM_TO_STR_FUNCS[format])\r\n return NumberUtils._NUM_TO_STR_FUNCS[format];\r\n\r\n obj = {\r\n format: (value: number) => {\r\n return NumberUtils.numberToString(value.toString(), opts); // number i BigNumber\r\n },\r\n };\r\n\r\n if (format) {\r\n NumberUtils._NUM_TO_STR_FUNCS[format] = obj;\r\n }\r\n return obj;\r\n }\r\n }\r\n\r\n /**\r\n * Odstraní formátování a vrátí string s číslem v neutrální kultuře\r\n * @param value Hodnota, ze které má být odstraněno formátování\r\n * @param groupSeparator Oddělovač tisíců\r\n * @param decimalSeparator Oddělovač desetinných míst\r\n */\r\n public static removeFormatting(value: string, groupSeparator: string, decimalSeparator: string): string {\r\n const groupSeparatorRegex = NumberUtils.WHITESPACE_GROUP_SEPARATOR_REGEX.test(groupSeparator) ? NumberUtils.WHITESPACE_REGEX_GLOBAL : new RegExp(groupSeparator, \"g\");\r\n return value.replace(groupSeparatorRegex, \"\").replace(decimalSeparator, \".\").trim();\r\n }\r\n\r\n /**\r\n * Zjistí minimální a maximální hodnotu pro číselný datový typ nebo null, pokud nebylo nalezeno\r\n * @param dataType Název číselného datového typu\r\n */\r\n public static getTypeMinMax(dataType: OWDataType | string): { min: number; max: number } | null {\r\n switch (dataType) {\r\n case OWDataType.byte:\r\n return { min: NumberUtils.BYTE_MIN, max: NumberUtils.BYTE_MAX };\r\n case OWDataType.short:\r\n return { min: NumberUtils.SHORT_MIN, max: NumberUtils.SHORT_MAX };\r\n case OWDataType.integer:\r\n return { min: NumberUtils.INT_MIN, max: NumberUtils.INT_MAX };\r\n case OWDataType.int64:\r\n return { min: NumberUtils.INT64_MIN, max: NumberUtils.INT64_MAX };\r\n case OWDataType.single:\r\n return { min: NumberUtils.SINGLE_MIN, max: NumberUtils.SINGLE_MAX };\r\n case OWDataType.decimal:\r\n case OWDataType.strNum:\r\n return { min: NumberUtils.DECIMAL_MIN, max: NumberUtils.DECIMAL_MAX };\r\n case OWDataType.double:\r\n case OWDataType.bcd:\r\n case OWDataType.money:\r\n return { min: NumberUtils.DOUBLE_MIN, max: NumberUtils.DOUBLE_MAX };\r\n default:\r\n logger.error(`Unknown data type: ${dataType}`);\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Zjistí, zda je daný datový typ celé číslo\r\n * @param dataType Název číselného datového typu\r\n */\r\n public static isWholeNumberType(dataType: OWDataType | string): boolean {\r\n return NumberUtils._WHOLE_NUMBER_TYPES.has(dataType);\r\n }\r\n\r\n /**\r\n * Zjistí, zda je daný datový typ číslo\r\n * @param dataType Název číselného datového typu\r\n */\r\n public static isNumberType(dataType: OWDataType | string): boolean {\r\n return NumberUtils.NUMBER_TYPES.has(dataType);\r\n }\r\n\r\n /**\r\n * Hodnoty null a undefined změní na \"auto\", k číselným hodnotám přidá \"px\"\r\n */\r\n public static transformLengthToCss(length: number): string {\r\n return length != null ? length + \"px\" : \"auto\";\r\n }\r\n}\r\n\r\nexport interface INumberFormatObject {\r\n format: (num: any) => string;\r\n}\r\n\r\nexport interface INumberFormatOptions extends Intl.NumberFormatOptions {\r\n groupSizes?: number[];\r\n}\r\n\r\nGlobalContext.registerType(NumberUtils);\r\n","import { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport class UrlUtils {\r\n private static readonly _URL_EXP: RegExp = new RegExp(\r\n \"^\" +\r\n \"(\" +\r\n // Povolení 0 až 5 lomítek u protokolu file\r\n \"(file:(/){0,5})\" +\r\n \"|\" +\r\n // Identifikátor protokolu\r\n \"([-a-zA-Z0-9]+://)\" +\r\n \")\" +\r\n // Autentizace (user:password@)\r\n \"(?:\\\\S+(?::\\\\S*)?@)?\" +\r\n \"(?:\" +\r\n // IP adresa, mimo rezervované (0.0.0.0-1.0.0.0, 224.0.0.0-255.255.255.255, #.#.#.0, #.#.#.255)\r\n \"(?:[1-9]|[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" + // 1-223\r\n \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\\\\.\" + // 2x 0-225\r\n \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4])\" + // 1-224\r\n \"|\" +\r\n // Host\r\n // Celková délka doménového jména nesmí být delší než 253 znaků\r\n // Žádná část doménového jména nesmí: být delší než 63 znaků, začínat ani končit pomlčkou, obsahovat více pomlček za sebou\r\n \"(?![^:/#?]{254,})\" +\r\n // Poslední subdoména\r\n \"(?![^.:/#?]{64,})\" +\r\n /* \"(?:xn--)?\" +*/ // Povolí punycode\r\n \"[a-z\\\\u00a1-\\\\uffff0-9]+(?:-[a-z\\\\u00a1-\\\\uffff0-9]+)*\" +\r\n \"(?:\\\\.\" +\r\n // Ostatní subdoméney\r\n \"(?:\" +\r\n \"(?![^.:/#?]{64,})\" +\r\n /* \"(?:xn--)?\" +*/ // Povolí punycode\r\n \"[a-z\\\\u00a1-\\\\uffff0-9]+(?:-[a-z\\\\u00a1-\\\\uffff0-9]+)*\\\\.\" +\r\n \")*\" +\r\n // Top-level doména (oproti subdoménám musí navíc obsahovat alespoň jeden nečíselný znak)\r\n \"(?![^.:/#?]{64,})\" +\r\n \"(?!\\\\d+(?:$|[:/#?]))\" +\r\n /* \"(?:xn--)?\" +*/ // Povolí punycode\r\n \"[a-z\\\\u00a1-\\\\uffff0-9]+(?:-[a-z\\\\u00a1-\\\\uffff0-9]+)*\\\\.?\" +\r\n \")?\" +\r\n \")\" +\r\n // Číslo portu\r\n \"(?::\\\\d{2,5})?\" +\r\n // Cesta začínající lomítkem, nebo query string otazníkem, nebo fragment mřížkou\r\n \"(?:[/#?]\\\\S*)?\" +\r\n \"$\", \"i\",\r\n );\r\n\r\n private static readonly _EMAIL_EXP: RegExp = /^((\\bmailto:){0,1}[\\w-]+(?:\\.[\\w-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$/i;\r\n\r\n private static readonly _PARAMETRIC_MAILTO_EXP: RegExp = /^((\\bmailto:)[\\w@-]+(?:\\.[\\w@-]+)*)@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([\\w@]+)$/i;\r\n\r\n // Začíná \"X:\\\" nebo \"\\\\host\" nebo \"//\" za kterými může následovat cesta k souboru\\adresáři např \"adresář\\adresář\\soubor\" nebo \"/adresář/adresář/soubor\".\r\n private static readonly _FILE_EXP: RegExp = /^(?:[a-zA-Z]:\\\\|\\\\\\\\([\\w\\s0-9._-]+)*($|\\\\)|\\/\\/|\\/([\\w0-9á-žÁ-Ž_-][\\w\\s0-9á-žÁ-Ž_-]*)($|\\/))((?:[^\\s<>:/\"\\\\|?*][^<>:\"/\\\\|?*]*)(?:(\\\\|\\/)[^\\s<>:\"/\\\\|?*][^<>:\"/\\\\|?*]*)*[\\\\/]?)?$/iu;\r\n /**\r\n * Najde hodnotu parametru v aktuální adrese nebo v předané url\r\n * @param name Název hledaného atributu\r\n * @param url Url, ve které se má atribut hladat - pokud není uvedená, tak se hledá v aktuální adrese\r\n */\r\n public static getParameterByName(name: string, url?: string): string {\r\n name = name.replace(/[[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n\r\n if (!url) {\r\n url = location.search;\r\n } else {\r\n const paramsStart = url.indexOf(\"?\");\r\n if (paramsStart !== -1)\r\n url = url.substr(paramsStart);\r\n }\r\n\r\n const regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n const results = regex.exec(url);\r\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }\r\n\r\n /**\r\n * Odstraní z předané url poslední část se souborem.\r\n * Pokud url soubor neobsahuje, tak se url nemění.\r\n * KOPIE pro skripty ve script-utils.js - při změně nutno synchronizovat!\r\n * @example Z http://domain.xy/b/index.html vytvoří http://domain.xy/b/.\r\n * @param url Url k ořežání\r\n */\r\n public static stripFilePart(url: URL): URL {\r\n if (!url.pathname)\r\n return url;\r\n\r\n const filePartStart = url.pathname.lastIndexOf(\"/\");\r\n const filePart = filePartStart === -1 ? url.pathname : url.pathname.substring(filePartStart);\r\n if (!/([\\d\\w-_]+\\.[\\d\\w]+)/i.test(filePart))\r\n return url;\r\n\r\n return new URL(url.pathname.substring(0, filePartStart + 1), url.origin);\r\n }\r\n\r\n /**\r\n * Zparsuje url z textové podoby na URL objekt.\r\n * Je možné zadat absolutní url začínající na schéma a nebo zadat relativní url.\r\n * Relativní url se připojí k parametru baseUrl.\r\n * @example Relativní url \"../..\" a baseUrl \"http://domain.xy/a/b/c/\" vytvoří \"http://domain.xy/a/\".\r\n * @param url Url ke zpracování\r\n * @param baseUrl Základní url pro relativní adresy\r\n */\r\n public static parseUrl(url: string, baseUrl: URL): URL | undefined {\r\n if (!url)\r\n return undefined;\r\n\r\n // absolutní url\r\n if (/^https?:\\/\\//i.test(url))\r\n return new URL(url.endsWith(\"/\") ? url : `${url}/`);\r\n\r\n // relativní url\r\n return new URL(url, UrlUtils.stripFilePart(baseUrl));\r\n }\r\n\r\n /**\r\n * Funkce testuje zda je adresa parametrická.\r\n * @param url Testovaná url.\r\n * @returns {boolean} - Vrací true v případě, že jde o parametrickou adresu.\r\n */\r\n public static isParametricUrl(url: string): boolean {\r\n return this.isUrl(url) || this.isParametricMailto(url) || this.isFile(url);\r\n }\r\n\r\n /**\r\n * Testuje zda je řetězec url adresa.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o url adresu.\r\n */\r\n public static isUrl(value: string): boolean {\r\n return this._URL_EXP.test(value);\r\n }\r\n\r\n /**\r\n * Testuje zda je řetězec emailová adresa.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o emailovou adresu.\r\n */\r\n public static isEmail(value: string): boolean {\r\n return this._EMAIL_EXP.test(value);\r\n }\r\n\r\n /**\r\n * Testuje zda je řetězec parametrická emailová adresa s \"mailto\".\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o parametrickou emailovou adresu s \"mailto\".\r\n */\r\n public static isParametricMailto(value: string): boolean {\r\n return this._PARAMETRIC_MAILTO_EXP.test(value);\r\n }\r\n\r\n /**\r\n * Testuje zda je řetězec cesta k souboru.\r\n * @param value Řetězec k otestování.\r\n * @returns {boolean} - Vrací true pokud se jedná o cestu k souboru.\r\n */\r\n public static isFile(value: string): boolean {\r\n return this._FILE_EXP.test(value);\r\n }\r\n\r\n /**\r\n * Funkce testuje zda adresa obsahuje parametry.\r\n * @param url Testovaná url.\r\n * @returns {boolean} - Vrací true v případě, že adresa obsahuje parametry.\r\n */\r\n public static hasParameters(url: string): boolean {\r\n const isParametricMailto = this.isParametricMailto(url);\r\n const atCount = url.split(\"@\").length;\r\n\r\n if ((isParametricMailto && atCount > 2) || (!isParametricMailto && atCount > 1))\r\n return true;\r\n\r\n return false;\r\n }\r\n}\r\n\r\nGlobalContext.registerType(UrlUtils);\r\n","import { StringUtils } from \"../../Global/Base/Utils/StringUtils\";\r\n\r\nexport class LocalizationUtils {\r\n private static readonly ATTRIBUTES_TO_SET_SEPARATOR = \",\";\r\n\r\n public static parseLocalizationParams(paramsString: string): string[] {\r\n return JSON.parse(paramsString);\r\n }\r\n\r\n public static encodeLocalizationParams(params: string[]): string {\r\n return JSON.stringify(params);\r\n }\r\n\r\n public static parseAttributesToSet(attributes: string): string[] {\r\n return (attributes || \"\").split(LocalizationUtils.ATTRIBUTES_TO_SET_SEPARATOR);\r\n }\r\n\r\n public static encodeAttributesToSet(attributes: string | readonly string[]): string {\r\n return Array.isArray(attributes) ? attributes.join(LocalizationUtils.ATTRIBUTES_TO_SET_SEPARATOR) : attributes as string;\r\n }\r\n\r\n public static applyLocParams(text: string, params?: string[]): string {\r\n if (params && params.length)\r\n text = StringUtils.format(text, params)!;\r\n return (text == null || text == \"null\") ? \"\" : text;\r\n }\r\n}\r\n","import { MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\n\r\n/** Typ pro uložení extendedProperties. */\r\nexport type ExtendedPropertiesType = TypedObject;\r\n\r\n/** Modifikovatelný typ pro uložení extendedProperties. */\r\nexport type MutableExtendedPropertiesType = MutableTypedObject;\r\n\r\n/** Typ pro uložení tagů. */\r\nexport type TagsType = TypedObject;\r\n\r\n/** Modifikovatelný typ pro uložení tagů. */\r\nexport type MutableTagsType = MutableTypedObject;\r\n","import { ExtendedPropertiesType, MutableExtendedPropertiesType, MutableTagsType, TagsType } from \"./types\";\r\n\r\n/**\r\n * Pomocná funkce, která z elementu vytáhne extended properties.\r\n *\r\n * @param element\r\n * @returns\r\n */\r\nexport const getExtendedPropertiesFromElement = (element: HTMLElement): ExtendedPropertiesType =>\r\n element\r\n .dataset\r\n .extendedproperties\r\n ?.split(\";\")\r\n ?.reduce((extendedProperties, current) => {\r\n const [name, value = \"\"] = current.split(\"=\");\r\n extendedProperties[name] = value;\r\n return extendedProperties;\r\n }, {} as MutableExtendedPropertiesType) || {};\r\n\r\n/**\r\n * Pomocná funkce, která z elementu vytáhne tagy.\r\n *\r\n * @example\r\n * ```\r\n * const tagString = '[\"group-box--card\", \"detail-frame--transparent\"]'\r\n * getTagsFromElement(tagString); // {\"group-box--card\": true, \"detail-frame--transparent\": true}\r\n * ```\r\n *\r\n * @param element\r\n * @returns\r\n */\r\nexport const getTagsFromElement = (element: HTMLElement): TagsType => {\r\n if (!element.dataset.tag) {\r\n return {};\r\n }\r\n const tags = JSON.parse(element.dataset.tag);\r\n if (Array.isArray(tags)) {\r\n return tags.reduce((tags, current) => {\r\n tags[current] = true;\r\n return tags;\r\n }, {} as MutableTagsType) || {};\r\n }\r\n\r\n return {};\r\n};\r\n\r\n/**\r\n * Na element nastaví dané dodatečné vlastnosti\r\n * @param extendedProperties dodatečné vlastnosti\r\n * @param element element, na který se vlastnosti přidají\r\n */\r\nexport const setExtendedPropertiesOnElement = (extendedProperties: ExtendedPropertiesType, element: HTMLElement) => {\r\n if (!extendedProperties || !element)\r\n return;\r\n\r\n const propNames = Object.keys(extendedProperties);\r\n propNames.forEach(name => {\r\n element.setAttribute(name, extendedProperties[name]);\r\n });\r\n};\r\n\r\n/** Sloučí extended properties do jedné množiny */\r\nexport const mergeExtendedProperties = (origProps: ExtendedPropertiesType | undefined, newProps: ExtendedPropertiesType): ExtendedPropertiesType | undefined => {\r\n if (!newProps) {\r\n return origProps;\r\n }\r\n if (!origProps) {\r\n return newProps;\r\n }\r\n return { ...origProps, ...newProps };\r\n};\r\n\r\n/**\r\n * Observer pro scrollovani\r\n * @param element\r\n * @param callback\r\n */\r\nexport function observeScroll(element: HTMLElement, callback: () => void): () => void {\r\n const listener = (e: Event) => {\r\n if ((e.target as HTMLElement).contains(element)) {\r\n callback();\r\n }\r\n };\r\n document.addEventListener(\"scroll\", listener, { capture: true });\r\n return () => {\r\n document.removeEventListener(\"scroll\", listener, { capture: true });\r\n };\r\n}\r\n\r\n/**\r\n * Observer pro změny velikosti elementu.\r\n * @param element\r\n * @param callback\r\n */\r\nexport function observeSize(element: HTMLElement, callback: () => void): () => void {\r\n const resizeObserver = new ResizeObserver(() => {\r\n callback();\r\n });\r\n resizeObserver.observe(element);\r\n return () => {\r\n resizeObserver.disconnect();\r\n };\r\n}\r\n\r\n/**\r\n * Observer pro změny pozice elementu.\r\n * @param element\r\n * @param callback\r\n */\r\nexport function observePosition(element: HTMLElement, callback: () => void): () => void {\r\n const positionObserver = document.createElement(\"div\");\r\n Object.assign(positionObserver.style, {\r\n position: \"fixed\",\r\n pointerEvents: \"none\",\r\n width: \"2px\",\r\n height: \"2px\",\r\n });\r\n element.appendChild(positionObserver);\r\n\r\n const reposition = () => {\r\n const rect = positionObserver.getBoundingClientRect();\r\n Object.assign(positionObserver.style, {\r\n marginLeft: `${parseFloat(positionObserver.style.marginLeft || \"0\") - rect.left - 1}px`,\r\n marginTop: `${parseFloat(positionObserver.style.marginTop || \"0\") - rect.top - 1}px`,\r\n });\r\n };\r\n reposition();\r\n\r\n const intersectionObserver = new IntersectionObserver((entries) => {\r\n const visiblePixels = Math.round(entries[0].intersectionRatio * 4);\r\n if (visiblePixels !== 1) {\r\n reposition();\r\n callback();\r\n }\r\n }, {\r\n threshold: [0.125, 0.375, 0.625, 0.875],\r\n });\r\n intersectionObserver.observe(positionObserver);\r\n\r\n return () => {\r\n intersectionObserver.disconnect();\r\n positionObserver.remove();\r\n };\r\n}\r\n\r\n/**\r\n * Hlídá změny v getClientBoundingRect a v případě změny zavolá callback.\r\n * @param element\r\n * @param callback\r\n */\r\nexport function observeBounds(element: HTMLElement, callback: () => void): () => void {\r\n const destroyScroll = observeScroll(element, callback);\r\n const destroySize = observeSize(element, callback);\r\n const destroyPosition = observePosition(element, callback);\r\n return () => {\r\n destroyScroll();\r\n destroySize();\r\n destroyPosition();\r\n };\r\n}\r\n","/**\r\n * Tento soubor sdružuje všechny importy funkcionality kompatibilní se strict buildem z původní části aplikace.\r\n * Typy se importují přes modulu types/multiweb.\r\n */\r\n\r\nexport { DataConverter } from \"../../../../../../Global/Base/Converters/DataConverter\";\r\nexport { AttrValue } from \"../../../../../../Global/Base/DataTypes/AttrValue\";\r\nexport { BigNumberProxy } from \"../../../../../../Global/Base/DataTypes/BigNumber\";\r\nexport { UUID } from \"../../../../../../Global/Base/IDs/UUID\";\r\nexport { DateUtils } from \"../../../../../../Global/Base/Utils/DateUtils\";\r\nexport { EnumUtils } from \"../../../../../../Global/Base/Utils/EnumUtils\";\r\nexport { FlagUtils } from \"../../../../../../Global/Base/Utils/FlagUtils\";\r\nexport { NumberUtils } from \"../../../../../../Global/Base/Utils/NumberUtils\";\r\nexport { StringUtils } from \"../../../../../../Global/Base/Utils/StringUtils\";\r\nexport { UrlUtils } from \"../../../../../../Global/Base/Utils/UrlUtils\";\r\nexport { Globalization } from \"../../../../../../Global/Dom/Globalization\";\r\nexport { LocalizationUtils } from \"../../../../../../OW.Remoting/Remoting/LocalizationUtils\";\r\nexport { getExtendedPropertiesFromElement } from \"UI/utils\";\r\n","import { IAttrValue, OWDataType } from \"@multiweb/types/contracts\";\r\nimport {\r\n ExtendedPropertiesType,\r\n FileUtils,\r\n GetFormattedNumberStringParams,\r\n IBigNumber,\r\n INumberFormatInfo,\r\n INumberFormatOptions,\r\n} from \"@multiweb/types/multiweb\";\r\nimport {\r\n AttrValue,\r\n BigNumberProxy,\r\n DataConverter,\r\n DateUtils,\r\n EnumUtils,\r\n FlagUtils,\r\n getExtendedPropertiesFromElement,\r\n Globalization,\r\n LocalizationUtils,\r\n NumberUtils,\r\n StringUtils,\r\n UrlUtils,\r\n UUID,\r\n} from \"./oldAppImports\";\r\n\r\n/**\r\n * Pomocná třída určená jako základ pro další implementace rozhraní {@link IBridge}.\r\n * Poskytuje přemostění na funkcionality z multiwebu, které jsou kompatibilní se striktním režimem\r\n * kompilace a zároveň nevyžadují komunikaci se serverem. Díky tomu je možné tento základ použít jak pro produkční implementaci tak pro implementace\r\n * sloužící unit testům a Storybooku.\r\n */\r\nexport abstract class StrictBridge {\r\n /**\r\n * Převede datum na řetězec.\r\n * @param date Datum\r\n * @param format Formát datumu\r\n */\r\n public readonly dateToString = DateUtils.dateToString;\r\n\r\n /**\r\n * Načtení formátovací funkce\r\n * @param format Formát\r\n * @param culture Nepovinný parametr culture, který určuje, zda bude pro tento konkrétní formát použita jiná cultura než globální\r\n */\r\n public readonly getDateToStringFunction = DateUtils.getDateToStringFunction;\r\n\r\n /** Počet milisekund v jednom dni */\r\n public readonly msPerDay = DateUtils.miliSecPerDay;\r\n\r\n /**\r\n * Zjistí, zda je zadané datum datem dnešním.\r\n * @param date Datum\r\n */\r\n public readonly isToday = (date: Date): boolean => (\r\n DateUtils.compareDates(date, new Date())\r\n );\r\n\r\n /**\r\n * Vytvoří instanci třídy **AttrValue** se zadanou hodnotou.\r\n * @param value Hodnota\r\n */\r\n public readonly getAttrValue = (value: any): IAttrValue => new AttrValue(value);\r\n\r\n /** Znak pro oddělování desetinných míst */\r\n public readonly decimalSeparator = Globalization.numberFormat.decimalSeparator;\r\n\r\n /** Znak pro oddělování skupin znaků v čísle */\r\n public readonly groupSeparator = Globalization.numberFormat.groupSeparator;\r\n\r\n /** Kód jazyka aplikace */\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public readonly actualCultureISO639_1 = Globalization.actualCultureISO639_1;\r\n\r\n /** Vygeneruje univerzální unikátní identifikátor. */\r\n public readonly generateUUID = UUID.generate;\r\n\r\n /** @see StringUtils.compareCaseInsensitive */\r\n public readonly compareCaseInsensitive = StringUtils.compareCaseInsensitive;\r\n\r\n /** @see StringUtils.isNullOrEmpty */\r\n public readonly isNullOrEmpty = StringUtils.isNullOrEmpty;\r\n\r\n /** @see EnumUtils.getEnumValueFromValue */\r\n public readonly stringToEnumValue = EnumUtils.getEnumValueFromValue;\r\n\r\n /** @see FlagUtils.flagToCss */\r\n public readonly flagToCss = FlagUtils.flagToCss;\r\n\r\n /** @see EnumUtils.getEnumValueFromValue */\r\n public readonly valueToEnumValue = EnumUtils.getEnumValueFromValue;\r\n\r\n /** Zkombinuje pole podmínek */\r\n public readonly combineConditionsArray = StringUtils.combineConditionsArray;\r\n\r\n /**\r\n * Odstraní diakritiku z textu.\r\n * @param text Text, ze kterého se odstraní diakritika.\r\n */\r\n public readonly removeAccents = (text: string) => StringUtils.removeAccents(text);\r\n\r\n /**\r\n * Odstraní nebo nahradí HTML tagy v textu.\r\n * @param text Text, ve kterém se odstraní nebo nahradí HTML tagy.\r\n */\r\n public readonly stripHTMLFromText = (text: string) => StringUtils.stripHTMLFromText(text);\r\n\r\n /**\r\n * Aplikuje parametry na lokalizovaný řetězec.\r\n * @param text Lokalizovaný text s případnými placeholdery (např. `@0`).\r\n * @param params Parametry, které budou dosazeny za placeholdery.\r\n */\r\n public readonly applyLocParams = LocalizationUtils.applyLocParams;\r\n\r\n /**\r\n * Převede string na boolean.\r\n * @param string Obsahuje hodnotu pro parsovani.\r\n * @param boolean Obsahuje defaultní návratovou hodnotu v případě, že neprojde parsováním.\r\n */\r\n public readonly stringToBoolean = DataConverter.toBoolean;\r\n\r\n /**\r\n * Konvertuje string na číslo. Pokud je hodnota undefined vrací místo NaN vrací undefined.\r\n * @param value Obsahuje hodnotu pro parsování.\r\n */\r\n public readonly stringToNumberOrUndefined = DataConverter.toNumberOrUndefined;\r\n\r\n /**\r\n * Naformátuje zadanou hodnotu na základě zvolené formátovací funkce. Více informací v dokumentaci funkce {@link NumberUtils.getFormattedNumberString}\r\n * @param value Hodnota k formátování.\r\n * @param params Konfigurace formátování.\r\n * @param formatProviderKey Název klíče formátovací funkce\r\n */\r\n public readonly getFormattedNumberString = (value: string | IBigNumber | number | null | undefined, params: GetFormattedNumberStringParams, formatProviderKey: string): string => {\r\n return NumberUtils.getFormattedNumberString(value, params, formatProviderKey);\r\n };\r\n\r\n /**\r\n * Zjistí, zda je daný datový typ celé číslo\r\n * @param dataType Název číselného datového typu\r\n */\r\n public readonly isWholeNumberType = (dataType: OWDataType | string): boolean => {\r\n return NumberUtils.isWholeNumberType(dataType);\r\n };\r\n\r\n /**\r\n * Vrací výchozí formátování podle datového typu.\r\n */\r\n public readonly getDefaultFormat = (dataType?: OWDataType | string): string => {\r\n return NumberUtils.getDefaultFormat(dataType);\r\n };\r\n\r\n /**\r\n * Zjistí minimální a maximální hodnotu pro číselný datový typ nebo null, pokud nebylo nalezeno\r\n * @param dataType Název číselného datového typu\r\n */\r\n public readonly getTypeMinMax = (dataType: OWDataType | string): Record<\"min\" | \"max\", number> | null => {\r\n return NumberUtils.getTypeMinMax(dataType);\r\n };\r\n\r\n public readonly getExtendedPropertiesFromElement = (element: HTMLElement): ExtendedPropertiesType => {\r\n return getExtendedPropertiesFromElement(element);\r\n };\r\n\r\n public readonly getDefaultNumberFormat = (dataType?: OWDataType | string): string => {\r\n return NumberUtils.getDefaultFormat(dataType);\r\n };\r\n\r\n public readonly getNumberToString = (numStr: string, params: INumberFormatOptions): string => {\r\n return NumberUtils.numberToString(numStr, params);\r\n };\r\n\r\n public readonly removeFormatting = (value: string, groupSeparator: string, decimalSeparator: string): string => {\r\n return NumberUtils.removeFormatting(value, groupSeparator, decimalSeparator);\r\n };\r\n\r\n /**\r\n * Vytvoří novou instanci třídy {@link BigNumberProxy}.\r\n * @param value Hodnota.\r\n */\r\n public readonly createBigNumberProxy = (value: string | number): IBigNumber => {\r\n return new BigNumberProxy(value);\r\n };\r\n\r\n /**\r\n * Název souboru rozdělí na název a příponu\r\n * @param fileName název souboru k rozpadnutí\r\n */\r\n public readonly splitFileName = FileUtils.splitFileName;\r\n\r\n /**\r\n * Uživatelsky přívětivě zformátuje velikost souboru v bytech\r\n * @param fileSize Velikost souboru v bytech\r\n */\r\n public readonly prettyPrintFileSize = FileUtils.prettyPrintFileSize;\r\n\r\n /** Vrací informace o formátování čísla v aktuální kultuře. */\r\n public readonly getNumberFormat = (): INumberFormatInfo => {\r\n return Globalization.numberFormat;\r\n };\r\n\r\n /** @see StringUtils.replaceAll */\r\n public readonly replaceAll = StringUtils.replaceAll;\r\n\r\n /** @see StringUtils.replaceAllWithLookahead */\r\n public readonly replaceAllWithLookahead = StringUtils.replaceAllWithLookahead;\r\n\r\n public readonly isUrl = (value: string): boolean => {\r\n return UrlUtils.isUrl(value);\r\n };\r\n\r\n public readonly isParametricUrl = (value: string): boolean => {\r\n return UrlUtils.isParametricUrl(value);\r\n };\r\n\r\n public readonly isParametricMailto = (value: string): boolean => {\r\n return UrlUtils.isParametricMailto(value);\r\n };\r\n\r\n public readonly isEmail = (value: string): boolean => {\r\n return UrlUtils.isEmail(value);\r\n };\r\n\r\n public readonly isFile = (value: string): boolean => {\r\n return UrlUtils.isFile(value);\r\n };\r\n\r\n public readonly hasParameters = (value: string): boolean => {\r\n return UrlUtils.hasParameters(value);\r\n };\r\n}\r\n","export { StrictBridge } from \"./StrictBridge\";\r\n","import { Action } from \"redux\";\r\n\r\nimport { ILocalStorageKeyLoadedAction } from \"@multiweb/reactCore/bridge/api\";\r\n\r\n/**\r\n * Zjistí, zda je akce akcí signalizující načtení hodnoty určitého klíče z local storage.\r\n * @param key Klíč v local storage.\r\n */\r\nexport const createIsLocalStorageKeyLoadedActionPattern = (key: string) => (action: Action) => (\r\n action instanceof ILocalStorageKeyLoadedAction && action.payload.key === key\r\n);\r\n","import { FormOpenMode } from \"@multiweb/types/contracts\";\r\nimport { FormOpenType, MenuType } from \"@multiweb/types/multiweb\";\r\n\r\n/**\r\n * Převede typ enumu z FormOpenMode na FormOpenType.\r\n * @param formOpenMode Hodnota k převedení.\r\n */\r\nexport const formOpenModeToFormOpenType = (formOpenMode: FormOpenMode): FormOpenType => {\r\n switch (formOpenMode) {\r\n case FormOpenMode.form:\r\n return FormOpenType.form;\r\n case FormOpenMode.paramForm:\r\n return FormOpenType.paramForm;\r\n case FormOpenMode.paramFormMethod:\r\n return FormOpenType.paramFormMethod;\r\n case FormOpenMode.paramFormReport:\r\n return FormOpenType.paramFormReport;\r\n case FormOpenMode.paramConditionForm:\r\n return FormOpenType.paramConditionForm;\r\n }\r\n};\r\n\r\n/**\r\n * Převede typ enumu z FormOpenType na MenuType. Pro hodnotu FormOpenType.form vrací null.\r\n * @param formOpenType Hodnota k převedení.\r\n */\r\nexport const formOpenTypeToMenuType = (formOpenType: FormOpenType): MenuType | null => {\r\n switch (formOpenType) {\r\n case FormOpenType.paramForm:\r\n return MenuType.mtForm;\r\n case FormOpenType.paramFormMethod:\r\n return MenuType.mtActions;\r\n case FormOpenType.paramFormReport:\r\n return MenuType.mtPrint;\r\n case FormOpenType.paramConditionForm:\r\n return MenuType.mtConditionForm;\r\n case FormOpenType.form:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Převede typ enumu z FormOpenMode na MenuType pomocí zkombinování funkcí formOpenModeToFormOpenType a formOpenTypeToMenuType.\r\n * @param formOpenMode Hodnota k převedení.\r\n */\r\nexport const formOpenModeToMenuType = (formOpenMode: FormOpenMode): MenuType | null => formOpenTypeToMenuType(formOpenModeToFormOpenType(formOpenMode));\r\n","/**\r\n * Umožňuje uchovávat uživatelská data uložená v lokálním uložišti.\r\n * Toto úložiště je sdílené mezi okny ze stejné domény.\r\n * Trvalost těchto dat není zajištěna, jelikož je uživatel nebo systém může kdykoliv smazat.\r\n */\r\nexport class ApplicationStorage {\r\n /**\r\n * Uloží hodnotu pod daný klíč\r\n * @param key Klíč\r\n * @param value Nová hodnota\r\n */\r\n public static set(key: AppStorageItemType | string, value: string): void {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n /**\r\n * Vrátí hodnotu daného klíče\r\n * @param key Klíč\r\n */\r\n public static get(key: AppStorageItemType | string): string | null {\r\n return localStorage.getItem(key);\r\n }\r\n\r\n /**\r\n * Vymaže hodnotu daného klíče\r\n * @param key Klíč\r\n */\r\n public static remove(key: AppStorageItemType | string): void {\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n\r\n// !!! hodnoty enumů se nesmí změnit, protože pod nimi jsou uloženy hodnoty ve storage a rozbilo by se všechno nastavení uživatele\r\nexport enum AppStorageItemType {\r\n reportLanguage = \"ReportLanguage\",\r\n reportType = \"ReportType\",\r\n winAuthUsed = \"WinAuthUsed\",\r\n userTheme = \"UserTheme\",\r\n language = \"Language\",\r\n}\r\n","import { DateUtils } from \"../Utils/DateUtils\";\r\n\r\nexport class OWDate extends Date {\r\n constructor();\r\n constructor(value: number | string | Date);\r\n constructor(year?: any, month?: number, date?: number) {\r\n if (month || month === 0)\r\n super(year, month, date);\r\n else {\r\n if (year instanceof Date)\r\n super(year.getTime());\r\n else if (typeof year === \"string\") {\r\n const parsedVal = DateUtils.fromXsdDateTime(year);\r\n super(parsedVal ? parsedVal.getTime() : Number.NaN); // pokud se nepovedlo sparsovat bude vracen Invalid Date\r\n } else\r\n super(year);\r\n\r\n super.setHours(0, 0, 0, 0);\r\n }\r\n }\r\n\r\n public override toString(): string {\r\n return super.toDateString();\r\n }\r\n\r\n public override toTimeString(): string {\r\n return \"\";\r\n }\r\n\r\n public override toLocaleTimeString(): string {\r\n return \"\";\r\n }\r\n\r\n public override toLocaleString(locale?: string | string[], options?: Intl.DateTimeFormatOptions): string {\r\n return super.toLocaleDateString(locale as any, options);\r\n }\r\n\r\n public override toLocaleDateString(locale?: string | string[], options?: Intl.DateTimeFormatOptions): string {\r\n return super.toLocaleDateString(locale as any, options);\r\n }\r\n\r\n public override toJSON(): string {\r\n return DateUtils.toXsdDateTime(this).substr(0, 10);\r\n }\r\n}\r\n","//@ts-nocheck\r\n/**\r\n * Workaround pro vyřešení neexistujícího UMD/AMD buildu pro `lodash.throttle`. Prozatím je tu vykopírovaný kód,\r\n * časem se zavede bundler, který bude schopný závislost převést na UMD.\r\n * Příslušné typy jsou obsaženy v balíku `@types/lodash.throttle`.\r\n */\r\n\r\n/**\r\n * lodash (Custom Build) \r\n * Build: `lodash modularize exports=\"npm\" -o ./`\r\n * Copyright jQuery Foundation and other contributors \r\n * Released under MIT license \r\n * Based on Underscore.js 1.8.3 \r\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\r\n */\r\n\r\n/** Used as the `TypeError` message for \"Functions\" methods. */\r\nconst FUNC_ERROR_TEXT = 'Expected a function';\r\n\r\n/** Used as references for various `Number` constants. */\r\nconst NAN = 0 / 0;\r\n\r\n/** `Object#toString` result references. */\r\nconst symbolTag = '[object Symbol]';\r\n\r\n/** Used to match leading and trailing whitespace. */\r\nconst reTrim = /^\\s+|\\s+$/g;\r\n\r\n/** Used to detect bad signed hexadecimal string values. */\r\nconst reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\r\n\r\n/** Used to detect binary string values. */\r\nconst reIsBinary = /^0b[01]+$/i;\r\n\r\n/** Used to detect octal string values. */\r\nconst reIsOctal = /^0o[0-7]+$/i;\r\n\r\n/** Built-in method references without a dependency on `root`. */\r\nconst freeParseInt = parseInt;\r\n\r\n/** Detect free variable `global` from Node.js. */\r\nconst freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\r\n\r\n/** Detect free variable `self`. */\r\nconst freeSelf = typeof self == 'object' && self && self.Object === Object && self;\r\n\r\n/** Used as a reference to the global object. */\r\nconst root = freeGlobal || freeSelf || Function('return this')();\r\n\r\n/** Used for built-in method references. */\r\nconst objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the\r\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nconst objectToString = objectProto.toString;\r\n\r\n/* Built-in method references for those with the same name as other `lodash` methods. */\r\nconst nativeMax = Math.max,\r\n nativeMin = Math.min;\r\n\r\n/**\r\n * Gets the timestamp of the number of milliseconds that have elapsed since\r\n * the Unix epoch (1 January 1970 00:00:00 UTC).\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 2.4.0\r\n * @category Date\r\n * @returns {number} Returns the timestamp.\r\n * @example\r\n *\r\n * _.defer(function(stamp) {\r\n * console.log(_.now() - stamp);\r\n * }, _.now());\r\n * // => Logs the number of milliseconds it took for the deferred invocation.\r\n */\r\nconst now = function() {\r\n return root.Date.now();\r\n};\r\n\r\n/**\r\n * Creates a debounced function that delays invoking `func` until after `wait`\r\n * milliseconds have elapsed since the last time the debounced function was\r\n * invoked. The debounced function comes with a `cancel` method to cancel\r\n * delayed `func` invocations and a `flush` method to immediately invoke them.\r\n * Provide `options` to indicate whether `func` should be invoked on the\r\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\r\n * with the last arguments provided to the debounced function. Subsequent\r\n * calls to the debounced function return the result of the last `func`\r\n * invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\r\n * invoked on the trailing edge of the timeout only if the debounced function\r\n * is invoked more than once during the `wait` timeout.\r\n *\r\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\r\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\r\n *\r\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\r\n * for details over the differences between `_.debounce` and `_.throttle`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Function\r\n * @param {Function} func The function to debounce.\r\n * @param {number} [wait=0] The number of milliseconds to delay.\r\n * @param {Object} [options={}] The options object.\r\n * @param {boolean} [options.leading=false]\r\n * Specify invoking on the leading edge of the timeout.\r\n * @param {number} [options.maxWait]\r\n * The maximum time `func` is allowed to be delayed before it's invoked.\r\n * @param {boolean} [options.trailing=true]\r\n * Specify invoking on the trailing edge of the timeout.\r\n * @returns {Function} Returns the new debounced function.\r\n * @example\r\n *\r\n * // Avoid costly calculations while the window size is in flux.\r\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\r\n *\r\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\r\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\r\n * 'leading': true,\r\n * 'trailing': false\r\n * }));\r\n *\r\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\r\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\r\n * var source = new EventSource('/stream');\r\n * jQuery(source).on('message', debounced);\r\n *\r\n * // Cancel the trailing debounced invocation.\r\n * jQuery(window).on('popstate', debounced.cancel);\r\n */\r\nexport function debounce(func, wait, options) {\r\n let lastArgs,\r\n lastThis,\r\n maxWait,\r\n result,\r\n timerId,\r\n lastCallTime,\r\n lastInvokeTime = 0,\r\n leading = false,\r\n maxing = false,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n wait = toNumber(wait) || 0;\r\n if (isObject(options)) {\r\n leading = !!options.leading;\r\n maxing = 'maxWait' in options;\r\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n\r\n function invokeFunc(time) {\r\n let args = lastArgs,\r\n thisArg = lastThis;\r\n\r\n lastArgs = lastThis = undefined;\r\n lastInvokeTime = time;\r\n result = func.apply(thisArg, args);\r\n return result;\r\n }\r\n\r\n function leadingEdge(time) {\r\n // Reset any `maxWait` timer.\r\n lastInvokeTime = time;\r\n // Start the timer for the trailing edge.\r\n timerId = setTimeout(timerExpired, wait);\r\n // Invoke the leading edge.\r\n return leading ? invokeFunc(time) : result;\r\n }\r\n\r\n function remainingWait(time) {\r\n let timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime,\r\n result = wait - timeSinceLastCall;\r\n\r\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\r\n }\r\n\r\n function shouldInvoke(time) {\r\n let timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime;\r\n\r\n // Either this is the first call, activity has stopped and we're at the\r\n // trailing edge, the system time has gone backwards and we're treating\r\n // it as the trailing edge, or we've hit the `maxWait` limit.\r\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\r\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\r\n }\r\n\r\n function timerExpired() {\r\n let time = now();\r\n if (shouldInvoke(time)) {\r\n return trailingEdge(time);\r\n }\r\n // Restart the timer.\r\n timerId = setTimeout(timerExpired, remainingWait(time));\r\n }\r\n\r\n function trailingEdge(time) {\r\n timerId = undefined;\r\n\r\n // Only invoke if we have `lastArgs` which means `func` has been\r\n // debounced at least once.\r\n if (trailing && lastArgs) {\r\n return invokeFunc(time);\r\n }\r\n lastArgs = lastThis = undefined;\r\n return result;\r\n }\r\n\r\n function cancel() {\r\n if (timerId !== undefined) {\r\n clearTimeout(timerId);\r\n }\r\n lastInvokeTime = 0;\r\n lastArgs = lastCallTime = lastThis = timerId = undefined;\r\n }\r\n\r\n function flush() {\r\n return timerId === undefined ? result : trailingEdge(now());\r\n }\r\n\r\n function debounced() {\r\n let time = now(),\r\n isInvoking = shouldInvoke(time);\r\n\r\n lastArgs = arguments;\r\n lastThis = this;\r\n lastCallTime = time;\r\n\r\n if (isInvoking) {\r\n if (timerId === undefined) {\r\n return leadingEdge(lastCallTime);\r\n }\r\n if (maxing) {\r\n // Handle invocations in a tight loop.\r\n timerId = setTimeout(timerExpired, wait);\r\n return invokeFunc(lastCallTime);\r\n }\r\n }\r\n if (timerId === undefined) {\r\n timerId = setTimeout(timerExpired, wait);\r\n }\r\n return result;\r\n }\r\n debounced.cancel = cancel;\r\n debounced.flush = flush;\r\n return debounced;\r\n}\r\n\r\n/**\r\n * Creates a throttled function that only invokes `func` at most once per\r\n * every `wait` milliseconds. The throttled function comes with a `cancel`\r\n * method to cancel delayed `func` invocations and a `flush` method to\r\n * immediately invoke them. Provide `options` to indicate whether `func`\r\n * should be invoked on the leading and/or trailing edge of the `wait`\r\n * timeout. The `func` is invoked with the last arguments provided to the\r\n * throttled function. Subsequent calls to the throttled function return the\r\n * result of the last `func` invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\r\n * invoked on the trailing edge of the timeout only if the throttled function\r\n * is invoked more than once during the `wait` timeout.\r\n *\r\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\r\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\r\n *\r\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\r\n * for details over the differences between `_.throttle` and `_.debounce`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Function\r\n * @param {Function} func The function to throttle.\r\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\r\n * @param {Object} [options={}] The options object.\r\n * @param {boolean} [options.leading=true]\r\n * Specify invoking on the leading edge of the timeout.\r\n * @param {boolean} [options.trailing=true]\r\n * Specify invoking on the trailing edge of the timeout.\r\n * @returns {Function} Returns the new throttled function.\r\n * @example\r\n *\r\n * // Avoid excessively updating the position while scrolling.\r\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\r\n *\r\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\r\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\r\n * jQuery(element).on('click', throttled);\r\n *\r\n * // Cancel the trailing throttled invocation.\r\n * jQuery(window).on('popstate', throttled.cancel);\r\n */\r\nfunction throttle(func, wait, options?) {\r\n let leading = true,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n if (isObject(options)) {\r\n leading = 'leading' in options ? !!options.leading : leading;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n return debounce(func, wait, {\r\n 'leading': leading,\r\n 'maxWait': wait,\r\n 'trailing': trailing\r\n });\r\n}\r\n\r\n/**\r\n * Checks if `value` is the\r\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\r\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\r\n * @example\r\n *\r\n * _.isObject({});\r\n * // => true\r\n *\r\n * _.isObject([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isObject(_.noop);\r\n * // => true\r\n *\r\n * _.isObject(null);\r\n * // => false\r\n */\r\nfunction isObject(value) {\r\n let type = typeof value;\r\n return !!value && (type == 'object' || type == 'function');\r\n}\r\n\r\n/**\r\n * Checks if `value` is object-like. A value is object-like if it's not `null`\r\n * and has a `typeof` result of \"object\".\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\r\n * @example\r\n *\r\n * _.isObjectLike({});\r\n * // => true\r\n *\r\n * _.isObjectLike([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isObjectLike(_.noop);\r\n * // => false\r\n *\r\n * _.isObjectLike(null);\r\n * // => false\r\n */\r\nfunction isObjectLike(value) {\r\n return !!value && typeof value == 'object';\r\n}\r\n\r\n/**\r\n * Checks if `value` is classified as a `Symbol` primitive or object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\r\n * @example\r\n *\r\n * _.isSymbol(Symbol.iterator);\r\n * // => true\r\n *\r\n * _.isSymbol('abc');\r\n * // => false\r\n */\r\nfunction isSymbol(value) {\r\n return typeof value == 'symbol' ||\r\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\r\n}\r\n\r\n/**\r\n * Converts `value` to a number.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to process.\r\n * @returns {number} Returns the number.\r\n * @example\r\n *\r\n * _.toNumber(3.2);\r\n * // => 3.2\r\n *\r\n * _.toNumber(Number.MIN_VALUE);\r\n * // => 5e-324\r\n *\r\n * _.toNumber(Infinity);\r\n * // => Infinity\r\n *\r\n * _.toNumber('3.2');\r\n * // => 3.2\r\n */\r\nfunction toNumber(value) {\r\n if (typeof value == 'number') {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return NAN;\r\n }\r\n if (isObject(value)) {\r\n let other = typeof value.valueOf == 'function' ? value.valueOf() : value;\r\n value = isObject(other) ? (other + '') : other;\r\n }\r\n if (typeof value != 'string') {\r\n return value === 0 ? value : +value;\r\n }\r\n value = value.replace(reTrim, '');\r\n let isBinary = reIsBinary.test(value);\r\n return (isBinary || reIsOctal.test(value))\r\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\r\n : (reIsBadHex.test(value) ? NAN : +value);\r\n}\r\n\r\nexport default throttle;\r\n","import { ILocalizationItem } from \"@multiweb/types/contracts/localizations\";\r\nimport { WorkerMessage, WorkerResponseItem, WorkerResponseMessage } from \"./WorkerMessages\";\r\n\r\nexport interface LocKeysMessage extends WorkerMessage {\r\n type: \"locKeys\";\r\n data: { locKeys: string[] };\r\n}\r\n\r\nexport interface LangMessage extends WorkerMessage {\r\n type: \"lang\";\r\n data: { language: string };\r\n}\r\n\r\nexport interface LocResponseMessage extends WorkerResponseMessage {\r\n type: \"locKeys\";\r\n items: LocResponseItem[];\r\n}\r\n\r\nexport interface LocResponseItem extends WorkerResponseItem {\r\n data: readonly ILocalizationItem[];\r\n}\r\n","import { InvalidArgumentException } from \"../../Global/Base/Exceptions\";\r\nimport { contextlessInstanceOf } from \"../../Global/Base/Polyfill/instanceOf\";\r\n/**\r\n * V ServiceWorkeru neni dostupná\r\n */\r\nexport interface DOMError {\r\n readonly name: string;\r\n toString(): string;\r\n}\r\n\r\nexport type ErrorType = Error | DOMError;\r\n\r\n/**\r\n * Výjimka IndexedDB\r\n */\r\nexport class IDBException extends Error {\r\n private readonly _innerError: ErrorType | undefined;\r\n\r\n public get innerError(): ErrorType | undefined {\r\n return this._innerError;\r\n }\r\n\r\n constructor(message?: string, innerError?: ErrorType) {\r\n super(message);\r\n this.name = this.constructor.name;\r\n if (innerError) {\r\n this._innerError = innerError;\r\n }\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && contextlessInstanceOf(instance, IDBExceptions.getRegisteredExceptionType(this.name));\r\n }\r\n\r\n public override toString(): string {\r\n return this.message;\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka, která označuje že selhala transakce nad IndexedDB\r\n */\r\nexport class IDBTransactionException extends IDBException {\r\n /***Flag, jestli místo chybové zprávy indexed DB zobrazit chybu pro session timeout (Využívá se pro opravu bugu s přístupem do indexedDb v chrome )*/\r\n public convertToSessionTimeout: boolean = false; //ošetří výjimku, kterou produkuje bug v chrome.\r\n\r\n constructor(message?: string, innerError?: ErrorType) {\r\n super(message, innerError);\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka, která označuje že selhal request do IndexedDB\r\n */\r\nexport class IDBRequestException extends IDBException {\r\n constructor(message?: string, innerError?: ErrorType) {\r\n super(message, innerError);\r\n }\r\n}\r\n\r\n// pokud definujeme tridu IDBExceptions pred definici vyjimek OWExceptions, tak je staticka promenna registeredExceptions naplnena hodnotami undefined :-(\r\nexport class IDBExceptions {\r\n /**\r\n * Vrátí třídu nalezené výjimky, která byla zaregistrovaná pro deserializaci při příchodu ze služby\r\n * @param exceptionName název hledané výjimky\r\n */\r\n public static getRegisteredExceptionType(exceptionName: string): new(faultElement: any) => IDBException {\r\n if (!exceptionName)\r\n throw new InvalidArgumentException(\"exceptionName\");\r\n\r\n return IDBExceptions._registeredExceptions[exceptionName];\r\n }\r\n\r\n private static readonly _registeredExceptions: { [key: string]: new(faultElement: any) => IDBException } = {\r\n \"IDBException\": IDBException,\r\n \"IDBTransactionException\": IDBTransactionException,\r\n \"IDBRequestException\": IDBRequestException,\r\n };\r\n}\r\n","/**\r\n * Zpráva s odpovědí z API služby v návaznosti na klientský dotaz\r\n * @includeToDoc\r\n */\r\nexport interface IResultMessage {\r\n /** Typ zprávy */\r\n readonly type: ResultMessageType;\r\n /** Obsah zprávy */\r\n readonly text: string;\r\n /** Lokalizační klíč obsahu zprávy (pod ním je uložen obsah atributu _text_) */\r\n readonly locKey: string;\r\n}\r\n\r\n/**\r\n * Typ zprávy z API služby\r\n * @includeToDoc\r\n */\r\nexport enum ResultMessageType {\r\n error = -1,\r\n warning = 1,\r\n information = 0,\r\n recommendation = 2,\r\n}\r\n","import { IResultMessage, ResultMessageType } from \"@multiweb/types/contracts/responses\";\r\n\r\nexport interface IResultMessageDTO {\r\n readonly MsgType: ResultMessageTypeDTO;\r\n readonly Text: string;\r\n readonly LocKey: string;\r\n}\r\n\r\nexport enum ResultMessageTypeDTO {\r\n error = -1,\r\n warning = 1,\r\n information = 0,\r\n recommendation = 2,\r\n}\r\n\r\nexport function convertResultMessages(messages: IResultMessageDTO[]): IResultMessage[] {\r\n return messages ? messages.map(message => convertResultMessage(message)) : [];\r\n}\r\n\r\nexport function convertResultMessage(message: IResultMessageDTO): IResultMessage {\r\n return {\r\n type: convertMessageType(message.MsgType),\r\n text: message.Text,\r\n locKey: message.LocKey,\r\n };\r\n}\r\n\r\nexport function convertMessageType(type: ResultMessageTypeDTO): ResultMessageType {\r\n switch (type) {\r\n case ResultMessageTypeDTO.error:\r\n return ResultMessageType.error;\r\n case ResultMessageTypeDTO.information:\r\n return ResultMessageType.information;\r\n case ResultMessageTypeDTO.warning:\r\n return ResultMessageType.warning;\r\n case ResultMessageTypeDTO.recommendation:\r\n return ResultMessageType.recommendation;\r\n }\r\n}\r\n","export interface ITextBuilder {\r\n toString: () => string;\r\n}\r\n","import { ITextBuilder } from \"../../Global/Base/Builders/ITextBuilder\";\r\n\r\nexport interface JSONSRVException {\r\n Message: string;\r\n Source: string;\r\n Detail: string;\r\n ExceptionType: string;\r\n LogExceptionID: string;\r\n ExceptionDetails: any;\r\n StackTrace: string;\r\n}\r\n\r\nexport interface IDataValidationError {\r\n attributeNames?: string[];\r\n linkedAttributes?: boolean;\r\n errorMessage: string;\r\n}\r\n\r\nexport interface IComponentValidationError {\r\n componentNames?: string[];\r\n invalidValue?: ITextBuilder;\r\n errorMessage: string;\r\n}\r\n\r\nexport enum ValidationErrorType {\r\n dataError, // chyba dat v objektu (serverova chyba)\r\n inputError, // chyba uzivatelskeho vstupu (uzivatel zadal neplatnou hodnotu)\r\n requiredError, // chyba povinneho pole (uzivatel nevyplnil povinne pole)\r\n recommendedError, // chyba doporuceneho pole (uzivatel nevyplnil doporucene pole)\r\n postponedError, // chyba povinně odloženého pole (uživatel nevyplnil povinně odložené pole)\r\n}\r\n\r\nexport interface IValidationError extends IDataValidationError, IComponentValidationError {\r\n type: ValidationErrorType;\r\n keepOnAttributeChange?: boolean;\r\n}\r\n","import { IResultMessage } from \"@multiweb/types/contracts/responses\";\r\nimport { convertResultMessages } from \"OW.Remoting/Remoting/Clients/impl/utils/response\";\r\nimport { IHTTPResult } from \"../../Global/Base/Comunication/HTTPRequest\";\r\nimport { CaseInsensitiveMap } from \"../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { InvalidArgumentException } from \"../../Global/Base/Exceptions\";\r\nimport { contextlessInstanceOf } from \"../../Global/Base/Polyfill/instanceOf\";\r\nimport { IValidationError, JSONSRVException, ValidationErrorType } from \"./EOWExceptionsInterfaces\";\r\n\r\n/** Informace o HTTP requestu, který se váže k chybě */\r\nexport interface IHttpExceptionRequest {\r\n /** Metoda requestu - GET, POST, atp. */\r\n readonly requestMethod: string;\r\n /** Url requestu */\r\n readonly url: string;\r\n /** HTTP hlavičky requestu */\r\n readonly headers?: Iterable<[string, string]> | { [name: string]: string | boolean };\r\n /** Tělo (obsah) requestu */\r\n readonly data?: any;\r\n}\r\n\r\nexport class EOWException extends Error {\r\n // property message nejde standardne overridnout\r\n public readonly logExceptionID: string | undefined;\r\n public readonly serverStackTrace: string | undefined;\r\n public httpErrorCode: number | undefined;\r\n public request: IHttpExceptionRequest | undefined;\r\n\r\n constructor(faultElement?: string | JSONSRVException | EOWException) {\r\n let message: string = \"\";\r\n let serverStackTrace: string | undefined;\r\n let logExceptionID: string | undefined;\r\n if (typeof faultElement === \"string\")\r\n message = faultElement;\r\n else if (faultElement instanceof EOWException) { // copy constructor\r\n message = faultElement.message;\r\n serverStackTrace = faultElement.serverStackTrace;\r\n logExceptionID = faultElement.logExceptionID;\r\n } else if (faultElement) {\r\n logExceptionID = faultElement.LogExceptionID;\r\n serverStackTrace = faultElement.StackTrace;\r\n if (faultElement.ExceptionDetails && faultElement.ExceptionDetails.Text)\r\n message = faultElement.ExceptionDetails.Text;\r\n else\r\n message = faultElement.Message;\r\n }\r\n\r\n super(message);\r\n if (logExceptionID)\r\n this.logExceptionID = logExceptionID;\r\n if (serverStackTrace)\r\n this.serverStackTrace = serverStackTrace;\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && contextlessInstanceOf(instance, OWExceptions.getRegisteredExceptionType(this.name));\r\n }\r\n\r\n public override toString(): string {\r\n return this.message;\r\n }\r\n\r\n public static getParams(faultText: string): { msg: string; params?: string[] } {\r\n const pos = faultText.indexOf(\" \\u00a0(\");\r\n if (pos > -1) {\r\n const msg = faultText.substring(0, pos);\r\n const params = faultText.substring(pos + 3, faultText.length - 1).split(\", \");\r\n return { msg: msg, params: params };\r\n }\r\n return { msg: faultText };\r\n }\r\n}\r\n\r\nexport class EOWLogonError extends EOWException {\r\n public readonly userName: string | undefined;\r\n public readonly code: string | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n if (typeof faultElement === \"string\") {\r\n const tmp = EOWException.getParams(faultElement);\r\n super(tmp.msg);\r\n if (tmp.params) {\r\n this.userName = tmp.params[0];\r\n this.code = tmp.params[1];\r\n }\r\n } else {\r\n super(faultElement);\r\n if (faultElement && faultElement.ExceptionDetails) {\r\n this.userName = faultElement.ExceptionDetails.UserName;\r\n this.code = faultElement.ExceptionDetails.Code;\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport class EOWUserException extends EOWException {\r\n public readonly resultMessages: IResultMessage[] | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n if (typeof faultElement === \"object\" && faultElement.ExceptionDetails) {\r\n this.resultMessages = convertResultMessages(faultElement.ExceptionDetails.resultMessages) || [];\r\n }\r\n }\r\n}\r\n\r\nexport class EOWRecordPermissionException extends EOWException {\r\n\r\n}\r\n\r\nexport class EOWValidateException extends EOWException {\r\n public readonly validationErrors: IValidationError[] | undefined;\r\n\r\n constructor(exMessage: string | JSONSRVException, attributeNames?: string[]) {\r\n if (attributeNames) {\r\n super(exMessage);\r\n this.validationErrors = [\r\n {\r\n type: ValidationErrorType.dataError,\r\n errorMessage: exMessage as string,\r\n attributeNames: attributeNames,\r\n linkedAttributes: false,\r\n },\r\n ];\r\n } else if (typeof exMessage === \"string\") {\r\n const tmp = EOWException.getParams(exMessage);\r\n super(tmp.msg ? tmp.msg : exMessage);\r\n } else {\r\n super(exMessage);\r\n if (exMessage && exMessage.ExceptionDetails) {\r\n this.validationErrors = [];\r\n for (const error of exMessage.ExceptionDetails.ValidateExceptions)\r\n this.validationErrors.push({\r\n type: ValidationErrorType.dataError,\r\n errorMessage: error.errorMessage,\r\n attributeNames: error.attributeNames || [],\r\n linkedAttributes: error.linkedAttributes === true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n public override toString(): string {\r\n if (!this.validationErrors || this.validationErrors.length === 0)\r\n return \"Unknown validation error\";\r\n\r\n const messages = [] as string[];\r\n for (const error of this.validationErrors) {\r\n let message = error.errorMessage;\r\n\r\n if (error.attributeNames && error.attributeNames.length > 0)\r\n message += ` (${error.attributeNames.join(\", \")})`;\r\n\r\n messages.push(message);\r\n }\r\n\r\n return messages.join(\"\\n\");\r\n }\r\n}\r\n\r\nexport class EServiceIsNotInitialized extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWSessionTimeOut extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWKillSession extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EReadOnlyAttribute extends EOWException {\r\n public readonly attributeName: string | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n if (typeof faultElement === \"string\") {\r\n const tmp = EOWException.getParams(faultElement);\r\n super(tmp.msg);\r\n if (tmp.params) {\r\n this.attributeName = tmp.params[0];\r\n }\r\n } else {\r\n super(faultElement);\r\n if (faultElement && faultElement.ExceptionDetails)\r\n this.attributeName = faultElement.ExceptionDetails.AttributeName;\r\n }\r\n }\r\n}\r\n\r\nexport class EReadOnlyMethod extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWNoRightsToForm extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWNoFormNameException extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWFormDefinitionNotFoundException extends EOWException {\r\n public FormName: string | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWNoImplicitFormForClassException extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWFormDefinitionNotModifiedException extends EOWException {\r\n public FormName: string | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWUnknownException extends EOWException {\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWConditionException extends EOWException {\r\n constructor(public readonly conditionID: string, errorText: string) {\r\n super(errorText);\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && contextlessInstanceOf(instance, EOWConditionException);\r\n }\r\n}\r\n\r\nexport class EOWRightEvaluationException extends EOWException {\r\n constructor(public readonly itemName: string, errorText: string, public readonly instanceID?: string, public readonly className?: string) {\r\n super(errorText);\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && contextlessInstanceOf(instance, EOWRightEvaluationException);\r\n }\r\n}\r\n\r\nexport class EInvalidValueException extends EOWException {\r\n constructor() {\r\n super(\"Invalid value!\");\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && contextlessInstanceOf(instance, EInvalidValueException);\r\n }\r\n}\r\n\r\nexport class EOWDmsUnavailable extends EOWException {\r\n constructor(faultElement?: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EDMSException extends EOWException {\r\n public locKey: string | undefined;\r\n\r\n constructor(faultElement?: string | JSONSRVException, locKey?: string) {\r\n super(faultElement);\r\n this.locKey = locKey ? locKey : undefined;\r\n this.message = this.message.replace(\"DMS_ERROR:\", \"\").replace(\":DMS_ERROR_END\", \"\").trim(); //očistí text EDMSException od wrapper \"DMS_ERROR:\" a \":DMS_ERROR_END\"\r\n }\r\n}\r\n\r\nexport class EOWLocalizableException extends EOWException {\r\n public locKeyHeader: string | undefined;\r\n public locKeyBody: string | undefined;\r\n\r\n constructor(locKeyHeader?: string, locKeyBody?: string) {\r\n super(\"Localizable exception\");\r\n this.locKeyHeader = locKeyHeader ? locKeyHeader : undefined;\r\n this.locKeyBody = locKeyBody ? locKeyBody : undefined;\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka při spuštění metody nad více objekty, pokud žádný z objektů nesplňuje podmínku pro spuštění.\r\n */\r\nexport class EOWRunMethodInsufficientRightsException extends EOWException {\r\n public readonly objectIdentity: string | undefined;\r\n\r\n constructor(faultElement: string | JSONSRVException) {\r\n super(faultElement);\r\n }\r\n}\r\n\r\nexport class EOWUnauthorizedAccess extends EOWException {\r\n}\r\n\r\n// pokud definujeme tridu OWExceptions pred definici vyjimek OWExceptions, tak je staticka promenna registeredExceptions naplnena hodnotami undefined :-(\r\nexport class OWExceptions {\r\n private static _exceptionsWatcher: CaseInsensitiveMap void>> = new CaseInsensitiveMap void>>();\r\n\r\n /**\r\n * Umožňuje zaregistrovat sledování událostí v aplikaci\r\n * @param exceptionType Typ výjimky\r\n * @param fnc Vyvolaná metoda\r\n */\r\n public static registerExceptionWatch(exceptionType: string, fnc: (exception: EOWException) => void): void {\r\n //logger.log(`[OWExceptionWatcher] Register watching '${exceptionType}'`);\r\n if (!this._exceptionsWatcher.has(exceptionType)) {\r\n this._exceptionsWatcher.set(exceptionType, new Set<(exception: EOWException) => void>());\r\n }\r\n\r\n this._exceptionsWatcher.get(exceptionType)!.add(fnc);\r\n }\r\n public static unregisterExceptionWatch(exceptionType: string, fnc: () => void): void {\r\n if (this._exceptionsWatcher.has(exceptionType)) {\r\n this._exceptionsWatcher.get(exceptionType)!.delete(fnc);\r\n }\r\n }\r\n\r\n private static _fireWatchedException(exceptionType: string, exception: EOWException): void {\r\n if (this._exceptionsWatcher.has(exceptionType)) {\r\n // událost odešleme v dalším ticku, aby se provedli akce na událost navázané jinde\r\n self.setTimeout(() => {\r\n const ev = this._exceptionsWatcher.get(exceptionType);\r\n if (ev) ev.forEach((v) => v(exception));\r\n }, 0);\r\n }\r\n }\r\n\r\n private static _parseJSON(json: JSONSRVException): { type: string; exception: EOWException } {\r\n let exT: string = json.ExceptionType;\r\n const pos = exT.lastIndexOf(\".\");\r\n if (pos > 0)\r\n exT = exT.substring(pos + 1);\r\n const type = OWExceptions.getRegisteredExceptionType(exT);\r\n if (type)\r\n return { type: exT, exception: new type(json) };\r\n\r\n return { type: \"EOWException\", exception: new EOWException(json) };\r\n }\r\n\r\n public static parseJSON(json: JSONSRVException): EOWException {\r\n return this._parseJSON(json).exception;\r\n }\r\n\r\n public static parseServiceWorkerResponse(data: { statusCode: number; json: JSONSRVException }): EOWException {\r\n const exc = this._parseJSON(data.json);\r\n exc.exception.httpErrorCode = data.statusCode;\r\n\r\n this._fireWatchedException(exc.type, exc.exception);\r\n\r\n return exc.exception;\r\n }\r\n\r\n public static parse(errorResponse: IHTTPResult | XMLHttpRequest, httpRequest?: IHttpExceptionRequest): EOWException {\r\n if (errorResponse.status != 500 || typeof errorResponse.response !== \"string\") {\r\n const exc = new EOWException(errorResponse.status + \" - \" + errorResponse.statusText);\r\n exc.httpErrorCode = errorResponse.status;\r\n exc.request = httpRequest;\r\n this._fireWatchedException(\"EOWException\", exc);\r\n return exc;\r\n } else {\r\n const contentType = errorResponse instanceof XMLHttpRequest ? errorResponse.getResponseHeader(\"Content-Type\") : errorResponse.contentType;\r\n\r\n if (contentType && contentType.indexOf(\"application/json\") > -1) {\r\n const exc = OWExceptions._parseJSON(JSON.parse(errorResponse.response));\r\n exc.exception.httpErrorCode = errorResponse.status;\r\n exc.exception.request = httpRequest;\r\n\r\n this._fireWatchedException(exc.type, exc.exception);\r\n\r\n return exc.exception;\r\n }\r\n\r\n let errorText = errorResponse.status + \" - \" + errorResponse.statusText;\r\n if (contentType && contentType.indexOf(\"text/plain\") > -1)\r\n errorText += \"\\r\\n\" + errorResponse.response;\r\n\r\n if (contentType && contentType.indexOf(\"html\")) { // pro html i xhtml\r\n try {\r\n const findTitle = /((?:.|\\n|\\r)*)<\\/title>/gi;\r\n const execArray = findTitle.exec(errorResponse.response);\r\n const title = execArray ? execArray[1].trim() : undefined;\r\n if (title) {\r\n errorText += \"\\r\\n\" + title;\r\n }\r\n } catch (ex) {\r\n // Prázdný catch\r\n }\r\n }\r\n const exc = new EOWException(errorText);\r\n exc.request = httpRequest;\r\n this._fireWatchedException(\"EOWException\", exc);\r\n return exc;\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí třídu nalezené výjimky, která byla zaregistrovaná pro deserializaci při příchodu ze služby\r\n * @param exceptionName název hledané výjimky\r\n */\r\n public static getRegisteredExceptionType(exceptionName: string): new (faultElement: any) => EOWException {\r\n if (!exceptionName)\r\n throw new InvalidArgumentException(\"exceptionName\");\r\n\r\n return OWExceptions._registeredExceptions[exceptionName];\r\n }\r\n\r\n private static readonly _registeredExceptions: { [key: string]: new (faultElement: any) => EOWException } = {\r\n \"EOWException\": EOWException,\r\n \"EOWLogonError\": EOWLogonError,\r\n \"EOWUserException\": EOWUserException,\r\n \"EOWValidateException\": EOWValidateException,\r\n \"EServiceIsNotInitialized\": EServiceIsNotInitialized,\r\n \"EReadOnlyAttribute\": EReadOnlyAttribute,\r\n \"EReadOnlyMethod\": EReadOnlyMethod,\r\n \"EOWSessionTimeOut\": EOWSessionTimeOut,\r\n \"EOWKillSession\": EOWKillSession,\r\n \"EOWNoRightsToForm\": EOWNoRightsToForm,\r\n \"EOWNoFormNameException\": EOWNoFormNameException,\r\n \"EOWFormDefinitionNotFoundException\": EOWFormDefinitionNotFoundException,\r\n \"EOWNoImplicitFormForClassException\": EOWNoImplicitFormForClassException,\r\n \"EOWUnknownException\": EOWUnknownException,\r\n \"EOWRecordPermissionException\": EOWRecordPermissionException,\r\n \"EOWFormDefinitionNotModifiedException\": EOWFormDefinitionNotModifiedException,\r\n \"EOWDmsUnavailable\": EOWDmsUnavailable,\r\n \"EDMSException\": EDMSException,\r\n \"EOWLocalizableException\": EOWLocalizableException,\r\n \"EOWRunMethodInsufficientRightsException\": EOWRunMethodInsufficientRightsException,\r\n \"EOWUnauthorizedAccess\": EOWUnauthorizedAccess,\r\n };\r\n}\r\n\r\n/** Výjimka pro špatné přetypování atributu */\r\nexport class InvalidTypeCasting extends Error {\r\n public readonly attributeName: string;\r\n public readonly requiredClassName: string;\r\n public readonly className: string;\r\n\r\n /**\r\n * Výjimka pro špatné přetypování atributu\r\n * @param attrName Název dotčeného atributu\r\n * @param requiredClassName Třída, která byla u atributu jako požadovaná\r\n * @param className Třída, která u objektu byla skutečně\r\n */\r\n constructor(attrName: string, requiredClassName: string, className: string) {\r\n super(`Invalid typecasting on attribute '${attrName}'. Got ${className}, expected ${requiredClassName}.`);\r\n\r\n this.attributeName = attrName;\r\n this.requiredClassName = requiredClassName;\r\n this.className = className;\r\n }\r\n}\r\n","import { ISectionLogger } from \"@multiweb/logging\";\r\nimport { HTTPError } from \"Global/Base/Comunication/HTTPRequest\";\r\nimport { UUID } from \"../../Global/Base/IDs/UUID\";\r\nimport { CancelError, CancellationToken } from \"../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { Deferred, PromiseUtils } from \"../../Global/Base/Promises/PromiseUtils\";\r\nimport { IDBException, IDBExceptions } from \"../../IndexedDB/Promises/IndexedDBExceptions\";\r\nimport { OWExceptions } from \"../Basic/OWExceptions\";\r\nimport { WorkerMessage, WorkerResponseMessage } from \"../Basic/WorkerMessages\";\r\n\r\nexport const workerSymbol = Symbol.for(\"tscWorker\");\r\n\r\nexport class WorkerCommunicator {\r\n private _worker: AbstractWorker;\r\n private _port: MessagePort;\r\n private _channel: MessageChannel;\r\n private static _logger: ISectionLogger | undefined;\r\n public static workersLoaded: Array<Promise<WorkerCommunicator>> = [];\r\n\r\n public static initialize(logger: ISectionLogger): void {\r\n WorkerCommunicator._logger = logger;\r\n }\r\n\r\n public static registerWorker(workerUrl: string, getParentCommunicator?: () => Promise<WorkerCommunicator>): Promise<WorkerCommunicator> {\r\n const prom = PromiseUtils.defer<WorkerCommunicator>();\r\n const w: WorkerCommunicator = new WorkerCommunicator(); // komunikátor se musí založit vždy nový pro každý kontext\r\n let worker: Worker;\r\n\r\n //WorkerCommunicator._logger.log(\"Start register worker: %s\", workerUrl);\r\n\r\n const f_registerEventData = () => {\r\n w._channel = new MessageChannel();\r\n w._port = w._channel.port1;\r\n w._port.onmessage = w._onWorkerMessage.bind(w);\r\n\r\n worker.postMessage({ type: \"connect\" }, [w._channel.port2]);\r\n w._worker = worker;\r\n\r\n self.addEventListener(\"unload\", () => WorkerCommunicator._onUnload(w));\r\n //WorkerCommunicator._logger.log(\"Worker registered: %s\", workerUrl);\r\n prom.resolve(w);\r\n };\r\n\r\n const f_initWorker = () => {\r\n //worker = new (Worker as any)(workerUrl, { type: \"module\" });\r\n worker = new Worker(workerUrl);\r\n worker.onerror = (e) => {\r\n WorkerCommunicator._logger.error(e);\r\n prom.reject(e);\r\n };\r\n worker.onmessage = (e) => {\r\n if (e.data == \"WorkerLoaded\") {\r\n f_registerEventData();\r\n }\r\n };\r\n //WorkerCommunicator._logger.log(\"New Worker created: %s\", workerUrl);\r\n };\r\n\r\n if (typeof getParentCommunicator === \"function\") {\r\n getParentCommunicator().then((parentCommunicator) => {\r\n if (parentCommunicator && parentCommunicator._worker) {\r\n worker = parentCommunicator._worker as Worker;\r\n f_registerEventData();\r\n } else {\r\n f_initWorker();\r\n }\r\n });\r\n } else\r\n f_initWorker();\r\n\r\n this.workersLoaded.push(prom.promise);\r\n\r\n return prom.promise;\r\n }\r\n\r\n private static _onUnload(w: WorkerCommunicator): void {\r\n try {\r\n const port = w._port;\r\n w._worker = null;\r\n w._port = null;\r\n port.postMessage({ type: \"disconnect\" });\r\n port.close();\r\n } catch (ex) {\r\n WorkerCommunicator._logger.debug(ex);\r\n }\r\n }\r\n\r\n private _waitingPromises: Map<string, Deferred<any>> = new Map();\r\n\r\n private _onWorkerMessage(e: MessageEvent): void {\r\n const response = e.data as WorkerResponseMessage;\r\n for (const i of response.items) {\r\n const waiter = this._waitingPromises.get(i.id);\r\n if (waiter) {\r\n if (i.exception) {\r\n let error: OWExceptions | IDBException | Error;\r\n if (!Reflect.has(i.exception, \"typeName\")) {\r\n error = new Error(i.exception.response);\r\n } else {\r\n const owExcType = OWExceptions.getRegisteredExceptionType(i.exception.typeName);\r\n const idbExcType = IDBExceptions.getRegisteredExceptionType(i.exception.typeName);\r\n if (owExcType)\r\n error = new owExcType(i.exception.response);\r\n else if (idbExcType)\r\n error = new idbExcType(i.exception.response);\r\n else {\r\n if (i.exception.typeName) {\r\n switch (i.exception.typeName) {\r\n case HTTPError.constructor.name:\r\n error = OWExceptions.parse(i.exception);\r\n break;\r\n case CancelError.constructor.name:\r\n error = new CancelError();\r\n break;\r\n default:\r\n error = new Error(i.exception.response);\r\n }\r\n } else\r\n error = new Error(i.exception.toString());\r\n }\r\n }\r\n waiter.reject(error);\r\n } else\r\n waiter.resolve(i.data);\r\n this._waitingPromises.delete(i.id);\r\n }\r\n }\r\n if (this.onmessage)\r\n this.onmessage(response);\r\n }\r\n\r\n public onmessage: (msg: WorkerResponseMessage) => void;\r\n\r\n public sendMessage(msg: WorkerMessage, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n const def = PromiseUtils.defer<any>();\r\n if (!msg.id)\r\n msg.id = UUID.generate();\r\n cancellationToken.register(() => this._port.postMessage({ type: \"cancel\", id: msg.id }));\r\n this._waitingPromises.set(msg.id, def);\r\n this._port.postMessage(msg);\r\n\r\n return def.promise;\r\n }\r\n\r\n public sendOneWayMessage(msg: WorkerMessage): void {\r\n if (!msg.id)\r\n msg.id = UUID.generate();\r\n this._port.postMessage(msg);\r\n }\r\n}\r\n","import throttle from \"lodash.throttle\";\r\n\r\nimport { LoggingSection } from \"@multiweb/logging\";\r\nimport { ILocalizationItem } from \"@multiweb/types/contracts\";\r\nimport { AppContext } from \"App/AppContext\";\r\nimport { CultureInfo } from \"Global/Dom/CultureInfo\";\r\nimport { IWorkerInitializationMessageData } from \"OW.Remoting/Workers/Localization/WorkerMessages\";\r\nimport { Event } from \"../../Global/Base/Events\";\r\nimport { ContextType, GlobalContext } from \"../../Global/Base/GlobalContext\";\r\nimport { Deferred, PromiseUtils } from \"../../Global/Base/Promises/PromiseUtils\";\r\nimport { StringUtils } from \"../../Global/Base/Utils/StringUtils\";\r\nimport { Globalization } from \"../../Global/Dom/Globalization\";\r\nimport { LangMessage, LocKeysMessage } from \"../Basic/LocalizationsInterfaces\";\r\nimport { LocalizationUtils } from \"./LocalizationUtils\";\r\nimport { WorkerCommunicator, workerSymbol } from \"./WorkerCommunicator\";\r\n\r\nexport interface ILanguageChangedEventData {\r\n /** Kultura ve standardu ISO 639-1 nebo v kombinaci se zkratkou státu, tedy buď en nebo en-US, en-GB, ... */\r\n readonly culture: string;\r\n /** Kód jazyka používaný v TEAF - např. EN, CZ, ... */\r\n readonly language: string;\r\n}\r\n\r\nconst LOC_KEY_ATTRIBUTE = \"data-lkd\";\r\nconst TEXT_ATTRIBUTE = \"data-lkta\";\r\nconst DESCRIPTION_ATTRIBUTE = \"data-lkda\";\r\nconst PARAMS_ATTRIBUTE = \"data-lkprms\";\r\nconst ALWAYS_LOAD_CLASSNAME = \"loc-always-load\";\r\nconst NOT_LOADED_CLASSNAME = \"loc-loading\";\r\nconst PROCESSING_LOCALIZATION_THROTTLE_MS = 100;\r\n\r\nexport class LocalizationWorkerConnector {\r\n private static _domChangedObserver: MutationObserver;\r\n private static _domTextsUpdate: Promise<void>;\r\n private static localizationNeeded: boolean = false;\r\n private static _workerLoadedDeferred: Deferred<void> = PromiseUtils.defer();\r\n private static _languageConfiguredDeferred: Deferred<void> = PromiseUtils.defer();\r\n private static _pendingLocalizations = new Map<string, ILocalizationItem>();\r\n\r\n private static _throttledLocalizeElements = throttle(() => {\r\n const localizations = LocalizationWorkerConnector._pendingLocalizations;\r\n LocalizationWorkerConnector._pendingLocalizations = new Map();\r\n LocalizationWorkerConnector._localizeElements(localizations);\r\n }, PROCESSING_LOCALIZATION_THROTTLE_MS);\r\n\r\n private static get _initialized(): Promise<void> {\r\n return Promise.all([this._workerLoadedDeferred.promise, this._languageConfiguredDeferred.promise]).then(() => { /* Prázdná arrow funkce */ });\r\n }\r\n\r\n private static _workerCommunicator: WorkerCommunicator;\r\n\r\n public static get workerCommunicator(): WorkerCommunicator {\r\n return LocalizationWorkerConnector._workerCommunicator;\r\n }\r\n\r\n public static readonly languageChanged = new Event<typeof Localization, ILanguageChangedEventData>();\r\n\r\n public static async initialize(webServiceUrl: string, appId: string): Promise<void> {\r\n const w = await WorkerCommunicator.registerWorker(\"js/TescoSW.Worker.Localization.Loader.js\", async () => {\r\n if (self === top)\r\n return null;\r\n const localization: any = GlobalContext.getType<typeof Localization>(Localization, ContextType.top);\r\n if (localization._workerLoaded)\r\n await localization._workerLoaded;\r\n return localization[workerSymbol];\r\n });\r\n\r\n LocalizationWorkerConnector._workerCommunicator = w;\r\n\r\n LocalizationWorkerConnector._domChangedObserver = new MutationObserver(LocalizationWorkerConnector._localizeDomElements);\r\n LocalizationWorkerConnector._domChangedObserver.observe(document, { childList: true, subtree: true });\r\n\r\n // zahájí inicializaci workeru s předanou url pro komunikaci\r\n const message: {\r\n type: \"initialize\";\r\n data: IWorkerInitializationMessageData;\r\n } = {\r\n type: \"initialize\",\r\n data: {\r\n communicationUrl: webServiceUrl,\r\n useLegacyApi: false,\r\n appId: appId,\r\n loggingSettings: AppContext.instance.configuration.logging,\r\n loggingSection: LoggingSection.localizations,\r\n },\r\n };\r\n LocalizationWorkerConnector._workerCommunicator.sendOneWayMessage(message);\r\n\r\n // kdyby náhodou byly elementy s lokalizačními atributy přidány do DOMu ještě před inicializací lokalizačního systému\r\n LocalizationWorkerConnector._localizeDomElements();\r\n\r\n LocalizationWorkerConnector._workerLoadedDeferred.resolve();\r\n }\r\n\r\n /**\r\n * Při změně v DOMu se požádá o zlokalizování chybějících lokalizací\r\n */\r\n private static _localizeDomElements(): void {\r\n LocalizationWorkerConnector.localizationNeeded = true;\r\n\r\n if (LocalizationWorkerConnector._domTextsUpdate) {\r\n return;\r\n }\r\n\r\n // update se dělá jednou za x ms\r\n LocalizationWorkerConnector._domTextsUpdate = PromiseUtils.delay(100).then(async () => {\r\n const elements = getUnlocalizedElements();\r\n\r\n LocalizationWorkerConnector.localizationNeeded = false;\r\n\r\n const missingLocalizations: string[] = [];\r\n for (const element of elements) {\r\n missingLocalizations.push(element.getAttribute(LOC_KEY_ATTRIBUTE));\r\n }\r\n\r\n if (missingLocalizations.length > 0) {\r\n await LocalizationWorkerConnector.sendLocalizationRequest(missingLocalizations);\r\n } \r\n\r\n LocalizationWorkerConnector._domTextsUpdate = null;\r\n\r\n if (LocalizationWorkerConnector.localizationNeeded) {\r\n LocalizationWorkerConnector._localizeDomElements();\r\n }\r\n });\r\n }\r\n\r\n public static async sendLocalizationRequest(keys: string[]): Promise<void> {\r\n await this._initialized;\r\n const localizations: readonly ILocalizationItem[] = await this._workerCommunicator.sendMessage(this._createLocalizationRequest(keys));\r\n\r\n localizations.forEach(li => this._pendingLocalizations.set(li.locKey, li));\r\n this._throttledLocalizeElements();\r\n }\r\n\r\n public static async createLocalizationWaiter(keys: string[]): Promise<ILocalizationItem[]> {\r\n await this._initialized;\r\n return LocalizationWorkerConnector._workerCommunicator.sendMessage(LocalizationWorkerConnector._createLocalizationRequest(keys));\r\n }\r\n\r\n public static sendLangChangeRequest(lang: string): void {\r\n const msg: LangMessage = { type: \"lang\", data: { language: lang } };\r\n this._workerCommunicator.sendOneWayMessage(msg);\r\n this._languageConfiguredDeferred.resolve();\r\n }\r\n\r\n public static processElementLocalization(element: Element, li: ILocalizationItem): void {\r\n const locParams = LocalizationUtils.parseLocalizationParams(element.getAttribute(PARAMS_ATTRIBUTE));\r\n this._setTextToAttributes(element, element.getAttribute(TEXT_ATTRIBUTE), LocalizationUtils.applyLocParams(li.primaryText, locParams));\r\n this._setTextToAttributes(element, element.getAttribute(DESCRIPTION_ATTRIBUTE), LocalizationUtils.applyLocParams(li.secondaryText, locParams));\r\n element.classList.remove(NOT_LOADED_CLASSNAME);\r\n }\r\n\r\n private static _createLocalizationRequest(keys: string[]): LocKeysMessage {\r\n return { type: \"locKeys\", data: { locKeys: keys } };\r\n }\r\n\r\n private static _localizeElements(locItems: Map<string, ILocalizationItem>): void {\r\n const elements = getUnlocalizedElements();\r\n for (const element of elements) {\r\n const locKey = element.getAttribute(LOC_KEY_ATTRIBUTE);\r\n const li = locItems.get(locKey);\r\n if (li) {\r\n LocalizationWorkerConnector.processElementLocalization(element, li);\r\n }\r\n }\r\n }\r\n\r\n private static _setTextToAttributes(element: Element, attributes: string, text: string): void {\r\n if (!element || !attributes) {\r\n return;\r\n }\r\n LocalizationUtils.parseAttributesToSet(attributes).forEach(attr => {\r\n attr = attr.trim();\r\n if (attr === Localization.TEXT_CONTENT) { \r\n const htmlText = StringUtils.stringToHTMLText(text); \r\n if (!element.classList.contains(ALWAYS_LOAD_CLASSNAME) || element.innerHTML != htmlText)\r\n {\r\n element.innerHTML = htmlText;\r\n }\r\n return;\r\n }\r\n \r\n if (text) {\r\n element.setAttribute(attr, text);\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Lokalizační třída, umožňuje ručně načítat texty pro lokalizační klíče, automaticky lokalizovat elementy s lokalizačními atributy a měnit jazyk překladů.\r\n * @includeToDoc\r\n */\r\nexport class Localization {\r\n public static readonly TEXT_CONTENT: string = \"tc\";\r\n\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private static get [workerSymbol](): WorkerCommunicator {\r\n return LocalizationWorkerConnector.workerCommunicator;\r\n }\r\n //------------------------------------------------------------------------------------------------------------------------\r\n\r\n /**\r\n * Událost vyvolaná při změně jazyka\r\n */\r\n public static get languageChanged(): Event<typeof Localization, ILanguageChangedEventData> {\r\n return LocalizationWorkerConnector.languageChanged;\r\n }\r\n\r\n /**\r\n * Ziniciuje sledování a načítání lokalizací\r\n */\r\n public static initialize(webServiceUrl: string, appId: string): Promise<void> {\r\n return LocalizationWorkerConnector.initialize(webServiceUrl, appId);\r\n }\r\n\r\n /**\r\n * Nastaví jazyk při inicializaci aplikace\r\n * @param code Kód jazyka v TescoSW formátu\r\n * @param culture Kultura ve standardu ISO 639-1 nebo v kombinaci se zkratkou státu, tedy buď en nebo en-US, en-GB, ...\r\n */\r\n public static setLanguage(code: string, culture: string): void {\r\n if (!code || !culture)\r\n throw new Error(\"Language or culture parameter undefined\");\r\n\r\n LocalizationWorkerConnector.sendLangChangeRequest(code);\r\n\r\n CultureInfo.setCulture(culture);\r\n LocalizationWorkerConnector.languageChanged.trigger(this, { culture, language: code });\r\n\r\n Localization._setHtmlLangAttribute();\r\n }\r\n\r\n /**\r\n * Nastaví nový jazyk za běhu aplikace a spustí změnu překladů u stávajících elementů\r\n * @param code Kód jazyka používaný v TEAF - např. EN, CZ, ...\r\n * @param culture Kultura ve standardu ISO 639-1 nebo v kombinaci se zkratkou státu, tedy buď en nebo en-US, en-GB, ...\r\n */\r\n public static changeLanguage(code: string, culture: string): void {\r\n this.setLanguage(code, culture);\r\n\r\n const keysForLocalization: string[] = [];\r\n const els = getElementsWithLocalizationData();\r\n for (const el of els) {\r\n keysForLocalization.push(el.getAttribute(LOC_KEY_ATTRIBUTE));\r\n el.classList.add(NOT_LOADED_CLASSNAME); // lokalizace nenačtena\r\n }\r\n LocalizationWorkerConnector.sendLocalizationRequest(keysForLocalization);\r\n }\r\n\r\n /**\r\n * Nastaví kód jazyka do atributu _lang_ dokumentu.\r\n * https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\r\n */\r\n private static _setHtmlLangAttribute(): void {\r\n const twoLetterISOLangCode = Globalization.actualCultureISO639_1.toLowerCase();\r\n\r\n if (!twoLetterISOLangCode)\r\n return;\r\n\r\n document.documentElement.lang = twoLetterISOLangCode;\r\n }\r\n\r\n //#region Methods\r\n\r\n /**\r\n *\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param elementType jmeno elementu ktery se ma vytvorit\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n */\r\n public static getTextElement(locKey: string, elementType: string = \"span\", locParams?: string[]): HTMLElement {\r\n if (!locKey)\r\n throw new TypeError(\"Invalidate parameter value: locKey\");\r\n locKey = locKey.toUpperCase();\r\n\r\n const result = document.createElement(elementType);\r\n result.setAttribute(LOC_KEY_ATTRIBUTE, locKey);\r\n result.setAttribute(TEXT_ATTRIBUTE, Localization.TEXT_CONTENT); // locKey Text Attribute\r\n if (locParams && locParams.length)\r\n result.setAttribute(PARAMS_ATTRIBUTE, LocalizationUtils.encodeLocalizationParams(locParams));\r\n\r\n LocalizationWorkerConnector.sendLocalizationRequest([locKey]);\r\n result.classList.add(NOT_LOADED_CLASSNAME); // lokalizace nenačtena\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n *\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param elementName jmeno elementu ktery se ma vytvorit\r\n * @param txtAttr nazev atributu kde se ma vlozit lokalizovany text, pokud se nevyplni je Localization.TEXT_CONTENT\r\n * @param dscAttr nazev atributu kde se ma vlozit popisek\r\n * @param addAttributes pripadne dalsi atributu ktere se maji vlozit do elementu napr. 'class=\"abc\" data-neco=\"xxx\"'\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n */\r\n public static createLocElementAsString(locKey: string, elementName: string = \"span\", txtAttr: string = Localization.TEXT_CONTENT, dscAttr?: string, addAttributes?: string, locParams?: string[]): string {\r\n if (!locKey)\r\n throw new TypeError(\"Invalidate parameter value: locKey\");\r\n locKey = locKey.toUpperCase();\r\n\r\n let result: string = `<${elementName} class='${NOT_LOADED_CLASSNAME}' ${LOC_KEY_ATTRIBUTE}='${locKey}' `;\r\n if (txtAttr)\r\n result += `${TEXT_ATTRIBUTE}='${txtAttr}' `;\r\n\r\n if (dscAttr)\r\n result += `${DESCRIPTION_ATTRIBUTE}='${dscAttr}' `;\r\n\r\n if (locParams && locParams.length)\r\n result += `${PARAMS_ATTRIBUTE}='${LocalizationUtils.encodeLocalizationParams(locParams).replace(\"'\", \"\\\\'\")}'`;\r\n\r\n if (addAttributes)\r\n result += ` ${addAttributes} `;\r\n\r\n LocalizationWorkerConnector.sendLocalizationRequest([locKey]);\r\n\r\n result += `</${elementName}>`;\r\n return result;\r\n }\r\n\r\n /**\r\n * nacte zadany seznam lokalizacnich klicu\r\n */\r\n public static loadLocalizations(locKeys: string[]): Promise<ILocalizationItem[]> {\r\n if (locKeys.length > 0)\r\n return LocalizationWorkerConnector.createLocalizationWaiter(locKeys);\r\n else\r\n return Promise.resolve([]);\r\n }\r\n\r\n /**\r\n * Funkce načte lokalizační informace\r\n * @param locKey klíč k lokalizaci\r\n */\r\n public static async getLocalizationItem(locKey: string): Promise<ILocalizationItem> {\r\n return LocalizationWorkerConnector.createLocalizationWaiter([locKey]).then((li) => li.length ? li[0] : undefined);\r\n }\r\n\r\n /**\r\n * Funkce načte seznam lokalizačních informací k seznamu lokalizačních klíčů\r\n * @desc test do konzole TescoSW.Localization.GetLocalizationItems('gui-3', 'GUi-3').then(v=>console.log(v)).catch(e=>console.error(e))\r\n * @param locKeys seznam klíčů k lokalizaci\r\n */\r\n public static async getLocalizationItems(...locKeys: string[]): Promise<Map<string, ILocalizationItem>> {\r\n return LocalizationWorkerConnector.createLocalizationWaiter(locKeys).then((li) => li.length ? new Map(li.map((v) => [v.locKey, v])) as any : new Map());\r\n }\r\n\r\n /**\r\n * Funkce načte seznam lokalizovaných textů k seznamu lokalizačních klíčů\r\n * @desc test do konzole TescoSW.Localization.GetLocalizationItems('gui-3', 'GUi-3').then(v=>console.log(v)).catch(e=>console.error(e))\r\n * @param locKeys seznam klíčů k lokalizaci\r\n */\r\n public static async getTexts(...locKeys: string[]): Promise<Map<string, string>> {\r\n return LocalizationWorkerConnector.createLocalizationWaiter(locKeys).then((li) => li.length ? new Map(li.map((v) => [v.locKey, v.primaryText])) as any : new Map());\r\n }\r\n\r\n /**\r\n * Vrátí promise s lokalizovaným textem (část Text z lokalizace)\r\n * !!!Tato metoda není doporučována, při jejím použití nebude automaticky fungovat změna lokalizací při změně jazyka!!!\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n */\r\n public static async getTextPromise(locKey: string): Promise<string> {\r\n const item = await this.getLocalizationItem(locKey);\r\n return item ? item.primaryText : undefined;\r\n }\r\n\r\n /**\r\n * Vrátí promise s lokalizovaným popiskem (část Description z lokalizace)\r\n * !!!Tato metoda není doporučována, při jejím použití nebude automaticky fungovat změna lokalizací při změně jazyka!!!\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n */\r\n public static async getDescriptionPromise(locKey: string): Promise<string> {\r\n const item = await this.getLocalizationItem(locKey);\r\n return item ? item.secondaryText : undefined;\r\n }\r\n\r\n /**\r\n * Vrátí promise s lokalizovaným textem (část Text z lokalizace) s nahrazenými parametry\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param params pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n */\r\n public static async getTextPromiseWithParams(locKey: string, params: string[]): Promise<string> {\r\n return LocalizationUtils.applyLocParams(await this.getTextPromise(locKey), params);\r\n }\r\n\r\n /**\r\n * Vrátí promise s lokalizovaným popiskem (část Description z lokalizace) s nahrazenými parametry\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param params pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n */\r\n public static async getDescriptionPromiseWithParams(locKey: string, params: string[]): Promise<string> {\r\n return LocalizationUtils.applyLocParams(await this.getDescriptionPromise(locKey), params);\r\n }\r\n\r\n /**\r\n * Přidá do elementu atributy sloužící pro asynchronní lokalizaci -\r\n * přidává část Text z lokalizace do atributu elementu specifikovaného pomocí txtAttr\r\n * a část Description do atributu elementu specifikovaného pomocí dscAttr\r\n * @param element element do ktereho ze maji pridat lokalizacni informace\r\n * @param txtAttr nazev/nazvy atributu, do kterych se ma vlozit lokalizovany text - pokud neni vyplnen nebo ma hodnotu Localization.TEXT_CONTENT tak se vlozi jako tex elementu pres property textContent\r\n * @param dscAttr nazev/nazvy atributu, do kterych se ma vlozit lokalizacni popisek - pokud neni vyplnen, tak se vloží do atributu 'title', pokud má hodnotu Localization.TEXT_CONTENT, tak se vlozi jako text do elementu pres property textContent\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n * @param alwaysLoad Příznak, zda se mají lokalizace načíst při kažé změně DOM. Použít pouze pro elementy, které jsou v DOMu pouze krátce a hrozí, že v něm nebudou při změně jazyka, jako třeba elementy na Popup/DropdownMenu.\r\n * @returns Předaný element\r\n */\r\n public static addLocData(element: HTMLElement, locKey: string, txtAttr: string | readonly string[] = Localization.TEXT_CONTENT, dscAttr: string | readonly string[] = \"title\", locParams?: string[], alwaysLoad: boolean = false): HTMLElement {\r\n if (!locKey)\r\n return element;\r\n locKey = locKey.toUpperCase();\r\n this._setLocAttributes(element, locKey, txtAttr, dscAttr, locParams);\r\n\r\n LocalizationWorkerConnector.sendLocalizationRequest([locKey]);\r\n element.classList.add(alwaysLoad ? ALWAYS_LOAD_CLASSNAME : NOT_LOADED_CLASSNAME);\r\n return element;\r\n }\r\n\r\n /**\r\n * Přidá do elementu lokalizační atributy, provadi dotazeni lokalizace hned a umoznuje pockat na dobehnuti\r\n * přidává část Text z lokalizace do atributu elementu specifikovaného pomocí txtAttr\r\n * a část Description do atributu elementu specifikovaného pomocí dscAttr\r\n * @param element element do ktereho ze maji pridat lokalizacni informace\r\n * @param txtAttr nazev/nazvy atributu, do kterych se ma vlozit lokalizovany text - pokud neni vyplnen nebo ma hodnotu Localization.TEXT_CONTENT tak se vlozi jako tex elementu pres property textContent\r\n * @param dscAttr nazev/nazvy atributu, do kterych se ma vlozit lokalizacni popisek - pokud neni vyplnen, tak se vloží do atributu 'title', pokud má hodnotu Localization.TEXT_CONTENT, tak se vlozi jako text do elementu pres property textContent\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n * @param alwaysLoad Příznak, zda se mají lokalizace načíst při kažé změně DOM. Použít pouze pro elementy, které jsou v DOMu pouze krátce a hrozí, že v něm nebudou při změně jazyka, jako třeba elementy na Popup/DropdownMenu.\r\n * @returns Předaný element\r\n */\r\n public static async addLocDataAsync(element: HTMLElement, locKey: string, txtAttr: string | readonly string[] = Localization.TEXT_CONTENT, dscAttr: string | readonly string[] = \"title\", locParams?: string[], alwaysLoad: boolean = false): Promise<HTMLElement> {\r\n if (!locKey)\r\n return element;\r\n locKey = locKey.toUpperCase();\r\n this._setLocAttributes(element, locKey, txtAttr, dscAttr, locParams);\r\n\r\n const locItem = await this.getLocalizationItem(locKey);\r\n if (locItem) {\r\n LocalizationWorkerConnector.processElementLocalization(element, locItem);\r\n }\r\n\r\n if (alwaysLoad)\r\n element.classList.add(ALWAYS_LOAD_CLASSNAME);\r\n\r\n return element;\r\n }\r\n\r\n private static _setLocAttributes(element: HTMLElement, locKey: string, txtAttr: string | readonly string[], dscAttr: string | readonly string[], locParams: string[]): void {\r\n element.setAttribute(LOC_KEY_ATTRIBUTE, locKey);\r\n element.setAttribute(TEXT_ATTRIBUTE, LocalizationUtils.encodeAttributesToSet(txtAttr));\r\n if (dscAttr)\r\n element.setAttribute(DESCRIPTION_ATTRIBUTE, LocalizationUtils.encodeAttributesToSet(dscAttr));\r\n if (locParams && locParams.length)\r\n element.setAttribute(PARAMS_ATTRIBUTE, LocalizationUtils.encodeLocalizationParams(locParams));\r\n }\r\n\r\n /**\r\n * Odebere z elementu lokalizace\r\n * @param element element, ze ktereho se maji odebrat lokalizacni informace\r\n * @param removeContent příznak jesli má v elementu smazat i jeho content\r\n */\r\n public static remLocData(element: HTMLElement, removeContent: boolean = true): void {\r\n const txtAttr = element.getAttribute(TEXT_ATTRIBUTE);\r\n const descAttr = element.getAttribute(DESCRIPTION_ATTRIBUTE);\r\n\r\n if (removeContent && !txtAttr) {\r\n element.textContent = \"\";\r\n } else {\r\n Localization._removeAttributeSet(element, txtAttr);\r\n }\r\n Localization._removeAttributeSet(element, descAttr);\r\n\r\n element.removeAttribute(LOC_KEY_ATTRIBUTE);\r\n element.removeAttribute(TEXT_ATTRIBUTE);\r\n element.removeAttribute(DESCRIPTION_ATTRIBUTE);\r\n element.removeAttribute(PARAMS_ATTRIBUTE);\r\n element.classList.remove(NOT_LOADED_CLASSNAME);\r\n element.classList.remove(ALWAYS_LOAD_CLASSNAME);\r\n }\r\n\r\n private static _removeAttributeSet(element: HTMLElement, attributes: string): void {\r\n if (!attributes)\r\n return;\r\n LocalizationUtils.parseAttributesToSet(attributes).forEach(attr => {\r\n attr = attr.trim().toLowerCase();\r\n if (attr == Localization.TEXT_CONTENT)\r\n element.textContent = \"\";\r\n else\r\n element.removeAttribute(attr);\r\n });\r\n }\r\n\r\n /**\r\n * Přidá do elementu atributy sloužící pro asynchronní lokalizaci - přidává část Text z lokalizace do atributu elementu specifikovaného pomocí txtAttr\r\n * @param element element do ktereho ze maji pridat lokalizacni informace\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param txtAttr nazev/nazvy atributu, do kterych se ma vlozit lokalizovany text - pokud neni vyplnen nebo ma hodnotu Localization.TEXT_CONTENT tak se vlozi jako tex elementu pres property textContent\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n * @param alwaysLoad Příznak, zda se mají lokalizace načíst při kažé změně DOM. Použít pouze pro elementy, které jsou v DOMu pouze krátce a hrozí, že v něm nebudou při změně jazyka, jako třeba elementy na Popup/DropdownMenu.\r\n * @returns Předaný element\r\n */\r\n public static addLocTxtData(element: HTMLElement, locKey: string, txtAttr: string | readonly string[] = Localization.TEXT_CONTENT, locParams?: string[], alwaysLoad: boolean = false): HTMLElement {\r\n if (!locKey)\r\n return element;\r\n locKey = locKey.toUpperCase();\r\n\r\n element.setAttribute(LOC_KEY_ATTRIBUTE, locKey);\r\n element.setAttribute(TEXT_ATTRIBUTE, LocalizationUtils.encodeAttributesToSet(txtAttr));\r\n if (locParams && locParams.length)\r\n element.setAttribute(PARAMS_ATTRIBUTE, LocalizationUtils.encodeLocalizationParams(locParams));\r\n\r\n LocalizationWorkerConnector.sendLocalizationRequest([locKey]);\r\n element.classList.add(alwaysLoad ? ALWAYS_LOAD_CLASSNAME : NOT_LOADED_CLASSNAME);\r\n return element;\r\n }\r\n\r\n /**\r\n * Přidá do elementu atributy sloužící pro asynchronní lokalizaci - přidává část Description z lokalizace do atributu elementu specifikovaného pomocí dscAttr\r\n * @param element element do ktereho ze maji pridat lokalizacni informace\r\n * @param locKey lokalizační klíč ve formátu \"TYP-XXX\"\r\n * @param dscAttr nazev,nazvy atributu, do kterych se ma vlozit lokalizacni popisek - pokud neni vyplnen nebo ma hodnotu Localization.TEXT_CONTENT tak ze vlozi jako text do elementu pres property textContent\r\n * @param locParams pole řetězců, kterými se mají postupně nahradit parametry v lokalizovaném textu - @0, @1, ...\r\n * @param alwaysLoad Příznak, zda se mají lokalizace načíst při kažé změně DOM. Použít pouze pro elementy, které jsou v DOMu pouze krátce a hrozí, že v něm nebudou při změně jazyka, jako třeba elementy na Popup/DropdownMenu.\r\n * @returns Předaný element\r\n */\r\n public static addLocDescData(element: HTMLElement, locKey: string, dscAttr: string | readonly string[] = Localization.TEXT_CONTENT, locParams?: string[], alwaysLoad: boolean = false): HTMLElement {\r\n if (!locKey)\r\n return element;\r\n locKey = locKey.toUpperCase();\r\n\r\n element.setAttribute(LOC_KEY_ATTRIBUTE, locKey);\r\n if (dscAttr)\r\n element.setAttribute(DESCRIPTION_ATTRIBUTE, LocalizationUtils.encodeAttributesToSet(dscAttr));\r\n if (locParams && locParams.length)\r\n element.setAttribute(PARAMS_ATTRIBUTE, LocalizationUtils.encodeLocalizationParams(locParams));\r\n\r\n LocalizationWorkerConnector.sendLocalizationRequest([locKey]);\r\n element.classList.add(alwaysLoad ? ALWAYS_LOAD_CLASSNAME : NOT_LOADED_CLASSNAME);\r\n return element;\r\n }\r\n //endregion Methods\r\n}\r\n\r\nconst getUnlocalizedElements = () => [...document.getElementsByClassName(NOT_LOADED_CLASSNAME), ...document.getElementsByClassName(ALWAYS_LOAD_CLASSNAME)];\r\nconst getElementsWithLocalizationData = () => [...document.querySelectorAll(`[${LOC_KEY_ATTRIBUTE}]`)];\r\n\r\nGlobalContext.registerType(Localization);\r\n","// ReSharper disable InconsistentNaming\r\n\r\nexport interface EnumDescription {\r\n IntValue: number;\r\n Name: string;\r\n LocKey: string;\r\n Description: string;\r\n}\r\n\r\nexport interface IEnumDescriptionWithDataType extends EnumDescription {\r\n DataType: string;\r\n LocParams?: string[];\r\n}\r\n\r\nexport class IEnumDescriptionWithDataType {\r\n private static _properties = [\"DataType\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní reprezentující enum.\r\n */\r\nexport interface IEnum {\r\n\r\n /**\r\n * Vrací instanci typu daného enumu.\r\n */\r\n getType(): IEnumType;\r\n\r\n /**\r\n * Vrací název enumu.\r\n */\r\n getTypeName(): string;\r\n\r\n /**\r\n * Vrací stringovou reprezentaci instance.\r\n */\r\n toString(): string;\r\n\r\n /**\r\n * Vrací lokalizovanou stringovou reprezentaci instance.\r\n */\r\n toLocaleString(): string;\r\n\r\n /**\r\n * Vrací lokalizovanou stringovou reprezentaci názvu popisku enumu.\r\n */\r\n getLocalizedName(): Promise<string>;\r\n\r\n /**\r\n * Vrací název popisku enumu.\r\n */\r\n getName(): string;\r\n\r\n /**\r\n * Vrací číselnou reprezentaci popisku enumu.\r\n */\r\n valueOf(): number;\r\n\r\n /**\r\n * Vrací číselnou reprezentaci popisku enumu využitelnou pro JSON.\r\n */\r\n toJSON(): number;\r\n}\r\n\r\nexport class IEnum {\r\n private static _methods: (keyof IEnum)[] = [\"getType\", \"getTypeName\", \"toString\", \"toLocaleString\", \"getLocalizedName\", \"getName\", \"valueOf\", \"toJSON\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && this._methods.every(value => typeof instance[value] === \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní obsahující detailní informace enumu, které slouží k vytvoření enumu.\r\n */\r\nexport interface IEnumType {\r\n\r\n /**\r\n * Doplňující údaje k enumu.\r\n */\r\n descriptions: EnumDescription[];\r\n\r\n /**\r\n * Typ enumu. Obvykle se používá k držení údaje o názvu enumu.\r\n */\r\n type: string;\r\n}\r\n\r\nexport class IEnumType {\r\n private static _properties: (keyof IEnumType)[] = [\"descriptions\", \"type\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && this._properties.every((value) => Reflect.has(instance, value));\r\n }\r\n}\r\n\r\n// ReSharper restore InconsistentNaming\r\n","import { IComparable } from \"../../../Global/Base/IComparable\";\r\nimport { Localization } from \"../Localization\";\r\nimport { EnumDescription, IEnum, IEnumDescriptionWithDataType, IEnumType } from \"./IEnums\";\r\n\r\nexport class Enum implements IEnum {\r\n private readonly _type: IEnumType;\r\n protected _ed: EnumDescription;\r\n\r\n constructor(description: EnumDescription, type: IEnumType) {\r\n this._ed = description;\r\n this._type = type;\r\n }\r\n\r\n public getType(): IEnumType {\r\n return this._type;\r\n }\r\n\r\n public getTypeName(): string {\r\n return this._type.type;\r\n }\r\n\r\n public toString(): string {\r\n return this._ed.Name;\r\n }\r\n\r\n public toLocaleString(): string {\r\n return this._ed.Description;\r\n }\r\n\r\n public getLocalizedName(): Promise<string> {\r\n return Localization.getTextPromise(this._ed.LocKey);\r\n }\r\n\r\n public getName(): string {\r\n return this._ed.Name;\r\n }\r\n\r\n public valueOf(): number {\r\n return this._ed.IntValue;\r\n }\r\n\r\n public toJSON(): number {\r\n return this._ed.IntValue;\r\n }\r\n\r\n public [Symbol.toPrimitive](hint: \"default\" | \"string\" | \"number\"): string | number {\r\n switch (hint) {\r\n case \"number\": // nastane napriklad u Number(v), v * 1, v - 1, v < 0 ale i v < \"abc\"\r\n return this._ed.IntValue;\r\n case \"string\": // nastane napriklad u String(v), `abc ${v} sws`, v in {}\r\n return this._ed.Name;\r\n case \"default\": // nastane napriklad u v + 1 a v == 0 - coz je trosku blbe :-(\r\n return this._ed.IntValue;\r\n default:\r\n throw new TypeError();\r\n }\r\n }\r\n\r\n private static _methods = [\"getType\", \"toJSON\", \"valueOf\", \"getName\", \"getLocalizedName\", \"toLocaleString\", \"getTypeName\" ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Enum rozšířený o možnost získat enumdescription.datatype\r\n */\r\nexport class EnumWithDataType extends Enum {\r\n protected override _ed: IEnumDescriptionWithDataType;\r\n\r\n constructor(description: IEnumDescriptionWithDataType, type: IEnumType) {\r\n super(description, type);\r\n }\r\n\r\n /**\r\n * Vrátí DataType\r\n */\r\n public getDataType(): string {\r\n return (this._ed).DataType;\r\n }\r\n\r\n public override getLocalizedName(): Promise<string> {\r\n return Localization.getTextPromiseWithParams(this._ed.LocKey, this._ed.LocParams);\r\n }\r\n}\r\n\r\nexport class EnumType implements IEnumType, IComparable {\r\n constructor(public descriptions: EnumDescription[], public type: string) {\r\n descriptions.forEach((e) => {\r\n const value = e instanceof IEnumDescriptionWithDataType ? new EnumWithDataType(e, this) : new Enum(e, this);\r\n this._values.set(e.Name, value);\r\n this._values.set(e.IntValue, value);\r\n });\r\n }\r\n\r\n // predelano na vnitrni struktury aby nahodou nedochazelo ke kolizi nazvu v Enum hodotach a nazvy v EnumType\r\n private _values: Map<string | number, IEnum> = new Map<string | number, Enum>();\r\n\r\n public getValue(value: string | number): IEnum | undefined {\r\n if (!this._values.has(value))\r\n if (Number.isNaN(value = +value))\r\n return undefined;\r\n return this._values.get(value);\r\n }\r\n\r\n public hasValue(value: string | number): boolean {\r\n return this._values.has(value);\r\n }\r\n\r\n public *getItemNames(): IterableIterator<string> {\r\n for (const item of this._values.keys())\r\n if (typeof item === \"string\")\r\n yield item;\r\n }\r\n\r\n public compare(value: any): boolean {\r\n if (value instanceof EnumType) {\r\n if (this.type !== value.type) return false;\r\n if (this._values.size !== value._values.size) return false;\r\n\r\n for (const [key, val] of this._values) {\r\n if (!value._values.has(key)) return false;\r\n if (val.valueOf() !== value._values.get(key).valueOf()) return false;\r\n }\r\n\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nexport const EnumProxyHandler: ProxyHandler<EnumType> = {\r\n get: function(target, property) {\r\n return target.getValue(property as any);\r\n },\r\n has: function(target, property) {\r\n return target.hasValue(property as any);\r\n },\r\n ownKeys: function(target) {\r\n const result: Array<string> = [];\r\n for (const item of target.getItemNames())\r\n result.push(item);\r\n return result;\r\n },\r\n getOwnPropertyDescriptor: function(target, property) {\r\n if (!target.hasValue(property as any))\r\n return undefined;\r\n return { configurable: true, enumerable: true, writable: false, value: target.getValue(property as any) };\r\n },\r\n};\r\n","/**\r\n * Typ hodnoty uchovávané v typu Variant\r\n * @includeToDoc\r\n */\r\nexport enum VariantType {\r\n string = \"string\",\r\n number = \"number\",\r\n}\r\n\r\n/**\r\n * Datový typ reprezentující strukturu, která může uchovávat hodnotu různých datových typů. V současnosti reprezentuje aplikační typ StrNum a umí uchovávat hodnoty typu number a string.\r\n * @includeToDoc\r\n * @generateInstanceClass\r\n*/\r\nexport interface IVariant {\r\n /** Typ uchovávané hodnoty */\r\n readonly type: VariantType;\r\n /** Uchovávaná hodnota */\r\n readonly value: any;\r\n /** Počet desetinných čísel pro formátování číselných hodnot */\r\n readonly decimalCount?: number;\r\n}\r\n\r\nexport class IVariant {\r\n private static _properties: (keyof IVariant)[] = [\"type\", \"value\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n","import { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { OWDate } from \"../../Global/Base/DataTypes/OWDate\";\r\nimport { Enum } from \"./DataTypes/Enums\";\r\nimport { IVariant } from \"./DataTypes/IVariant\";\r\n\r\nconst knownTypes = [Date, OWDate, Enum, IVariant];\r\n\r\n/**\r\n * Pomocná třída usnadňující čtení koncové hodnoty atributu\r\n * @includeToDoc\r\n */\r\nexport class AttrValueReader {\r\n /**\r\n * Načte koncovou hodnotu aplikačního atributu\r\n * @param attrValue Struktura s daty konkrétního aplikačního atributu\r\n * @param explicitKnownTypes Pole známých datových typů. Pokud je hodnota instancí tohoto typu, vrací se hodnota tohoto typu.\r\n * @returns Vrací koncovou hodnotu atributu\r\n */\r\n public static read(attrValue: IAttrValue | object | null | undefined, explicitKnownTypes: any[] = []): any {\r\n if (attrValue == null)\r\n return null;\r\n\r\n if (knownTypes.some(t => attrValue instanceof t) || (explicitKnownTypes && explicitKnownTypes.some(t => attrValue instanceof t)))\r\n return attrValue;\r\n\r\n return attrValue.valueOf();\r\n }\r\n\r\n /**\r\n * Načte z řádku koncovou hodnotu aplikačního atributu\r\n * @param row Celý řádek s hodnotami aplikačních záznamů\r\n * @param attrName Název atributu, pro nějž se má číst hodnota\r\n * @param explicitKnownTypes Pole známých datových typů. Pokud je hodnota instancí tohoto typu, vrací se hodnota tohoto typu.\r\n * @returns Vrací koncovou hodnotu atributu\r\n */\r\n public static readRow(row: IRowData, attrName: string, explicitKnownTypes: any[] = []): any {\r\n return AttrValueReader.read(row[attrName], explicitKnownTypes);\r\n }\r\n}\r\n","export { ClientType } from \"./ClientType\";\r\nexport { FactoryFunction, IClientFactory } from \"./IClientFactory\";\r\n","import { IDataReaderClient } from \"@multiweb/clients/dataReader\";\r\nimport { ClientType, IClientFactory } from \"@multiweb/clients/index\";\r\nimport { IModelDescriptionsClient } from \"@multiweb/clients/modelDescriptions\";\r\nimport { DIContainer } from \"Global/Base/DIContainer\";\r\n\r\n/**\r\n * Získá klienta pro čtení dat z DIContainer.\r\n *\r\n * @deprecated Komponenty by si neměly samy získávat implementace z DIContaineru. Implementace by jim měly být poskytnuty zvenčí. Viz task 27816.\r\n */\r\nexport const getDataReaderClient = (): IDataReaderClient => DIContainer.instance.create(IClientFactory).get(ClientType.dataReader);\r\n\r\n/**\r\n * Získá klienta pro čtení informací o modelu z DIContainer.\r\n *\r\n * @deprecated Komponenty by si neměly samy získávat implementace z DIContaineru. Implementace by jim měly být poskytnuty zvenčí. Viz task 27816.\r\n */\r\nexport const getModelDescriptionsClient = (): IModelDescriptionsClient => DIContainer.instance.create(IClientFactory).get(ClientType.modelDescriptions);\r\n","import { GlobalContext } from \"../GlobalContext\";\r\n\r\ntype OptionalGenericArrayType<T> = T[] | undefined | null;\r\n\r\nexport class ArrayUtils {\r\n /**\r\n * Presune zaznam z pozice from na pozici to\r\n */\r\n public static move(array: any[], from: number, to: number): any[] {\r\n if (from == to) return array;\r\n\r\n let item = array.splice(from, 1);\r\n\r\n if (item.length)\r\n item = item[0]; //pravdepodobne muze nastat situace ze se do itemu dostane prvek typu pole, misto daneho prvku\r\n\r\n array.splice(to, 0, item);\r\n\r\n return array;\r\n }\r\n\r\n /**\r\n * Nalezne společné prvky dvou polí, které pak vrátí jako nové pole\r\n * @param array1 Pole 1\r\n * @param array2 Pole 2\r\n * @param comparator Funkce pro porovnání rovnosti\r\n * @returns Pole se společnými prvky\r\n */\r\n public static intersect<T>(array1: OptionalGenericArrayType<T>, array2: OptionalGenericArrayType<T>, comparator?: (item1: T, item2: T) => boolean): T[] {\r\n if (!array1 || !array2)\r\n return [];\r\n if (comparator)\r\n return array1.filter(item1 => array2.some(item2 => comparator(item1, item2)));\r\n return array1.filter(item1 => array2.includes(item1));\r\n }\r\n\r\n /**\r\n * Vrátí hodnoty prvního pole, které nejsou společné pro obě pole, jako nové pole\r\n * @param array1 Pole 1\r\n * @param array2 Pole 2\r\n * @param comparator Funkce pro porovnání rovnosti\r\n * @returns První pole s odstraněnými společnými prvky\r\n * @example\r\n * // a = [1,2,3,4]; b = [1,3,6];\r\n * // c = ArrayUtils.difference(a, b);\r\n * // c == [2, 4];\r\n */\r\n public static difference<T>(array1: T[] | ReadonlyArray<T>, array2: T[] | ReadonlyArray<T>, comparator?: (item1: T, item2: T) => boolean): T[] {\r\n if (comparator) {\r\n return array1\r\n .filter(item1 => !array2.some(item2 => comparator(item1, item2)));\r\n }\r\n return array1.filter(item1 => !array2.includes(item1));\r\n }\r\n\r\n /**\r\n * Nalezne rozdílné prvky dvou polí, které pak vrátí jako nové pole\r\n * @param array1 Pole 1\r\n * @param array2 Pole 2\r\n * @param comparator Funkce pro porovnání rovnosti\r\n * @returns Pole se společnými prvky\r\n * @example\r\n * // a = [1,2,3,4]; b = [1,3,6];\r\n * // c = ArrayUtils.differenceSymmetrical(a, b);\r\n * // c == [2, 4, 6];\r\n */\r\n public static differenceSymmetrical<T>(array1: T[] | ReadonlyArray<T>, array2: T[] | ReadonlyArray<T>, comparator?: (item1: T, item2: T) => boolean): T[] {\r\n if (comparator) {\r\n return array1\r\n .filter(item1 => !array2.some(item2 => comparator(item1, item2)))\r\n .concat(array2.filter(item1 => !array2.some(item2 => comparator(item1, item2))));\r\n }\r\n return array1.filter(x => !array2.includes(x)).concat(array2.filter(x => !array1.includes(x)));\r\n }\r\n\r\n /**\r\n * Nalezne zda existuje průnik dvou polí\r\n * @param array1 Pole 1\r\n * @param array2 Pole 2\r\n * @param comparator Funkce pro porovnání rovnosti\r\n */\r\n public static hasIntersection<T>(array1: T[] | ReadonlyArray<T>, array2: T[] | ReadonlyArray<T>, comparator?: (item1: T, item2: T) => boolean): boolean {\r\n if (comparator) return array1.some(item1 => array2.some(item2 => comparator(item1, item2)));\r\n return array1.some(item => array2.includes(item));\r\n }\r\n\r\n /**\r\n * Nalezne zda existuje průnik dvou kolekcí\r\n * @param array1 Pole 1\r\n * @param array2 Set 2\r\n * @param adapter Funkce převádějící prvek prvního typu na prvek druhého typu\r\n */\r\n public static hasIntersectionWithSet<T1, T2>(array1: T1[] | ReadonlyArray<T1>, array2: Set<T2>, adapter: (item1: T1) => T2): boolean {\r\n return array1.some(item1 => array2.has(adapter(item1)));\r\n }\r\n\r\n /**\r\n * Z existujícího pole odstraní daný prvek a to existujici pole vrati\r\n * @param array Pole s daty\r\n * @param itemForRemoval Prvek k odstranění\r\n * @param firstOccurrence Výchozí true, odstraní pouze první výskyt prvku\r\n */\r\n public static remove<T>(array: T[], itemForRemoval: T, firstOccurrence: boolean = true): T[] {\r\n let occur = array.indexOf(itemForRemoval);\r\n\r\n while (occur != -1) {\r\n array.splice(occur, 1);\r\n occur = array.indexOf(itemForRemoval);\r\n if (firstOccurrence) break;\r\n }\r\n\r\n return array;\r\n }\r\n\r\n /**\r\n * Vytvoří nové pole bez prvků, které neodpovídají predikátu\r\n * @param array Pole s daty\r\n * @param predicate Predikát určující, zda se má prvek odstranit\r\n */\r\n public static removeIf<T>(array: T[], predicate: (item: T) => boolean): T[] {\r\n return array.filter(item => !predicate(item));\r\n }\r\n\r\n /**\r\n * Vloží nový záznam před záznam na dané pozici. Modifikuje předané pole. A predane pole vrati\r\n */\r\n public static insertBefore<T>(array: T[], data: T, index: number): T[] {\r\n array.splice(index, 0, data);\r\n\r\n return array;\r\n }\r\n\r\n /**\r\n * Vyhleda index hodnoty v setridenem poli\r\n */\r\n public static binaryIndexOf(array: any[] | ReadonlyArray<any>, search: any): number {\r\n let minIndex = 0;\r\n let maxIndex = array.length - 1;\r\n let currIdx: number;\r\n let currEl: any;\r\n\r\n while (minIndex <= maxIndex) {\r\n currIdx = (minIndex + maxIndex) / 2 | 0;\r\n currEl = array[currIdx];\r\n\r\n if (currEl < search) {\r\n minIndex = currIdx + 1;\r\n } else if (currEl > search) {\r\n maxIndex = currIdx - 1;\r\n } else {\r\n return currIdx;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Porovná 2 pole na základě hodnot\r\n * @param array1 První pole\r\n * @param array2 Druhé pole\r\n * @param sort Zda obě pole před porovnáním setřídit\r\n */\r\n public static equals(array1: Array<any>, array2: Array<any>, sort: boolean = false): boolean {\r\n if (!array1 || !array2) {\r\n return false;\r\n }\r\n\r\n if (array1.length !== array2.length) {\r\n return false;\r\n }\r\n\r\n if (sort) {\r\n array1 = array1.sort();\r\n array2 = array2.sort();\r\n }\r\n\r\n for (let i = 0, l = array1.length; i < l; i++) {\r\n if (array1[i] instanceof Array && array2[i] instanceof Array) {\r\n if (!ArrayUtils.equals(array1[i], array2[i])) {\r\n return false;\r\n }\r\n } else if (array1[i] !== array2[i]) {\r\n // Doplnit porovnani objektu - dve ruzne instance objektu nejsou stejne: {x:20} != {x:20}\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Vrátí nové pole obsahující každý prvek předaného pole maximálně jednou\r\n * @param array Pole\r\n */\r\n public static getUniqueArray<T>(array: T[] | ReadonlyArray<T>): T[] {\r\n const u: any = {};\r\n const a: T[] = [];\r\n for (let i = 0, l = array.length; i < l; ++i) {\r\n if (u[array[i]] == 1) continue;\r\n\r\n a.push(array[i]);\r\n u[array[i]] = 1;\r\n }\r\n return a;\r\n }\r\n\r\n public static copyUint8Array(data: Uint8Array, start: number = 0, length?: number): Uint8Array {\r\n if (!length)\r\n length = data.length - start;\r\n const result = new Uint8Array(length);\r\n let j = 0;\r\n for (let i = start; i < length; i++)\r\n result[j++] = data[i];\r\n return result;\r\n }\r\n\r\n /**\r\n * Ze zdrojového pole odstraní všechny prvky, které jsou v druhém poli\r\n * @param sourceArray Zdrojové pole\r\n * @param arrayToRemove Pole s prvky k odstranění\r\n * @return Pole bez odstraněných prvků\r\n */\r\n public static removeAll<T>(sourceArray: T[], arrayToRemove: T[]): T[] {\r\n return sourceArray.filter(item => !arrayToRemove.includes(item));\r\n }\r\n\r\n /**\r\n * Seskupí prvky pole do skupin podle vlastnosti prvku pole definované jako klíč\r\n * @param data Zdrojové pole\r\n * @param key Vlastnost prvků pole, podle které se mají seskupit\r\n * @see https://learnwithparam.com/blog/how-to-group-by-array-of-objects-using-a-key/\r\n */\r\n public static groupBy<T>(data: T[], key: keyof T): {[key: string]: T[]} {\r\n return data.reduce((groupedItems, item) => {\r\n const itemValue = item[key];\r\n if (groupedItems[itemValue] === undefined)\r\n groupedItems[itemValue] = [];\r\n groupedItems[itemValue].push(item);\r\n return groupedItems;\r\n }, {} as any);\r\n }\r\n\r\n /**\r\n * Sestavi string z charCode bufferu\r\n * @param bytes Zdrojove pole\r\n */\r\n public static bufferToString(bytes: ArrayBuffer): string {\r\n const bufView = new Uint16Array(bytes);\r\n const length = bufView.length;\r\n let result = \"\";\r\n let addition = Math.pow(2, 14) - 1; // Edge fails for 2^14 and larger\r\n\r\n for (let i = 0; i < length; i += addition) {\r\n if (i + addition > length)\r\n addition = length - i;\r\n\r\n result += String.fromCharCode.apply(null, bufView.subarray(i, i + addition) as any as number[]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Na základě splnění predikátu rozdělí vstupní pole na dvě. Prvky, které splnily predikát se vrací v poli jako návratová hodnota.\r\n * Prvky které nevyhověly se vrací v parametrem předaném poli.\r\n * @param array Vstupní pole\r\n * @param predicate Predikát\r\n * @param omittedItems Pole prvků, které nevyhověly predikátu\r\n */\r\n public static filterSplit<T>(array: T[], predicate: (value: T, index: number, array: T[]) => boolean, omittedItems: T[]): T[] {\r\n const passingItems: T[] = [];\r\n\r\n let item: T | null = null;\r\n for (let i = 0; i < array.length; ++i) {\r\n item = array[i];\r\n\r\n if (predicate(item, i, array)) {\r\n passingItems.push(item);\r\n } else {\r\n omittedItems.push(item);\r\n }\r\n }\r\n\r\n return passingItems;\r\n }\r\n\r\n /**\r\n * Zploští pole o jednu úroveň. Vrací nové pole, původní pole nechá nezměněné.\r\n * Pokud vstupní pole obsahuje prvky, které nejsou typu pole, tak je vloží, tak jak jsou.\r\n * @param array Pole polí stejného typu.\r\n */\r\n public static flat<T>(array: ReadonlyArray<T | ReadonlyArray<T>> | null | undefined): T[] {\r\n return ([] as T[]).concat(...array ?? []);\r\n }\r\n}\r\n\r\nGlobalContext.registerType(ArrayUtils);\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts/dataReader\";\r\n\r\nexport const MULTI_OBJECT_ID: string = \"-1\";\r\nexport const MULTI_OBJECT_INSTANCE_PREFIX: string = \"meow_\";\r\n\r\n/** Výsledek průniku dvou editačních skupin */\r\nexport type IntersectResult = { id: string; group: IMEChangeGroup };\r\n\r\n/** Reprezentuje změnu hodnoty atributu v režimu MultiEditace */\r\nexport type MEAttrChange = { readonly order: number; readonly attrName: string; readonly value: IAttrValue };\r\n/** Reprezentuje instanci v MultiEditaci a její seznam změn */\r\nexport type MEInstance = { id: string; values: readonly MEAttrChange[] };\r\n/** Seznam změn pro MultiEditaci */\r\nexport type MEChanges = { changedInstances?: MEInstance[] | undefined; newGroups?: IMEChangeGroup[] | undefined; remGroups?: IMEChangeGroup[] | undefined };\r\n\r\n/**\r\n * Rozhraní, které agreguje změny vybraných skupin a poskytuje aktuální data pro zobrazení na formuláři\r\n */\r\nexport interface IMEChangeStack {\r\n /** Instance pro které se aplikují změny přímo */\r\n readonly groups: readonly IMEChangeGroup[];\r\n /** Seznam skupin se změnami, které nejsou aplikovány instančně */\r\n readonly instances: IMEInstanceChangeProp[];\r\n /** Třída pro kterou se změny budou aplikovat*/\r\n readonly className: string;\r\n}\r\n\r\n/**\r\n * Rozhraní které popisuje provedené změny na konkrétní instanci\r\n */\r\nexport interface IMEInstanceChangeProp {\r\n /** ID objektu */\r\n readonly id: string;\r\n /** ID instance */\r\n readonly instanceId: string;\r\n /** Změny atributů dané instance*/\r\n readonly changes: MEAttrChange[];\r\n}\r\n\r\n/**\r\n * Skupina změn pro MultiEditaci\r\n */\r\nexport interface IMEChangeGroup {\r\n /** Seznam změněných atributů */\r\n changes: readonly MEAttrChange[];\r\n /** Indikátor, zda má skupina nějakou změnu */\r\n readonly hasChanges: boolean;\r\n /** Seznam excludovaných instancí */\r\n excluded: readonly string[];\r\n /** Přidá instanci do skupiny */\r\n include(instanceId: string): void;\r\n /** Vyjme instanci ze skupiny */\r\n exclude(instanceId: string): void;\r\n /** Přidá jednu změnu do skupiny */\r\n addChange(attrName: string, value: IAttrValue): void;\r\n\r\n}\r\n\r\nexport class IMEChangeGroup {\r\n private static _properties: (keyof (IMEChangeGroup))[] = [\"hasChanges\", \"changes\", \"excluded\"];\r\n private static _methods: (keyof (IMEChangeGroup))[] = [\"include\", \"exclude\", \"addChange\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/** Skupina změn zadaná podmínkou */\r\nexport interface IMEConditionGroup extends IMEChangeGroup {\r\n /** Podmínka pro výběr objektů */\r\n readonly condition: string;\r\n /** Parametry podmínky pro výběr objektů */\r\n readonly conditionParams: ConditionParams;\r\n /** Vrací seznam změn vzhledem k předchozímu stavu */\r\n merge(existingInstances: readonly string[], intersectsInstances: readonly string[]): MEChanges;\r\n}\r\n\r\nexport class IMEConditionGroup {\r\n private static _properties: (keyof (IMEConditionGroup))[] = [\"condition\"];\r\n private static _methods: (keyof (IMERecordsGroup))[] = [\"merge\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") && instance instanceof IMEChangeGroup;\r\n }\r\n}\r\n\r\n/**\r\n * Skupina změn zadaná seznamem instancí\r\n */\r\nexport interface IMERecordsGroup extends IMEChangeGroup {\r\n /** Seznam instancí ve skupině */\r\n instances: readonly string[];\r\n /** Vrací seznam změn vzhledem k předchozímu stavu */\r\n merge(existingInstances: readonly string[], intersectsGroups: readonly IntersectResult[]): MEChanges;\r\n}\r\n\r\nexport class IMERecordsGroup {\r\n private static _properties: (keyof (IMERecordsGroup))[] = [\"instances\"];\r\n private static _methods: (keyof (IMERecordsGroup))[] = [\"merge\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") && instance instanceof IMEChangeGroup;\r\n }\r\n}\r\n","import { MULTI_OBJECT_INSTANCE_PREFIX } from \"UI/UI.Controls/DataSource/MultiEdit/types\";\r\nimport { CaseInsensitiveMap } from \"../DataTypes/CaseInsensitiveMap\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport class ObjectUtils {\r\n /**\r\n * Pokusí se najít PropertyDescriptor naskrz chainem prototypů\r\n * @param o Objekt, pro který se hledá PropertyDescriptor\r\n * @param propertyKey Hledaná property\r\n */\r\n public static getPropertyDescriptorThroughChain(o: object, propertyKey: PropertyKey): PropertyDescriptor | undefined {\r\n let propertyDescriptor: PropertyDescriptor | undefined;\r\n let currentObject = o;\r\n\r\n do {\r\n propertyDescriptor = Object.getOwnPropertyDescriptor(currentObject, propertyKey); // Pokusí se získat propertyDescriptor na aktuálním objektu\r\n currentObject = Object.getPrototypeOf(currentObject); // Přesune se na prototyp aktuálního objektu\r\n } while (!propertyDescriptor && currentObject);\r\n\r\n return propertyDescriptor;\r\n }\r\n\r\n /**\r\n * TODO-rites\r\n * @param object\r\n * @param propertyKey\r\n */\r\n public static dynamicGetter(object: object, propertyKey: PropertyKey): boolean | null {\r\n const propertyDescriptor = ObjectUtils.getPropertyDescriptorThroughChain(object, propertyKey);\r\n if (!propertyDescriptor)\r\n return null;\r\n\r\n if (propertyDescriptor.value != null)\r\n return propertyDescriptor.value;\r\n else if (propertyDescriptor.get) {\r\n return propertyDescriptor.get.call(object);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * TODO-rites\r\n * @param object\r\n * @param propertyKey\r\n * @param valueToSet\r\n */\r\n public static dynamicSetter(object: object, propertyKey: PropertyKey, valueToSet: any): boolean {\r\n const propertyDescriptor = ObjectUtils.getPropertyDescriptorThroughChain(object, propertyKey);\r\n if (!propertyDescriptor)\r\n return false;\r\n\r\n if (propertyDescriptor.value != null)\r\n return false;\r\n else if (propertyDescriptor.set) {\r\n propertyDescriptor.set.call(object, valueToSet);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Převede klíče objektu na lowerCamelCase.\r\n * @param objectToTransform Objekt k převedení\r\n */\r\n public static transformKeysToLowerCamelCase(objectToTransform: object): object {\r\n const newObject: any = {};\r\n\r\n for (const [key, value] of Object.entries(objectToTransform)) {\r\n const newKeyName = key[0].toLowerCase() + key.substring(1);\r\n newObject[newKeyName] = value;\r\n }\r\n\r\n return newObject;\r\n }\r\n\r\n /**\r\n * Vrací seznam vlastností objektu ve formátu klíč-hodnota, který není case sensitive.\r\n * @param objectToTransform Objekt k převedení\r\n */\r\n public static getPropertiesCaseInsensitive<T>(objectToTransform: T): CaseInsensitiveMap<T> {\r\n return new CaseInsensitiveMap<any>(Object.entries(objectToTransform));\r\n }\r\n\r\n /**\r\n * Vrací informaci, jestli ID je neperzistentní (dočasné). Tj. začíná \"iid\".\r\n * @param id ID Objektu.\r\n */\r\n public static isIdTemporary(id: string): boolean {\r\n if (!id)\r\n return false;\r\n return id.toString().toLowerCase().startsWith(\"iid\");\r\n }\r\n\r\n /**\r\n * Vrací informaci, jestli ID pochází z objektu pro multieditaci (MEOWObject).\r\n * @param id ID Objektu.\r\n */\r\n public static isIdMultiEdit(id: string): boolean {\r\n if (!id)\r\n return false;\r\n return id.toString().toLowerCase().startsWith(MULTI_OBJECT_INSTANCE_PREFIX);\r\n }\r\n\r\n /**\r\n * Odstraní přetypování z názvu atributu (např. A|B.x -> A.x)\r\n * @param attributeName Název atributu\r\n */\r\n public static removeTypeCasting(attributeName: string): string {\r\n const pos = attributeName.indexOf(\".\");\r\n\r\n if (pos > -1) {\r\n const withoutType = ObjectUtils._removeTypecastingWithoutAssociation(attributeName.substring(0, pos));\r\n return withoutType + attributeName.substring(pos);\r\n } else\r\n return ObjectUtils._removeTypecastingWithoutAssociation(attributeName);\r\n }\r\n\r\n private static _removeTypecastingWithoutAssociation(attributeName: string): string {\r\n const newAttrName = attributeName.replace(/\\|([^.]+)\\./g, \".\");\r\n return newAttrName.split(\"|\")[0];\r\n }\r\n}\r\n\r\nGlobalContext.registerType(ObjectUtils);\r\n","/**\r\n * Typy zpráv, které ServiceWorker příjmá\r\n */\r\nexport enum ServiceWorkerMessageType {\r\n /** Informace o aktivnosti klientské stránky */\r\n alive = \"alive\",\r\n /** Informace o změně jazyka klientské stránky */\r\n languageChanged = \"languageChanged\",\r\n /** Žádost o oživení session uživatele */\r\n renewSession = \"renewSession\",\r\n /** Informace o novém CSRF tokenu */\r\n updateAuthId = \"updateAuthId\",\r\n /** Žádost a kontrolu dostupných aktualizací a aktualizace nastavení */\r\n updateData = \"updateData\",\r\n /** Žádost o diagnostická data. Používáno automatickými testy. */\r\n performance = \"performance\",\r\n /** Nastavení limitu pro timing buffer. Používáno automatickými testy. */\r\n setResourceTimingBuffer = \"setResourceTimingBuffer\",\r\n}\r\n\r\ninterface IServiceWorkerMessageEmpty<TMessageType extends keyof MessageTypeToPayloadMap> {\r\n /** Typ zprávy */\r\n readonly type: TMessageType;\r\n}\r\n\r\ninterface IServiceWorkerMessage<TMessageType extends keyof MessageTypeToPayloadMap> extends IServiceWorkerMessageEmpty<TMessageType> {\r\n /** Data zprávy */\r\n\treadonly payload: MessageTypeToPayloadMap[TMessageType];\r\n}\r\n\r\ntype MessageTypeToPayloadMap = {\r\n [ServiceWorkerMessageType.alive]: void;\r\n [ServiceWorkerMessageType.languageChanged]: { readonly language: string };\r\n [ServiceWorkerMessageType.renewSession]: void;\r\n [ServiceWorkerMessageType.updateAuthId]: { readonly authId: string };\r\n [ServiceWorkerMessageType.updateData]: void;\r\n [ServiceWorkerMessageType.performance]: void;\r\n [ServiceWorkerMessageType.setResourceTimingBuffer]: {readonly bufferSize: number};\r\n};\r\n\r\n/** Všechny zprávy, které lze ServiceWorkeru poslat */\r\nexport type ServiceWorkerMessage =\r\n IServiceWorkerMessageEmpty<ServiceWorkerMessageType.alive> |\r\n IServiceWorkerMessage<ServiceWorkerMessageType.languageChanged> |\r\n IServiceWorkerMessageEmpty<ServiceWorkerMessageType.renewSession> |\r\n IServiceWorkerMessage<ServiceWorkerMessageType.updateAuthId> |\r\n IServiceWorkerMessageEmpty<ServiceWorkerMessageType.updateData> |\r\n IServiceWorkerMessageEmpty<ServiceWorkerMessageType.performance> |\r\n IServiceWorkerMessage<ServiceWorkerMessageType.setResourceTimingBuffer>;\r\n","/**\r\n * Typy zpráv, které ServiceWorker odesílá klientům\r\n */\r\nexport enum ServiceWorkerResponseType {\r\n /** Oznamuje proběhlé oživení uživatelské session */\r\n renewSession = \"renewSession\",\r\n /** Oznamuje vypršení uživatelské session */\r\n sessionTimeout = \"sessionTimeout\",\r\n /** Posílá diagnostická data */\r\n performance = \"performance\",\r\n}\r\n\r\ninterface IServiceWorkerResponseEmpty<TMessageType extends keyof ResponseTypeToPayloadMap> {\r\n /** Typ zprávy */\r\n readonly type: TMessageType;\r\n}\r\n\r\ninterface IServiceWorkerResponse<TMessageType extends keyof ResponseTypeToPayloadMap> extends IServiceWorkerResponseEmpty<TMessageType> {\r\n /** Data zprávy */\r\n\treadonly payload: ResponseTypeToPayloadMap[TMessageType];\r\n}\r\n\r\ntype ResponseTypeToPayloadMap = {\r\n [ServiceWorkerResponseType.renewSession]: void;\r\n [ServiceWorkerResponseType.sessionTimeout]: { readonly error: any; readonly statusCode: number };\r\n [ServiceWorkerResponseType.performance]: { readonly network: { entryType: string; name: string; startTime: number; duration: number; responseSize: number | undefined }[] };\r\n};\r\n\r\n/** Všechny zprávy, které ServiceWorker odesílá svým klientům (stránkám) */\r\nexport type ServiceWorkerResponse =\r\n IServiceWorkerResponseEmpty<ServiceWorkerResponseType.renewSession> |\r\n IServiceWorkerResponse<ServiceWorkerResponseType.sessionTimeout> |\r\n IServiceWorkerResponse<ServiceWorkerResponseType.performance>;\r\n","import { ISectionLogger } from \"@multiweb/logging\";\r\nimport { Event } from \"Global/Base/Events\";\r\nimport { ServiceWorkerMessage, ServiceWorkerMessageType } from \"Global/Base/ServiceWorkerMessages\";\r\nimport { ServiceWorkerResponse, ServiceWorkerResponseType } from \"Global/Base/ServiceWorkerResponses\";\r\nimport { OWExceptions } from \"./OWExceptions\";\r\n\r\nexport class ServiceWorkerConnector {\r\n private static _logger: ISectionLogger;\r\n public static readonly sessionRenewed: Event<undefined, undefined> = new Event<undefined, undefined>();\r\n\r\n public static init(logger: ISectionLogger): void {\r\n ServiceWorkerConnector._logger = logger;\r\n const listenerReceiver = (e: MessageEvent) => ServiceWorkerConnector._onMessage(e);\r\n const listenerError = (e: MessageEvent) => ServiceWorkerConnector._onError(e);\r\n\r\n navigator.serviceWorker.addEventListener(\"message\", listenerReceiver);\r\n navigator.serviceWorker.addEventListener(\"messageerror\", listenerError);\r\n\r\n window.addEventListener(\"unload\", () => {\r\n navigator.serviceWorker.removeEventListener(\"message\", listenerReceiver);\r\n navigator.serviceWorker.removeEventListener(\"messageerror\", listenerError);\r\n });\r\n }\r\n\r\n private static _onMessage(event: MessageEvent): void {\r\n const message = event.data as ServiceWorkerResponse;\r\n\r\n if (message.type == ServiceWorkerResponseType.sessionTimeout) {\r\n const exc = OWExceptions.parseServiceWorkerResponse({ statusCode: message.payload.statusCode, json: message.payload.error });\r\n throw exc;\r\n } else if (message.type === ServiceWorkerResponseType.renewSession) {\r\n try {\r\n ServiceWorkerConnector.sessionRenewed.trigger(undefined, undefined);\r\n this.sendMessage({ type: ServiceWorkerMessageType.alive });\r\n } catch {\r\n // Prázdný catch\r\n }\r\n }\r\n }\r\n\r\n private static _onError(message: MessageEvent): void {\r\n ServiceWorkerConnector._logger.error(\"Received error\", message);\r\n }\r\n\r\n public static sendMessage(message: ServiceWorkerMessage): void {\r\n if (!navigator.serviceWorker.controller)\r\n return;\r\n\r\n navigator.serviceWorker.controller.postMessage(message);\r\n }\r\n}\r\n","/**\r\n * Typy endpointů (controllerů) na webové službě TEAF\r\n * @includeToDoc\r\n */\r\nexport enum ASServices {\r\n /**\r\n * odkaz na obecne metody pracujici s OWManagerem\r\n */\r\n owManager,\r\n /**\r\n * odkaz na metody nepotrebujici autentizaci\r\n */\r\n descriptions,\r\n /**\r\n * odkaz na metody pracujici s lokalizacemi\r\n */\r\n cultures,\r\n /**\r\n * odkaz na metody pracujici s radky\r\n */\r\n dataRows,\r\n /**\r\n * odkaz na metody pracujici s instanci aplikacni tridy\r\n */\r\n instances,\r\n /**\r\n * odkaz na metody poskytujici operace spojene s kryptografii\r\n */\r\n cryptography,\r\n /**\r\n * odkaz na metody poskytujici operace spojene s DMS\r\n */\r\n dms,\r\n /**\r\n * odkaz na endpoint pro práci s menu\r\n */\r\n menu,\r\n /**\r\n * nový datareader\r\n */\r\n data,\r\n /**\r\n * odkaz na metody pracujici s upravou kontextem\r\n */\r\n context,\r\n /**\r\n * odkaz na metody pracujici s exportem/importem\r\n */\r\n exportImport,\r\n}\r\n\r\nconst asAPIv01 = \"api/v01/as\";\r\nconst asAPIv02 = \"api/v02/as\";\r\nconst asServicesUrls = [\r\n `${asAPIv01}/owmanager`,\r\n `${asAPIv01}/descriptions`,\r\n `${asAPIv01}/culture`,\r\n `${asAPIv01}/datarows`,\r\n `${asAPIv01}/instance`,\r\n `${asAPIv01}/cryptography`,\r\n `${asAPIv01}/dms`,\r\n `${asAPIv02}/menu`,\r\n `${asAPIv02}/data`,\r\n `${asAPIv02}/context`,\r\n `${asAPIv02}/exportimport`,\r\n]; //`\r\n\r\nexport function getServiceURL(service: ASServices) {\r\n return asServicesUrls[service];\r\n}\r\n","import { HeadersBuilder } from \"Global/Base/Comunication/HeadersBuilder\";\r\nimport { ASServices } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { RequestContext } from \"./RequestContext\";\r\n\r\n/**\r\n * Parametry, které se vkládají do URL adresy dotazu\r\n * @includeToDoc\r\n */\r\nexport interface IUrlParams {\r\n [paramName: string]: any;\r\n}\r\n\r\n/**\r\n * Parametry pro grupování dotazů\r\n * @includeToDoc\r\n */\r\nexport interface IGroupingParams {\r\n /** Zda se mají dotazy seskupovat podle názvu funkce dotazu */\r\n groupByFunction?: boolean;\r\n /** Zda se mají dotazy seskupovat podle obsahu těla dotazu */\r\n groupByBody?: boolean;\r\n /** Nazev atributu v těle dotazu, který identifikuje jednotlivé požadavky od sebe a podle kterého se seskupují */\r\n groupByBodyAttr?: string;\r\n /** Název parametru, ve kterém jsou uložené zgrupované položky pro dotaz */\r\n groupedAttrName?: string;\r\n\r\n /** Název parametru, ve kterém jsou uložené zgrupované položky v odpovědi */\r\n resultGroupedAttrName?: string;\r\n /** Název parametru, který identifikuje jednotlivé požadavky od sebe v návratové struktuře */\r\n resultIDParameterName?: string;\r\n}\r\n\r\n/**\r\n * HTTP hlavičky posílané v dotazech\r\n * @includeToDoc\r\n */\r\nexport type HeaderMix = { [name: string]: any } | Headers | HeadersBuilder | undefined;\r\n\r\n/**\r\n * Metoda HTTP dotazu\r\n * @includeToDoc\r\n */\r\nexport type RequestMethod = \"GET\" | \"POST\" | \"HEAD\" | \"PUT\" | \"PATCH\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\";\r\n\r\n/**\r\n * Základní třída umožňující komunikaci s webovou službou\r\n * @includeToDoc\r\n */\r\nexport interface ICommunicationManager {\r\n /**\r\n * Umožňuje vyvolat nízkoúrovňový HTTP dotaz\r\n * * Většinou je vhodnější použít vyšší _call*_ API *\r\n * @param functionName Název funkce na endpointu\r\n * @param functionBody Tělo dotazu\r\n * @param requestMethod Metoda HTTP dotazu\r\n * @param prefixPath Část URL mezi adresou webové služby a funkcí endpointu\r\n * @param headers HTTP hlavičky k odeslání spolu s dotazem\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n jsonRequest(functionName: string, functionBody?: any, requestMethod?: RequestMethod, prefixPath?: string, headers?: HeaderMix, requestContext?: RequestContext): Promise<unknown>;\r\n /**\r\n * Vyvolá HTTP dotaz na webovou službu\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param requestMethod Metoda HTTP dotazu\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param functionBody Tělo dotazu\r\n * @param priority Priorita odeslání dotazu\r\n * @param groupingParams Parametry pro seskupování více dotazů dohromady\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callRequest(functionName: string, service: ASServices, requestMethod: RequestMethod, urlParameters?: IUrlParams, functionBody?: any, priority?: number, groupingParams?: IGroupingParams, requestContext?: RequestContext): Promise<any>;\r\n /**\r\n * Vyvolá HTTP GET dotaz na webovou službu\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param priority Priorita odeslání dotazu\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callGETRequest(functionName: string, service: ASServices, urlParameters?: IUrlParams, priority?: number, requestContext?: RequestContext): Promise<any>;\r\n /**\r\n * Vyvolá HTTP POST dotaz na webovou službu\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param functionBody Tělo dotazu\r\n * @param priority Priorita odeslání dotazu\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callPOSTRequest(functionName: string, service: ASServices, urlParameters?: IUrlParams, functionBody?: any, priority?: number, requestContext?: RequestContext): Promise<any>;\r\n /**\r\n * Vyvolá HTTP PATCH dotaz na webovou službu\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param functionBody Tělo dotazu\r\n * @param headers HTTP hlavičky k odeslání spolu s dotazem\r\n * @param priority Priorita odeslání dotazu\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callPATCHRequest(functionName: string, service: ASServices, urlParameters?: IUrlParams, functionBody?: any, headers?: HeaderMix, priority?: number, requestContext?: RequestContext): Promise<any>;\r\n /**\r\n * Vyvolá seskupovaný HTTP GET dotaz na webovou službu. Manažer sbírá požadavky na stejné volání po určitou dobu a pak je pošle jako jeden dotaz.\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param priority Priorita odeslání dotazu\r\n * @param groupingParams Nastavení pro seskupování\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callGroupedGETRequest(functionName: string, service: ASServices, urlParameters?: IUrlParams, priority?: number, groupingParams?: IGroupingParams, requestContext?: RequestContext): Promise<any>;\r\n /**\r\n * Vyvolá seskupovaný HTTP POST dotaz na webovou službu. Manažer sbírá požadavky na stejné volání po určitou dobu a pak je pošle jako jeden dotaz.\r\n * @param functionName Název funkce na endpointu\r\n * @param service Typ endpointu webové služby\r\n * @param urlParameters Objekt s parametry, které se vloží do url pod svými názvy\r\n * @param functionBody Tělo dotazu\r\n * @param priority Priorita odeslání dotazu\r\n * @param groupingParams Nastavení pro seskupování\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n callGroupedPOSTRequest(functionName: string, service: ASServices, urlParameters?: IUrlParams, functionBody?: any, priority?: number, groupingParams?: IGroupingParams, requestContext?: RequestContext): Promise<any>;\r\n\r\n /**\r\n * Method waits until all requests with the context ID are done.\r\n * @param contextId ID of the context.\r\n */\r\n waitForContextRequests(contextId: string): Promise<void>;\r\n}\r\n\r\nexport class ICommunicationManager {\r\n private static _methods: (keyof ICommunicationManager)[] = [\r\n \"jsonRequest\",\r\n \"callRequest\",\r\n \"callGETRequest\",\r\n \"callPOSTRequest\",\r\n \"callPATCHRequest\",\r\n \"callGroupedPOSTRequest\",\r\n \"callGroupedGETRequest\",\r\n \"waitForContextRequests\",\r\n ];\r\n private static _properties: (keyof ICommunicationManager)[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IDataEvent } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Listener pro DataEvent\r\n * @includeToDoc\r\n */\r\nexport type DataEventListener = (dataEvent: IDataEvent) => void;\r\n\r\n/**\r\n * Manažer umožňující jednodušší registrování naslouchání systémovým i jiným DataEventům\r\n * @includeToDoc\r\n */\r\nexport interface IDataEventsManager {\r\n /**\r\n * Registrace naslouchání obecnému DataEventu\r\n * @param source Pojmenování zdroje zpráv (pro systémové zprávy je to \"OW\", pro ostatní podle jejich nastavení)\r\n * @param type Typ zprávy\r\n * @param subType Volitelný podtyp zprávy - může zpřesňovat naslouchání jen menší množině zpráv (\"*\" značí naslouchání všemu)\r\n * @param listener Listener volaný při obdržení zprávy\r\n */\r\n subscribeDataEvent(source: string, type: string, subType: string, listener: DataEventListener): void;\r\n /**\r\n * Odregistrování naslouchání obecnému DataEventu\r\n * @param source Pojmenování zdroje zpráv (pro systémové zprávy je to \"OW\", pro ostatní podle jejich nastavení)\r\n * @param type Typ zprávy\r\n * @param subType Volitelný podtyp zprávy - může zpřesňovat naslouchání jen menší množině zpráv (\"*\" značí naslouchání všemu)\r\n * @param listener Listener volaný při obdržení zprávy\r\n */\r\n unsubscribeDataEvent(source: string, type: string, subType: string, listener: DataEventListener): void;\r\n\r\n /**\r\n * Událost vyvolávaná při změně hodnot atributů aplikačních objektů\r\n * @param className Název sledované třídy nebo * pro všechny\r\n * @param listener Listener\r\n */\r\n subscribeObjectsChanges(className: string, listener: DataEventListener): void;\r\n /**\r\n * Odregistrování události vyvolávané při vytvoření nebo smazání záznamu aplikační třídy\r\n * @param className Název sledované třídy nebo * pro všechny\r\n * @param listener Listener\r\n */\r\n unsubscribeObjectsChanges(className: string, listener: DataEventListener): void;\r\n /**\r\n * Událost vyvolávaná při vytvoření nebo smazání záznamu aplikační třídy\r\n * @param className Název sledované třídy nebo * pro všechny\r\n * @param listener Listener\r\n */\r\n subscribeClassChanges(className: string, listener: DataEventListener): void;\r\n /**\r\n * Odregistrování události vyvolávané při vytvoření nebo smazání záznamu aplikační třídy\r\n * @param className Název sledované třídy nebo * pro všechny\r\n * @param listener Listener\r\n */\r\n unsubscribeClassChanges(className: string, listener: DataEventListener): void;\r\n /**\r\n * Událost vyvolávaná při vzniku požadavku na otevření formuláře z workflow\r\n * @param listener Listener\r\n */\r\n subscribeWFOpenForm(listener: DataEventListener): void;\r\n /**\r\n * Odregistrování události vyvolávané při vzniku požadavku na otevření formuláře z workflow\r\n * @param listener Listener\r\n */\r\n unsubscribeWFOpenForm(listener: DataEventListener): void;\r\n /**\r\n * Událost vyvolávaná při přegenerování systémové keše na aplikačním serveru\r\n * @param settingsType Typ keše, pro který se má registrovat naslouchání\r\n * @param listener Listener\r\n */\r\n subscribeSystemCacheReloaded(settingsType: SysteCacheType, listener: DataEventListener): void;\r\n\r\n /**\r\n * Odregistrování události vyvolávané při přegenerování systémové keše na aplikačním serveru\r\n * @param settingsType Typ keše, pro který se má registrovat naslouchání\r\n * @param listener Listener\r\n */\r\n unsubscribeSystemCacheReloaded(settingsType: SysteCacheType, listener: DataEventListener): void;\r\n\r\n /**\r\n * Událost vyvolávaná při změně aktivních rolí\r\n * @param listener Listener\r\n */\r\n subscribeActiveRolesChanged(listener: DataEventListener): void;\r\n\r\n /**\r\n * Odregistrování události vyvolávané při změně aktivních rolí\r\n * @param listener Listener\r\n */\r\n unsubscribeActiveRolesChanged(listener: DataEventListener): void;\r\n\r\n /**\r\n * Spustí sledování změn aplikačních instancí\r\n */\r\n watchObjectsChanges(): void;\r\n}\r\n\r\nexport class IDataEventsManager {\r\n private static _methods: (keyof IDataEventsManager)[] = [\r\n \"subscribeDataEvent\",\r\n \"unsubscribeDataEvent\",\r\n \"subscribeObjectsChanges\",\r\n \"unsubscribeObjectsChanges\",\r\n \"subscribeClassChanges\",\r\n \"unsubscribeClassChanges\",\r\n \"subscribeWFOpenForm\",\r\n \"unsubscribeWFOpenForm\",\r\n \"subscribeSystemCacheReloaded\",\r\n \"unsubscribeSystemCacheReloaded\",\r\n \"subscribeActiveRolesChanged\",\r\n \"unsubscribeActiveRolesChanged\",\r\n \"watchObjectsChanges\",\r\n ];\r\n private static _properties: (keyof IDataEventsManager)[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport type SysteCacheType = \"Rights\" | \"Workflows\" | \"Localizations\" | \"Forms\" | \"DataModel\";\r\n","/**\r\n * Porovná dvě verze. Kontroluje, zda základní verze (první parametr) je nižší nebo stejná jako zadaná porovnávaná verze (druhý parametr).\r\n * Pokud je základní verze undefined, tak vrací vždy false.\r\n * @example \"15.01\" je menší nebo rovna \"20.00\"; \"15.01\" není menší nebo rovna \"14.05\"\r\n * @param baseVersion Základní verze u které se kontroluje, zda je nižší nebo rovna. Při undefined vrací false.\r\n * @param comparedVersion Verze, proti které probíhá kontrola.\r\n */\r\nexport const isVersionOlderOrEqual = (baseVersion: string | undefined, comparedVersion: string): boolean => {\r\n if (baseVersion == undefined)\r\n return false;\r\n\r\n if (!baseVersion.match(/\\d{2}\\.\\d{2}/))\r\n throw Error(`Current version '${baseVersion}' has invalid format. Required format is 'XX.YY'.`);\r\n if (!comparedVersion || !comparedVersion.match(/\\d{2}\\.\\d{2}/))\r\n throw Error(`Compared version '${comparedVersion}' has invalid format. Required format is 'XX.YY'.`);\r\n\r\n const parse = (version: string) => version.split(\".\").map(part => part.startsWith(\"0\") ? part.substr(1) : part).map(part => parseInt(part));\r\n\r\n const [baseVersionMajor, baseVersionMinor] = parse(baseVersion);\r\n const [comparedVersionMajor, comparedVersionMinor] = parse(comparedVersion);\r\n\r\n // rozdíl je už v major verzi\r\n if (baseVersionMajor < comparedVersionMajor)\r\n return true;\r\n\r\n // pokud jsou major verze (první dvojčíslí) stejné, tak se porovnávají ještě minor verze (druhé dvojčíslí)\r\n if (baseVersionMajor === comparedVersionMajor)\r\n return baseVersionMinor <= comparedVersionMinor;\r\n\r\n return false;\r\n};\r\n","export const HEADER_ROLES_NAME = \"RoleIDs\";\r\nexport const HEADER_RIGHTS_SETTINGS_VERSION = \"RightsSettingsVersion\";\r\nexport const HEADER_TRANSACTION_CONTEXT_ID_NAME = \"ContextID\";\r\n","import { AppContext } from \"App\";\r\n\r\nimport { CancelError, CancellationToken } from \"@multiweb/types/multiweb\";\r\nimport { HeadersBuilder } from \"Global/Base/Comunication/HeadersBuilder\";\r\nimport { HTTPError, HTTPRequest } from \"Global/Base/Comunication/HTTPRequest\";\r\nimport { HTTPStatus } from \"Global/Base/Comunication/HTTPStatus\";\r\nimport { Deferred, PromiseUtils } from \"Global/Base/Promises/PromiseUtils\";\r\nimport { EOWException, OWExceptions } from \"OW.Remoting/Basic/OWExceptions\";\r\nimport { ASServices, getServiceURL } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { ApplicationStorage } from \"../ApplicationStorage\";\r\nimport { HEADER_RIGHTS_SETTINGS_VERSION, HEADER_ROLES_NAME, HEADER_TRANSACTION_CONTEXT_ID_NAME } from \"../Constants\";\r\nimport { ICommunicationManager, IGroupingParams, RequestMethod } from \"../ICommunicationManager\";\r\nimport { EMPTY_REQUEST_CONTEXT, RequestContext } from \"../RequestContext\";\r\n\r\nconst OK_HTTP_CODES = [HTTPStatus.ok, HTTPStatus.created, HTTPStatus.noContent, HTTPStatus.partialContent];\r\nconst GROUP_THROTTLING_MS = 50; // TODO: jen pro grupované dotazy a ne pro všechny jako teď!\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IServiceRequest {\r\n functionName: string;\r\n functionBody?: any;\r\n callParams?: ICallParameters;\r\n groupingParams?: IGroupingParams;\r\n priority: number;\r\n cancellationToken: CancellationToken;\r\n result: Deferred<any>;\r\n resolved?: boolean;\r\n /** Editační kontext formuláře/framu */\r\n transactionContextId?: string;\r\n roles?: readonly string[];\r\n rightsSettingsVersion?: string;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface ICallParameters {\r\n /** Typ HTTP metody pro odeslání dat na AS (GET, POST) - defaultně POST */\r\n requestMethod?: RequestMethod;\r\n /** Název controlleru rozhraní webové služby, na které se mají požadavky posílat - defaultně ASService */\r\n serviceName?: string;\r\n}\r\n\r\n/**\r\n * Type used in mapOfRequestsWithContext.\r\n */\r\ntype requestCounterWithPromiseType = {\r\n /** Request counter for requests with the given context ID. */\r\n requestCounter: number;\r\n /** Promise that is resolved when the request counter is 0 (no other request with the given context ID is being processed). */\r\n promise: Deferred<void>;\r\n};\r\n\r\nexport class CommunicationManager implements ICommunicationManager {\r\n private _callingInProcess: boolean = false;\r\n private _batchRequestsToCall: IServiceRequest[] = [];\r\n private _mapOfRequestsWithContext: Map<string, requestCounterWithPromiseType> = new Map();\r\n private readonly _webServiceUrl: string;\r\n private readonly _groupThrottlingTime: number;\r\n private readonly _cancelError: CancelError = new CancelError();\r\n\r\n constructor(webServiceUrl: string, groupThrottlingTime: number = GROUP_THROTTLING_MS) {\r\n this._webServiceUrl = webServiceUrl;\r\n this._groupThrottlingTime = groupThrottlingTime;\r\n }\r\n\r\n private static _getRequestUrl(baseUrl: string, functionName: string, prefixPath: string): string {\r\n return `${baseUrl}/${prefixPath}${functionName ? functionName.startsWith(\"?\") ? functionName : `/${functionName}` : \"\"}`;\r\n }\r\n\r\n public jsonRequest(functionName: string, functionBody?: any, requestMethod: RequestMethod = \"POST\", prefixPath: string = \"ASService.svc/rest\",\r\n headers?: ({ [name: string]: any } | Headers | HeadersBuilder | undefined), requestContext: RequestContext = EMPTY_REQUEST_CONTEXT): Promise<any> {\r\n const roles = AppContext.instance.configuration.legacyActiveRoles ? AppContext.instance.activeUserRolesIds : requestContext.roles;\r\n const { cancellationToken, getTransactionContextId } = requestContext;\r\n const transactionContextId = getTransactionContextId && getTransactionContextId();\r\n const combinedHeaders = new HeadersBuilder(HTTPRequest.jsonHeaders, { \"AuthID\": ApplicationStorage.get(`SpecKey-${AppContext.instance.appId}`) }, headers);\r\n if (roles?.length)\r\n combinedHeaders.set(HEADER_ROLES_NAME, roles.join(\";\"));\r\n if (requestContext.rightsSettingsVersion)\r\n combinedHeaders.set(HEADER_RIGHTS_SETTINGS_VERSION, requestContext.rightsSettingsVersion);\r\n if (transactionContextId) {\r\n combinedHeaders.set(HEADER_TRANSACTION_CONTEXT_ID_NAME, transactionContextId);\r\n }\r\n\r\n return HTTPRequest.request(\r\n requestMethod,\r\n CommunicationManager._getRequestUrl(this._webServiceUrl, functionName, prefixPath),\r\n JSON.stringify(functionBody),\r\n combinedHeaders,\r\n \"text\",\r\n OK_HTTP_CODES,\r\n cancellationToken,\r\n )\r\n .then((responseText) => !responseText ? null : JSON.parse(responseText))\r\n .catch((error) => CommunicationManager._errorHandler(error));\r\n }\r\n\r\n private static _errorHandler(error: Error): void {\r\n if (error instanceof HTTPError) {\r\n if (error.status === HTTPStatus.found) {\r\n const e = new EOWException(error.statusText);\r\n e.request = error.request;\r\n throw e;\r\n } else {\r\n throw CommunicationManager._parseError(error);\r\n }\r\n }\r\n\r\n throw error;\r\n }\r\n\r\n private static _parseError(error: HTTPError): Error {\r\n if (error.status === 500) {\r\n return OWExceptions.parse(error, error.request);\r\n } else {\r\n // Performs the function \"reject\" when this.status is different from 500\r\n const exception = new EOWException(error.status + \" \" + error.statusText);\r\n exception.httpErrorCode = error.status;\r\n exception.request = error.request;\r\n return exception;\r\n }\r\n }\r\n\r\n public callRequest(functionName: string, service: ASServices, requestMethod: RequestMethod, urlParameters?: { [paramName: string]: any }, functionBody?: any,\r\n priority?: number, groupingParams?: IGroupingParams, requestContext: RequestContext = EMPTY_REQUEST_CONTEXT): Promise<any> {\r\n const { roles, rightsSettingsVersion, cancellationToken, getTransactionContextId } = requestContext;\r\n const result = PromiseUtils.defer<any>();\r\n const contextId = getTransactionContextId && getTransactionContextId();\r\n const request: IServiceRequest = {\r\n functionName: this._buildFunctionUrlWithParams(functionName, urlParameters),\r\n functionBody: functionBody,\r\n callParams: { requestMethod: requestMethod, serviceName: getServiceURL(service) },\r\n groupingParams: groupingParams,\r\n priority: priority || 1,\r\n cancellationToken: cancellationToken,\r\n result: result,\r\n transactionContextId: contextId,\r\n roles,\r\n rightsSettingsVersion,\r\n };\r\n\r\n if (contextId) {\r\n const requestsWithContext = this._mapOfRequestsWithContext.get(contextId);\r\n\r\n if (requestsWithContext) {\r\n requestsWithContext.requestCounter++;\r\n } else {\r\n this._mapOfRequestsWithContext.set(contextId, { requestCounter: 1, promise: undefined });\r\n }\r\n\r\n // Not a nice solution, but with one parameter in \"then\" block or with one \"finally\" block it's not working.\r\n const onRequestEnd = () => this._manageRequestsAndContextMap(request);\r\n result.promise.then(onRequestEnd, onRequestEnd);\r\n }\r\n\r\n if (!groupingParams) {\r\n this._processUngrouped(request);\r\n } else {\r\n this._batchRequestsToCall.push(request);\r\n if (!this._callingInProcess) {\r\n this._callingInProcess = true;\r\n self.setTimeout(() => this._processAllCalls(), this._groupThrottlingTime);\r\n }\r\n }\r\n\r\n return result.promise;\r\n }\r\n\r\n private _buildFunctionUrlWithParams(functionName: string, urlParameters?: { [paramName: string]: any }): string {\r\n return functionName + (!urlParameters ? \"\" : \"?\" + Reflect.ownKeys(urlParameters)\r\n .filter((k: string) => urlParameters[k] !== undefined)\r\n .map((k: string) => `${k}=${encodeURIComponent(urlParameters[k])}`)\r\n .join(\"&\"));\r\n }\r\n\r\n public callGETRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, priority?: number, requestContext?: RequestContext): Promise<any> {\r\n return this.callRequest(functionName, service, \"GET\", urlParameters, undefined, priority, undefined, requestContext);\r\n }\r\n\r\n public callPOSTRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, priority?: number, requestContext?: RequestContext): Promise<any> {\r\n return this.callRequest(functionName, service, \"POST\", urlParameters, functionBody, priority, undefined, requestContext);\r\n }\r\n\r\n public callPATCHRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, headers?: ({ [name: string]: any } | Headers | HeadersBuilder | undefined), _priority?: number, requestContext?: RequestContext): Promise<any> {\r\n return this.jsonRequest(this._buildFunctionUrlWithParams(functionName, urlParameters), functionBody, \"PATCH\", getServiceURL(service), headers, requestContext);\r\n }\r\n\r\n public callGroupedPOSTRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, priority?: number, groupingParams?: IGroupingParams, requestContext?: RequestContext): Promise<any> {\r\n return this.callRequest(functionName, service, \"POST\", urlParameters, functionBody, priority, groupingParams === undefined ? { groupByBody: true } : groupingParams, requestContext);\r\n }\r\n\r\n public callGroupedGETRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, priority?: number, groupingParams?: IGroupingParams, requestContext?: RequestContext): Promise<any> {\r\n return this.callRequest(functionName, service, \"GET\", urlParameters, undefined, priority, groupingParams === undefined ? { groupByFunction: true } : groupingParams, requestContext);\r\n }\r\n\r\n private _processAllCalls(): void {\r\n while (this._batchRequestsToCall.length > 0) {\r\n const temp = this._batchRequestsToCall;\r\n this._batchRequestsToCall = [];\r\n\r\n let groupedByPriority = this._groupBy(temp, function(item) {\r\n return [item.priority];\r\n });\r\n\r\n groupedByPriority = groupedByPriority.sort((i1, i2) => i2[0].priority - i1[0].priority); // sestupne\r\n\r\n for (const gbp of groupedByPriority) {\r\n this._processCallsWithSamePriority(gbp);\r\n }\r\n }\r\n this._callingInProcess = false;\r\n }\r\n\r\n /**\r\n * @param requests Požadavky se stejnou prioritou, ale potenciálně napříč různými rolemi a/nebo různým transakčním kontextem.\r\n * @private\r\n */\r\n private _processCallsWithSamePriority(requests: IServiceRequest[]): void {\r\n const getGroupKey = ({ roles, transactionContextId }: IServiceRequest) => {\r\n const sortedRoles = roles ? [...roles].sort() : [];\r\n return `${transactionContextId}-${sortedRoles}`;\r\n };\r\n const groupedByRolesAndTransactionContext = this._groupBy(requests, getGroupKey);\r\n groupedByRolesAndTransactionContext.forEach(group => this._processCallsWithSamePriorityAndRolesAndTransactionContext(group));\r\n }\r\n\r\n /**\r\n * @param requests Požadavky s touž prioritou, týmiž rolemi a týmž transakčním kontextem.\r\n * @private\r\n */\r\n private _processCallsWithSamePriorityAndRolesAndTransactionContext(requests: IServiceRequest[]): void {\r\n const groupedByFuncsAndGP = this._groupBy(requests, function(item) {\r\n return [item.functionName];\r\n });\r\n\r\n for (const group of groupedByFuncsAndGP) {\r\n const groupingParams = group[0].groupingParams;\r\n\r\n if (groupingParams && groupingParams.groupByFunction)\r\n this._processUniqueGroup(group); // všechny dotazy jsou seskupené podle volané funkce a stačí zavolat jeden\r\n else if (groupingParams)\r\n this._processGroup(group); // více dotazů (a jejich těl) se seskupí do jednoho\r\n else\r\n throw new Error(\"Ungrouped requests must be called directly\");\r\n }\r\n }\r\n\r\n private _filterGroupUnique(group: IServiceRequest[]): IServiceRequest[] {\r\n if (group == null || group.length === 0)\r\n return [];\r\n\r\n // když vůbec nejsou zadané parametry pro grupování, tak se negrupuje\r\n const groupingParams = group[0].groupingParams;\r\n if (!groupingParams)\r\n return group;\r\n\r\n // grupování podle volané funkce\r\n if (groupingParams.groupByFunction)\r\n return group.filter((item1, index, array) => array.findIndex((item2) => item1.functionName === item2.functionName) === index);\r\n\r\n const bodyGroupParam = groupingParams.groupByBodyAttr;\r\n // pokud není nastaven specifický atribut, podle kterého by se to mělo dělat, tak se grupuje podle těla requestu (předpokladem je, že to není objekt)\r\n if (!bodyGroupParam)\r\n return group.filter((item1, index, array) => array.findIndex((item2) => item1.functionBody === item2.functionBody) === index);\r\n\r\n // jinak se grupuje podle zadaného atributu v těle requestu\r\n return group.filter((item1, index, array) => array.findIndex((item2) => item1.functionBody[bodyGroupParam] === item2.functionBody[bodyGroupParam]) === index);\r\n }\r\n\r\n private _processGroup(group: IServiceRequest[]): void {\r\n // odstraní se duplicitní položky grupovaného dotazu\r\n const uniqueGroup = this._filterGroupUnique(group);\r\n\r\n const firstItem = uniqueGroup[0];\r\n const groupingParams = firstItem.groupingParams;\r\n\r\n const items = [];\r\n for (const grp of uniqueGroup) {\r\n items.push(grp.functionBody);\r\n }\r\n\r\n let functionBody: any = {};\r\n if (groupingParams.groupedAttrName)\r\n functionBody[groupingParams.groupedAttrName] = items;\r\n else\r\n functionBody = items;\r\n\r\n this.jsonRequest(\r\n firstItem.functionName,\r\n functionBody,\r\n firstItem.callParams ? firstItem.callParams.requestMethod : undefined,\r\n firstItem.callParams ? firstItem.callParams.serviceName : undefined,\r\n undefined,\r\n {\r\n roles: firstItem.roles,\r\n rightsSettingsVersion: firstItem.rightsSettingsVersion,\r\n cancellationToken: CancellationToken.none,\r\n getTransactionContextId: () => firstItem.transactionContextId, //TODO: #34235\r\n },\r\n ).then((data) => {\r\n const foundItems = groupingParams.resultGroupedAttrName ? data[groupingParams.resultGroupedAttrName] : data;\r\n for (const dt of foundItems) {\r\n for (const request of group) {\r\n if (request.cancellationToken.cancellationRequested) {\r\n request.result.reject(this._cancelError);\r\n continue;\r\n }\r\n\r\n const gp = request.groupingParams;\r\n if (!request.resolved && (gp.groupByBodyAttr ? request.functionBody[gp.groupByBodyAttr] : request.functionBody).toUpperCase() === dt[gp.resultIDParameterName].toUpperCase()) {\r\n request.result.resolve(dt);\r\n request.resolved = true;\r\n }\r\n }\r\n }\r\n\r\n for (const grp of group) {\r\n if (!grp.resolved) // zrušení requestů, které nějakou chybou nebyly dokončeny (alespoň nezůstanou viset donekonečna)\r\n grp.result.reject(`Response doesn't contain data for grouped request of FunctionName: ${grp.functionName} and FunctionBody: ${grp.functionBody}`); //`\r\n }\r\n }).catch((err: any) => {\r\n group.forEach((request) => {\r\n request.result.reject(request.cancellationToken.cancellationRequested ? this._cancelError : err);\r\n });\r\n });\r\n }\r\n\r\n private _processUniqueGroup(group: IServiceRequest[]): void {\r\n if (group == null || group.length === 0)\r\n return;\r\n\r\n const request = group[0];\r\n\r\n this.jsonRequest(\r\n request.functionName,\r\n request.functionBody,\r\n request.callParams ? request.callParams.requestMethod : undefined,\r\n request.callParams ? request.callParams.serviceName : undefined,\r\n undefined,\r\n {\r\n roles: request.roles,\r\n cancellationToken: CancellationToken.none,\r\n getTransactionContextId: () => request.transactionContextId,\r\n },\r\n ).then((data) => {\r\n group.forEach((r) => {\r\n if (r.cancellationToken.cancellationRequested) {\r\n r.result.reject(this._cancelError);\r\n return;\r\n }\r\n r.result.resolve(data);\r\n });\r\n }).catch((err: any) => {\r\n group.forEach((r) => {\r\n r.result.reject(r.cancellationToken.cancellationRequested ? this._cancelError : err);\r\n });\r\n });\r\n }\r\n\r\n private _processUngrouped(request: IServiceRequest): void {\r\n if (request.cancellationToken.cancellationRequested) {\r\n request.result.reject(this._cancelError);\r\n return;\r\n }\r\n\r\n this.jsonRequest(\r\n request.functionName,\r\n request.functionBody,\r\n request.callParams ? request.callParams.requestMethod : undefined,\r\n request.callParams ? request.callParams.serviceName : undefined,\r\n undefined,\r\n {\r\n roles: request.roles,\r\n cancellationToken: request.cancellationToken,\r\n getTransactionContextId: () => request.transactionContextId,\r\n },\r\n ).then((data) => {\r\n request.result.resolve(data);\r\n }).catch((err: any) => {\r\n request.result.reject(request.cancellationToken.cancellationRequested ? this._cancelError : err);\r\n });\r\n }\r\n\r\n private _groupBy<T>(array: T[], f: (item: T) => any): T[][] {\r\n const groups: any = {};\r\n array.forEach(function(o) {\r\n const group = JSON.stringify(f(o));\r\n groups[group] = groups[group] || [];\r\n groups[group].push(o);\r\n });\r\n return Object.keys(groups).map(function(group) {\r\n return groups[group];\r\n });\r\n }\r\n\r\n /**\r\n * Method checks if there is some request with the context ID to be send. If so, it creates a waiting promise that is resolved when all requests with the context ID are send.\r\n * @param contextId The context ID.\r\n */\r\n public async waitForContextRequests(contextId: string): Promise<void> {\r\n const requestsWithContext = this._mapOfRequestsWithContext.get(contextId);\r\n\r\n if (!requestsWithContext) {\r\n return;\r\n }\r\n\r\n const waitingPromise = PromiseUtils.defer<void>();\r\n requestsWithContext.promise = waitingPromise;\r\n\r\n await waitingPromise.promise;\r\n }\r\n\r\n private _manageRequestsAndContextMap(request: IServiceRequest): void {\r\n if (request.transactionContextId) {\r\n const requestsWithContext = this._mapOfRequestsWithContext.get(request.transactionContextId);\r\n if (requestsWithContext) {\r\n requestsWithContext.requestCounter--;\r\n if (requestsWithContext.requestCounter <= 0) {\r\n requestsWithContext.promise?.resolve();\r\n this._mapOfRequestsWithContext.delete(request.transactionContextId);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { RequestContext } from \"@multiweb/types/multiweb\";\r\nimport { ASServices } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { CommunicationManager } from \"./CommunicationManager\";\r\n\r\nexport class LegacyUpTo2101CommunicationManager extends CommunicationManager {\r\n private _postOverrides: { [key: string]: (_functionName: string, _service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, _priority?: number, _requestContext?: RequestContext) => Promise<any> } = {\r\n \"GetRoleDefaultRights\": this._getRoleDefaultRights,\r\n \"Run\": this._runMethod,\r\n };\r\n\r\n public override callPOSTRequest(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, priority?: number, requestContext?: RequestContext): Promise<any> {\r\n const func = this._postOverrides[functionName];\r\n if (func) {\r\n return func(functionName, service, urlParameters, functionBody, priority, requestContext);\r\n }\r\n return super.callPOSTRequest(functionName, service, urlParameters, functionBody, priority, requestContext);\r\n }\r\n\r\n private _getRoleDefaultRights(_functionName: string, _service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, _priority?: number, _requestContext?: RequestContext): Promise<any> {\r\n return Promise.resolve({\r\n name: urlParameters.objectName,\r\n rights: functionBody.RoleIDs.map((rid: number) => {\r\n return {\r\n id: rid,\r\n visible: true,\r\n enabled: true,\r\n required: false,\r\n postponedRequired: false,\r\n recommended: false,\r\n executable: true,\r\n executableInEdit: false,\r\n notInDB: true,\r\n };\r\n }),\r\n });\r\n }\r\n\r\n private _runMethod(functionName: string, service: ASServices, urlParameters?: { [paramName: string]: any }, functionBody?: any, priority?: number, requestContext?: RequestContext): Promise<any> {\r\n switch (urlParameters.className + \":\" + urlParameters.methodName) {\r\n case \"UserProfile:LoadFavoriteForms\":\r\n return Promise.resolve(JSON.stringify({ forms: [] }));\r\n case \"UserProfile:SaveFavoriteForms\":\r\n return Promise.resolve(false);\r\n default:\r\n return super.callPOSTRequest(functionName, service, urlParameters, functionBody, priority, requestContext);\r\n }\r\n }\r\n}\r\n","import { isVersionOlderOrEqual } from \"Global/Base/Utils/versionUtils\";\r\nimport { ICommunicationManager } from \"../ICommunicationManager\";\r\nimport { CommunicationManager } from \"./CommunicationManager\";\r\nimport { LegacyUpTo2101CommunicationManager } from \"./LegacyUpTo2101CommunicationManager\";\r\n\r\nexport function defaultFactory(webServiceUrl: string, webServiceVersion?: string): ICommunicationManager {\r\n return isVersionOlderOrEqual(webServiceVersion, \"21.01\") ?\r\n new LegacyUpTo2101CommunicationManager(webServiceUrl)\r\n : new CommunicationManager(webServiceUrl);\r\n}\r\n","import { ICommunicationManager } from \"OW.Remoting/Remoting/ICommunicationManager\";\r\n\r\nexport abstract class BaseClient {\r\n protected readonly _communicationManager: ICommunicationManager;\r\n\r\n constructor(communicationManager: ICommunicationManager) {\r\n this._communicationManager = communicationManager;\r\n }\r\n}\r\n","export const TWO_AUTH_RESPONSE_CODES: ReadonlyArray<string> = [\r\n \"OTPSmsRequired\",\r\n \"OTPEmailRequired\",\r\n \"TOTPRequired\",\r\n];\r\n\r\nexport const SESSION_ERROR_RESPONSE_CODES: ReadonlyArray<string> = [\r\n \"NoCookieError\",\r\n \"RemoveCookieError\",\r\n \"PasswordExpired\",\r\n \"PasswordChangeRequired\",\r\n \"PasswordChangeFailed\",\r\n \"UserMustChangePassword\",\r\n \"PasswordChangeMismatchedPolicy\",\r\n \"PasswordChangeWrongOldPassword\",\r\n \"AccountExpired\",\r\n \"AccountLocked\",\r\n \"AccountBlocked\",\r\n \"AccountNotActivated\",\r\n \"AccessDenied\",\r\n \"UserNotFound\",\r\n \"EmptyUserName\",\r\n \"InvalidDomain\",\r\n \"InvalidUserName\",\r\n \"TooManyUsersLoggedIn\",\r\n \"UserLoggedInTooManyTimes\",\r\n ...TWO_AUTH_RESPONSE_CODES,\r\n \"OnlyOneAppPerBrowser\",\r\n \"LogonLimitExceeded\",\r\n \"Invalid2FAKey\",\r\n \"KeyExpired\",\r\n \"KeyLimitExceeded\",\r\n \"DBError\",\r\n \"InvalidToken\",\r\n \"Unknown\",\r\n \"ERROR\",\r\n \"NULL\",\r\n];\r\n\r\nexport const SESSION_RESET_RESPONSE_CODE = \"SESSION_RESET\";\r\n","import {\r\n CheckLoginResultData,\r\n IAuthClient,\r\n IChangePasswordParams,\r\n ICheckLoginParams,\r\n ILoginCredentials,\r\n LoginResultData,\r\n} from \"@multiweb/clients/auth\";\r\nimport { LoginResult } from \"@multiweb/types/contracts/auth\";\r\nimport { HeadersBuilder } from \"Global/Base/Comunication/HeadersBuilder\";\r\nimport { HTTPRequest } from \"Global/Base/Comunication/HTTPRequest\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { ASServices } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { ICommunicationManager } from \"OW.Remoting/Remoting/ICommunicationManager\";\r\nimport { getCancellationTokenAsRequestContext } from \"../../../RequestContext\";\r\nimport { BaseClient } from \"../BaseClient\";\r\nimport { SESSION_ERROR_RESPONSE_CODES, SESSION_RESET_RESPONSE_CODE } from \"./types\";\r\n\r\n/**\r\n * Není použita anotace \"internal\", protože implementace se používá v Samples.\r\n */\r\nexport abstract class AuthClient extends BaseClient implements IAuthClient {\r\n private readonly _webServiceUrl: string;\r\n private readonly _useLegacyApi?: boolean;\r\n\r\n /**\r\n * @param webServiceUrl Adresa webové služby, se kterou se má komunikovat\r\n * @param useLegacyApi Příznak určující zda se má komunikovat se starším rozhraním webové služby\r\n */\r\n constructor(communicationManager: ICommunicationManager, webServiceUrl: string, useLegacyApi?: boolean) {\r\n super(communicationManager);\r\n this._webServiceUrl = webServiceUrl;\r\n this._useLegacyApi = useLegacyApi;\r\n }\r\n\r\n public abstract login(credentials: ILoginCredentials, cancellationToken: CancellationToken): Promise<LoginResultData>;\r\n public abstract changeExpiredPassword(params: IChangePasswordParams, cancellationToken: CancellationToken): Promise<void>;\r\n\r\n public redirectToLoginPage(clientCode: string, queryString?: string): void {\r\n const url = this._useLegacyApi ? new URL(\"login\", location.href) : new URL(`${this._webServiceUrl}/api/v02/as/auth/login`);\r\n\r\n if (!this._useLegacyApi)\r\n url.searchParams.append(\"clientName\", clientCode);\r\n\r\n const searchParams = new URLSearchParams(queryString);\r\n searchParams.forEach((value, key) => url.searchParams.append(key, value));\r\n\r\n location.assign(url.href);\r\n }\r\n\r\n public async loginAnonymously(language: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n return await this._communicationManager.callGETRequest(\"Login\", ASServices.owManager, { language: language }, undefined, getCancellationTokenAsRequestContext(cancellationToken));\r\n }\r\n\r\n public async logout(clientCode: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n if (this._useLegacyApi) {\r\n await this._communicationManager.callPOSTRequest(\"Logout\", ASServices.owManager, undefined, undefined, undefined, getCancellationTokenAsRequestContext(cancellationToken));\r\n location.assign(\"logout\");\r\n } else {\r\n location.assign(`${this._webServiceUrl}/api/v02/as/auth/logout?clientName=${clientCode}`);\r\n }\r\n return \"\";\r\n }\r\n\r\n public async checkLogin(params: ICheckLoginParams, cancellationToken: CancellationToken = CancellationToken.none): Promise<CheckLoginResultData> {\r\n const result = await this._checkLogin(params, cancellationToken);\r\n\r\n if (result.startsWith(\"<!DOCTYPE html\")) // z nějakého důvodu když server vrátí chybovou stránku se statusem 401, tak v js je status pořád 200 (OK)\r\n throw new Error(\"CheckLogon failed. Server responded with error html page.\");\r\n\r\n for (const status of SESSION_ERROR_RESPONSE_CODES) {\r\n if (result.startsWith(status))\r\n return { isLoggedIn: false, authId: null };\r\n }\r\n\r\n if (result === SESSION_RESET_RESPONSE_CODE)\r\n return await this.checkLogin(params, cancellationToken);\r\n\r\n const pair = result.split(\"\\n\")[1];\r\n const authId = pair.split(\"|\")[1];\r\n\r\n return {\r\n isLoggedIn: true,\r\n authId,\r\n };\r\n }\r\n\r\n protected _checkLogin(params: ICheckLoginParams, cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n const handlerUrl = `${this._webServiceUrl}${this._useLegacyApi ? \"/handlers/auth/CheckLogon.aspx\" : \"/api/v01/as/auth/check\"}?winAuth=${params.winAuth}&sso=${params.sso}`;\r\n\r\n return HTTPRequest.request(\"POST\", handlerUrl, undefined, undefined, undefined, undefined, cancellationToken);\r\n }\r\n\r\n //#region Serializers, Deserializers\r\n protected _deserializeLoginResult(jsonLoginResultObject: number): LoginResult {\r\n return jsonLoginResultObject;\r\n }\r\n //#endregion Serializers, Deserializers\r\n\r\n //#region Soap\r\n protected _buildSoapRequestData(functionName: string, functionBody: string): string {\r\n return `<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n <soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">\r\n <soap12:Body>\r\n <${functionName} xmlns=\"http://tescosw.cz/\">\r\n ${functionBody}\r\n </${functionName}>\r\n </soap12:Body>\r\n </soap12:Envelope>`;\r\n }\r\n\r\n protected async _postSoapOnLogonService(functionName: string, functionBody: string, cancellationToken: CancellationToken): Promise<any> {\r\n const xmlData = this._buildSoapRequestData(functionName, functionBody);\r\n const headers = new HeadersBuilder({ \"Content-Type\": \"application/soap+xml; charset=utf-8\", \"SOAPAction\": `http://tescosw.cz/${functionName}` });\r\n return await HTTPRequest.request(\"POST\", `${this._webServiceUrl}/LogonService.asmx?op=${functionName}`, xmlData, headers, undefined, undefined, cancellationToken);\r\n }\r\n //#endregion Soap\r\n\r\n //#region XmlUtilityMethods\r\n protected _parseXml(xml: string): Document {\r\n return new DOMParser().parseFromString(xml, \"text/xml\");\r\n }\r\n\r\n protected _getAttributeValue(xml: string, attribute: string): string {\r\n return this._parseXml(xml).getElementsByTagName(attribute)[0].innerHTML;\r\n }\r\n //#endregion XmlUtilityMethods\r\n}\r\n","import { IChangePasswordParams, ILoginCredentials, LoginResultData } from \"@multiweb/clients/auth\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { ASServices } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { getCancellationTokenAsRequestContext } from \"../../../RequestContext\";\r\nimport { AuthClient } from \"./AuthClient\";\r\nimport { SESSION_RESET_RESPONSE_CODE } from \"./types\";\r\n\r\n/**\r\n * Není použita anotace \"internal\", protože implementace se používá v Samples.\r\n */\r\nexport class ASAuthClient extends AuthClient {\r\n public override async login(credentials: ILoginCredentials, cancellationToken: CancellationToken = CancellationToken.none): Promise<LoginResultData> {\r\n let result = await this._login(credentials, cancellationToken);\r\n if (result === SESSION_RESET_RESPONSE_CODE)\r\n result = await this._login(credentials, cancellationToken);\r\n\r\n const parts = result.split(\"|\");\r\n if (parts.length < 2)\r\n throw Error(`Invalid login response: ${result}`);\r\n\r\n return { result: parts[0], authId: parts[1] };\r\n }\r\n\r\n private _login(credentials: ILoginCredentials, cancellationToken: CancellationToken): Promise<string> {\r\n const data = { username: credentials.userName, password: credentials.password, addParams: \"\" };\r\n return this._communicationManager.callPOSTRequest(\"Login\", ASServices.owManager, { language: credentials.language }, data, undefined, getCancellationTokenAsRequestContext(cancellationToken)) as Promise<string>;\r\n }\r\n\r\n public override async changeExpiredPassword(params: IChangePasswordParams, cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n const data = { username: params.userName, oldPassword: params.oldPassword, newPassword: params.newPassword, addParams: \"\" };\r\n await this._communicationManager.callPOSTRequest(\"ChangeExpiredPassword\", ASServices.owManager, { language: params.language }, data, undefined, getCancellationTokenAsRequestContext(cancellationToken));\r\n }\r\n}\r\n","import { IAuthClient } from \"@multiweb/clients/auth\";\r\nimport { isVersionOlderOrEqual } from \"Global/Base/Utils/versionUtils\";\r\nimport { ICommunicationManager } from \"OW.Remoting/Remoting/ICommunicationManager\";\r\nimport { ASAuthClient } from \"./ASAuthClient\";\r\n\r\nexport function defaultFactory(communicationManager: ICommunicationManager, webServiceUrl: string, webServiceVersion?: string): IAuthClient {\r\n return new ASAuthClient(communicationManager, webServiceUrl, isVersionOlderOrEqual(webServiceVersion, \"15.03\"));\r\n}\r\n\r\nexport { ASAuthClient };\r\n","import { ClientType, FactoryFunction, IClientFactory } from \"@multiweb/clients/index\";\r\nimport { DIContainer } from \"Global/Base/DIContainer\";\r\n\r\nconst REGISTER_SINGLETONS = true;\r\nconst REGISTRATION_PREFIX = \"API#\";\r\n\r\n/**\r\n * Pro uchovávání implementací klientů používá standardní _DIContainer_.\r\n * Jako klíče jsou používané řetězce z enumu _ClientType_ a pro jistotu prefixované _REGISTRATION_PREFIX_.\r\n * Implementace jsou singletony (vždy je vrácena stejná instance).\r\n */\r\nexport class ClientFactory implements IClientFactory {\r\n private _container = DIContainer.instance;\r\n\r\n public register(clientType: ClientType | string, factory: FactoryFunction): void {\r\n this._container.registerFactory(this._createIdentifier(clientType), factory, REGISTER_SINGLETONS);\r\n }\r\n\r\n public get(clientType: ClientType | string): unknown {\r\n return this._container.create(this._createIdentifier(clientType));\r\n }\r\n\r\n private _createIdentifier(clientType: ClientType | string): string {\r\n return `${REGISTRATION_PREFIX}${clientType}`;\r\n }\r\n}\r\n","import { IContextClient } from \"@multiweb/clients/context/IContextClient\";\r\nimport { CancellationToken } from \"@multiweb/types/multiweb\";\r\nimport { ASServices, getServiceURL } from \"OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { BaseClient } from \"../BaseClient\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class ContextClient extends BaseClient implements IContextClient {\r\n public createContext(cancellationToken?: CancellationToken): Promise<string> {\r\n return this._communicationManager.callGETRequest(\"CreateContext\", ASServices.context, undefined, undefined, { cancellationToken });\r\n }\r\n\r\n public async commitContext(contextId: string, cancellationToken?: CancellationToken): Promise<boolean> {\r\n await this._communicationManager.waitForContextRequests(contextId);\r\n\r\n return this._communicationManager.jsonRequest(\r\n \"CommitContext\",\r\n undefined,\r\n \"GET\",\r\n getServiceURL(ASServices.context),\r\n {\r\n ContextID: contextId,\r\n },\r\n { cancellationToken }) as Promise<boolean>;\r\n }\r\n\r\n public async rollbackContext(contextId: string, cancellationToken?: CancellationToken): Promise<boolean> {\r\n await this._communicationManager.waitForContextRequests(contextId);\r\n\r\n return this._communicationManager.jsonRequest(\r\n \"RollbackContext\",\r\n undefined,\r\n \"GET\",\r\n getServiceURL(ASServices.context),\r\n {\r\n ContextID: contextId,\r\n },\r\n { cancellationToken }) as Promise<boolean>;\r\n }\r\n}\r\n","import { IContextClient } from \"@multiweb/clients/context\";\r\nimport { ICommunicationManager } from \"OW.Remoting/Remoting/ICommunicationManager\";\r\nimport { ContextClient } from \"./ContextClient\";\r\n\r\nexport function defaultFactory(communicationManager: ICommunicationManager): IContextClient {\r\n return new ContextClient(communicationManager);\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.core);\r\n\r\n/**\r\n * TODO-rites\r\n */\r\nexport class LogicalOperations {\r\n public static binaryOperation(operator: LogicalOperator, operandA: boolean, operandB: boolean): boolean {\r\n switch (operator) {\r\n case LogicalOperator.and:\r\n return LogicalOperations._logicalAnd(operandA, operandB);\r\n case LogicalOperator.or:\r\n return LogicalOperations._logicalOr(operandA, operandB);\r\n default:\r\n logger.log(\"Performing unknown logical operation. Returning false.\");\r\n return false; // TODO-rites: false?\r\n }\r\n }\r\n\r\n //TODO-rites: zkontrolovat jako to ladí s binaryOperationOverFunctions\r\n public static binaryOperationOverRange(operator: LogicalOperator, operands: boolean[]): boolean | null {\r\n const operandsCount = operands.length;\r\n if (operandsCount <= 0)\r\n return null;\r\n const terminator: ArnoldSchwarzenegger = LogicalOperations._getMinimalEvaluationTerminator(operator);\r\n\r\n let result = operands[0];\r\n\r\n for (let i = 1; i < operandsCount; ++i) {\r\n const operand = operands[i];\r\n if (operand == null)\r\n continue;\r\n\r\n if (result === terminator)\r\n return result;\r\n\r\n const subResult: boolean | null = LogicalOperations.binaryOperation(operator, result, operand);\r\n\r\n if (subResult != null)\r\n result = subResult;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static binaryOperationOverFunctions(operator: LogicalOperator, functions: (() => boolean)[]): boolean | null {\r\n const functionsCount = functions.length;\r\n if (functionsCount <= 0)\r\n return null;\r\n const terminator: ArnoldSchwarzenegger = LogicalOperations._getMinimalEvaluationTerminator(operator);\r\n\r\n let result = functions[0]();\r\n\r\n for (let i = 1; i < functionsCount; ++i) {\r\n const functionResult = functions[i]();\r\n if (functionResult == null)\r\n continue;\r\n\r\n if (result === terminator && terminator != null)\r\n return result;\r\n\r\n let subResult: boolean | null;\r\n if (result == null) // Pokud je výsledek první funkce null, nemá smysl ho kombinovat s výsledkem aktuální funkce\r\n subResult = functionResult;\r\n else\r\n subResult = LogicalOperations.binaryOperation(operator, result, functionResult);\r\n\r\n if (subResult != null)\r\n result = subResult;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public static async binaryOperationOverAsyncFunctions(operator: LogicalOperator, asyncFunctions: (() => Promise<boolean> | boolean)[]): Promise<boolean | null> {\r\n const functionsCount = asyncFunctions.length;\r\n if (functionsCount <= 0)\r\n return null;\r\n const terminator: ArnoldSchwarzenegger = LogicalOperations._getMinimalEvaluationTerminator(operator);\r\n\r\n //TODO-rites: zvážit možnost nechat vyhodnotit overrides(nebo obecně async funkce) paralelně - Promise.all\r\n\r\n let result = await asyncFunctions[0]();\r\n\r\n for (let i = 1; i < functionsCount; ++i) {\r\n const functionResult = await asyncFunctions[i]();\r\n if (functionResult == null)\r\n continue;\r\n\r\n if (result === terminator && terminator != null)\r\n return result;\r\n\r\n let subResult: boolean | null;\r\n if (result == null) // Pokud je výsledek první funkce null, nemá smysl ho kombinovat s výsledkem aktuální funkce\r\n subResult = functionResult;\r\n else\r\n subResult = LogicalOperations.binaryOperation(operator, result, functionResult);\r\n\r\n if (subResult != null)\r\n result = subResult;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private static _getMinimalEvaluationTerminator(operator: LogicalOperator): boolean | null {\r\n switch (operator) {\r\n case LogicalOperator.and:\r\n return false;\r\n case LogicalOperator.or:\r\n return true;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private static _logicalAnd(operandA: boolean, operandB: boolean): boolean {\r\n return operandA && operandB;\r\n }\r\n\r\n private static _logicalOr(operandA: boolean, operandB: boolean): boolean {\r\n return operandA || operandB;\r\n }\r\n}\r\n\r\nexport enum LogicalOperator {\r\n and,\r\n or,\r\n}\r\n\r\nexport type ArnoldSchwarzenegger = boolean | null;\r\n","import { LogicalOperator } from \"../LogicalOperations\";\r\n// TODO-rites: doplnit dokumentaci\r\nexport type AbstractClass<T> = Function & { prototype: T };\r\nexport type Class<T> = new (...params: any[]) => T;\r\n\r\nexport type OverridableType<T> = AbstractClass<T> | Class<T>; // TODO-rites: finalize a dokumentace\r\n\r\ntype SyncEvaluationFunction<TComponent, TBasicRightResult, TAllBasicRightsResult> = (component: TComponent, basicRightResult: TBasicRightResult, allBasicRightsResult: TAllBasicRightsResult) => boolean;\r\n\r\ntype AsyncEvaluationFunction<TComponent, TBasicRightResult, TAllBasicRightsResult> = (component: TComponent, basicRightResult: TBasicRightResult, allBasicRightsResult: TAllBasicRightsResult) => Promise<boolean>;\r\n\r\nexport type EvaluationFunctionType<TComponent, TBasicRightResult, TAllBasicRightsResult> = SyncEvaluationFunction<TComponent, TBasicRightResult, TAllBasicRightsResult> | AsyncEvaluationFunction<TComponent, TBasicRightResult, TAllBasicRightsResult>;\r\n\r\n/**\r\n * Umožňuje upravovat výsledek vyhodnocení práv pro různé objekty, nad kterými se práva vyhodnocují\r\n * @includeToDoc\r\n */\r\nexport interface IRightsEvaluationOverrides<TRightType, TComponent, TBasicRightResult, TAllBasicRightsResult> {\r\n /**\r\n * Zda se nad daným typem nemají vyhodnocovat práva\r\n * @param typeIdentifier Kontrolovaný typ\r\n */\r\n isIgnored<TComponentType>(typeIdentifier: OverridableType<TComponentType>): boolean;\r\n\r\n /**\r\n * Vrací logický operátor, který se má použít pro předaný typ práva mezi jednotlivými override funkcemi nad jednou komponentou\r\n * @param rightType Typ práva, pro který chceme vrátit operátor\r\n */\r\n getOperatorForRightType(rightType: TRightType): LogicalOperator | null;\r\n\r\n /**\r\n * Vrátí kolekci funkcí, které upravují výsledek vyhodnocení práva nad daným typem\r\n * @param typeIdentifier Kontrolovaný typ\r\n */\r\n getOverridesForComponent(controlWrapper: TComponent): IRightTypeEvaluationFunction<TRightType, TComponent, TBasicRightResult, TAllBasicRightsResult>[];\r\n}\r\n\r\n/**\r\n * Funkce, která upravuje výsledek vyhodnocení práva\r\n * @includeToDoc\r\n */\r\nexport interface IRightTypeEvaluationFunction<TRightType, TComponent, TBasicRightResult, TAllBasicRightsResult> {\r\n /** Type vyhodnocovaného práva */\r\n rightType: TRightType;\r\n /** Funkce, která upravuje výsledek vyhodnocení práva nad předaným prvkem */\r\n evaluationFunction: EvaluationFunctionType<TComponent, TBasicRightResult, TAllBasicRightsResult>;\r\n}\r\n\r\n/**\r\n * Informace o typu, pro který lze registrovat override funkce\r\n * @includeToDoc\r\n */\r\nexport interface IOverridableTypeInfo {\r\n /**\r\n * Registrovaný typ\r\n */\r\n overrideType: OverridableType<any>;\r\n /**\r\n * Příznak, zda je tento typ interface\r\n */\r\n isInterface?: boolean;\r\n}\r\n","/**\r\n * Typ menu v toolbaru\r\n */\r\nexport enum MenuType {\r\n mtForm,\r\n mtPrint,\r\n mtActions,\r\n mtConditionForm,\r\n mtWorkflow,\r\n mtHelp,\r\n mtNone,\r\n mtRecord,\r\n mtFormControl,\r\n mtCancelSave,\r\n mtStandardAction,\r\n mtRecordNavigation,\r\n mtFilter,\r\n mtInfo,\r\n mtSettings,\r\n mtFrameMenu,\r\n}\r\n","/** Výčet hodnot kurzoru pro formulářové komponenty */\r\nexport enum Cursor {\r\n initial = \"initial\",\r\n pointer = \"pointer\",\r\n default = \"default\",\r\n}\r\n","/**\r\n * Vrací textovou hodnotu atributu z elementu práv. Pokud atributu neexistuje vrací `undefined`.\r\n * @param e Element ve kterém se má hledat atribut práv\r\n * @param key Název hledaného atributu\r\n */\r\nexport const parseRightElementAttribute = <TKey extends string>(e: Element, key: TKey): string | undefined => {\r\n if (!e?.attributes?.getNamedItem(key))\r\n return undefined;\r\n else\r\n return e.attributes.getNamedItem(key)!.value;\r\n};\r\n\r\n/**\r\n * Vrací textovou hodnotu atributu z elementu práv. Pokud atributu neexistuje vyhazuje výjimku.\r\n * @param e Element ve kterém se má hledat atribut práv\r\n * @param key Název hledaného atributu\r\n */\r\nexport const parseRequiredRightElementAttribute = <TKey extends string>(e: Element, key: TKey): string => {\r\n const attrValue = parseRightElementAttribute(e, key);\r\n if (attrValue === undefined)\r\n throw new Error(\"Cannot create instance of ItemRights. Some required attributes are missing\");\r\n return attrValue;\r\n};\r\n","import { parseRequiredRightElementAttribute, parseRightElementAttribute } from \"UI/UI/Rights/Utils\";\r\nimport { DataConverter } from \"../Converters/DataConverter\";\r\n\r\n/**\r\n * Typy práv aplikovatelné na komponenty - vyjádřené jako flagy\r\n */\r\nexport enum RightType {\r\n read = 1 << 0, //TODO-rites: bude potřeba??\r\n insert = 1 << 1,\r\n edit = 1 << 2,\r\n delete = 1 << 3,\r\n visible = 1 << 4,\r\n enabled = 1 << 5,\r\n required = 1 << 6,\r\n postponedRequired = 1 << 7,\r\n recommended = 1 << 8,\r\n closeForm = 1 << 9,\r\n validateIf = 1 << 10,\r\n confirmIf = 1 << 11,\r\n useDigitalSign = 1 << 12,\r\n useEncryption = 1 << 13,\r\n useDecryption = 1 << 14,\r\n openAsEnabled = 1 << 15,\r\n editing = 1 << 16,\r\n interactive = 1 << 17,\r\n enabledVisual = 1 << 18,\r\n multiEditing = 1 << 19,\r\n editableComponentRights = enabled | visible | openAsEnabled | required | postponedRequired | recommended,\r\n actionRights = enabled | visible | openAsEnabled,\r\n}\r\n\r\n/**\r\n * Úroveň, na které je definováno právo\r\n * Stejný výčet jako RightLevel na serveru\r\n */\r\nexport enum RightLevel {\r\n classAlgorithmicLevel, //Level=0. Práva z DB pro třídu, a má algoritmickou úroveň = true (Algoritmic)\r\n classInterfaceLevel, //Level=1. Práva z DB pro třídu, a má algoritmickou úroveň = false nebo null (Interface)\r\n formDefinitionLevel, //Level=2. Práva z definice formuláře\r\n formLevel, //Level=3. Práva z DB pro formulář\r\n allRolesFormLevel, //Level=4. Práva z DB pro formulář, kde RoleID=0. Pro zpracování takových práv prvků z DB na vlastní úrovni\r\n allRolesClassAlgorithmicLevel, //Práva z DB pro třídu pro algoritmickou úroveň, kde RoleID=0\r\n allRolesClassInterfaceLevel, //Práva z DB pro třídu pro úroveň interface, kde RoleID=0\r\n allRolesSystemOperationLevel, //Práva z DB pro systémové operace, kde RoleID=0 (tabulka CSys_operace)\r\n systemOperationsLevel, //Práva z DB pro systémové operace (tabulka CSys_operace)\r\n allRolesGlobalValuesAlgorithmicLevel, //Práva z DB pro globální proměnné, kde RoleID=0 a algoritmická úroveň = true\r\n allRolesGlobalValuesInterfaceLevel, //Práva z DB pro globální proměnné, kde RoleID=0\r\n globalValuesAlgorithmicLevel, //Práva z DB pro globální proměnné, kde algoritmická úroveň = true\r\n globalValuesInterfaceLevel, //Práva z DB pro globální proměnné\r\n}\r\n\r\n/**\r\n * Definice práva pro jeden prvek\r\n */\r\nexport interface IItemRights {\r\n readonly conditionID: string | undefined;\r\n readonly isNegative: boolean | undefined;\r\n readonly level: number;\r\n readonly roleID: string | undefined;\r\n readonly value: boolean | undefined;\r\n}\r\ntype ItemRightElementKeys = \"conditionid\" | \"level\" | \"roleid\" | \"isnegative\" | \"value\";\r\nexport class ItemRights implements IItemRights {\r\n public conditionID: string | undefined;\r\n public isNegative: boolean | undefined;\r\n public level: number;\r\n public roleID: string | undefined;\r\n public value: boolean | undefined;\r\n\r\n constructor(obj: Element);\r\n constructor(roleID: string, level: number, value: boolean, conditionID?: string, isNegative?: boolean);\r\n constructor(nodeOrID: Element | string, level?: number, value?: boolean, conditionID?: string, isNegative?: boolean) {\r\n if (nodeOrID instanceof Element) {\r\n this.level = DataConverter.toNumber(parseRequiredRightElementAttribute<ItemRightElementKeys>(nodeOrID, \"level\"));\r\n this.conditionID = parseRightElementAttribute<ItemRightElementKeys>(nodeOrID, \"conditionid\");\r\n this.isNegative = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(nodeOrID, \"isnegative\"));\r\n this.roleID = parseRightElementAttribute<ItemRightElementKeys>(nodeOrID, \"roleid\");\r\n this.value = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(nodeOrID, \"value\"));\r\n } else {\r\n this.level = level!;\r\n this.conditionID = conditionID;\r\n this.isNegative = isNegative;\r\n this.roleID = nodeOrID;\r\n this.value = value;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Základní kolekce různých práv. (Charakteristická homogenitou: každé právo je typu `? ReadonlyArray<IItemRights>`.)\r\n */\r\nexport interface IBaseItemRightsCollection {\r\n readonly enabled?: ReadonlyArray<IItemRights>;\r\n readonly postponedRequired?: ReadonlyArray<IItemRights>;\r\n readonly recommended?: ReadonlyArray<IItemRights>;\r\n readonly required?: ReadonlyArray<IItemRights>;\r\n readonly visible?: ReadonlyArray<IItemRights>;\r\n readonly closeForm?: ReadonlyArray<IItemRights>;\r\n readonly validateIf?: ReadonlyArray<IItemRights>;\r\n readonly confirmIf?: ReadonlyArray<IItemRights>;\r\n readonly useDigitalSign?: ReadonlyArray<IItemRights>;\r\n readonly useEncryption?: ReadonlyArray<IItemRights>;\r\n readonly useDecryption?: ReadonlyArray<IItemRights>;\r\n readonly openAsEnabled?: ReadonlyArray<IItemRights>;\r\n}\r\n\r\n/**\r\n * Kolekce různých práv. (Doplňuje {@link IBaseItemRightsCollection} o další informace - vztažené k již existujícím právům.)\r\n */\r\nexport interface IItemRightsCollection extends IBaseItemRightsCollection {\r\n /**\r\n * Pokud není právo {@link IBaseItemRightsCollection.visible} definováno natvrdo a jeho definiciční podmínky nelze vyhodnotit, tak se vezme jako výchozí hodnota.\r\n */\r\n readonly showIfDefault: boolean | undefined;\r\n}\r\n\r\n/**\r\n * Interface pro vyhodnocená práva\r\n */\r\nexport interface IHasRights {\r\n readonly enabled?: boolean;\r\n readonly postponedRequired?: boolean;\r\n readonly recommended?: boolean;\r\n readonly required?: boolean;\r\n readonly visible?: boolean;\r\n readonly closeForm?: boolean;\r\n readonly validateIf?: boolean;\r\n readonly confirmIf?: boolean;\r\n readonly useDigitalSign?: boolean;\r\n readonly useEncryption?: boolean;\r\n readonly useDecryption?: boolean;\r\n readonly openAsEnabled?: boolean;\r\n readonly showIfDefault?: boolean;\r\n readonly isEditing?: boolean;\r\n readonly interactive?: boolean;\r\n readonly enabledVisual?: boolean;\r\n}\r\n\r\n// TODO-rites: dokumentace\r\nexport class ItemRightsForRightLevels extends Map<RightLevel, ReadonlyArray<IItemRights>> {\r\n public addItemRights(itemRights: IItemRights): this {\r\n if (itemRights.level) {\r\n const rightLevel: RightLevel = itemRights.level;\r\n const itemsArray = this.get(rightLevel);\r\n this.set(rightLevel, !itemsArray ? [itemRights] : [...itemsArray, itemRights]);\r\n }\r\n return this;\r\n }\r\n\r\n public flatten(): ReadonlyArray<IItemRights> {\r\n return this._flatten();\r\n }\r\n\r\n private _flatten(includingRightLevels?: ReadonlyArray<RightLevel>, excludingRightLevels?: ReadonlyArray<RightLevel>): ReadonlyArray<IItemRights> {\r\n let resultArray: IItemRights[] = [];\r\n\r\n for (const pair of this) {\r\n if (includingRightLevels) {\r\n if (!includingRightLevels.includes(pair[0]))\r\n continue;\r\n } else {\r\n if (excludingRightLevels && excludingRightLevels.includes(pair[0])) {\r\n continue;\r\n }\r\n }\r\n resultArray = resultArray.concat(pair[1]);\r\n }\r\n\r\n return resultArray;\r\n }\r\n\r\n public flattenIncludingOnly(...rightLevels: RightLevel[]): ReadonlyArray<IItemRights> {\r\n return this._flatten(rightLevels);\r\n }\r\n\r\n public flattenExcluding(...rightLevels: RightLevel[]): ReadonlyArray<IItemRights> {\r\n return this._flatten(undefined, rightLevels);\r\n }\r\n}\r\n\r\n/**\r\n * Instance {@link IItemRightsCollection} neobsahující žádná práva.\r\n */\r\nexport const EMPTY_ITEM_RIGHTS_COLLECTION = {} as IItemRightsCollection;\r\n","/** \"Identifikátor události je: \" */\r\nexport const LOC_KEY_ERROR_EVENT_ID = \"GUI-487438\";\r\n/** \"Kontaktujte správce aplikace a předejte mu identifikátor události.\" */\r\nexport const LOC_KEY_ERROR_NOTICE = \"GUI-487456\";\r\n/** Je nutná aktualizace */\r\nexport const LOC_KEY_ERROR_UPDATE_REQUIRED = \"GUI-621093\";\r\n/** Chybějící aplikace */\r\nexport const LOC_KEY_ERROR_MISSING_CNA_APP = \"GUI-623882\";\r\n/** Chybějící rozšíření */\r\nexport const LOC_KEY_ERROR_MISSING_CWE_EXTENSION = \"GUI-625595\";\r\n/** Neplatná podmínka filtru */\r\nexport const LOC_KEY_ERROR_INVALID_FILTER = \"GUI-691823\";\r\n/** U některého z použitých atributů není filtrování dovoleno. \\n\\nNepovolené atributy: @0 */\r\nexport const LOC_KEY_ERROR_INVALID_FILTER_ATTRIBUTE = \"GUI-692779\";\r\n/** Použitá podmínka rozšířeného filtru není validní a nelze ji použít. \\n\\nNevalidní hodnoty: @0 */\r\nexport const LOC_KEY_ERROR_INVALID_EXTENDED_FILTER_VALUES = \"GUI-691826\";\r\n/** Použitá podmínka rozšířeného filtru není validní a nelze ji použít. */\r\nexport const LOC_KEY_ERROR_INVALID_EXTENDED_FILTER = \"GUI-691824\";\r\n/** Nepodařilo se načíst žádná data */\r\nexport const LOC_KEY_ERROR_NO_DATA = \"GUI-691883\";\r\n/** Zrušte nastavené filtry a zkuste akci zopakovat. */\r\nexport const LOC_KEY_ERROR_CLEAR_AND_RETRY = \"GUI-691884\";\r\n/** V případě přetrvání problému kontaktujte správce systému. */\r\nexport const LOC_KEY_ERROR_CONTACT_ADMIN = \"GUI-691885\";\r\n/** Došlo k chybě při zpracování požadavku indexed DB. */\r\nexport const LOC_KEY_ERROR_INDEXED_BD = \"GUI-622485\";\r\n/** Pokud problém přetrváva zkuste se odhlásit a znovu přihlásit do aplikace. */\r\nexport const LOC_KEY_ERROR_RELOG_AND_RETRY = \"GUI-622486\";\r\n/** Odhlásit */\r\nexport const LOC_KEY_ERROR_LOGOUT = \"GUI-337140\";\r\n/** Uložiště je bohužel nedostupné */\r\nexport const LOC_KEY_ERROR_STORAGE_UNAVAILABLE = \"GUI-624372\";\r\n/** Se soubory nyní nelze pracovat. Zkuste se vrátit později. */\r\nexport const LOC_KEY_ERROR_FILES_UNAVAILABLE = \"GUI-624373\";\r\n/** Chyba úložiště */\r\nexport const LOC_KEY_ERROR_STORAGE_ERROR = \"GUI-624374\";\r\n/** Něco se nepovedlo. */\r\nexport const LOC_KEY_ERROR_GENERIC_FAIL = \"GUI-533187\";\r\n/** Vypadá to, že server odmítá spolupracovat. Zkuste akci zopakovat. */\r\nexport const LOC_KEY_ERROR_GENERIC_RETRY = \"GUI-533991\";\r\n/** Nejde to. */\r\nexport const LOC_KEY_ERROR_GENERIC_UNABLE = \"GUI-533167\";\r\n/** Bohužel nemáte práva pro zobrazení tohoto formuláře. */\r\nexport const LOC_KEY_ERROR_NO_RIGHTS_FORM = \"GUI-533169\";\r\n/** Definice formuláře nenalezena */\r\nexport const LOC_KEY_ERROR_FORM_DEFINITION_NOT_FOUND = \"GUI-606223\";\r\n/** Nebyl zadán název formuláře. */\r\nexport const LOC_KEY_ERROR_MISSING_FORM_NAME = \"GUI-624401\";\r\n/** Formulář '@0' se nepodařilo otevřít.\\n\\nV případě opakovaných problémů se obraťte na administrátora aplikace. */\r\nexport const LOC_KEY_ERROR_UNABLE_TO_OPEN_FORM = \"GUI-478533\";\r\n/** Záznamu není přiřazen formulář.\\n\\nV případě opakovaných problémů se obraťte na administrátora aplikace. */\r\nexport const LOC_KEY_ERROR_NO_ASSOCIATED_FORM = \"GUI-624399\";\r\n/** Zadali jste chybné jméno nebo heslo. */\r\nexport const LOC_KEY_ERROR_WRONG_CREDENTIALS = \"GUI-533185\";\r\n/** Nemáte dostatečná oprávnění pro zobrazení záznamu nebo byl záznam vymazán. */\r\nexport const LOC_KEY_ERROR_INSUFFICIENT_RIGHTS = \"GUI-611220\";\r\n/** '@0' nelze měnit. */\r\nexport const LOC_KEY_ERROR_UNABLE_TO_MODIFY = \"GUI-564867\";\r\n/** Nemáte právo provést akci. */\r\nexport const LOC_KEY_ERROR_INSUFFICIENT_RIGHTS_RUN_ACTION = \"GUI-665099\";\r\n/** Akci nebylo možné spustit. */\r\nexport const LOC_KEY_ERROR_UNABLE_TO_RUN_ACTION = \"GUI-663025\";\r\n/** Žádný z vybraných záznamů nesplňuje podmínku pro její spuštění. */\r\nexport const LOC_KEY_ERROR_CONDITION_NOT_MET = \"GUI-660137\";\r\n/** Byli jste odhlášeni z aplikace. */\r\nexport const LOC_KEY_ERROR_LOGGED_OUT = \"GUI-484396\";\r\n/** Vypršela platnost bezpečnostního tokenu. */\r\nexport const LOC_KEY_ERROR_SECURITY_TOKEN_EXPIRED = \"GUI-609463\";\r\n/** Vypadá to, že server odmítá spolupracovat. Zkuste akci zopakovat. */\r\nexport const LOC_KEY_ERROR_SERVER_UNAVAILABLE = \"GUI-533991\";\r\n/** Nepovedlo se vytvořit podpis */\r\nexport const LOC_KEY_ERROR_UNABLE_TO_CREATE_DIGITAL_SIGNATURE = \"GUI-624369\";\r\n/** Aplikace CryptoNativeApp byla ukončena. Opakujte vytvoření podpisu. */\r\nexport const LOC_KEY_ERROR_CNA_EXITED = \"GUI-624370\";\r\n/** Aplikace provedla něco, co jsme nečekali. Zkuste to znovu. V případě opakování problému se obraťte na správce systému */\r\nexport const LOC_KEY_ERROR_GENERIC_FAIL_RETRY = \"GUI-569655\";\r\n/** Chyba při vytváření konfiguračního objektu selectionParams. */\r\nexport const LOC_KEY_ERROR_CNA_SELECTIONPARAMS = \"GUI-765250\";\r\n/** Nebyl nalezen žádný certifikát odpovídající zadaným parametrům. */\r\nexport const LOC_KEY_ERROR_CNA_NO_CERTIFICATE_FOUND = \"GUI-765251\";\r\n/** Zadaným parametrům odpovídá více než 1 certifikát. */\r\nexport const LOC_KEY_ERROR_CNA_TOO_MANY_CERTIFICATES_FOUND = \"GUI-765252\";\r\n","/**\r\n * Umožňuje zachytávání chyb a jejich zpracování. Může je i prezentovat uživateli.\r\n */\r\nexport interface IErrorHandler {\r\n /**\r\n * Zachytí a zpracuje chybu.\r\n * @param error Cokoli, co může být throwable, což je prakticky cokoliv. Je však preferováno, aby šlo o Error nebo jeho potomky.\r\n */\r\n handleError(error: unknown): void;\r\n /**\r\n * Spustí zachytávání chyb z asynchronních procesů, které nebyly jinde zachycené.\r\n */\r\n activateAsyncGlobalErrorHandler(): void;\r\n}\r\n\r\nexport class IErrorHandler {\r\n protected static _properties: (keyof IErrorHandler)[] = [];\r\n\r\n protected static _methods: (keyof IErrorHandler)[] = [ \"handleError\" ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { InjectedProperty } from \"Global/Base/DIContainer\";\r\nimport { GlobalContext } from \"Global/Base/GlobalContext\";\r\nimport { IErrorHandler } from \"./IErrorHandler\";\r\n\r\n/**\r\n * Objekt sloužící pro přístup k singletonu IErrorHandler\r\n */\r\nexport class ErrorHandler {\r\n /** Instance singletonu */\r\n public static get instance(): IErrorHandler {\r\n return {} as any;\r\n }\r\n}\r\n\r\nInjectedProperty.bindProperty(ErrorHandler, \"instance\", IErrorHandler);\r\nGlobalContext.registerType(ErrorHandler);\r\n","/**\r\n * Výjimka s informacemi o neaktuální verzi extensiony a/nebo nativní aplikace\r\n * @includeToDoc\r\n */\r\nexport class EInsufficientVersionException extends Error {\r\n public readonly extensionVersionSufficient: boolean;\r\n public readonly nativeAppVersionSufficient: boolean;\r\n public readonly requiredExtensionVersion: string;\r\n public readonly installedExtensionVersion: string;\r\n public readonly requiredNativeAppVersion: string;\r\n public readonly installedNativeAppVersion: string;\r\n public readonly extensionUpdateURL: string;\r\n public readonly nativeAppUpdateURL: string;\r\n\r\n constructor(extensionVersionSufficient: boolean,\r\n nativeAppVersionSufficient: boolean,\r\n requiredExtensionVersion: string,\r\n installedExtensionVersion: string,\r\n requiredNativeAppVersion: string,\r\n installedNativeAppVersion: string,\r\n extensionUpdateURL: string,\r\n nativeAppUpdateURL: string) {\r\n let message = \"\";\r\n if (!extensionVersionSufficient)\r\n message += `Insufficient Crypto extension version. Required version is ${requiredExtensionVersion}. Installed version is ${installedExtensionVersion}.`; //`\r\n if (!nativeAppVersionSufficient)\r\n message += `${!extensionVersionSufficient ? \"\\n\" : \"\"}Insufficient Crypto native app version. Required version is ${requiredNativeAppVersion}. Installed version is ${installedNativeAppVersion}.`; //`\r\n super(message);\r\n this.extensionVersionSufficient = extensionVersionSufficient;\r\n this.nativeAppVersionSufficient = nativeAppVersionSufficient;\r\n this.requiredExtensionVersion = requiredExtensionVersion;\r\n this.installedExtensionVersion = installedExtensionVersion;\r\n this.requiredNativeAppVersion = requiredNativeAppVersion;\r\n this.installedNativeAppVersion = installedNativeAppVersion;\r\n this.extensionUpdateURL = extensionUpdateURL;\r\n this.nativeAppUpdateURL = nativeAppUpdateURL;\r\n\r\n Object.setPrototypeOf(this, EInsufficientVersionException.prototype); // ES5 pro LW\r\n }\r\n\r\n public override toString(): string {\r\n return this.message;\r\n }\r\n}\r\n\r\n/**\r\n * Obecná výjimka podepisovací aplikace\r\n * @includeToDoc\r\n */\r\nexport class NativeAppException extends Error {\r\n constructor(message?: string) {\r\n super(message);\r\n\r\n Object.setPrototypeOf(this, NativeAppException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka oznamující, že není dostupná nativní podepisovací aplikace\r\n * @includeToDoc\r\n */\r\nexport class NativeAppUnavailableException extends NativeAppException {\r\n public downloadURL: string | undefined;\r\n\r\n constructor(downloadURL?: string) {\r\n super(\"Native application unavailable\");\r\n this.downloadURL = downloadURL;\r\n\r\n Object.setPrototypeOf(this, NativeAppUnavailableException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka oznamující, že není dostupné rozšíření pro podepisování\r\n * @includeToDoc\r\n */\r\nexport class CryptoExtensionUnavailableException extends Error {\r\n public downloadURL: string | undefined;\r\n\r\n constructor(downloadURL?: string) {\r\n super(\"Crypto extension unavailable\");\r\n this.downloadURL = downloadURL;\r\n\r\n Object.setPrototypeOf(this, CryptoExtensionUnavailableException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka oznamující, že prohlížeč (IE) běží v chráněném režimu a v tom nejde pracovat s CryptoNativeApp.\r\n * @includeToDoc\r\n */\r\nexport class ProtectedModeException extends NativeAppException {\r\n constructor() {\r\n super();\r\n\r\n Object.setPrototypeOf(this, ProtectedModeException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka oznamující, že podepisovací aplikace byla ukončena\r\n * @includeToDoc\r\n */\r\nexport class NativeAppExitedException extends NativeAppException {\r\n constructor() {\r\n super();\r\n\r\n Object.setPrototypeOf(this, NativeAppExitedException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka vyvolaná při nevyplněném selectionParams\r\n * @includeToDoc\r\n */\r\nexport class NativeAppSelectionParamsException extends NativeAppException {\r\n constructor() {\r\n super();\r\n\r\n Object.setPrototypeOf(this, NativeAppSelectionParamsException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka vyvolaná pokud je specifikováno selectionParams a certifikát nebyl nalezen\r\n * @includeToDoc\r\n */\r\nexport class NativeAppNoCertificateFoundException extends NativeAppException {\r\n constructor() {\r\n super();\r\n\r\n Object.setPrototypeOf(this, NativeAppNoCertificateFoundException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka vyvolaná pokud je specifikováno selectionParams a certifikát nebyl jedinečný\r\n * @includeToDoc\r\n */\r\nexport class NativeAppTooManyCertificatesFoundException extends NativeAppException {\r\n constructor() {\r\n super();\r\n\r\n Object.setPrototypeOf(this, NativeAppTooManyCertificatesFoundException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Výjimka vyvolaná při podepisování streamu\r\n * @includeToDoc\r\n */\r\nexport class NativeAppSigningException extends NativeAppException {\r\n public override readonly name: string;\r\n public readonly streamId: string;\r\n constructor(streamId: string, name: string, err: string) {\r\n super(err);\r\n this.name = name;\r\n this.streamId = streamId;\r\n Object.setPrototypeOf(this, NativeAppSigningException.prototype); // ES5 pro LW\r\n }\r\n}\r\n\r\n/**\r\n * Kolekce výjimek, které byly vyvolány během hromadné operace.\r\n * Výjimky jsou organizovány formou dictionary, kde klíčem je objekt, který výjimku vyvolal a k tomuto objektu se eviduje pole výjimek, které vyvolal.\r\n * @includeToDoc\r\n */\r\nexport class NativeAppBulkException extends NativeAppException {\r\n private _exceptions: NativeAppSigningException[];\r\n\r\n public get hasAnyError(): boolean {\r\n return this._exceptions && this._exceptions.length > 0;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._exceptions = [];\r\n\r\n Object.setPrototypeOf(this, NativeAppBulkException.prototype); // ES5 pro LW\r\n }\r\n\r\n public addError(err: NativeAppSigningException): void {\r\n this._exceptions.push(err);\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<NativeAppSigningException> {\r\n return this._exceptions[Symbol.iterator]();\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"Logging/index\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.customElements);\r\n\r\n/**\r\n * Definice nového objektu pro práci s Custom Elementy podle https://html.spec.whatwg.org/multipage/scripting.html#custom-elements\r\n */\r\nexport interface CustomElementRegistry {\r\n define(name: string, constructor: Function, options?: ElementDefinitionOptions): void;\r\n get(name: string): typeof HTMLElement;\r\n whenDefined(name: string): Promise<void>;\r\n}\r\n\r\nexport interface ElementDefinitionOptions {\r\n extends?: string;\r\n}\r\n\r\n/**\r\n * Hledá první rodičovský element předaného elementu, který odpovídá zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector, první vyhovující rodič je vrácen nebo null\r\n */\r\nexport function findParent(startElement: HTMLElement, comparePredicate: string | ((el: HTMLElement) => boolean)): HTMLElement | null {\r\n if (startElement.parentElement == null)\r\n return null;\r\n\r\n if (typeof comparePredicate === \"string\") {\r\n if (startElement.parentElement.matches(comparePredicate))\r\n return startElement.parentElement;\r\n } else {\r\n if (comparePredicate(startElement.parentElement))\r\n return startElement.parentElement;\r\n }\r\n\r\n return findParent(startElement.parentElement, comparePredicate);\r\n}\r\n\r\n/**\r\n * Hledá, zda existuje nějaký rodičovský element předaného elementu, který odpovídá zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector\r\n */\r\nexport function hasParent(startElement: HTMLElement, comparePredicate: string | ((el: HTMLElement) => boolean)): boolean {\r\n return findParent(startElement, comparePredicate) != null;\r\n}\r\n\r\n/**\r\n * Kontroluje, zda všechny rodičovské elementy předaného elementu odpovídají zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector\r\n * @param checkStartElement Kontrola začíná už na předaném startElement-u\r\n */\r\nexport function allParents(startElement: HTMLElement | null, comparePredicate: string | ((el: HTMLElement) => boolean), checkStartElement: boolean = true): boolean {\r\n const elementForCheck = checkStartElement ? startElement : startElement?.parentElement;\r\n\r\n if (elementForCheck == null)\r\n return true;\r\n\r\n if (typeof comparePredicate === \"string\") {\r\n if (!elementForCheck.matches(comparePredicate))\r\n return false;\r\n } else {\r\n if (!comparePredicate(elementForCheck))\r\n return false;\r\n }\r\n\r\n return allParents(elementForCheck.parentElement, comparePredicate, checkStartElement);\r\n}\r\n\r\nexport function customElementRegistry(): CustomElementRegistry {\r\n return (window as any).customElements as CustomElementRegistry;\r\n}\r\n\r\n/**\r\n * Zaregistruje nový Custom Element\r\n * @param name název nového elementu - musí obsahovat pomlčku\r\n * @param classObject třída nového elementu\r\n * @param doNotUseDeprecatedExtend ODSTRANĚNO ZE SPECIFIKACE - NEPOUŽÍVAT!!!\r\n * @includeToDoc\r\n */\r\nexport function registerCustomElement(name: string, classObject: typeof HTMLElement, doNotUseDeprecatedExtend?: string): void {\r\n if (customElementRegistry().get(name)) {\r\n logger.warn(`Cannot register custom element. '${name}' is already used.`);//`\r\n return;\r\n }\r\n name = name.toLowerCase();\r\n\r\n let options: ElementDefinitionOptions | undefined; // buď musí být undefined nebo objekt s property extends\r\n if (doNotUseDeprecatedExtend) {\r\n options = {\r\n extends: doNotUseDeprecatedExtend,\r\n };\r\n //logger.debug(`WARN: Using deprecated feature 'customized built-in elements'. Custom element '${name}' of class '${classObject.name}' is extending built-in element '${doNotUseDeprecatedExtend}'`);\r\n }\r\n\r\n try {\r\n customElementRegistry().define(name, classObject, options);\r\n } catch (e) {\r\n logger.warn(e);\r\n }\r\n}\r\n\r\n/**\r\n * Nakonfiguruje předaný element podle zadaných parametrů\r\n * @param el html element, který je určen ke konfiguraci\r\n * @param settings konfigurační parametry\r\n */\r\nexport function configureElement<T extends HTMLElement>(el: T, settings: ICreateElement = {}): T {\r\n if (settings == undefined)\r\n return el as T;\r\n\r\n settings.el = el;\r\n return createElement(settings) as T;\r\n}\r\n\r\n/**\r\n * Vytvoří element dle zadaných parametrů\r\n *\r\n * Parametry:\r\n * type(string) = typ elementu napr. div,input,span..., vychozi hodnota je div\r\n * classes(string|string[]) = muze obsahovat string a nebo pole stringu, ktere predstavuji nazvy prirazovanych trid\r\n * id(string) = id elementu\r\n * value(string) = pridava textovou hodnotu v zavislosti na typu elementu pokud je to input predava jako value, pokud img, video, iframe nebo source tak jako src jinak jako textContent\r\n * html(string) = predava hodnotu elementu jako HTML do innerHTML\r\n * attrs(object) = predavan jako objekt, ktery obsahuje nazev attributu a jeho hodnotu {\"data-test\": 1, title: \"ahoj\"}\r\n * css(object) = nastaveni elementu style {display: \"none\", borderRadius: 5 }\r\n * @includeToDoc\r\n */\r\nexport function createElement(setting: ICreateElement = {}): HTMLElement {\r\n if (setting == undefined)\r\n return document.createElement(\"div\");\r\n\r\n let d: HTMLElement;\r\n let ty_input = \"\";\r\n\r\n if (setting.el) { // pokud je předaný už vytvořený element, tak se použije ten a nevytváří se nový podle type\r\n d = setting.el;\r\n if (d instanceof HTMLInputElement)\r\n ty_input = d.type;\r\n } else {\r\n if (setting.type) {\r\n setting.type = setting.type.toLowerCase();\r\n\r\n if (setting.type.startsWith(\"input[\")) {\r\n const fullType = setting.type.substring(6);\r\n setting.type = \"input\";\r\n ty_input = fullType.substring(0, fullType.length - 1);\r\n }\r\n } else {\r\n setting.type = \"div\";\r\n }\r\n\r\n if (setting.type.indexOf(\"-\") >= 0) {\r\n const ctor = customElementRegistry().get(setting.type);\r\n if (!ctor)\r\n throw new Error(`Definition for ${setting.type} not found!`);\r\n d = new ctor();\r\n } else {\r\n d = document.createElement(setting.type);\r\n }\r\n }\r\n\r\n if (setting.classes != undefined) {\r\n if (setting.classes instanceof Array) {\r\n for (const cls of setting.classes) {\r\n if (cls)\r\n d.classList.add(cls);\r\n }\r\n } else {\r\n //d.classList.add(setting.classes.toString());\r\n d.className = (d.className ? d.className + \" \" : \"\") + setting.classes.toString();\r\n }\r\n }\r\n if (setting.id != undefined) {\r\n d.setAttribute(\"id\", setting.id);\r\n }\r\n\r\n if (ty_input.length > 0 && setting.type === \"input\") {\r\n (d as HTMLInputElement).type = ty_input;\r\n }\r\n\r\n if (setting.value != undefined) {\r\n if (setting.type === \"input\") {\r\n if (ty_input == \"checkbox\")\r\n (d as HTMLInputElement).checked = setting.value;\r\n else\r\n (d as HTMLInputElement).value = setting.value;\r\n } else if (setting.type == \"iframe\" || setting.type == \"img\" || setting.type == \"video\" || setting.type == \"source\" || setting.type == \"tsc-formiframe\") {\r\n (d as HTMLSourceElement).src = setting.value;\r\n } else if (setting.type == \"option\") {\r\n (d as HTMLInputElement).value = setting.value;\r\n } else\r\n d.textContent = setting.value;\r\n }\r\n\r\n if (setting.html != undefined) {\r\n d.innerHTML = setting.html;\r\n }\r\n\r\n if (setting.css != undefined) {\r\n const ok = Object.keys(setting.css) as any[];\r\n\r\n for (const attr of ok) {\r\n if (d.style[attr] != undefined) {\r\n d.style[attr] = setting.css[attr].toString();\r\n }\r\n }\r\n }\r\n\r\n if (setting.attrs != undefined) {\r\n const ok = Object.keys(setting.attrs);\r\n for (const attr of ok) {\r\n if (setting.attrs[attr] === null)\r\n d.setAttribute(attr, \"null\");\r\n else if (setting.attrs[attr] === undefined)\r\n continue;\r\n else\r\n d.setAttribute(attr, setting.attrs[attr].toString());\r\n }\r\n }\r\n\r\n return d;\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n */\r\nexport interface ICreateElement {\r\n /**\r\n * předvytvořený element, pokud existuje, tak už se nepoužije type atribut\r\n */\r\n el?: HTMLElement;\r\n /**\r\n * typ elementu (span, div, etc..), default: div\r\n */\r\n type?: string;\r\n /**\r\n * string a nebo pole stringu, ktere predstavuji nazvy trid, ktere se maji nastavit elementu\r\n */\r\n classes?: string | string[];\r\n /**\r\n * id elementu\r\n */\r\n id?: string;\r\n /**\r\n * pridavana textova hodnota v zavislosti na typu elementu:\r\n * input - nastavuje se do value\r\n * img, video, iframe nebo source - nastavuje se do src\r\n * jinak - do textContent\r\n */\r\n value?: any;\r\n /**\r\n * pridavana hodnotu elementu jako HTML do innerHTML\r\n */\r\n html?: string;\r\n /**\r\n * seznam hodnot stylu, napr. {display: \"none\", borderRadius: 5 }\r\n */\r\n css?: { [attrNam: string]: any };\r\n /**\r\n * objekt, ktery obsahuje nazev attributu a jeho hodnotu, napr. {\"data-test\": 1, title: \"ahoj\"}\r\n */\r\n attrs?: { [attrNam: string]: string };\r\n}\r\n\r\nexport function getScrollBarWidth() {\r\n const inner = document.createElement(\"p\");\r\n inner.style.width = \"100%\";\r\n inner.style.height = \"200px\";\r\n\r\n const outer = document.createElement(\"div\");\r\n outer.style.position = \"absolute\";\r\n outer.style.top = \"0px\";\r\n outer.style.left = \"0px\";\r\n outer.style.visibility = \"hidden\";\r\n outer.style.width = \"200px\";\r\n outer.style.height = \"150px\";\r\n outer.style.overflow = \"hidden\";\r\n outer.appendChild(inner);\r\n\r\n document.body.appendChild(outer);\r\n const w1 = inner.offsetWidth;\r\n outer.style.overflow = \"scroll\";\r\n let w2 = inner.offsetWidth;\r\n if (w1 == w2)\r\n w2 = outer.clientWidth;\r\n\r\n document.body.removeChild(outer);\r\n\r\n return (w1 - w2);\r\n}\r\n","export interface IBuilder<T> {\r\n build(): T;\r\n}\r\n\r\nexport interface IAsyncBuilder<T> {\r\n build(): Promise<T>;\r\n}\r\n","import { IAsyncBuilder } from \"../../../../Global/Base/Builders/IBuilder\";\r\n\r\nexport interface IContentBuilder extends IAsyncBuilder<HTMLElement> {\r\n build(): Promise<HTMLElement>;\r\n}\r\n","import { CryptoExtensionUnavailableException } from \"../../../../Cryptography/Crypto/CryptoExceptions\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * @internal\r\n */\r\nexport class CryptoExtensionUnavailableBuilder implements IContentBuilder {\r\n private readonly _exception: CryptoExtensionUnavailableException;\r\n private _content: HTMLElement;\r\n\r\n constructor(exception: CryptoExtensionUnavailableException) {\r\n this._exception = exception;\r\n }\r\n\r\n private async _buildMessageElement(): Promise<void> {\r\n const contentDiv = createElement({ classes: \"crypto-component-unavailable-content\" });\r\n\r\n const extensionMissingMessage = createElement({ type: \"span\", classes: \"crypto-component-unavailable-message\" });\r\n if (this._exception.downloadURL) {\r\n // \"Pro podepisování musíte mít ve svém prohlížeči nainstalováno rozšíření Crypto Web Extension. Aktuální verzi si můžete stáhnout na: \"\r\n extensionMissingMessage.innerText = await Localization.getTextPromise(\"GUI-625495\");\r\n contentDiv.appendChild(extensionMissingMessage);\r\n\r\n const extensionDownloadLink = createElement({\r\n type: \"a\",\r\n value: \"Crypto Web Extension\",\r\n attrs: { href: this._exception.downloadURL, target: \"_blank\" },\r\n });\r\n contentDiv.appendChild(extensionDownloadLink);\r\n } else {\r\n // \"Váš prohlížeč bohužel nepodporuje komponenty potřebné k podepisování. Použijte prosím kompatibilní prohlížeč. Aktuálně podporované prohlížeče: Google Chrome.\" // TODO: upravit seznam/link podporovaných prohlížečů\r\n extensionMissingMessage.innerText = await Localization.getTextPromise(\"GUI-625496\");\r\n contentDiv.appendChild(extensionMissingMessage);\r\n }\r\n\r\n this._content = contentDiv;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._buildMessageElement();\r\n return this._content;\r\n }\r\n}\r\n","import { NativeAppUnavailableException } from \"../../../../Cryptography/Crypto/CryptoExceptions\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * @internal\r\n */\r\nexport class CryptoNativeAppUnavailableBuilder implements IContentBuilder {\r\n private readonly _exception: NativeAppUnavailableException;\r\n private _content: HTMLElement;\r\n\r\n constructor(exception: NativeAppUnavailableException) {\r\n this._exception = exception;\r\n }\r\n\r\n private async _buildMessageElement(): Promise<void> {\r\n const contentDiv = createElement({ classes: \"crypto-component-unavailable-content\" });\r\n\r\n const nativeAppMissingMessage = createElement({ type: \"span\", classes: \"crypto-component-unavailable-message\" });\r\n // \"Pro podepisování musíte mít nainstalovanou aplikaci Crypto Native App. Aktuální verzi si můžete stáhnout na: \"\r\n nativeAppMissingMessage.innerText = await Localization.getTextPromise(\"GUI-623881\");\r\n contentDiv.appendChild(nativeAppMissingMessage);\r\n\r\n const nativeAppDownloadLink = createElement({\r\n type: \"a\",\r\n value: \"Crypto Native App\",\r\n attrs: { href: this._exception.downloadURL, target: \"_blank\" },\r\n });\r\n contentDiv.appendChild(nativeAppDownloadLink);\r\n\r\n this._content = contentDiv;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._buildMessageElement();\r\n return this._content;\r\n }\r\n}\r\n","import { EInsufficientVersionException } from \"../../../../Cryptography/Crypto/CryptoExceptions\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * @internal\r\n */\r\nexport class CryptoVersionInfoBuilder implements IContentBuilder {\r\n private _content: HTMLElement;\r\n private _versionException: EInsufficientVersionException;\r\n\r\n constructor(exception: EInsufficientVersionException) {\r\n this._versionException = exception;\r\n }\r\n\r\n private async _buildMessageElement(): Promise<void> {\r\n const contentDiv = createElement({ classes: \"crypto-version-info-content\" });\r\n\r\n if (!this._versionException.extensionVersionSufficient) {\r\n const extensionVersionMessageDiv = createElement({ classes: \"extension-version-message\" });\r\n contentDiv.appendChild(extensionVersionMessageDiv);\r\n\r\n const extensionVersionMainMessage = createElement({ classes: \"version-main-message\" });\r\n extensionVersionMainMessage.innerText = await Localization\r\n .getTextPromise(\"GUI-621094\"); // Je potřeba aktualizovat vaše Crypto Web Extension rozšíření prohlížeče\r\n\r\n const extensionVersionRequired = createElement({ classes: \"version-required\" });\r\n extensionVersionRequired.innerText = await Localization\r\n .getTextPromiseWithParams(\"GUI-621096\", [this._versionException.requiredExtensionVersion]); // Minimální vyžadovaná verze: @0\r\n\r\n const extensionVersionInstalled = createElement({ classes: \"version-installed\" });\r\n extensionVersionInstalled.innerText = await Localization\r\n .getTextPromiseWithParams(\"GUI-621097\", [this._versionException.installedExtensionVersion]); // Nainstalovaná verze: @0\r\n\r\n extensionVersionMessageDiv.appendChild(extensionVersionMainMessage);\r\n extensionVersionMessageDiv.appendChild(extensionVersionRequired);\r\n extensionVersionMessageDiv.appendChild(extensionVersionInstalled);\r\n\r\n const extensionVersionUpdate = createElement({ classes: \"version-update\" });\r\n extensionVersionUpdate.innerText = await Localization\r\n .getTextPromise(\"GUI-621098\"); // Aktuální verzi si můžete stáhnout na:\r\n const extensionVersionUpdateLink = createElement({\r\n type: \"a\",\r\n value: \"Crypto Web Extension\",\r\n attrs: { href: this._versionException.extensionUpdateURL, target: \"_blank\" },\r\n });\r\n extensionVersionUpdate.appendChild(extensionVersionUpdateLink);\r\n\r\n extensionVersionMessageDiv.appendChild(extensionVersionUpdate);\r\n }\r\n\r\n if (!this._versionException\r\n .extensionVersionSufficient &&\r\n !this._versionException.nativeAppVersionSufficient) {\r\n const messageSeparator = createElement({ classes: \"version-message-separator\" });\r\n contentDiv.appendChild(messageSeparator);\r\n }\r\n\r\n if (!this._versionException.nativeAppVersionSufficient) {\r\n const nativeAppVersionMessageDiv = createElement({ classes: \"native-version-message\" });\r\n contentDiv.appendChild(nativeAppVersionMessageDiv);\r\n\r\n const nativeAppVersionMainMessage = createElement({ classes: \"version-main-message\" });\r\n nativeAppVersionMainMessage.innerText = await Localization\r\n .getTextPromise(\"GUI-621095\"); // Je potřeba aktualizovat vaši Crypto Native App aplikaci\r\n\r\n const nativeAppVersionRequired = createElement({ classes: \"version-required\" });\r\n nativeAppVersionRequired.innerText = await Localization\r\n .getTextPromiseWithParams(\"GUI-621096\", [this._versionException.requiredNativeAppVersion]); // Minimální vyžadovaná verze: @0\r\n\r\n const nativeAppVersionInstalled = createElement({ classes: \"version-installed\" });\r\n nativeAppVersionInstalled.innerText = await Localization\r\n .getTextPromiseWithParams(\"GUI-621097\", [this._versionException.installedNativeAppVersion]); // Nainstalovaná verze: @0\r\n\r\n nativeAppVersionMessageDiv.appendChild(nativeAppVersionMainMessage);\r\n nativeAppVersionMessageDiv.appendChild(nativeAppVersionRequired);\r\n nativeAppVersionMessageDiv.appendChild(nativeAppVersionInstalled);\r\n\r\n const nativeAppVersionUpdate = createElement({ classes: \"version-update\" });\r\n nativeAppVersionUpdate.innerText = await Localization\r\n .getTextPromise(\"GUI-621098\"); // Aktuální verzi si můžete stáhnout na:\r\n const nativeAppVersionUpdateLink = createElement({\r\n type: \"a\",\r\n value: \"Crypto Native App\",\r\n attrs: { href: this._versionException.nativeAppUpdateURL, target: \"_blank\" },\r\n });\r\n nativeAppVersionUpdate.appendChild(nativeAppVersionUpdateLink);\r\n\r\n nativeAppVersionMessageDiv.appendChild(nativeAppVersionUpdate);\r\n }\r\n\r\n this._content = contentDiv;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._buildMessageElement();\r\n return this._content;\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.localizations);\r\n\r\n/**\r\n * Vytvoří textový element obsahující lokalizovaný text\r\n * @includeToDoc\r\n */\r\nexport class LocalizedStringBuilder implements IContentBuilder {\r\n private _locKey: string = \"\";\r\n private _params: string[] = [];\r\n\r\n constructor(locKey: string, params?: string[]) {\r\n this._locKey = locKey;\r\n if (params && params.length > 0)\r\n this._params = params;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n let text = await this.getPlainString();\r\n text = StringUtils.stringToHTMLText(text);\r\n\r\n if (this._params.length > 0)\r\n text = StringUtils.format(text, this._params);\r\n\r\n return createElement({\r\n html: text,\r\n });\r\n }\r\n\r\n public async getPlainString(): Promise<string> {\r\n try {\r\n return await Localization.getTextPromise(this._locKey);\r\n } catch (e) {\r\n logger.error(e);\r\n return \"???\";\r\n }\r\n }\r\n}\r\n","import { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * Vytvoří textový element obsahující předaný text\r\n * @includeToDoc\r\n */\r\nexport class StringBuilder implements IContentBuilder {\r\n private _text: string = \"\";\r\n\r\n constructor(text: string) {\r\n this._text = text;\r\n }\r\n\r\n public build(): Promise<HTMLElement> {\r\n return Promise.resolve(createElement({\r\n html: StringUtils.stringToHTMLText(this._text),\r\n }));\r\n }\r\n}\r\n","import { IResultMessage, ResultMessageType } from \"@multiweb/types/contracts\";\r\nimport { ArrayUtils } from \"../../../../Global/Base/Utils/ArrayUtils\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class UserMsgsBuilder implements IContentBuilder {\r\n private _parent: HTMLElement;\r\n private _data: IUserMsgsData[];\r\n\r\n constructor(msgs: IUserMsgsData[]) {\r\n this._data = msgs;\r\n }\r\n\r\n private async _loadData(msgs: IUserMsgsData[]): Promise<void> {\r\n this._parent = createElement({ classes: \"master-group-message\" });\r\n if (msgs.length == 1) {\r\n const msg = msgs[0];\r\n const msgGroup = new UserMsgGroup(\"\");\r\n const oneMsg = createElement({ classes: \"one-message\" });\r\n\r\n for (const item of msg.messages) {\r\n msgGroup.addItem(item);\r\n }\r\n oneMsg.innerHTML = msgGroup.contentElement.innerHTML;\r\n this._parent.appendChild(oneMsg);\r\n } else {\r\n const savedGroup = new UserMsgGroup(await Localization\r\n .getTextPromise(\"GUI-616403\")); // Informace o uložených záznamech\r\n const unsavedGroup = new UserMsgGroup(await Localization\r\n .getTextPromise(\"GUI-616405\")); // Některé záznamy jsme nemohli uložit\r\n\r\n for (const m of msgs) {\r\n const mgroup = new UserMsgGroup(m.objectIdentification);\r\n let success = true;\r\n for (const mchild of m.messages) {\r\n mgroup.addItem(mchild);\r\n if (mchild.type == ResultMessageType.error || mchild.type == ResultMessageType.recommendation)\r\n success = false;\r\n }\r\n\r\n if (success)\r\n savedGroup.addItem(mgroup);\r\n else\r\n unsavedGroup.addItem(mgroup);\r\n }\r\n\r\n savedGroup.name += ` (${savedGroup.itemCount})`;\r\n unsavedGroup.name += ` (${unsavedGroup.itemCount})`;\r\n unsavedGroup.isClosed = false;\r\n\r\n this._parent.appendChild(savedGroup.element);\r\n this._parent.appendChild(unsavedGroup.element);\r\n }\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._loadData(this._data);\r\n return this._parent;\r\n }\r\n}\r\n\r\nclass UserMsgGroup {\r\n private _contentElement: HTMLElement;\r\n private _nameElement: HTMLElement;\r\n private _itemCount: number = 0;\r\n private _items: IUserMsgItem[] = [];\r\n\r\n public get itemCount(): number {\r\n return this._itemCount;\r\n }\r\n\r\n private _element: HTMLElement;\r\n\r\n public get element(): HTMLElement {\r\n return this._element;\r\n }\r\n\r\n public get contentElement(): HTMLElement {\r\n return this._contentElement;\r\n }\r\n\r\n private _name: string = \"\";\r\n\r\n public get name(): string {\r\n return this._name;\r\n }\r\n\r\n public set name(v: string) {\r\n this._name = v;\r\n this._nameElement.textContent = v;\r\n }\r\n\r\n private _isClosed: boolean = true;\r\n\r\n public get isClosed(): boolean {\r\n return this._isClosed;\r\n }\r\n\r\n /**\r\n * Určuje zda je skupina v GUI zavřená a nebo otevřena\r\n */\r\n public set isClosed(v: boolean) {\r\n this._isClosed = v;\r\n this._element.classList.toggle(\"closed\", v);\r\n }\r\n\r\n constructor(text: string) {\r\n this._element = createElement({ classes: \"msg-group closed hidden\" });\r\n const topElement = createElement({ classes: \"inner-group top\" });\r\n this._contentElement = createElement({ classes: \"inner-group content\" });\r\n\r\n const arrow = createElement({ classes: \"arrow\" });\r\n this._nameElement = createElement({ classes: \"name\", html: StringUtils.stringToHTMLText(text) });\r\n\r\n this.name = text;\r\n\r\n topElement.appendChild(arrow);\r\n topElement.appendChild(this._nameElement);\r\n\r\n this._element.appendChild(topElement);\r\n this._element.appendChild(this._contentElement);\r\n\r\n topElement.addEventListener(\"click\",\r\n () => {\r\n this.isClosed = !this.isClosed;\r\n });\r\n }\r\n\r\n public addItem(item: UserMsgGroup | IUserMsgItem): void {\r\n this._element.classList.remove(\"hidden\");\r\n if (item instanceof UserMsgGroup) {\r\n this._contentElement.appendChild(item.element);\r\n } else {\r\n if (this._itemCount > 0) {\r\n const lastMessage = this._items[this._itemCount - 1];\r\n\r\n // Existují situace, kdy pro více záznamů se vrací více hlášek, kde jedna je vždy stejná. V tomto případě je potřeba je zobrazovat všechny.\r\n // Proto se zavedlo porovnávání s poslední hláškou místo kontroly, jestli daná hláška už v seznamu existuje.\r\n if (lastMessage.message === item.message && lastMessage.type === item.type) {\r\n // projiti seznamu atributu\r\n if (lastMessage.additionalParams && item.additionalParams) {\r\n lastMessage.additionalParams = ArrayUtils.getUniqueArray(lastMessage.additionalParams.concat(item.additionalParams));\r\n } else if (item.additionalParams) {\r\n lastMessage.additionalParams = item.additionalParams;\r\n } else if (lastMessage.additionalParams) {\r\n // Prazdny if\r\n } else {\r\n item.additionalParams = [];\r\n }\r\n this._redraw();\r\n return;\r\n }\r\n }\r\n\r\n let text = item.message ? StringUtils.stringToHTMLText(item.message) : \"\";\r\n if (item.additionalParams && item.additionalParams.length > 0)\r\n text += ` (${item.additionalParams.join(\", \")})`; //`\r\n\r\n this._contentElement.appendChild(\r\n createElement({\r\n classes: [\"user-msg-item\", ResultMessageType[item.type].toLowerCase()],\r\n html: text,\r\n }));\r\n\r\n this._itemCount++;\r\n this._items.push(item);\r\n }\r\n }\r\n\r\n private _redraw(): void {\r\n this._contentElement.innerHTML = \"\";\r\n for (const item of this._items) {\r\n let text = StringUtils.stringToHTMLText(item.message);\r\n if (item.additionalParams && item.additionalParams.length > 0)\r\n text += ` (${item.additionalParams.join(\", \")})`; //`\r\n\r\n this._contentElement.appendChild(\r\n createElement({\r\n classes: [\"user-msg-item\", ResultMessageType[item.type].toLowerCase()],\r\n html: text,\r\n }));\r\n }\r\n }\r\n}\r\n\r\nexport interface IUserMsgsData {\r\n objectIdentification: string;\r\n messages: IUserMsgItem[];\r\n}\r\n\r\nexport interface IUserMsgItem {\r\n message: string;\r\n type: ResultMessageType;\r\n additionalParams?: string[];\r\n}\r\n\r\nexport class UserMsgsData implements IUserMsgsData {\r\n public readonly objectIdentification: string | undefined;\r\n public readonly messages: IUserMsgItem[];\r\n\r\n constructor(resultMessages: readonly IResultMessage[], objectIdentification: string | undefined = undefined) {\r\n this.objectIdentification = objectIdentification;\r\n this.messages = [];\r\n\r\n if (!resultMessages)\r\n return;\r\n\r\n for (const message of resultMessages) {\r\n const msg: IUserMsgItem = { message: message.text, type: message.type };\r\n\r\n if (msg.type === ResultMessageType.error && message.locKey)\r\n msg.additionalParams = [message.locKey]; // u errorů se má zobrazovat i kód chyby\r\n\r\n this.messages.push(msg);\r\n }\r\n }\r\n}\r\n","/**\r\n * Enum obsahující hodnoty pro identifikaci událostí stisknutí kláves. Hodnoty odpovídají \"key\" z KeyboardEvent,\r\n * které odpovídají https://www.w3.org/TR/uievents-key/#named-key-attribute-values.\r\n */\r\nexport enum SharedKey {\r\n Enter = \"Enter\",\r\n Escape = \"Escape\",\r\n ArrowLeft = \"ArrowLeft\",\r\n ArrowUp = \"ArrowUp\",\r\n ArrowDown = \"ArrowDown\",\r\n ArrowRight = \"ArrowRight\",\r\n Tab = \"Tab\",\r\n Backspace = \"Backspace\",\r\n Delete = \"Delete\",\r\n Pause = \"Pause\",\r\n CapsLock = \"CapsLock\",\r\n Home = \"Home\",\r\n End = \"End\",\r\n PrintScreen = \"PrintScreen\",\r\n ContextMenu = \"ContextMenu\",\r\n F1 = \"F1\",\r\n F2 = \"F2\",\r\n F3 = \"F3\",\r\n F4 = \"F4\",\r\n F5 = \"F5\",\r\n F6 = \"F6\",\r\n F7 = \"F7\",\r\n F8 = \"F8\",\r\n F9 = \"F9\",\r\n F10 = \"F10\",\r\n F11 = \"F11\",\r\n F12 = \"F12\",\r\n NumLock = \"NumLock\",\r\n ScrollLock = \"ScrollLock\",\r\n PageDown = \"PageDown\",\r\n PageUp = \"PageUp\",\r\n}\r\n\r\nexport enum OnlyKey {\r\n Space = \" \",\r\n Windows = \"Meta\",\r\n Ctrl = \"Control\",\r\n Alt = \"Alt\",\r\n AltGr = \"AltGraph\",\r\n}\r\n\r\n/**\r\n * Enum obsahujici hodnoty pro identifikaci udalsti stisknutí kláves. Hodnoty odpovídají \"code\" z KeyboardEvent,\r\n * viz. https://www.w3.org/TR/uievents-code\r\n *\r\n * Rozdíl mezi Key a Code je v základu v tom, ze pozice klávesy odpovída původnímu bez ohledu na nastavení jazyka\r\n * tedy například 'Z', které se nacházi, na české klávesníci, nahoře uprostřed, je vráceno jako 'KeyY'.\r\n * Navíce je konstatní při zapnutem CapsLock, v key je 'v' při zapnutem CapsLock 'V' tady prostě 'KeyV'\r\n */\r\nenum OnlyCode {\r\n Space = \"Space\",\r\n LeftAlt = \"AltLeft\",\r\n RightAlt = \"AltRight\",\r\n LeftCtrl = \"ControlLeft\",\r\n RightCtrl = \"ControlRight\",\r\n LeftShift = \"ShiftLeft\",\r\n RightShift = \"ShiftRight\",\r\n LeftWindows = \"MetaLeft\",\r\n RightWindows = \"MetaRight\",\r\n KeyA = \"KeyA\",\r\n}\r\n\r\n/**\r\n * Enum obsahující hodnoty pro identifikaci událostí stisknutí kláves. Hodnoty odpovídají \"key\" z KeyboardEvent,\r\n * které odpovídají https://www.w3.org/TR/uievents-key/#named-key-attribute-values.\r\n */\r\nexport const Key = { ...SharedKey, ...OnlyKey };\r\nexport type Key = typeof Key;\r\n\r\n/**\r\n * Enum obsahujici hodnoty pro identifikaci udalsti stisknutí kláves. Hodnoty odpovídají \"code\" z KeyboardEvent,\r\n * viz. https://www.w3.org/TR/uievents-code\r\n *\r\n * Rozdíl mezi Key a Code je v základu v tom, ze pozice klávesy odpovída původnímu bez ohledu na nastavení jazyka\r\n * tedy například 'Z', které se nacházi, na české klávesníci, nahoře uprostřed, je vráceno jako 'KeyY'.\r\n * Navíce je konstatní při zapnutem CapsLock, v key je 'v' při zapnutem CapsLock 'V' tady prostě 'KeyV'\r\n */\r\nexport const Code = { ...SharedKey, ...OnlyCode };\r\nexport type Code = typeof Code;\r\n","import { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { InvalidOperationException } from \"../../../Global/Base/Exceptions\";\r\nimport { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\n\r\n/**\r\n * Pomocné metody pro práci z HTML elementy\r\n * @includeToDoc\r\n */\r\nexport class ElementUtils {\r\n /**\r\n * Zjistí jestli je na daném elementu zobrazen scrollbar\r\n * @param element element, na kterém se zjišťuje zobrazeni scrollbaru\r\n * @return true pokud je scrollbar zobrazen\r\n */\r\n public static hasScrollBar(element: HTMLElement): boolean {\r\n // tohle je workaround pro safari, kde tam pri zoomu stranky dochazelo k tomu, ze i bez scrollbaru byla tato hodnota vyssi\r\n const offset = document.body.scrollHeight - window.innerHeight;\r\n\r\n return element.offsetHeight < (element.scrollHeight - offset);\r\n }\r\n\r\n /**\r\n * Přidá nebo odstraní bezhodnotový atribut\r\n * @param element element, na kterém se má atribut zobrazit/skrýt\r\n * @param attributeName název atributu\r\n * @param showAttribute zda se má zobrazit nebo skrýt\r\n */\r\n public static toggleAttribute(element: HTMLElement, attributeName: string, showAttribute: boolean): void {\r\n showAttribute ? element.setAttribute(attributeName, \"\") : element.removeAttribute(attributeName);\r\n }\r\n\r\n /**\r\n * Aktualizuje text v elementu\r\n * @param element Element k aktualizaci\r\n * @param text Text ke zobrazení\r\n * @param defaultLocKey Lokalizační klíč použitý v případě, že není nastaven žádný text\r\n */\r\n public static updateElementTextContent(element: HTMLElement, text: string, defaultLocKey: string): void {\r\n if (text) {\r\n Localization.remLocData(element);\r\n\r\n element.textContent = text;\r\n element.title = text;\r\n } else {\r\n Localization.addLocData(element, defaultLocKey);\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí pozici elementu v rámci dokumentu\r\n * @param elem Element, kterého se to týká\r\n */\r\n public static offset(elem: HTMLElement): { top: number; left: number } {\r\n const doc = elem && elem.ownerDocument;\r\n if (!doc)\r\n throw new InvalidOperationException(\"Unavailable 'ownerDocument' property\");\r\n\r\n const docElem = doc.documentElement;\r\n const box = elem.getBoundingClientRect();\r\n const win = doc.defaultView;\r\n return {\r\n top: box.top + win.pageYOffset - docElem.clientTop,\r\n left: box.left + win.pageXOffset - docElem.clientLeft,\r\n };\r\n }\r\n\r\n /**\r\n * Funkce vraci true, pokud je dana pozice v elementu\r\n * @param element Element\r\n * @param event Událost nebo souradnice\r\n * @returns true pokud je v elementu\r\n */\r\n public static inElement(element: HTMLElement, event: MouseEvent | CustomEvent | { x: number; y: number }): boolean {\r\n let inEl = false;\r\n const pageX = event instanceof MouseEvent ? event.pageX : event instanceof CustomEvent ? event.detail ? event.detail.x : 0 : event.x;\r\n const pageY = event instanceof MouseEvent ? event.pageY : event instanceof CustomEvent ? event.detail ? event.detail.y : 0 : event.y;\r\n\r\n //let pos = $(element).offset();\r\n const pos = ElementUtils.offset(element);\r\n\r\n if ((pageX > pos.left && pageX < (element.offsetWidth + pos.left)) && (pageY > pos.top && pageY < (element.offsetHeight + pos.top))) {\r\n inEl = true;\r\n }\r\n return inEl;\r\n }\r\n\r\n /**\r\n * Vyvolá zadanou událost na předaném elementu\r\n * @param element Element, na kterém má událost vzniknout\r\n * @param eventName Název události, která se má vyvolat\r\n * @param detail Podrobnosti události\r\n * @param bubbles Zda má událost probublávat DOMem (dafaultně ne)\r\n * @param cancelable Zda má jít událost zrušit (defaultně ne)\r\n * @return Vrátí vytvořený CustomEvent\r\n */\r\n public static callEvent<TData>(element: HTMLElement, eventName: string, detail?: TData, bubbles: boolean = false, cancelable: boolean = false): CustomEvent {\r\n const param = {\r\n detail: detail,\r\n bubbles: bubbles,\r\n cancelable: cancelable,\r\n };\r\n const evt = new CustomEvent(eventName, param);\r\n element.dispatchEvent(evt);\r\n return evt;\r\n }\r\n\r\n public static highlightText(text: string, element: HTMLElement): void {\r\n //const query = new RegExp(\"(\\\\b\" + text + \"\\\\b)\", \"gim\");\r\n //const query = new RegExp(\"(\" + text + \")\", \"gim\");\r\n let reg = \"\";\r\n for (const t of text) {\r\n reg += StringUtils.getToRegEx(t);\r\n }\r\n const query = new RegExp(`(${reg})`, \"gim\"); //`\r\n const e = element.innerHTML;\r\n const enew = e.replace(/(<span>|<\\/span>)/igm, \"\");\r\n element.innerHTML = enew;\r\n const newe = enew.replace(query, \"<span>$1</span>\");\r\n element.innerHTML = newe;\r\n }\r\n\r\n public static clearHighlight(element: HTMLElement): void {\r\n if (!element)\r\n return;\r\n const innerText = element.innerHTML;\r\n element.innerHTML = innerText.replace(/(<span>|<\\/span>)/igm, \"\");\r\n }\r\n}\r\n","import { ElementUtils } from \"../../UI.ElementarControls/Helpers/ElementUtils\";\r\n\r\nexport class EventHelper {\r\n /**\r\n * Zastaví propagaci události, ale současně notifikuje o tomto zastavení (vyvolává událost \"<název události>Cancelled\")\r\n * @param e Událost, ktará má být zastavena\r\n */\r\n public static stopPropagation(e: Event): void {\r\n e.stopPropagation();\r\n ElementUtils.callEvent(EventHelper._getEventSource(e), e.type + \"Cancelled\", EventHelper._getEventDetails(e), true);\r\n }\r\n\r\n /**\r\n * Zastaví propagaci události a přeruší i vyvolání dalších listenerů, které jsou navázané na zdrojovém elementu,\r\n * ale současně notifikuje o tomto zastavení (vyvolává událost \"<název události>Cancelled\")\r\n * @param e Událost, ktará má být zastavena\r\n */\r\n public static stopImmediatePropagation(e: Event): void {\r\n e.stopImmediatePropagation();\r\n ElementUtils.callEvent(EventHelper._getEventSource(e), e.type + \"Cancelled\", EventHelper._getEventDetails(e), true);\r\n }\r\n\r\n /**\r\n * Zjistí nejvhodnější zdrojový element události\r\n * @param e Událost, pro kterou se hledá\r\n */\r\n private static _getEventSource(e: Event): HTMLElement {\r\n return e.currentTarget instanceof HTMLElement ? e.currentTarget as HTMLElement : document.body;\r\n }\r\n\r\n /**\r\n * Vytvoří informace pro detail nové rušící události\r\n * @param e Událost, která je rušená\r\n */\r\n private static _getEventDetails(e: Event): {} {\r\n if (!(e instanceof MouseEvent))\r\n return { sender: EventHelper._getEventSource(e) };\r\n\r\n const mouseEvent = e as MouseEvent;\r\n return {\r\n sender: EventHelper._getEventSource(e),\r\n x: mouseEvent.pageX,\r\n y: mouseEvent.pageY,\r\n };\r\n }\r\n}\r\n","import { ITextBuilder } from \"../../Global/Base/Builders/ITextBuilder\";\r\nimport { Event } from \"../../Global/Base/Events\";\r\nimport { ValidationErrorType } from \"../../OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\n\r\n/**\r\n * Rozhraní pro komponenty, které je možné řídit právy\r\n * @internal\r\n */\r\nexport interface IBaseControlRights {\r\n /**\r\n * Právo editace\r\n */\r\n enabled: boolean;\r\n\r\n /**\r\n * Právo viditelnosti\r\n */\r\n visible: boolean;\r\n}\r\n\r\nexport class IBaseControlRights {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"enabled\") && Reflect.has(instance, \"visible\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro editovatelné komponenty, které je možné řídit právy\r\n * @internal\r\n */\r\nexport interface IBaseEditableControlRights extends IBaseControlRights {\r\n /**\r\n * Právo povinnosti\r\n */\r\n required: boolean;\r\n}\r\n\r\nexport class IBaseEditableControlRights {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"required\") && instance instanceof IBaseControlRights;\r\n }\r\n}\r\n\r\nexport interface IHasValidityState {\r\n /**\r\n * Stav validnosti komponenty\r\n */\r\n isValid: boolean;\r\n}\r\n\r\nexport class IHasValidityState {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"isValid\");\r\n }\r\n}\r\n\r\n/**\r\n * Vysledek zmeny validnosti - novy stav validnosti a text pripadne chyby\r\n */\r\nexport interface IValidationResult {\r\n valid: boolean;\r\n invalidValue?: ITextBuilder;\r\n invalidLocKey?: string;\r\n invalidMessage?: string;\r\n errorType?: ValidationErrorType;\r\n}\r\n\r\n/**\r\n * Rozhraní pro validovatelné komponenty\r\n *\r\n * @generateInstanceClass\r\n */\r\nexport interface IValidatable extends IHasValidityState {\r\n /**\r\n * Událost vyvolaná při změně validnosti komponenty\r\n */\r\n validityChanged: Event<IValidatable, IValidationResult>;\r\n /**\r\n * True, pokud se má v tooltipu zobrazit hláška, že hodnota je povinná, ale není vyplněna (platnou) hodnotou.\r\n */\r\n isInRequiredInvalidState: boolean;\r\n /**\r\n * Současný stav validnosti.\r\n */\r\n readonly currentValidity: IValidationResult;\r\n /**\r\n * Komponenta provede svou validaci a podle toho si nastaví svůj stav validnosti (IsValid)\r\n */\r\n validate(): boolean;\r\n /**\r\n * Komponenta si natvrdo nastaví svůj stav na validní\r\n */\r\n setValid(): void;\r\n /**\r\n * Komponenta si natvrdo nastaví svůj stav na nevalidní\r\n * @param locKey klíč validační hlášky, která se má zobrazit\r\n * @param message nebo už lokalizovaná zpráva, která se má zobrazit\r\n * @param errorType typ chyby\r\n */\r\n setInvalid(locKey: string, message?: string, errorType?: ValidationErrorType): void;\r\n}\r\n\r\nexport class IValidatable {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n typeof instance.validate === \"function\" &&\r\n typeof instance.setValid === \"function\" &&\r\n typeof instance.setInvalid === \"function\" &&\r\n Reflect.has(instance, \"validityChanged\") &&\r\n Reflect.has(instance, \"isInRequiredInvalidState\") &&\r\n Reflect.has(instance, \"currentValidity\") &&\r\n instance instanceof IHasValidityState;\r\n }\r\n}\r\n\r\nexport interface IContainer {\r\n readonly isContainer: boolean; // pomocna property jen kvuli runtime kontrole rozhrani - pokud v budoucnu vznikne nejaka spolecna property (treba children...), tak se to muze nahradit ji\r\n}\r\n\r\nexport class IContainer {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"isContainer\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro validovatelné kontejnerové komponenty\r\n */\r\nexport interface IValidatableContainer extends IContainer, IHasValidityState {\r\n}\r\n\r\nexport class IValidatableContainer {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance instanceof IContainer && instance instanceof IHasValidityState;\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro elementy, které si přejí dostávat notifikace o odpojení z DOMu\r\n */\r\nexport interface INotifyDetached {\r\n /**\r\n * Voláno při odpojení komponenty z DOMu\r\n */\r\n detached(): void;\r\n}\r\n\r\nexport class INotifyDetached {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.detached === \"function\";\r\n }\r\n}\r\n\r\n/** Slouzi k nastavovani interactive na needitacnich komponentach */\r\nexport interface IInteractiveControl {\r\n interactive: boolean;\r\n}\r\n\r\nexport class IInteractiveControl {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"interactive\");\r\n }\r\n}\r\n\r\nexport interface IEnabledVisualControl {\r\n enabledVisual: boolean;\r\n}\r\n\r\nexport class IEnabledVisualControl {\r\n private static readonly _properties: (keyof IEnabledVisualControl)[] = [\"enabledVisual\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some(property => !Reflect.has(instance, property));\r\n }\r\n}\r\n\r\n/**\r\n * Určuje, zda je aktivnost komponenty řízena i přes vlastnost enableInEdit\r\n * @includeToDoc\r\n */\r\nexport interface IEnableInEditControl {\r\n /** Akce je přístupná pouze v edit. módu */\r\n enableInEdit: boolean;\r\n}\r\n\r\nexport class IEnableInEditControl {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"enableInEdit\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro akce, které mají možnost být spouštěné nehledě na právo editace\r\n */\r\nexport interface IRunWithoutEdit {\r\n /**\r\n * Příznak, zda má být možné akci spustit bez ohledu na právo editace\r\n */\r\n runWithoutEdit: boolean;\r\n}\r\n\r\nexport class IRunWithoutEdit {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"runWithoutEdit\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní umožňuje čekat na běžící procesy na komponentě\r\n * @includeToDoc\r\n */\r\nexport interface IBussyAwaitable {\r\n /**\r\n * Umožňuje čekat na běžící procesy na komponentě\r\n */\r\n waitForPendingActions(): Promise<void>;\r\n /**\r\n * Umožňuje zrušit běžící procesy na komponentě\r\n */\r\n cancelPendingActions(): void;\r\n}\r\n\r\nexport class IBussyAwaitable {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.waitForPendingActions === \"function\" && typeof instance.cancelPendingActions === \"function\";\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní které umožňuje volat před uložením operace\r\n * @includeToDoc\r\n */\r\nexport interface IBeforeSaveAwaitable {\r\n /**\r\n * Je zavoláno před uložením a je třeba na tuto akci počkat\r\n */\r\n beforeSave(): Promise<void>;\r\n\r\n}\r\n\r\nexport class IBeforeSaveAwaitable {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.beforeSave === \"function\";\r\n }\r\n}\r\n\r\nexport interface IDataLoadingAwaitable {\r\n waitOnDataLoaded(): Promise<boolean>;\r\n}\r\n\r\nexport class IDataLoadingAwaitable {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance.waitOnDataLoaded === \"function\";\r\n }\r\n}\r\n","import { IDisposable } from \"Global/Base/IDisposable\";\r\n\r\n/**\r\n * Obecné popup okno, které se (na vyžádání) umí vhodně umístit u zadaného HTML elementu.\r\n * (Tak, aby ideálně bylo celé vidět a nebylo skryté za hranicí obrazovky.)\r\n * - Popup okno samo o sobě neřeší svůj obsah. Ten mu musí být poskytnut zvenku.\r\n * - Název `PopupMenu` je historický. Dříve se používalo výhradně v souvislosti s menu.\r\n * - Dnes se běžně používá i pro jiné účely, typicky pro zobrazení tooltipu s chybovou hláškou.\r\n */\r\nexport interface IPopupMenu extends IDisposable {\r\n /**\r\n * Příznak, zda-li je popupMenu viditelné.\r\n */\r\n readonly visible: boolean;\r\n\r\n /**\r\n * Element reprezentující popupMenu v HTML DOM. (Tento element je předmětem pozicování.)\r\n */\r\n readonly element: HTMLElement;\r\n\r\n /**\r\n * Umístí popupMenu k `targetControlElement`, se snahou umístit tak, aby byl celý popupMenu viditelný. (Aby nebyl vykreslený mimo obrazovku.)\r\n * @param popUpElement HTML element, do kterého se vykresluje obsahu popupMenu.\r\n * @param targetControlElement HTML element, u kterého má být popupMenu umístěno.\r\n * @param hasFocus `True`, pokud `targetControlElement` má fokus. Používá se pouze při zadaném `gridRect`.\r\n * @param gridRect Určeno pro použití na datagridu. Pokud zadáno a zároveň `hasFocus`, pak se - za určitých okolností - nastaví viditelnost popupMenu.\r\n * Historická props. Již se nepoužívá.\r\n * @param width Předdefinovaná výchozí šířka elementu `targetControlElement`.\r\n * Pokud zadáno, bude - při výpočtu pozice popupMenu - upřednostněna před šířkou `targetControlElement`.\r\n * (Zavedeno kvůli `LOV`, protože grid má před dočtením nulovou šířku a drop down menu se zobrazovalo jen jako tečka.)\r\n * @param height Analogicky jako `width`.\r\n */\r\n arangePopupToEditableControl(popUpElement: HTMLElement, targetControlElement: HTMLElement, hasFocus: boolean, gridRect?: ClientRect, width?: SizeType, height?: SizeType): void;\r\n\r\n /**\r\n * Nastavi viditelnost popupMenu.\r\n * @param visible `True`, pokud má být popupMenu viditelné.\r\n */\r\n setVisibility(visible: boolean): void;\r\n\r\n /**\r\n * Nastavení odsazení.\r\n * @param top odsazení od vrchního okraje stránky\r\n * @param left odsazení od levého okraje stránky\r\n * @param bottom odsazení od dolního okraje stránky\r\n * @param right odsazení od pravého okraje stránky\r\n */\r\n setIndent(top?: string, left?: string, bottom?: string, right?: string): void;\r\n}\r\n\r\nexport type SizeType = number | \"auto\" | \"fit-content\" | \"min-content\" | \"max-content\";\r\n","import { Event } from \"../../../Global/Base/Events\";\r\nimport { IPopupMenu, SizeType } from \"./IPopupMenu\";\r\n/**\r\n * Pokud je cancelbyclick nastaveno na true, tak se popup zavre pri kliknuti mimo jeho obsah, toto je realizovano tak, ze na body je event click, ktery zavira popup,\r\n * pokud je klikano do popupu, tak ten si odchytava click a dale ho nepropaguje\r\n * Toto je potreba udelat i na prvku, ktery popup otvira, cili na udalosti onclick prvku, ktery otevira popup se musi zavolat stopropagation !!!\r\n */\r\nexport class PopupMenu implements IPopupMenu {\r\n //#region Events\r\n public onVisibilityChanged: Event<PopupMenu, boolean> = new Event<PopupMenu, boolean>();\r\n //#endregion Events\r\n\r\n //#region Fields\r\n protected _contentContainer: HTMLElement = document.createElement(\"div\");\r\n protected _visible: boolean = false;\r\n protected _bodyClickListener: EventListener | undefined = undefined;\r\n protected _popupClickListener: EventListener | undefined = undefined;\r\n\r\n //#endregion Fields\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n public get element(): HTMLElement {\r\n return this._contentContainer;\r\n }\r\n\r\n //#region Constructors\r\n /**\r\n * Kontruktor popupmenu, POZOR - aby korektne fungovalo, je potřeba na události, která otvírá popup nastavit callingEvent.stopPropagation() !!!\r\n * Je nastaveno v Construktoru\r\n *\r\n * Kdyz je cancelbyclick nastaveno na true, tak se popup zavre pri kliknuti mimo jeho obsah, toto je realizovano tak, ze na body je event click, ktery zavira popup,\r\n * pokud je klikano do popupu, tak ten si odchytava click a dale ho nepropaguje\r\n * Toto je potreba udelat i na prvku, ktery popup otvira, cili na udalosti onclick prvku, ktery otevira popup nastavit callingEvent.stopPropagation()!!!\r\n *\r\n * @param contentElement element, ktery se bude v popup menu zobrazovat\r\n * @param cancelByClick pokud je true, tak se okno automaticky zavre, pokud se klikne mimo okno, defaultne true\r\n * @param width sirka komponenty jako string (aby se daly zadat i %)\r\n * @param height vyska komponenty jako string (aby se daly zadat i %)\r\n * @param top odsazeni od vrchniho okraje stranky jako string (aby se daly zadat i %)\r\n * @param left odsazeni od leveho okraje stranky jako string (aby se daly zadat i %)\r\n * @param bottom odsazeni od dolniho okraje stranky\r\n * @param right odsazeni od praveho okraje stranky\r\n */\r\n constructor(contentElement?: HTMLElement, protected cancelByClick: boolean = true, width: string = \"50%\", height: string = \"50%\", top: string = \"25%\", left: string = \"25%\", bottom: string = \"25%\", right: string = \"25%\") {\r\n if (contentElement == null)\r\n return;\r\n\r\n this._initialize(contentElement);\r\n\r\n this.setSize(width, height);\r\n this.setIndent(top, left, bottom, right);\r\n this._setListeners();\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n /**\r\n * Inicializace komponenty\r\n * @param innerElement element, ktery se bude v popup menu zobrazovat\r\n */\r\n protected _initialize(innerElement?: HTMLElement): void {\r\n if (innerElement) {\r\n innerElement.style.width = \"100%\";\r\n innerElement.style.height = \"100%\";\r\n this._contentContainer.appendChild(innerElement);\r\n }\r\n this._contentContainer.classList.add(\"PopupMenu\");\r\n document.body.appendChild(this._contentContainer);\r\n }\r\n\r\n /**\r\n * Nastaveni listeneru\r\n */\r\n protected _setListeners(): void {\r\n if (this.cancelByClick) {\r\n // všechny popupy zavíráme pokud došlo ke kliknutí někam do okna (i pokud došlo k zastavení této události - událost \"clickCancelled\")\r\n window.addEventListener(\"click\", this._bodyClickListener = (_e) => {\r\n if (this.visible)\r\n this.setVisibility(false);\r\n });\r\n window.addEventListener(\"clickCancelled\", this._bodyClickListener);\r\n }\r\n\r\n this._contentContainer.addEventListener(\"click\", this._popupClickListener = (e) => e.stopPropagation());\r\n }\r\n\r\n /**\r\n * Nastaveni odsazeni\r\n * @param top odsazeni od vrchinoho okraje stranky\r\n * @param left odsazeni od leveho okraje stranky\r\n * @param bottom odsazeni od dolniho okraje stranky\r\n * @param right odsazeni od praveho okraje stranky\r\n */\r\n public setIndent(top: string | null = null, left: string | null = null, bottom: string | null = null, right: string | null = null): void {\r\n if (top)\r\n this._contentContainer.style.top = top;\r\n\r\n if (left)\r\n this._contentContainer.style.left = left;\r\n\r\n if (bottom)\r\n this._contentContainer.style.bottom = bottom;\r\n\r\n if (right)\r\n this._contentContainer.style.right = right;\r\n }\r\n\r\n /**\r\n * Nastaveni rozmeru\r\n * @param width sirka popup menu\r\n * @param height vyska popup menu\r\n */\r\n public setSize(width: SizeType | string, height: SizeType | string): void {\r\n const w = typeof width === \"number\" ? width + \"px\" : width;\r\n const h = typeof height === \"number\" ? height + \"px\" : height;\r\n\r\n this._contentContainer.style.width = w;\r\n this._contentContainer.style.height = h;\r\n }\r\n\r\n /**\r\n * Nastaveni viditelnosti komponenty\r\n * @param visible boolean\r\n */\r\n public setVisibility(visible: boolean): void {\r\n this._visible = visible;\r\n this._contentContainer.style.display = visible ? \"\" : \"none\";\r\n this.onVisibilityChanged.trigger(this, this.visible);\r\n }\r\n\r\n /**\r\n * Kontrola, zda se menu vleze pod zadane souradnice\r\n */\r\n public checkIfFitsVerticaly(): boolean {\r\n const windowH = window.innerHeight;\r\n const offsetTop = this._contentContainer.getBoundingClientRect().top;\r\n return windowH - (this._contentContainer.clientHeight + offsetTop) > 0;\r\n }\r\n\r\n public arangePopupToEditableControl(popUpElemenet: HTMLElement, targetControlElement: HTMLElement, hasFocus: boolean, gridRect: ClientRect | null = null, width: SizeType | null = null, height: SizeType | null = null): void {\r\n if (popUpElemenet != undefined && this) {\r\n const rect = targetControlElement.getBoundingClientRect();\r\n\r\n const w = typeof width === \"number\" ? width : popUpElemenet.offsetWidth;\r\n const h = typeof height === \"number\" ? height : popUpElemenet.offsetHeight;\r\n\r\n this.setSize(width ?? w, height ?? h); // width i height by nemeli chodit dovnitr nenastaveny\r\n\r\n if (gridRect && hasFocus) { //jsem na datagridu a ma focus\r\n const upper = rect.bottom - gridRect.top < -1;\r\n const downer = gridRect.bottom - rect.top < -1;\r\n\r\n if (this.visible) { //je viditelny a komponenta leze mimo viditelnou cast datagridu\r\n if (upper || downer) { //nahoru nebo dolu\r\n this.setVisibility(false);\r\n return; //pokud ho skryju tak koncim vykonani funcke - pomerne dulezita vec!!!\r\n }\r\n }\r\n\r\n if (this.visible != true) { //je neviditelny a komponenta leze do viditelne casti datagridu a ma focus\r\n if (!upper && !downer)\r\n this.setVisibility(true);\r\n }\r\n }\r\n let errorTop;\r\n let errorLeft;\r\n let errorBottom;\r\n let errorRight;\r\n if (window.innerHeight - rect.bottom < h) { //vyska okna - spodni okraj editovatelneho pole je mensi nez velikost validacni hlasky\r\n errorTop = rect.top - h + \"px\";\r\n errorBottom = rect.top + \"px\";\r\n } else {\r\n errorTop = rect.bottom + \"px\";\r\n errorBottom = rect.bottom + h + \"px\";\r\n }\r\n\r\n if (window.innerWidth - rect.left < w) { //sirka okna\r\n errorLeft = rect.right - w + \"px\";\r\n errorRight = rect.right + \"px\";\r\n } else {\r\n errorLeft = rect.left + \"px\";\r\n errorRight = rect.left - w + \"px\";\r\n }\r\n\r\n this.setIndent(errorTop, errorLeft, errorBottom, errorRight);\r\n }\r\n }\r\n\r\n /**\r\n * Zavreni PopupMenu\r\n */\r\n public close(): void {\r\n this.setVisibility(false);\r\n this.dispose();\r\n }\r\n\r\n /**\r\n * Destruktor\r\n */\r\n public dispose(): void {\r\n this._contentContainer?.parentElement?.removeChild(this._contentContainer);\r\n\r\n if (this._bodyClickListener)\r\n document.body.removeEventListener(\"click\", this._bodyClickListener);\r\n if (this._popupClickListener)\r\n document.body.removeEventListener(\"click\", this._popupClickListener);\r\n this.onVisibilityChanged.removeAll();\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n","/** Oddělovač elementu od bloku */\r\nexport const ELEMENT_PREFIX = \"__\";\r\n/** Oddělovač modifikátoru od bloku nebo elementu */\r\nexport const MODIFIER_PREFIX = \"--\";\r\n\r\n/**\r\n * Funkce umožňující vytváření css tříd pomocí metodiky BEM\r\n */\r\nexport interface BEMClassNameCreator {\r\n /** Vrátí css třídu bloku */\r\n (): string;\r\n /** Funkce vracející css třídu elementu */\r\n element: (elementName: string, modifier?: string) => string;\r\n /** Funkce vracející css třídu modifikátoru */\r\n modifier: (modifierName: string) => string;\r\n}\r\n\r\n/**\r\n * Vytvoří funkci pro vytváření css tříd pomocí metodiky BEM\r\n * @param blockName Název Blocku z metodiky BEM\r\n */\r\nexport function setupBem(blockName: string): BEMClassNameCreator {\r\n const bem = () => {\r\n return blockName;\r\n };\r\n bem.element = (elementName: string, modifier?: string) => {\r\n return `${blockName}${ELEMENT_PREFIX}${elementName}${modifier ? `${MODIFIER_PREFIX}${modifier}` : \"\"}`;\r\n };\r\n bem.modifier = (modifierName: string) => {\r\n return `${blockName}${MODIFIER_PREFIX}${modifierName}`;\r\n };\r\n return bem;\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IFrameContext } from \"@multiweb/types/multiweb\";\r\nimport { IHasRights, IItemRightsCollection } from \"Global/Base/Rights/RightTypes\";\r\nimport { setupBem } from \"Global/Dom/bem\";\r\nimport { CultureInfo } from \"Global/Dom/CultureInfo\";\r\nimport { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IGenericControl, IHTMLElementWithControl, IInfoProvidingControl } from \"../Controls/ControlInterfaces\";\r\nimport { IContentBuilder } from \"../DataBuilders/IContentBuilder\";\r\nimport { MessageWindow } from \"../MessageWindow\";\r\n\r\nexport class ControlInfo {\r\n /** Získá a zobrazí data o prvku v MessageWindow */\r\n public static async displayInfo(clickedElement: HTMLElement, initialInfo: IControlInfoObject | null): Promise<void> {\r\n let element = clickedElement;\r\n let resultInfo: IControlInfoObject = initialInfo ?? {} as IControlInfoObject;\r\n\r\n if (initialInfo)\r\n resultInfo = initialInfo;\r\n\r\n let info: Partial<IControlInfoObject> = {\r\n language: CultureInfo.getCulture(),\r\n ...resultInfo,\r\n };\r\n let clickedControl: IGenericControl;\r\n while (element) {\r\n if (element instanceof IHTMLElementWithControl && element.tscControl && element.tscControl instanceof IInfoProvidingControl) {\r\n if (clickedControl === undefined)\r\n clickedControl = element.tscControl;\r\n if ((element.tscControl && element.tscControl instanceof IInfoProvidingControl))\r\n info = await element.tscControl.getControlInfo(info, clickedControl);\r\n } else if (element instanceof IInfoProvidingControl) {\r\n clickedControl = null;\r\n info = await element.getControlInfo(info, clickedControl);\r\n }\r\n\r\n if (info.className) // už je vyplněno vše, co je potřeba\r\n break;\r\n element = element.parentElement as HTMLElement;\r\n }\r\n\r\n resultInfo = { ...resultInfo, ...info };\r\n\r\n if (resultInfo.locKey) // Každá podporovaná komponenta obsahuje locKey, pokud tedy není vyplněno, nic nezobrazovat\r\n MessageWindow.showAlert(new ControlInfoMessageBuilder(resultInfo), \"GUI-702479\"); // Informace o komponentě\r\n }\r\n}\r\nconst bemClass = setupBem(\"control-info\");\r\n\r\n//** Builder obsahu MessageWindow pro ControlInfo */\r\nexport class ControlInfoMessageBuilder implements IContentBuilder {\r\n private _controlInfo: IControlInfoObject;\r\n private _element: HTMLElement = createElement({ type: \"div\", classes: bemClass() });\r\n\r\n constructor(controlInfo: IControlInfoObject) {\r\n this._controlInfo = controlInfo;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n const loc = await Localization.getTexts(\"GUI-354669\", \"GUI-302180\", \"GUI-354852\", \"GUI-302176\", \"GUI-339923\");\r\n\r\n const mainInfo = createElement({ type: \"table\", classes: bemClass.element(\"main-info\") });\r\n\r\n this._addRow(loc.get(\"GUI-354669\"), this._controlInfo.className, bemClass.element(\"class-name-row\"), mainInfo); // Název třídy\r\n if (this._controlInfo.attributeName)\r\n this._addRow(loc.get(\"GUI-302180\"), this._controlInfo.attributeName, bemClass.element(\"attr-name-row\"), mainInfo); // Název atributu\r\n if (this._controlInfo.dataType) {\r\n this._addRow(\r\n loc.get(\"GUI-354852\"),\r\n this._controlInfo.additionalTypeName\r\n ? this._controlInfo.dataType + \"|\" + this._controlInfo.additionalTypeName\r\n : this._controlInfo.dataType,\r\n bemClass.element(\"data-type-row\"),\r\n mainInfo,\r\n ); // Datový typ atributu\r\n }\r\n this._addRow(loc.get(\"GUI-302176\"), this._controlInfo.locKey, bemClass.element(\"lockey-row\"), mainInfo); // Lokalizační klíč\r\n this._addRow(loc.get(\"GUI-339923\"), this._controlInfo.language, bemClass.element(\"language-row\"), mainInfo); // Aktuální jazyk\r\n\r\n this._element.appendChild(mainInfo);\r\n\r\n // Dodatečné info ve vývojářském módu\r\n if (AppContext.instance.configuration.developmentMode) {\r\n if (this._controlInfo.additionalInfo) {\r\n const additionalInfo = createElement({ type: \"div\", classes: bemClass.element(\"additional-info\") });\r\n additionalInfo.appendChild(createElement({ type: \"h5\", html: \"Additional info\" }));\r\n let text = \"\";\r\n if (this._controlInfo.additionalInfo.implementationClass)\r\n text += `Implementation class: ${this._controlInfo.additionalInfo.implementationClass}`;\r\n if (this._controlInfo.additionalInfo.dataAttributes) {\r\n text += \"\\r\\n<b>Data attributes:</b>\";\r\n Object.keys(this._controlInfo.additionalInfo.dataAttributes).forEach(key => {\r\n text += `\\r\\n\\u2022 ${key}: ${this._controlInfo.additionalInfo.dataAttributes[key]}`;\r\n });\r\n }\r\n if (this._controlInfo.additionalInfo.rights) {\r\n const evalRights = this._controlInfo.additionalInfo.rights.evaluatedRights;\r\n const rights = this._controlInfo.additionalInfo.rights.rights;\r\n const usedKeys: string[] = [];\r\n text += \"\\r\\n<b>Rights:</b>\";\r\n for (const key in evalRights) {\r\n if (Reflect.get(evalRights, key) !== undefined) {\r\n text += `\\r\\n\\u2022 ${key}: ${Reflect.get(evalRights, key)}`;\r\n if (Object.prototype.hasOwnProperty.call(rights, key) && Reflect.get(rights, key) !== undefined && typeof Reflect.get(rights, key) !== \"boolean\")\r\n text += ` ${JSON.stringify(Reflect.get(rights, key))}`;\r\n usedKeys.push(key);\r\n }\r\n }\r\n for (const key in rights) {\r\n if (usedKeys.indexOf(key) < 0 && Reflect.get(rights, key) !== undefined)\r\n text += `\\r\\n\\u2022 ${key}: ${JSON.stringify(Reflect.get(rights, key))}`;\r\n }\r\n }\r\n if (this._controlInfo.additionalInfo.frameContext) {\r\n text += \"\\r\\n<b>FrameContext:</b>\";\r\n text += `\\r\\n\\u2022 roles: ${JSON.stringify(this._controlInfo.additionalInfo.frameContext?.roles)}`;\r\n text += `\\r\\n\\u2022 transactionContextId: ${JSON.stringify(this._controlInfo.additionalInfo.frameContext?.getTransactionContextId())}`;\r\n }\r\n\r\n additionalInfo.appendChild(createElement({ type: \"div\", html: text }));\r\n this._element.appendChild(additionalInfo);\r\n }\r\n }\r\n\r\n return this._element;\r\n }\r\n\r\n private _addRow(title: string, value: string, rowClass: string, parent: HTMLElement): void {\r\n const row = createElement({ type: \"tr\", classes: [rowClass, bemClass.element(\"row\")] });\r\n row.appendChild(createElement({ type: \"th\", html: title, classes: bemClass.element(\"row-title\") }));\r\n row.appendChild(createElement({ type: \"td\", html: value, classes: bemClass.element(\"row-value\") }));\r\n parent.appendChild(row);\r\n }\r\n}\r\n\r\nexport interface IControlInfoObject {\r\n /** Název třídy */\r\n readonly className: string;\r\n /** Název atributu */\r\n readonly attributeName?: string;\r\n /** Datový typ */\r\n readonly dataType?: OWDataType;\r\n /** Doplňující název datového typu. Zobrazuje se za datovým typem (např.: Enum|nazev_enumu, OWObject|nazev_tridy). */\r\n readonly additionalTypeName?: string;\r\n /** Lokalizační klíč */\r\n readonly locKey: string;\r\n /** Aktuální jazyk */\r\n readonly language: string;\r\n /** Další informace, které se zobrazují ve vývojářském módu: data-atributy, aktuální vyhodnocení práv a třída komponenty. */\r\n readonly additionalInfo?: IAdditionalControlInfo;\r\n}\r\n\r\nexport interface IAdditionalControlInfo {\r\n dataAttributes: IDataAttributes;\r\n rights?: { evaluatedRights: IHasRights; rights: IItemRightsCollection } | undefined;\r\n frameContext?: IFrameContext | undefined;\r\n implementationClass: string;\r\n}\r\n\r\nexport interface IDataAttributes {\r\n [index: string]: string;\r\n}\r\n\r\nexport class IControlInfoObject implements IControlInfoObject {\r\n}\r\n","import { AwaitableStandardEvent, CancellableEventArgs, Event } from \"Global/Base/Events\";\r\n\r\nexport type IListenerInfo = {\r\n key?: string;\r\n removeListener: (options?: EventListenerOptions) => void;\r\n};\r\n\r\nexport type StandardEventBase = {\r\n remove: (callback: Function) => void;\r\n add: (callback: Function, oneTimeOnly?: boolean, asFirst?: boolean) => void;\r\n};\r\n\r\nexport type IEventListenerInfo = IListenerInfo & {\r\n event: StandardEventBase;\r\n callback: Function;\r\n};\r\n\r\nclass EventListenerInfo implements IEventListenerInfo {\r\n private _event: StandardEventBase;\r\n private _callback: Function;\r\n\r\n public get event(): StandardEventBase {\r\n return this._event;\r\n }\r\n public get callback(): Function {\r\n return this._callback;\r\n }\r\n\r\n public key: string;\r\n\r\n constructor(event: StandardEventBase, callback: Function) {\r\n this._event = event;\r\n this._callback = callback;\r\n }\r\n\r\n public removeListener(): void {\r\n this.event.remove(this.callback);\r\n this._event = null;\r\n this._callback = null;\r\n }\r\n}\r\n\r\nexport type StandardEventsControllerAddEventParams = {\r\n /** Zda má být listener zavolán pouze jednou a pak uvolněn. */\r\n oneTimeOnly?: boolean;\r\n /** Umožňuje zařadit listener na první místo. */\r\n asFirst?: boolean;\r\n};\r\n\r\nexport type StandardEventsControllerAddWithKeyParams = StandardEventsControllerAddEventParams & {\r\n /** Zároveň odváže všechny předchozí eventy se zadaným `key`. */\r\n removePrevious?: boolean;\r\n};\r\n\r\n/**\r\n * Slouží k navazování tesco eventů (`Event`, `AwaitableStandardEvent`). Pamatuje si všechny eventy a při dispose zase všechny odváže.\r\n * Pomáhá zabránit tomu, že někde zůstanou navázané eventy již disposnutých instancí.\r\n *\r\n * Také je možné navazovat eventy s unikátním klíčem `key` a kdykoliv odvázat jen eventy s daným klíčem.\r\n * @includeToDoc\r\n */\r\nexport class StandardEventsController {\r\n protected _listeners: IListenerInfo[] = [];\r\n private _isDisposed = false;\r\n\r\n /**\r\n * Příznak, zda už to má `EventsController` za sebou. Pak už není možné přidávat další eventy.\r\n */\r\n public get isDisposed(): boolean {\r\n return this._isDisposed;\r\n }\r\n\r\n /**\r\n * Naváže callback na event a zapamatuje si jej.\r\n */\r\n public add<K, L>(event: AwaitableStandardEvent<K, L>, callback: (cancellableEventArgs: CancellableEventArgs, sender: K, prm: L) => void, params?: StandardEventsControllerAddEventParams): IEventListenerInfo;\r\n public add<K, L>(event: Event<K, L>, callback: (sender: K, prm: L) => void, params?: StandardEventsControllerAddEventParams): IEventListenerInfo;\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n public add<K, L>(event: StandardEventBase, callback: Function, params?: StandardEventsControllerAddEventParams): IEventListenerInfo;\r\n // @ts-ignore\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n public add<K, L>(event: StandardEventBase, callback: Function, params?: StandardEventsControllerAddEventParams): IEventListenerInfo {\r\n if (!event || this.isDisposed)\r\n return null;\r\n event.add(callback, params?.oneTimeOnly, params?.asFirst);\r\n const listenerInfo = new EventListenerInfo(event, callback);\r\n this._listeners.push(listenerInfo);\r\n return listenerInfo;\r\n }\r\n\r\n /**\r\n * Naváže callback na event a zapamatuje si jej pod klíčem `key`.\r\n * @param key Unikátní klíč, pod kterým se callback/callbacky uloží.\r\n */\r\n public addWithKey<K, L>(key: string, event: AwaitableStandardEvent<K, L>, callback: (cancellableEventArgs: CancellableEventArgs, sender: K, prm: L) => void, params?: StandardEventsControllerAddWithKeyParams): IEventListenerInfo;\r\n public addWithKey<K, L>(key: string, event: Event<K, L>, callback: (sender: K, prm: L) => void, params?: StandardEventsControllerAddWithKeyParams): IEventListenerInfo;\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n public addWithKey<K, L>(key: string, event: StandardEventBase, callback: Function, params?: StandardEventsControllerAddWithKeyParams): IEventListenerInfo;\r\n // @ts-ignore\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n public addWithKey<K, L>(key: string, event: StandardEventBase, callback: Function, params?: StandardEventsControllerAddWithKeyParams): IEventListenerInfo {\r\n if (params?.removePrevious)\r\n this.removeByKey(key);\r\n if (!event || this.isDisposed)\r\n return null;\r\n const listenerInfo = this.add(event, callback, params);\r\n listenerInfo.key = key;\r\n return listenerInfo;\r\n }\r\n\r\n /**\r\n * Odváže veškeré zapamatované eventy, které byly přidány pod stejným `key`.\r\n * @param keys Unikátní klíče přidaných eventů, které se mají odvázat.\r\n */\r\n public removeByKey(...keys: string[]): void {\r\n const toRemove: IListenerInfo[] = [];\r\n // eslint-disable-next-line array-callback-return\r\n this._listeners.reduceRight<void>((_, listenerInfo, index, listeners) => {\r\n if (keys.includes(listenerInfo.key)) {\r\n toRemove.push(...listeners.splice(index, 1));\r\n }\r\n }, null);\r\n toRemove.forEach(listenerInfo => listenerInfo.removeListener());\r\n }\r\n\r\n /**\r\n * Odváže všechny zapamatované eventy (ať už s `key` nebo bez).\r\n */\r\n public removeAllListeners(): void {\r\n const events = this._listeners?.splice(0, this._listeners.length);\r\n events?.forEach(listenerInfo => listenerInfo.removeListener());\r\n }\r\n\r\n /**\r\n * Odváže všechny zapamatované eventy (ať už s `key` nebo bez) a zabrání přidání dalších.\r\n */\r\n public dispose(): void {\r\n if (this._isDisposed) {\r\n return;\r\n }\r\n\r\n this._isDisposed = true;\r\n this.removeAllListeners();\r\n }\r\n}\r\n","import { IListenerInfo, StandardEventsController } from \"Global/Base/Utils/StandardEventsController\";\r\n\r\nexport type HTMLListenerCallback = (event: Event) => unknown;\r\n\r\ntype HTMLListenerElement = HTMLElement | Window | Document | Element;\r\n\r\nexport type IHTMLListenerInfo = IListenerInfo & {\r\n listenerType: keyof HTMLElementEventMap | string;\r\n callback: HTMLListenerCallback;\r\n element: HTMLListenerElement;\r\n};\r\n\r\nclass HTMLListenerInfo implements IHTMLListenerInfo {\r\n private _listenerType: keyof HTMLElementEventMap | string;\r\n private _callback: HTMLListenerCallback;\r\n private _element: HTMLListenerElement;\r\n private _options: EventListenerOptions;\r\n\r\n public get listenerType(): keyof HTMLElementEventMap | string {\r\n return this._listenerType;\r\n }\r\n\r\n public get callback(): HTMLListenerCallback {\r\n return this._callback;\r\n }\r\n\r\n public get element(): HTMLListenerElement {\r\n return this._element;\r\n }\r\n\r\n public get options(): EventListenerOptions {\r\n return this._options;\r\n }\r\n\r\n public key: string;\r\n\r\n constructor(listenerType: keyof HTMLElementEventMap | string, element: HTMLListenerElement, callback: HTMLListenerCallback, options: EventListenerOptions) {\r\n this._listenerType = listenerType;\r\n this._element = element;\r\n this._callback = callback;\r\n this._options = options;\r\n }\r\n\r\n public removeListener(options?: EventListenerOptions): void {\r\n this.element.removeEventListener(this.listenerType, this.callback, options || this.options);\r\n this._element = null;\r\n this._callback = null;\r\n this._options = null;\r\n }\r\n}\r\n\r\nexport type EventsControllerAddListenerParams = {\r\n /** Standardní `options` metody `addEventListener`. */\r\n options?: AddEventListenerOptions;\r\n};\r\n\r\nexport type EventsControllerAddListenerWithKeyParams = EventsControllerAddListenerParams & {\r\n /** Zároveň odváže všechny předchozí listenery se zadaným `key`. */\r\n removePrevious?: boolean;\r\n};\r\n\r\n/**\r\n * Slouží k navazování tesco eventů i DOM HTML listenerů. Pamatuje si všechny eventy a při dispose zase všechny odváže.\r\n * Pomáhá zabránit tomu, že někde zůstanou navázané eventy již disposnutých instancí.\r\n *\r\n * Také je možné navazovat eventy s unikátním klíčem `key` a kdykoliv odvázat jen eventy s daným klíčem.\r\n * @includeToDoc\r\n */\r\nexport class EventsController extends StandardEventsController {\r\n /**\r\n * Naváže listener na HTMLElement podle typu (přes `addEventListener`) a zapamatuje si jej.\r\n */\r\n public addListener<T extends keyof HTMLElementEventMap>(element: HTMLElement, type: T, callback: (this: HTMLElement, ev: HTMLElementEventMap[T]) => unknown, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener(element: HTMLElement, type: string, callback: (this: HTMLElement, ev: Event) => unknown, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener(element: HTMLElement, type: string, callback: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener<K extends keyof WindowEventMap>(window: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener(window: Window, type: string, listener: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener<T extends keyof DocumentEventMap>(document: Document, type: T, callback: (this: Document, ev: DocumentEventMap[T]) => unknown, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener(document: Document, type: string, callback: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerParams): IHTMLListenerInfo;\r\n public addListener<T extends keyof ElementEventMap>(element: Element, type: T, callback: (this: Element, ev: ElementEventMap[T]) => unknown, params?: EventsControllerAddListenerParams): IHTMLListenerInfo | null;\r\n public addListener(element: Element, type: string, callback: (this: Element, ev: Event) => unknown, params?: EventsControllerAddListenerParams): IHTMLListenerInfo | null;\r\n public addListener(element: Element, type: string, callback: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerParams): IHTMLListenerInfo | null;\r\n public addListener<T extends keyof HTMLElementEventMap | string>(element: HTMLListenerElement, type: T, callback: HTMLListenerCallback, params?: EventsControllerAddListenerParams): IHTMLListenerInfo {\r\n if (!element || this.isDisposed)\r\n return null;\r\n element.addEventListener(type, callback, params?.options);\r\n const listenerInfo = new HTMLListenerInfo(type, element, callback, params?.options);\r\n this._listeners.push(listenerInfo);\r\n return listenerInfo;\r\n }\r\n\r\n /**\r\n * Naváže listener na HTMLElement podle typu (přes `addEventListener`) a zapamatuje si jej pod klíčem key.\r\n * @param key Unikátní klíč, pod kterým se listener/listenery uloží.\r\n */\r\n public addListenerWithKey<T extends keyof HTMLElementEventMap>(key: string, element: HTMLElement, type: T, callback: (this: HTMLElement, ev: HTMLElementEventMap[T]) => unknown, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo;\r\n public addListenerWithKey(key: string, element: HTMLElement, type: string, callback: (this: HTMLElement, ev: Event) => unknown, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo;\r\n public addListenerWithKey(key: string, element: HTMLElement, type: string, callback: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo;\r\n public addListenerWithKey<T extends keyof ElementEventMap>(key: string, element: Element, type: T, callback: (this: Element, ev: ElementEventMap[T]) => unknown, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo | null;\r\n public addListenerWithKey(key: string, element: Element, type: string, callback: (this: Element, ev: Event) => unknown, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo | null;\r\n public addListenerWithKey(key: string, element: Element, type: string, callback: EventListenerOrEventListenerObject, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo | null;\r\n public addListenerWithKey<T extends keyof HTMLElementEventMap | string>(key: string, element: HTMLElement, type: T, callback: HTMLListenerCallback, params?: EventsControllerAddListenerWithKeyParams): IHTMLListenerInfo {\r\n if (params?.removePrevious)\r\n this.removeByKey(key);\r\n if (!element || this.isDisposed)\r\n return null;\r\n const listenerInfo = this.addListener(element, type, callback, params);\r\n listenerInfo.key = key;\r\n return listenerInfo;\r\n }\r\n\r\n /**\r\n * Odváže existující listener.\r\n */\r\n public removeListener<T extends keyof HTMLElementEventMap>(element: HTMLElement, type: T, callback: (this: HTMLElement, ev: HTMLElementEventMap[T]) => unknown, options?: EventListenerOptions): boolean;\r\n public removeListener(element: HTMLElement, type: string, callback: (this: HTMLElement, ev: Event) => unknown, options?: EventListenerOptions): boolean;\r\n public removeListener(element: HTMLElement, type: string, callback: EventListenerOrEventListenerObject, options?: EventListenerOptions): boolean;\r\n public removeListener<K extends keyof WindowEventMap>(window: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: EventListenerOptions): boolean;\r\n public removeListener(window: Window, type: string, listener: EventListenerOrEventListenerObject, options?: EventListenerOptions): boolean;\r\n public removeListener<T extends keyof DocumentEventMap>(document: Document, type: T, callback: (this: Document, ev: DocumentEventMap[T]) => unknown, options?: EventListenerOptions): boolean;\r\n public removeListener(document: Document, type: string, callback: EventListenerOrEventListenerObject, options?: EventListenerOptions): boolean;\r\n public removeListener<T extends keyof ElementEventMap>(element: Element, type: T, callback: (this: Element, ev: ElementEventMap[T]) => unknown, options?: EventListenerOptions): boolean;\r\n public removeListener(element: Element, type: string, callback: (this: Element, ev: Event) => unknown, options?: EventListenerOptions): boolean;\r\n public removeListener(element: Element, type: string, callback: EventListenerOrEventListenerObject, options?: EventListenerOptions): boolean;\r\n public removeListener<T extends keyof HTMLElementEventMap | string>(element: HTMLListenerElement, type: T, callback: HTMLListenerCallback, options?: EventListenerOptions): boolean {\r\n const listenerIndex = this._listeners.findIndex(listenerInfo => listenerInfo instanceof HTMLListenerInfo && listenerInfo.callback === callback && listenerInfo.element === element && listenerInfo.listenerType === type);\r\n if (listenerIndex < 0) {\r\n return false;\r\n }\r\n\r\n this._listeners[listenerIndex].removeListener(options);\r\n this._listeners.splice(listenerIndex, 1);\r\n\r\n return true;\r\n }\r\n}\r\n","import { GlobalContext } from \"../GlobalContext\";\r\nimport { DeferredStateful, PromiseUtils } from \"../Promises/PromiseUtils\";\r\n\r\nexport class TimerUtils {\r\n private static _waiterList: Map<any, number> = new Map<any, number>();\r\n private static _waiterListPrms: Map<any, DeferredStateful<void>> = new Map<any, DeferredStateful<void>>();\r\n private static _waiterIdList: Map<any, Map<any, number>> = new Map<any, Map<string, number>>();\r\n private static _intervalList: Map<any, { maxIter: number; curIter: number; intervaId: number }> = new Map<any, { maxIter: number; curIter: number; intervaId: number }>();\r\n //private static _intervalIdList: Map<any, Map<any, number>> = new Map<any, Map<string, number>>();\r\n\r\n public static waitOrCancelPromise(id: any): Promise<void> {\r\n if (TimerUtils._waiterList.has(id) && TimerUtils._waiterListPrms.has(id)) return TimerUtils._waiterListPrms.get(id)!.promise;\r\n return Promise.resolve();\r\n }\r\n public static waitOrCancel(id: any, action: () => void, miliseconds: number = 0): Promise<void> {\r\n let prom = PromiseUtils.deferStateful<void>();\r\n\r\n if (TimerUtils._waiterList.has(id)) {\r\n clearTimeout(TimerUtils._waiterList.get(id) as number);\r\n TimerUtils._waiterList.delete(id);\r\n }\r\n if (!TimerUtils._waiterListPrms.has(id)) {\r\n TimerUtils._waiterListPrms.set(id, prom);\r\n } else {\r\n prom = TimerUtils._waiterListPrms.get(id) as DeferredStateful<void>;\r\n }\r\n\r\n const item = self.setTimeout(() => {\r\n action();\r\n TimerUtils._waiterList.delete(id);\r\n TimerUtils._waiterListPrms.delete(id);\r\n prom.resolve();\r\n }, miliseconds);\r\n TimerUtils._waiterList.set(id, item);\r\n\r\n return prom.promise;\r\n }\r\n\r\n public static waitOrCancelInstance(instance: any, id: string, action: () => void, miliseconds: number = 0): void {\r\n let inst = TimerUtils._waiterIdList.get(instance);\r\n if (inst != undefined) {\r\n this._deleteWaiterIdListItemAndClearTimeout(instance, id);\r\n } else {\r\n TimerUtils._waiterIdList.set(instance, new Map<string, number>());\r\n inst = TimerUtils._waiterIdList.get(instance);\r\n }\r\n const item = self.setTimeout(() => {\r\n action();\r\n this._deleteWaiterIdListItemAndClearTimeout(instance, id);\r\n }, miliseconds);\r\n (inst as any).set(id, item);\r\n }\r\n\r\n private static _deleteWaiterIdListItemAndClearTimeout(instance: any, id: string): void {\r\n const inst = TimerUtils._waiterIdList.get(instance);\r\n if (inst != undefined) {\r\n if (inst.has(id)) {\r\n clearTimeout(inst.get(id) as number);\r\n inst.delete(id);\r\n }\r\n if (inst.size == 0)\r\n TimerUtils._waiterIdList.delete(instance);\r\n TimerUtils._waiterListPrms.delete(id);\r\n }\r\n }\r\n\r\n /**\r\n * Nastavi interval, ktery bude probihat tak dlouho dokud funkce nevrati false a nebo nedosahne maximalniho poctu iteraci, ktery byl nastaven.\r\n * Pokud je tato metoda volana nekolikrat za sebou se stejnym ID, vzdy se provede smazani stare a inicializace nove.\r\n *\r\n * @param id identifikator\r\n * @param action Spustena metoda\r\n * @param miliseconds Jak casto se bude opakovat\r\n * @param maxIter Maximalni pocet opakovani\r\n */\r\n public static intervalOrCancel(id: any, action: () => boolean, miliseconds: number = 0, maxIter: number = 0): void {\r\n if (TimerUtils._intervalList.has(id)) {\r\n const intervalData = TimerUtils._intervalList.get(id);\r\n clearInterval((intervalData as any).intervaId as number);\r\n TimerUtils._intervalList.delete(id);\r\n }\r\n\r\n const item = self.setInterval(() => {\r\n const intervalData = TimerUtils._intervalList.get(id);\r\n if (intervalData == undefined)\r\n throw Error(\"Object is undefined\");\r\n\r\n if (action()) {\r\n clearInterval(intervalData.intervaId as number);\r\n TimerUtils._intervalList.delete(id);\r\n return;\r\n }\r\n\r\n if (intervalData.maxIter > 0) {\r\n if (intervalData.curIter == 0) {\r\n clearInterval(intervalData.intervaId as number);\r\n TimerUtils._intervalList.delete(id);\r\n } else {\r\n intervalData.curIter--;\r\n }\r\n }\r\n }, miliseconds);\r\n\r\n TimerUtils._intervalList.set(id, {\r\n intervaId: item,\r\n maxIter: maxIter,\r\n curIter: maxIter,\r\n });\r\n }\r\n}\r\n\r\nGlobalContext.registerType(TimerUtils);\r\n","export interface IWidgetResizableEventTarget extends IWidgetSortableEventTarget {\r\n addEventListener(type: \"resizablestart\", listener: (ev: CustomEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"resizabledrag\", listener: (ev: IWidgetResizeEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"resizableend\", listener: (ev: CustomEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: any, useCapture?: boolean): void;\r\n}\r\n\r\nexport interface IWidgetSortableEventTarget extends IWidgetSwipeEventTarget {\r\n addEventListener(type: \"sortablestart\", listener: (ev: IWidgetSortableStartEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"sortabledrag\", listener: (ev: IWidgetSortableStopEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"sortablestop\", listener: (ev: IWidgetSortableStopEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: any, useCapture?: boolean): void;\r\n}\r\nexport interface IWidgetSwipeEventTarget {\r\n addEventListener(type: \"widgetSwipe\", listener: (ev: IWidgetTouchSwipeEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\r\n}\r\n\r\nexport interface IBooleanDetailValueEvent extends CustomEvent {\r\n detail: IBooleanDetailValueEventData;\r\n}\r\n\r\nexport interface IBooleanDetailValueEventData {\r\n value: boolean;\r\n}\r\n\r\nexport interface IStringDetailValueEvent extends CustomEvent {\r\n detail: IStringDetailValueEventData;\r\n}\r\n\r\nexport interface IStringDetailValueEventData {\r\n value: string;\r\n}\r\n\r\nexport interface IAttributeChangeEvent extends CustomEvent {\r\n detail: IAttributeChangeEvent;\r\n}\r\n\r\nexport interface IAttributeChangeEventData {\r\n attrName: string;\r\n oldVal: string;\r\n newVal: string;\r\n}\r\n\r\nexport interface IWidgetResizeEvent extends CustomEvent {\r\n detail: {\r\n width: number;\r\n height: number;\r\n };\r\n}\r\n\r\nexport interface IWidgetTouchSwipeEvent extends CustomEvent {\r\n detail: {\r\n direction: string;\r\n };\r\n}\r\n\r\nexport interface IWidgetSortableStopEvent extends CustomEvent {\r\n detail: {\r\n element: Element;\r\n ui: JQueryUISortableUIParams;\r\n };\r\n}\r\n\r\n/**Interface pro JQueryUI.SortableUIParams */\r\nexport interface JQueryUISortableUIParams {\r\n helper: any;\r\n item: any;\r\n offset: any;\r\n position: any;\r\n originalPosition: any;\r\n sender: any;\r\n placeholder: any;\r\n}\r\n\r\nexport interface IWidgetSortableStartEvent extends CustomEvent {\r\n detail: {\r\n element: Element;\r\n placeholder: Element;\r\n };\r\n}\r\n\r\nexport interface IFileUploadEvent extends CustomEvent {\r\n detail: IFileUploadEventData;\r\n}\r\n\r\nexport interface IFileUploadEventData {\r\n files: File[];\r\n}\r\n\r\nexport interface IFileUploadPrevEvent extends CustomEvent {\r\n detail: IFileUploadPrevEventData;\r\n}\r\n\r\nexport interface IFileUploadPrevEventData {\r\n files: File[];\r\n cancelled?: boolean;\r\n}\r\n\r\n/** Událost stažení dokumentu */\r\nexport interface IFileDownloadEvent extends CustomEvent {\r\n detail: IFileDownloadEventData;\r\n}\r\n\r\n/** Dodatečné informace potřebné pro stažení dokumentu */\r\nexport interface IFileDownloadEventData {\r\n isArchiveDocument: boolean;\r\n}\r\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n///<reference path=\"../UI/External/JQuery/jquery/jquery.d.ts\"/>\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n///<reference path=\"../UI/External/JQuery/jqueryui/jqueryui.d.ts\"/>\r\n/**\r\n * Interface definujici události pro element tsc-control\r\n */\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { ICompositeComponent } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { CaseInsensitiveMap } from \"../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { IDisposable } from \"../../Global/Base/IDisposable\";\r\nimport { TimerUtils } from \"../../Global/Base/Utils/TimerUtils\";\r\nimport { EventsController } from \"../../Global/Dom/EventsController\";\r\nimport { ElementUtils } from \"../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { GenericControl } from \"./GenericControl\";\r\nimport {\r\n IAttributeChangeEvent,\r\n IAttributeChangeEventData,\r\n IBooleanDetailValueEvent,\r\n IBooleanDetailValueEventData,\r\n IStringDetailValueEvent,\r\n IStringDetailValueEventData,\r\n IWidgetResizableEventTarget,\r\n} from \"./IEvent\";\r\n\r\nexport interface Control extends IWidgetResizableEventTarget {\r\n addEventListener(type: \"visibility\", listener: (ev: IBooleanDetailValueEvent) => any, options?: boolean | AddEventListenerOptions): void;\r\n addEventListener(type: \"enabled\", listener: (ev: IBooleanDetailValueEvent) => any, options?: boolean | AddEventListenerOptions): void;\r\n addEventListener(type: \"canvalueload\", listener: (ev: IBooleanDetailValueEvent) => any, options?: boolean | AddEventListenerOptions): void;\r\n addEventListener(type: \"culturechanged\", listener: (ev: IStringDetailValueEvent) => any, options?: boolean | AddEventListenerOptions): void;\r\n addEventListener(type: \"attributechange\", listener: (ev: IAttributeChangeEvent) => any, options?: boolean | AddEventListenerOptions): void;\r\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.control);\r\n\r\nexport class Control extends HTMLElement implements IDisposable, ICompositeComponent {\r\n //#region Fields\r\n private static _initialized: boolean = false;\r\n private static _staticListeners: CaseInsensitiveMap<Array<IRegisteredStaticEventListener>>;\r\n private static _styleElement: HTMLStyleElement;\r\n private static _counterElement: number = 0;\r\n\r\n protected _innerId: string;\r\n protected _culture: string;\r\n protected _visible: boolean = true;\r\n\r\n /**\r\n * Informace o tom, zda se ma na komponente pri odpojeni z DOMu automaticky zavolat dispose (vychozi: true)\r\n * @default true\r\n */\r\n public disposeOnDetach: boolean = true;\r\n\r\n private _listeners: CaseInsensitiveMap<IRegisteredEventListener>;\r\n private _reregisterListeners: Array<() => void>;\r\n protected _isAttached: boolean;\r\n private _widgets: any = {};\r\n private _afterAttach: Array<(item: Control) => void>;\r\n private _lastCanValueLoad: boolean = false;\r\n /**\r\n * Příznak jestli se jedná o kompozitní komponentu (složenou z dalších komponent)\r\n * Pozn. Má vliv na vyhodnocení práv. Pro kompozitní komponenty se nevyhodnocují práva na podřízených komponentách\r\n */\r\n public isCompositeComponent?: boolean;\r\n\r\n protected _eventsController = new EventsController();\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public static get styleElement(): HTMLStyleElement {\r\n if (!Control._styleElement) {\r\n const styleEl = document.head.getElementsByTagName(\"style\");\r\n if (styleEl.length > 0)\r\n Control._styleElement = styleEl[0];\r\n else {\r\n Control._styleElement = document.createElement(\"style\");\r\n document.head.appendChild(Control._styleElement);\r\n }\r\n }\r\n\r\n return Control._styleElement;\r\n }\r\n\r\n /**\r\n * Vrátí true, pokud je dokument připojen do DOMu\r\n */\r\n public get isAttached(): boolean {\r\n return this._isAttached;\r\n }\r\n\r\n //#region Enabled\r\n public set enabled(value: boolean) {\r\n this.setAttribute(\"enabled\", value.toString());\r\n\r\n this.callEvent(\"enabled\", { value: value } as IBooleanDetailValueEventData);\r\n }\r\n\r\n public get enabled(): boolean {\r\n const r = this.getAttribute(\"enabled\") as string;\r\n return DataConverter.toBoolean(r, true);\r\n }\r\n //#endregion Enabled\r\n\r\n //#region Visible\r\n public set visible(value: boolean) {\r\n const oldValue = this._visible;\r\n this._visible = value;\r\n this.classList.toggle(\"hidden\", !value);\r\n if (value) {\r\n this.style.display = \"\";\r\n } else {\r\n this.style.display = \"none\";\r\n }\r\n if (oldValue !== value) {\r\n TimerUtils.waitOrCancel(\"control_visible\" + this._innerId, () => {\r\n this.callEvent(\"visibility\", { value: value } as IBooleanDetailValueEventData);\r\n }, 50);\r\n }\r\n }\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n //#endregion Visible\r\n\r\n //#region Culture\r\n /** Pole obsahujicí lokalizancni kulturu pro nastaveni formatovani aj. pouze pro dany kontrol, pokud je undefined je pouzita vychozi */\r\n public get culture(): string {\r\n return this._culture;\r\n }\r\n\r\n public set culture(value: string) {\r\n this._culture = value;\r\n\r\n this.callEvent(\"culturechanged\", { value: value } as IStringDetailValueEventData);\r\n }\r\n //#endregion Culture\r\n\r\n /**\r\n * Vraci informace o tom, zda je mozne nacitat hodnotu (zda je objekt viditelny z pohledu práv)\r\n */\r\n public get canValueLoad(): boolean {\r\n if (this.visible) {\r\n return GenericControl.allParents(this as HTMLElement, (el: HTMLElement) => {\r\n if (el instanceof Control)\r\n return (el as Control).visible;\r\n if (el.style.display === \"none\")\r\n return false;\r\n else\r\n return true;\r\n });\r\n } else\r\n return false;\r\n }\r\n\r\n protected static get observedAttributes(): string[] {\r\n return [\"culture\"];\r\n }\r\n //#endregion Properties\r\n\r\n //#region Methods\r\n private static _initStatic(): void {\r\n if (Control._initialized)\r\n return;\r\n Control._initialized = true;\r\n Control._staticListeners = new CaseInsensitiveMap<Array<IRegisteredStaticEventListener>>();\r\n }\r\n\r\n public afterAttach(fnc: (item: Control) => void): void {\r\n this._afterAttach.push(fnc);\r\n\r\n if (this.isAttached)\r\n fnc(this);\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this._listeners = new CaseInsensitiveMap<IRegisteredEventListener>();\r\n this._reregisterListeners = [];\r\n this._afterAttach = [];\r\n this._innerId = Control.getID();\r\n this._visible = true;\r\n this._widgets = {\r\n dispose: [],\r\n };\r\n\r\n this.classList.add(\"CustomControl\");\r\n\r\n this._isAttached = false;\r\n Control._initStatic();\r\n\r\n this.registerEventListenerWithReregister(\"visibility\", () => {\r\n const val = this.canValueLoad;\r\n if (val === this._lastCanValueLoad)\r\n return;\r\n\r\n this._lastCanValueLoad = val;\r\n this.callEvent(\"canvalueload\", { value: val } as IBooleanDetailValueEventData);\r\n\r\n // vyvolani události pro podrizene prvky\r\n const EL_LIST = Array.from(this.children as HTMLCollection) as HTMLElement[];\r\n\r\n for (const htc of EL_LIST) {\r\n const htControl = htc as Control;\r\n if (htControl && htControl instanceof Control) {\r\n htControl.callEvent(\"canvalueload\", { value: val } as IBooleanDetailValueEventData);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected connectedCallback(): void {\r\n this._isAttached = true;\r\n\r\n const reregisterEvents = this._reregisterListeners;\r\n this._reregisterListeners = [];\r\n for (const f of reregisterEvents) f();\r\n\r\n for (const f of this._afterAttach) {\r\n f(this);\r\n }\r\n this.callEvent(\"attached\");\r\n }\r\n\r\n protected disconnectedCallback(): void {\r\n this._isAttached = false;\r\n if (this.disposeOnDetach) this.dispose();\r\n this.callEvent(\"detached\");\r\n }\r\n\r\n protected attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n this.callEvent(\"attributechange\", {\r\n attrName: attrName,\r\n oldVal: oldVal,\r\n newVal: newVal,\r\n } as IAttributeChangeEventData);\r\n\r\n switch (attrName) {\r\n case \"culture\":\r\n this.culture = newVal;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Metoda, která vrací true nebo false, na základě fyzické viditelnosti prvku\r\n */\r\n public static isElementVisible(element: HTMLElement): boolean {\r\n return GenericControl.isElementVisible(element);\r\n }\r\n\r\n /**\r\n * Metoda, která vrací true nebo false, na základě fyzické viditelnosti prvku (prohleda i nadrazene prvky, jestli jsou skryte)\r\n */\r\n public isVisible(): boolean {\r\n return Control.isElementVisible(this);\r\n }\r\n\r\n //#region Widgets\r\n //#region Swipe widget\r\n /**\r\n * Aktivuje udalosti pro swipe\r\n */\r\n public widgetTouchSwipe(status: boolean = true): void {\r\n this.unregisterEventListenerById(\"widget_swipe_touchstart\");\r\n this.unregisterEventListenerById(\"widget_swipe_touchmove\");\r\n this.unregisterEventListenerById(\"widget_swipe_touchend\");\r\n\r\n if (!status)\r\n return;\r\n\r\n if (!this._widgets.touchSwipe) {\r\n this._widgets.touchSwipe = {\r\n registered: true,\r\n };\r\n this._widgets.dispose.push(() => {\r\n this.unregisterEventListenerById(\"widget_swipe_touchstart\");\r\n this.unregisterEventListenerById(\"widget_swipe_touchmove\");\r\n this.unregisterEventListenerById(\"widget_swipe_touchend\");\r\n });\r\n }\r\n\r\n let swipedir: string,\r\n startX: number,\r\n startY: number,\r\n distX: number,\r\n distY: number;\r\n const threshold = 150, //minimalni vzdalenost pro vyvolani swipe\r\n restraint = 100, // maximalni vzdalenost v kolmem smeru\r\n allowedTime = 300; // maximalni dobra provadeni pohybu aby se to bralo jako swipe\r\n let elapsedTime: number,\r\n startTime: number;\r\n\r\n this.registerEventListener(\"touchstart\", (e: TouchEvent) => {\r\n const touchobj = e.changedTouches[0];\r\n swipedir = \"none\";\r\n distX = distY = 0;\r\n startX = touchobj.pageX;\r\n startY = touchobj.pageY;\r\n startTime = new Date().getTime(); // cas prvniho dotyku\r\n //e.preventDefault();\r\n }, \"widget_swipe_touchstart\");\r\n\r\n this.registerEventListener(\"touchmove\", (_e: TouchEvent) => {\r\n //e.preventDefault();\r\n }, \"widget_swipe_touchmove\");\r\n\r\n this.registerEventListener(\"touchend\", (e: TouchEvent) => {\r\n const touchobj = e.changedTouches[0];\r\n distX = touchobj.pageX - startX;\r\n distY = touchobj.pageY - startY;\r\n elapsedTime = new Date().getTime() - startTime;\r\n if (elapsedTime <= allowedTime) {\r\n if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) {\r\n swipedir = (distX < 0) ? \"left\" : \"right\"; // pokud je distX negativni je to levy swipe\r\n } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) {\r\n swipedir = (distY < 0) ? \"up\" : \"down\"; // pokud je distY negativni je to swipe nahoru\r\n }\r\n }\r\n\r\n this.callEvent(\"widgetSwipe\", {\r\n direction: swipedir,\r\n });\r\n\r\n //e.preventDefault();\r\n }, \"widget_swipe_touchend\");\r\n }\r\n //#endregion Swipe widget\r\n\r\n //#region Sortable widget\r\n /**\r\n * Nastavi elementu, zda je mozne jej rozsirovat\r\n * @param status Parametr obsahujici aktivaci nebo deaktivaci resizovani\r\n * @param options\r\n */\r\n public widgetSortable(status: boolean = true, options: IControlSortableOptions = {}): void {\r\n this._sortableRegisterDefaultVars();\r\n if (!status) {\r\n if (!this._widgets.sortable.isSortable)\r\n return;\r\n this._widgets.sortable.isSortable = false;\r\n\r\n $(this).sortable(\"destroy\");\r\n //this.sortableRegisterDefaultVars();\r\n } else {\r\n if (this._widgets.sortable.isSortable)\r\n return;\r\n this._widgets.sortable.isSortable = true;\r\n //this.sortableOptionsParse(options);\r\n $(this).sortable({\r\n helper: \"clone\", // Zabraňuje spuštění dalších událostí (click)\r\n start: (_e: JQueryEventObject, ui: JQueryUI.SortableUIParams) => {\r\n ui.item.oldIndex = ui.item.index(); // Umožní zjistit předchozí pozici\r\n this.callEvent(\"sortablestart\", {\r\n element: ui.item[0],\r\n placeholder: ui.placeholder[0],\r\n }, true);\r\n },\r\n sort: (_e: JQueryEventObject, ui: JQueryUI.SortableUIParams) => {\r\n this.callEvent(\"sortabledrag\", {\r\n element: ui.item[0],\r\n });\r\n },\r\n stop: (_e: JQueryEventObject, ui: JQueryUI.SortableUIParams) => {\r\n //logger.log(e, ui);\r\n this.callEvent(\"sortablestop\", {\r\n element: ui.item[0],\r\n ui: ui,\r\n }, true);\r\n },\r\n scroll: true,\r\n items: options.items || \"> *:not(:first)\",\r\n axis: options.axis,\r\n distance: options.distance,\r\n handle: options.handle || this,\r\n });\r\n }\r\n }\r\n\r\n private _sortableRegisterDefaultVars(): void {\r\n if (!this._widgets.sortable) {\r\n //this.widgets.dispose.push(() => this.sortableUnregisterListeners());\r\n this._widgets.sortable = {\r\n isSorting: false,\r\n isSortable: false,\r\n items: [],\r\n placeholderElement: null,\r\n };\r\n }\r\n }\r\n\r\n //private sortableOptionsParse(options: IControlSortableOptions = {}) {\r\n // this.classList.add(\"sortableWidget\");\r\n\r\n // this.widgets.sortable.items = Array.from(document.querySelectorAll(`:scope ${options.items ? options.items : \"> *\"}`));\r\n\r\n // for (let ch of this.widgets.sortable.items) {\r\n // const handleElement = options.handle ? ch.querySelector(`:scope ${options.handle}`) : ch;\r\n // ch.classList.add(\"sortableItem\");\r\n // handleElement.classList.add(\"sortable-handle\");\r\n\r\n // Control.registerEventListener(\"sortableWidget\", handleElement, \"mousedown\", (e: MouseEvent) => {\r\n // e.stopPropagation();\r\n // this.sortableMouseStart(e, options);\r\n // });\r\n // }\r\n //}\r\n\r\n //private sortableUnregisterListeners() {\r\n // Control.unregisterEventListener(\"sortableWidget\");\r\n\r\n // this.classList.remove(\"sortableWidget\");\r\n //}\r\n\r\n //#endregion Sortable widget\r\n\r\n //#region Resizable Widget\r\n /**\r\n * Nastavi elementu, zda je mozne jej rozsirovat\r\n * @param status Parametr obsahujici aktivaci nebo deaktivaci resizovani\r\n * @param options\r\n */\r\n public widgetResizable(status: boolean = true, options: IControlResizableOptions = {}): void {\r\n this._resizableRegisterDefaultVars();\r\n if (!status) {\r\n if (!this._widgets.resizable.isResizable)\r\n return;\r\n this._widgets.resizable.isResizable = false;\r\n this._resizableUnregisterListeners();\r\n } else {\r\n if (this._widgets.resizable.isResizable && this.classList.contains(\"resizableWidget\"))\r\n return;\r\n this._widgets.resizable.isResizable = true;\r\n this._resizableOptionsParse(options);\r\n }\r\n }\r\n\r\n private _resizableRegisterDefaultVars(): void {\r\n if (!this._widgets.resizable) {\r\n //this.widgets.dispose.push(() => this.resizableUnregisterListeners());\r\n this._widgets.resizable = {\r\n isResizing: false,\r\n isResizable: false,\r\n resizingDirection: \"x\",\r\n resizeXElement: null,\r\n resizeYElement: null,\r\n resizeXYElement: null,\r\n };\r\n }\r\n }\r\n\r\n private _resizableOptionsParse(options: IControlResizableOptions = {}): void {\r\n this.classList.add(\"resizableWidget\");\r\n\r\n let resizeX = options.handles && options.handles.x;\r\n const resizeY = options.handles && options.handles.y;\r\n const resizeXY = options.handles && options.handles.xy;\r\n\r\n if (!resizeX && !resizeY)\r\n resizeX = true;\r\n\r\n if (resizeX) {\r\n this._widgets.resizable.resizeXElement = document.createElement(\"div\");\r\n this._widgets.resizable.resizeXElement.classList.add(\"resizableHandle\", \"resizeHorizontal\");\r\n\r\n this._eventsController.addListener(this._widgets.resizable.resizeXElement, \"mousedown\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n this._widgets.resizable.resizingDirection = \"x\";\r\n this._widgets.resizable.isResizing = true;\r\n this._resizableMouseStart(e, options);\r\n });\r\n\r\n this._eventsController.addListener(this._widgets.resizable.resizeXElement, \"click\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n });\r\n this.appendChild(this._widgets.resizable.resizeXElement);\r\n }\r\n\r\n if (resizeY) {\r\n this._widgets.resizable.resizeYElement = document.createElement(\"div\");\r\n this._widgets.resizable.resizeYElement.classList.add(\"resizableHandle\", \"resizeVertical\");\r\n\r\n this._eventsController.addListener(this._widgets.resizable.resizeYElement, \"mousedown\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n this._widgets.resizable.isResizing = true;\r\n this._widgets.resizable.resizingDirection = \"y\";\r\n this._resizableMouseStart(e, options);\r\n });\r\n this._eventsController.addListener(this._widgets.resizable.resizeYElement, \"click\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n });\r\n this.appendChild(this._widgets.resizable.resizeYElement);\r\n }\r\n\r\n if (resizeXY) {\r\n this._widgets.resizable.resizeXYElement = document.createElement(\"div\");\r\n this._widgets.resizable.resizeXYElement.classList.add(\"resizableHandle\", \"resizeHorizontalVertical\");\r\n\r\n this._eventsController.addListener(this._widgets.resizable.resizeXYElement, \"mousedown\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n this._widgets.resizable.isResizing = true;\r\n this._widgets.resizable.resizingDirection = \"xy\";\r\n this._resizableMouseStart(e, options);\r\n });\r\n this._eventsController.addListener(this._widgets.resizable.resizeXYElement, \"click\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n });\r\n this.appendChild(this._widgets.resizable.resizeXYElement);\r\n }\r\n\r\n //this.registerEventListener(\"mousedown\", (e) => {\r\n // this.isResizing = true;\r\n //}, \"resizableWidgetMouseDown\");\r\n\r\n this._eventsController.addListener(window, \"mouseup\", (_e: MouseEvent) => {\r\n if (!this._widgets.resizable.isResizing)\r\n return;\r\n this._widgets.resizable.isResizing = false;\r\n this.classList.remove(\"resizable-resizing\");\r\n this.callEvent(\"resizablestop\", undefined, true);\r\n });\r\n\r\n this._eventsController.addListener(window, \"mousemove\", (e: MouseEvent) => {\r\n if (!this._widgets.resizable.isResizing)\r\n return;\r\n e.stopPropagation();\r\n this._resizableMouseDrag(e, options);\r\n }, { options: { passive: true } });\r\n }\r\n\r\n private _resizableMouseStart(event: MouseEvent, options: IControlResizableOptions): void {\r\n let curLeft: number, curTop: number;\r\n const o = options;\r\n if (!o.containment)\r\n o.containment = this.parentElement;\r\n\r\n this._widgets.resizable.isResizing = true;\r\n\r\n this._widgets.resizable.startOffset = this.offset();\r\n\r\n curLeft = this._widgets.resizable.startOffset.left;\r\n curTop = this._widgets.resizable.startOffset.top;\r\n\r\n if (o.containment) {\r\n curLeft += o.containment.scrollLeft || 0;\r\n curTop += o.containment.scrollTop || 0;\r\n }\r\n\r\n this._widgets.resizable.size = {\r\n width: this.offsetWidth,\r\n height: this.offsetHeight,\r\n };\r\n\r\n this._widgets.resizable.originalSize = {\r\n width: this.offsetWidth,\r\n height: this.offsetHeight,\r\n };\r\n\r\n this._widgets.resizable.originalPosition = { left: curLeft, top: curTop };\r\n this._widgets.resizable.originalMousePosition = { left: event.pageX, top: event.pageY };\r\n\r\n this.classList.add(\"resizable-resizing\");\r\n this.callEvent(\"resizablestart\");\r\n }\r\n\r\n private _resizableMouseDrag(event: MouseEvent, _options: IControlResizableOptions): void {\r\n if (this._widgets.resizable.isResizing) {\r\n if (this._widgets.resizable.resizingDirection === \"x\" || this._widgets.resizable.resizingDirection === \"xy\") {\r\n this.style.width = `${this._widgets.resizable.size.width + event.movementX}px`;\r\n this._widgets.resizable.size.width = this._widgets.resizable.size.width + event.movementX;\r\n }\r\n if (this._widgets.resizable.resizingDirection === \"y\" || this._widgets.resizable.resizingDirection === \"xy\") {\r\n this.style.height = `${this._widgets.resizable.size.height + event.movementY}px`;\r\n this._widgets.resizable.size.height = this._widgets.resizable.size.height + event.movementY;\r\n }\r\n this.callEvent(\"resizabledrag\", this._widgets.resizable.size);\r\n }\r\n }\r\n\r\n private _resizableUnregisterListeners(): void {\r\n this.unregisterEventListenerById(\"resizableWidgetMouseDown\");\r\n Control.unregisterEventListener(\"resizableWidget\");\r\n\r\n this.classList.remove(\"resizableWidget\");\r\n if (this._widgets.resizable.resizeYElement)\r\n this._widgets.resizable.resizeYElement.remove();\r\n if (this._widgets.resizable.resizeXElement)\r\n this._widgets.resizable.resizeXElement.remove();\r\n if (this._widgets.resizable.resizeXYElement)\r\n this._widgets.resizable.resizeXYElement.remove();\r\n }\r\n //#endregion Resizable Widget\r\n //#endregion\r\n\r\n /**\r\n * Vrátí pozici elementu v rámci dokumentu\r\n */\r\n public offset(): { top: number; left: number } {\r\n return ElementUtils.offset(this);\r\n }\r\n\r\n public static getID(): string {\r\n if (!Control._counterElement)\r\n Control._counterElement = 0;\r\n return `_id_control_${Control._counterElement++}`;\r\n }\r\n\r\n private _registerEventListener(event: string, listener: EventListener, options?: IRegisterListenerOptions): string {\r\n const listenerName = options?.customId ?? `${Control.getID()}_${event}`;\r\n\r\n if (options?.customId && this._listeners.has(options?.customId))\r\n throw Error(\"Id has been registered\");\r\n\r\n this._listeners.set(listenerName, {\r\n action: listener,\r\n event: event,\r\n options: {\r\n ...options,\r\n reregister: options?.reregister ?? false,\r\n once: options?.once ?? false,\r\n },\r\n });\r\n\r\n if (options?.once) {\r\n const F_CALL = (evt: Event) => {\r\n this.removeEventListener(event, F_CALL);\r\n this._listeners.delete(listenerName);\r\n listener(evt);\r\n };\r\n this.addEventListener(event, F_CALL, options?.options);\r\n } else {\r\n this.addEventListener(event, listener, options?.options);\r\n }\r\n\r\n return listenerName;\r\n }\r\n\r\n /**\r\n * Zaregistruje listener události, který je po detachi automaticky odregistrován\r\n * @param event Název události\r\n * @param listener Akce při vyvolání události\r\n * @param withReregister Pokud je nastaveno na true tak je po opětovném připojení znovu zaregistrovan\r\n */\r\n public registerEventListener(event: string, listener: EventListener, customId?: string, options?: boolean | AddEventListenerOptions): void {\r\n this._registerEventListener(event, listener, {\r\n customId: customId,\r\n options: options,\r\n reregister: false,\r\n });\r\n }\r\n\r\n /**\r\n * Událost, které je zavolána pouze jednou potom je odregistrována\r\n * @param event Název události\r\n * @param listener Akce při vyvolání události\r\n */\r\n public registerEventListenerOnce(event: string, listener: EventListener): void {\r\n this._registerEventListener(event, listener, { once: true });\r\n }\r\n\r\n /**\r\n * Zaregistruje listener události, který je po detachi automaticky odregistrován a při opětovném attachi znovu zaregistrován\r\n * @param event Název události\r\n * @param listener Akce při vyvolání události\r\n */\r\n public registerEventListenerWithReregister(event: string, listener: EventListener, options?: boolean | AddEventListenerOptions): void {\r\n if (this.isAttached) {\r\n this._registerEventListener(event, listener, {\r\n reregister: true,\r\n options: options,\r\n });\r\n } else {\r\n this._reregisterListeners.push(() => {\r\n this._registerEventListener(event, listener, {\r\n reregister: true,\r\n options: options,\r\n });\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Zaregistruje listener do skupiny událostí, tyto listenery jsou po detachi automaticky odregistrovány\r\n * @param groupId ID skupiny udalosti\r\n * @param element Element pro ktery se bude udalost registrovat\r\n * @param event Nazev udalosti\r\n * @param action Akce vyvolana pri udalosti\r\n */\r\n public static registerEventListener(groupId: string, element: Element | Document, event: string, action: (e: Event) => void): void {\r\n let data: Array<IRegisteredStaticEventListener>;\r\n if (Control._staticListeners.has(groupId))\r\n data = Control._staticListeners.get(groupId);\r\n else\r\n data = [];\r\n\r\n data.push({\r\n action: action,\r\n event: event,\r\n element: element,\r\n options: {\r\n reregister: false,\r\n once: false,\r\n },\r\n });\r\n\r\n Control._staticListeners.set(groupId, data);\r\n element.addEventListener(event, action);\r\n }\r\n\r\n /**\r\n * Odregistruje akce pro danou skupinu\r\n * @param groupId Identifikator skupiny\r\n * @param element Pokud chceme odebrat pro konkretni element\r\n * @param event Pokud chceme v elementu odebrat pro konkretni udalost\r\n * @param action Pokud chceme v udalosti odebrat pro konkretní akci\r\n */\r\n public static unregisterEventListener(groupId: string, element?: Element | Document, event?: string, action?: (e: Event) => void): void {\r\n if (!groupId)\r\n throw Error(\"Undefined groupId parameter\");\r\n if (!Control._staticListeners.has(groupId))\r\n return;\r\n\r\n const data = Control._staticListeners.get(groupId);\r\n const newData: Array<IRegisteredStaticEventListener> = [];\r\n const allDelete = !element && !event && !action;\r\n\r\n for (const d of data) {\r\n if (allDelete) {\r\n d.element.removeEventListener(d.event, d.action);\r\n } else {\r\n if (element) {\r\n if (element == d.element) {\r\n if (event) {\r\n if (event === d.event) {\r\n if (action) {\r\n if (action == d.action) {\r\n d.element.removeEventListener(d.event, d.action);\r\n } else\r\n newData.push(d);\r\n } else\r\n d.element.removeEventListener(d.event, d.action);\r\n } else\r\n newData.push(d);\r\n } else\r\n d.element.removeEventListener(d.event, d.action);\r\n } else {\r\n newData.push(d);\r\n }\r\n } else {\r\n d.element.removeEventListener(d.event, d.action);\r\n }\r\n }\r\n }\r\n\r\n if (newData.length === 0)\r\n Control._staticListeners.delete(groupId);\r\n else if (newData.length !== data.length)\r\n Control._staticListeners.set(groupId, newData);\r\n }\r\n\r\n /**\r\n * Odregistruje udalost. Pokud neni vyplnen zadny parametr, jsou odregistrovany vsechny udalosti. Pokud je vyplnen pouze event, odregistruje vsechny udalosti daneho typu\r\n * pokud je vyplnen event a action, odregistruje pouze konkretni akci\r\n * @param event Event, ktery chcete odregistrovat.\r\n * @param action Akce, ktere se tyka event a chcete ji odregistrovat\r\n */\r\n public unregisterEventListener(event?: string, action?: (e: Event) => void): void {\r\n const F_DEL = (key: string, data: IRegisteredEventListener) => {\r\n this.removeEventListener(data.event, data.action);\r\n const d = this._listeners.get(key);\r\n if (d.options.reregister) {\r\n this._reregisterListeners.push(() => {\r\n this._registerEventListener(d.event, d.action, d);\r\n });\r\n }\r\n this._listeners.delete(key);\r\n };\r\n\r\n for (const [key, data] of this._listeners.entries()) {\r\n if (event) {\r\n if (event === data.event) {\r\n if (action) {\r\n if (action === data.action)\r\n F_DEL(key, data);\r\n } else\r\n F_DEL(key, data);\r\n }\r\n } else\r\n F_DEL(key, data);\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí nalezené eventlistenery pro danou akci\r\n * @param event Event, ktery chcete vyhledat.\r\n */\r\n public getEventListeners(event: string): Array<(e: Event) => void> {\r\n const listeners: Array<(e: Event) => void> = [];\r\n for (const e of this._listeners) {\r\n if (event === e[1].event)\r\n listeners.push(e[1].action);\r\n }\r\n\r\n return listeners;\r\n }\r\n\r\n /**\r\n * Odebere listener události na základě customId\r\n * @param customId Custom id události\r\n */\r\n public unregisterEventListenerById(customId: string): void {\r\n if (this._listeners.has(customId)) {\r\n const ev = this._listeners.get(customId);\r\n this.removeEventListener(ev.event, ev.action);\r\n this._listeners.delete(customId);\r\n }\r\n }\r\n\r\n /**\r\n * Zavolá událost na elementu\r\n * @param eventName Název události\r\n * @param detail Podrobnosti události\r\n * @param bubbles Zda má událost probublávat DOMem nebo ne\r\n * @param cancelable Zda může být událost zrušena a zda může být voláno preventDefault()\r\n * @return Vrátí customEvent\r\n */\r\n public callEvent<DetailType>(eventName: string, detail?: DetailType, bubbles: boolean = false, cancelable: boolean = false): CustomEvent {\r\n return ElementUtils.callEvent(this, eventName, detail, bubbles, cancelable);\r\n }\r\n //#endregion Methods\r\n\r\n public dispose(): void {\r\n this.unregisterEventListener();\r\n\r\n if (this._widgets.dispose && Array.isArray(this._widgets.dispose)) {\r\n for (const f of this._widgets.dispose) {\r\n try {\r\n f();\r\n } catch (e) {\r\n logger.error(\"dispose function error\");\r\n }\r\n }\r\n }\r\n\r\n this._eventsController?.dispose();\r\n }\r\n}\r\n\r\nexport type IRegisterListenerOptions = {\r\n customId?: string;\r\n /** Bude znova zaregistrovan po připojeni do DOM */\r\n reregister?: boolean;\r\n options?: boolean | AddEventListenerOptions;\r\n /** Bude zavolan pouze jednou */\r\n once?: boolean;\r\n};\r\n\r\nexport interface IRegisteredEventListener {\r\n action: (e: Event) => void;\r\n event: string;\r\n options: IRegisterListenerOptions;\r\n}\r\n\r\nexport interface IRegisteredStaticEventListener extends IRegisteredEventListener {\r\n element: Element | Document;\r\n}\r\n\r\n//#region Widget Options\r\nexport interface IControlResizableOptions {\r\n handles?: {\r\n x?: boolean; // ve vychozim stavu povoleno, jinak povoleni resizovani v ose xy\r\n y?: boolean; // povoleni resizovani v ose y\r\n xy: boolean; // povoleni resizovani v ose x/y soucasne\r\n };\r\n containment?: HTMLElement;\r\n}\r\n\r\nexport interface IControlSortableOptions {\r\n handle?: string; //selector\r\n items?: string; //selector\r\n containment?: HTMLElement;\r\n distance?: number; // pocet pixelu nez zacne trideni\r\n axis?: string;\r\n}\r\n//#endregion Widget Options\r\n\r\nregisterCustomElement(\"tsc-control\", Control);\r\n","import { allParents, findParent, hasParent } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IRegisteredStaticEventListener } from \"./Control\";\r\n\r\nexport class GenericControl {\r\n private static _listeners: Map<Element | Document, Array<IRegisteredStaticEventListener>> = new Map<Element | Document, Array<IRegisteredStaticEventListener>>();\r\n private static _counterElement: number = 0;\r\n\r\n public static getID(): string {\r\n if (!GenericControl._counterElement)\r\n GenericControl._counterElement = 0;\r\n return `_id_control_${GenericControl._counterElement++}`; // `\r\n }\r\n\r\n public static _constructor(element: HTMLElement): void {\r\n element.classList.add(\"CustomControl\");\r\n }\r\n\r\n /**\r\n * Metoda, která vrací true nebo false, na základě fyzické viditelnosti prvku\r\n */\r\n public static isElementVisible(element: HTMLElement): boolean {\r\n return GenericControl.allParents(element, (el: HTMLElement) => el.style.display !== \"none\");\r\n }\r\n\r\n /**\r\n * Hledá první rodičovský element předaného elementu, který odpovídá zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector, první vyhovující rodič je vrácen nebo null\r\n */\r\n public static findParent(startElement: HTMLElement, comparePredicate: string | ((el: HTMLElement) => boolean)): HTMLElement {\r\n return findParent(startElement, comparePredicate);\r\n }\r\n\r\n /**\r\n * Hledá, zda existuje nějaký rodičovský element předaného elementu, který odpovídá zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector\r\n */\r\n public static hasParent(startElement: HTMLElement, comparePredicate: string | ((el: HTMLElement) => boolean)): boolean {\r\n return hasParent(startElement, comparePredicate);\r\n }\r\n\r\n /**\r\n * Kontroluje, zda všechny rodičovské elementy předaného elementu odpovídají zadanému predikátu\r\n * @param startElement Element, kterého rodiče se mají prohledávat\r\n * @param comparePredicate Porovnávací predikát nebo selector\r\n * @param checkStartElement Kontrola začíná už na předaném startElement-u\r\n */\r\n public static allParents(startElement: HTMLElement, comparePredicate: string | ((el: HTMLElement) => boolean), checkStartElement: boolean = true): boolean {\r\n return allParents(startElement, comparePredicate, checkStartElement);\r\n }\r\n\r\n /**\r\n * Vrátí pozici elementu v rámci dokumentu\r\n * @param elem Element, kterého se to týka\r\n */\r\n public static offset(elem: HTMLElement): { top: number; left: number; width: number; height: number } {\r\n const doc = elem && elem.ownerDocument;\r\n if (!doc) {\r\n return null;\r\n }\r\n\r\n const docElem = doc.documentElement;\r\n const box = elem.getBoundingClientRect();\r\n const win = doc.defaultView;\r\n return {\r\n top: box.top + win.pageYOffset - docElem.clientTop,\r\n left: box.left + win.pageXOffset - docElem.clientLeft,\r\n width: box.width,\r\n height: box.height,\r\n };\r\n }\r\n\r\n public static attributeChangedCallback(element: HTMLElement, attrName: string, oldVal: string, newVal: string): void {\r\n GenericControl.callEvent(element, \"attributechange\", {\r\n attrName: attrName,\r\n oldVal: oldVal,\r\n newVal: newVal,\r\n });\r\n }\r\n\r\n /**\r\n * Zavolá událost na elementu\r\n * @param eventName Název události\r\n * @param detail Podrobnosti události\r\n * @return Vrátí customEvent\r\n */\r\n public static callEvent(element: HTMLElement, eventName: string, detail?: any, bubbles: boolean = false, cancelable: boolean = false): CustomEvent {\r\n const param = {\r\n detail: detail,\r\n bubbles: bubbles,\r\n cancelable: cancelable,\r\n };\r\n const evt = new CustomEvent(eventName, param);\r\n element.dispatchEvent(evt);\r\n\r\n return evt;\r\n }\r\n\r\n /**\r\n * Zaregistruje událost do skupiny udalosti\r\n * @param groupId ID skupiny udalosti\r\n * @param element Element pro ktery se bude udalost registrovat\r\n * @param event Nazev udalosti\r\n * @param action Akce vyvolana pri udalosti\r\n */\r\n public static registerEventListener(element: Element | Document, event: string, action: (e: Event) => void): void {\r\n let data: Array<IRegisteredStaticEventListener>;\r\n if (GenericControl._listeners.has(element))\r\n data = GenericControl._listeners.get(element);\r\n else\r\n data = [];\r\n\r\n data.push({\r\n action: action,\r\n event: event,\r\n element: element,\r\n options: {\r\n reregister: false,\r\n once: false,\r\n },\r\n });\r\n\r\n GenericControl._listeners.set(element, data);\r\n element.addEventListener(event, action);\r\n }\r\n\r\n /**\r\n * Odregistruje akce pro danou skupinu\r\n * @param groupId Identifikator skupiny\r\n * @param element Pokud chceme odebrat pro konkretni element\r\n * @param event Pokud chceme v elementu odebrat pro konkretni udalost\r\n * @param action Pokud chceme v udalosti odebrat pro konkretní akci\r\n */\r\n public static unregisterEventListener(element: Element | Document, event?: string, action?: (e: Event) => void): void {\r\n if (!GenericControl._listeners.has(element))\r\n return;\r\n\r\n const data = GenericControl._listeners.get(element);\r\n const newData: Array<IRegisteredStaticEventListener> = [];\r\n const allDelete = !event && !action;\r\n\r\n for (const d of data) {\r\n if (allDelete) {\r\n d.element.removeEventListener(d.event, d.action);\r\n } else {\r\n if (element) {\r\n if (element == d.element) {\r\n if (event) {\r\n if (event === d.event) {\r\n if (action) {\r\n if (action == d.action) {\r\n d.element.removeEventListener(d.event, d.action);\r\n } else\r\n newData.push(d);\r\n } else\r\n d.element.removeEventListener(d.event, d.action);\r\n } else\r\n newData.push(d);\r\n } else\r\n d.element.removeEventListener(d.event, d.action);\r\n } else {\r\n newData.push(d);\r\n }\r\n } else {\r\n d.element.removeEventListener(d.event, d.action);\r\n }\r\n }\r\n }\r\n\r\n if (newData.length === 0)\r\n GenericControl._listeners.delete(element);\r\n else if (newData.length !== data.length)\r\n GenericControl._listeners.set(element, newData);\r\n }\r\n}\r\n","/**\r\n * Rozhraní umožňující zobrazit informaci o čekání na probíhající akci (loader)\r\n */\r\nexport interface ILoader {\r\n /**\r\n * Zobrazí loader\r\n */\r\n showLoader(): void;\r\n /**\r\n * Skryje loader\r\n */\r\n hideLoader(): void;\r\n /**\r\n * Poskytuje informaci o tom, zda je právě zobrazený loader\r\n */\r\n isLoading(): boolean;\r\n}\r\n\r\nexport class ILoader {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"showLoader\") &&\r\n Reflect.has(instance, \"hideLoader\") &&\r\n Reflect.has(instance, \"isLoading\");\r\n }\r\n}\r\n","import { DataConverter } from \"../../../../Global/Base/Converters/DataConverter\";\r\nimport { GenericControl as BaseGenericControl } from \"../../../UI.BaseControls/GenericControl\";\r\n\r\nexport class ControlUtils {\r\n /**\r\n * Metoda, která vrací true nebo false, na základě fyzické viditelnosti prvku\r\n */\r\n public static isElementVisible(element: HTMLElement): boolean {\r\n return BaseGenericControl.isElementVisible(element);\r\n }\r\n\r\n /**\r\n * Funkce vraci true, pokud je dana pozice v elementu\r\n * @param element Element\r\n * @param event Událost nebo souradnice\r\n * @returns true pokud je v elementu\r\n */\r\n public static inElement(element: HTMLElement, event: MouseEvent | { x: number; y: number }): boolean {\r\n let inEl = false;\r\n const pageX = event instanceof MouseEvent ? (event as MouseEvent).pageX : event.x;\r\n const pageY = event instanceof MouseEvent ? (event as MouseEvent).pageY : event.y;\r\n\r\n const pos = $(element).offset();\r\n\r\n if ((pageX > pos.left && pageX < ($(element).width() + pos.left)) && (pageY > pos.top && pageY < ($(element).height() + pos.top))) {\r\n inEl = true;\r\n }\r\n return inEl;\r\n }\r\n\r\n /**\r\n * Vrátí aktuální pozici kurzoru v zadaném elementu\r\n * @param el Element, ve kterém se vyhledává pozice kurzoru\r\n */\r\n public static getInputSelection(el: HTMLInputElement): { start: number; end: number } {\r\n let start = 0;\r\n let end = 0;\r\n\r\n if (typeof el.selectionStart === \"number\" && typeof el.selectionEnd === \"number\") {\r\n start = el.selectionStart;\r\n end = el.selectionEnd;\r\n }\r\n\r\n return {\r\n start: start,\r\n end: end,\r\n };\r\n }\r\n\r\n /**\r\n * Nastavi pozici kurzoru na dane misto\r\n * @link http://stackoverflow.com/questions/1865563/set-cursor-at-a-length-of-14-onfocus-of-a-textbox/1867393#1867393\r\n */\r\n public static setCaret(node: HTMLInputElement, pos: number): boolean {\r\n if (node.setSelectionRange) {\r\n node.setSelectionRange(pos, pos);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Nacita hodnotu data- atributu z html, vraci ji jako orezany string. Pokud atribut neexistuje, vraci null.\r\n * @param attr - nazev atributu bez data- prefixu\r\n * @param element\r\n */\r\n public static getDataAttr(attr: string, element: HTMLElement): string {\r\n const val = element && element.getAttribute(\"data-\" + attr);\r\n return val == null ? val : val.trim();\r\n }\r\n\r\n /**\r\n * Nacita hodnotu data- atribut jako boolean; vraci true jedine kdyz hodnota je (case insensitive) retezec 'true', jinak false.\r\n * @param attr - nazev atributu bez data- prefixu\r\n * @param element\r\n * @param defaultValue\r\n */\r\n public static getBoolDataAttr(attr: string, element: HTMLElement, defaultValue?: boolean): boolean {\r\n const val = this.getDataAttr(attr, element);\r\n return DataConverter.toBoolean(val, defaultValue);\r\n }\r\n\r\n /**\r\n * Vraci hodnotu data- atributu jako cislo; pokud atribut neexistuje, je prazdny nebo NaN, vrati null.\r\n * @param attr - nazev atributu bez data- prefixu\r\n * @param element\r\n */\r\n public static getNumDataAttr(attr: string, element: HTMLElement): number | null {\r\n const val = this.getDataAttr(attr, element);\r\n if (val == null || val == \"\" || isNaN(+val))\r\n return null;\r\n return +val;\r\n }\r\n}\r\n","import { IDisposable } from \"Global/Base/IDisposable\";\r\nimport { EventsController } from \"Global/Dom/EventsController\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { invariant } from \"../../../../Global/Base/Utils/AssertUtils\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { GenericControl as BaseGenericControl } from \"../../../UI.BaseControls/GenericControl\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { ILoader } from \"../ILoader\";\r\nimport {\r\n ControlParams,\r\n GenericControlParams,\r\n ICompositeComponent,\r\n IControl,\r\n IGenericControl,\r\n IHTMLElementWithControl,\r\n} from \"./ControlInterfaces\";\r\nimport { IItemRightsCollection } from \"../../../../Global/Base/Rights/RightTypes\";\r\nimport { ControlUtils } from \"./ControlUtils\";\r\n\r\n/**\r\n * Implementuje úplně základní control - viz {@link IGenericControl}.\r\n * @includeToDoc\r\n */\r\nexport class GenericControl implements IGenericControl, ICompositeComponent {\r\n //#region Fields\r\n private _element: HTMLElement;\r\n /**\r\n * Viz {@link IWithOriginalRightsDefinition.originalRightsDefinition}.\r\n */\r\n private readonly _originalRightsDefinition: IItemRightsCollection;\r\n\r\n protected _events = new EventsController();\r\n protected _disposableObjects = new Set<IDisposable>();\r\n\r\n /**\r\n * Viz {@link ICompositeComponent#isCompositeComponent}\r\n */\r\n public isCompositeComponent?: boolean;\r\n protected _isDisposed: boolean = false;\r\n\r\n //#endregion Fields\r\n\r\n public get element(): HTMLElement {\r\n return this._element;\r\n }\r\n\r\n public set element(v: HTMLElement) {\r\n this._element = v;\r\n }\r\n\r\n public get originalRightsDefinition(): IItemRightsCollection {\r\n return this._originalRightsDefinition;\r\n }\r\n\r\n /** objekty, které se při dispose také uvolní */\r\n public get disposableObjects(): Set<IDisposable> {\r\n return this._disposableObjects;\r\n }\r\n\r\n //#region Constructors\r\n constructor({ element, originalRightsDefinition }: GenericControlParams) {\r\n invariant(!!originalRightsDefinition, \"[GenericControl] originalRightsDefinition must be present\");\r\n this.element = element;\r\n this._originalRightsDefinition = originalRightsDefinition;\r\n (this.element as IHTMLElementWithControl).tscControl = this;\r\n }\r\n //#endregion Constructors\r\n\r\n //#region dispose\r\n public dispose(): void {\r\n if (this._isDisposed) {\r\n return;\r\n }\r\n this._isDisposed = true;\r\n this._events?.dispose();\r\n this._disposableObjects?.forEach(obj => obj.dispose());\r\n this._disposableObjects.clear();\r\n if (this.element) {\r\n this.element.textContent = \"\";\r\n (this.element as IHTMLElementWithControl).tscControl = null;\r\n if (this.element.parentNode)\r\n this.element.parentNode.removeChild(this.element);\r\n }\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n\r\n/**\r\n * Základní needitační control komponenty\r\n * @includeToDoc\r\n */\r\nexport class Control extends GenericControl implements ILoader, IControl {\r\n //#region Fields\r\n public visibilityChanged: Event<Control, boolean> = new Event<Control, boolean>();\r\n /**\r\n * Událost vyvolaná při změně viditelnosti prvku ve stránce\r\n */\r\n public canValueLoadChanged: Event<Control, boolean> = new Event<Control, boolean>();\r\n\r\n protected _captionLabel: HTMLElement;\r\n protected _loaderElement: HTMLElement;\r\n protected _encryptedElement: HTMLElement;\r\n protected _visible: boolean = true;\r\n protected _enabled: boolean = false;\r\n protected _isVisuallyEncrypted: boolean = false;\r\n\r\n private _showLoaderTimer: any;\r\n private _componentName: string = \"\";\r\n private _locKey: string;\r\n private _lastCanValueLoad: boolean = false;\r\n\r\n /**\r\n * Oznacuje jestli ma komponenta, obalovaci container. Pokud ano je potreba mu taky nastavit visibilitu\r\n */\r\n protected readonly _hasContainerParent: boolean = false;\r\n\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n\r\n public set locKey(value: string) {\r\n this._locKey = value;\r\n }\r\n\r\n public get locKey(): string {\r\n return this._locKey;\r\n }\r\n\r\n public get componentName(): string {\r\n return this._componentName;\r\n }\r\n\r\n public set enabled(value: boolean) {\r\n this._enabled = value;\r\n }\r\n\r\n public get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public set visible(value: boolean) {\r\n if (this.element == null)\r\n return;\r\n\r\n this._visible = value;\r\n const display = value ? \"\" : \"none\";\r\n if (this._hasContainerParent && this.element.parentElement)\r\n this.element.parentElement.style.display = display;\r\n this.element.style.display = display;\r\n this.visibilityChanged.trigger(this, value);\r\n }\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n public get isVisuallyEncrypted(): boolean {\r\n return this._isVisuallyEncrypted;\r\n }\r\n\r\n public set isVisuallyEncrypted(val: boolean) {\r\n if (this._isVisuallyEncrypted === val)\r\n return;\r\n\r\n this._isVisuallyEncrypted = val;\r\n this.element.classList.toggle(\"encrypted\", val);\r\n if (this._encryptedElement == null) {\r\n this._encryptedElement = createElement({ classes: [\"encrypted-symbol\", \"icon\", \"user-lock\"] });\r\n this.element.insertAdjacentElement(\"afterbegin\", this._encryptedElement);\r\n }\r\n }\r\n\r\n /**\r\n * Vraci informace o tom, zda je mozne nacitat hodnotu (zda je objekt viditelny z pohledu práv)\r\n */\r\n public get canValueLoad(): boolean {\r\n if (this.visible) {\r\n const ret = BaseGenericControl.allParents(this.element, (el: HTMLElement) => el.style.display !== \"none\" || el.classList.contains(\"AlignPanelSubcomponent\") || el.classList.contains(\"AlignDockHelperContainer\")); // obalovaci elementy se preskoci\r\n return ret;\r\n } else\r\n return false;\r\n }\r\n\r\n public showLoader(delay: number = 300): void {\r\n if (this._showLoaderTimer)\r\n return;\r\n\r\n this._showLoaderTimer = self.setTimeout(() => {\r\n this._showLoader();\r\n this._showLoaderTimer = undefined;\r\n }, delay);\r\n }\r\n\r\n public hideLoader(): void {\r\n if (this._showLoaderTimer)\r\n clearTimeout(this._showLoaderTimer);\r\n this._showLoaderTimer = undefined;\r\n this._hideLoader();\r\n }\r\n\r\n protected _showLoader(): void {\r\n if (!this._loaderElement && this.element) {\r\n this.element.appendChild(this._createLoader());\r\n }\r\n\r\n if (this._loaderElement)\r\n this._loaderElement.style.display = \"\";\r\n this.element.classList.add(\"waiting\");\r\n }\r\n\r\n protected _hideLoader(): void {\r\n if (this._loaderElement)\r\n this._loaderElement.style.display = \"none\";\r\n this.element.classList.remove(\"waiting\");\r\n }\r\n\r\n public isLoading(): boolean {\r\n return this._loaderElement != null && this._loaderElement.style.display !== \"none\";\r\n }\r\n\r\n protected _createLoader(): HTMLElement {\r\n this._loaderElement = createElement({ classes: \"ElementLoader\", css: { display: \"none\" } });\r\n const loader = createElement({ classes: \"loader\" });\r\n const right = createElement({ classes: \"right\" });\r\n const left = createElement({ classes: \"left\" });\r\n\r\n this._loaderElement.appendChild(loader);\r\n\r\n loader.appendChild(right);\r\n right.appendChild(createElement({ classes: \"border\" }));\r\n\r\n loader.appendChild(left);\r\n left.appendChild(createElement({ classes: \"border\" }));\r\n return this._loaderElement;\r\n }\r\n\r\n /**\r\n * Vraci rodicovsky element\r\n */\r\n protected get parentElement(): HTMLElement {\r\n return this.element.parentElement;\r\n }\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(params: ControlParams) {\r\n super(params);\r\n const { element } = params;\r\n this.locKey = element.getAttribute(\"data-captionlockey\");\r\n\r\n if (this.locKey != null && this.locKey !== \"XG-666\") {\r\n Localization.getTextPromise(this.locKey)\r\n .then(componentName => this._componentName = componentName);\r\n\r\n this._events.add(Localization.languageChanged, async () => {\r\n this._componentName = await Localization.getTextPromise(this.locKey);\r\n });\r\n } else {\r\n this._componentName = this.getDataAttr(\"attrname\");\r\n }\r\n\r\n this.element.classList.add(\"GenericControl\");\r\n\r\n if (this.element.parentElement && (this.element.parentElement.classList.contains(\"ControlContainer\") || this.element.parentElement.classList.contains(\"AlignDockHelperContainer\")))\r\n this._hasContainerParent = true;\r\n\r\n this._events.add(this.visibilityChanged, (_, prm) => {\r\n if (!this.tryTriggerCanValueLoadChange(this, this.canValueLoad))\r\n return;\r\n\r\n // je potreba zneviditelnit i container, pokud jsou pres sebe umisteny komponenty a prepina se jejich viditelnost, nelze kliknout na ty, ktere predchazi\r\n if (this._hasContainerParent && this.element.parentElement)\r\n this.element.parentElement.style.display = prm ? \"\" : \"none\";\r\n\r\n // vyvolani události pro podrizene prvky\r\n const elementList = Array.from(this.element.children);\r\n const value = this.canValueLoad;\r\n for (const elem of elementList) {\r\n const htcontrol = (elem as IHTMLElementWithControl).tscControl as Control;\r\n if (htcontrol && htcontrol.canValueLoadChanged) {\r\n htcontrol.tryTriggerCanValueLoadChange(htcontrol, value);\r\n }\r\n }\r\n });\r\n\r\n this._setDefaultTooltip();\r\n\r\n if (this.element.previousElementSibling != null && this.element.previousElementSibling.classList.contains(\"CaptionContainer\") && this.element.previousElementSibling.childElementCount > 0) {\r\n this._captionLabel = this.element.previousElementSibling.firstElementChild as HTMLLabelElement;\r\n } else if (this.element?.parentElement?.previousElementSibling != null && this.element.parentElement.previousElementSibling.classList.contains(\"caption-component\")) {\r\n this._captionLabel = this.element.parentElement.previousElementSibling as HTMLLabelElement;\r\n }\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n /** Nacita hodnotu data- atributu z html, vraci ji jako orezany string. Pokud atribut neexistuje, vraci null.\r\n * @param attr - nazev atributu bez data- prefixu */\r\n public getDataAttr(attr: string): string | null {\r\n return ControlUtils.getDataAttr(attr, this.element);\r\n }\r\n\r\n /** Nacita hodnotu data- atribut jako boolean; vraci true jedine kdyz hodnota je (case insensitive) retezec 'true', jinak false */\r\n public getBoolDataAttr(attr: string, defaultValue?: boolean): boolean {\r\n return ControlUtils.getBoolDataAttr(attr, this.element, defaultValue);\r\n }\r\n\r\n /** Vraci hodnotu data- atributu jako cislo; pokud atribut neexistuje, je prazdny nebo NaN, vrati null */\r\n public getNumDataAttr(attr: string): number | null {\r\n return ControlUtils.getNumDataAttr(attr, this.element);\r\n }\r\n\r\n /** Vrací objekt, jehož properties jsou všechny data-attributy elementu */\r\n protected _getDataAttributes(): any {\r\n const dataAttributes: any = {};\r\n Object.assign(dataAttributes, this.element.dataset);\r\n return dataAttributes;\r\n }\r\n\r\n //#endregion Methods\r\n\r\n protected _setDefaultTooltip(): void {\r\n if (this.locKey != null)\r\n Localization.addLocDescData(this.element, this.locKey, \"title\");\r\n }\r\n\r\n /**\r\n * Nastavuje vstupnímu elementu ID, která jej prováže s Caption\r\n * @param element kterému má být přiřazeno ID\r\n */\r\n // Je to řešené tímto způsobem, jelikož je Caption vytvořen dříve než obsah samotných komponent, se kterými má být provázán\r\n protected _setCaptionReference(element: HTMLElement): void {\r\n if (this._captionLabel) { // Neexistuje-li caption, není třeba nastavovat ID\r\n element.id = this._captionLabel.getAttribute(\"for\");\r\n }\r\n }\r\n\r\n /**\r\n * Metoda vyhodnotí zda se má vyvolat událost canValueLoadChange, případně událost vyvolá. Vrací true, pokud byla událost vyvolána.\r\n */\r\n public tryTriggerCanValueLoadChange(_sender: Control, value: boolean): boolean {\r\n if (value === this._lastCanValueLoad)\r\n return false;\r\n\r\n this._lastCanValueLoad = value;\r\n this.canValueLoadChanged.trigger(this, value);\r\n return true;\r\n }\r\n\r\n public override dispose(): void {\r\n if (this._isDisposed) {\r\n return;\r\n }\r\n\r\n if (this._showLoaderTimer) {\r\n self.clearTimeout(this._showLoaderTimer);\r\n }\r\n this.visible = false;\r\n super.dispose();\r\n }\r\n}\r\n","import { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { ValidationErrorType } from \"../../../../OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { IValidatable, IValidationResult } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IPopupMenu } from \"../IPopupMenu\";\r\nimport { PopupMenu } from \"../PopupMenu\";\r\nimport { IControlInfoObject } from \"../XGControls/ControlInfo\";\r\nimport { Control } from \"./Control\";\r\nimport { ControlParams, IEditableControl, IMultiEdit } from \"./ControlInterfaces\";\r\n\r\n//materska trida pro ovladaci prvek\r\nexport class EditableControl extends Control implements IEditableControl {\r\n //#region Events\r\n public valueChanged: Event<IEditableControl, any> = new Event<IEditableControl, any>();\r\n public isEditingChanged: Event<IEditableControl, any> = new Event<IEditableControl, any>();\r\n public enabledChanged: Event<IEditableControl, any> = new Event<IEditableControl, any>();\r\n public validityChanged: Event<IValidatable, IValidationResult> = new Event<IValidatable, IValidationResult>();\r\n public clicked: Event<IEditableControl, MouseEvent> = new Event<IEditableControl, MouseEvent>();\r\n public getFocus: Event<IEditableControl, FocusEvent> = new Event<IEditableControl, FocusEvent>();\r\n public lostFocus: Event<IEditableControl, FocusEvent> = new Event<IEditableControl, FocusEvent>();\r\n public hover: Event<IEditableControl, MouseEvent> = new Event<IEditableControl, MouseEvent>();\r\n public mouseEnter: Event<IEditableControl, MouseEvent> = new Event<IEditableControl, MouseEvent>();\r\n public mouseLeave: Event<IEditableControl, MouseEvent> = new Event<IEditableControl, MouseEvent>();\r\n //#endregion Events\r\n\r\n //#region Fields\r\n /** Nazev atributu z definice formulare */\r\n public attrName: string;\r\n\r\n private _dataType: OWDataType | string;\r\n public get dataType(): OWDataType | string {\r\n return this._dataType;\r\n }\r\n public set dataType(value: OWDataType | string) {\r\n this._dataType = value;\r\n }\r\n public innerElement: HTMLElement = null;\r\n /** Obsahuje hodnotu zda uz byla nactena nebo zmenena hodnota nebo ne (kvuli zmene viditelnosti) */\r\n public isValueLoaded: boolean = false;\r\n\r\n /** div na zobrazovani chyb */\r\n protected _errorElement: HTMLElement;\r\n protected _errorPopup: IPopupMenu;\r\n protected _isEditing: boolean = false;\r\n protected _isGuiValid: boolean = true; // Kontrola validnosti pole na gui\r\n protected _interactive: boolean = true;\r\n protected _enabledVisual: boolean = true;\r\n protected _hasFocus: boolean = false;\r\n protected _placeholderLocKey: string;\r\n\r\n /**Stav \"Nejsou zadana povinna pole\"*/\r\n private _isInRequiredInvalidState: boolean = false;\r\n private __language: string;\r\n private _postponedRequired: boolean;\r\n private _recommended: boolean;\r\n private _required: boolean;\r\n private _invalidLocKey: string;\r\n private _invalidMessage: string;\r\n private _errorType: ValidationErrorType;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n\r\n public override get element(): HTMLElement {\r\n return super.element;\r\n }\r\n\r\n public override set element(v: HTMLElement) {\r\n super.element = v;\r\n this._toggleVisualClasses();\r\n }\r\n\r\n public get controlValue(): any {\r\n throw \"Unimplemented method EditableControl.controlValue\";\r\n }\r\n\r\n public set controlValue(_v: any) {\r\n throw \"Unimplemented method EditableControl.controlValue\";\r\n }\r\n\r\n public setInitialControlValue(value: any): void {\r\n // Pozn. setInitialControlValue byla zavedena primárně pro komponenty přepsané do Reactu.\r\n // U původních/nereactích komponent je záměrně ponecháno původní chování.\r\n this.controlValue = value;\r\n }\r\n\r\n /**\r\n * Zobrazena hodnota v komponente\r\n */\r\n public get displayedValue(): ITextBuilder {\r\n // potomci, kteri vyuzivaji input mohou vyuzit tuto implementaci\r\n if (this.innerElement instanceof HTMLInputElement)\r\n return this.innerElement.value;\r\n\r\n // ostatni si musi naimplementovat svoji\r\n throw \"Unimplemented property EditableControl.displayedValue\";\r\n }\r\n\r\n public set displayedValue(v: ITextBuilder) {\r\n if (this.innerElement instanceof HTMLInputElement) {\r\n this.innerElement.value = v.toString();\r\n this.validate();\r\n return;\r\n }\r\n\r\n throw \"Unimplemented property EditableControl.displayedValue\";\r\n }\r\n\r\n public get isValid(): boolean {\r\n return this._isValid;\r\n }\r\n\r\n protected set _isValid(value: boolean) {\r\n this.element.classList.toggle(\"invalid\", !value);\r\n }\r\n\r\n protected get _isValid(): boolean {\r\n return !this.element.classList.contains(\"invalid\");\r\n }\r\n\r\n //#region Enabled\r\n public override set enabled(value: boolean) {\r\n if (!this.element) // disposed\r\n return;\r\n\r\n if (this._enabled !== value) {\r\n this._enabled = value;\r\n this.enabledChanged.trigger(this, { value: value });\r\n }\r\n }\r\n\r\n public override get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n //#endregion Enabled\r\n\r\n public get interactive(): boolean {\r\n return this._interactive;\r\n }\r\n\r\n public set interactive(value: boolean) {\r\n this._interactive = value;\r\n }\r\n\r\n public get enabledVisual(): boolean {\r\n return this._enabledVisual;\r\n }\r\n\r\n public set enabledVisual(value: boolean) {\r\n this._enabledVisual = value;\r\n this._setEnabledInput(value);\r\n this._toggleVisualClasses();\r\n }\r\n\r\n protected get _isActive(): boolean {\r\n return this.isEditing && this.enabled;\r\n }\r\n\r\n /**\r\n * Pri vstupu/vystupu do editace nastavuje styly komponetam\r\n */\r\n //#region IsInRequiredInvalidState\r\n public get isInRequiredInvalidState(): boolean {\r\n return this._isInRequiredInvalidState;\r\n }\r\n\r\n //Nastaveni komponenty do stavu \"Nejsou zadane povinne pole\"\r\n public set isInRequiredInvalidState(value: boolean) {\r\n if (value == this._isInRequiredInvalidState)\r\n return;\r\n\r\n try {\r\n // zmena povinnosti neni standartni zmena validnosti kvuli uzivatelskemu vstupu - pridavaly by se do VM duplicitne jako validacni chyba uzivatelskeho vstupu\r\n // jedine by se musel ve validityChanged posilat i typ\r\n this.validityChanged.enabled = false;\r\n\r\n if (value) {\r\n //Prepnuti koponenty do chybneho stavu\r\n this.setInvalid(\"GUI-55627\");\r\n this._isInRequiredInvalidState = true;\r\n } else {\r\n if (this.controlValue != \"\") {\r\n //Prepnuti komponenty zpet do validniho stavu\r\n this.setValid();\r\n //this.errElem.style.display = 'none';\r\n this._isInRequiredInvalidState = false;\r\n } else\r\n this._isInRequiredInvalidState = true;\r\n }\r\n } finally {\r\n this.validityChanged.enabled = true;\r\n }\r\n }\r\n //#endregion IsInRequiredInvalidState\r\n\r\n //#region Language\r\n /**\r\n * Obsluhuje hodnotu nastavenou v data-language atributu\r\n */\r\n protected get _language(): string {\r\n return this.__language;\r\n }\r\n\r\n /**\r\n * Obsluhuje hodnotu nastavenou v data-language atributu\r\n */\r\n protected set _language(lang: string) {\r\n this.__language = lang;\r\n }\r\n //#endregion Language\r\n\r\n //#region PostponedRequired\r\n public set postponedRequired(value: boolean) {\r\n if (this.postponedRequired === value)\r\n return;\r\n\r\n this.element.classList.toggle(\"PostponedRequired\", value);\r\n if (this._captionLabel)\r\n this._captionLabel.classList.toggle(\"PostponedRequired\", value);\r\n\r\n this._postponedRequired = value;\r\n }\r\n\r\n public get postponedRequired(): boolean {\r\n return this._postponedRequired;\r\n }\r\n //#endregion PostponedRequired\r\n\r\n /** Promenna ktera obsahuje informaci o tom, zda je v editacnim rezimu nebo ne */\r\n public set isEditing(value: boolean) {\r\n const oldVal = this._isEditing;\r\n this._isEditing = value;\r\n if (oldVal != value)\r\n this.isEditingChanged.trigger(this, { value: value });\r\n }\r\n\r\n public get isEditing(): boolean {\r\n return this._isEditing;\r\n }\r\n\r\n //#region Recommended\r\n public set recommended(value: boolean) {\r\n if (this.recommended === value)\r\n return;\r\n\r\n this.element.classList.toggle(\"Recommended\", value);\r\n if (this._captionLabel)\r\n this._captionLabel.classList.toggle(\"Recommended\", value);\r\n\r\n this._recommended = value;\r\n }\r\n\r\n public get recommended(): boolean {\r\n return this._recommended;\r\n }\r\n //#endregion Recommended\r\n\r\n //#region Required\r\n public set required(value: boolean) {\r\n if (this.required === value)\r\n return;\r\n\r\n this.element.classList.toggle(\"Required\", value);\r\n if (this._captionLabel)\r\n this._captionLabel.classList.toggle(\"Required\", value);\r\n\r\n this._required = value;\r\n this.validate();\r\n }\r\n\r\n public get required(): boolean {\r\n return this._required;\r\n }\r\n //#endregion Required\r\n\r\n //#region Visible\r\n public override set visible(value: boolean) {\r\n if (this.element == undefined)\r\n return;\r\n\r\n const oldVal = this._visible;\r\n this._visible = value;\r\n\r\n const display = value ? \"\" : \"none\";\r\n if (this._hasContainerParent) // parenta chceme zobrazit/schovat pouze pokud je to container\r\n this.element.parentElement.style.display = display;\r\n this.element.style.display = display;\r\n\r\n if (oldVal != value)\r\n this.visibilityChanged.trigger(this, value);\r\n else\r\n this.tryTriggerCanValueLoadChange(this, this.canValueLoad);//i pokud nedošlo ke změně viditelnosti, mohlo dojít ke změně canValueLoad, díky změně viditelnosti předka v DOM\r\n }\r\n\r\n public override get visible(): boolean {\r\n return this._visible;\r\n }\r\n //#endregion Visible\r\n\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(params: ControlParams) {\r\n super(params);\r\n\r\n if (this.element instanceof HTMLInputElement)\r\n this.element.setAttribute(\"autocomplete\", \"off\");\r\n else\r\n this.element.tabIndex = -1;\r\n\r\n this.element.classList.add(\"EditableControl\");\r\n this._toggleVisualClasses();\r\n\r\n this._errorElement = document.createElement(\"div\");\r\n this._errorElement.classList.add(\"errDiv\");\r\n\r\n this._placeholderLocKey = this.element.getAttribute(\"data-placeholderlc\");\r\n\r\n if (this.element.hasAttribute(\"data-language\"))\r\n this._language = this.element.getAttribute(\"data-language\"); //nastaveni jazyka pro kontrolu pravopisu language/data-lang\r\n\r\n this._events.add(this.valueChanged, () => {\r\n //Pri zmene hodnoty vyvola kontrolu jestli se ma komponenta vratit do validniho. (Po tom co byla ve stavu: Nezadane povinne pole)\r\n this.isInRequiredInvalidState = false;\r\n this.isValueLoaded = true;\r\n });\r\n\r\n // zakazani/povoleni udalosti valueChanged\r\n this._events.add(this.canValueLoadChanged, (_, value) => this.valueChanged.enabled = value);\r\n\r\n this._events.add(this.clicked, (sender: EditableControl, event) => this._editableControlClicked(sender, event));\r\n this._events.add(this.getFocus, (sender: EditableControl, event) => this._editableControlGetFocus(sender, event));\r\n this._events.add(this.lostFocus, (sender: EditableControl, event) => this._editableControlLostFocus(sender, event));\r\n this._events.add(this.hover, (sender: EditableControl, event) => this._editableControlHover(sender, event));\r\n this._events.add(this.mouseEnter, (sender: EditableControl, event) => this._editableControlMouseEnter(sender, event));\r\n this._events.add(this.mouseLeave, (sender: EditableControl, event) => this._editableControlMouseLeave(sender, event));\r\n\r\n this._events.addListener(this.element, \"click\", e => this.clicked.trigger(this, e));\r\n this._events.addListener(this.element, \"blur\", e => this.lostFocus.trigger(this, e));\r\n this._events.addListener(this.element, \"focus\", e => {\r\n this.getFocus.trigger(this, e);\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n });\r\n\r\n this._events.addListener(this.element, \"mouseover\", e => {\r\n this.hover.trigger(this, e);\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n });\r\n\r\n this._events.addListener(this.element, \"mouseenter\", e => {\r\n this.mouseEnter.trigger(this, e);\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n });\r\n\r\n this._events.addListener(this.element, \"mouseleave\", e => {\r\n this.mouseLeave.trigger(this, e);\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n });\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n /** Vrací objekt, který obsahuje informace o prvku */\r\n public async getControlInfo(childInfo: Partial<IControlInfoObject>): Promise<Partial<IControlInfoObject>> {\r\n return {\r\n ...childInfo,\r\n attributeName: this.attrName,\r\n locKey: this.locKey,\r\n additionalInfo: {\r\n dataAttributes: { ...this._getDataAttributes() },\r\n implementationClass: this.constructor.name,\r\n },\r\n };\r\n }\r\n\r\n public hasFocus(): boolean {\r\n return this._hasFocus;\r\n }\r\n\r\n protected _showErrorPopup(): void {\r\n if (this._isEditing && this._errorElement.hasChildNodes()) { // Nemusí existovat žádný obsah ke zobrazí = prázdný tooltip\r\n if (!this._errorPopup)\r\n this._errorPopup = new PopupMenu(this._errorElement, false); // this.Element.clientWidth + \"px\", \"150px\");\r\n\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n this._errorPopup.setVisibility(true);\r\n }\r\n }\r\n\r\n protected _hideErrorPopup(): void {\r\n if (this._errorPopup)\r\n this._errorPopup.setVisibility(false);\r\n }\r\n\r\n protected _editableControlClicked(_sender: EditableControl, _event: MouseEvent): void {\r\n // Prázdná metoda\r\n }\r\n\r\n /**\r\n * Nastaví CSS třídy na prvku podle aktivnosti.\r\n * @see {@link _enabledVisual}\r\n * @private\r\n */\r\n private _toggleVisualClasses(): void {\r\n this.element?.classList.toggle(\"Enabled\", this._enabledVisual);\r\n this.element?.classList.toggle(\"Disabled\", !this._enabledVisual);\r\n }\r\n\r\n private _editableControlGetFocus(_sender: IEditableControl, _event: FocusEvent): void {\r\n this._hasFocus = true;\r\n }\r\n\r\n private _editableControlLostFocus(_sender: IEditableControl, _event: FocusEvent): void {\r\n this._hasFocus = false;\r\n this._hideErrorPopup();\r\n }\r\n\r\n private _editableControlHover(_sender: IEditableControl, _event: MouseEvent): void {\r\n // Prázdná metoda\r\n }\r\n\r\n private _editableControlMouseEnter(_sender: IEditableControl, _event: MouseEvent): void {\r\n if (!this.isValid)\r\n this._showErrorPopup();\r\n }\r\n\r\n private _editableControlMouseLeave(_sender: IEditableControl, _event: MouseEvent): void {\r\n this._hideErrorPopup();\r\n }\r\n\r\n /** Nastavi focus na input */\r\n public focus(options?: FocusOptions): void {\r\n if (this.innerElement && (\"focus\" in this.innerElement)) {\r\n this.innerElement.focus(options);\r\n }\r\n this.isInRequiredInvalidState = false;\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene povidnne pole\r\n */\r\n public isFilledRequiredControl(): boolean {\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || !(this.required && !this.controlValue);\r\n }\r\n return (this.required && !this.controlValue) ? false : true;\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene doporucene pole\r\n */\r\n public isFilledRecommendedControl(): boolean {\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || !(this.recommended && !this.controlValue);\r\n }\r\n return this.recommended && !this.controlValue ? false : true;\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene postponed pole\r\n */\r\n public isFilledPostponedControl(): boolean {\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || !(this.postponedRequired && !this.controlValue && this.visible);\r\n }\r\n return this.postponedRequired && !this.controlValue && this.visible /*&& !this.readOnly*/ ? false : true;\r\n }\r\n\r\n protected _setEnabledInput(value: boolean): void {\r\n if (this.innerElement && (\"readOnly\" in this.innerElement))\r\n (this.innerElement as any)[\"readOnly\"] = !value;\r\n else if (this.innerElement && (\"disabled\" in this.innerElement))\r\n (this.innerElement as any)[\"disabled\"] = !value;\r\n }\r\n\r\n /** Vraci true - krome Editu pouzitelne pro vsechny inputy */\r\n public validate(): boolean {\r\n this.setValid();\r\n return true;\r\n }\r\n\r\n //Pokud byla kompnenta ve stavu Invalid tak ji vradi do stavu Valid\r\n public setValid(): void {\r\n if (!this._isGuiValid)\r\n return;\r\n\r\n if (this._isValid)\r\n return;\r\n\r\n this._isValid = true;\r\n\r\n this._hideErrorPopup();\r\n\r\n this._isInRequiredInvalidState = false;\r\n this.validityChanged.trigger(this, { valid: true });\r\n }\r\n\r\n // Zrusi gui-invalid\r\n protected _setGuiValid(): void {\r\n this._isGuiValid = true;\r\n this.element.classList.remove(\"gui-invalid\");\r\n }\r\n\r\n // Nastavi komponentu na gui-invalid, to je neproslo validaci na komponente\r\n protected _setGuiInvalid(): void {\r\n this._isGuiValid = false;\r\n this.element.classList.add(\"gui-invalid\");\r\n }\r\n\r\n //Pokud zadam nevalidni hodnotu tak prepne komponentu do stavu Invalid\r\n public setInvalid(locKey: string, message: string = null, errorType: ValidationErrorType = null): void {\r\n if (message && this._errorElement) {\r\n this._errorElement.innerHTML = StringUtils.stringToHTMLText(message);\r\n if (this._errorPopup && this._errorPopup.visible)\r\n this.dropDownElementPosition(this._errorPopup, this._errorElement);\r\n } else if (locKey) {\r\n Localization.addLocDataAsync(this._errorElement, locKey).then((errorElement) => {\r\n if (this._errorPopup && this._errorPopup.visible)\r\n this.dropDownElementPosition(this._errorPopup, errorElement); // je nutne zavolat kvuli prepoctu vysky pro nove nacteny lokalizacni retezec\r\n });\r\n }\r\n\r\n if (!this._isValid)\r\n return;\r\n\r\n this._isValid = false;\r\n this._invalidLocKey = locKey;\r\n this._invalidMessage = message;\r\n this._errorType = errorType;\r\n this.validityChanged.trigger(this, { valid: false, invalidValue: this.displayedValue, invalidLocKey: locKey, invalidMessage: message, errorType: errorType });\r\n }\r\n\r\n public get currentValidity(): IValidationResult {\r\n return this.isValid ? { valid: true } : { valid: false, invalidValue: this.displayedValue, invalidLocKey: this._invalidLocKey, invalidMessage: this._invalidMessage, errorType: this._errorType };\r\n }\r\n\r\n /**\r\n * Vytvoreni pickeru na vybirani hodnoty (pouziva napr. DateEdit pro ikonku kalendare)\r\n */\r\n protected _createValuePicker(): HTMLElement {\r\n return createElement({ type: \"button\", classes: \"valuepicker\" }) as HTMLInputElement;\r\n }\r\n\r\n /**\r\n * Zobrazeni elementu s chybou nad/pod dle dostupneho prostoru. Pokud neni dostatek prostoru nad ani pod, tak se zobrazi dole.\r\n * @param popUpMenu - dropDown menu, ktere se bude vykreslovat\r\n * @param popUpElement - element do ktereho se vykresluje obsah pupupOkna\r\n * @param width - preddefinovana defaultni sirka. Pouziva se u LOV, protoze grid ma pred doctenim nulovou vysku a drop down menu se zobrazovalo jen jako tecka\r\n * @param height - preddefinovana defaultni vyska. Pouziva se u LOV, protoze grid ma pred doctenim nulovou vysku a drop down menu se zobrazovalo jen jako tecka\r\n */\r\n public dropDownElementPosition(popUpMenu: IPopupMenu, popUpElement: HTMLElement, gridRect: ClientRect = null, width: number = null, height: number = null): void {\r\n if (popUpElement != undefined && popUpMenu)\r\n popUpMenu.arangePopupToEditableControl(popUpElement, this.element, this.hasFocus(), gridRect, width, height);\r\n }\r\n\r\n /**\r\n * Výchozí implementace pro zahájení editace ({@link IStartEdit}) je zaměření komponenty. To je vhodné řešení pro většinu komponent založených na input elementu.\r\n * Komponenty, pro které není tato implementace dostatečná, poskytnou vlastní implementaci.\r\n */\r\n public startEdit(): void {\r\n this.focus();\r\n }\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n public override dispose(): void {\r\n if (this._errorPopup)\r\n this._errorPopup.dispose();\r\n\r\n super.dispose();\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n","import { IResultMessage } from \"@multiweb/types/contracts\";\r\nimport { ApplicationTheme } from \"UI/Shared/ApplicationTheme\";\r\nimport { InjectedProperty } from \"../../../Global/Base/DIContainer\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { GlobalContext } from \"../../../Global/Base/GlobalContext\";\r\nimport { IContentBuilder } from \"./DataBuilders/IContentBuilder\";\r\nimport { ILoader } from \"./ILoader\";\r\nimport { MessageButtonType, MessageWindow } from \"./MessageWindow\";\r\nimport {\r\n IMainMenu,\r\n} from \"./UIManagerInterfaces\";\r\n\r\nexport interface MessageButtonResult {\r\n result: MessageButtonType;\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n */\r\nexport interface IUIManagerWorker extends ILoader {\r\n blockingLayer: HTMLElement;\r\n\r\n // /** Událost o změně stavu skrytí tlačítka pro zavření formuláře */\r\n // readonly formHideCloseButtonChanged: Event<IUIManagerWorker, IHideCloseButtonChanged>;\r\n /** Událost o kliku na vrstvu překrývající formulář při otevřeném menu */\r\n readonly menuOverlayClicked: Event<IUIManagerWorker, MouseEvent>;\r\n\r\n /**\r\n * Aktuálně nastavené téma aplikace\r\n */\r\n readonly applicationTheme: ApplicationTheme | undefined;\r\n\r\n init(): void;\r\n\r\n /**\r\n * Stará se o načtení definice formuláře ze serveru.\r\n * @param formName Kód formuláře k otevření.\r\n * @param previewId ID pod kterým se má na serveru loadovat preview definice formuláře.\r\n * @returns HTML element s formulářem.\r\n */\r\n loadFormDefinition(formName: string, previewId?: string): Promise<HTMLElement>;\r\n\r\n showMessage(msgWin: MessageWindow): Promise<MessageButtonResult>;\r\n\r\n showOverlay(visible: boolean, formsPlaceOnly?: boolean): void;\r\n showResultMessages(messages: readonly IResultMessage[] | null | undefined): Promise<void>;\r\n\r\n generateElementID(): string;\r\n\r\n loadUIHistoryState(state: UIHistoryState): void;\r\n addUIHistory(state: UIHistoryState, title: string): void;\r\n\r\n showBlockingLayer(content?: IContentBuilder): void;\r\n hideBlockingLayer(): void;\r\n\r\n /**\r\n * Zobrazení vrstvy překrývající formulář při otevřeném menu\r\n */\r\n showMenuOverlay(): void;\r\n /**\r\n * Skrytí vrstvy překrývající formulář při otevřeném menu\r\n */\r\n hideMenuOverlay(): void;\r\n\r\n /**\r\n * Nastaví téma aplikace\r\n * @param theme Téma, které se má nastavit\r\n */\r\n applyApplicationTheme(theme: ApplicationTheme): void;\r\n\r\n /**Událost změny velikosti okna, prostoru pro formuláře nebo frame */\r\n windowResized: Event<any, any>;\r\n\r\n /**\r\n * Spustí sledování změn velikosti HTML elementu\r\n * @param element Sledovaný element\r\n * @param resizeListener Metoda zpracovávající resize\r\n */\r\n resizeObserve(element: HTMLElement, resizeListener: () => void): void;\r\n\r\n /**\r\n * Zastaví sledování změn velikosti HTML elementu\r\n * @param element Sledovaný element\r\n * @param resizeListener Metoda zpracovávající resize\r\n */\r\n resizeUnobserve(element: HTMLElement, resizeListener: () => void): void;\r\n}\r\n\r\nexport class IUIManagerWorker {\r\n private static _properties: (keyof IUIManagerWorker)[] = [\r\n \"blockingLayer\", \"menuOverlayClicked\", \"applicationTheme\",\r\n ];\r\n\r\n private static _methods: (keyof IUIManagerWorker)[] = [\r\n \"init\", \"loadFormDefinition\", \"showMessage\",\r\n \"showOverlay\", \"showResultMessages\", \"showResultMessages\",\r\n \"generateElementID\", \"loadUIHistoryState\", \"addUIHistory\", \"showBlockingLayer\", \"hideBlockingLayer\",\r\n \"showMenuOverlay\", \"hideMenuOverlay\", \"applyApplicationTheme\",\r\n ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n !IUIManagerWorker._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport interface DialogButtonDefinition {\r\n // LocKey popiseku tlacitka\r\n locKey: string;\r\n // jsetli tlacitko slouzi k opakovanemu spusteni akce - okno se nebude zavirat\r\n repeatUsingButton: boolean;\r\n // akce na tlacitko\r\n click: () => void;\r\n\r\n // jakykoli kontrol ktery se ma vytvorit namisto tlacitka - nahrazuje predchzejici hodnoty\r\n control: HTMLElement;\r\n\r\n // zakáže/povolí tlačítko pokud je na okně nastavena ValidationMessage\r\n enableOnValidationMessage: boolean;\r\n}\r\n\r\n/**\r\n * Rozhraní představující tovární funkci vytvářející hlavní menu aplikace\r\n * @includeToDoc\r\n */\r\nexport interface IMainMenuFactory {\r\n (): IMainMenu;\r\n}\r\n\r\n/**\r\n * Property sloužící pro přístup k UIManager\r\n */\r\nexport class UIManager {\r\n /**\r\n * Instance v kontextu současného okna\r\n */\r\n public static get instance(): IUIManagerWorker {\r\n return {} as any;\r\n }\r\n}\r\n\r\nInjectedProperty.bindProperty(UIManager, \"instance\", IUIManagerWorker);\r\nGlobalContext.registerType(UIManager);\r\n\r\nexport interface UIHistoryState {\r\n type: string;\r\n}\r\n\r\nexport interface UIHistoryStateForm extends UIHistoryState {\r\n formName: string;\r\n formID: string;\r\n}\r\n\r\nexport interface UIHistoryStateFrame extends UIHistoryStateForm {\r\n frameName: string;\r\n}\r\n","import { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { Deferred, PromiseUtils } from \"../../../Global/Base/Promises/PromiseUtils\";\r\nimport { Key, SharedKey } from \"../../../Global/Base/Utils/EventUtils\";\r\nimport { StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { EventHelper } from \"../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { createElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { EditableControl } from \"./Controls/EditableControl\";\r\nimport { IContentBuilder } from \"./DataBuilders/IContentBuilder\";\r\nimport { MessageButtonResult, UIManager } from \"./UIManager\";\r\n/**\r\n * Modální okno umožňující zobrazovat libovolné informace.\r\n * Je možné ho zobrazit i jako potvrzovací nebo dotazovací dialog.\r\n * @includeToDoc\r\n */\r\nexport class MessageWindow implements IDisposable {\r\n /**\r\n * Kontejner zobrazující obsah\r\n */\r\n public get element(): HTMLElement {\r\n return this._element;\r\n }\r\n private _element: HTMLElement;\r\n\r\n /**\r\n * Šířka okna pro zobrazení hlášky\r\n */\r\n public width: number;\r\n\r\n /**\r\n * Výška okna pro zobrazení zprávy\r\n */\r\n public height: number;\r\n\r\n /**\r\n * Lokalizační klíč tlačítka pro zrušení.\r\n * Tlačítko se zobrazí jen tehdy, pokud se bude jednat o hlášku (dialog).\r\n * V případě alertu se nezobrazí.\r\n */\r\n public cancelButtonCaption: string = \"\";\r\n /**\r\n * Výběr použití zprávy:\r\n * · zpráva na úrovni aplikace\r\n * · zpráva na úrovni formuláře\r\n */\r\n public context: MessageContext = MessageContext.form;\r\n\r\n /**\r\n * Do této části se bude vkládat případný detail zprávy. Pokud je vyplněn zobrazí se DetailButton.\r\n */\r\n public detail: string = \"\";\r\n\r\n /**\r\n * Tlačítko pro zobrazení detailu.\r\n */\r\n public detailButton: boolean = false;\r\n /**\r\n * Zda se má zobrazit s otevřeným detailem, pokud existuje\r\n */\r\n public detailOpened: boolean = false;\r\n /**\r\n * Lokalizační klíč nadpisu dialogu\r\n */\r\n public header: string = \"\";\r\n /**\r\n * Lokalizační klíč tlačítka pro potvrzení nebo zavření alertu. Tlačítko se zobrazí vždy\r\n */\r\n public okButtonCaption: string = \"GUI-0\";\r\n /**\r\n * Lokalizační klíč tlačítka pro NE při YesNoCancelDialogu\r\n */\r\n public noButtonCaption: string = \"\";\r\n /**\r\n * Lokalizační klíč tlačítka pro definovanou operaci.\r\n * Tlačítko se nezobrazí, pokud nebude definovaná operace.\r\n * Tlačítko se zobrazí jen tehdy, pokud se bude jednat o hlášku (dialog).\r\n * V případě alertu se nezobrazí\r\n */\r\n public otherButtonCaption: string = \"\";\r\n /**\r\n * Lokalizační klíč tlačítka 1 v leve casti dialogu\r\n */\r\n public leftButton1Caption: string = \"\";\r\n /**\r\n * Lokalizační klíč tlačítka 2 v leve casti dialogu\r\n */\r\n public leftButton2Caption: string = \"\";\r\n /**\r\n * Hlavní text zprávy\r\n */\r\n public contentBuilder: IContentBuilder;\r\n /**\r\n * Typ zprávy\r\n */\r\n public type: MessageType;\r\n /**\r\n * Umožňuje zablokovat propagování události kliknutí do okna\r\n */\r\n public stopClickPropagation: boolean = false;\r\n private _deferredResult: Deferred<MessageButtonResult>;\r\n\r\n private readonly _minHeightWithDetail: string = \"218px\";\r\n private readonly _minHeightWithoutDetail: string = \"134px\";\r\n private _buttonHasClicked: boolean = false;\r\n private _messageId: string;\r\n private _headerElement: HTMLElement;\r\n private _contentElement: HTMLElement;\r\n private _detailElement: HTMLElement;\r\n private _detailContentElement: HTMLElement;\r\n private _buttonsElement: HTMLElement;\r\n private _leftButtonsElement: HTMLElement;\r\n private _standardButtonsElement: HTMLElement;\r\n\r\n private _okButtonElement: HTMLButtonElement;\r\n private _noButtonElement: HTMLButtonElement;\r\n private _cancelButtonElement: HTMLButtonElement;\r\n private _otherButtonElement: HTMLButtonElement;\r\n private _leftButton1Element: HTMLButtonElement;\r\n private _leftButton2Element: HTMLButtonElement;\r\n private _blockingLayer: HTMLElement;\r\n private _showDetailButtonElement: HTMLElement;\r\n private _focusElement: HTMLElement | EditableControl;\r\n private _resolver: (result: MessageButtonType) => void;\r\n\r\n private _buttonsList: HTMLButtonElement[] = [];\r\n private _focusedButtonIndex: number = 0;\r\n\r\n private _eventListenerMethods: { [listenerName: string]: (e: Event) => any } = {};\r\n private static _countDisplayMessage: number = 0;\r\n\r\n public static get countDisplayMessage(): number {\r\n return this._countDisplayMessage;\r\n }\r\n\r\n private _lastDetailHeight: string = \"\";\r\n\r\n /** Sekce pro zobrazování popup dialogů. */\r\n private _serviceSection: HTMLDivElement;\r\n\r\n /** Původní element, který byl zaměřený, než se zobrazilo MessageWindow. */\r\n private _originalActiveElement: Element;\r\n\r\n /** Callback, který se zavolá při stisknutí OK tlačítka. Pokud vrátí false, dialog zůstane otevřený. */\r\n public okCallback: () => Promise<boolean> = undefined;\r\n\r\n public otherCallback: () => Promise<boolean> = undefined;\r\n\r\n public left1Callback: () => Promise<boolean> = undefined;\r\n\r\n public left2Callback: () => Promise<boolean> = undefined;\r\n\r\n public get okButton(): HTMLButtonElement {\r\n return this._okButtonElement;\r\n }\r\n\r\n public get noButton(): HTMLButtonElement {\r\n return this._noButtonElement;\r\n }\r\n\r\n public get cancelButton(): HTMLButtonElement {\r\n return this._cancelButtonElement;\r\n }\r\n\r\n public get otherButton(): HTMLButtonElement {\r\n return this._otherButtonElement;\r\n }\r\n\r\n public get leftButton1(): HTMLButtonElement {\r\n return this._leftButton1Element;\r\n }\r\n\r\n public get leftButton2(): HTMLButtonElement {\r\n return this._leftButton2Element;\r\n }\r\n\r\n /**\r\n * Určuje element, který má dostat po otevření okna focus\r\n */\r\n public get focusElement(): HTMLElement | EditableControl {\r\n return this._focusElement;\r\n }\r\n\r\n public set focusElement(element: HTMLElement | EditableControl) {\r\n this._focusElement = element;\r\n }\r\n\r\n /**\r\n * Schová MessageBox za blokovací vrstvu\r\n */\r\n public get blocked(): boolean {\r\n return this._element.classList.contains(\"blocked\");\r\n }\r\n\r\n public set blocked(value: boolean) {\r\n if (value)\r\n this._showAndIncBlockingLayer();\r\n else\r\n this._hideOrDecBlockingLayer();\r\n this._element.classList.toggle(\"blocked\", value);\r\n }\r\n private _logsUserInteraction: boolean = true;\r\n\r\n /** Vrací příznak, jestli dialog loguje akce jako uživatelské. Uživatelské akce prodlužují session pokud je tato vlastnost zapnutá.\r\n * Výchozí hodnota: true\r\n */\r\n public get logsUserInteraction(): boolean {\r\n return this._logsUserInteraction;\r\n }\r\n /** Nastavuje příznak, jestli dialog loguje akce jako uživatelské. Uživatelské akce prodlužují session pokud je tato vlastnost zapnutá.\r\n * Výchozí hodnota: true\r\n */\r\n public set logsUserInteraction(val: boolean) {\r\n this._logsUserInteraction = val;\r\n if (this._element)\r\n this._element.classList.toggle(\"no-interaction-container\", !val);\r\n }\r\n\r\n /**\r\n * Vytvoří dialogové okno\r\n * @param contentBuilder Builder obsahu okna.\r\n * @param _additionalClasses Dodatečné css třídy, které budou přidány do dialogu.\r\n */\r\n constructor(contentBuilder?: IContentBuilder, private readonly _additionalClasses?: string[]) {\r\n this.contentBuilder = contentBuilder;\r\n this._blockingLayer = UIManager.instance.blockingLayer;\r\n this.type = MessageType.message;\r\n }\r\n\r\n /**\r\n * Zobrazí blokující vrstvu a inkrementuje počítadlo oken\r\n */\r\n private _showAndIncBlockingLayer(): void {\r\n UIManager.instance.showBlockingLayer();\r\n if (MessageWindow._countDisplayMessage === 0) {\r\n if (this._blockingLayer)\r\n this._blockingLayer.classList.add(\"animation\");\r\n }\r\n MessageWindow._countDisplayMessage++;\r\n }\r\n\r\n /**\r\n * Dekrementuje počítadlo oken a v případě posledního skryje blokující vrstvu\r\n */\r\n private _hideOrDecBlockingLayer(): void {\r\n MessageWindow._countDisplayMessage--;\r\n if (MessageWindow._countDisplayMessage <= 0) {\r\n MessageWindow._countDisplayMessage = 0;\r\n if (this._blockingLayer)\r\n this._blockingLayer.classList.add(\"animation\", \"animation-backwards\");\r\n document.body.style.overflow = \"\";\r\n UIManager.instance.hideBlockingLayer();\r\n }\r\n }\r\n\r\n /**\r\n * Zobrazí okno na základě zadaných parametrů\r\n */\r\n public async show(): Promise<MessageButtonResult> {\r\n if (!this._messageId) {\r\n this._deferredResult = PromiseUtils.defer<MessageButtonResult>();\r\n\r\n await this._createElement();\r\n this._showAndIncBlockingLayer();\r\n this._serviceSection = document.createElement(\"div\");\r\n this._serviceSection.classList.add(\"service-section\");\r\n document.body.appendChild(this._serviceSection);\r\n this._serviceSection.appendChild(this._element);\r\n document.body.style.overflow = \"hidden\";\r\n\r\n this._element.classList.add(\"animation\");\r\n\r\n if (this.detailButton && this.detailOpened)\r\n this._toggleDetailOpenedState();\r\n }\r\n\r\n this._originalActiveElement = document.activeElement;\r\n\r\n if (this.focusElement) { // Pokud je nastavena tato property, má prioritu, pro element k označení\r\n this.focusElement.focus();\r\n } else {\r\n // Pri show message window nastavuje focus na tlacitko OK, pokud neni tlacitko tak focus dostane cely okno\r\n if (this.okButtonCaption && this._okButtonElement) {\r\n this._okButtonElement.focus();\r\n } else {\r\n this._element.focus();\r\n }\r\n }\r\n\r\n return this._deferredResult.promise;\r\n }\r\n\r\n /**\r\n * Metoda, která zobrazá okno přímo jako alert, bez nutnosti konfigurovat třídu.\r\n * @param data Lokalizační klíč textu\r\n * @param titleLocKey [Nepovinný] Titulek okna pokud není zadán nebude zobrazen\r\n */\r\n public static showAlert(data: IContentBuilder, titleLocKey?: string): Promise<MessageButtonResult> {\r\n const m = new MessageWindow(data);\r\n m.type = MessageType.alert;\r\n if (titleLocKey)\r\n m.header = titleLocKey;\r\n return m.show();\r\n }\r\n\r\n /**\r\n * Zobrazeni potvrzovaciho dialogu ANO / NE\r\n * @param data text dialogu\r\n * @param OKButtonLC lokalizační klíč pro OKButton, GUI-146838=Ano\r\n * @param NoButtonLC lokalizační klíč pro NoButton, GUI-146840=Ne\r\n * @param titleLocKey [Nepovinný] Titulek okna pokud není zadán nebude zobrazen\r\n */\r\n public static showYesNoDialog(data: IContentBuilder, OKButtonLC: string = \"GUI-146838\", NoButtonLC: string = \"GUI-146840\", titleLocKey?: string): Promise<MessageButtonResult> {\r\n const m = new MessageWindow(data);\r\n m.okButtonCaption = OKButtonLC;\r\n m.noButtonCaption = NoButtonLC;\r\n m.type = MessageType.message;\r\n if (titleLocKey)\r\n m.header = titleLocKey;\r\n return m.show();\r\n }\r\n\r\n /**\r\n * Zobrazeni potvrzovaciho dialogu ANO / NE / Cancel\r\n * @param data text dialogu\r\n * @param OKButtonLC lokalizační klíč pro OKButton, GUI-146838=Ano\r\n * @param NoButtonLC lokalizační klíč pro NoButton, GUI-146840=Ne\r\n * @param CancelButtonLC lokalizační klíč pro CancelButton, GUI-33682=Storno\r\n */\r\n public static showYesNoCancelDialog(data: IContentBuilder, OKButtonLC: string = \"GUI-146838\", NoButtonLC: string = \"GUI-146840\", CancelButtonLC: string = \"GUI-33682\"): Promise<MessageButtonResult> {\r\n const m = new MessageWindow(data);\r\n m.okButtonCaption = OKButtonLC;\r\n m.noButtonCaption = NoButtonLC;\r\n m.cancelButtonCaption = CancelButtonLC;\r\n m.type = MessageType.message;\r\n return m.show();\r\n }\r\n\r\n /**\r\n * Zobrazí potvrzovací dialog\r\n * @param data Text dialogu\r\n * @param titleLocKey Titulek dialogu\r\n */\r\n public static showConfirm(data: IContentBuilder, titleLocKey?: string): Promise<MessageButtonResult> {\r\n const m = new MessageWindow(data);\r\n m.type = MessageType.message;\r\n m.cancelButtonCaption = \"GUI-2\";\r\n if (titleLocKey)\r\n m.header = titleLocKey;\r\n return m.show();\r\n }\r\n\r\n /**\r\n * Pokud je zobrazena debugovací hláška používá se v textu hlášky přímo psany text, nikoli lokalizační klíč\r\n * @param data Text, který bud zobrazen v hlášce\r\n */\r\n public static showDebug(data: IContentBuilder): Promise<MessageButtonResult> {\r\n const m = new MessageWindow(data);\r\n m.type = MessageType.debug;\r\n return m.show();\r\n }\r\n\r\n public close(buttonType: MessageButtonType): void {\r\n this._deferredResult.resolve({\r\n result: buttonType,\r\n });\r\n if (this._resolver) {\r\n this._resolver(buttonType);\r\n }\r\n if (this._originalActiveElement instanceof HTMLElement) {\r\n // Vrátíme zaměření na původní element.\r\n this._originalActiveElement.focus();\r\n }\r\n }\r\n\r\n private _updateFocusedButtonIndex(key: SharedKey): void {\r\n if (key === Key.ArrowLeft) {\r\n this._focusedButtonIndex = (this._focusedButtonIndex + this._buttonsList.length - 1) % this._buttonsList.length;\r\n } else {\r\n this._focusedButtonIndex = (this._focusedButtonIndex + 1) % this._buttonsList.length;\r\n }\r\n }\r\n\r\n private async _createElement(): Promise<void> {\r\n this._messageId = UIManager.instance.generateElementID();\r\n\r\n this._element = createElement({ attrs: { \"id\": this._messageId }, classes: \"MessageBox\" });\r\n this._element.tabIndex = 0; //potřeba kvůli tomu, aby případný keyup nad overlayem měl v eventě target element, jinak by tam byl document\r\n this.logsUserInteraction = this._logsUserInteraction; //nastaví class pro logování uživatelské interakce\r\n\r\n if (this._additionalClasses) {\r\n this._additionalClasses.forEach(i => this._element.classList.add(i));\r\n }\r\n\r\n if (this.header && this.type !== MessageType.information) {\r\n this._headerElement = createElement({ classes: \"Header\" });\r\n Localization.addLocTxtData(this._headerElement, this.header);\r\n this._element.appendChild(this._headerElement);\r\n }\r\n\r\n this._contentElement = createElement({ classes: \"Content\" });\r\n if (this.contentBuilder) {\r\n this._contentElement.innerHTML = \"\";\r\n }\r\n this._element.appendChild(this._contentElement);\r\n\r\n if (this.type !== MessageType.empty) {\r\n this._buttonsList = [];\r\n\r\n this._buttonsElement = createElement({ classes: \"bottom-buttons\" });\r\n this._standardButtonsElement = createElement({ classes: \"standard-buttons\" });\r\n\r\n if (this.type === MessageType.message) {\r\n this._leftButtonsElement = createElement({ classes: \"left-buttons\" });\r\n\r\n if (this.otherButtonCaption) {\r\n this._otherButtonElement = this._createButton(this.otherButtonCaption, \"OtherButton\", \"flat\");\r\n this._standardButtonsElement.appendChild(this._otherButtonElement);\r\n this._buttonsList.push(this._otherButtonElement);\r\n }\r\n if (this.cancelButtonCaption) {\r\n this._cancelButtonElement = this._createButton(this.cancelButtonCaption, \"cancel\", \"flat\");\r\n this._standardButtonsElement.appendChild(this._cancelButtonElement);\r\n this._buttonsList.push(this._cancelButtonElement);\r\n }\r\n if (this.noButtonCaption) {\r\n this._noButtonElement = this._createButton(this.noButtonCaption, \"NoButton\", \"flat\");\r\n this._standardButtonsElement.appendChild(this._noButtonElement);\r\n this._buttonsList.push(this._noButtonElement);\r\n }\r\n if (this.leftButton1Caption) {\r\n this._leftButton1Element = this._createButton(this.leftButton1Caption, \"OtherButton\", \"flat\");\r\n this._leftButtonsElement.appendChild(this._leftButton1Element);\r\n this._buttonsList.push(this._leftButton1Element);\r\n }\r\n if (this.leftButton2Caption) {\r\n this._leftButton2Element = this._createButton(this.leftButton2Caption, \"OtherButton\", \"flat\");\r\n this._leftButtonsElement.appendChild(this._leftButton2Element);\r\n this._buttonsList.push(this._leftButton2Element);\r\n }\r\n\r\n this._buttonsElement.appendChild(this._leftButtonsElement);\r\n }\r\n\r\n this._okButtonElement = this._createButton(this.okButtonCaption, \"OKButton\", \"primary\");\r\n this._standardButtonsElement.appendChild(this._okButtonElement);\r\n this._buttonsList.push(this._okButtonElement);\r\n\r\n this._buttonsElement.appendChild(this._standardButtonsElement);\r\n\r\n this._element.appendChild(this._buttonsElement);\r\n }\r\n\r\n if (this.detailButton) {\r\n this._createDetailButton();\r\n this._element.style.minHeight = this._minHeightWithDetail;\r\n\r\n if ($)\r\n $(this._element)?.resizable({ handles: \"n, e, s, w, ne, se, sw, nw\" });\r\n\r\n this._element.appendChild(this._detailElement);\r\n } else {\r\n this._element.style.minHeight = this._minHeightWithoutDetail;\r\n }\r\n if (this.contentBuilder)\r\n this._contentElement.appendChild(await this.contentBuilder.build());\r\n\r\n this._setListeners();\r\n }\r\n\r\n private _createButton(locKey: string, ...classes: string[]): HTMLButtonElement {\r\n const button = document.createElement(\"button\");\r\n button.classList.add(...classes, \"btn\", \"btn-large\");\r\n Localization.addLocTxtData(button, locKey);\r\n return button;\r\n }\r\n\r\n private _createDetailButton(): void {\r\n this._detailElement = createElement({ classes: [\"DetailInformation\", \"hidden\"] });\r\n this._showDetailButtonElement = createElement({ classes: [\"ShowDetail\"] });\r\n Localization.addLocTxtData(this._showDetailButtonElement, \"GUI-331736\"); // Zobrazit detail\r\n\r\n const cc = createElement({ classes: [\"cc\"] });\r\n this._detailContentElement = createElement({ classes: [\"Content\"] });\r\n if (this.detail) {\r\n this.detail = StringUtils.stringToHTMLText(this.detail);\r\n this._detailContentElement.innerHTML = this.detail;\r\n }\r\n cc.appendChild(this._detailContentElement);\r\n this._detailElement.appendChild(this._showDetailButtonElement);\r\n this._detailElement.appendChild(cc);\r\n }\r\n\r\n private _setListeners(): void {\r\n // pridani eventu na ukonceni animace\r\n // ReSharper disable once Html.EventNotResolved\r\n this._element.addEventListener(\"animationend\", this._eventListenerMethods[\"animationend\"] = () => {\r\n this._element.classList.remove(\"animation\");\r\n if (this._blockingLayer) {\r\n this._blockingLayer.classList.remove(\"animation\", \"animation-backwards\");\r\n }\r\n if (this._element.classList.contains(\"animation-backwards\")) {\r\n this.dispose();\r\n // odebrani z domu\r\n this._element.remove();\r\n }\r\n });\r\n\r\n if (this.stopClickPropagation)\r\n this._element.addEventListener(\"click\", this._eventListenerMethods[\"clickStopPropagation\"] = e => e.stopPropagation());\r\n\r\n /** Pomocná funkce pro zaměření elementu (pokud existuje) a zastavení propagace eventu. */\r\n const focusHelper = (element: HTMLElement | undefined, e: Event) => {\r\n if (element) {\r\n element.focus();\r\n e.preventDefault();\r\n }\r\n return element;\r\n };\r\n\r\n this._element.addEventListener(\"keydown\", this._eventListenerMethods[\"keydown\"] = async (e: KeyboardEvent) => {\r\n if (e.key === Key.Escape) {\r\n if (this.cancelButtonCaption) {\r\n resultMethod(MessageButtonType.cancel);\r\n return;\r\n } else if (this.noButtonCaption) {\r\n resultMethod(MessageButtonType.no);\r\n return;\r\n }\r\n }\r\n\r\n /** Focus trap pro udržení focusu v MessageWindow elementu. */\r\n if (e.key === Key.Tab) {\r\n const inputs = [...this.element.getElementsByTagName(\"input\")];\r\n const firstInput = inputs[0];\r\n const lastInput = inputs.slice(-1)[0];\r\n const buttons = [...this._buttonsElement.getElementsByTagName(\"button\")];\r\n const firstButton = buttons[0];\r\n const lastButton = buttons.slice(-1)[0];\r\n if (e.shiftKey) {\r\n if (e.target === firstInput) {\r\n focusHelper(lastButton, e) || focusHelper(lastInput, e);\r\n } else if (e.target === firstButton) {\r\n if (!lastInput) {\r\n focusHelper(lastButton, e);\r\n }\r\n }\r\n } else {\r\n if (e.target === lastButton) {\r\n focusHelper(firstInput, e) || focusHelper(firstButton, e);\r\n } else if (e.target === lastInput) {\r\n if (!firstButton) {\r\n focusHelper(firstInput, e);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n /** Přepínání spodních tlačítek šipkami */\r\n this._buttonsElement?.addEventListener(\"keydown\", this._eventListenerMethods[\"keydownButtons\"] = async (e: KeyboardEvent) => {\r\n if (e.key === Key.ArrowLeft || e.key === Key.ArrowRight) {\r\n this._updateFocusedButtonIndex(e.key);\r\n this._buttonsList[this._focusedButtonIndex].focus();\r\n }\r\n });\r\n\r\n for (const button of this._buttonsList) {\r\n button.addEventListener(\"focus\", () => {\r\n this._focusedButtonIndex = this._buttonsList.indexOf(button);\r\n });\r\n }\r\n\r\n const resultMethod = (buttonType: MessageButtonType) => {\r\n if (this._buttonHasClicked)\r\n return;\r\n\r\n //this._element.remove();\r\n this._element.classList.add(\"animation\", \"animation-backwards\");\r\n\r\n document.body.removeChild(this._serviceSection);\r\n\r\n this._hideOrDecBlockingLayer();\r\n\r\n this._buttonHasClicked = true;\r\n\r\n this.close(buttonType);\r\n };\r\n\r\n this._resolver = (result: MessageButtonType) => resultMethod(result);\r\n\r\n if (this._okButtonElement)\r\n this._okButtonElement.addEventListener(\"click\", this._eventListenerMethods[\"OKButtonClick\"] = async (e: MouseEvent) => {\r\n if (this._okButtonElement.classList.contains(\"Disabled\"))\r\n return;\r\n EventHelper.stopPropagation(e);\r\n if (this.okCallback) {\r\n try {\r\n this._okButtonElement.setAttribute(\"disabled\", \"disabled\");\r\n this._okButtonElement.classList.add(\"Disabled\");\r\n this._okButtonElement.classList.add(\"loading\");\r\n if (await this.okCallback()) //pokud callback vrátil false, dialog zůstane otevřený\r\n resultMethod(MessageButtonType.ok);\r\n } finally {\r\n this._okButtonElement.classList.remove(\"loading\");\r\n this._okButtonElement.removeAttribute(\"disabled\");\r\n this._okButtonElement.classList.remove(\"Disabled\");\r\n }\r\n } else {\r\n resultMethod(MessageButtonType.ok);\r\n }\r\n });\r\n if (this._noButtonElement)\r\n this._noButtonElement.addEventListener(\"click\", this._eventListenerMethods[\"NOButtonClick\"] = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n resultMethod(MessageButtonType.no);\r\n });\r\n if (this._cancelButtonElement)\r\n this._cancelButtonElement.addEventListener(\"click\", this._eventListenerMethods[\"CancelButtonClick\"] = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n resultMethod(MessageButtonType.cancel);\r\n });\r\n if (this._otherButtonElement)\r\n this._otherButtonElement.addEventListener(\"click\", this._eventListenerMethods[\"OtherButtonClick\"] = async (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n if (!this.otherCallback || (this.otherCallback && await this.otherCallback())) { // pokud callback vrátil false, dialog zůstane otevřený\r\n resultMethod(MessageButtonType.other);\r\n }\r\n });\r\n if (this._leftButton1Element) {\r\n this._leftButton1Element.addEventListener(\"click\", this._eventListenerMethods[\"LeftButton1Click\"] = async (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n if (!this.left1Callback || (this.left1Callback && await this.left1Callback())) { // pokud callback vrátil false, dialog zůstane otevřený\r\n resultMethod(MessageButtonType.leftButton1);\r\n }\r\n });\r\n }\r\n if (this._leftButton2Element) {\r\n this._leftButton2Element.addEventListener(\"click\", this._eventListenerMethods[\"LeftButton2Click\"] = async (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n if (!this.left2Callback || (this.left2Callback && await this.left2Callback())) { // pokud callback vrátil false, dialog zůstane otevřený\r\n resultMethod(MessageButtonType.leftButton2);\r\n }\r\n });\r\n }\r\n if (this._showDetailButtonElement) {\r\n this._showDetailButtonElement.addEventListener(\"click\", this._eventListenerMethods[\"showDetailButtonClick\"] = () => this._toggleDetailOpenedState());\r\n }\r\n }\r\n\r\n private _toggleDetailOpenedState(): void {\r\n this._detailElement.classList.toggle(\"hidden\");\r\n\r\n if (this._detailElement.classList.contains(\"hidden\")) {\r\n this._element.style.minHeight = this._minHeightWithDetail;\r\n this._lastDetailHeight = this._element.style.height;\r\n this._element.style.height = \"\";\r\n Localization.addLocTxtData(this._showDetailButtonElement, \"GUI-331736\"); // Zobrazit detail\r\n } else {\r\n this._element.style.minHeight = (this._headerElement.clientHeight + this._contentElement.clientHeight + this._buttonsElement.clientHeight + this._showDetailButtonElement.clientHeight + 150) + \"px\";\r\n this._element.style.height = this._lastDetailHeight === \"\" ? (this._detailContentElement.clientHeight + parseInt(this._element.style.minHeight)) + \"px\" : this._lastDetailHeight;\r\n Localization.addLocTxtData(this._showDetailButtonElement, \"GUI-176350\"); // Skrýt detail\r\n }\r\n }\r\n\r\n //#region IDisposable\r\n public dispose(): void {\r\n this._buttonHasClicked = false;\r\n if (this._element) {\r\n this._element.removeEventListener(\"click\", this._eventListenerMethods[\"clickStopPropagation\"]);\r\n this._element.removeEventListener(\"animationend\", this._eventListenerMethods[\"animationend\"]);\r\n this._element.removeEventListener(\"keydown\", this._eventListenerMethods[\"keydown\"]);\r\n }\r\n if (this._buttonsElement) {\r\n this._buttonsElement.removeEventListener(\"keydown\", this._eventListenerMethods[\"keydownButtons\"]);\r\n }\r\n if (this._okButtonElement)\r\n this._okButtonElement.removeEventListener(\"click\", this._eventListenerMethods[\"OKButtonClick\"]);\r\n if (this._noButtonElement)\r\n this._noButtonElement.removeEventListener(\"click\", this._eventListenerMethods[\"NOButtonClick\"]);\r\n if (this._cancelButtonElement)\r\n this._cancelButtonElement.removeEventListener(\"click\", this._eventListenerMethods[\"CancelButtonClick\"]);\r\n if (this._otherButtonElement)\r\n this._otherButtonElement.removeEventListener(\"click\", this._eventListenerMethods[\"OtherButtonClick\"]);\r\n if (this._leftButton1Element)\r\n this._leftButton1Element.removeEventListener(\"click\", this._eventListenerMethods[\"LeftButton1Click\"]);\r\n if (this._leftButton2Element)\r\n this._leftButton2Element.removeEventListener(\"click\", this._eventListenerMethods[\"LeftButton2Click\"]);\r\n if (this._showDetailButtonElement)\r\n this._showDetailButtonElement.removeEventListener(\"click\", this._eventListenerMethods[\"showDetailButtonClick\"]);\r\n }\r\n\r\n //#endregion IDisposable\r\n}\r\n\r\n/**\r\n * Typ hlášky\r\n */\r\nexport enum MessageType {\r\n error,\r\n alert,\r\n information,\r\n message,\r\n debug,\r\n empty,\r\n}\r\n\r\nexport enum MessageContext {\r\n application,\r\n form,\r\n}\r\n\r\n/**\r\n * Typ stisknutého tlacitka pro navratovy promise\r\n */\r\nexport enum MessageButtonType {\r\n ok,\r\n cancel,\r\n no,\r\n other,\r\n leftButton1,\r\n leftButton2,\r\n}\r\n","import { ISectionLogger } from \"@multiweb/logging\";\r\nimport { ResultMessageType } from \"@multiweb/types/contracts\";\r\nimport {\r\n CryptoExtensionUnavailableException,\r\n EInsufficientVersionException,\r\n NativeAppBulkException,\r\n NativeAppException,\r\n NativeAppExitedException,\r\n NativeAppNoCertificateFoundException,\r\n NativeAppSelectionParamsException,\r\n NativeAppTooManyCertificatesFoundException,\r\n NativeAppUnavailableException,\r\n} from \"Cryptography/Crypto/CryptoExceptions\";\r\nimport { ConditionErrorType, DataSourceException, InvalidArgumentException, InvalidConditionException, InvalidOperationException, UserAbortedException } from \"Global/Base/Exceptions\";\r\nimport { CancelError } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { IDBException } from \"IndexedDB/Promises/IndexedDBExceptions\";\r\nimport {\r\n EDMSException,\r\n EOWDmsUnavailable,\r\n EOWException,\r\n EOWFormDefinitionNotFoundException,\r\n EOWKillSession,\r\n EOWLocalizableException,\r\n EOWLogonError,\r\n EOWNoFormNameException,\r\n EOWNoImplicitFormForClassException,\r\n EOWNoRightsToForm,\r\n EOWRecordPermissionException,\r\n EOWRunMethodInsufficientRightsException,\r\n EOWSessionTimeOut,\r\n EOWUnauthorizedAccess,\r\n EOWUnknownException,\r\n EOWUserException,\r\n EOWValidateException,\r\n EReadOnlyAttribute,\r\n EReadOnlyMethod,\r\n} from \"OW.Remoting/Basic/OWExceptions\";\r\nimport { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { CryptoExtensionUnavailableBuilder } from \"UI/UI/UI/DataBuilders/CryptoExtensionUnavailableBuilder\";\r\nimport { CryptoNativeAppUnavailableBuilder } from \"UI/UI/UI/DataBuilders/CryptoNativeAppUnavailableBuilder\";\r\nimport { CryptoVersionInfoBuilder } from \"UI/UI/UI/DataBuilders/CryptoVersionInfoBuilder\";\r\nimport { LocalizedStringBuilder } from \"UI/UI/UI/DataBuilders/LocalizedStringBuilder\";\r\nimport { StringBuilder } from \"UI/UI/UI/DataBuilders/StringBuilder\";\r\nimport { IUserMsgsData, UserMsgsBuilder, UserMsgsData } from \"UI/UI/UI/DataBuilders/UserMsgsBuilder\";\r\nimport { MessageButtonType, MessageType, MessageWindow } from \"UI/UI/UI/MessageWindow\";\r\nimport { IUIManagerWorker, MessageButtonResult } from \"UI/UI/UI/UIManager\";\r\nimport {\r\n LOC_KEY_ERROR_CLEAR_AND_RETRY,\r\n LOC_KEY_ERROR_CNA_EXITED,\r\n LOC_KEY_ERROR_CNA_NO_CERTIFICATE_FOUND,\r\n LOC_KEY_ERROR_CNA_SELECTIONPARAMS,\r\n LOC_KEY_ERROR_CNA_TOO_MANY_CERTIFICATES_FOUND,\r\n LOC_KEY_ERROR_CONDITION_NOT_MET,\r\n LOC_KEY_ERROR_CONTACT_ADMIN,\r\n LOC_KEY_ERROR_EVENT_ID,\r\n LOC_KEY_ERROR_FILES_UNAVAILABLE,\r\n LOC_KEY_ERROR_FORM_DEFINITION_NOT_FOUND,\r\n LOC_KEY_ERROR_GENERIC_FAIL,\r\n LOC_KEY_ERROR_GENERIC_FAIL_RETRY,\r\n LOC_KEY_ERROR_GENERIC_RETRY,\r\n LOC_KEY_ERROR_GENERIC_UNABLE,\r\n LOC_KEY_ERROR_INDEXED_BD,\r\n LOC_KEY_ERROR_INSUFFICIENT_RIGHTS,\r\n LOC_KEY_ERROR_INSUFFICIENT_RIGHTS_RUN_ACTION,\r\n LOC_KEY_ERROR_INVALID_EXTENDED_FILTER,\r\n LOC_KEY_ERROR_INVALID_EXTENDED_FILTER_VALUES,\r\n LOC_KEY_ERROR_INVALID_FILTER,\r\n LOC_KEY_ERROR_INVALID_FILTER_ATTRIBUTE,\r\n LOC_KEY_ERROR_LOGGED_OUT,\r\n LOC_KEY_ERROR_LOGOUT,\r\n LOC_KEY_ERROR_MISSING_CNA_APP,\r\n LOC_KEY_ERROR_MISSING_CWE_EXTENSION,\r\n LOC_KEY_ERROR_MISSING_FORM_NAME,\r\n LOC_KEY_ERROR_NO_ASSOCIATED_FORM,\r\n LOC_KEY_ERROR_NO_DATA,\r\n LOC_KEY_ERROR_NO_RIGHTS_FORM,\r\n LOC_KEY_ERROR_NOTICE,\r\n LOC_KEY_ERROR_RELOG_AND_RETRY,\r\n LOC_KEY_ERROR_SECURITY_TOKEN_EXPIRED,\r\n LOC_KEY_ERROR_SERVER_UNAVAILABLE,\r\n LOC_KEY_ERROR_STORAGE_ERROR,\r\n LOC_KEY_ERROR_STORAGE_UNAVAILABLE,\r\n LOC_KEY_ERROR_UNABLE_TO_CREATE_DIGITAL_SIGNATURE,\r\n LOC_KEY_ERROR_UNABLE_TO_MODIFY,\r\n LOC_KEY_ERROR_UNABLE_TO_OPEN_FORM,\r\n LOC_KEY_ERROR_UNABLE_TO_RUN_ACTION,\r\n LOC_KEY_ERROR_UPDATE_REQUIRED,\r\n LOC_KEY_ERROR_WRONG_CREDENTIALS,\r\n} from \"./constants\";\r\nimport { IErrorHandler } from \"./IErrorHandler\";\r\n\r\n/**\r\n * Standardní implementace zachytává chyby a zobrazuje je uživateli pomocí MessageWindow.\r\n */\r\nexport class StandardErrorHandler implements IErrorHandler {\r\n private readonly _showFullErors: boolean;\r\n private _stopExceptionPropagation: boolean = false;\r\n private static _messageWindowTypeShow: { [name: string]: number } = {};\r\n private _exceptionTitle1: string | undefined;\r\n private _exceptionTitle2: string | undefined;\r\n protected _logger: ISectionLogger;\r\n protected _uiManager: IUIManagerWorker;\r\n\r\n constructor(showFullErors: boolean, uiManager: IUIManagerWorker, logger: ISectionLogger) {\r\n this._showFullErors = showFullErors;\r\n this._logger = logger;\r\n this._uiManager = uiManager;\r\n\r\n Localization.getTexts(LOC_KEY_ERROR_EVENT_ID, LOC_KEY_ERROR_NOTICE).then(r => {\r\n this._exceptionTitle1 = r.get(LOC_KEY_ERROR_EVENT_ID);\r\n this._exceptionTitle2 = r.get(LOC_KEY_ERROR_NOTICE);\r\n });\r\n }\r\n public activateAsyncGlobalErrorHandler(): void {\r\n self.addEventListener(\"unhandledrejection\", event => {\r\n event.preventDefault();\r\n this._handleError(event.reason, false); // u asynchronních chyb se nedá vygenerovat callstack, proto se předává false\r\n });\r\n }\r\n\r\n public handleError(exception: any): void {\r\n this._handleError(exception, true);\r\n }\r\n\r\n protected _handleError(exception: any, showOuterCallStack: boolean): void {\r\n if (this._stopExceptionPropagation)\r\n return;\r\n\r\n if (exception instanceof UserAbortedException || exception instanceof CancelError)\r\n return;\r\n\r\n if (exception instanceof EInsufficientVersionException) {\r\n const msgWindow = new MessageWindow(new CryptoVersionInfoBuilder(exception));\r\n msgWindow.header = LOC_KEY_ERROR_UPDATE_REQUIRED;\r\n this._showMessage(msgWindow);\r\n return;\r\n } else if (exception instanceof NativeAppUnavailableException) {\r\n const msgWindow = new MessageWindow(new CryptoNativeAppUnavailableBuilder(exception));\r\n msgWindow.header = LOC_KEY_ERROR_MISSING_CNA_APP;\r\n this._showMessage(msgWindow);\r\n return;\r\n } else if (exception instanceof CryptoExtensionUnavailableException) {\r\n const msgWindow = new MessageWindow(new CryptoExtensionUnavailableBuilder(exception));\r\n msgWindow.header = LOC_KEY_ERROR_MISSING_CWE_EXTENSION;\r\n this._showMessage(msgWindow);\r\n return;\r\n }\r\n\r\n // zobrazeni uzivatelskych chyb\r\n if (exception instanceof EOWUserException && exception.resultMessages) {\r\n this._showResultMessages(exception);\r\n return;\r\n }\r\n\r\n if (exception instanceof InvalidConditionException) {\r\n const msgWindow = new MessageWindow();\r\n msgWindow.header = LOC_KEY_ERROR_INVALID_FILTER;\r\n\r\n if (exception.invalidValues.length > 0) {\r\n const forbiddenDataTypes = exception.invalidValues.filter(item => item.errorType === ConditionErrorType.forbiddenDataType);\r\n\r\n if (forbiddenDataTypes.length > 0) {\r\n msgWindow.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_INVALID_FILTER_ATTRIBUTE, [forbiddenDataTypes.map(item => item.attributeName).join(\", \")]);\r\n } else {\r\n msgWindow.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_INVALID_EXTENDED_FILTER_VALUES, [exception.invalidValues.map(item => item.attributeName).join(\", \")]);\r\n }\r\n } else {\r\n msgWindow.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_INVALID_EXTENDED_FILTER);\r\n }\r\n\r\n this._showMessage(msgWindow);\r\n\r\n return;\r\n }\r\n\r\n if (exception instanceof EOWUnauthorizedAccess) {\r\n const msgWindow = new MessageWindow();\r\n msgWindow.contentBuilder = new StringBuilder(exception.message);\r\n this._showMessage(msgWindow);\r\n return;\r\n }\r\n\r\n if (exception instanceof DataSourceException) { // Zobrazuje se jen při developmentMode=false, jinak je zobrazen detail chyby\r\n const msgWindow = new MessageWindow();\r\n msgWindow.header = LOC_KEY_ERROR_NO_DATA;\r\n\r\n if (exception.isFiltered) {\r\n msgWindow.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CLEAR_AND_RETRY);\r\n } else {\r\n msgWindow.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CONTACT_ADMIN);\r\n }\r\n\r\n this._showMessage(msgWindow);\r\n\r\n return;\r\n }\r\n\r\n this._logger.log(\"⛔ Rozbilo se to\");\r\n this._logger.error(exception);\r\n\r\n // Pokud došlo k padavé chybě, chceme skrýt všechny loadery\r\n while (this._uiManager.isLoading()) {\r\n this._uiManager.hideLoader();\r\n }\r\n\r\n // tyto vyjimky by se nemely zobrazovat v okne\r\n if (exception instanceof InvalidArgumentException || exception instanceof InvalidOperationException)\r\n return;\r\n\r\n if (exception instanceof EOWException && exception.message === \"Object instance not found!\")\r\n return;\r\n\r\n // Tato výjimka potlačuje vyskakování okna s tímto typem chyb. Přidáno dočasně na základě WI 33364 z důvodu momentálního velkého počtu těchto chyb. Do budoucna se plánuje chyby odstranit.\r\n if (exception instanceof TypeError && (\r\n exception.message.match(/^Cannot read property '.*' of (null|undefined)/) ||\r\n exception.message.match(/^Cannot read properties of (null|undefined) (.*)/) ||\r\n exception.message.match(/is (null|undefined)$/) ||\r\n exception.message.match(/^(null|undefined) is not an object/)\r\n )) {\r\n return;\r\n }\r\n\r\n const msg = new MessageWindow();\r\n msg.detailButton = true;\r\n msg.detailOpened = this._showFullErors;\r\n\r\n if (exception instanceof EOWSessionTimeOut) {\r\n this._redirectToLogoutPage(LogoutReason.sessionTimeOut); // Dojde k přesměrování na \"speciální\" stránku s textem \"Byli jste odhlášení z aplikace.\"\r\n } else if (exception instanceof EOWKillSession) {\r\n this._redirectToLogoutPage(LogoutReason.multipleLogins); // Dojde k přesměrování na \"speciální\" stránku s textem \"Byli jste odhlášení z důvodu přihlášení z jiného počítače.\"\r\n } else if (exception instanceof IDBException) {\r\n if (StandardErrorHandler._messageWindowTypeShow[IDBException.name])\r\n return;\r\n msg.header = LOC_KEY_ERROR_INDEXED_BD;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_RELOG_AND_RETRY);\r\n\r\n msg.otherButtonCaption = LOC_KEY_ERROR_LOGOUT;\r\n\r\n if (exception.innerError) {\r\n if (exception.innerError instanceof Error)\r\n msg.detail = `${exception.innerError.name}: \\n${exception.innerError.message}\\n`;\r\n }\r\n } else if (exception instanceof EOWDmsUnavailable) {\r\n if (StandardErrorHandler._messageWindowTypeShow[EOWDmsUnavailable.name])\r\n return;\r\n\r\n msg.header = LOC_KEY_ERROR_STORAGE_UNAVAILABLE;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_FILES_UNAVAILABLE);\r\n msg.detailButton = false;\r\n StandardErrorHandler._messageWindowTypeShow[EOWDmsUnavailable.name] = 1;\r\n } else if (exception instanceof EDMSException) {\r\n if (StandardErrorHandler._messageWindowTypeShow[EDMSException.name])\r\n return;\r\n msg.header = LOC_KEY_ERROR_STORAGE_ERROR;\r\n if (exception.locKey)\r\n msg.contentBuilder = new LocalizedStringBuilder(exception.locKey);\r\n else\r\n msg.contentBuilder = new StringBuilder(exception.message);\r\n\r\n msg.detailButton = false;\r\n StandardErrorHandler._messageWindowTypeShow[EDMSException.name] = 1;\r\n } else if (exception instanceof EOWUnknownException) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_FAIL;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_GENERIC_RETRY);\r\n msg.detailButton = true;\r\n } else if (exception instanceof EOWNoRightsToForm) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_UNABLE;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_NO_RIGHTS_FORM);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWNoFormNameException) {\r\n msg.header = LOC_KEY_ERROR_FORM_DEFINITION_NOT_FOUND;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_MISSING_FORM_NAME);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWFormDefinitionNotFoundException) {\r\n msg.header = LOC_KEY_ERROR_FORM_DEFINITION_NOT_FOUND;\r\n msg.detailButton = false;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_UNABLE_TO_OPEN_FORM, [exception.FormName]);\r\n } else if (exception instanceof EOWNoImplicitFormForClassException) {\r\n msg.header = LOC_KEY_ERROR_FORM_DEFINITION_NOT_FOUND;\r\n msg.detailButton = false;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_NO_ASSOCIATED_FORM);\r\n } else if (exception instanceof EOWLogonError) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_UNABLE;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_WRONG_CREDENTIALS);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWUserException) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_UNABLE;\r\n msg.contentBuilder = new StringBuilder(exception.message);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWRecordPermissionException) {\r\n msg.header = LOC_KEY_ERROR_INSUFFICIENT_RIGHTS;\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWLocalizableException) {\r\n msg.header = exception.locKeyHeader;\r\n msg.detailButton = false;\r\n msg.contentBuilder = new LocalizedStringBuilder(exception.locKeyBody);\r\n } else if (exception instanceof EReadOnlyAttribute) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_UNABLE;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_UNABLE_TO_MODIFY, [exception.attributeName]);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EReadOnlyMethod) {\r\n msg.header = LOC_KEY_ERROR_GENERIC_UNABLE;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_INSUFFICIENT_RIGHTS_RUN_ACTION);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWRunMethodInsufficientRightsException) {\r\n msg.header = LOC_KEY_ERROR_UNABLE_TO_RUN_ACTION;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CONDITION_NOT_MET);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWValidateException) {\r\n const msgs: IUserMsgsData[] = [];\r\n for (const valErr of exception.validationErrors)\r\n msgs.push({ objectIdentification: exception.name, messages: [{ message: valErr.errorMessage, type: ResultMessageType.error }] });\r\n msg.contentBuilder = new UserMsgsBuilder(msgs);\r\n msg.detailButton = false;\r\n } else if (exception instanceof EOWException) {\r\n if (exception.httpErrorCode === 423) {\r\n this._stopExceptionPropagation = true;\r\n msg.header = LOC_KEY_ERROR_LOGGED_OUT;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_SECURITY_TOKEN_EXPIRED);\r\n } else {\r\n msg.header = LOC_KEY_ERROR_GENERIC_FAIL;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_SERVER_UNAVAILABLE);\r\n }\r\n } else if (exception instanceof NativeAppException) {\r\n msg.header = LOC_KEY_ERROR_UNABLE_TO_CREATE_DIGITAL_SIGNATURE;\r\n if (exception instanceof NativeAppExitedException)\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CNA_EXITED);\r\n else if (exception instanceof NativeAppSelectionParamsException)\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CNA_SELECTIONPARAMS);\r\n else if (exception instanceof NativeAppNoCertificateFoundException)\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CNA_NO_CERTIFICATE_FOUND);\r\n else if (exception instanceof NativeAppTooManyCertificatesFoundException)\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_CNA_TOO_MANY_CERTIFICATES_FOUND);\r\n else if (exception instanceof NativeAppBulkException) { //obsahuje v sobě výjimky pro jednotlivé podepsané streamy. Bude tak možné vypsat chyby pro konkrétní podepsané streamy.\r\n //v případě potřeby pro sestavení zprávy vytvořit samostatný data builder\r\n const msgs: IUserMsgsData[] = [];\r\n for (const innerEx of exception)\r\n msgs.push({ objectIdentification: innerEx.name, messages: [{ message: innerEx.message, type: ResultMessageType.error }] });\r\n msg.contentBuilder = new UserMsgsBuilder(msgs);\r\n } else\r\n msg.contentBuilder = new StringBuilder(exception.message);\r\n msg.detailButton = false;\r\n } else {\r\n msg.header = LOC_KEY_ERROR_GENERIC_FAIL;\r\n msg.type = MessageType.debug;\r\n msg.contentBuilder = new LocalizedStringBuilder(LOC_KEY_ERROR_GENERIC_FAIL_RETRY);\r\n }\r\n\r\n msg.type = MessageType.message;\r\n if (exception instanceof EOWException) {\r\n let detail = this._buildErrorTitle(exception);\r\n if (exception.logExceptionID)\r\n detail += this._buildExceptionIdInfo(exception);\r\n if (exception.serverStackTrace)\r\n detail += this._buildServerStacktraceInfo(exception.serverStackTrace);\r\n detail += this._buildClientInnerStacktraceInfo(exception.stack);\r\n if (showOuterCallStack)\r\n detail += this._buildClientOuterStacktraceInfo(new Error().stack);\r\n if (exception.request && this._showFullErors /* zatím jen v developmentMode */)\r\n detail += this._buildRequestInfo(exception);\r\n msg.detail = detail;\r\n } else if (exception?.stack)\r\n msg.detail = this._buildErrorInfo(exception);\r\n else\r\n msg.detail = JSON.stringify(exception);\r\n\r\n this._showMessage(msg).then((res) => {\r\n if ((exception instanceof IDBException && res.result === MessageButtonType.other) ||\r\n this._stopExceptionPropagation) {\r\n location.assign(`./${location.search}`); // `\r\n } else if (exception instanceof EOWDmsUnavailable || exception instanceof EDMSException) {\r\n StandardErrorHandler._messageWindowTypeShow[exception.constructor.name] = 0;\r\n }\r\n }).catch((err) => {\r\n this.handleError(err);\r\n });\r\n }\r\n\r\n protected _buildErrorInfo(exception: any): string {\r\n return `${exception.name}: \\n${exception.message}\\n\\nStack:\\n------\\n${exception.stack}`; //`\r\n }\r\n\r\n protected _buildErrorTitle(exception: EOWException): string {\r\n return `${exception.name}: \\n${exception.message}\\n`; //`\r\n }\r\n\r\n protected _buildClientInnerStacktraceInfo(stack: string): string {\r\n return `\\nClient inner callstack:\\n-----------------------\\n${stack}\\n`; //`\r\n }\r\n\r\n protected _buildClientOuterStacktraceInfo(stack: string): string {\r\n // odstraní zbytečnou prázdnou error message na začátku stacku (jen ve Chromiu, jinde se ke stacku název chyby nepřidává)\r\n if (stack.startsWith(Error.name))\r\n stack = stack.substr(Error.name.length + 1);\r\n\r\n return `\\nClient outer callstack:\\n-----------------------\\n${stack}\\n`; //`\r\n }\r\n\r\n protected _buildServerStacktraceInfo(stack: string): string {\r\n // odfiltruje zbytečné dodatečné informace, které jen znepřehledňují výpis\r\n const indexOfEnd = stack.indexOf(\"--- End of stack trace\");\r\n if (indexOfEnd && indexOfEnd > 0)\r\n stack = stack.substr(0, indexOfEnd);\r\n\r\n stack = stack.replace(/(\\r\\n|\\r|\\n){2,}/g, \"$1\"); // regulár nahradí zbytečná vícenásobná odřádkování\r\n return `\\nServer callstack:\\n-----------------\\n${stack}\\n`; //`\r\n }\r\n\r\n protected _buildExceptionIdInfo(exception: EOWException): string {\r\n return `${this._exceptionTitle1} ${exception.logExceptionID}\\n${this._exceptionTitle2}\\n`; //`\r\n }\r\n\r\n protected _buildRequestInfo({ request }: EOWException): string {\r\n const url = new URL(request.url);\r\n\r\n let result = \"\\nHTTP Request:\\n-------------\\n\";\r\n result += `${request.requestMethod} ${url.origin}${url.pathname}\\n`; //`\r\n\r\n const queryParams = [...url.searchParams];\r\n if (queryParams.length > 0) {\r\n result += \"\\nRequest Params:\\n\";\r\n for (const [paramName, paramValue] of queryParams)\r\n result += `${paramName}: ${decodeURIComponent(decodeURIComponent(paramValue))}\\n`; //`\r\n }\r\n\r\n const headers = this._getRequestHeaders(request.headers);\r\n if (headers.length > 0) {\r\n result += \"\\nRequest Headers:\\n\";\r\n for (const [headerName, headerValue] of headers)\r\n result += `${headerName}: ${decodeURIComponent(decodeURIComponent(headerValue))}\\n`; //`\r\n }\r\n\r\n if (request.data) {\r\n result += \"\\nRequest Payload:\\n\";\r\n if (typeof request.data === \"string\")\r\n try {\r\n // pokud je v datech json, tak ho zkusíme zparsovat a naformátovat pro lepší zobrazení\r\n result += JSON.stringify(JSON.parse(request.data), undefined, 2);\r\n } catch {\r\n result += request.data;\r\n }\r\n else\r\n result += JSON.stringify(request.data, undefined, 2);\r\n }\r\n return result;\r\n }\r\n\r\n private _getRequestHeaders(originalHeaders: Iterable<[string, string]> | { [name: string]: string | boolean }): readonly [string, string][] {\r\n if (!originalHeaders)\r\n return [];\r\n\r\n // authid se z výstupu radši odfiltruje, aby ho někdo zbytečně někomu nenasdílel a nevytvořil tak na sebe možnost útoku\r\n\r\n if (Symbol.iterator in originalHeaders)\r\n return [...originalHeaders as Iterable<[string, string]>].filter(([key]) => key !== \"authid\");\r\n\r\n return Object.entries(originalHeaders).filter(([key]) => key !== \"authid\");\r\n }\r\n\r\n protected _showMessage(msg: MessageWindow): Promise<MessageButtonResult> {\r\n return msg.show();\r\n }\r\n\r\n protected async _showResultMessages(exception: EOWUserException): Promise<void> {\r\n const messages = exception.resultMessages;\r\n\r\n if (!messages || messages.length === 0)\r\n return;\r\n\r\n await MessageWindow.showAlert(new UserMsgsBuilder([new UserMsgsData(messages)]));\r\n }\r\n\r\n /**\r\n * Přesměruje na odhlašovací stránku s Query stringem obsahujícím důvod odhlášení a případně parametry formuláře\r\n * @param logoutReason důvod odhlášení\r\n */\r\n protected _redirectToLogoutPage(logoutReason: LogoutReason): void {\r\n top.location.assign(`logout?reason=${logoutReason}${this._getFormParamsFromQueryString()}`);\r\n }\r\n\r\n /**\r\n * Získá z Query stringu parametry o formuláři\r\n */\r\n private _getFormParamsFromQueryString(): string {\r\n const queryString = top.location.search;\r\n return queryString.length > 0 ? \"&\" + queryString.substring(1) : \"\";\r\n }\r\n}\r\n\r\n/**\r\n * Enum obsahující důvody odhlášení z aplikace\r\n * Nachází se i v umístění \"resources\\static\\js\\logout.js\", při změně je nutné ho v uvedeném umístění synchronizovat\r\n */\r\nenum LogoutReason {\r\n sessionTimeOut = \"session-timeout\",\r\n multipleLogins = \"multiple-logins\",\r\n}\r\n","export * from \"./constants\";\r\nexport * from \"./ErrorHandler\";\r\nexport * from \"./IErrorHandler\";\r\nexport * from \"./StandardErrorHandler\";\r\n","export class DeviceInfo {\r\n private static _deviceProperties: DeviceProperties | null = null;\r\n\r\n public static get deviceProperties(): DeviceProperties {\r\n if (DeviceInfo._deviceProperties == null) {\r\n DeviceInfo._deviceProperties = DeviceInfo._getDeviceProperties();\r\n DeviceInfo._setDeviceClasses(DeviceInfo._deviceProperties, document.getElementsByTagName(\"html\")[0]);\r\n }\r\n return DeviceInfo._deviceProperties;\r\n }\r\n\r\n public static getParameterByName(name: string): string {\r\n name = name.replace(/[[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\r\n const regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\");\r\n const results = regex.exec(location.search);\r\n return results == null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\r\n }\r\n\r\n private static _setDeviceClasses(deviceProperties: DeviceProperties, element: HTMLElement): void {\r\n if (deviceProperties.android)\r\n element.classList.add(\"android\");\r\n if (deviceProperties.blackBerry)\r\n element.classList.add(\"blackBerry\");\r\n if (deviceProperties.iOS)\r\n element.classList.add(\"ios\");\r\n if (deviceProperties.wp)\r\n element.classList.add(\"wp\");\r\n\r\n if (deviceProperties.phone)\r\n element.classList.add(\"phone\");\r\n if (deviceProperties.tablet)\r\n element.classList.add(\"tablet\");\r\n if (deviceProperties.desktop)\r\n element.classList.add(\"desktop\");\r\n\r\n if (deviceProperties.touch)\r\n element.classList.add(\"touch\");\r\n if (deviceProperties.highContrast)\r\n element.classList.add(\"high-contrast\");\r\n if (deviceProperties.installedApp)\r\n element.classList.add(\"installed-app\");\r\n\r\n element.classList.add(Browser[deviceProperties.browser]);\r\n }\r\n\r\n private static _getDeviceProperties(): DeviceProperties {\r\n const deviceProperties: DeviceProperties = { touch: false, wp: false, android: false, iOS: false, phone: false, tablet: false, desktop: false, blackBerry: false, highContrast: false, installedApp: false, browser: Browser.unknown };\r\n\r\n // Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Touch; rv:11.0; WPDesktop; NOKIA; Lumia 520) like Gecko\r\n // Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like Gecko\r\n // Mozilla/5.0 (Windows NT 6.2; ARM; Trident/7.0; Touch; rv:11.0; WPDesktop; Microsoft; Virtual) like Gecko\r\n // Mozilla/5.0 (Windows Phone 8.1; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; Virtual) like Gecko\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; HTC; Windows Phone 8X by HTC)\r\n // Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 520) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537\r\n if (navigator.userAgent.match(/(?:Windows Phone)|(?:IEMobile)|(?:WPDesktop)/i) || DeviceInfo.getParameterByName(\"OS\") === \"WP\") {\r\n deviceProperties.touch = true;\r\n deviceProperties.wp = true;\r\n deviceProperties.phone = true;\r\n } else {\r\n // Mozilla/5.0 (iPad; CPU OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53\r\n if (navigator.userAgent.match(/iPad/i) || DeviceInfo.getParameterByName(\"OS\") === \"iOS\" ||\r\n // od iPadOS 13 se uz neda rozlisit od stolni verze a je potreba pouzit tento zatim jediny funkcni workaround\r\n navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 0) {\r\n deviceProperties.touch = true;\r\n deviceProperties.iOS = true;\r\n deviceProperties.tablet = true;\r\n } else {\r\n // Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53\r\n if (navigator.userAgent.match(/iPhone/i)) {\r\n deviceProperties.touch = true;\r\n deviceProperties.iOS = true;\r\n deviceProperties.phone = true;\r\n } else {\r\n // Mozilla/5.0 (BB10; Kbd) AppleWebKit/537.35+ (KHTML, like Gecko) Version/10.2.1.2141 Mobile Safari/537.35+\r\n if (navigator.userAgent.match(/BlackBerry|BB10/i) || DeviceInfo.getParameterByName(\"OS\") === \"BlackBerry\") {\r\n deviceProperties.touch = true;\r\n deviceProperties.blackBerry = true;\r\n } else {\r\n // Mozilla/5.0 (Linux; U; Android 4.0.3; cs-cz; TA7300 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 – GoGEN - Android Browser\r\n // Mozilla/5.0 (Android; Mobile; rv:28.0) Gecko/28.0 Firefox/28.0 – Firefox 28 on Nexus 5\r\n // Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Mobile Safari/537.36 OPR/19.0.1340.69721 – Opera 19\r\n // Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36 – Chrome 33\r\n // Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 – Android Browser 4.4\r\n // Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36\r\n // Mozilla/5.0 (Android; Tablet; rv:28.0) Gecko/28.0 Firefox/28.0 – Firefox 28 on Nexus 7\r\n // Mozilla/5.0 (Linux; Android 4.4.2; Virtual Machine Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 – Android Browser 4.4\r\n if (navigator.userAgent.match(/Android/i) || DeviceInfo.getParameterByName(\"OS\") === \"Android\") {\r\n deviceProperties.touch = true;\r\n deviceProperties.android = true;\r\n } else {\r\n // Desktop\r\n // Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko\r\n // Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; Touch; rv:11.0) like Gecko\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Touch)\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0) – 32 - bit Internet Explorer 10 on 32 - bit Windows 8\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) – 32 - bit Internet Explorer 10 on 64 - bit Windows 8\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0) – 64 - bit Internet Explorer 10 on 64 - bit Windows 8\r\n // Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch) – Internet Explorer 10 on Windows RT\r\n // Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0\r\n // Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36 OPR/19.0.1326.63\r\n // Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36\r\n if (navigator.userAgent.match(/Trident.*Touch/i) /* && navigator.userAgent.match(/ARM|Win64/i) */) {\r\n deviceProperties.touch = true;\r\n } else {\r\n // Mozilla/5.0 (Mobile; ZTEOPEN; rv:18.0) Gecko/18.0 Firefox/18.0 – Firefox OS 1.1\r\n if (navigator.userAgent.match(/Mobile/i)) {\r\n deviceProperties.touch = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (typeof window.matchMedia !== \"undefined\" && (window.matchMedia(\"screen and (max-device-width:480px) and (max-device-height:800px) and (orientation:portrait)\").matches ||\r\n window.matchMedia(\"screen and (max-device-width:800px) and (max-device-height:480px) and (orientation:landscape)\").matches ||\r\n DeviceInfo.getParameterByName(\"device\") === \"phone\")) {\r\n deviceProperties.phone = true;\r\n }\r\n\r\n // standardni prohlizec Androidu 4.4 pri detekci na max-device-width poziva fyzicke rozmery zarizeni :-(\r\n if (deviceProperties.android && !deviceProperties.phone) {\r\n if (window.matchMedia(\"screen and (max-width:480px) and (max-height:800px) and (orientation:portrait)\").matches ||\r\n window.matchMedia(\"screen and (max-width:800px) and (max-height:480px) and (orientation:landscape)\").matches) {\r\n deviceProperties.phone = true;\r\n }\r\n }\r\n\r\n deviceProperties.touch = false;\r\n\r\n //jestli jsou vsechny dosavadni property false, nastavi se desktop\r\n if (DeviceInfo._checkIsDesktop(deviceProperties))\r\n deviceProperties.desktop = true;\r\n\r\n if (typeof window.matchMedia !== \"undefined\" && window.matchMedia(\"@media screen and (-ms-high-contrast: active)\").matches) {\r\n deviceProperties.highContrast = true;\r\n }\r\n\r\n // zrusi zobrazeni prizpusobene pro dotykove obrazovky\r\n if (DeviceInfo.getParameterByName(\"touch\") === \"false\") {\r\n deviceProperties.touch = false;\r\n }\r\n\r\n // na iOS jestli je aplikace nainstalovana na plochu\r\n if ((navigator as any).standalone === true)\r\n deviceProperties.installedApp = true;\r\n\r\n try {\r\n // presunuto ze souboru CheckCompatibilityAndLoadModules - prepracovat\r\n // -------------------------------------------------------------------\r\n if ((self as any).Reflect.ownKeys(self).filter((v: string) => typeof v === \"string\" && ((v as any).startsWith(\"ms\") || (v as any).startsWith(\"MS\"))).length > 0)\r\n if (navigator.userAgent.toLowerCase().indexOf(\"trident\") > -1) // Kvůli LW\r\n deviceProperties.browser = Browser.explorer;\r\n else\r\n deviceProperties.browser = Browser.edgeHtml;\r\n else if (navigator.userAgent.indexOf(\"Edg\") !== -1)\r\n deviceProperties.browser = Browser.edgeChromium;\r\n else if ((self as any).chrome)\r\n deviceProperties.browser = navigator.userAgent.match(/Opera|OPR\\//) != null ? Browser.opera : Browser.chrome;\r\n else if ((self as any).Reflect.ownKeys(self).filter((v: string) => typeof v === \"string\" && (v as any).startsWith(\"moz\")).length > 0)\r\n deviceProperties.browser = Browser.firefox;\r\n else if ((self as any).Reflect.ownKeys(self).filter((v: string) => typeof v === \"string\" && (v as any).startsWith(\"webkit\")).length > 0)\r\n deviceProperties.browser = Browser.safari;\r\n else\r\n deviceProperties.browser = Browser.unknown;\r\n } catch (e) {\r\n // Prázdný catch\r\n }\r\n // -------------------------------------------------------------------\r\n\r\n //android nepodporuje navigator.standalone\r\n //navigator.standalone = navigator.standalone || (screen.height - document.documentElement.clientHeight < 40)\r\n\r\n return deviceProperties;\r\n }\r\n\r\n /**\r\n * Testuje vstupni objekt, jestli vsechny jeho property jsou FALSE\r\n * @param deviceProperties objekt s boolovskymi property, priklad { Touch: boolean; WP: boolean; Android: boolean; iOS: boolean; ... }\r\n */\r\n private static _checkIsDesktop(deviceProperties: DeviceProperties): boolean {\r\n return !(deviceProperties.wp || deviceProperties.android || deviceProperties.iOS ||\r\n deviceProperties.blackBerry || deviceProperties.phone || deviceProperties.tablet);\r\n }\r\n}\r\n\r\nexport interface DeviceProperties {\r\n touch: boolean;\r\n wp: boolean;\r\n android: boolean;\r\n iOS: boolean;\r\n blackBerry: boolean;\r\n phone: boolean;\r\n tablet: boolean;\r\n desktop: boolean;\r\n highContrast: boolean;\r\n installedApp: boolean;\r\n browser: Browser;\r\n}\r\n\r\nexport enum Browser {\r\n chrome,\r\n opera,\r\n firefox,\r\n edgeHtml,\r\n edgeChromium,\r\n safari,\r\n explorer,\r\n unknown,\r\n}\r\n","/**\r\n * Implementuje třídá podporující dešifrování dat po blocích\r\n */\r\nexport interface IStreamDecryptor {\r\n /**\r\n * Dešifruje data po blocích.\r\n * @param data Blok dat, který se má dešifrovat. Hodnota nesmí být prázdný blok data jinak funkce vyhodí vyjímku.\r\n * @param lastBlock Určuje jestli v datech je poslední block, která se bude dešifrovat.\r\n */\r\n decryptBlock(data: BufferSource, lastBlock?: boolean): Promise<ArrayBuffer>;\r\n}\r\n","/**\r\n * Implementuje třídá podporující šifrování dat po blocích\r\n */\r\nexport interface IStreamEncryptor {\r\n /**\r\n * Velikost šifrovacího bloku\r\n */\r\n readonly blockSize: number;\r\n\r\n /**\r\n * Vypočítá, jak budou velká data po jejich zašifrování\r\n * @param originalSize Velikost původních dat\r\n */\r\n getEncryptedSize(originalSize: number): number;\r\n\r\n /**\r\n * Šifruje data po blocích.\r\n * @param data Blok dat, který se má zašifrovat.\r\n * @param lastBlock Určuje jestli v datech je poslední block, která se bude šifrovat.\r\n */\r\n encryptBlock(data: BufferSource | undefined | null, lastBlock?: boolean): Promise<ArrayBuffer>;\r\n}\r\n","import { Browser, DeviceInfo } from \"Device/Info/DeviceInfo\";\r\nimport { DataConverter } from \"../Converters/DataConverter\";\r\nimport { GlobalContext } from \"../GlobalContext\";\r\nimport { StringUtils } from \"../Utils/StringUtils\";\r\nimport { IStreamDecryptor } from \"./IStreamDecryptor\";\r\nimport { IStreamEncryptor } from \"./IStreamEncryptor\";\r\n\r\nexport type CryptoKeyUsage = \"encrypt\" | \"decrypt\" | \"verify\" | \"sign\" | \"wrapKey\" | \"unwrapKey\" | \"deriveKey\" | \"deriveBits\";\r\n\r\n/**Nastavení pro webcrypto import*/\r\nexport interface IWebCryptoAlgSettings extends Algorithm {\r\n hash?: IWebCryptoHashSettings;\r\n namedCurve?: string;\r\n length?: number;\r\n}\r\n\r\n/**Nastavení hash algoritmu pro webcrypto*/\r\nexport interface IWebCryptoHashSettings {\r\n name: string;\r\n}\r\n\r\nconst _registeredCryptors: Map<string, new (key: CryptoKey, iv?: BufferSource, addIVtoFirstBlock?: boolean) => IStreamEncryptor | IStreamDecryptor> = new Map();\r\nlet _webCryptoSupport: boolean | undefined;\r\n\r\nexport class SecurityUtils {\r\n /**\r\n * Vypočítá SHA-1 se zadaných data\r\n * @param data Data ze kterých se má vypočítat hash. Pokud jsou data string, tak se nejdřív převedou na UTF8 pole.\r\n * @description Chrome umožňuje použít tuto funkci jen pokud aplikace běží v bezpečném prostředí: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).\r\n */\r\n public static sha1(data: string | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer> {\r\n if (typeof data === \"string\")\r\n data = StringUtils.stringToUTF8Bytes(data);\r\n\r\n return self.crypto.subtle.digest({ name: \"sha-1\" }, data);\r\n }\r\n\r\n /**\r\n * Vypočítá SHA-1 se zadaných data a vrátí hash jako Base64 (je možné, že převod do Base64 nebude úplně kompatibilní s ostatnimi systémy)\r\n * @param data Data ze kterých se má vypočítat hash. Pokud jsou data string, tak se nejdřív převedou na UTF8 pole.\r\n * @description Chrome umožňuje použít tuto funkci jen pokud aplikace běží v bezpečném prostředí: Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).\r\n */\r\n public static async sha1String(data: string | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): Promise<string> {\r\n const hash = await SecurityUtils.sha1(data);\r\n return DataConverter.bufferToBase64(hash);\r\n }\r\n\r\n public static async passwordToDeriveKey(password: string, salt: string, iterations: number = 4096, cipherMode: string = \"CBC\", exportable: boolean = true): Promise<CryptoKey> {\r\n return this.derivePasswordToAES256Key(await this.passwordToCryptoKey(password), salt, iterations, cipherMode, exportable);\r\n }\r\n\r\n /**\r\n * Převede heslo z řetězce na třídu CryptoKey\r\n * @param password heslo\r\n * @param algorithm algoritmus, pro který má být CryptoKey určen\r\n */\r\n public static passwordToCryptoKey(password: string, algorithm: string = \"PBKDF2\"): PromiseLike<CryptoKey> {\r\n const bytes = StringUtils.stringToUTF8Bytes(password);\r\n return self.crypto.subtle.importKey(\"raw\", bytes, algorithm, false, [\"deriveKey\", \"deriveBits\"]);\r\n }\r\n\r\n /**\r\n * Derivuje heslo na 256 bit klíč pro AES (kompatibilní s .NET TescoSW.Global.Cryptography.PasswordDerivationFunction.GetKey256)\r\n * @param passwordKey zadané heslo - ideálně transformované metodou passwordToCryptoKey\r\n * @param salt sůl\r\n * @param iterations počet iterací algoritmu PBKDF2\r\n * @param cipherMode režim šifrování např: CBC, CTR, GCM, CFB, ...\r\n */\r\n public static derivePasswordToAES256Key(passwordKey: CryptoKey, salt: string, iterations: number = 4096, cipherMode: string = \"CBC\", exportable: boolean = true): PromiseLike<CryptoKey> {\r\n return self.crypto.subtle.deriveKey(\r\n {\r\n \"name\": \"PBKDF2\",\r\n salt: StringUtils.stringToUTF8Bytes(salt),\r\n iterations: iterations,\r\n hash: { name: \"SHA-1\" },\r\n },\r\n passwordKey,\r\n { name: \"AES-\" + cipherMode, length: 256 }, exportable, [\"encrypt\", \"decrypt\"]);\r\n }\r\n\r\n /**\r\n * Exportuje klíč\r\n */\r\n public static async exportKey(key: CryptoKey): Promise<ArrayBuffer> {\r\n if (!key.extractable)\r\n throw new Error(\"Cannot export CryptoKey. Only extractable keys are allowed.\");\r\n return await self.crypto.subtle.exportKey(\"raw\", key);\r\n }\r\n\r\n /**\r\n * Importuje klíč\r\n */\r\n public static async importKey(jwk: JsonWebKey, settings: IWebCryptoAlgSettings, usage: CryptoKeyUsage[] = [\"encrypt\", \"decrypt\"]): Promise<CryptoKey> {\r\n return self.crypto.subtle.importKey(\"jwk\", jwk, (settings as any), false, usage);\r\n }\r\n\r\n /**\r\n * Zakóduje data do UTF8 a zašifruje zadaným klíčem\r\n * @param data data pro zašifrování\r\n * @param key šifrovací klíč\r\n */\r\n public static async encryptString(data: string, key: CryptoKey): Promise<ArrayBuffer> {\r\n /*\r\n let bytes = StringUtils.stringToUTF8Bytes(data);\r\n let iv = new Uint32Array(4); //128 bit\r\n let encData = await crypto.subtle.encrypt({ name: key.algorithm.name!, iv: crypto.getRandomValues(iv) }, key, bytes);\r\n return TescoSW.MemoryUtils.join32bitArrays(iv, new Uint32Array(encData)).buffer;\r\n */\r\n // optimalizace pro AES-CBC\r\n const { buffer: bytes, byteLength: l } = StringUtils.stringToUTF8Bytes(data);\r\n const r = new ArrayBuffer(l - (l % 16) + 32);\r\n const e = await self.crypto.subtle.encrypt({ name: key.algorithm.name!, iv: self.crypto.getRandomValues(new Uint32Array(r, 0, 4)) }, key, bytes as ArrayBuffer);\r\n (new Uint32Array(r)).set(new Uint32Array(e), 4);\r\n return r;\r\n }\r\n\r\n private static _cryptoPolyfillPromise: Promise<any>;\r\n\r\n /**\r\n * Polyfill pro dešifrování AES-CBC v Safari, které přestalo vyhazovat výjimku při dešifrování špatným klíčem.\r\n * @internal\r\n * @see https://bugs.webkit.org/show_bug.cgi?id=211777\r\n */\r\n public static loadAsmCryptoPolyfill(): Promise<any> {\r\n if (!this._cryptoPolyfillPromise)\r\n this._cryptoPolyfillPromise = importScript(\"js/asmcrypto/asmcrypto.all.es8.min.js\");\r\n return this._cryptoPolyfillPromise;\r\n }\r\n /**\r\n * Dešifruje řetězec\r\n * @param data data pro dešifrování\r\n * @param key dešifrovací klíč\r\n */\r\n public static async decryptString(data: BufferSource, key: CryptoKey): Promise<string> {\r\n try {\r\n const { byteOffset: offset = 0, byteLength: length, buffer: buffer = data as ArrayBuffer } = data as ArrayBufferView;\r\n const iv = new Uint8Array(buffer, offset, 16); // nedochází ke kopírování paměti, jen se nastaví pohledny na části bufferu\r\n const bytes = new Uint8Array(buffer, offset + 16, length - 16);\r\n if (DeviceInfo.deviceProperties.browser === Browser.safari)\r\n return SecurityUtils._decryptStringPolyfill(key, iv, bytes);\r\n else\r\n return SecurityUtils._decryptStringNative(key, iv, bytes);\r\n } catch (exception) {\r\n throw new Error(\"Unable to decrypt string. Possibly wrong password\");\r\n }\r\n }\r\n\r\n /** Nativní dešifrování pomocí WebCrypto Api */\r\n private static async _decryptStringNative(key: CryptoKey, iv: Uint8Array, data: Uint8Array): Promise<string> {\r\n const decData = await self.crypto.subtle.decrypt({ name: key.algorithm.name!, iv: iv }, key, data);\r\n return StringUtils.utf8BytesToString(decData);\r\n }\r\n\r\n /**\r\n * Polyfill pro dešifrování AES-CBC v Safari, které přestalo vyhazovat výjimku při dešifrování špatným klíčem.\r\n * Místo toho vrací náhodná data. Nejsme tak schopni detekovat neúspěšné dešifrování.\r\n * @see https://bugs.webkit.org/show_bug.cgi?id=211777\r\n */\r\n private static async _decryptStringPolyfill(key: CryptoKey, iv: Uint8Array, data: Uint8Array): Promise<string> {\r\n await this.loadAsmCryptoPolyfill();\r\n const keyData = await self.crypto.subtle.exportKey(\"raw\", key);\r\n //@ts-ignore asmcrypto není modul, načte se do globálních proměnných\r\n const cbc = new AES_CBC(new Uint8Array(keyData), iv);\r\n return StringUtils.utf8BytesToString(cbc.decrypt(data));\r\n }\r\n\r\n /**\r\n * Pro zadaný klíč vrací třídu podporující streamové šifrování požadovaným algoritmem.\r\n * @param key Šifrovací klíč\r\n * @param addIVtoFirstBlock Jesli na začátek šifrovaných dat má být přidán IV\r\n * @param iv IV pokud ho chceme explicitně definovat\r\n */\r\n public static getStreamEncryptor(key: CryptoKey, iv?: BufferSource, addIVtoFirstBlock: boolean = true): IStreamEncryptor {\r\n const encryptor = _registeredCryptors.get(key.algorithm.name + \"#ENC\");\r\n if (encryptor)\r\n return new encryptor(key, iv, addIVtoFirstBlock) as IStreamEncryptor;\r\n\r\n throw new Error(`Unsupported algorithm: ${key.algorithm.name}!`); //`\r\n }\r\n\r\n /**\r\n * Pro zadaný klíč vrací třídu podporující streamové dešifrování požadovaným algoritmem.\r\n * @param key dešifrovací klíč\r\n * @param ivInFirstBlock Jesli na začátku šifrovaných dat je IV\r\n * @param iv IV pokud ho chceme explicitně definovat\r\n */\r\n public static getStreamDecryptor(key: CryptoKey, iv?: BufferSource): IStreamDecryptor {\r\n const encryptor = _registeredCryptors.get(key.algorithm.name + \"#DEC\");\r\n if (encryptor)\r\n return new encryptor(key, iv) as IStreamDecryptor;\r\n\r\n throw new Error(`Unsupported algorithm: ${key.algorithm.name}!`); //`\r\n }\r\n\r\n /**\r\n * Pro registraci tříd implementujících konkrétní proudové šifrování\r\n * @param cryptor Třída implementující IStreamEncryptor, nebo IStreamDecryptor\r\n * @param algorithmName Jméno šifrovacího algoritmu. Např. AES-CBC, AES-CFB, AES-CTR, ...\r\n */\r\n public static registerStreamCryptor(cryptor: new (key: CryptoKey, iv?: BufferSource, addIVtoFirstBlock?: boolean) => IStreamEncryptor | IStreamDecryptor, algorithmName: string): void {\r\n if (typeof cryptor === \"function\" && typeof cryptor.prototype === \"object\") {\r\n if (Reflect.has(cryptor.prototype, \"encryptBlock\"))\r\n _registeredCryptors.set(algorithmName + \"#ENC\", cryptor);\r\n if (Reflect.has(cryptor.prototype, \"decryptBlock\"))\r\n _registeredCryptors.set(algorithmName + \"#DEC\", cryptor);\r\n }\r\n }\r\n\r\n /**\r\n * Detekuje jestli prohlížeč podporuje WebCrypto API v takové míře v jaké potřebuje aplikace\r\n */\r\n public static async detectWebCryptoSupport(): Promise<boolean> {\r\n if (typeof _webCryptoSupport === \"undefined\") {\r\n try {\r\n if ((typeof self.crypto === \"object\") && (typeof self.crypto.subtle === \"object\")) {\r\n const pass = await SecurityUtils.passwordToCryptoKey(\"žlutý kůň\");\r\n const key = await SecurityUtils.derivePasswordToAES256Key(pass, \"{1234-5678-9123-4567-8912}\");\r\n const text = \"žlutý kůň, žlutý kůň\";\r\n const enc = await SecurityUtils.encryptString(text, key);\r\n return _webCryptoSupport = (await SecurityUtils.decryptString(enc, key) === text);\r\n }\r\n } catch (e) {\r\n // Prázdný catch\r\n }\r\n _webCryptoSupport = false;\r\n }\r\n return _webCryptoSupport;\r\n }\r\n\r\n /**\r\n * Převede pole bytů na binární string\r\n * @param data Pole bytů k převedení\r\n */\r\n public static arrayToBinaryEncodedString(data: Uint8Array): string {\r\n // bug max callstack size in workers http://code.google.com/p/chromium/issues/detail?id=252492\r\n const maxSize = 16 * 1024;\r\n let result = \"\";\r\n let tmp = data;\r\n while (tmp.length) {\r\n const partLength = Math.min(tmp.length, maxSize);\r\n result += String.fromCharCode.apply(null, data.subarray(0, partLength) as any as number[]); // String.fromCharCode bere i Uint8Array, pouze to není v typingu\r\n tmp = tmp.subarray(partLength);\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Vytvoří kryptograficky silný klíč pomocí pseudonáhodného generátoru čísel\r\n * @param byteCount Počet bytů entropie. Za každý byte vzniknou dva znaky ve výsledném řetězcovém klíči.\r\n */\r\n public static generateStrongKey(byteCount: number = 16): string {\r\n const array = new Uint8Array(byteCount);\r\n crypto.getRandomValues(array);\r\n return array.reduce((accumulator, current) => accumulator += current.toString(16).padStart(2, \"0\"), \"\");\r\n }\r\n}\r\n\r\nGlobalContext.registerType(SecurityUtils);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { DataConverter } from \"../Converters/DataConverter\";\r\nimport { SecurityUtils } from \"../Security/SecurityUtils\";\r\nimport { StringUtils } from \"../Utils/StringUtils\";\r\nimport { IEncAttrValue } from \"./IAttrValue\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.encryption);\r\n\r\n/**\r\n * Šifrovaná hodnota atributu aplikačního objektu\r\n */\r\nexport class EncAttrValue implements IEncAttrValue {\r\n /**\r\n * Zašifrovaná hodnota\r\n */\r\n private readonly _encryptedValue: string;\r\n /**\r\n * Zda i v zašifrované podobě obsahuje zašifrovanou nebo otevřenou hodnotu. Např. u dokumentů je to nešifrovaný identifikátor dokumentu nebo u vazeb je to obdobně.\r\n */\r\n private readonly _isOpenedValue: boolean;\r\n private _isEncrypted: boolean = true;\r\n private _value: any;\r\n private _deserializer: (decryptedVal: string) => any;\r\n\r\n /**\r\n * Zda obsahuje právě zašifrovanou nebo rozšifrovanou hodnotu\r\n */\r\n public get isEncrypted(): boolean {\r\n return this._isEncrypted;\r\n }\r\n\r\n /**\r\n * Zda je zašifrován neprázdný atribut.\r\n */\r\n public get hasEncryptedValue(): boolean {\r\n return (this._encryptedValue != null && this._encryptedValue.length > 0);\r\n }\r\n\r\n constructor(encryptedValue: string, isOpenedValue: boolean, defaultValue: any, deserializer: (decryptedVal: string) => any) {\r\n this._value = defaultValue;\r\n this._encryptedValue = encryptedValue;\r\n this._isOpenedValue = isOpenedValue;\r\n\r\n this._deserializer = deserializer ? deserializer : (decryptedVal: string) => decryptedVal;\r\n }\r\n\r\n public valueOf(): any {\r\n return this._value;\r\n }\r\n\r\n public toString(): string {\r\n return this._value != null ? this._value.toString() : \"\";\r\n }\r\n\r\n /**\r\n * Dešifruje hodnotu atributu předaným klíčem a pomocí deserializeru ji převede na původní datový typ\r\n * @param key Dešifrovací klíč\r\n * @param deserializer Funkce převádějící textovou formu hodnoty na správný datový typ\r\n * @returns True pokud se povedlo dešifrovat nebo to nebylo třeba, jinak false\r\n */\r\n public async decrypt(key: CryptoKey): Promise<boolean> {\r\n if (!this.isEncrypted)\r\n return true;\r\n\r\n if (StringUtils.isNullOrEmpty(this._encryptedValue)) {\r\n this._isEncrypted = false;\r\n return true;\r\n }\r\n\r\n try {\r\n const decryptedValue = this._isOpenedValue ? this._encryptedValue : await SecurityUtils.decryptString(DataConverter.base64ToArray(this._encryptedValue), key);\r\n this._value = this._deserializer(decryptedValue);\r\n this._isEncrypted = false;\r\n } catch (e) {\r\n logger.error(\"Unable to decrypt attribute value - probably incorrect password\", e);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { DateUtils } from \"../Utils/DateUtils\";\r\n\r\nexport class OWTime extends Date {\r\n constructor();\r\n constructor(value: number | string | Date);\r\n constructor(hours?: any, minutes?: number, seconds?: number, ms?: number) {\r\n if (minutes || minutes === 0)\r\n super(1970, 0, 1, hours, minutes, seconds, ms);\r\n else {\r\n if (hours instanceof Date)\r\n super(hours.getTime());\r\n else if (typeof hours === \"string\") {\r\n const parsedVal = DateUtils.fromXsdDateTime(hours[10] === \"T\" ? hours : \"1970-01-01T\" + hours);\r\n super(parsedVal ? parsedVal.getTime() : Number.NaN); // pokud se nepovedlo sparsovat bude vracen Invalid Date\r\n } else\r\n super(hours);\r\n\r\n //Chrome 42 s funkci .toLocaleString() spatne zobrazuje cas pokud datum je mensi jak 31.12.1899\r\n //odstranena datumova cast - takto je datum 1.1.1970\r\n super.setFullYear(1970, 0, 1);\r\n }\r\n }\r\n\r\n public override toString(): string {\r\n return super.toTimeString();\r\n }\r\n\r\n public override toDateString(): string {\r\n return \"\";\r\n }\r\n\r\n public override toLocaleTimeString(locale?: string | string[], options?: Intl.DateTimeFormatOptions): string {\r\n return super.toLocaleTimeString(locale as any, options);\r\n }\r\n\r\n public override toLocaleString(locale?: string | string[], options?: Intl.DateTimeFormatOptions): string {\r\n return super.toLocaleTimeString(locale as any, options);\r\n }\r\n\r\n public override toLocaleDateString(): string {\r\n return \"\";\r\n }\r\n\r\n public override toJSON(): string {\r\n return DateUtils.toXsdDateTime(this).substr(11);\r\n }\r\n}\r\n","import { IDocumentClient } from \"@multiweb/clients/documents\";\r\nimport { ClientType, IClientFactory } from \"@multiweb/clients/index\";\r\nimport { IAttrValue, IDocumentMetadata, IDocumentVersionInfo } from \"@multiweb/types/contracts\";\r\nimport { DIContainer } from \"Global/Base/DIContainer\";\r\nimport { IComparable } from \"Global/Base/IComparable\";\r\nimport { OWManager } from \"../OWManager\";\r\nimport { RequestContext } from \"../RequestContext\";\r\n\r\nexport class OWDocumentDescription implements IAttrValue, IComparable {\r\n private readonly _instanceID: string;\r\n private readonly _documentClient: IDocumentClient;\r\n\r\n public readonly value: string;\r\n public readonly attributeName: string;\r\n\r\n private _documentName: Promise<string> = null;\r\n private _documentHash: Promise<string> = null;\r\n private _documentMetadata: Promise<IDocumentMetadata> = null;\r\n private _documentVersions: Promise<IDocumentVersionInfo[]> = null;\r\n\r\n constructor(instanceID: string, attributeName: string, value: string) {\r\n this._instanceID = instanceID;\r\n this.value = value;\r\n this.attributeName = attributeName;\r\n this._documentClient = DIContainer.instance.create(IClientFactory).get(ClientType.document);\r\n }\r\n\r\n public async getName(requestContext?: RequestContext): Promise<string> {\r\n if (this._documentName == null)\r\n this._documentName = this._documentClient.getDocumentName(this._instanceID, this.attributeName, requestContext);\r\n return this._documentName;\r\n }\r\n\r\n public async getHash(requestContext?: RequestContext): Promise<string> {\r\n if (this._documentHash == null)\r\n this._documentHash = this._documentClient.getDocumentHashCode(this._instanceID, this.attributeName, requestContext);\r\n return this._documentHash;\r\n }\r\n\r\n public async getMetadata(requestContext?: RequestContext): Promise<IDocumentMetadata> {\r\n if (this._documentMetadata == null)\r\n this._documentMetadata = this._documentClient.getDocumentMetadata(this._instanceID, this.attributeName, requestContext);\r\n return this._documentMetadata;\r\n }\r\n\r\n public async getDocumentVersions(requestContext?: RequestContext): Promise<IDocumentVersionInfo[]> {\r\n if (this._documentVersions == null)\r\n this._documentVersions = this._documentClient.getDocumentVersions(this._instanceID, this.attributeName, requestContext);\r\n return this._documentVersions;\r\n }\r\n\r\n public createSignature(signature: string, profileId: string, providerType: string, providerVersion: string, requestContext: RequestContext): Promise<string> {\r\n return OWManager.createDocumentSignature(this._instanceID, this.attributeName, signature, profileId, providerType, providerVersion, requestContext);\r\n }\r\n\r\n public compare(_value: any): boolean {\r\n return false; //Neleze rozhodnout jestli je atribut změněný nebo ne, protože se mohla změnit pouze metadata\r\n }\r\n\r\n private static _properties = [\"value\", \"attributeName\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return typeof (instance) === \"object\" && instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IAttrValue;\r\n }\r\n}\r\n","import { getDataReaderClient, getModelDescriptionsClient } from \"@multiweb/clients/util\";\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IPublicAttributeInfo, OWDataType } from \"@multiweb/types/contracts\";\r\nimport { ISignatureTemplate } from \"../../Global/Base/Crypto/ISignatureInfo\";\r\nimport { EncAttrValue } from \"../../Global/Base/DataTypes/EncAttrValue\";\r\nimport { OWTime } from \"../../Global/Base/DataTypes/OWTime\";\r\nimport { InvalidOperationException } from \"../../Global/Base/Exceptions\";\r\nimport { DateUtils } from \"../../Global/Base/Utils/DateUtils\";\r\nimport { AttrValueReader } from \"../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { Enum } from \"../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { OWDocumentDescription } from \"../../OW.Remoting/Remoting/DataTypes/OWDocumentDescription\";\r\nimport { NullOWObject, OWObject } from \"../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../OW.Remoting/Remoting/OWManager\";\r\nimport { RequestContext } from \"../../OW.Remoting/Remoting/RequestContext\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.encryption);\r\n\r\n/** Vytváří serializovanou reprezentaci objektu pro podpis */\r\nexport class ObjectSignatureSerializer {\r\n /**\r\n * Vytváří reprezentaci dané instance aplikačního záznamu určenou pro podepsání\r\n * @param object lidský název záznamu zobrazený uživateli\r\n * @param template Šablona, na základě níž má být vytvořena nová reprezentace\r\n */\r\n public static async mapSignDataToTemplateJSON(object: OWObject, template: ISignatureTemplate, requestContext?: RequestContext): Promise<object> {\r\n const f_loadAttrs = async (className: string, attrs: string[]): Promise<{ [attrName: string]: IPublicAttributeInfo }> => {\r\n const attrInfo = await getModelDescriptionsClient().getAttributesPublicInfo(className, attrs, requestContext?.cancellationToken);\r\n const attrInfoData: { [attrName: string]: IPublicAttributeInfo } = {};\r\n for (const aInfo of attrInfo) {\r\n attrInfoData[aInfo.attributeName] = aInfo;\r\n }\r\n\r\n return attrInfoData;\r\n };\r\n\r\n const refObj: { [objectName: string]: { [attrName: string]: any } } = {};\r\n\r\n let objCnt = 2;\r\n refObj[object.objectName + \"#1\"] = await this._loadAttrDataToMap(template.attributes, object, await f_loadAttrs(template.className, template.attributes), requestContext);\r\n\r\n if (template.associatedCollections && template.associatedCollections.length > 0) {\r\n for (const item of template.associatedCollections) {\r\n let params: any = undefined;\r\n const condParams = item.conditionParams ? item.conditionParams.split(\";\") : undefined;\r\n if (condParams && condParams.length > 0) {\r\n try {\r\n params = await object.getParameters(condParams);\r\n } catch (err) {\r\n logger.error(err);\r\n throw new InvalidOperationException(\"Unable load parameters\");\r\n }\r\n }\r\n\r\n const res = await getDataReaderClient().getDataRowsWithParams(item.className, [\"ID\"], item.condition, { params: params, startIndex: 0, orderBy: [\"ID\"] });\r\n\r\n const attrList = await f_loadAttrs(item.className, item.attributes);\r\n const dataOfObjectsFetching: Promise<object>[] = [];\r\n\r\n for (const row of res)\r\n dataOfObjectsFetching.push(OWManager.getObject(AttrValueReader.read(row.ID), item.className)\r\n .then((obj) => this._loadAttrDataToMap(item.attributes, obj, attrList, requestContext)));\r\n\r\n await Promise.all(dataOfObjectsFetching);\r\n\r\n for (const dataFetch of dataOfObjectsFetching)\r\n refObj[item.className + \"#\" + objCnt++] = await dataFetch;\r\n }\r\n }\r\n\r\n return refObj;\r\n }\r\n\r\n /**\r\n * Namapuje atributy do struktury pro podpis objektu\r\n * @param attrs Atributy k namapování\r\n * @param obj Objekt k získání hodnoty z atributu\r\n * @param attrInfo Informace k atributu\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n private static async _loadAttrDataToMap(attrs: string[], obj: OWObject, attrInfo: { [attrName: string]: IPublicAttributeInfo }, requestContext?: RequestContext): Promise<{ [p: string]: string | number | boolean | null }> {\r\n const objData: { [attrName: string]: string | number | boolean | null } = {};\r\n\r\n for (const attr of attrs) {\r\n objData[attr] = await this._getAttrJsonValue(OWManager.getFinalAttribute(attr), attrInfo[attr].type, requestContext, await obj.getValue(attr));\r\n }\r\n\r\n return objData;\r\n }\r\n\r\n /**\r\n * Provádí konverzi vstupní hodnoty na formát vhodný pro JSON\r\n * @param attrName Název atributu\r\n * @param dataType Datový typ\r\n * @param requestContext Viz {@link RequestContext}\r\n * @param value Konvertovaná hodnota\r\n */\r\n private static async _getAttrJsonValue(attrName: string, dataType: OWDataType, requestContext?: RequestContext, value: any = null): Promise<string | number> {\r\n if (value == null)\r\n return null;\r\n\r\n let valueEncrypted = false;\r\n if (value instanceof EncAttrValue) {\r\n if (value.isEncrypted)\r\n throw new Error(`Cannot get Value of Encrypted attribute '${attrName}'. Value must be decrypted.`);\r\n\r\n valueEncrypted = true;\r\n value = value.valueOf();\r\n\r\n if (value == null)\r\n return null;\r\n }\r\n\r\n if (value instanceof OWTime) {\r\n const date = new Date(value.getTime());\r\n date.setFullYear(100); // .NET má defaultně rok 100\r\n\r\n return DateUtils.dateToString(date, \"HH:mm:ss\");\r\n }\r\n\r\n if (value instanceof NullOWObject)\r\n return null;\r\n\r\n if (attrName.toUpperCase() === \"ID\")\r\n return value ? value.toString() : null;\r\n\r\n switch (dataType) {\r\n case OWDataType.boolean:\r\n return value;\r\n case OWDataType.OWObject:\r\n return (value as OWObject).isNew ? null : (value as OWObject).id.toString();\r\n case OWDataType.document: {\r\n const metadata = await (value as OWDocumentDescription).getMetadata(requestContext);\r\n return valueEncrypted ? metadata.originalHash : metadata.hash;\r\n }\r\n case OWDataType.dateTime:\r\n return DateUtils.dateToString(value, \"yyyy-MM-dd HH:mm:ss\");\r\n case OWDataType.date:\r\n return DateUtils.dateToString(value, \"yyyy-MM-dd\");\r\n case OWDataType.flags:\r\n case OWDataType.enum:\r\n return (value as Enum).getName();\r\n case OWDataType.localizedText:\r\n case OWDataType.strNum:\r\n case OWDataType.htmlText:\r\n case OWDataType.icon:\r\n case OWDataType.timeSpan:\r\n case OWDataType.binary:\r\n throw new InvalidOperationException(`Unsupported data type (${dataType})`); //`\r\n default:\r\n return this._fixNewLinesInJson(value.toString());\r\n }\r\n }\r\n\r\n /** Nahradí \\r\\n za \\n */\r\n private static _fixNewLinesInJson(val: string): string {\r\n return val.replace(/\\r+[\\n]?/g, \"\\n\");\r\n }\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { ArrayUtils } from \"Global/Base/Utils/ArrayUtils\";\r\nimport { InvalidOperationException } from \"../../Global/Base/Exceptions\";\r\nimport { ContextType, GlobalContext } from \"../../Global/Base/GlobalContext\";\r\nimport { CancellationToken } from \"../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { IOWObject } from \"./DataTypes/IOWObject\";\r\nimport { OWObject } from \"./DataTypes/OWObject\";\r\nimport { OWManager } from \"./OWManager\";\r\nimport { RequestContextWithoutTransactionContextId } from \"./RequestContextWithoutTransactionContextId\";\r\n\r\nconst _referencesSymbol = Symbol.for(\"__GC_REFERENCE_COUNT__\");\r\n\r\n// internal veci pro InstanceManager\r\nclass createdInstances {\r\n private static _createdInstances: Map<string, OWObject | OWObject[]>;\r\n\r\n public static get instances(): Map<string, OWObject | OWObject[]> {\r\n if (!createdInstances._createdInstances) {\r\n const istMgr = _getMasterManager();\r\n if (istMgr && (istMgr as any)._instances)\r\n createdInstances._createdInstances = (istMgr as any)._instances;\r\n else\r\n createdInstances._createdInstances = new Map();\r\n }\r\n return createdInstances._createdInstances;\r\n }\r\n\r\n public static getIterator(): Iterable<OWObject | OWObject[]> {\r\n return createdInstances._getIterator();\r\n }\r\n\r\n private static *_getIterator(): IterableIterator<OWObject | OWObject[]> {\r\n for (const val of createdInstances.instances.values())\r\n yield val;\r\n }\r\n}\r\n\r\nfunction _getMasterManager(): typeof InstanceManager {\r\n return self !== top ? GlobalContext.getType<typeof InstanceManager>(InstanceManager, ContextType.top) : null;\r\n}\r\n\r\ntype LoggableInstance = {\r\n instanceID: string;\r\n id: any;\r\n isNew: boolean;\r\n objectName: string;\r\n attributeOnParentObject?: string | null;\r\n};\r\ntype TimedInstance = LoggableInstance & { time: number };\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.objectWrapper);\r\n\r\nexport class InstanceManager {\r\n private static __instancesToDelete: TimedInstance[] = [];\r\n /**\r\n * Čas po kterém se periodicky posílá uvolnění instancí na službu (ms)\r\n */\r\n private static _cleanupInterval: number = 60000;\r\n /**\r\n * Handle časovače vyvolávajícího uvolnění instancí\r\n */\r\n private static _cleanupHandle: number = 0;\r\n /**\r\n * Interval o který se odloží každé volání uvolnění na službu (ms)\r\n */\r\n private static readonly _cleanupDelay = 30000;\r\n\r\n private static set _instancesToDelete(instances: TimedInstance[]) {\r\n const mgr = _getMasterManager();\r\n mgr ? mgr.__instancesToDelete = instances : InstanceManager.__instancesToDelete = instances;\r\n }\r\n\r\n private static get _instancesToDelete(): TimedInstance[] {\r\n const mgr = _getMasterManager();\r\n return mgr ? mgr.__instancesToDelete : InstanceManager.__instancesToDelete;\r\n }\r\n\r\n // @ts-ignore: Declared but it's value is never read\r\n private static get _instances(): Map<string, OWObject | OWObject[]> {\r\n return createdInstances.instances;\r\n }\r\n\r\n /**\r\n * Čas po kterém se periodicky posílá uvolnění instancí na službu (ms)\r\n */\r\n public static get cleanupInterval(): number {\r\n const mgr = _getMasterManager();\r\n return mgr ? mgr._cleanupInterval : InstanceManager._cleanupInterval;\r\n }\r\n\r\n public static set cleanupInterval(val: number) {\r\n const mgr = _getMasterManager();\r\n if (mgr) {\r\n mgr.cleanupInterval = val;\r\n return;\r\n }\r\n\r\n InstanceManager._cleanupInterval = val;\r\n\r\n if (InstanceManager._cleanupHandle) {\r\n clearInterval(InstanceManager._cleanupHandle);\r\n InstanceManager._cleanupHandle = 0;\r\n }\r\n\r\n InstanceManager.start();\r\n }\r\n\r\n /**\r\n * Uvolní nepoužívané instance objektů\r\n * @param objects Objekty k uvolnění\r\n */\r\n public static removeObject(object: IOWObject): boolean {\r\n if (!object)\r\n return false;\r\n\r\n const refCount = InstanceManager._getReferencesCount(object);\r\n if (refCount > 1) {\r\n logger.debug(`Decreasing reference count (from ${refCount}) for ${object.instanceID} and not releasing instance.`, object.objectName, object.id); //`\r\n InstanceManager._setReferencesCount(object, refCount - 1);\r\n return false;\r\n }\r\n\r\n createdInstances.instances.delete(object.instanceID);\r\n\r\n if (!object.isNew) {\r\n const key = InstanceManager._generateId(object.objectName, object.id);\r\n\r\n const existingObjects = createdInstances.instances.get(key) as IOWObject[];\r\n if (existingObjects != null) {\r\n const index = existingObjects.indexOf(object);\r\n if (index !== -1)\r\n existingObjects.splice(index);\r\n\r\n if (existingObjects.length === 0)\r\n createdInstances.instances.delete(key);\r\n }\r\n }\r\n\r\n InstanceManager._instancesToDelete.push({\r\n instanceID: object.instanceID,\r\n objectName: object.objectName,\r\n id: object.id,\r\n isNew: object.isNew,\r\n attributeOnParentObject: object.attributeOnParentObject,\r\n time: Date.now(),\r\n });\r\n\r\n logger.debug(() => `Releasing: ${InstanceManager._createInstanceDescription(object)}`); //`\r\n InstanceManager._printState();\r\n\r\n if (!InstanceManager.cleanupInterval)\r\n InstanceManager._cleanUpInstances();\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Zaregistruje novou instanci aplikačního objektu\r\n * @param obj Aplikační objekt\r\n */\r\n public static addObject(obj: OWObject): void {\r\n const existingInstance = createdInstances.instances.get(obj.instanceID);\r\n if (existingInstance != null) {\r\n if (existingInstance === obj) {\r\n this.addInstanceUsage(obj);\r\n } else {\r\n logger.error(`Registering another client instance of a server instance which is already registered - skipped! Instance: ${InstanceManager._createInstanceDescription(obj)}`); //`\r\n }\r\n return;\r\n }\r\n\r\n if (InstanceManager._getReferencesCount(obj) !== undefined)\r\n throw new InvalidOperationException(`Object '${obj.objectIdentity}' instance ${obj.instanceID} has already some references (${InstanceManager._getReferencesCount(obj)})`);\r\n\r\n InstanceManager._setReferencesCount(obj, 1);\r\n\r\n createdInstances.instances.set(obj.instanceID, obj);\r\n InstanceManager._addPersistentObject(obj);\r\n\r\n logger.debug(() => `Added: ${InstanceManager._createInstanceDescription(obj)}`);\r\n InstanceManager._printState();\r\n }\r\n\r\n private static _createInstanceDescription(obj: LoggableInstance): string {\r\n const parentObject = (obj as any)._parentObject as IOWObject | undefined;\r\n return `${obj.isNew ? \"Unsaved instance\" : \"Instance\"} ${obj.instanceID}${!obj.isNew ? ` id ${obj.id}` : \"\"} of class '${obj.objectName}'${\r\n parentObject ? ` placed in attribute '${obj.attributeOnParentObject}' of ${parentObject.isNew ? \"unsaved \" : \"\"}object ${parentObject.instanceID}${!parentObject.isNew ? ` id ${parentObject.id}` : \"\"} of class '${parentObject.objectName}'` : \"\"\r\n }`; //`\r\n }\r\n\r\n private static _addPersistentObject(obj: OWObject): void {\r\n if (obj.isNew)\r\n return;\r\n\r\n const guid = InstanceManager._generateId(obj.objectName, obj.id);\r\n\r\n let objects = createdInstances.instances.get(guid) as OWObject[];\r\n if (objects == null) {\r\n objects = [];\r\n createdInstances.instances.set(guid, objects);\r\n }\r\n\r\n objects.push(obj);\r\n }\r\n\r\n /**\r\n * Zperzistní objekt i v rámci registrovaných instancí (je ho pak možné vytáhnout pomocí getObjects())\r\n * @param obj Aplikační objekt\r\n */\r\n public static persistObject(obj: OWObject): void {\r\n InstanceManager._addPersistentObject(obj);\r\n //logger.debug(`Persisted object id '${obj.id}' of class '${obj.objectName}'`, createdInstances.instances);\r\n }\r\n\r\n /**\r\n * Získá zaregistrovanou instanci aplikačního objektu nebo null, pokud takový zaregistrovaný není\r\n * @param instanceId Identifikátor instance aplikačního objektu\r\n */\r\n public static getInstance(instanceId: string): OWObject | null {\r\n return createdInstances.instances.get(instanceId) as OWObject;\r\n }\r\n\r\n /**\r\n * Získá všechny instance zaregistrovaného aplikačního objektu pomocí Id a názvu třídy nebo null, pokud žádná není zaregistrovaná\r\n * @param className Název třídy\r\n * @param id Identifikátor aplikačního záznamu\r\n */\r\n public static getObjects(className: string, id: string): readonly IOWObject[] | null {\r\n const objects = createdInstances.instances.get(InstanceManager._generateId(className, id));\r\n return !objects ? null : objects as OWObject[];\r\n }\r\n\r\n private static _generateId(className: string, id: string): string {\r\n return className + \"#\" + id;\r\n }\r\n\r\n /**\r\n * Spustí proces hlídání a uvolňování nepotřebných instancí\r\n */\r\n public static start(): void {\r\n if (self.parent !== self) // jen v hlavním framu běží timer\r\n return;\r\n\r\n if (InstanceManager.cleanupInterval) {\r\n setInterval(() => {\r\n InstanceManager._cleanUpInstances();\r\n }, InstanceManager.cleanupInterval);\r\n }\r\n }\r\n\r\n private static async _cleanUpInstances(): Promise<void> {\r\n const instances = InstanceManager._instancesToDelete;\r\n if (instances.length === 0)\r\n return;\r\n\r\n const minimumDisposeAge = Date.now() - InstanceManager._cleanupDelay;\r\n\r\n // vybere a odstraní pouze instance, které čekají déle než _cleanupDelay, ostatní čekají na další spuštění\r\n const instancesForRelease: TimedInstance[] = [];\r\n let i = instances.length;\r\n while (i--) {\r\n const ti = instances[i];\r\n if (ti.time > minimumDisposeAge)\r\n continue;\r\n\r\n // Pokud mezitím došlo k novému načtení instance, tak se uvolnění přeskočí a jen se odebere z kolekce instancí pro uvolnění\r\n if (!createdInstances.instances.has(ti.instanceID)) {\r\n instancesForRelease.push(ti);\r\n }\r\n\r\n instances.splice(i, 1);\r\n }\r\n\r\n if (instancesForRelease.length === 0)\r\n return;\r\n\r\n logger.debug(() => `Cleanup: ${instancesForRelease.length}, Keep: ${instances.length}, Holding: ${Array.from(InstanceManager._instances.values()).filter(i => !Array.isArray(i)).length}`); //`\r\n\r\n try {\r\n const requestContextForReleaseInstances: RequestContextWithoutTransactionContextId = {\r\n roles: AppContext.instance.activeUserRolesIds,\r\n cancellationToken: CancellationToken.none,\r\n };\r\n await OWManager.releaseInstances(ArrayUtils.getUniqueArray(instancesForRelease.map(i => i.instanceID)), requestContextForReleaseInstances);\r\n\r\n logger.groupCollapsed(`[InstanceManager] Requesting server to dispose following ${instancesForRelease.length} instances:`); //`\r\n instancesForRelease.forEach(i => logger.debug(() => InstanceManager._createInstanceDescription(i)));\r\n logger.groupEnd();\r\n } catch (e) {\r\n logger.error(e);\r\n for (const i of instancesForRelease)\r\n instances.push({ ...i, time: 0 });\r\n }\r\n }\r\n\r\n private static _printState(predicate?: (predicate: IOWObject) => boolean): void {\r\n let instances = Array.from(InstanceManager._instances.values()).filter(i => !Array.isArray(i)) as IOWObject[];\r\n if (predicate) {\r\n const filtered = instances.filter(i => predicate(i));\r\n logger.groupCollapsed(`Holds ${instances.length} instance(s) (filtered: ${filtered.length})`); //`\r\n instances = filtered;\r\n } else {\r\n logger.groupCollapsed(`Holds ${instances.length} instance(s)`); //`\r\n }\r\n instances.forEach(i => logger.debug(() => InstanceManager._createInstanceDescription(i)));\r\n logger.groupEnd();\r\n }\r\n\r\n /**\r\n * Zvýší počet referencí na objekt, využití při znovupoužití stejné instance\r\n * @param obj Aplikační objekt\r\n */\r\n public static addInstanceUsage(obj: IOWObject): void {\r\n const refCount = InstanceManager._getReferencesCount(obj);\r\n if (refCount === undefined)\r\n throw new InvalidOperationException(`Object '${obj.objectIdentity}' instance ${obj.instanceID} has no reference yet so it can't be incremented`);\r\n\r\n InstanceManager._setReferencesCount(obj, refCount + 1);\r\n }\r\n\r\n private static _getReferencesCount(obj: object): number | undefined {\r\n return (obj as any)[_referencesSymbol];\r\n }\r\n\r\n private static _setReferencesCount(obj: object, count: number): void {\r\n (obj as any)[_referencesSymbol] = count;\r\n }\r\n}\r\n\r\nInstanceManager.start();\r\n\r\nGlobalContext.registerType(InstanceManager);\r\n","import { Event } from \"../../Global/Base/Events\";\r\nimport { GlobalContext } from \"../../Global/Base/GlobalContext\";\r\n\r\nconst savedPasswordsSymbol = Symbol.for(\"savedPasswords\");\r\nconst savedTemporaryPasswordsSymbol = Symbol.for(\"savedTemporaryPasswords\");\r\n\r\n// internal veci pro PasswordManager\r\nclass savedPasswords {\r\n private static _passwords: Map<string, CryptoKey>;\r\n\r\n /**\r\n * Hesla k novým záznamům (které ještě nejsou uložené a nemají vlastní ID)\r\n */\r\n private static _temporaryPasswords: Map<string, CryptoKey>;\r\n\r\n public static get passwords(): Map<string, CryptoKey> {\r\n if (!savedPasswords._passwords) {\r\n const istMgr: any = self !== top ? GlobalContext.getType<typeof PasswordManager>(PasswordManager) : null;\r\n if (istMgr && istMgr[savedPasswordsSymbol])\r\n savedPasswords._passwords = istMgr[savedPasswordsSymbol];\r\n else\r\n savedPasswords._passwords = new Map();\r\n }\r\n return savedPasswords._passwords;\r\n }\r\n\r\n public static get temporaryPasswords(): Map<string, CryptoKey> {\r\n if (!savedPasswords._temporaryPasswords) {\r\n const istMgr: any = self !== top ? GlobalContext.getType<typeof PasswordManager>(PasswordManager) : null;\r\n if (istMgr && istMgr[savedTemporaryPasswordsSymbol])\r\n savedPasswords._temporaryPasswords = istMgr[savedTemporaryPasswordsSymbol];\r\n else\r\n savedPasswords._temporaryPasswords = new Map();\r\n }\r\n return savedPasswords._temporaryPasswords;\r\n }\r\n}\r\n\r\nexport class PasswordManager {\r\n /**\r\n * Událost vyvolaná při přidání nového hesla do password manageru\r\n */\r\n public static addedPassword: Event<{ id: string; className: string }, undefined> = new Event<{ id: string; className: string }, undefined>();\r\n\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private static get [savedPasswordsSymbol](): Map<string, CryptoKey> {\r\n return savedPasswords.passwords;\r\n }\r\n\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private static get [savedTemporaryPasswordsSymbol](): Map<string, CryptoKey> {\r\n return savedPasswords.temporaryPasswords;\r\n }\r\n\r\n /**\r\n * Značí, zda v úložišti hesel existuje pro danou třídu a id nějaké heslo\r\n * @param className Název třídy objektu\r\n * @param id ID objektu\r\n */\r\n public static hasPassword(className: string, id: string): boolean {\r\n return PasswordManager.getPassword(className, id) != null;\r\n }\r\n\r\n /**\r\n * Značí, zda v úložišti hesel existuje pro danou neuloženou instanci heslo\r\n * @param instanceID InstanceID objektu, pro který se ověřuje existence hesla\r\n */\r\n public static hasTempPassword(instanceID: string): boolean {\r\n return PasswordManager.getTempPassword(instanceID) != null;\r\n }\r\n\r\n /**\r\n * Vrací heslo z úložiště hesel pro danou třídu a id (null, pokud nebylo nalezeno)\r\n * @param className Název třídy objektu\r\n * @param id ID objektu\r\n */\r\n public static getPassword(className: string, id: string): CryptoKey | undefined {\r\n const identificator = PasswordManager._createObjectIdentification(className, id);\r\n return savedPasswords.passwords.get(identificator);\r\n }\r\n\r\n /**\r\n * Vrací heslo z úložiště hesel pro danou třídu a id (null, pokud nebylo nalezeno)\r\n * @param instanceId Id instance objektu, pro který se hledá heslo\r\n */\r\n public static getTempPassword(instanceId: string): CryptoKey | undefined {\r\n return savedPasswords.temporaryPasswords.get(instanceId);\r\n }\r\n\r\n /**\r\n * Uloží do úložiště hesel nové heslo pro danou třídu a id\r\n * @param className Název třídy objektu\r\n * @param id ID objektu\r\n * @param password Heslo k uložení\r\n */\r\n public static addPassword(className: string, id: string, password: CryptoKey, suppressNotify?: boolean): void {\r\n const identificator = PasswordManager._createObjectIdentification(className, id);\r\n savedPasswords.passwords.set(identificator, password);\r\n if (!suppressNotify)\r\n this.addedPassword.trigger({ id: id, className: className }, undefined);\r\n }\r\n\r\n /**\r\n * Odstraní z úložiště hesel heslo pro danou třídu a id - používá se po finálním zašifrování objektu\r\n * @param className Název třídy objektu\r\n * @param id ID objektu\r\n */\r\n public static deletePassword(className: string, id: string): void {\r\n const identificator = PasswordManager._createObjectIdentification(className, id);\r\n savedPasswords.passwords.delete(identificator);\r\n }\r\n\r\n /**\r\n * Uloží do úložiště hesel dočasné heslo pro neuloženou instanci\r\n * @param instanceId Id instance objektu, pro který se vkládá heslo\r\n * @param password Heslo k uložení\r\n */\r\n public static addTempPassword(instanceId: string, password: CryptoKey, suppressNotify?: boolean): void {\r\n savedPasswords.temporaryPasswords.set(instanceId, password);\r\n if (!suppressNotify)\r\n this.addedPassword.trigger({ id: instanceId, className: \"\" }, undefined);\r\n }\r\n\r\n /**\r\n * Odstraní heslo k objektu daného InstanceID z dočasného úložiště hesel\r\n * @param instanceID InstanceID objektu, u kterého se má odstranit heslo\r\n */\r\n private static _deleteTempPassword(instanceID: string): void {\r\n savedPasswords.temporaryPasswords.delete(instanceID);\r\n }\r\n\r\n /**\r\n * Přesune heslo z dočasného úložiště do trvalého\r\n * @param instanceID InstanceID objektu, jehož heslo se má přesunout\r\n * @param className Třída objektu\r\n * @param id ID objektu\r\n */\r\n public static movePasswordFromTemp(instanceID: string, className: string, id: string): boolean {\r\n const temporaryPassword = PasswordManager.getTempPassword(instanceID);\r\n if (temporaryPassword == null)\r\n return false;\r\n PasswordManager.addPassword(className, id, temporaryPassword);\r\n PasswordManager._deleteTempPassword(instanceID);\r\n\r\n return PasswordManager.hasPassword(className, id);\r\n }\r\n\r\n private static _createObjectIdentification(className: string, id: string): string {\r\n return `${className}:${id}`;\r\n }\r\n}\r\n\r\nGlobalContext.registerType(PasswordManager);\r\n","export type SerializerParams = Readonly<{\r\n serializeWithId?: boolean;\r\n}>;\r\n","import { Event } from \"../../../Global/Base/Events\";\r\nimport { IValidationError } from \"../../Basic/EOWExceptionsInterfaces\";\r\n/**\r\n* Rozhrani pro datove objekty majici stav validnosti a umoznujici udrzovat informace o validacnich chybach\r\n*/\r\nexport interface IValidationDataObject<T> {\r\n /**\r\n * Identifikator datoveho zaznamu\r\n */\r\n id: any;\r\n /**\r\n * Zda je zaznam ve validnim stavu\r\n */\r\n isValid: boolean;\r\n /**\r\n * Udalost zmeny stavu validnosti\r\n */\r\n //validityChanged: any;\r\n /**\r\n * Vraci kopii vsech validacnich chyb\r\n */\r\n getValidationErrors: () => T[];\r\n /**\r\n * Prida novou chybu do vnitrniho seznamu\r\n * @param error libovolna chyba\r\n */\r\n addError: (error: T) => void;\r\n /**\r\n * Odebere chybu\r\n * @param error libovolna chyba\r\n */\r\n removeError: (error: T) => void;\r\n /**\r\n * Odstrani vsechny existujici chyby zaznamu\r\n */\r\n clearErrors: () => void;\r\n /**\r\n * Událost volána pri změně validity objektu\r\n */\r\n validityChange: Event<any, boolean>;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport class IValidationDataObject<T> {\r\n private static _properties: (keyof IValidationDataObject<any>)[] = [\"id\", \"isValid\", \"validityChange\"];\r\n private static _methods: (keyof IValidationDataObject<any>)[] = [\"getValidationErrors\", \"addError\", \"removeError\", \"clearErrors\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance !== null && typeof instance === \"object\" && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport interface IValidationDataSimple {\r\n error: IValidationError;\r\n}\r\n","/**\r\n * Vrací informaci, jestli je ID pozitivní (větší než nula)\r\n * @returns Jestli je ID pozitivní\r\n */\r\nexport const HasPositiveID = (id?: string) => id && id.trim() !== \"0\" && !id.trim().startsWith(\"-\");\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { CancellationToken } from \"@multiweb/types/multiweb\";\r\nimport { InvalidArgumentException, InvalidOperationException } from \"../../../Global/Base/Exceptions\";\r\nimport { OWManager } from \"../OWManager\";\r\nimport { RequestContext } from \"../RequestContext\";\r\nimport { IOWObject } from \"./IOWObject\";\r\nimport { IOWObjectList, IOWObjectListItem } from \"./IOWObjectList\";\r\nimport { OWObject } from \"./OWObject\";\r\nimport { HasPositiveID } from \"./utils\";\r\n\r\nexport class OWObjectListItem implements IOWObjectListItem {\r\n //#region Fields\r\n /**ObjectID*/\r\n public readonly id: string | null;\r\n\r\n private _obj: OWObject | null = null;\r\n /**\r\n * Promise probíhajícího getu objektu\r\n */\r\n private _getPromise: Promise<OWObject> | null;\r\n\r\n /**ObjectName*/\r\n public readonly objectName: string;\r\n public readonly instanceID: string | null;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get isObjectLoaded(): boolean {\r\n return this._obj != null;\r\n }\r\n //#endregion Properties\r\n\r\n /**\r\n * Získá instanci objektu\r\n * Pokud ještě není načtený, načte se podle instanceID nebo ID (podle toho, co je k dispozici)\r\n * Pokud již probíhá get tohoto objektu, vrací se promise dotazu, aby nedocházelo k duplicitním getům\r\n * při rychlém volání za sebou.\r\n * @param requestContext Kontext s rolemi pro dočtení objektu.\r\n */\r\n public async getObject(requestContext?: RequestContext): Promise<OWObject> {\r\n if (this._getPromise != null) {\r\n return await this._getPromise;\r\n }\r\n\r\n if (this._obj == null && this.instanceID != null) {\r\n this._getPromise = OWManager.getInstance(this.instanceID, undefined, undefined, requestContext);\r\n this._obj = await this._getPromise;\r\n this._getPromise = null;\r\n }\r\n\r\n if (this._obj == null && this.id != null && this.objectName) {\r\n this._getPromise = OWManager.getObject(this.id, this.objectName, undefined, undefined, undefined, requestContext);\r\n this._obj = await this._getPromise;\r\n this._getPromise = null;\r\n }\r\n\r\n return this._obj;\r\n }\r\n\r\n public compare(item: OWObjectListItem): boolean {\r\n if (this.objectName != item.objectName)\r\n return false;\r\n\r\n if (this.instanceID)\r\n return this.instanceID === item.instanceID;\r\n\r\n if (this.id != null)\r\n return this.id === item.id;\r\n\r\n throw new InvalidOperationException(\"OWObjectList item has not id nor instanceid\");\r\n }\r\n\r\n //#region Constructors\r\n constructor(objIndentification: OWObject);\r\n constructor(objIndentification: { id?: string; instanceId?: string }, objectName?: string);\r\n constructor(objIndentification: any, objectName?: any) {\r\n //Nove pridany zaznam uzivatelem\r\n if (objIndentification instanceof IOWObject) {\r\n this._obj = (objIndentification as OWObject);\r\n this.id = !this._obj.isNew ? (HasPositiveID(this._obj?.id) ? null : this._obj.id) : null;\r\n this.objectName = objIndentification.objectName;\r\n this.instanceID = objIndentification.instanceID;\r\n return;\r\n }\r\n\r\n if (typeof objIndentification === \"object\") {\r\n const obj = objIndentification as { id?: string | number; instanceId?: string };\r\n this.id = obj.id ? obj.id.toString() : null;\r\n this.instanceID = obj.instanceId;\r\n this.objectName = objectName;\r\n return;\r\n }\r\n\r\n throw new InvalidArgumentException();\r\n }\r\n\r\n //#endregion Constructors\r\n}\r\n\r\nexport class OWObjectList implements IOWObjectList {\r\n //#region Fields\r\n private _condition: string;\r\n private _getRequestContext: (cancellationToken?: CancellationToken) => RequestContext | undefined;\r\n public updateCondition: string = \"\";\r\n public filterCondition: string = \"\";\r\n public className: string = \"\";\r\n public readVersioned: boolean | undefined = false;\r\n\r\n public get condition(): string {\r\n let cond = \"\";\r\n\r\n if (this._condition)\r\n cond = this._condition;\r\n\r\n if (this.filterCondition) {\r\n if (cond)\r\n cond += \" and \";\r\n cond += this.filterCondition;\r\n }\r\n\r\n if (this.updateCondition) {\r\n if (cond)\r\n cond += \" and \";\r\n cond += this.updateCondition;\r\n }\r\n\r\n return cond;\r\n }\r\n\r\n public set condition(v: string) {\r\n this._condition = v;\r\n }\r\n\r\n public conditionParams: ConditionParams = [];\r\n public items: Array<OWObjectListItem>;\r\n public isSelectAll: boolean = false;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n\r\n constructor(params?: IOWObjectListRemote, getRequestContext: (cancellationToken?: CancellationToken) => RequestContext = () => undefined) {\r\n this.items = new Array<OWObjectListItem>();\r\n this._getRequestContext = getRequestContext;\r\n\r\n if (params != null) {\r\n this.className = params.ClassName;\r\n this.condition = params.Condition;\r\n\r\n this.conditionParams = params.ConditionParams?.map(item => {\r\n if (item instanceof IOWObjectListRemote) {\r\n return new OWObjectList(item, getRequestContext);\r\n } else {\r\n return item;\r\n }\r\n });\r\n\r\n this.isSelectAll = params.IsSelectAll;\r\n this.readVersioned = params.ReadVersioned || false;\r\n if (params.Items && params.Items.length > 0) {\r\n for (const item of params.Items) {\r\n this.add({ className: item.Name, id: item.ID == null ? null : item.ID, instanceId: item.InstanceID });\r\n }\r\n }\r\n }\r\n }\r\n\r\n public valueOf(): this {\r\n return this;\r\n }\r\n public toString(): string {\r\n return `[${OWObjectList.name} on class ${this.className}]`; //`\r\n }\r\n\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n public add(param: { className?: string; id?: string; instanceId?: string }): void;\r\n public add(param: OWObject): void;\r\n public add(param: any): void {\r\n if (param instanceof IOWObject) {\r\n if (this.containsInstanceID(param.instanceID))\r\n throw new InvalidArgumentException(`ObjectList already contains item with instanceId ${param.instanceID}`); //`\r\n\r\n this.items.push(new OWObjectListItem(param));\r\n return;\r\n }\r\n\r\n if (!param.instanceId && !param.className)\r\n throw new InvalidArgumentException(\"className must be specified when adding item by id\");\r\n\r\n if (param.instanceId && this.containsInstanceID(param.instanceId))\r\n throw new InvalidArgumentException(`ObjectList already contains item with instanceId ${param.instanceId}`); //`\r\n\r\n this.items.push(new OWObjectListItem({ id: param.id, instanceId: param.instanceId }, param.className));\r\n }\r\n\r\n public get count(): number {\r\n return this.items.length;\r\n }\r\n\r\n public delete(index: number): void {\r\n this.items.splice(index, 1);\r\n }\r\n\r\n public clear(): void {\r\n this.items = [];\r\n }\r\n\r\n public async deleteById(id: string): Promise<void> {\r\n const index = this.indexOf(id);\r\n if (index == -1) {\r\n for (let i = 0; i < this.items.length; i++) {\r\n const actObj = await this.items[i].getObject(this._getRequestContext());\r\n\r\n if (actObj.id === id) {\r\n this.items.splice(i, 1);\r\n return;\r\n }\r\n }\r\n } else {\r\n this.items.splice(index, 1);\r\n return;\r\n }\r\n }\r\n\r\n public async deleteByInstanceID(instanceID: string): Promise<void> {\r\n for (let i = 0; i < this.items.length; i++) {\r\n const actObj = await this.items[i].getObject(this._getRequestContext());\r\n if (actObj.instanceID === instanceID) {\r\n this.items.splice(i, 1);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n /**vraci ID objektu na dane pozici*/\r\n public getItemID(index: number): string {\r\n return this.items[index].id;\r\n }\r\n\r\n /**vraci ObjectName/ClassName objektu na dane pozici*/\r\n public getItemObjectName(index: number): string {\r\n return this.items[index].objectName;\r\n }\r\n\r\n /**Vrací instance id objektu s daným indexem*/\r\n public getItemInstanceID(index: number): string {\r\n return this.items[index].instanceID;\r\n }\r\n\r\n public async getItemByInstanceID(instanceID: string): Promise<OWObject> {\r\n for (let i = 0; i < this.items.length; i++) {\r\n const actObj = await this.items[i].getObject(this._getRequestContext());\r\n if (actObj.instanceID === instanceID) {\r\n return actObj;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public async getItemByID(id: string): Promise<OWObject> {\r\n for (let i = 0; i < this.items.length; i++) {\r\n const actObj = await this.items[i].getObject(this._getRequestContext());\r\n if (actObj.id == id) {\r\n return actObj;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**vraci objekt na dane pozici*/\r\n public getObject(index: number): Promise<OWObject> {\r\n return OWManager.getObject(this.items[index].id, this.items[index].objectName, undefined, undefined, undefined, this._getRequestContext());\r\n }\r\n\r\n /** Vrací pole všech objektu v OWObjectListu */\r\n public getObjects(cancellationToken?: CancellationToken): Promise<OWObject[]> {\r\n const objs: any[] = [];\r\n\r\n for (const item of this.items) {\r\n objs.push(item.getObject(this._getRequestContext(cancellationToken)));\r\n }\r\n\r\n return Promise.all(objs);\r\n }\r\n\r\n /**\r\n * Vrací, zda v kolekci existuje objekt s daným instanceID\r\n */\r\n public containsInstanceID(instanceID: string): boolean {\r\n return this.items.some((item) => item.instanceID === instanceID);\r\n }\r\n\r\n /**\r\n * Vrací, zda v kolekci existuje objekt s daným ID\r\n */\r\n public containsID(id: string): boolean {\r\n return this.items.some((item) => item.id === id);\r\n }\r\n\r\n /**vraci pozici objektu s danym ID, pokud nenalezne, tak -1*/\r\n public indexOf(id: string): number {\r\n let index = 0;\r\n for (const item of this.items) {\r\n if (item.id === id)\r\n return index;\r\n index++;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n public toJSON(): any {\r\n const jsonData: any = {\r\n IsSelectAll: this.isSelectAll,\r\n ClassName: this.className,\r\n Count: this.count,\r\n IsForClient: false,\r\n ReadVersioned: this.readVersioned,\r\n Condition: this.condition,\r\n ConditionParams: this.conditionParams,\r\n Items: this.items.map((item) => {\r\n return {\r\n ID: item.id,\r\n InstanceID: item.instanceID,\r\n Name: item.objectName,\r\n };\r\n }),\r\n };\r\n\r\n return jsonData;\r\n }\r\n\r\n /** Porovná, zda objectlisty mají stejné conditionParams. */\r\n private _compareConditionParams(objList: OWObjectList): boolean {\r\n if (this.conditionParams.length !== objList.conditionParams.length)\r\n return false;\r\n\r\n return this.conditionParams.every((item, i) => {\r\n if (item instanceof IOWObjectList) {\r\n return item.compare(objList.conditionParams[i]);\r\n } else {\r\n return item === objList.conditionParams[i];\r\n }\r\n });\r\n }\r\n\r\n public compare(value: any): boolean {\r\n if (value instanceof OWObjectList) {\r\n if (this.items.length != value.items.length) return false;\r\n if (!(this.className == value.className && this.condition == value.condition && this._compareConditionParams(value) && this.isSelectAll == value.isSelectAll)) return false;\r\n\r\n const v1Map = this.items;\r\n const v2Map = value.items;\r\n const compareObj = (obj: {id: string; instanceID: string; objectName: string}, obj2: {id: string; instanceID: string; objectName: string}) => obj.id == obj2.id && obj.instanceID == obj2.instanceID && obj.objectName == obj2.objectName;\r\n\r\n for (const item of v1Map) {\r\n for (let i = 0; i < v2Map.length; i++) {\r\n const item2 = v2Map[i];\r\n if (compareObj(item, item2)) {\r\n v2Map.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return v2Map.length == 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public clone(): OWObjectList {\r\n const clone = new OWObjectList(undefined, this._getRequestContext);\r\n clone.className = this.className;\r\n clone.condition = this.condition;\r\n clone.conditionParams = this.conditionParams;\r\n clone.isSelectAll = this.isSelectAll;\r\n clone.readVersioned = this.readVersioned;\r\n clone.items = this.items.map(item => new OWObjectListItem(item));\r\n return clone;\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n\r\n//export interface IOWObjectListParams { owClass: string, condition: string, conditionParams: string }\r\n\r\nexport interface IOWObjectListRemote {\r\n Condition?: string;\r\n ConditionParams?: Array<any>;\r\n ClassName?: string;\r\n Count: number;\r\n IsForClient: boolean;\r\n IsSelectAll: boolean;\r\n Items: Array<IOWObjectListItemRemote>;\r\n /**Indikuje, že se pro výběr dat pro naplnění objectListu, mají použít verzovaná data */\r\n ReadVersioned?: boolean;\r\n}\r\n\r\nexport class IOWObjectListRemote {\r\n private static _properties = [\r\n \"Count\", \"IsSelectAll\", \"Items\",\r\n ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\nexport interface IOWObjectListItemRemote {\r\n ID: string;\r\n Name: string;\r\n InstanceID: string;\r\n}\r\n","import { debounce } from \"lodash.throttle\";\r\n\r\nimport { ConditionParam, ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { ISectionLogger, ISectionLoggerFactory, LoggingSection } from \"@multiweb/logging\";\r\nimport {\r\n Aggregation,\r\n IAttrValue,\r\n IOWClassAttributeDescription,\r\n IOWEnumAttributeDescription,\r\n IResultMessage,\r\n IRunMethodResult,\r\n} from \"@multiweb/types/contracts\";\r\nimport { RequestContext } from \"@multiweb/types/multiweb\";\r\nimport { ObjectUtils } from \"Global/Base/Utils/ObjectUtils\";\r\nimport { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { ErrorHandler } from \"UI/Errors\";\r\nimport { ObjectContext } from \"UI/UI/UI/UIManagerInterfaces\";\r\nimport { convertContextFromFrameToRequest } from \"UI/UI/Utilities/SharedUIMethods\";\r\nimport { ObjectSignatureSerializer } from \"../../../Cryptography/Crypto.OW/ObjectSignatureSerializer\";\r\nimport { DataConverter } from \"../../../Global/Base/Converters/DataConverter\";\r\nimport { ISignatureTemplate } from \"../../../Global/Base/Crypto/ISignatureInfo\";\r\nimport { CaseInsensitiveMap } from \"../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { EncAttrValue } from \"../../../Global/Base/DataTypes/EncAttrValue\";\r\nimport { IEncAttrValue } from \"../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { DIContainer } from \"../../../Global/Base/DIContainer\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { InvalidArgumentException, InvalidOperationException } from \"../../../Global/Base/Exceptions\";\r\nimport { IComparable } from \"../../../Global/Base/IComparable\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { AsyncLock } from \"../../../Global/Base/Promises/AsyncLock\";\r\nimport { CancellationToken, CancellationTokenSource } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { PromiseUtils } from \"../../../Global/Base/Promises/PromiseUtils\";\r\nimport { SecurityUtils } from \"../../../Global/Base/Security/SecurityUtils\";\r\nimport { DateUtils } from \"../../../Global/Base/Utils/DateUtils\";\r\nimport { ValidationErrorType } from \"../../Basic/EOWExceptionsInterfaces\";\r\nimport { EOWException, EOWRightEvaluationException } from \"../../Basic/OWExceptions\";\r\nimport { AttrValueReader } from \"../AttrValueReader\";\r\nimport { AttributeDescription, BasicDataType, IDataTypeSerialization } from \"../Cache/ClassDescriptionCache/Interfaces\";\r\nimport { ModelDescriptionsManager } from \"../Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { InstanceManager } from \"../InstanceManager\";\r\nimport { IWorkflowMenuItem } from \"../IWorkflowManager\";\r\nimport { OWClassDescription } from \"../OWDescriptions\";\r\nimport { OWManager } from \"../OWManager\";\r\nimport {\r\n IAttrDataForTransfer,\r\n IImplicitFormInfo,\r\n IOWObjectForTransfer,\r\n IOWObjectJsonPatchDTO,\r\n RunMethodBaseParams,\r\n RunMethodWithParamsBaseParams,\r\n} from \"../OWManagerInterfaces\";\r\nimport { PasswordManager } from \"../PasswordManager\";\r\nimport { ClassItemRightTypes, ClassItemType, IClassItemRights } from \"../Rights\";\r\nimport { SerializeFuncs } from \"../Serializers\";\r\nimport { SerializerParams } from \"../types\";\r\nimport { Enum } from \"./Enums\";\r\nimport { IChangedAttr, IOWObject } from \"./IOWObject\";\r\nimport { IValidationDataSimple } from \"./IValidationDataObject\";\r\nimport { OWObjectList } from \"./OWObjectList\";\r\nimport { HasPositiveID } from \"./utils\";\r\n\r\n/**\r\n * Třída OWObject reprezentuje aplikační záznam v klientském prostředí.\r\n * Obsahuje jeho atributy, umožňuje číst a modifikovat jejich hodnoty a umožňuje spouštět jeho metody.\r\n * @includeToDoc\r\n */\r\nexport class OWObject implements IOWObject {\r\n private _owObjectLogger: ISectionLogger;\r\n private _encryptionLogger: ISectionLogger;\r\n\r\n //#region \"Fields\"\r\n private _changeHistory: IOWObjectJsonPatchDTO[] = [];\r\n private _historyPosition: number = -1;\r\n\r\n private _id?: string;\r\n /**\r\n * Chain promisů s probihajicimi aktualizacemi dat\r\n */\r\n private _waitForUpdatesTask: Promise<void> = Promise.resolve();\r\n\r\n private _itemRightsCache: Map<string, CachedRightItem<IClassItemRights>> = new Map();\r\n private _conditionEvaluationsCache: Map<string, CachedRightItem<boolean>> = new Map();\r\n\r\n /**\r\n * Unikátní identifikátor aplikačního záznamu\r\n */\r\n public get id(): string | undefined {\r\n if (this.isNew)\r\n return this.instanceID;\r\n\r\n return this._id;\r\n }\r\n protected _objectName: string | undefined = undefined;\r\n public get objectName(): string | undefined {\r\n return this._objectName;\r\n }\r\n protected _instanceID: string | undefined = undefined;\r\n public get instanceID(): string | undefined {\r\n return this._instanceID;\r\n }\r\n\r\n protected _objectIdentity: string | undefined = undefined;\r\n public get objectIdentity(): string | undefined {\r\n return this._objectIdentity;\r\n }\r\n\r\n private _isServerSideEncrypted: boolean | undefined = undefined;\r\n public get isServerSideEncrypted(): boolean | undefined {\r\n return this._isServerSideEncrypted;\r\n }\r\n\r\n private _isEncryptionFinalized: boolean | undefined = undefined;\r\n public get isEncryptionFinalized(): boolean | undefined {\r\n return this._isEncryptionFinalized;\r\n }\r\n\r\n private _isClientSideEncrypted: boolean | undefined = undefined;\r\n public get isClientSideEncrypted(): boolean | undefined {\r\n return this._isClientSideEncrypted;\r\n }\r\n\r\n private _canEdit: boolean = false;\r\n private _canDelete: boolean = false;\r\n\r\n public get canEdit(): boolean {\r\n return this._canEdit;\r\n }\r\n public get canDelete(): boolean {\r\n return this._canDelete;\r\n }\r\n public canExecuteActions: boolean = false;\r\n\r\n private _createAttrChangeCycle: number;\r\n /**\r\n * Čitač změn atributů na serverové instanci\r\n */\r\n private _attrChangeCycle: number;\r\n\r\n private _roleIds: string[];\r\n private _editRoleIds: string[];\r\n private _deleteRoleIds: string[];\r\n\r\n public get roleIds(): string[] {\r\n return this._roleIds;\r\n }\r\n public get editRoleIds(): string[] {\r\n return this._editRoleIds;\r\n }\r\n public get deleteRoleIds(): string[] {\r\n return this._deleteRoleIds;\r\n }\r\n\r\n /**\r\n * Zámky pro načítání jednotlivých vazeb aby více dotazů spouštělo vždy jen jedno načítání\r\n */\r\n private _associationLoadingLocks: CaseInsensitiveMap<AsyncLock> = new CaseInsensitiveMap();\r\n\r\n public readonly valueSet: Event<IOWObject, IChangedAttr> = new Event<IOWObject, IChangedAttr>();\r\n public readonly attributeChanged: Event<OWObject, string> = new Event<OWObject, string>();\r\n public readonly attributesChanged: Event<OWObject, string[]> = new Event<OWObject, string[]>();\r\n public readonly relationAttributeChanged: Event<OWObject, string> = new Event<OWObject, string>();\r\n public readonly newSaved: Event<OWObject, void> = new Event<OWObject, void>();\r\n public readonly beforeSave: Event<OWObject, void> = new Event<OWObject, void>();\r\n public readonly saved: Event<OWObject, void> = new Event<OWObject, void>();\r\n public readonly validityChange: Event<OWObject, boolean> = new Event<OWObject, boolean>();\r\n public readonly dataRefreshed: Event<OWObject, boolean> = new Event<OWObject, boolean>();\r\n public readonly objectDecrypted: Event<OWObject, undefined> = new Event<OWObject, undefined>();\r\n public readonly disposed: Event<OWObject, undefined> = new Event<OWObject, undefined>();\r\n public readonly deleted: Event<OWObject, undefined> = new Event<OWObject, undefined>();\r\n\r\n public get isNew(): boolean {\r\n return this._id == null;\r\n }\r\n public isChanged: boolean = false;\r\n public isTempObject: boolean = false;\r\n public get isCopy(): boolean {\r\n return this._isCopy;\r\n }\r\n public get isVersioned(): boolean {\r\n return this._isVersioned;\r\n }\r\n\r\n public get WorkflowID(): number | null {\r\n return this._workflowId;\r\n }\r\n\r\n private _workflowId: number | null = null;\r\n private _isVersioned: boolean = false;\r\n private _isCopy: boolean = false;\r\n\r\n private __parentObject?: OWObject | null;\r\n /**\r\n * Rodičovský objekt, přes jehož vazbu byl tento dočten.\r\n * Hodnota null znamená, že je to hlavní objekt.\r\n * Hodnota undefined znamená, že proměnná ještě nebyla nastavena.\r\n */\r\n private get _parentObject(): OWObject | null | undefined {\r\n if (this.__parentObject && !this.__parentObject.isDisposed)\r\n return this.__parentObject;\r\n return undefined;\r\n }\r\n private set _parentObject(v: OWObject | null) {\r\n this.__parentObject = v;\r\n }\r\n\r\n private _attributeOnParentObject: string;\r\n\r\n private _classInfo: OWClassDescription | undefined = undefined;\r\n public get classInfo(): OWClassDescription | undefined {\r\n return this._classInfo;\r\n }\r\n\r\n //pole atributu cekajicich na provedeni updateInstance ->\r\n private _updatingAttrs: IRunningAttrUpdate[] = [];\r\n //private _pendingAttrsForUpdate: Map<string, Deferred<IAttrValue>> = new Map();\r\n /**\r\n * Zámek probíhajícího refreshe objektu\r\n */\r\n private _runningRefreshLock: AsyncLock = new AsyncLock();\r\n private _disposed: boolean = false;\r\n public get isDisposed(): boolean {\r\n return this._disposed;\r\n }\r\n private _values: CaseInsensitiveMap<IAttrValue> = new CaseInsensitiveMap<IAttrValue>();\r\n /**\r\n * Dočasně udržuje hodnoty atributů, které budou zašifrovány.\r\n * Hodnoty se do _values nastaví po přijetí odpovědi na SetValue ze serveru.\r\n */\r\n private _tempDecryptedValues: CaseInsensitiveMap<IAttrValue> = new CaseInsensitiveMap<IAttrValue>();\r\n // TODO: docasne z duvodu toho ze na elementech zalezi na velikosti pismen pri posilani atributu, az se to vyladi tak odstranit\r\n private _ciAttrName: CaseInsensitiveMap<string> = new CaseInsensitiveMap<string>();\r\n\r\n private _tempObjectIDs: string[];\r\n\r\n //private _tempObjectList: OWObjectList = new OWObjectList(null);\r\n\r\n private _validationErrors: IValidationDataSimple[] = [];\r\n\r\n private _encryptionKey: CryptoKey;\r\n\r\n /** Informace o tom, zda je object zverejneny na rozhrani sluzby */\r\n private _isPublicObject: boolean = false;\r\n\r\n /**\r\n * Informace zda je objekt ve validním stavu\r\n */\r\n public get isValid(): boolean {\r\n return this._validationErrors.length === 0;\r\n }\r\n //#endregion \"Fields\"\r\n private readonly _reloadDebounced: () => Promise<void>;\r\n private readonly _context: ObjectContext;\r\n\r\n constructor(context: ObjectContext | undefined) {\r\n this._owObjectLogger = DIContainer.instance.create(ISectionLoggerFactory).create(LoggingSection.objectWrapper);\r\n this._encryptionLogger = DIContainer.instance.create(ISectionLoggerFactory).create(LoggingSection.encryption);\r\n this._reloadDebounced = debounce(async () => await this._reload(), 100, { leading: true, trailing: false });\r\n this._context = context;\r\n }\r\n\r\n public async getSerializers(ai: AttributeDescription, params?: SerializerParams): Promise<IDataTypeSerialization> {\r\n return SerializeFuncs.getTypeSerializers(ai.type, (ai as IOWEnumAttributeDescription).enumName, params);\r\n }\r\n\r\n /**\r\n * Šifrovací klíč k této instanci objektu\r\n */\r\n public async getEncryptionKey(cancellationToken: CancellationToken = CancellationToken.none): Promise<CryptoKey> {\r\n if (this._encryptionKey == null) {\r\n // @ts-ignore\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n const [salted, encryptionKeyBase] = await this._getEncryptionKey(cancellationToken);\r\n\r\n if (encryptionKeyBase == null)\r\n return null;\r\n\r\n /*if (!salted) this._encryptionKey = await SecurityUtils.derivePasswordToAES256Key(encryptionKeyBase, await this._getObjectID());\r\n else*/ this._encryptionKey = encryptionKeyBase;\r\n }\r\n return this._encryptionKey;\r\n }\r\n\r\n private async _getEncryptionKey(cancellationToken: CancellationToken = CancellationToken.none): Promise<[boolean, CryptoKey]> {\r\n if (this._encryptionKey) return [true, this._encryptionKey];\r\n const encryptionKeyBase: CryptoKey = this.isNew ? PasswordManager.getTempPassword(this.instanceID) : PasswordManager.getPassword(this.objectName, this.id);\r\n if (encryptionKeyBase)\r\n return [false, encryptionKeyBase];\r\n if (this.classInfo && this.classInfo.passwordMasterLink) {\r\n const obj = await this._getValue(this.classInfo.passwordMasterLink, true, cancellationToken);\r\n if (!(obj instanceof NullOWObject) && obj && obj instanceof IOWObject)\r\n return await (obj as unknown as OWObject)._getEncryptionKey(cancellationToken);\r\n }\r\n return [false, null];\r\n }\r\n\r\n /**\r\n * Zda je dostupné uživatelem zadané heslo pro šifrování a dešifrování tohoto aplikačního záznamu\r\n */\r\n public get hasEncryptionPassword(): boolean {\r\n return this.isNew ? PasswordManager.hasTempPassword(this.instanceID) : PasswordManager.hasPassword(this.objectName, this.id);\r\n }\r\n\r\n /**\r\n * Název celé vazby, ve které je umístěn tento objekt na nejvyšším rodičovském záznamu\r\n */\r\n public get attributeOnParentObject(): string {\r\n return this._attributeOnParentObject;\r\n }\r\n\r\n /**\r\n * Vrací kolekci všech validačních chyb, prázdnou, pokud žádné neexistují\r\n */\r\n public getValidationErrors(): IValidationDataSimple[] {\r\n return this._validationErrors.slice(); // shallow copy\r\n }\r\n\r\n /**\r\n * Přidá novou validační chybu\r\n * @param error Informace o validační chybě\r\n */\r\n public addError(error: IValidationDataSimple): void {\r\n const isFirstValidationError = error.error.type !== ValidationErrorType.recommendedError && !this._validationErrors.some((e) => e.error.type !== ValidationErrorType.recommendedError);\r\n\r\n this._validationErrors.push(error);\r\n //prvni validacni chyba, ktera znemoznuje ulozeni (nepatri zde recommended)\r\n if (isFirstValidationError)\r\n this.validityChange.trigger(this, false);\r\n }\r\n\r\n /**\r\n * Odstraní validační chybu\r\n * @param errorValidační chyba k odstranění\r\n */\r\n public removeError(error: IValidationDataSimple): void {\r\n const pos = this._validationErrors.findIndex((e) => e === error);\r\n if (pos < 0)\r\n return;\r\n\r\n this._validationErrors.splice(pos, 1);\r\n if (this.isValid)\r\n this.validityChange.trigger(this, true);\r\n }\r\n\r\n /**\r\n * Odstraní všechny validační chyby\r\n */\r\n public clearErrors(): void {\r\n const isValid = this.isValid;\r\n this._validationErrors = [];\r\n if (!isValid)\r\n this.validityChange.trigger(this, true);\r\n }\r\n\r\n public get isInstanceUpdateInProgress(): boolean {\r\n return this._updatingAttrs.length > 0;\r\n }\r\n\r\n /**\r\n * Vrací hodnotu atributu ObjectID bez čekání na update\r\n */\r\n // @ts-ignore\r\n private async _getObjectID(): Promise<string> {\r\n return AttrValueReader.read(await this._getValue(\"ObjectID\", true));\r\n }\r\n\r\n /**\r\n * Vytvoří instanci OWObject\r\n * @param objectData Serializovaná data objektu\r\n * @param isPublicObject\r\n * @param context Kontext framu. Dá se předpokládat, že objekt vytvořený na jednom framu bude mít stejný kontext i pokud bude předáván do jiných framů. Role formuláře se nezmění. Stejně tak by se neměl změnit ani editační kontext\r\n * @param initFunc Inicializační token\r\n * @param cancellationToken Token pro zrušení\r\n */\r\n\r\n public static createObject(objectData: IOWObjectForTransfer, isPublicObject: boolean = false, context: ObjectContext, initFunc?: (obj: OWObject) => void, cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n const existingInstance = InstanceManager.getInstance(objectData.InstanceID);\r\n if (existingInstance)\r\n return Promise.resolve(existingInstance);\r\n\r\n return ModelDescriptionsManager.instance.getClassInfo(objectData.ClassName).then(async (classInfo: OWClassDescription) => {\r\n const obj = new OWObject(context);\r\n obj._isPublicObject = isPublicObject;\r\n if (isPublicObject)\r\n obj._parentObject = null; // null znamená, že to je hlavní objekt (oproti undefined, které znamená, že to ještě nebylo nastaveno)\r\n obj._classInfo = classInfo;\r\n obj._objectName = objectData.ClassName;\r\n obj._instanceID = objectData.InstanceID;\r\n obj._isVersioned = objectData.isVersioned ?? false;\r\n obj._isCopy = objectData.isCopy ?? false;\r\n obj._workflowId = objectData.WorkflowID;\r\n // načte ID a ObjectID, které je později potřeba\r\n await obj._loadSpecificAttributes(objectData, cancellationToken, \"ID\", \"ObjectID\", obj.classInfo.passwordMasterLink);\r\n\r\n if (initFunc)\r\n initFunc(obj);\r\n\r\n InstanceManager.addObject(obj); // potřebujeme mít vyplněné id\r\n\r\n await obj._loadData(objectData, cancellationToken, undefined, obj.isNew);\r\n\r\n return obj;\r\n });\r\n }\r\n\r\n public async refresh(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n await this.waitForPendingUpdates();\r\n\r\n const releaser = await this._runningRefreshLock.lock();\r\n try {\r\n await this._publishIfNecessary(cancellationToken);\r\n const data = await OWManager.getInstanceData(this.instanceID, true, this._attrChangeCycle, this._getRequestContext(cancellationToken));\r\n await this._loadData(data, cancellationToken);\r\n } finally {\r\n releaser.release();\r\n }\r\n\r\n this.dataRefreshed.trigger(this, false);\r\n }\r\n\r\n public async reload(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n //zavolá funkci jako debounced - seskupí opakované volání v rámci časového intervalu do jednoho. (viz. FunctionUtils.debouncedFunction)\r\n if (cancellationToken === CancellationToken.none)\r\n await this._reloadDebounced();\r\n else //pokud je zadán cancellation token, nelze funkci seskupit. Token nemusí být stejný.\r\n await this._reload();\r\n }\r\n\r\n private _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContext {\r\n return convertContextFromFrameToRequest(this._context, cancellationToken);\r\n }\r\n\r\n private async _reload(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n if (this._disposed) {\r\n this._owObjectLogger.warn(`Trying to reload already disposed instance '${this.instanceID}' for object '${this.objectName}: ${this.id}'`); //`\r\n return;\r\n }\r\n await this._publishIfNecessary(cancellationToken);\r\n\r\n const data = await OWManager.reloadInstance(this.instanceID, false, this._getRequestContext(cancellationToken));\r\n this._disposeAssociations();\r\n await this._loadData(data, cancellationToken);\r\n this.dataRefreshed.trigger(this, true);\r\n }\r\n\r\n /**\r\n * Pokud současná instance ještě není vypublikovaná, tak ji vypublikuje\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n private async _publishIfNecessary(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n if (this._isPublicObject)\r\n return;\r\n\r\n const publicObjectPath = OWObject._getFullMasterObjAttrName(this);\r\n\r\n await OWManager.publishInstance(publicObjectPath.masterObject.instanceID, publicObjectPath.fullAttrName, this._getRequestContext(cancellationToken));\r\n this._isPublicObject = true;\r\n }\r\n\r\n public waitForPendingUpdates(): Promise<void> {\r\n return this._waitForUpdatesTask;\r\n }\r\n\r\n public enqueuePendingUpdateTask(task: Promise<void>): Promise<void> {\r\n return this._waitForUpdatesTask = this._waitForUpdatesTask.then(() => task);\r\n }\r\n\r\n /**\r\n * Dešifruje objekt a vrací informaci o tom, zda všechno proběhlo v pořádku\r\n */\r\n public async decrypt(cancellationToken: CancellationToken = CancellationToken.none): Promise<boolean> {\r\n if (!this.isClientSideEncrypted)\r\n return true;\r\n\r\n const pwd = await this.getEncryptionKey(cancellationToken);\r\n const tasks: (() => Promise<void>)[] = [];\r\n let decryptionSuccess = false; //true pokud se povedlo dešifrovat alespoň 1 neprázdný atribut.\r\n const changedAttrs: string[] = [];\r\n\r\n for (const [attrName, val] of this._values) {\r\n if (val instanceof IEncAttrValue) {\r\n let v = val; // musí tu být, jinak si s tím prostě kompilátor neporadí a ukazuje špatně odvozené typy po this.getValue\r\n if (v.isEncrypted) {\r\n if (v instanceof DataOnRequest) { // kdyby náhodou nebyla hodnota lazy atributu ještě nikde zobrazená, tak se natáhne pro dešifrování\r\n v = await this.getValue(attrName, cancellationToken) as IEncAttrValue;\r\n }\r\n\r\n //Je potřeba nejprve dešifrovat nějaký neprázdný atribut.\r\n //Teprve až se podaří ověřit heslo vůči neprázdnému atributu, tak mohou být prázdné atributy nastaveny jako dešifrovány.\r\n if (v.hasEncryptedValue) {\r\n if (!(await v.decrypt(pwd))) {\r\n this._encryptionKey = null;\r\n tasks.splice(0);\r\n decryptionSuccess = false;\r\n break; //pokud heslo nesedí, není důvod zpracovávat další atributy\r\n } else {\r\n const attr = this._ciAttrName.get(attrName);\r\n changedAttrs.push(attr);\r\n this.attributeChanged.trigger(this, attr);\r\n decryptionSuccess = true;\r\n }\r\n } else {\r\n //prázdné atributy budou dešifrovány a odemčeny až později, podle toho, jestli se povede dešifrovat nějaký neprázdný atribut.\r\n tasks.push(async () => {\r\n if (await v.decrypt(pwd)) {\r\n const attr = this._ciAttrName.get(attrName);\r\n changedAttrs.push(attr);\r\n this.attributeChanged.trigger(this, attr);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (decryptionSuccess) {\r\n //provede se dešifrování zašifrovaných atributů, které jsou prázdné\r\n await Promise.all(tasks.map(t => t()));\r\n this.objectDecrypted.trigger(this, undefined);\r\n } else if (tasks.length > 0)\r\n this._encryptionLogger.warn(\"Unsupported encryption scenario. All attributes are empty. This could possibly lead to unpredictable behaviour.\");\r\n\r\n this.attributesChanged.trigger(this, changedAttrs);\r\n this._isClientSideEncrypted = !decryptionSuccess;\r\n return decryptionSuccess;\r\n }\r\n\r\n /**\r\n * Vrací název třídy objektu v předané vazbě. Pokud předaný atribut není vazební, vrací null.\r\n * @param attributeName Jméno vazebního atributu, pro který se hledá název třídy\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public getObjectAttributeClass(attributeName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<string | null> {\r\n const pos = attributeName.indexOf(\".\");\r\n if (pos > -1) {\r\n const attrName = attributeName.substring(0, pos);\r\n const value = this._values.get(attrName);\r\n if (value instanceof ObjAttrData) {\r\n const attrName2 = attributeName.substring(pos + 1);\r\n return this._getObject(value, attrName, this, cancellationToken).then((obj1) => obj1.getObjectAttributeClass(attrName2, cancellationToken));\r\n }\r\n return null;\r\n }\r\n\r\n const val = this._values.get(attributeName);\r\n\r\n if (!(val instanceof ObjAttrData))\r\n return Promise.resolve(null);\r\n\r\n return this._getObject(val, attributeName, undefined, cancellationToken).then(() => val.className); // className jinak ještě nemusí být zinicializované, viz _loadAttrData()\r\n }\r\n\r\n public async getAttributeMetadata(attributePath: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<AttributeDescription | null> {\r\n const separatorPosition = attributePath.indexOf(\".\");\r\n\r\n // jde o vazební atribut\r\n if (separatorPosition > -1) {\r\n const attributeName = ObjectUtils.removeTypeCasting(attributePath.substring(0, separatorPosition));\r\n\r\n // primárně chceme najít konkrétního potomka, který může být ve vazbě - jdeme přes jednotlivé objekty uložené ve vazbě\r\n // ale vazba může být prázdná (nebo ji nemáme právo číst)\r\n const attributeValue = this._values.get(attributeName);\r\n const remainingAttributePath = attributePath.substring(separatorPosition + 1);\r\n\r\n if (attributeValue instanceof ObjAttrData) {\r\n const nextObjectOnPath = await this._getObject(attributeValue, attributeName, this, cancellationToken);\r\n if (nextObjectOnPath == null || nextObjectOnPath instanceof NullOWObject)\r\n return null;\r\n\r\n return await nextObjectOnPath.getAttributeMetadata(remainingAttributePath, cancellationToken);\r\n } else {\r\n const staticAttributeMetadata = await this.classInfo?.getAttributeInfo(attributePath);\r\n if (!staticAttributeMetadata) {\r\n //throw new EOWException(`Attribute path \"${attributePath}\" on \"${this.objectName}\" not found!`); //`\r\n this._owObjectLogger.warn(`Attribute path \"${attributePath}\" on \"${this.objectName}\" not found!`);\r\n return null;\r\n }\r\n\r\n return staticAttributeMetadata;\r\n }\r\n }\r\n\r\n // jde o obyčejný nevazební atribut\r\n return await this.classInfo?.getAttributeInfo(attributePath) ?? null;\r\n }\r\n\r\n /**\r\n * Načte data do objektu\r\n * @param data data objektu\r\n * @params dontReloadEncryptedAttrValues Příznak, že se nemají obnovovat zašifrované atributy\r\n */\r\n private _loadData(data: IOWObjectForTransfer, cancellationToken: CancellationToken = CancellationToken.none, triggerAttrChanged: boolean = true, dontReloadEncryptedAttrValues: boolean = false, changedAttribute: string = undefined, fullPathChangedAttrs: Array<string> = [], originalValue: any = undefined, previousAttributePath: string = undefined): Promise<OWObject> {\r\n cancellationToken.throwIfCancellationRequested();\r\n this._clearRightsCaches();\r\n\r\n return new Promise(async (resolve, reject) => {\r\n this._objectIdentity = data.ObjectIdentity;\r\n\r\n // ReSharper disable DoubleNegationOfBoolean\r\n this._isServerSideEncrypted = !!data.isEncrypted;\r\n this._isEncryptionFinalized = !!data.isEncryptionFinalized;\r\n\r\n this._canEdit = !!data.CanEdit;\r\n this._canDelete = !!data.CanDelete;\r\n // ReSharper restore DoubleNegationOfBoolean\r\n\r\n const encKey = this.isServerSideEncrypted && !this.isEncryptionFinalized ? await this.getEncryptionKey() : null;\r\n this._isClientSideEncrypted = this.isEncryptionFinalized || (!this.isNew && this.isServerSideEncrypted && encKey == null);\r\n\r\n this._roleIds = data.RoleIDs;\r\n this._editRoleIds = data.EditIDs;\r\n this._deleteRoleIds = data.DeleteIDs;\r\n\r\n this._createAttrChangeCycle = data.CreateAttrChangeCycle;\r\n this._attrChangeCycle = data.AttrChangeCycle;\r\n\r\n this.isChanged = this._attrChangeCycle > this._createAttrChangeCycle;\r\n this._isCopy = data.isCopy ?? false;\r\n this._isVersioned = data.isVersioned ?? false;\r\n this._workflowId = data.WorkflowID;\r\n\r\n const promises = new Array<Promise<OWObject>>();\r\n const changedAttrs = new Array<string>();\r\n const isRootObject = fullPathChangedAttrs.length === 0; // Prázdné je to jenom v případě prvního volání zvenku, pro kořenový atribut.\r\n\r\n for (const attr of data.AttrData) {\r\n this._loadAttrData(attr, promises, changedAttrs, fullPathChangedAttrs, triggerAttrChanged, cancellationToken, dontReloadEncryptedAttrValues, encKey, changedAttribute, originalValue, previousAttributePath);\r\n }\r\n\r\n if (promises.length) {\r\n Promise.all(promises).then(() => {\r\n resolve(this);\r\n\r\n if (isRootObject) {\r\n const mergedChangedAttrs = changedAttrs.concat(fullPathChangedAttrs);\r\n\r\n if (mergedChangedAttrs.length > 0) {\r\n this.attributesChanged.trigger(this, mergedChangedAttrs);\r\n }\r\n } else if (changedAttrs.length > 0) {\r\n this.attributesChanged.trigger(this, changedAttrs);\r\n }\r\n }).catch(e => reject(e));\r\n } else {\r\n resolve(this);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Načte pouze specifické vyjmenované atributy a odstraní je z předané kolekce AttrData\r\n * @param objectData Data k načtení\r\n * @param cancellationToken Token umožňující zrušení promisu\r\n * @param attributeNames Názvy atributů, které se mají načíst\r\n */\r\n private async _loadSpecificAttributes(objectData: IOWObjectForTransfer, cancellationToken: CancellationToken, ...attributeNames: string[]): Promise<void> {\r\n const names = attributeNames.filter((attr) => attr).map((attr) => attr.toUpperCase());\r\n const promises: Promise<OWObject>[] = [];\r\n const changedAttrs: Array<string> = [];\r\n objectData.AttrData.filter((attrData) => names.find((attrName) => attrName === attrData.Name.toUpperCase()) != null).forEach((attrData) => {\r\n this._loadAttrData(attrData, promises, changedAttrs, [], false, cancellationToken);\r\n objectData.AttrData.splice(objectData.AttrData.indexOf(attrData), 1);\r\n });\r\n\r\n await Promise.all(promises);\r\n\r\n if (changedAttrs.length > 0) {\r\n this.attributesChanged.trigger(this, changedAttrs);\r\n }\r\n }\r\n\r\n /**\r\n * Provede úvodní konfiguraci nového záznamu z vazby\r\n * @param obj Inicializovaný objekt\r\n * @param masterAttribute Atribut, ve kterém leží na master objektu\r\n */\r\n private _initNewChildObject(obj: OWObject, masterAttribute: string): void {\r\n obj._parentObject = this;\r\n obj._attributeOnParentObject = masterAttribute;\r\n }\r\n\r\n private _loadAttrData(attrData: IAttrDataForTransfer, promises: Promise<OWObject>[], changedAttrs: string[], fullPathChangedAttrs: Array<string>, triggerAttrChanged: boolean, cancellationToken: CancellationToken, dontReloadEncryptedAttrValues: boolean = false, encKey: CryptoKey | null = null, changedAttribute: string = undefined, originalValue: any = undefined, previousAttributePath: string = undefined): Promise<void> {\r\n const cts = new CancellationTokenSource([cancellationToken]);\r\n try {\r\n let value: IAttrValue;\r\n const aName: string = attrData.Name;\r\n let forceAttrChange = false;\r\n const prom = this.classInfo.getAttributeInfo(aName).then(async (aInfo) => {\r\n let result: any = null;\r\n let canFireEvent = true;\r\n let addToFullPathChangedAttrs = true;\r\n\r\n if (aInfo.basicType === BasicDataType.OWObject) {\r\n if (this._disposed || cancellationToken.cancellationRequested)\r\n return Promise.resolve();\r\n\r\n let oad = new ObjAttrDataInternal();\r\n const newAttributePath = previousAttributePath ? (previousAttributePath + \".\" + aName) : aName;\r\n\r\n if (attrData.FullObject || (attrData.InstanceID && InstanceManager.getInstance(attrData.InstanceID))) {\r\n if (attrData.FullObject) {\r\n const rawObj = attrData.Value as IOWObjectForTransfer;\r\n oad.className = rawObj.ClassName;\r\n oad.instanceID = rawObj.InstanceID;\r\n oad.id = rawObj.AttrData.find(attr => attr.Name === \"ID\").Value?.toString();\r\n } else {\r\n oad.className = attrData.ClassName;\r\n oad.instanceID = attrData.InstanceID;\r\n oad.id = attrData.Value?.toString();\r\n }\r\n\r\n const existingInstance = InstanceManager.getInstance(oad.instanceID);\r\n if (existingInstance) {\r\n this._owObjectLogger.debug(`Reusing instance: ${existingInstance.instanceID} of class '${existingInstance.objectName}' and id ${existingInstance.id} in association '${aName}' of instance ${this.instanceID} of class '${this.objectName}' and id ${this.id}`);\r\n InstanceManager.addInstanceUsage(existingInstance); // zvýší počet referencí nezbytný pro správné uvolňování instancí\r\n\r\n oad.object = (async () => {\r\n let obj: OWObject;\r\n // pokud přijatá data obsahují novější změny, tak se jimi nahradí stávající hodnoty atributů\r\n if ((attrData.Value as IOWObjectForTransfer).AttrChangeCycle > existingInstance._attrChangeCycle) {\r\n addToFullPathChangedAttrs = false;\r\n obj = await existingInstance._loadData(attrData.Value, cancellationToken, true, false, undefined, fullPathChangedAttrs, undefined, newAttributePath);\r\n } else {\r\n obj = existingInstance;\r\n }\r\n this._initNewChildObject(obj, aName);\r\n return obj;\r\n })();\r\n } else {\r\n oad.object = OWObject.createObject(attrData.Value, false, this._context, (obj) => this._initNewChildObject(obj, aName), cancellationToken);\r\n }\r\n\r\n oad.object = oad.object.then(obj => {\r\n if (this._disposed || cancellationToken.cancellationRequested) {\r\n obj.dispose();\r\n oad.object = undefined;\r\n } else {\r\n oad.loaded = true;\r\n\r\n if (obj._parentObject === undefined) {\r\n obj._parentObject = this;\r\n obj._attributeOnParentObject = aName;\r\n }\r\n\r\n oad.loadedInstance = obj;\r\n }\r\n return obj;\r\n }).catch(err => {\r\n oad.object = undefined;\r\n throw err;\r\n });\r\n\r\n if (this._values.has(aName)) {\r\n const previousValue = this._values.get(aName) as ObjAttrDataInternal;\r\n // pokud se mění instance ve vazbě na jinou, tak je nutné tu původní uvolnit\r\n if (previousValue.instanceID !== oad.instanceID)\r\n this._disposeInstanceAttrData(previousValue);\r\n }\r\n\r\n result = value = oad;\r\n } else if (attrData.OnlyChanges) {\r\n oad = value = this._values.get(aName) as ObjAttrDataInternal;\r\n if (oad.object) { // oad.object může být undefined (viz následující else blok)\r\n addToFullPathChangedAttrs = false;\r\n result = oad.object.then((obj) => obj._loadData(attrData.Value, cancellationToken, true, false, undefined, fullPathChangedAttrs, undefined, newAttributePath));\r\n canFireEvent = !!(attrData.Value as IOWObjectForTransfer).AttrData.length; // Vyvolávat událost o změně jen pokud se změnily nějaké atributy.\r\n } else if (attrData.ClassName !== undefined) { // pokud není className, tak se jedná o nedočtený objekt (pravděpodobně kompozit)\r\n oad.className = attrData.ClassName;\r\n oad.id = attrData.Value?.toString();\r\n }\r\n } else {\r\n oad = new ObjAttrDataInternal();\r\n oad.className = attrData.ClassName;\r\n oad.id = attrData.Value?.toString();\r\n value = oad;\r\n\r\n if (this._values.has(aName)) {\r\n const previousValue = this._values.get(aName) as ObjAttrDataInternal;\r\n this._disposeInstanceAttrData(previousValue);\r\n }\r\n }\r\n } else {\r\n if (attrData.DataOnRequest) {\r\n const bda = new DataOnRequest(attrData.IsEncrypted);\r\n value = bda;\r\n } else if (attrData.IsEncrypted) {\r\n if (!dontReloadEncryptedAttrValues || (!aInfo.supportsEncValue && this.isClientSideEncrypted)) {\r\n const deser = await this.getSerializers(aInfo);\r\n const deserializer = (aInfo.basicType === BasicDataType.Document)\r\n ? (v: any) => {\r\n const { fullAttrName, masterObject } = OWObject._getFullMasterObjAttrName(this, aName);\r\n return SerializeFuncs.deserializeOWDocument(v, masterObject.instanceID, fullAttrName);\r\n }\r\n : (deser && deser.deserializer ? deser.deserializer : undefined);\r\n\r\n value = new EncAttrValue(attrData.Value, !aInfo.supportsEncValue, aInfo.defaultValue, deserializer);\r\n\r\n // pokud už existuje vhodný dešifrovací klíč, tak se hodnota rovnou dešifruje\r\n if (encKey)\r\n await (value as IEncAttrValue).decrypt(encKey);\r\n } else { // pokud nechci obnovovat hodnotu zašifrovaného atributu\r\n // Zašifrovanou hodnotu vrácenou ze serveru nebudu nastavovat, bylo by zbytečné ji hned zase rozšifrovávat.\r\n // Nastavím pouze v případě, že přišla prázdná hodnota - např. byla vymazána apl. logikou.\r\n if (attrData.Value === \"\") {\r\n value = \"\"; // nastavím prázdnou, pokud byla úplně odstraněna\r\n } else if (!aInfo.supportsEncValue) { // pokud atribut nepodporuje šifrované hodnoty, tak přichází rovnou otevřená hodnota\r\n value = attrData.Value;\r\n } else {\r\n if (!this._tempDecryptedValues.has(aName)) {\r\n this._owObjectLogger.warn(`Missing decrypted temporary \"${aName}\" attribute value. Possibly caused by loading same decrypted attribute multiple times.`); // `\r\n return result;\r\n }\r\n value = this._tempDecryptedValues.get(aName); // jinak ponechám původní hodnotu\r\n this._tempDecryptedValues.delete(aName);\r\n }\r\n }\r\n } else if (attrData.Value && (aInfo.basicType === BasicDataType.Document)) {\r\n const { fullAttrName, masterObject } = OWObject._getFullMasterObjAttrName(this, aName);\r\n value = SerializeFuncs.deserializeOWDocument(attrData.Value, masterObject.instanceID, fullAttrName);\r\n } else {\r\n const deser = await this.getSerializers(aInfo);\r\n value = deser && deser.deserializer ? deser.deserializer(attrData.Value) : attrData.Value;\r\n\r\n if (changedAttribute && originalValue && changedAttribute == aName) {\r\n // TODO: porovnávat deserializované hodnoty, momentálně takto kvůli porovnávání localizedTextů\r\n forceAttrChange = originalValue != attrData.Value;\r\n }\r\n\r\n if (aName.toUpperCase() === \"ID\") {\r\n // tyto vlastnosti je vhodné mít načtené už před vyvoláváním AttributeChanged\r\n this._id = value?.toString() ?? null;\r\n }\r\n }\r\n }\r\n\r\n // pokud jiz prvek existuje a je shodny zakazeme volani udalosti, protoze je zbytecna\r\n // pokud jde o agregovany objekt (composite nebo shared) je potreba udalost vyvolat\r\n if (triggerAttrChanged && this._values.has(aName) && OWObject._attributeValueComparer(this._values.get(aName), value) && !(aInfo.basicType === BasicDataType.OWObject && (aInfo as IOWClassAttributeDescription).aggregation !== Aggregation.none)) {\r\n canFireEvent = false;\r\n } else {\r\n this._values.set(aName, value);\r\n this._ciAttrName.set(aName, aName);\r\n }\r\n\r\n this._updatingAttrs.splice(this._updatingAttrs.findIndex(rau => rau.task === prom));\r\n if ((triggerAttrChanged && canFireEvent) || forceAttrChange) {\r\n if (addToFullPathChangedAttrs && previousAttributePath) {\r\n fullPathChangedAttrs.push(previousAttributePath + \".\" + aName);\r\n }\r\n\r\n changedAttrs.push(aName);\r\n this.attributeChanged.trigger(this, aName);\r\n if (this.relationAttributeChanged.containsAnyListener()) {\r\n this._triggerRelationAttributeChangedOnTree(attrData);\r\n }\r\n }\r\n return result;\r\n }).catch((e: Error) => {\r\n this._updatingAttrs.splice(this._updatingAttrs.findIndex(rau => rau.task === prom));\r\n throw e;\r\n });\r\n promises.push(prom);\r\n this._updatingAttrs.push({ task: prom, cts: cts });\r\n return prom;\r\n } catch (e) {\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n /** Vyvolá relationAttributeChanged rekurzivně na všech změněných atributech. V jejich názvech zachovává informace o všech vazbách. */\r\n private _triggerRelationAttributeChangedOnTree(data: IAttrDataForTransfer, name: string = \"\"): void {\r\n const resultAttrName = (name === \"\") ? data.Name : `${name}.${data.Name}`;\r\n if (data.Type === \"OWObject\" && data.Value?.AttrData) {\r\n data.Value.AttrData?.forEach ((attr: IAttrDataForTransfer) => this._triggerRelationAttributeChangedOnTree(attr, resultAttrName));\r\n } else {\r\n this.relationAttributeChanged.trigger(this, resultAttrName);\r\n }\r\n }\r\n\r\n private _disposeInstanceAttrData(instanceData: ObjAttrDataInternal): void {\r\n if (instanceData.loadedInstance != null)\r\n instanceData.loadedInstance.dispose();\r\n else if (instanceData.object != null)\r\n instanceData.object.then(o => o.dispose());\r\n }\r\n\r\n /**\r\n * Porovna hodnoty dvou atributu\r\n * @param val1 Atribut 1\r\n * @param val2 Atribut 2\r\n */\r\n private static _attributeValueComparer(val1: IAttrValue, val2: IAttrValue): boolean {\r\n if (val1 == null && val2 == null) return true;\r\n if (val1 == null || val2 == null) return false;\r\n\r\n if (val1 instanceof IComparable && val2 instanceof IComparable) return val1.compare(val2);\r\n\r\n const v1of = val1.valueOf();\r\n const v2of = val2.valueOf();\r\n\r\n if (typeof v1of !== typeof v2of) return false;\r\n if (v1of instanceof NullOWObject && v2of instanceof NullOWObject) return true;\r\n if (v2of instanceof Date && v1of instanceof Date) return v2of.toString() === v1of.toString();\r\n if (v1of instanceof IComparable && v2of instanceof IComparable) return v1of.compare(v2of);\r\n\r\n return v1of === v2of;\r\n }\r\n\r\n public compare(value: any): boolean {\r\n if (value instanceof IOWObject) {\r\n return this._attrChangeCycle == (value as OWObject)._attrChangeCycle && this.instanceID == value.instanceID;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Nalezne první nadřízený záznam, který je vypublikovaný a vrátí ho spolu s cestou z něj na předanou instanci\r\n * @param object Instance, ke které se hledá vypublikovaná cesta\r\n * @param attribute Volitelný atribut na předané instanci, který se přidá na konec nalezené cesty\r\n */\r\n private static _getFullMasterObjAttrName(object: OWObject, attribute?: string): { fullAttrName: string; masterObject: OWObject } {\r\n let fullAttrName = attribute;\r\n let masterObject = object;\r\n let i = 0; // kontrolni zarazka\r\n\r\n while (!masterObject._isPublicObject && masterObject._parentObject != null && i++ < 50) {\r\n const attr = masterObject._attributeOnParentObject.split(\".\");\r\n const appendAttrName = (attr.length > 1 ? attr[attr.length - 1] : masterObject._attributeOnParentObject);\r\n //const masterId = `${masterObject.instanceID}|${appendAttrName}`;//`\r\n\r\n //fullAttrName = (attr.length > 1 ? attr[1] : masterObject.attributeOnParentObject) + \".\" + fullAttrName;\r\n fullAttrName = fullAttrName ? `${appendAttrName}.${fullAttrName}` : appendAttrName;//`\r\n\r\n masterObject = masterObject._parentObject;\r\n }\r\n\r\n return { fullAttrName: fullAttrName, masterObject: masterObject };\r\n }\r\n\r\n /**\r\n * Provede serverovou validaci objektu. Pokud jsou nalezeny nějaké validační chyby, tak jsou vyhozeny jako validační výjimka.\r\n */\r\n public validate(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n return OWManager.validateObject(this.instanceID, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n /**\r\n * Provede serverovou odlozenou validaci objektu. Pokud jsou nalezeny nějaké validační chyby, tak jsou vyhozeny jako validační výjimka.\r\n */\r\n public postponedValidate(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n return OWManager.postponedValidateObject(this.instanceID, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n /**\r\n * Interní metoda pro vrácení hodnoty atributu. Je možné vypnout čekání na update hodnot - používat opatrně.\r\n * @param attributePath Název atributu, může obsahovat i cestu přes vazební atributy (přes tečky)\r\n * @param skipWaitForUpdateInstance Pokud je true, nečeká se na doběhnutí aktualizace hodnot\r\n */\r\n private async _getValue(attributePath: string, skipWaitForUpdateInstance = false, cancellationToken: CancellationToken = CancellationToken.none): Promise<IAttrValue> {\r\n if (!attributePath)\r\n throw new InvalidArgumentException(\"Trying to load unspecified attribute\");\r\n\r\n // pokud prave probiha nejaky update hodnot, tak je potreba pockat na jeho dobehnuti, abychom cetli z instance v konzistentnim stavu\r\n if (skipWaitForUpdateInstance === false)\r\n await this.waitForUpdateInstance(cancellationToken);\r\n\r\n const separatorPosition = attributePath.indexOf(\".\");\r\n const attributeName = separatorPosition > -1 ? attributePath.substring(0, separatorPosition) : attributePath;\r\n\r\n const [attributeNameWithoutTypeCast, typecastingClass] = StringUtils.splitFirst(attributeName, \"|\");\r\n let attributeValue = this._values.get(attributeNameWithoutTypeCast);\r\n\r\n if (attributeValue === undefined) {\r\n if (attributeNameWithoutTypeCast === \"IsNew\")\r\n attributeValue = this.isNew;\r\n else if (attributeNameWithoutTypeCast === \"IsNewCopy\")\r\n attributeValue = this.isNew && this.isCopy;\r\n else if (attributeNameWithoutTypeCast === \"IsVersioned\")\r\n attributeValue = this.isVersioned;\r\n else {\r\n // na klientovi není hodnota takového atributu dostupná, tak zkontrolujeme, jestli vůbec atribut existuje v definici třídy\r\n // pokud by atribut vůbec neexistoval, tak vznikne výjimka\r\n const attrDesc = await this.classInfo.getAttributeInfo(attributeNameWithoutTypeCast);\r\n if (!attrDesc)\r\n this._owObjectLogger.warn(`Attribute \"${attributeNameWithoutTypeCast}\" was not found on ${this.objectName} - can't find attribute ${attributePath}!`);\r\n // jinak víme, že existuje, ale neznáme jeho hodnotu\r\n return undefined;\r\n }\r\n }\r\n\r\n if (attributeValue instanceof ObjAttrData && !StringUtils.isNullOrEmpty(typecastingClass) && attributeValue.className != typecastingClass) {\r\n this._owObjectLogger.warn(`Invalid typecasting on attribute '${attributeNameWithoutTypeCast}'. Got ${attributeValue.className}, expected ${typecastingClass}.`);\r\n //throw new InvalidTypeCasting(attributeNameWithoutTypeCast, typecastingClass, attributeValue.className);\r\n }\r\n\r\n // jde o vazební atribut\r\n if (separatorPosition > -1) {\r\n if (attributeValue instanceof ObjAttrData) {\r\n const remainingAttributePath = attributePath.substring(separatorPosition + 1);\r\n const nextObjectOnPath = await this._getObject(attributeValue, attributeNameWithoutTypeCast, this, cancellationToken);\r\n\r\n return await nextObjectOnPath.getValue(remainingAttributePath, cancellationToken); // rekurze\r\n } else\r\n throw new EOWException(`Attribute \"${attributeNameWithoutTypeCast}\" on ${this.objectName} is not an object attribute - can't find attribute ${attributePath}!`); //`\r\n } else {\r\n if (attributeValue instanceof ObjAttrData) {\r\n return await this._getObject(attributeValue, attributeNameWithoutTypeCast, this, cancellationToken);\r\n } else if (attributeValue instanceof DataOnRequest)\r\n return await this._getDataOnRequest(attributeNameWithoutTypeCast, cancellationToken);\r\n else\r\n return attributeValue;\r\n }\r\n }\r\n\r\n public getValue(attributeName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<IAttrValue | undefined> {\r\n return this._getValue(attributeName, undefined, cancellationToken);\r\n }\r\n\r\n /**\r\n * Vrací hodnotu atributu pro vyhodnocování podmínek - object s ID = 0 je vrácen jako null\r\n * !!! Tuto metodu používají podmínky práv generované serverem !!!\r\n * @param attributeName Název atributu\r\n */\r\n public async getValueForCondition(attributeName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n const attrValue = await this.getValue(attributeName, cancellationToken);\r\n const resultValue = attrValue ? attrValue.valueOf() : attrValue;\r\n\r\n if (resultValue instanceof NullOWObject)\r\n return null; //asi nejakou chybou NullOWObject nema nastaveno ID na 0\r\n\r\n if (resultValue instanceof OWObject) {\r\n if (resultValue.id === \"0\" && !resultValue.isNew)\r\n return null;\r\n else\r\n return resultValue.id;\r\n }\r\n\r\n if (resultValue instanceof Enum)\r\n return Number(resultValue);\r\n\r\n return resultValue;\r\n }\r\n\r\n // pomocna promena pro to aby se zabranilo volani metody GetAttributesValues vickrat pro jeden atribut\r\n private _loadingAttributeInProcess: Map<string, Promise<IAttrValue>> = new Map();\r\n\r\n private async _getDataOnRequest(attributeName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<IAttrValue> {\r\n let loadProcess = this._loadingAttributeInProcess.get(attributeName);\r\n // neco jak zamek, bez zdrzovani - bezne nastava ze se klient pokousi z nekolika mist cist ten samy atribut, tak aby se GetAttributesValues nevolalo vickrat\r\n if (!loadProcess) {\r\n loadProcess = (async (attrName) => {\r\n const data = await OWManager.getAttributesValues(this.instanceID, [attrName], false, this._getRequestContext((cancellationToken)));\r\n await this._loadData(data, cancellationToken, false); // při čtení hodnoty by se _loadData() nemělo chovat standardně a nemělo by vyvolávat událost změny atributu, protože šlo jen o čtení a ne o změnu\r\n return await this.getValue(attrName, cancellationToken);\r\n })(attributeName);\r\n this._loadingAttributeInProcess.set(attributeName, loadProcess);\r\n loadProcess.then(() => this._loadingAttributeInProcess.delete(attributeName));\r\n }\r\n /*\r\n else\r\n this._owObjectLogger.log(`attribute ${attributeName} is loading.`);\r\n */\r\n return loadProcess;\r\n }\r\n\r\n public getValues(attrNames: string[], cancellationToken: CancellationToken = CancellationToken.none): Promise<IAttrValue[]> {\r\n return new Promise<any[]>(resolve => {\r\n const arr: IAttrValue[] = [];\r\n const prm: any[] = [];\r\n let i = 0;\r\n const fn = (promise: Promise<IAttrValue>, index: number): Promise<IAttrValue> => {\r\n return promise.then((v) => {\r\n arr[index] = v;\r\n return v;\r\n });\r\n };\r\n for (const attrName of attrNames) {\r\n prm.push(fn(this.getValue(attrName, cancellationToken), i++));\r\n }\r\n\r\n Promise.all(prm).then(() => {\r\n resolve(arr);\r\n });\r\n });\r\n }\r\n\r\n public getParameters(attributes: readonly string[], cancellationToken: CancellationToken = CancellationToken.none): Promise<ConditionParams> {\r\n if (attributes == null)\r\n return null;\r\n\r\n const promises = new Array<Promise<ConditionParam>>();\r\n for (const attr of attributes) {\r\n const prom = this.getValue(attr, cancellationToken).then((value) => {\r\n value = AttrValueReader.read(value);\r\n\r\n if (value instanceof Date) {\r\n return DateUtils.toXsdDateTime(value);\r\n }\r\n if (value instanceof Enum) {\r\n return Number(value);\r\n }\r\n if (value instanceof NullOWObject)\r\n return null;\r\n\r\n if (value instanceof IOWObject)\r\n return value.id;\r\n\r\n return value;\r\n });\r\n promises.push(prom);\r\n }\r\n\r\n return Promise.all(promises);\r\n }\r\n\r\n public waitForUpdateInstance(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n cancellationToken.register(() => this.cancelUpdatesInProgress());\r\n return Promise.all(this._updatingAttrs.map(rau => rau.task)).then(_ => undefined);\r\n }\r\n\r\n public async setValues(attributes: IChangedAttr[], cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n const cts = new CancellationTokenSource([cancellationToken]);\r\n const patchData = new Array<any>();\r\n let changingObject: OWObject = undefined;\r\n let attributeName: string;\r\n let resultObj;\r\n\r\n for (const attribute of attributes) {\r\n attributeName = attribute.attributeName;\r\n const ai = await this.getAttributeMetadata(attribute.attributeName, cts.token);\r\n\r\n if (!this._parentObject) {\r\n const fn = OWObject._getFullMasterObjAttrName(this, attribute.attributeName);\r\n changingObject = fn.masterObject;\r\n attributeName = fn.fullAttrName;\r\n }\r\n\r\n patchData.push({\r\n value: await this._serialize(ai, attributeName, attribute.value),\r\n attributeName: attribute.attributeName,\r\n });\r\n }\r\n\r\n try {\r\n const setResult = await this._patchObject(changingObject || this, patchData.map(x => x.value), undefined, cts.token);\r\n for (const data of patchData) {\r\n resultObj = await this._loadData(setResult, cts.token, undefined, true, data.attributeName, [], data.value);\r\n }\r\n } catch (error) {\r\n ErrorHandler.instance.handleError(error);\r\n }\r\n\r\n return resultObj;\r\n }\r\n\r\n private async _serialize(ai: AttributeDescription, attributeName: string, value: any): Promise<IOWObjectJsonPatchDTO> {\r\n if (ai == null)\r\n return Promise.reject(new EOWException(`Class ${this.objectName} doesn't contain attribute ${attributeName}!`)); //`\r\n\r\n let serializedValue: any;\r\n let isValueEncrypted: boolean = false;\r\n if (value == null) {\r\n serializedValue = null;\r\n } else {\r\n const serializer = await this.getSerializers(ai);\r\n\r\n //jeste se to bude resit jak se bude hodnota posilat, zatim musi byt vse v JSON/XML formatu v retezci\r\n serializedValue = serializer && serializer.serializer ? serializer.serializer(value, this._values.get(attributeName)) : value; // serializace\r\n serializedValue = typeof serializedValue === \"string\" ? serializedValue : JSON.stringify(serializedValue);\r\n\r\n if (this.isServerSideEncrypted && ai.supportsEncValue && ai.encryptingAllowed) {\r\n if (this.isEncryptionFinalized)\r\n throw new InvalidOperationException(\"OWObject: Cannot set attribute value on finalized encrypted object.\");\r\n\r\n this._tempDecryptedValues.set(attributeName, value); // v odpovědi vrací server zašifrovanou hodnotu, takže si ji zde uchovám pro nastavení po přijetí serverem\r\n\r\n const encryptionKey = await this.getEncryptionKey(); // vlastní osoleny cryptokey\r\n const encryptedValue = await SecurityUtils.encryptString(serializedValue, encryptionKey); // zašifrování\r\n serializedValue = DataConverter.bufferToBase64(encryptedValue); // zašifrované pole na b64\r\n isValueEncrypted = true;\r\n }\r\n }\r\n\r\n if (serializedValue != null)\r\n serializedValue = typeof serializedValue === \"string\" ? serializedValue : JSON.stringify(serializedValue);\r\n\r\n return { op: (isValueEncrypted ? \"setEncryptedValue\" : \"setValue\"), name: attributeName, value: serializedValue };\r\n }\r\n\r\n public async setValue(attributeName: string, value: any, cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n const cts = new CancellationTokenSource([cancellationToken]);\r\n try {\r\n const promise = this.setValues([{ attributeName: attributeName, value: value }], cancellationToken).then(async (resultObj): Promise<OWObject> => {\r\n this._updatingAttrs.splice(this._updatingAttrs.findIndex(rau => rau.task === promise));\r\n this.valueSet.trigger(this,\r\n {\r\n attributeName,\r\n value: this._values.get(attributeName),\r\n });\r\n return resultObj;\r\n }).catch((e: Error) => {\r\n this._updatingAttrs.splice(this._updatingAttrs.findIndex(rau => rau.task === promise));\r\n throw e;\r\n });\r\n this._updatingAttrs.push({ task: promise, cts: cts });\r\n return promise;\r\n } catch (e) {\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private _addItemToHistory(patchData: IOWObjectJsonPatchDTO): void {\r\n if (this._changeHistory.length - 1 > this._historyPosition)\r\n this._changeHistory = this._changeHistory.slice(0, this._historyPosition + 1);\r\n this._changeHistory.push(patchData);\r\n this._historyPosition++;\r\n }\r\n\r\n private _patchObject(obj: OWObject, patchDatas: IOWObjectJsonPatchDTO[], withoutBigData: boolean = true, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n patchDatas.forEach(patchData => {\r\n obj._addItemToHistory(patchData);\r\n });\r\n return OWManager.patchObject(obj.instanceID, patchDatas, withoutBigData, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n public async undo(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n if (this._historyPosition < 0)\r\n return;\r\n\r\n this._historyPosition--;\r\n await this.reload(cancellationToken); // vyřešit u nového objektu\r\n if (this._historyPosition > -1) {\r\n const setResult = await OWManager.patchObject(this.instanceID, this._changeHistory.slice(0, this._historyPosition + 1), undefined, this._getRequestContext(cancellationToken));\r\n /*const resultObj = */await this._loadData(setResult, cancellationToken, undefined, true);\r\n }\r\n }\r\n\r\n public async redo(cancellationToken: CancellationToken = CancellationToken.none): Promise<void> {\r\n if (this._changeHistory.length - 1 === this._historyPosition)\r\n return;\r\n\r\n this._historyPosition++;\r\n const setResult = await OWManager.patchObject(this.instanceID, [this._changeHistory[this._historyPosition]], undefined, this._getRequestContext(cancellationToken));\r\n /*const resultObj = */await this._loadData(setResult, cancellationToken, undefined, true);\r\n }\r\n\r\n /**\r\n * Načte vazbu - pokud ji už má nebo se načítá, tak vrací ji, jinak novou\r\n * @param {dataType} popis neznameho atributu mel by byt u parent\r\n * @param value popis value\r\n * @param attribute popis attribute\r\n */\r\n private async _getObject(value: ObjAttrData, attribute: string, parent?: OWObject, cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n if (this._disposed)\r\n return new NullOWObject();\r\n\r\n const fn = OWObject._getFullMasterObjAttrName(parent || this, attribute);\r\n\r\n const releaser = await this._getAssociationLoadingLock(fn.fullAttrName).lock();\r\n try {\r\n if (value.object) {\r\n try {\r\n return await value.object;\r\n } catch (e) {\r\n PromiseUtils.cancellationCatch(e); // pokud je načítání vazby cancelled, tak se pokračuje novým standardním načtení\r\n }\r\n }\r\n\r\n return await this._loadAssociation(value as ObjAttrData & ILoadedAssociationInternal, fn.masterObject.instanceID, fn.fullAttrName, parent, cancellationToken);\r\n } finally {\r\n releaser.release();\r\n }\r\n }\r\n\r\n private _getAssociationLoadingLock(attributeName: string): AsyncLock {\r\n if (this._associationLoadingLocks.has(attributeName))\r\n return this._associationLoadingLocks.get(attributeName);\r\n\r\n const lock = new AsyncLock();\r\n this._associationLoadingLocks.set(attributeName, lock);\r\n return lock;\r\n }\r\n\r\n /**\r\n * Spustí načtení vazby ze služby\r\n */\r\n private async _loadAssociation(value: ObjAttrData & ILoadedAssociationInternal, parentInstanceId: string, attributeName: string, parent?: OWObject, cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n if (!HasPositiveID(value.id))\r\n return new NullOWObject();\r\n\r\n const initFunc = (obj: OWObject) => {\r\n if (obj._parentObject === undefined && parent) {\r\n obj._parentObject = parent;\r\n obj._attributeOnParentObject = attributeName;\r\n }\r\n\r\n value.instanceID = obj.instanceID;\r\n value.loadedInstance = obj;\r\n };\r\n\r\n value.object = OWManager.getAttributeObject(parentInstanceId, attributeName, initFunc, this._getRequestContext(cancellationToken)).catch(err => {\r\n value.object = undefined;\r\n throw err;\r\n });\r\n\r\n const obj = await value.object;\r\n\r\n value.loaded = true;\r\n if (this._disposed) //pokud byl rodič objektu už odstraněn, odstraní i nově vytvořený. Předejde tak tomu, aby se zbytečně držela instance, která už nikdy nebude použita.\r\n obj.dispose();\r\n\r\n return obj;\r\n }\r\n\r\n public async getLinkNamesForInstance(instanceID: string): Promise<string[]> {\r\n const foundKeys: string[] = [];\r\n const visitedObjects: string[] = [];\r\n await this._getLinkNamesForInstance(instanceID, this, undefined, foundKeys, visitedObjects);\r\n return foundKeys;\r\n }\r\n\r\n private async _getLinkNamesForInstance(instanceID: string, obj: OWObject, keyPrefix: string, foundLinks: string[], visitedObjects: string[], recursive: boolean = true): Promise<void> {\r\n //musí se ale pohlídat aby si uměl poradit s cyklickou vazbou a nekontroloval které objekty už procházel.\r\n if (!instanceID || visitedObjects.indexOf(obj.instanceID) > -1)\r\n return;\r\n visitedObjects.push(obj.instanceID);\r\n\r\n for (const [k, val] of obj._values.entries()) {\r\n if (val instanceof ObjAttrData) {\r\n const key = keyPrefix ? `${keyPrefix}.${k}` : k; //`\r\n if (val.instanceID === instanceID) {\r\n foundLinks.push(key);\r\n }\r\n if (recursive && val.loaded)\r\n await this._getLinkNamesForInstance(instanceID, (await val.object), key, foundLinks, visitedObjects);\r\n }\r\n }\r\n }\r\n\r\n public async delete(cancellationToken: CancellationToken = CancellationToken.none): Promise<IResultMessage[]> {\r\n if (!this.isNew) {\r\n const result = await OWManager.objectDelete(this.instanceID, this._getRequestContext(cancellationToken));\r\n\r\n if (result.length === 0) {\r\n this.deleted.trigger(this, undefined);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return Promise.resolve([]);\r\n }\r\n\r\n public async applyUpdates(cancellationToken: CancellationToken = CancellationToken.none): Promise<IResultMessage[]> {\r\n if (!this.isChanged && !this.isNew)\r\n return [];\r\n else {\r\n await this.waitForUpdateInstance(cancellationToken);\r\n this.beforeSave.trigger(this, undefined);\r\n const wasNew = this.isNew;\r\n const data = await OWManager.objectApplyUpdates(this.instanceID, this._getRequestContext(cancellationToken));\r\n await this._loadData(data.actualizedObjectData, cancellationToken);\r\n this.isChanged = false;\r\n if (wasNew && !this.isNew) { // zperzistentnění objektu\r\n this.newSaved.trigger(this, undefined);\r\n InstanceManager.persistObject(this);\r\n if (this.isServerSideEncrypted) {\r\n PasswordManager.movePasswordFromTemp(this.instanceID, this.objectName, this.id);\r\n }\r\n }\r\n\r\n this.saved.trigger(this, undefined);\r\n return data.messages;\r\n }\r\n }\r\n\r\n private _clearRightsCaches(): void {\r\n this._itemRightsCache.clear();\r\n this._conditionEvaluationsCache.clear();\r\n }\r\n\r\n private async _addOrUpdateRightCacheItem<T>(itemKey: string, cacheMap: Map<string, CachedRightItem<T>>, getValue: () => Promise<T>, cancellationToken: CancellationToken = CancellationToken.none): Promise<T> {\r\n let cachedValue = cacheMap.get(itemKey);\r\n if (cachedValue && cachedValue.time > OWManager.lastCallThatMayAffectRightsTime && !cachedValue.cancellationToken.cancellationRequested) {\r\n try {\r\n return await cachedValue.getRightValuePromise;\r\n } catch (error) {\r\n if (!cancellationToken.cancellationRequested) {\r\n PromiseUtils.cancellationCatch(error);\r\n }\r\n }\r\n }\r\n cachedValue = {\r\n time: Date.now(),\r\n getRightValuePromise: getValue(),\r\n cancellationToken,\r\n };\r\n cacheMap.set(itemKey, cachedValue);\r\n return await cachedValue.getRightValuePromise;\r\n }\r\n\r\n public itemRights(itemName: string, type: ClassItemType, evalRights: ClassItemRightTypes, cancellationToken: CancellationToken = CancellationToken.none): Promise<IClassItemRights> {\r\n if (!itemName) {\r\n throw new EOWRightEvaluationException(\"\", \"Unable to evaluate rights for attribute. Attribute name is empty!\");\r\n }\r\n\r\n return this._addOrUpdateRightCacheItem(\r\n itemName,\r\n this._itemRightsCache,\r\n () => OWManager.objectItemsRights(this.instanceID, itemName, type, evalRights, this._getRequestContext(cancellationToken)).then((result) => {\r\n if (result.ExceptionText) {\r\n throw new EOWRightEvaluationException(itemName, result.ExceptionText, this.instanceID, this.objectName);\r\n }\r\n return result;\r\n }),\r\n );\r\n }\r\n\r\n public evaluateCondition(conditionID: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<boolean> {\r\n return this._addOrUpdateRightCacheItem(\r\n conditionID,\r\n this._conditionEvaluationsCache,\r\n () => OWManager.evaluateCondition(this, conditionID, this._getRequestContext(cancellationToken)),\r\n );\r\n }\r\n\r\n public cancelUpdatesInProgress(): void {\r\n this._updatingAttrs.forEach(rau => rau.cts.cancel());\r\n this._updatingAttrs = [];\r\n }\r\n\r\n public run(config: RunMethodBaseParams, cancellationToken: CancellationToken = CancellationToken.none): Promise<IRunMethodResult> {\r\n return OWManager.runObjectMethod({ ...config, instanceID: this.instanceID, requestContext: this._getRequestContext(cancellationToken) });\r\n }\r\n\r\n public runWithParams(config: RunMethodWithParamsBaseParams, cancellationToken: CancellationToken = CancellationToken.none): Promise<IRunMethodResult> {\r\n return OWManager.runObjectMethodWithParams({ ...config, instanceID: this.instanceID, requestContext: this._getRequestContext(cancellationToken) });\r\n }\r\n\r\n private static _workFlowSort(a: IWorkflowMenuItem, b: IWorkflowMenuItem): number {\r\n if (a.Order > b.Order) {\r\n return 1;\r\n }\r\n if (a.Order < b.Order) {\r\n return -1;\r\n }\r\n // a must be equal to b\r\n return 0;\r\n }\r\n\r\n public mapSignDataToTemplate(template: ISignatureTemplate, serializationFormat: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<object> {\r\n if (!template) {\r\n this._encryptionLogger.error(\"Template for signing of object is null or undefined\");\r\n throw new InvalidArgumentException(\"template is null or undefined\");\r\n }\r\n\r\n if (this.objectName !== template.className)\r\n throw new InvalidArgumentException(\"Object name mismatch\");\r\n\r\n if (serializationFormat === \"JSON_v4\") {\r\n return ObjectSignatureSerializer.mapSignDataToTemplateJSON(this, template, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n throw new InvalidOperationException(`Serialization format '${serializationFormat}' unsupported`); //`\r\n }\r\n\r\n public wfMenu(sort: boolean = true, cancellationToken: CancellationToken = CancellationToken.none): Promise<IWorkflowMenuItem[]> {\r\n if (this.isTempObject) {\r\n const objectList = new OWObjectList();\r\n this._tempObjectIDs.forEach(id => objectList.add({ className: this.objectName, id: id }));\r\n return OWManager.objectsWFMenu(objectList, this._getRequestContext(cancellationToken)).then((items) => {\r\n if (sort)\r\n return items.sort(OWObject._workFlowSort);\r\n else\r\n return items;\r\n });\r\n } else\r\n return OWManager.objectWFMenu(this.instanceID, this._getRequestContext(cancellationToken)).then((items) => {\r\n if (sort)\r\n return items.sort(OWObject._workFlowSort);\r\n else\r\n return items;\r\n });\r\n }\r\n\r\n public createCopy(cancellationToken: CancellationToken = CancellationToken.none): Promise<OWObject> {\r\n return OWManager.createCopyObject(this.instanceID, undefined, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n /**\r\n * Kontroluje, zda má objekt přiřazené nějaké WorkFlow\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public async hasWf(cancellationToken: CancellationToken = CancellationToken.none): Promise<boolean> {\r\n try {\r\n if (this.isNew || this.isTempObject) {\r\n return await OWManager.isWFDefinedToClass(this.objectName, this._getRequestContext(cancellationToken));\r\n } else {\r\n return this.WorkflowID != null;\r\n }\r\n } catch (exp) {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí ID objektu v daném atributu\r\n * @param attributeName Název atributu\r\n */\r\n public async getObjectAttributeID(attributeName: string, _cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n if (attributeName.includes(\".\"))\r\n throw new Error(\"Not implemented\"); // dalo by se dodělat, musely by se už načítat opravdu vazební instance až po tu poslední (zatím to nepotřebujeme)\r\n\r\n const val = this._values.get(attributeName);\r\n if (!val || !(val instanceof ObjAttrData))\r\n return \"0\";\r\n\r\n return val.id;\r\n }\r\n\r\n public getImplicitForm(attrName: string = \"\", conditionParameters: string = \"\", cancellationToken: CancellationToken = CancellationToken.none): Promise<IImplicitFormInfo | null> {\r\n return OWManager.getInstanceImplicitForm(this.instanceID, attrName, conditionParameters, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n public async isAttributeReadOnly(attrName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<boolean> {\r\n if (!attrName)\r\n throw new InvalidArgumentException(\"attrName\");\r\n\r\n const info = await this.getAttributeMetadata(attrName, cancellationToken);\r\n return info ? !!info.readOnly : true;\r\n }\r\n\r\n public async isAttributeEncrypted(attrName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<boolean> {\r\n if (!attrName)\r\n throw new InvalidArgumentException(\"attrName\");\r\n\r\n if (!this.isServerSideEncrypted)\r\n return false;\r\n\r\n const info = await this.getAttributeMetadata(attrName, cancellationToken);\r\n return info ? !!info.encryptingAllowed : false;\r\n }\r\n\r\n public createSignature(signature: string, signedData: string, profileId: string, providerType: string, providerVersion: string,\r\n signatureSourcesEncrypted: boolean = false, cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n return OWManager.createObjectsSignature([{\r\n signatures: [{ instanceID: this.instanceID, signature: signature, signedData: signedData }],\r\n profileId: profileId,\r\n providerType: providerType,\r\n providerVersion: providerVersion,\r\n }], signatureSourcesEncrypted, this._getRequestContext(cancellationToken));\r\n }\r\n\r\n /**\r\n * Uvolní objekt a rekurzivně i jeho vazby\r\n */\r\n public dispose(): void {\r\n if (this._disposed)\r\n return;\r\n\r\n if (!InstanceManager.removeObject(this))\r\n return;\r\n\r\n this._disposed = true;\r\n\r\n this.cancelUpdatesInProgress();\r\n\r\n this.disposed.trigger(this, undefined);\r\n this.disposed.removeAll();\r\n\r\n this._owObjectLogger.debug(`Disposed instance: ${this.instanceID} id ${this.id} of class '${this.objectName}'`);\r\n\r\n this._disposeAssociations();\r\n this._removeEventListeners();\r\n }\r\n\r\n /**\r\n * Odstranění všech event listenerů\r\n */\r\n private _removeEventListeners(): void {\r\n this.valueSet.removeAll();\r\n this.attributeChanged.removeAll();\r\n this.newSaved.removeAll();\r\n this.beforeSave.removeAll();\r\n this.saved.removeAll();\r\n this.validityChange.removeAll();\r\n this.dataRefreshed.removeAll();\r\n this.objectDecrypted.removeAll();\r\n this.disposed.removeAll();\r\n this.deleted.removeAll();\r\n }\r\n\r\n /**\r\n * Uvolní vazby záznamu\r\n */\r\n private _disposeAssociations(): void {\r\n this.cancelUpdatesInProgress();\r\n\r\n const loadedAssociations = Array.from(this._values.entries())\r\n .filter(([, a]) => a instanceof ObjAttrData && a.loaded)\r\n .filter(([, a]) => (a as ILoadedAssociationInternal).loadedInstance != undefined && !((a as ILoadedAssociationInternal).loadedInstance instanceof NullOWObject))\r\n .map(([attrName, a]) => ({ attrName, dispAttr: a as IDisposable, obj: (a as ILoadedAssociationInternal).loadedInstance }));\r\n\r\n loadedAssociations.forEach(({ dispAttr }) => dispAttr.dispose());\r\n\r\n const disposedAssociations = loadedAssociations.filter(({ obj }) => obj._disposed);\r\n if (disposedAssociations.length > 0) {\r\n this._owObjectLogger.groupCollapsed(`Disposed ${disposedAssociations.length} associated instances of: `, this.instanceID, this.objectName, this.id);\r\n disposedAssociations\r\n .forEach(({ attrName, obj }) => this._owObjectLogger.debug(`Instance ${obj.instanceID} id ${obj.id} of class '${obj.objectName}' placed in attribute '${attrName}'`));\r\n this._owObjectLogger.groupEnd();\r\n }\r\n const undisposedAssociations = loadedAssociations.filter(({ obj }) => !obj._disposed);\r\n if (undisposedAssociations.length > 0) {\r\n this._owObjectLogger.groupCollapsed(`Not disposed ${undisposedAssociations.length} associated instances of: `, this.instanceID, this.objectName, this.id);\r\n undisposedAssociations\r\n .forEach(({ attrName, obj }) => this._owObjectLogger.debug(`Instance ${obj.instanceID} id ${obj.id} of class '${obj.objectName}' placed in attribute '${attrName}'`));\r\n this._owObjectLogger.groupEnd();\r\n }\r\n\r\n const loadingAssociations = Array.from(this._values.entries())\r\n .filter(([, a]) => a instanceof ObjAttrData && !a.loaded && a.object != null)\r\n .map(([attrName, a]) => ({ attrName, a: a as ObjAttrData, objPromise: (a as ObjAttrData).object }));\r\n\r\n loadingAssociations.forEach(({ objPromise }) => objPromise.then(obj => obj.dispose()));\r\n\r\n if (loadingAssociations.length > 0) {\r\n this._owObjectLogger.groupCollapsed(`Queueing dispose of ${loadingAssociations.length} associated instances of: `, this.instanceID, this.objectName, this.id);\r\n loadingAssociations\r\n .forEach(({ attrName, a }) => this._owObjectLogger.debug(`Instance ${a.instanceID} id ${a.id} of class '${a.className}' placed in attribute '${attrName}'`));\r\n this._owObjectLogger.groupEnd();\r\n }\r\n }\r\n}\r\n\r\ntype CachedRightItem<T> = { time: number; getRightValuePromise: Promise<T>; cancellationToken: CancellationToken };\r\n\r\nexport class LazyLoadingData {\r\n public loaded: boolean;\r\n}\r\n\r\nexport class ObjAttrData extends LazyLoadingData implements IAttrValue {\r\n public object: Promise<OWObject>;\r\n public className: string;\r\n public id: string;\r\n /**Instance ID načteného objektu (pokud už byl načten)*/\r\n public instanceID?: string;\r\n}\r\n\r\nclass ObjAttrDataInternal extends ObjAttrData implements ILoadedAssociationInternal, IDisposable {\r\n public loadedInstance: OWObject;\r\n\r\n public dispose(): void {\r\n if (this.loadedInstance != null)\r\n this.loadedInstance.dispose();\r\n else if (this.object != null)\r\n this.object.then(o => o.dispose());\r\n\r\n this.loaded = false;\r\n this.object = null;\r\n this.loadedInstance = null;\r\n }\r\n}\r\n\r\n// musí zůstat interní, jde o implementační detail díky kterému se dá vnitřně dostat k načteným vazbám\r\ninterface ILoadedAssociationInternal {\r\n loadedInstance: OWObject;\r\n}\r\n\r\n/**\r\n * pomocna trida reprezentujici hodnotu, ktera se nacte az na pozadani\r\n * @ignore\r\n */\r\nclass DataOnRequest implements IEncAttrValue {\r\n public readonly isEncrypted: boolean;\r\n public readonly hasEncryptedValue: boolean = true;\r\n\r\n constructor(isEncrypted: boolean) {\r\n this.isEncrypted = isEncrypted;\r\n }\r\n\r\n public decrypt(_key: CryptoKey): Promise<boolean> {\r\n throw new Error(\"Not implemented\");\r\n }\r\n}\r\n\r\n/**\r\n * Datové rozhraní pro hodnotu atributu odesílanou na server\r\n */\r\nexport interface ISetObjectAttrValue {\r\n name: string;\r\n value: string;\r\n isEncrypted?: boolean;\r\n}\r\n\r\ninterface IRunningAttrUpdate {\r\n cts: CancellationTokenSource;\r\n task: Promise<OWObject>;\r\n}\r\n\r\nexport class NullOWObject extends OWObject {\r\n public static createNullOWObject(): Promise<OWObject> {\r\n return Promise.resolve(new NullOWObject());\r\n }\r\n\r\n constructor() {\r\n super(undefined);\r\n }\r\n\r\n public override getValue(attributeName: string, _cancellationToken: CancellationToken = CancellationToken.none): Promise<IAttrValue> {\r\n if (attributeName.toLowerCase() === \"id\") {\r\n return Promise.resolve(0);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n public static override [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance?.__proto__?.constructor?.name === \"NullOWObject\";\r\n }\r\n}\r\n","import { createCreateActionType, createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu aggregationRow. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"aggregationRow\";\r\n\r\n/**\r\n * Klíč pro identifikaci načítání statických lokalizací.\r\n */\r\nexport const FETCHING_KEY_STATIC_ITEMS = createCreateFetchingKey(NAME)(\"staticItems\");\r\n\r\n/**\r\n * Výchozí formát pro čísla. Převzaté z NumberUtils.ts protože je součástí implementace bez strict módu.\r\n * general - oddělovač tisíců a variabilní desetinná místa.\r\n */\r\nexport const DEFAULT_FORMAT_GENERAL = \"g\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\nexport const INIT_AGGREGATION_ROW = createActionType(\"INIT_AGGREGATION_ROW\");\r\nexport const CLEAR_AGGREGATION_ROW = createActionType(\"CLEAR_AGGREGATION_ROW\");\r\nexport const AGGREGATION_FUNCTION_SELECTED = createActionType(\"AGGREGATION_FUNCTION_SELECTED\");\r\nexport const SET_AGGREGATION_RESULTS = createActionType(\"SET_AGGREGATION_RESULTS\");\r\nexport const COLUMN_WIDTH_CHANGED = createActionType(\"COLUMN_WIDTH_CHANGED\");\r\nexport const NUMBER_OF_FROZEN_COLUMNS_CHANGED = createActionType(\"NUMBER_OF_FROZEN_COLUMNS_CHANGED\");\r\nexport const ORDER_OF_COLUMNS_CHANGED = createActionType(\"ORDER_OF_COLUMNS_CHANGED\");\r\nexport const COLUMN_DEFINITIONS_CHANGED = createActionType(\"COLUMN_DEFINITIONS_CHANGED\");\r\nexport const COLUMN_ADDED = createActionType(\"COLUMN_ADDED\");\r\nexport const COLUMN_REMOVED = createActionType(\"COLUMN_REMOVED\");\r\nexport const RELOAD_AGGREGATION_RESULTS = createActionType(\"RELOAD_AGGREGATION_RESULTS\");\r\nexport const CLOSE_BUTTON_ACTIVATED = createActionType(\"CLOSE_BUTTON_ACTIVATED\");\r\nexport const FILTER_CHANGED = createActionType(\"FILTER_CHANGED\");\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const aggregationRowLogger = LazyLoadingSectionLogger.create(LoggingSection.dataGrid);\r\n","import { createCreateActionType, createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu i18n. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"i18n\";\r\n\r\n/**\r\n * Obsahuje hodnotu, která se použije místo lokalizovaného textu, pokud je lokalizační klíč načtený, ale neobsahuje žádnou hodnotu.\r\n */\r\nexport const UNKNOWN_KEY_TEXT = \"?¿?¿?¿\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/** Konstanty typů akcí */\r\nexport const LOAD_LOCALIZATION_KEYS = createActionType(\"LOAD_LOCALIZATION_KEYS\");\r\nexport const LOCALIZATION_KEYS_LOADED = createActionType(\"LOCALIZATION_KEYS_LOADED\");\r\nexport const SET_LOCALE_CODE = createActionType(\"SET_LOCALE_CODE\");\r\nexport const SET_SUPPORTED_LANGUAGES = createActionType(\"SET_SUPPORTED_LANGUAGES\");\r\nexport const CONCAT_LOCALIZATION_ITEMS = createActionType(\"CONCAT_LOCALIZATION_ITEMS\");\r\nexport const CLEAR_LOCALIZATION_ITEMS = createActionType(\"CLEAR_LOCALIZATION_ITEMS\");\r\n\r\n/** Konstanty pro porovnávací funkci */\r\nexport const COMPARE_EQUAL = 0;\r\nexport const COMPARE_REFERENCE_FIRST = -1;\r\nexport const COMPARE_REFERENCE_SECOND = 1;\r\n\r\n/**\r\n * Doba čekání v ms, po kterou se seskupují akce požadující načtení lokalizací.\r\n * Hodnota je určena náhodně a je možné ji upravit po otestování v reálném použití.\r\n */\r\nexport const BATCHING_DELAY = 100;\r\n\r\nconst createFetchingKey = createCreateFetchingKey(NAME);\r\n\r\n/**\r\n * Klíč pro identifikaci seskupeného načítání lokalizačních klíčů.\r\n */\r\nexport const BATCHING_FETCH_KEY = createFetchingKey(\"BATCHING_FETCH_KEY\");\r\n\r\n/**\r\n * Klíč pro identifikaci načítání lokalizačních klíčů po změně jazyka.\r\n */\r\nexport const RELOAD_FETCH_KEY = createFetchingKey(\"RELOAD_FETCH_KEY\");\r\n\r\n/**\r\n * Výchozí klíč pro fetching modul pro načítání lokalizací pomocí {@link LocalizationLoader} a {@link loadLocalizationIfNeeded}.\r\n */\r\nexport const DEFAULT_FETCHING_KEY = \"LOCALIZATION_LOADER\";\r\n","import { Action } from \"redux\";\r\n\r\nimport { ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { CLEAR_LOCALIZATION_ITEMS, CONCAT_LOCALIZATION_ITEMS, LOAD_LOCALIZATION_KEYS, LOCALIZATION_KEYS_LOADED, SET_LOCALE_CODE, SET_SUPPORTED_LANGUAGES } from \"./constants\";\r\n\r\n/**\r\n * Option s lokalizovatelným názvem.\r\n * @template V Typ hodnoty, kterou option reprezentuje.\r\n */\r\nexport type LocalizableOption<V> = {\r\n readonly locKey: string;\r\n readonly value: V;\r\n};\r\n\r\n/**\r\n * Option s lokalizovaným názvem, který navíc obsahuje metadata v podobě generického typu.\r\n * @template V Typ hodnoty, kterou option reprezentuje.\r\n * @template T Typ hodnoty metadat\r\n */\r\nexport type ExtendedLocalizableOption<V, T> = {\r\n readonly meta?: T;\r\n} & LocalizableOption<V>;\r\n\r\nexport type LocalizationItem = {\r\n readonly primaryText: string;\r\n readonly secondaryText?: string;\r\n};\r\n\r\nexport interface Ii18nState {\r\n readonly localeCode: string;\r\n readonly supportedLanguages: readonly ILanguageExtended[];\r\n readonly localizationItems: {\r\n readonly [key: string]: LocalizationItem;\r\n };\r\n}\r\n\r\n/**\r\n * Obsahuje informace o spojených akcích pro načtení lokalizačních klíčů. Používá se pro batchování zpracování akcí.\r\n */\r\nexport type MergedLoadLocalizationActions = Readonly<{\r\n /** Unikátní klíče pro indikaci probíhajícího načítání */\r\n fetchingKeys: readonly string[];\r\n /** Unikátní lokalizační klíče, které se mají načíst */\r\n locKeys: readonly string[];\r\n}>;\r\n\r\nexport interface ILoadLocalizationKeysAction extends Action<typeof LOAD_LOCALIZATION_KEYS> {\r\n readonly payload: {\r\n readonly fetchingKey: string;\r\n readonly localizationKeys: ReadonlyArray<string>;\r\n readonly enableBatching: boolean;\r\n };\r\n}\r\n\r\nexport class ILoadLocalizationKeysAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_LOCALIZATION_KEYS;\r\n }\r\n}\r\n\r\nexport interface ILocalizationKeysLoadedAction extends Action<typeof LOCALIZATION_KEYS_LOADED> {\r\n readonly payload: {\r\n readonly fetchingKey: string;\r\n };\r\n}\r\n\r\nexport class ILocalizationKeysLoadedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOCALIZATION_KEYS_LOADED;\r\n }\r\n}\r\n\r\nexport interface ISetLocaleCodeAction extends Action<typeof SET_LOCALE_CODE> {\r\n readonly payload: {\r\n readonly localeCode: string;\r\n };\r\n}\r\n\r\nexport class ISetLocaleCodeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_LOCALE_CODE;\r\n }\r\n}\r\n\r\nexport interface ISetSupportedLanguagesAction extends Action<typeof SET_SUPPORTED_LANGUAGES> {\r\n readonly payload: {\r\n readonly supportedLanguages: readonly ILanguageExtended[];\r\n };\r\n}\r\n\r\nexport class ISetSupportedLanguagesAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_SUPPORTED_LANGUAGES;\r\n }\r\n}\r\n\r\nexport interface IClearLocalizationItemsAction extends Action<typeof CLEAR_LOCALIZATION_ITEMS> {\r\n}\r\n\r\nexport class IClearLocalizationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_LOCALIZATION_ITEMS;\r\n }\r\n}\r\n\r\nexport interface IConcatLocalizationItemsAction extends Action<typeof CONCAT_LOCALIZATION_ITEMS> {\r\n readonly payload: {\r\n readonly localizationItems: TypedObject<LocalizationItem>;\r\n };\r\n}\r\n\r\nexport class IConcatLocalizationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CONCAT_LOCALIZATION_ITEMS;\r\n }\r\n}\r\n\r\nexport type GetTextSelectorParams = {\r\n readonly locKey: string;\r\n readonly params?: string[];\r\n};\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { IClearLocalizationItemsAction, IConcatLocalizationItemsAction, Ii18nState, ISetLocaleCodeAction, ISetSupportedLanguagesAction, LocalizationItem } from \"./types\";\r\n\r\nconst localeCode: Reducer<string> = (state = \"cs\", action) => {\r\n if (action instanceof ISetLocaleCodeAction) {\r\n return action.payload.localeCode;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst supportedLanguages: Reducer<readonly ILanguageExtended[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ISetSupportedLanguagesAction)\r\n return action.payload.supportedLanguages;\r\n return state;\r\n};\r\n\r\nexport const localizationItems: Reducer<TypedObject<LocalizationItem>> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IConcatLocalizationItemsAction) {\r\n return {\r\n ...state,\r\n ...action.payload.localizationItems,\r\n };\r\n } else if (action instanceof IClearLocalizationItemsAction) {\r\n return EMPTY_OBJECT;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<Ii18nState> = combineReducers({\r\n localeCode,\r\n supportedLanguages,\r\n localizationItems,\r\n});\r\n","/**\r\n * Jméno modulu fetching. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"fetching\";\r\n\r\n/** Konstanty typů akcí */\r\nexport const SET_FETCHING = `${NAME}/SET_FETCHING`;\r\n","import { Action } from \"redux\";\r\n\r\nimport { SET_FETCHING } from \"./constants\";\r\n\r\nexport interface IFetchingState {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport interface ISetFetchingAction extends Action<typeof SET_FETCHING> {\r\n readonly payload: {\r\n readonly key: string;\r\n readonly isFetching: boolean;\r\n };\r\n}\r\n\r\nexport class ISetFetchingAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_FETCHING;\r\n }\r\n}\r\n","import { Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IFetchingState, ISetFetchingAction } from \"./types\";\r\n\r\nexport const reducer: Reducer<IFetchingState> = (state = EMPTY_OBJECT, action) =>\r\n produce(state, (draft) => {\r\n if (action instanceof ISetFetchingAction) {\r\n const { key, isFetching } = action.payload;\r\n draft[key] = isFetching;\r\n }\r\n });\r\n","import { SET_FETCHING } from \"./constants\";\r\nimport { ISetFetchingAction } from \"./types\";\r\n\r\n/**\r\n * Nastaví indikátor načítání pro zadaný klíč.\r\n * @param key Klíč identifikuje, co se načítá.\r\n * @param isFetching Indikuje stav načítání. True pokud načítání probíhá, false pokud bylo dokončeno.\r\n */\r\nexport const createSetFetchingAction = (key: string, isFetching: boolean): ISetFetchingAction => ({\r\n type: SET_FETCHING,\r\n payload: {\r\n key,\r\n isFetching,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící fetching modulu.\r\n */\r\nconst getModel = (state: IAppState) => state.core.fetching;\r\n\r\n/**\r\n * Zjistí, zda pro zadaný klíč probíhá načítání. Pokud daný klíč neexistuje, vrací false.\r\n *\r\n * @param state\r\n * @param key Klíč slouží k identifikaci načítaných dat. Musí se shodovat s klíčem zadaným do akce setFetching.\r\n */\r\nexport const isFetching: Selector<IAppState, boolean, string> = (state, key) => getModel(state)[key] === true;\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { IFetchingState } from \"./types\";\r\n\r\nexport { createSetFetchingAction } from \"./actions\";\r\nexport { SET_FETCHING } from \"./constants\";\r\nexport { isFetching } from \"./selectors\";\r\n\r\nexport const fetchingModule: ApplicationStatefulModule<typeof NAME, Reducer<IFetchingState>> = {\r\n NAME,\r\n reducer,\r\n};\r\n","import { ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { CLEAR_LOCALIZATION_ITEMS, CONCAT_LOCALIZATION_ITEMS, LOAD_LOCALIZATION_KEYS, LOCALIZATION_KEYS_LOADED, SET_LOCALE_CODE, SET_SUPPORTED_LANGUAGES } from \"./constants\";\r\nimport { IClearLocalizationItemsAction, IConcatLocalizationItemsAction, ILoadLocalizationKeysAction, ILocalizationKeysLoadedAction, ISetLocaleCodeAction, ISetSupportedLanguagesAction, LocalizationItem } from \"./types\";\r\n\r\n/**\r\n * Akce pro načtení hodnot pro lokalizační klíče. I18n modul obsluhuje nastavení načítacího indikátoru pro zadaný klíč.\r\n *\r\n * @param localizationKeys Klíče, pro které se načtou lokalizační data.\r\n * @param fetchingKey Klíč pro fetching modul, pod kterým bude indikováno načítání.\r\n * @param enableBatching Příznak, zda se má využít batchování akcí. Výchozí hodnota je false. Batchování umožňuje zpracovat akce následující krátce za sebou najednou,\r\n * čímž šetří výkon. Vhodné pro použití v kombinaci s {@link LocalizationLoader}. Nehodí se pro osamocené akce, kde nepřinese benefit výkonu a pouze prodlouží načtení\r\n * o dobu čekání na následné akce.\r\n */\r\nexport const createLoadLocalizationKeysAction = (localizationKeys: readonly string[], fetchingKey: string, enableBatching = false): ILoadLocalizationKeysAction => ({\r\n type: LOAD_LOCALIZATION_KEYS,\r\n payload: {\r\n fetchingKey,\r\n localizationKeys,\r\n enableBatching,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že načtení hodnot pro lokalizační klíče proběhlo v pořádku.\r\n * Tuto akci je možné spárovat s původním požadavkem pomocí fetchingKey.\r\n * @param fetchingKey Klíč pro fetching modul, který byl použit v akci pro načtení lokalizace.\r\n */\r\nexport const createLocalizationKeysLoadedAction = (fetchingKey: string): ILocalizationKeysLoadedAction => ({\r\n type: LOCALIZATION_KEYS_LOADED,\r\n payload: {\r\n fetchingKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení jazyka aplikace.\r\n * @param localeCode Kód jazyka aplikace\r\n */\r\nexport const createSetLocaleCodeAction = (localeCode: string): ISetLocaleCodeAction => ({\r\n type: SET_LOCALE_CODE,\r\n payload: {\r\n localeCode,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení podporovaných jazyků aplikace.\r\n * @param supportedLanguages Podporované jazyky.\r\n */\r\nexport const createSetSupportedLanguagesAction = (supportedLanguages: readonly ILanguageExtended[]): ISetSupportedLanguagesAction => ({\r\n type: SET_SUPPORTED_LANGUAGES,\r\n payload: {\r\n supportedLanguages,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro doplnění lokalizačních položek.\r\n * @param localizationItems Objekt s položkami lokalizace.\r\n */\r\nexport const createConcatLocalizationItemsAction = (localizationItems: TypedObject<LocalizationItem>): IConcatLocalizationItemsAction => ({\r\n type: CONCAT_LOCALIZATION_ITEMS,\r\n payload: {\r\n localizationItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro vyprázdnění lokalizačních položek.\r\n */\r\nexport const createClearLocalizationItemsAction = (): IClearLocalizationItemsAction => ({\r\n type: CLEAR_LOCALIZATION_ITEMS,\r\n});\r\n","import { ISectionLogger, LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const logger: ISectionLogger = LazyLoadingSectionLogger.create(LoggingSection.localizations);\r\n","/**\r\n * Tento soubor slouží jako workaround pro importování knihovny reselect. Její UMD build totiž knihovnou exportuje pod jménem s velkým\r\n * písmenem, Reselect. Proto je závislost v Main.js definována s velkým písmenem.\r\n *\r\n * Tento balíček společně s nastavením aliasů v main.tsconfig.json pomocí paths umožňuje přesměrovat import, takže v aplikaci můžeme importovat\r\n * reselect klasickým způsobem.\r\n */\r\n\r\n// @ts-ignore\r\nexport * from \"Reselect\";","import { Action } from \"redux\";\r\n\r\nimport { bridge, ILocalizationItemsLoadedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { type } from \"@multiweb/reactUtils\";\r\nimport { ILocalizationItem as OriginalLocalizationItem } from \"@multiweb/types/contracts\";\r\nimport { MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { UNKNOWN_KEY_TEXT } from \"./constants\";\r\nimport { ILoadLocalizationKeysAction, ILocalizationKeysLoadedAction, ISetLocaleCodeAction, LocalizationItem, MergedLoadLocalizationActions } from \"./types\";\r\n\r\nconst { applyLocParams } = bridge;\r\n\r\n/**\r\n * Zjistí, zda je akce akcí signalizující načtení lokalizačních položek z bridge modulu pod zadaným klíčem. Pouze pro interní použití v i18n modulu.\r\n * @param fetchingKey Klíč pro indikaci lokalizací.\r\n */\r\nexport const createAreLocalizationItemsLoadedActionPattern = (fetchingKey: string) => (action: Action) => (\r\n action instanceof ILocalizationItemsLoadedAction && action.payload.key === fetchingKey\r\n);\r\n\r\n/**\r\n * Zjistí, zda je akce akcí signalizující dokončení načítání lokalizačních klíčů načítaných pod zadaným klíčem.\r\n * @param fetchingKey Klíč pro identifikaci lokalizací.\r\n */\r\nexport const createAreLocalizationKeysLoadedActionPattern = (fetchingKey: string) => (action: Action) => (\r\n action instanceof ILocalizationKeysLoadedAction && action.payload.fetchingKey === fetchingKey\r\n);\r\n\r\n/**\r\n * Zjistí, zda se jedná o akci s požadavkem na načtení lokalizačních klíčů a zda režim batchování odpovídá zadanému parametru.\r\n * Umožňuje tak rozlišit akce se zapnutým/vypnutým batchováním.\r\n * @param batchingEnabled Pokud je true, odchytávají se akce se zapnutým batchováním. Pokud je false, odchytávají se akce s vypnutým batchováním.\r\n */\r\nexport const createLoadLocalizationKeysActionPattern = (batchingEnabled: boolean) => (action: Action) => (\r\n action instanceof ILoadLocalizationKeysAction && action.payload.enableBatching === batchingEnabled\r\n);\r\n\r\n/**\r\n * Zjistí, zda se jedná o akci s požadavkem na změnu jazyka a zda je jazyk jiný než aktuálně nastavený.\r\n * @param localeCode Odchytávají se akce, které mají jiný localeCode.\r\n */\r\nexport const createSetLocaleCodeActionPattern = (localeCode: string) => (action: Action) => (\r\n action instanceof ISetLocaleCodeAction && action.payload.localeCode !== localeCode\r\n);\r\n\r\n/**\r\n * Pomocná funkce, která transformuje načtené lokalizační položky na objekt klíčovaný přes lokalizační klíče.\r\n * Pro nenačtené klíče se doplní lokalizační položka, jejíž hodnoty jsou undefined.\r\n * @param localizationKeys Seznam lokalizačních klíčů, pro které měla být lokalizace načtena.\r\n * @param loadedLocalizationItems Mapa načtených lokalizačních položek.\r\n */\r\nexport const transformLoadedLocalizationItems = (localizationKeys: readonly string[], loadedLocalizationItems: ReadonlyMap<string, OriginalLocalizationItem>): TypedObject<LocalizationItem> => (\r\n localizationKeys.reduce((localizations, localizationKey) => {\r\n const localizationItem = loadedLocalizationItems.get(localizationKey);\r\n localizations[localizationKey] = localizationItem\r\n ? {\r\n primaryText: localizationItem.primaryText,\r\n secondaryText: localizationItem.secondaryText,\r\n }\r\n : {\r\n primaryText: UNKNOWN_KEY_TEXT,\r\n secondaryText: undefined,\r\n };\r\n return localizations;\r\n }, {} as MutableTypedObject<LocalizationItem>)\r\n);\r\n\r\n/**\r\n * Vrací primární nebo sekundární text zadané položky - včetně nahrazení placeholderů.\r\n * - Pokud položka lokalizace není zadána, vrací `undefined`.\r\n * - Pokud položka zadána je, ale nemá vyplněn text pro `itemKey`, vrací konstantu pro neznámou lokalizaci.\r\n * @param localizationItem Položka, ze které bude text vrácen.\r\n * @param itemKey Identifikace textu - `primaryText` nebo `secondaryText`.\r\n * @param params Parametry lokalizace - pro nahrazení za placeholdery.\r\n */\r\nexport const getText = (localizationItem: LocalizationItem | undefined, itemKey: keyof LocalizationItem, params?: string[]) => {\r\n if (!localizationItem) {\r\n return undefined;\r\n }\r\n const localizationText = localizationItem[itemKey];\r\n return type.isString(localizationText) ? applyLocParams(localizationText, params) : UNKNOWN_KEY_TEXT;\r\n};\r\n\r\n/**\r\n * Spojí lokalizační a načítací klíče ze zadaných akcí. Výsledný objekt obsahuje pouze unikátní výskyty, duplicity jsou odstraněny.\r\n * @param actions Akce, z nichž se získají data.\r\n */\r\nexport const mergeLoadLocalizationKeysActions = (actions: readonly ILoadLocalizationKeysAction[]): MergedLoadLocalizationActions => {\r\n const mergedData = actions.reduce((result, action) => {\r\n const { fetchingKey, localizationKeys } = action.payload;\r\n return {\r\n fetchingKeys: [...result.fetchingKeys, fetchingKey],\r\n locKeys: [...result.locKeys, ...localizationKeys],\r\n };\r\n }, {\r\n fetchingKeys: [],\r\n locKeys: [],\r\n } as MergedLoadLocalizationActions);\r\n\r\n return {\r\n fetchingKeys: [...new Set(mergedData.fetchingKeys)],\r\n locKeys: [...new Set(mergedData.locKeys)],\r\n };\r\n};\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector, ParametricSelector } from \"reselect\";\r\n\r\nimport { ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { ExtendedOption, IAppState } from \"@multiweb/types/react\";\r\nimport { COMPARE_EQUAL, COMPARE_REFERENCE_FIRST, COMPARE_REFERENCE_SECOND, UNKNOWN_KEY_TEXT } from \"./constants\";\r\nimport { ExtendedLocalizableOption, GetTextSelectorParams, LocalizationItem } from \"./types\";\r\nimport { getText } from \"./utils\";\r\nimport CollatorOptions = Intl.CollatorOptions;\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící i18n modulu.\r\n */\r\nconst getModel = (state: IAppState) => state.core.i18n;\r\n\r\n/**\r\n * Získá lokalizační klíče z aktuálního stavu.\r\n * @param state\r\n */\r\nexport const getLocalizationKeys: Selector<IAppState, string[]> = (state) => Object.keys(getModel(state).localizationItems);\r\n\r\n/**\r\n * Získá lokalizační hodnotu pro zadaný klíč. Vrací undefined, pokud nebyla hodnota nalezena.\r\n * @param state\r\n * @param locKey Lokalizační klíč\r\n */\r\nexport const getLocalizationItem: Selector<IAppState, LocalizationItem | undefined, string> = (state, locKey) => getModel(state).localizationItems[locKey];\r\n\r\n/**\r\n * Zjistí, zda je dostupná lokalizovaná hodnota pro lokalizační klíč.\r\n * @param state\r\n * @param locKey Lokalizační klíč\r\n */\r\nexport const hasLocalization: Selector<IAppState, boolean, string> = (state, locKey) => getLocalizationItem(state, locKey) !== undefined;\r\n\r\n/**\r\n * Získá lokalizovaný hlavní text pro zadaný lokalizační klíč.\r\n * @param state\r\n * @param locKey Lokalizační klíč (např. \"GUI-608276\").\r\n * @param params Parametry lokalizace - pro nahrazení za placeholdery.\r\n * @return Pokud položka lokalizace nebyla načtena, vrací undefined. Pro načtenou položku lokalizace vrací lokalizovaný text.\r\n * (Včetně nahrazení placeholderů za `params`.)\r\n * V případě, že je lokalizovaný text `undefined`, vrací konstantu pro neznámou lokalizaci.\r\n */\r\nexport const getPrimaryText: ParametricSelector<IAppState, string, string | undefined> = (state, locKey, params?: string[]) => {\r\n const localizationItem = getLocalizationItem(state, locKey);\r\n return getText(localizationItem, \"primaryText\", params);\r\n};\r\n\r\n/**\r\n * Získá lokalizovaný alternativní text pro zadaný lokalizační klíč.\r\n * @param state\r\n * @param locKey Lokalizační klíč (např. \"GUI-608276\").\r\n * @param params Parametry lokalizace - pro nahrazení za placeholdery.\r\n * @return Pokud položka lokalizace nebyla načtena, vrací undefined. Pro načtenou položku lokalizace vrací lokalizovaný popis.\r\n * (Včetně nahrazení placeholderů za `params`.)\r\n * V případě, že je lokalizovaný popis `undefined`, vrací konstantu pro neznámou lokalizaci.\r\n */\r\nexport const getSecondaryText: ParametricSelector<IAppState, string, string | undefined> = (state, locKey, params?: string[]) => {\r\n const localizationItem = getLocalizationItem(state, locKey);\r\n return getText(localizationItem, \"secondaryText\", params);\r\n};\r\n\r\n/**\r\n * Vytvoří cacheovaný selektor, který dělá totéž, co {@link getPrimaryText}. Navíc je cacheovaný.\r\n * @param state\r\n * @param locKey Lokalizační klíč (např. \"GUI-608276\").\r\n * @param params Parametry lokalizace - pro nahrazení za placeholdery.\r\n */\r\nexport const createGetPrimaryText = () => createSelector<IAppState, GetTextSelectorParams, ReturnType<typeof getLocalizationItem>, string[] | undefined, string | undefined>(\r\n (state, { locKey }) => getLocalizationItem(state, locKey),\r\n (_state, { params }) => params,\r\n (localizationItem, params) => getText(localizationItem, \"primaryText\", params),\r\n);\r\n\r\n/**\r\n * Vytvoří cacheovaný selektor, který dělá totéž, co {@link getSecondaryText}. Navíc je cacheovaný.\r\n * @param state\r\n * @param locKey Lokalizační klíč (např. \"GUI-608276\").\r\n * @param params Parametry lokalizace - pro nahrazení za placeholdery.\r\n */\r\nexport const createGetSecondaryText = () => createSelector<IAppState, GetTextSelectorParams, ReturnType<typeof getLocalizationItem>, string[] | undefined, string | undefined>(\r\n (state, { locKey }) => getLocalizationItem(state, locKey),\r\n (_state, { params }) => params,\r\n (localizationItem, params) => getText(localizationItem, \"secondaryText\", params),\r\n);\r\n\r\n/**\r\n * Získá aktuálně nastavený kód jazyka aplikace..\r\n */\r\nexport const getLocaleCode: Selector<IAppState, string> = (state) => getModel(state).localeCode;\r\n\r\n/**\r\n * Získá seznam aplikací podporovaných jazyků.\r\n */\r\nexport const getSupportedLanguages: Selector<IAppState, readonly ILanguageExtended[]> = (state) => getModel(state).supportedLanguages;\r\n\r\n/**\r\n * Vytvoří selektor pro získání funkce pro porovnávání textu se zadanými parametry. Umožňuje porovnávat i prázdné hodnoty jako null a undefined.\r\n * Pořadí mezi prázdnými hodnotami (undefined, null, '') není definované. Funkce pro řazení využívá locale ze stavu. Vytvořená funkce je cachovaná\r\n * a nová se vytváří pouze při změně locale ve stavu.\r\n *\r\n * @param emptyFirst True pokud se mají prázdné položky řadit jako první, false pokud jako poslední.\r\n * @param options Nastavení pro funkci localeCompare. Viz. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare\r\n */\r\nexport const createGetTextCompareFn = (emptyFirst = false, options?: CollatorOptions) => {\r\n const referenceTextEmpty = emptyFirst ? COMPARE_REFERENCE_FIRST : COMPARE_REFERENCE_SECOND;\r\n const comparedTextEmpty = emptyFirst ? COMPARE_REFERENCE_SECOND : COMPARE_REFERENCE_FIRST;\r\n return createSelector(\r\n getLocaleCode,\r\n (locale) => (referenceText?: string | null, comparedText?: string | null) => {\r\n if (referenceText === comparedText) {\r\n return COMPARE_EQUAL;\r\n } else if (!referenceText) {\r\n return referenceTextEmpty;\r\n } else if (!comparedText) {\r\n return comparedTextEmpty;\r\n } else {\r\n return referenceText.localeCompare(comparedText, locale, options);\r\n }\r\n },\r\n );\r\n};\r\n\r\n/**\r\n * Vytvoří cachovaný selector pro získávání přeložených staticky definovaných rozšířených options.\r\n * Lze díky tomu definovat i metadata, která se spolu s lokalizovaným textem mají uchovávat.\r\n * @param options ExtendedOptions k přeložení.\r\n */\r\nexport const createGetLocalizedOptions = <V, T = undefined>(options: ReadonlyArray<ExtendedLocalizableOption<V, T>>) => createSelector<IAppState, string | undefined, ReadonlyArray<ExtendedOption<V, T>>>(\r\n options.map(({ locKey }) => (state: IAppState) => getPrimaryText(state, locKey)),\r\n (...localizedTexts) => localizedTexts.map((text, index) =>\r\n ({\r\n text: text ?? UNKNOWN_KEY_TEXT,\r\n value: options[index].value,\r\n meta: options[index].meta,\r\n })),\r\n);\r\n","import { Channel } from \"redux-saga\";\r\nimport { actionChannel, all, call, delay, flush, fork, put, select, take, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { bridge, createLoadLocalizationItemsAction, ILocalizationItemsLoadedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { createSetFetchingAction } from \"@multiweb/reactCore/fetching\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport {\r\n createClearLocalizationItemsAction,\r\n createConcatLocalizationItemsAction,\r\n createLoadLocalizationKeysAction,\r\n createLocalizationKeysLoadedAction,\r\n createSetLocaleCodeAction,\r\n createSetSupportedLanguagesAction,\r\n} from \"./actions\";\r\nimport { BATCHING_DELAY, BATCHING_FETCH_KEY, RELOAD_FETCH_KEY } from \"./constants\";\r\nimport { logger } from \"./logger\";\r\nimport { getLocaleCode, getLocalizationKeys } from \"./selectors\";\r\nimport { ILoadLocalizationKeysAction } from \"./types\";\r\nimport {\r\n createAreLocalizationItemsLoadedActionPattern,\r\n createLoadLocalizationKeysActionPattern,\r\n createSetLocaleCodeActionPattern,\r\n mergeLoadLocalizationKeysActions,\r\n transformLoadedLocalizationItems,\r\n} from \"./utils\";\r\n\r\nconst { actualCultureISO639_1, getSupportedLanguages } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* i18nSaga() {\r\n yield fork(loadLocaleCodeSaga);\r\n yield fork(loadSupportedLanguagesSaga);\r\n yield fork(batchingLoadLocalizationKeysSaga);\r\n yield fork(watchLocaleChangeSaga);\r\n yield takeEvery(createLoadLocalizationKeysActionPattern(false), loadLocalizationKeysSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje požadavky na načtení dat pro lokalizační klíče s požadovaným batchováním. Po prvním požadavku čeká po dobu stanovenou\r\n * v {@link BATCHING_DELAY} na příchod dalších požadavků. Poté spojí všechny požadavky dohromady a obslouží je pomocí standardní ságy pro načítání\r\n * {@link loadLocalizationKeysSaga}.\r\n *\r\n * Pro čekání na výsledky využívá interní načítací klíč {@link BATCHING_FETCH_KEY}. Po dobu načítání však nastaví fetching pro všechny fetching klíče,\r\n * které se nacházely ve spojených akcích.\r\n */\r\nexport const batchingLoadLocalizationKeysSaga: SagaWithReturnType = function* batchingLoadLocalizationKeysSaga() {\r\n const loadLocalizationsKeysActionChannel: Channel<ILoadLocalizationKeysAction> = yield actionChannel(createLoadLocalizationKeysActionPattern(true));\r\n logger.debug(\"Localization saga for action batching is initialized.\");\r\n while (true) {\r\n const firstAction: ILoadLocalizationKeysAction = yield take(loadLocalizationsKeysActionChannel);\r\n yield delay(BATCHING_DELAY);\r\n const bufferedActions: ReadonlyArray<ILoadLocalizationKeysAction> = yield flush(loadLocalizationsKeysActionChannel);\r\n const allActions = [firstAction, ...bufferedActions];\r\n const mergedActionsData: ReturnType<typeof mergeLoadLocalizationKeysActions> = yield call(mergeLoadLocalizationKeysActions, allActions);\r\n logger.debug(() => `Batched ${allActions.length} actions after ${BATCHING_DELAY}ms. Aggregated actions data: ${JSON.stringify(mergedActionsData)}`);\r\n yield all(mergedActionsData.fetchingKeys.map((fetchingKey) =>\r\n put(createSetFetchingAction(fetchingKey, true))));\r\n yield call(loadLocalizationKeysSaga, createLoadLocalizationKeysAction(mergedActionsData.locKeys, BATCHING_FETCH_KEY));\r\n yield all(mergedActionsData.fetchingKeys.map((fetchingKey) =>\r\n put(createSetFetchingAction(fetchingKey, false))));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje požadavky na načtení dat pro lokalizační klíče (bez batchování). Načtené lokalizační položky doplní k ostatním položkám ve stavu.\r\n */\r\nexport const loadLocalizationKeysSaga: SagaWithReturnType<[ILoadLocalizationKeysAction]> = function* loadLocalizationKeysSaga(action) {\r\n const { fetchingKey, localizationKeys } = action.payload;\r\n yield put(createSetFetchingAction(fetchingKey, true));\r\n yield put(createLoadLocalizationItemsAction(localizationKeys, fetchingKey));\r\n\r\n const localizationItemsLoadedAction: ILocalizationItemsLoadedAction = yield take(createAreLocalizationItemsLoadedActionPattern(fetchingKey));\r\n const { localizationItems } = localizationItemsLoadedAction.payload;\r\n const transformedLocalizationItems: ReturnType<typeof transformLoadedLocalizationItems> = yield call(transformLoadedLocalizationItems, localizationKeys, localizationItems);\r\n yield put(createConcatLocalizationItemsAction(transformedLocalizationItems));\r\n\r\n yield put(createSetFetchingAction(fetchingKey, false));\r\n yield put(createLocalizationKeysLoadedAction(fetchingKey));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení aktuálního kódu jazyka aplikace\r\n */\r\nexport const loadLocaleCodeSaga: SagaWithReturnType = function* loadLocaleCodeSaga() {\r\n yield put(createSetLocaleCodeAction(actualCultureISO639_1));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení podporovaných jazyků aplikace\r\n */\r\nexport const loadSupportedLanguagesSaga: SagaWithReturnType = function* loadSupportedLanguagesSaga() {\r\n const supportedLanguages: SagaYieldReturn<typeof getSupportedLanguages> = yield call(getSupportedLanguages);\r\n yield put(createSetSupportedLanguagesAction(supportedLanguages));\r\n};\r\n\r\n/**\r\n * Sleduje změny jazyka a spouští přenačtení lokalizací\r\n */\r\nexport const watchLocaleChangeSaga: SagaWithReturnType = function* watchLocaleChangeSaga() {\r\n while (true) {\r\n const currentLocaleCode = yield select(getLocaleCode);\r\n yield take(createSetLocaleCodeActionPattern(currentLocaleCode));\r\n const localizationKeys = yield select(getLocalizationKeys);\r\n yield put(createClearLocalizationItemsAction());\r\n yield call(loadLocalizationKeysSaga, createLoadLocalizationKeysAction(localizationKeys, RELOAD_FETCH_KEY));\r\n }\r\n};\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { createLoadLocalizationKeysAction } from \"./actions\";\r\nimport { DEFAULT_FETCHING_KEY } from \"./constants\";\r\nimport { hasLocalization } from \"./selectors\";\r\n\r\nconst { dispatchAction, getState } = bridge;\r\n\r\n/**\r\n * Utility pro externí použití mimo modul. Obsah nemůže být v utils, protože vyžaduje funkcionalitu modulu, která utils používá (např. selectory)\r\n * a vznikla by tak cyklická závislost.\r\n */\r\n\r\n/**\r\n * Načte lokalizační klíč do core/i18n modulu, pokud ještě načtený není. Využívá batchování požadavků na načtení lokalizací.\r\n *\r\n * Před použitím zvažte možnost použít komponentu {@link LocalizationLoader} a zvažte, který přístup se pro vaše použití hodí více.\r\n *\r\n * Využívá funkce z core/bridge modulu. Tato funkce je určená pro použití v původní aplikaci a v konektorech. V reactové části se používat nesmí.\r\n * V reactové části se pro načtení lokalizace používá akce {@link createLoadLocalizationKeysAction} přímo, nemá důvod být závislá na\r\n * bridge modulu.\r\n *\r\n * @param locKey Klíč k načtení.\r\n * @param fetchingKey Klíč pro fetching modul, pod kterým bude indikováno načítání.\r\n * Pokud není zadaný, použije se výchozí hodnota sdílená pro všechny LocalizationLoader a LocalizationMultiLoader komponenty.\r\n */\r\nexport const loadLocalizationIfNeeded = (locKey: string, fetchingKey: string = DEFAULT_FETCHING_KEY) => {\r\n const isKeyLoaded = hasLocalization(getState(), locKey);\r\n if (!isKeyLoaded) {\r\n dispatchAction(createLoadLocalizationKeysAction([locKey], fetchingKey, true));\r\n }\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { Ii18nState } from \"./types\";\r\n\r\nexport { createLoadLocalizationKeysAction } from \"./actions\";\r\nexport { DEFAULT_FETCHING_KEY, UNKNOWN_KEY_TEXT } from \"./constants\";\r\nexport { loadLocalizationIfNeeded } from \"./externalUtils\";\r\nexport {\r\n createGetLocalizedOptions,\r\n createGetPrimaryText,\r\n createGetSecondaryText,\r\n createGetTextCompareFn,\r\n getLocaleCode,\r\n getLocalizationItem,\r\n getPrimaryText,\r\n getSecondaryText,\r\n hasLocalization,\r\n} from \"./selectors\";\r\nexport { ExtendedLocalizableOption, LocalizableOption, LocalizationItem } from \"./types\";\r\nexport { createAreLocalizationKeysLoadedActionPattern } from \"./utils\";\r\n\r\nexport const i18nModule: ApplicationStatefulModule<typeof NAME, Reducer<Ii18nState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { Action } from \"redux\";\r\n\r\nimport { AggregationFunction, ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { LocalizableOption } from \"@multiweb/reactCore/i18n\";\r\nimport { Option, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n AGGREGATION_FUNCTION_SELECTED,\r\n CLEAR_AGGREGATION_ROW,\r\n CLOSE_BUTTON_ACTIVATED,\r\n COLUMN_ADDED,\r\n COLUMN_DEFINITIONS_CHANGED,\r\n COLUMN_REMOVED,\r\n COLUMN_WIDTH_CHANGED,\r\n FILTER_CHANGED,\r\n INIT_AGGREGATION_ROW,\r\n NUMBER_OF_FROZEN_COLUMNS_CHANGED,\r\n ORDER_OF_COLUMNS_CHANGED,\r\n RELOAD_AGGREGATION_RESULTS,\r\n SET_AGGREGATION_RESULTS,\r\n} from \"./constants\";\r\n\r\n/**\r\n * Struktura stavu modulu aggregationRow.\r\n */\r\nexport interface IAggregationRowState {\r\n readonly aggregationRows: AggregationRows;\r\n}\r\n\r\n/**\r\n * Data agregačních řádků indexovaná podle jejich klíčů.\r\n */\r\nexport type AggregationRows = TypedObject<AggregationRow>;\r\n\r\n/** Filtr pro omezení agregovaných záznamů. */\r\nexport type Filter = Readonly<{\r\n /** Příznak, zda se má agregace provádět i nad verzovanými záznamy. */\r\n readVersioned: boolean;\r\n /** Podmínka omezující agregovaná data. */\r\n condition: string;\r\n /** Parametry pro podmínku omezující agregovaná data. */\r\n conditionParams?: ConditionParams;\r\n}>;\r\n\r\n/**\r\n * Název třídy (entity), nebo null při počátečním stavu.\r\n */\r\nexport type NullableClassName = string | null;\r\n\r\n/**\r\n * Struktura dat pro jeden agregační řádek.\r\n */\r\nexport type AggregationRow = Readonly<{\r\n /** Název třídy (entity), jejíž atributy se zobrazují v tabulce s agregačním řádkem. */\r\n className: NullableClassName;\r\n /** Počet sloupců se zmraženou pozicí pro horizontální scrollování. */\r\n numberOfFrozenColumns: number;\r\n /** Pole klíčů sloupců v pořadí, ve kterém se mají vykreslovat. */\r\n orderOfColumns: ReadonlyArray<ColumnKey>;\r\n /** Data sloupců. */\r\n columns: Columns;\r\n /** Filtr pro omezení agregovaných záznamů. */\r\n filter: Filter;\r\n}>;\r\n\r\n/**\r\n * Klíč pro jednoznačnou identifikaci agregačního řádku.\r\n */\r\nexport type AggregationRowKey = string;\r\n\r\n/**\r\n * Klíč sloupce jednoznačně identifikuje sloupec v rámci agregačního řádku.\r\n */\r\nexport type ColumnKey = string;\r\n\r\n/**\r\n * Data sloupců v agregačním řádku indexovaná klíčem sloupce.\r\n */\r\nexport type Columns = TypedObject<Column>;\r\n\r\n/**\r\n * Agregační funkce, nebo null, pokud není žádná vybraná.\r\n */\r\nexport type NullableAggregationFunction = null | AggregationFunction;\r\n\r\n/**\r\n * Výsledek agregační funkce. Aktuálně jako typ string, protože BigNumberProxy není serializovatelný objekt a tím pádem ho nelze ukládat v reduxu.\r\n */\r\nexport type AggregationResult = string | null;\r\n\r\n/**\r\n * Typ sloupce.\r\n */\r\nexport enum ColumnType {\r\n /** Číselný sloupec, pro který je možné počítat agregační funkce */\r\n numeric = \"numeric\",\r\n /** Speciální typ sloupce obsahující kontrolní prvky. Agregační řádek pro takový sloupec vykresluje tlačítko pro zavření. */\r\n control = \"control\",\r\n /** Typ pro ostatní sloupce, které nemají v agregačním řádku žádnou funkcionalitu. */\r\n other = \"other\",\r\n}\r\n\r\n/**\r\n * Struktura dat pro jeden sloupec agregačního řádku.\r\n */\r\nexport type Column = Readonly<{\r\n key: ColumnKey;\r\n /** Šířka sloupce v pixelech. */\r\n width: number;\r\n /** Příznak, zda je sloupec číselný. Pouze číselné sloupce podporují agregační funkce. */\r\n columnType: ColumnType;\r\n /** Název atributu, který sloupec zobrazuje. */\r\n attributeName: string | null;\r\n /** Agregační funkce vybraná pro číselný sloupec. */\r\n aggregationFunction: NullableAggregationFunction;\r\n /** Výsledek vybrané agregační funkce. */\r\n aggregationResult: AggregationResult;\r\n /** Formát použitý při zobrazování výsledku agregační funkce. */\r\n format: string | null;\r\n}>;\r\n\r\n/**\r\n * Data pro definici sloupce v agregačním řádku.\r\n */\r\nexport type ColumnDefinition = Readonly<{\r\n key: ColumnKey;\r\n attributeName?: string;\r\n columnType: ColumnType;\r\n width: number;\r\n format?: string;\r\n}>;\r\n\r\n/**\r\n * Objekt obsahující naformátované výsledky agregačních funkcí pod klíči sloupců, ke kterým patří.\r\n */\r\nexport type FormattedAggregationResults = TypedObject<AggregationResult>;\r\n\r\n/**\r\n * Objekt obsahující zvolené agregační funkce pod klíči sloupců, ke kterým patří.\r\n * Pokud není žádná vybraná, obsahuje null.\r\n */\r\nexport type ColumnAggregationFunctions = TypedObject<NullableAggregationFunction>;\r\n\r\n/**\r\n * Parametry pro selectory získávající údaje o agregačním řádku.\r\n */\r\nexport type SelectorParams = {\r\n readonly aggregationRowKey: AggregationRowKey;\r\n};\r\n\r\n/**\r\n * Parametry pro selectory získávající údaje o sloupci agregačního řádku.\r\n */\r\nexport type ColumnSelectorParams = SelectorParams & {\r\n readonly columnKey: ColumnKey;\r\n};\r\n\r\n/**\r\n * Lokalizovatelná option pro výběr agregační funkce.\r\n */\r\nexport type AggregationFunctionLocalizableOption = LocalizableOption<AggregationFunction>;\r\n\r\n/**\r\n * Lokalizovaná option pro výběr agregační funkce.\r\n */\r\nexport type AggregationFunctionOption = Option<AggregationFunction>;\r\n\r\nexport interface IAggregationRowMappedAction extends Action<string> {\r\n readonly meta: {\r\n readonly aggregationRowKey: AggregationRowKey;\r\n };\r\n}\r\n\r\nexport class IAggregationRowMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.aggregationRowKey;\r\n }\r\n}\r\n\r\nexport interface IInitAggregationRowAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly className: string;\r\n readonly columnDefinitions: ReadonlyArray<ColumnDefinition>;\r\n readonly orderOfColumns: ReadonlyArray<ColumnKey>;\r\n readonly numberOfFrozenColumns: number;\r\n readonly filter: Filter;\r\n };\r\n}\r\n\r\nexport class IInitAggregationRowAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === INIT_AGGREGATION_ROW;\r\n }\r\n}\r\n\r\nexport interface IClearAggregationRowAction extends IAggregationRowMappedAction {}\r\n\r\nexport class IClearAggregationRowAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_AGGREGATION_ROW;\r\n }\r\n}\r\n\r\nexport interface IAggregationFunctionSelectedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly columnKey: ColumnKey;\r\n readonly aggregationFunction: AggregationFunction | undefined;\r\n };\r\n}\r\n\r\nexport class IAggregationFunctionSelectedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === AGGREGATION_FUNCTION_SELECTED;\r\n }\r\n}\r\n\r\nexport interface ISetAggregationResultsAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly results: FormattedAggregationResults;\r\n };\r\n}\r\n\r\nexport class ISetAggregationResultsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_AGGREGATION_RESULTS;\r\n }\r\n}\r\n\r\nexport interface IColumnWidthChangedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly columnKey: ColumnKey;\r\n readonly width: number;\r\n };\r\n}\r\n\r\nexport class IColumnWidthChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === COLUMN_WIDTH_CHANGED;\r\n }\r\n}\r\n\r\nexport interface INumberOfFrozenColumnsChangedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly numberOfFrozenColumns: number;\r\n };\r\n}\r\n\r\nexport class INumberOfFrozenColumnsChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === NUMBER_OF_FROZEN_COLUMNS_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IOrderOfColumnsChangedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly orderOfColumns: ReadonlyArray<ColumnKey>;\r\n };\r\n}\r\n\r\nexport class IOrderOfColumnsChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === ORDER_OF_COLUMNS_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IColumnDefinitionsChangedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly columnDefinitions: ReadonlyArray<ColumnDefinition>;\r\n readonly orderOfColumns: ReadonlyArray<ColumnKey>;\r\n readonly numberOfFrozenColumns: number;\r\n };\r\n}\r\n\r\nexport class IColumnDefinitionsChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === COLUMN_DEFINITIONS_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IColumnAddedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly column: ColumnDefinition;\r\n };\r\n}\r\n\r\nexport class IColumnAddedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === COLUMN_ADDED;\r\n }\r\n}\r\n\r\nexport interface IColumnRemovedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly columnKey: ColumnKey;\r\n };\r\n}\r\n\r\nexport class IColumnRemovedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === COLUMN_REMOVED;\r\n }\r\n}\r\n\r\nexport interface IReloadAggregationResultsAction extends IAggregationRowMappedAction {}\r\n\r\nexport class IReloadAggregationResultsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === RELOAD_AGGREGATION_RESULTS;\r\n }\r\n}\r\n\r\nexport interface ICloseButtonActivatedAction extends IAggregationRowMappedAction {}\r\n\r\nexport class ICloseButtonActivatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLOSE_BUTTON_ACTIVATED;\r\n }\r\n}\r\n\r\nexport interface IFilterChangedAction extends IAggregationRowMappedAction {\r\n readonly payload: {\r\n readonly filter: Filter;\r\n };\r\n}\r\n\r\nexport class IFilterChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FILTER_CHANGED;\r\n }\r\n}\r\n","import { IAggregationsParams } from \"@multiweb/clients/dataReader\";\r\nimport { EMPTY_ARRAY, isArrayShallowEqual } from \"@multiweb/reactUtils\";\r\nimport { MutableTypedObject } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { AggregationResult, AggregationRowKey, Column, ColumnDefinition, Filter, FormattedAggregationResults } from \"./types\";\r\n\r\n/**\r\n * Vytvoří sloupec podle definice.\r\n * @param columnDefinition Definice sloupce.\r\n */\r\nexport const createColumn = ({ key, attributeName, columnType, width, format }: ColumnDefinition): Column => ({\r\n key,\r\n attributeName: attributeName ?? null,\r\n columnType,\r\n width,\r\n format: format ?? null,\r\n aggregationFunction: null,\r\n aggregationResult: null,\r\n});\r\n\r\n/**\r\n * Vytvoří klíč pro identifikaci načítání výsledku agregační funkce.\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který probíhá načítání.\r\n * @param columnKey Klíč sloupce, pro který probíhá načítání. Nezadává se, pokud načítání probíhá pro všechny sloupce agregačního řádku.\r\n */\r\nexport const createAggregationResultFetchingKey = (aggregationRowKey: AggregationRowKey, columnKey?: string) => `${NAME}/${aggregationRowKey}/${columnKey}`;\r\n\r\n/**\r\n * Porovná obsah filtrů pro agregační řádek. Vrací true pokud je obsah shodný.\r\n * @param firstFilter První filtr k porovnání.\r\n * @param secondFilter Druhý filtr k porovnání.\r\n */\r\nexport const areFiltersEqual = (firstFilter: Filter, secondFilter: Filter): boolean =>\r\n firstFilter.readVersioned === secondFilter.readVersioned &&\r\n firstFilter.condition === secondFilter.condition &&\r\n isArrayShallowEqual(firstFilter.conditionParams ?? EMPTY_ARRAY, secondFilter.conditionParams ?? EMPTY_ARRAY);\r\n\r\n/**\r\n * Vytvoří výsledky agregačních funkcí nastavené na prázdnou hodnotu (null) pro všechny sloupce přítomné v aggregationParams.\r\n * @param aggregationParams Parametry pro agregaci. Určují, pro které sloupce se vytvoří výsledky.\r\n */\r\nexport const createEmptyFormattedResults = (aggregationParams: IAggregationsParams): FormattedAggregationResults => Object.keys(aggregationParams)\r\n .reduce((result, columnKey) => {\r\n result[columnKey] = null;\r\n return result;\r\n }, {} as MutableTypedObject<AggregationResult>);\r\n","import { AnyAction, combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { aggregationRowLogger } from \"./logger\";\r\nimport {\r\n AggregationRow,\r\n AggregationRows,\r\n ColumnKey,\r\n Columns,\r\n Filter,\r\n IAggregationFunctionSelectedAction,\r\n IAggregationRowMappedAction,\r\n IAggregationRowState,\r\n IClearAggregationRowAction,\r\n IColumnAddedAction,\r\n IColumnDefinitionsChangedAction,\r\n IColumnRemovedAction,\r\n IColumnWidthChangedAction,\r\n IFilterChangedAction,\r\n IInitAggregationRowAction,\r\n INumberOfFrozenColumnsChangedAction,\r\n IOrderOfColumnsChangedAction,\r\n ISetAggregationResultsAction,\r\n NullableClassName,\r\n} from \"./types\";\r\nimport { createColumn } from \"./utils\";\r\n\r\nconst numberOfFrozenColumns: Reducer<number> = (state = 0, action) => {\r\n if (action instanceof IInitAggregationRowAction) {\r\n return action.payload.numberOfFrozenColumns;\r\n } else if (action instanceof INumberOfFrozenColumnsChangedAction) {\r\n return action.payload.numberOfFrozenColumns;\r\n } else if (action instanceof IColumnDefinitionsChangedAction) {\r\n return action.payload.numberOfFrozenColumns;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst orderOfColumns: Reducer<ReadonlyArray<ColumnKey>> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof IInitAggregationRowAction) {\r\n return action.payload.orderOfColumns;\r\n } else if (action instanceof IOrderOfColumnsChangedAction) {\r\n return action.payload.orderOfColumns;\r\n } else if (action instanceof IColumnDefinitionsChangedAction) {\r\n return action.payload.orderOfColumns;\r\n } else if (action instanceof IColumnAddedAction) {\r\n return [...state, action.payload.column.key];\r\n } else if (action instanceof IColumnRemovedAction) {\r\n return state.filter((columnKey) => columnKey !== action.payload.columnKey);\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst columns: Reducer<Columns> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IInitAggregationRowAction) {\r\n return action.payload.columnDefinitions.reduce((result, columnDefinition) => ({\r\n ...result,\r\n [columnDefinition.key]: createColumn(columnDefinition),\r\n }), {} as Columns);\r\n } else if (action instanceof IColumnDefinitionsChangedAction) {\r\n return produce(state, (draft) => {\r\n action.payload.columnDefinitions.forEach((columnDefinition) => {\r\n const column = draft[columnDefinition.key];\r\n if (column && column.columnType === columnDefinition.columnType) {\r\n const { aggregationFunction = null, aggregationResult = null } = column;\r\n draft[columnDefinition.key] = { ...createColumn(columnDefinition), aggregationFunction, aggregationResult };\r\n } else {\r\n draft[columnDefinition.key] = createColumn(columnDefinition);\r\n }\r\n });\r\n });\r\n } else if (action instanceof IColumnAddedAction) {\r\n return produce(state, (draft) => {\r\n const columnDefinition = action.payload.column;\r\n if (!draft[columnDefinition.key]) {\r\n draft[columnDefinition.key] = createColumn(columnDefinition);\r\n } else {\r\n aggregationRowLogger.warn(\"Cannot add column with key %s because it already exists.\", columnDefinition.key);\r\n }\r\n });\r\n } else if (action instanceof IColumnRemovedAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.payload.columnKey];\r\n });\r\n } else if (action instanceof IAggregationFunctionSelectedAction) {\r\n return produce(state, (draft) => {\r\n const { columnKey, aggregationFunction } = action.payload;\r\n if (draft[columnKey]) {\r\n draft[columnKey].aggregationFunction = aggregationFunction ?? null;\r\n draft[columnKey].aggregationResult = null;\r\n }\r\n });\r\n } else if (action instanceof ISetAggregationResultsAction) {\r\n return produce(state, (draft) => {\r\n Object.entries(action.payload.results).forEach(([columnKey, aggregationResult]) => {\r\n if (draft[columnKey]) {\r\n draft[columnKey].aggregationResult = aggregationResult;\r\n }\r\n });\r\n });\r\n } else if (action instanceof IColumnWidthChangedAction) {\r\n return produce(state, (draft) => {\r\n const { columnKey, width } = action.payload;\r\n if (draft[columnKey]) {\r\n draft[columnKey].width = width;\r\n }\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst className: Reducer<NullableClassName> = (state = null, action) => {\r\n if (action instanceof IInitAggregationRowAction) {\r\n return action.payload.className;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst filter: Reducer<Filter> = (state = { readVersioned: false, condition: \"\" }, action) => {\r\n if (action instanceof IInitAggregationRowAction) {\r\n return action.payload.filter;\r\n } else if (action instanceof IFilterChangedAction) {\r\n return action.payload.filter;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst aggregationRow: Reducer<AggregationRow> = combineReducers({\r\n className,\r\n numberOfFrozenColumns,\r\n orderOfColumns,\r\n columns,\r\n filter,\r\n});\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action instanceof IAggregationRowMappedAction ? action.meta.aggregationRowKey : undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(aggregationRow, instanceKeyResolver);\r\n\r\nconst aggregationRows: Reducer<AggregationRows> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IClearAggregationRowAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.aggregationRowKey];\r\n });\r\n } else {\r\n return instanceMapReducer(state, action);\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<IAggregationRowState> = combineReducers({\r\n aggregationRows,\r\n});\r\n","import { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport {\r\n AGGREGATION_FUNCTION_SELECTED,\r\n CLEAR_AGGREGATION_ROW,\r\n CLOSE_BUTTON_ACTIVATED,\r\n COLUMN_ADDED,\r\n COLUMN_DEFINITIONS_CHANGED,\r\n COLUMN_REMOVED,\r\n COLUMN_WIDTH_CHANGED,\r\n FILTER_CHANGED,\r\n INIT_AGGREGATION_ROW,\r\n NUMBER_OF_FROZEN_COLUMNS_CHANGED,\r\n ORDER_OF_COLUMNS_CHANGED,\r\n RELOAD_AGGREGATION_RESULTS,\r\n SET_AGGREGATION_RESULTS,\r\n} from \"./constants\";\r\nimport {\r\n AggregationRowKey,\r\n ColumnDefinition,\r\n ColumnKey,\r\n Filter,\r\n FormattedAggregationResults,\r\n IAggregationFunctionSelectedAction,\r\n IClearAggregationRowAction,\r\n ICloseButtonActivatedAction,\r\n IColumnAddedAction,\r\n IColumnDefinitionsChangedAction,\r\n IColumnRemovedAction,\r\n IColumnWidthChangedAction,\r\n IFilterChangedAction,\r\n IInitAggregationRowAction,\r\n INumberOfFrozenColumnsChangedAction,\r\n IOrderOfColumnsChangedAction,\r\n IReloadAggregationResultsAction,\r\n ISetAggregationResultsAction,\r\n} from \"./types\";\r\n\r\n/**\r\n * Inicializuje agregační řádek se zadaným klíčem a sloupci.\r\n *\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param className Jméno třídy, nad kterou se provádí agregace jejích atributů.\r\n * @param columnDefinitions Definice sloupců.\r\n * @param orderOfColumns Pořadí sloupců specifikované pomocí pořadí jejich klíčů v tomto poli.\r\n * @param numberOfFrozenColumns Počet sloupců zmrazených pro horizontální scrollování.\r\n * @param filter Počáteční hodnota filtru pro omezení agregovaných záznamů.\r\n */\r\nexport const createInitAggregationRowAction = (\r\n aggregationRowKey: AggregationRowKey,\r\n className: string,\r\n columnDefinitions: ReadonlyArray<ColumnDefinition>,\r\n orderOfColumns: ReadonlyArray<ColumnKey>,\r\n numberOfFrozenColumns: number,\r\n filter: Filter,\r\n): IInitAggregationRowAction => ({\r\n type: INIT_AGGREGATION_ROW,\r\n payload: {\r\n className,\r\n columnDefinitions,\r\n orderOfColumns,\r\n numberOfFrozenColumns,\r\n filter,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní všechna data pro agregační řádek se zadaným klíčem.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const createClearAggregationRowAction = (aggregationRowKey: AggregationRowKey): IClearAggregationRowAction => ({\r\n type: CLEAR_AGGREGATION_ROW,\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující výběr agregační funkce.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param columnKey Klíč sloupce, pro který byla vybrána agregační funkce.\r\n * @param aggregationFunction Vybraná agregační funkce.\r\n */\r\nexport const createAggregationFunctionSelectedAction = (\r\n aggregationRowKey: AggregationRowKey,\r\n columnKey: ColumnKey,\r\n aggregationFunction: AggregationFunction | undefined,\r\n): IAggregationFunctionSelectedAction => ({\r\n type: AGGREGATION_FUNCTION_SELECTED,\r\n payload: {\r\n columnKey,\r\n aggregationFunction,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví výsledky agregačních funkcí do odpovídajících sloupců.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param results Pole výsledků agregačních funkcí pro jednotlivé sloupce\r\n */\r\nexport const createSetAggregationResultsAction = (aggregationRowKey: AggregationRowKey, results: FormattedAggregationResults): ISetAggregationResultsAction => ({\r\n type: SET_AGGREGATION_RESULTS,\r\n payload: {\r\n results,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu šířky sloupce.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param columnKey Klíč sloupce, u kterého se změnila šířka.\r\n * @param width Šířka sloupce v pixelech.\r\n */\r\nexport const createColumnWidthChangedAction = (aggregationRowKey: AggregationRowKey, columnKey: ColumnKey, width: number): IColumnWidthChangedAction => ({\r\n type: COLUMN_WIDTH_CHANGED,\r\n payload: {\r\n columnKey,\r\n width,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu počtu sloupců se zmrazeným horizontálním scrollováním.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param numberOfFrozenColumns Počet sloupců se zmrazeným horizontálním scrollováním.\r\n */\r\nexport const createNumberOfFrozenColumnsChangedAction = (aggregationRowKey: AggregationRowKey, numberOfFrozenColumns: number): INumberOfFrozenColumnsChangedAction => ({\r\n type: NUMBER_OF_FROZEN_COLUMNS_CHANGED,\r\n payload: {\r\n numberOfFrozenColumns,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu pořadí sloupců.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param orderOfColumns Pole s klíči sloupců v novém pořadí.\r\n */\r\nexport const createOrderOfColumnsChangedAction = (aggregationRowKey: AggregationRowKey, orderOfColumns: ReadonlyArray<ColumnKey>): IOrderOfColumnsChangedAction => ({\r\n type: ORDER_OF_COLUMNS_CHANGED,\r\n payload: {\r\n orderOfColumns,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu definic sloupců. Nemění zvolené agregační funkce a jejich výsledky pokud je zachován typ sloupce.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param columnDefinitions Definice sloupců.\r\n * @param orderOfColumns Pořadí sloupců specifikované pomocí pořadí jejich klíčů v tomto poli.\r\n * @param numberOfFrozenColumns Počet sloupců zmrazených pro horizontální scrollování.\r\n */\r\nexport const createColumnDefinitionsChangedAction = (\r\n aggregationRowKey: AggregationRowKey,\r\n columnDefinitions: ReadonlyArray<ColumnDefinition>,\r\n orderOfColumns: ReadonlyArray<ColumnKey>,\r\n numberOfFrozenColumns: number,\r\n): IColumnDefinitionsChangedAction => ({\r\n type: COLUMN_DEFINITIONS_CHANGED,\r\n payload: {\r\n columnDefinitions,\r\n orderOfColumns,\r\n numberOfFrozenColumns,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující přidání sloupce.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param column Definice nového sloupce.\r\n */\r\nexport const createColumnAddedAction = (aggregationRowKey: AggregationRowKey, column: ColumnDefinition): IColumnAddedAction => ({\r\n type: COLUMN_ADDED,\r\n payload: {\r\n column,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující odebrání sloupce.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @param columnKey Klíč odebraného sloupce.\r\n */\r\nexport const createColumnRemovedAction = (aggregationRowKey: AggregationRowKey, columnKey: ColumnKey): IColumnRemovedAction => ({\r\n type: COLUMN_REMOVED,\r\n payload: {\r\n columnKey,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Provede načtení hodnot pro všechny sloupce, které mají vybranou agregační funkcí.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const createReloadAggregationResultsAction = (aggregationRowKey: AggregationRowKey): IReloadAggregationResultsAction => ({\r\n type: RELOAD_AGGREGATION_RESULTS,\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující aktivaci tlačítka pro zavření agregačního řádku.\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const createCloseButtonActivatedAction = (aggregationRowKey: AggregationRowKey): ICloseButtonActivatedAction => ({\r\n type: CLOSE_BUTTON_ACTIVATED,\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu filtru pro záznamy v tabulce.\r\n * @param aggregationRowKey Klíč agregačního řádku, pro nějž se změnil filtr.\r\n * @param filter Nové hodnoty filtru.\r\n */\r\nexport const createFilterChangedAction = (aggregationRowKey: AggregationRowKey, filter: Filter): IFilterChangedAction => ({\r\n type: FILTER_CHANGED,\r\n payload: {\r\n filter,\r\n },\r\n meta: {\r\n aggregationRowKey,\r\n },\r\n});\r\n","export const SUM_OPTION_LOC_KEY = \"GUI-708294\"; // Celkem\r\nexport const AVG_OPTION_LOC_KEY = \"GUI-708295\"; // Průměr\r\nexport const MIN_OPTION_LOC_KEY = \"GUI-708296\"; // Min\r\nexport const MAX_OPTION_LOC_KEY = \"GUI-708297\"; // Max\r\nexport const SELECT_OPTION_LOC_KEY = \"GUI-311684\"; // Vybrat\r\n","import { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport { AVG_OPTION_LOC_KEY, MAX_OPTION_LOC_KEY, MIN_OPTION_LOC_KEY, SUM_OPTION_LOC_KEY } from \"./locKeys\";\r\nimport { AggregationFunctionLocalizableOption } from \"./types\";\r\n\r\nconst SUM_OPTION: AggregationFunctionLocalizableOption = {\r\n locKey: SUM_OPTION_LOC_KEY,\r\n value: AggregationFunction.sum,\r\n};\r\n\r\nconst AVG_OPTION: AggregationFunctionLocalizableOption = {\r\n locKey: AVG_OPTION_LOC_KEY,\r\n value: AggregationFunction.avg,\r\n};\r\n\r\nconst MIN_OPTION: AggregationFunctionLocalizableOption = {\r\n locKey: MIN_OPTION_LOC_KEY,\r\n value: AggregationFunction.min,\r\n};\r\n\r\nconst MAX_OPTION: AggregationFunctionLocalizableOption = {\r\n locKey: MAX_OPTION_LOC_KEY,\r\n value: AggregationFunction.max,\r\n};\r\n\r\n/**\r\n * Dostupné možnosti pro výběr agregační funkce. Pořadí odpovídá sketchy ze zadání user story 1560.\r\n */\r\nexport const AGGREGATION_OPTIONS: ReadonlyArray<AggregationFunctionLocalizableOption> = [SUM_OPTION, AVG_OPTION, MIN_OPTION, MAX_OPTION];\r\n\r\n/**\r\n * Lokalizační klíče možností pro výběr agregační funkce.\r\n */\r\nexport const OPTIONS_LOCALIZATION_KEYS: ReadonlyArray<string> = AGGREGATION_OPTIONS.map((option) => option.locKey);\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { AggregationFunction, AggregationParams, IAggregationsParams } from \"@multiweb/clients/dataReader\";\r\nimport { isFetching } from \"@multiweb/reactCore/fetching\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { DEFAULT_FORMAT_GENERAL } from \"./constants\";\r\nimport {\r\n AggregationResult,\r\n AggregationRow,\r\n AggregationRowKey,\r\n Column,\r\n ColumnAggregationFunctions,\r\n ColumnKey,\r\n ColumnSelectorParams,\r\n ColumnType,\r\n Filter,\r\n IAggregationRowState,\r\n SelectorParams,\r\n} from \"./types\";\r\nimport { createAggregationResultFetchingKey } from \"./utils\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící modulu agregačního řádku.\r\n * @param state\r\n */\r\nconst getModel: Selector<IAppState, IAggregationRowState> = (state) => state.aggregationRow;\r\n\r\n/**\r\n * Získá podstrom stavu patřící konkrétnímu agregačnímu řádku.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku sloužící k jeho jednoznačné identifikaci.\r\n * @throws Vyhazuje chybu v případě, že agregační řádek se zadaným klíčem neexistuje.\r\n */\r\nconst getAggregationRow: Selector<IAppState, AggregationRow, AggregationRowKey> = (state, aggregationRowKey) => {\r\n const aggregationRowState = getModel(state).aggregationRows[aggregationRowKey];\r\n if (!aggregationRowState) {\r\n throw new Error(`Aggregation row with key ${aggregationRowKey} is not initialized.`);\r\n }\r\n return aggregationRowState;\r\n};\r\n\r\n/**\r\n * Získá sloupec agregačního řádku podle jeho klíče.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumn: Selector<IAppState, Column | undefined, ColumnSelectorParams> = (state, { aggregationRowKey, columnKey }) => getAggregationRow(state, aggregationRowKey).columns[columnKey];\r\n\r\n/**\r\n * Získá pořadí sloupců pro vykreslení. Pořadí je definováno pořadím klíčů sloupců v poli.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který se získává pořadí sloupců.\r\n */\r\nexport const getOrderOfColumns: Selector<IAppState, ReadonlyArray<ColumnKey>, SelectorParams> = (state, { aggregationRowKey }) => getAggregationRow(state, aggregationRowKey).orderOfColumns;\r\n\r\n/**\r\n * Získá počet sloupců zmražených vůči horizontálnímu scrollování.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který se získává počet zmražených sloupců.\r\n */\r\nexport const getNumberOfFrozenColumns: Selector<IAppState, number, SelectorParams> = (state, { aggregationRowKey }) => getAggregationRow(state, aggregationRowKey).numberOfFrozenColumns;\r\n\r\n/**\r\n * Získá název třídy (entity), pro kterou se provádí agregace.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který se získává název třídy.\r\n */\r\nexport const getClassName: Selector<IAppState, string | undefined, SelectorParams> = (state, { aggregationRowKey }) => getAggregationRow(state, aggregationRowKey).className ?? undefined;\r\n\r\n/**\r\n * Získá filtr pro omezení agregovaných záznamů.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který se získává filtr.\r\n */\r\nexport const getFilter: Selector<IAppState, Filter, SelectorParams> = (state, { aggregationRowKey }) => getAggregationRow(state, aggregationRowKey).filter;\r\n\r\n/**\r\n * Získá šířku sloupce agregačního řádku podle jeho klíče.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumnWidth: Selector<IAppState, number | undefined, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.width;\r\n\r\n/**\r\n * Získá typ sloupce agregačního řádku podle jeho klíče.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n * @see ColumnType\r\n */\r\nexport const getColumnType: Selector<IAppState, ColumnType | undefined, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.columnType;\r\n\r\n/**\r\n * Získá vybranou agregační funkci pro sloupce agregačního řádku podle jeho klíče.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumnAggregationFunction: Selector<IAppState, AggregationFunction | undefined, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.aggregationFunction ?? undefined;\r\n\r\n/**\r\n * Získá výsledek agregační funkce pro sloupec agregačního řádku podle jeho klíče. Výsledek je již ve formě naformátovaného řetězce.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumnAggregationResult: Selector<IAppState, AggregationResult | undefined, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.aggregationResult ?? undefined;\r\n\r\n/**\r\n * Získá název atributu, který sloupec zobrazuje.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumnAttributeName: Selector<IAppState, string | undefined, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.attributeName ?? undefined;\r\n\r\n/**\r\n * Získá formátovací řetězec pro sloupec agregačního řádku podle jeho klíče.\r\n * @param state\r\n * @param params Objekt obsahující parametry.\r\n * @param params.aggregationRowKey Klíč agregačního řádku, ze kterého se sloupec získává.\r\n * @param params.columnKey Klíč získávaného sloupce.\r\n */\r\nexport const getColumnFormat: Selector<IAppState, string, ColumnSelectorParams> = (state, params) => getColumn(state, params)?.format ?? DEFAULT_FORMAT_GENERAL;\r\n\r\n/**\r\n * Vytvoří selector pro získání klíčů sloupců se zmraženým horizontálním scrollováním v pořadí jejich vykreslení.\r\n */\r\nexport const createGetOrderedFrozenColumnKeys = () => createSelector<IAppState, SelectorParams, ReturnType<typeof getNumberOfFrozenColumns>, ReturnType<typeof getOrderOfColumns>, ReadonlyArray<ColumnKey>>(\r\n (state, params) => getNumberOfFrozenColumns(state, params),\r\n (state, params) => getOrderOfColumns(state, params),\r\n (numberOfFrozenColumns, orderOfColumns) => orderOfColumns.slice(0, numberOfFrozenColumns),\r\n);\r\n\r\n/**\r\n * Vytvoří selector pro získání klíčů sloupců, které nemají zmražené horizontální scrollování, v pořadí jejich vykreslení.\r\n */\r\nexport const createGetOrderedNonFrozenColumnKeys = () => createSelector<IAppState, SelectorParams, ReturnType<typeof getNumberOfFrozenColumns>, ReturnType<typeof getOrderOfColumns>, ReadonlyArray<ColumnKey>>(\r\n (state, params) => getNumberOfFrozenColumns(state, params),\r\n (state, params) => getOrderOfColumns(state, params),\r\n (numberOfFrozenColumns, orderOfColumns) => orderOfColumns.slice(numberOfFrozenColumns),\r\n);\r\n\r\n/**\r\n * Zjistí, zda probíhá načítání výsledku agregační funkce pro sloupec se zadaným klíčem.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, na jehož sloupec se dotazujeme.\r\n * @param columnKey Klíč sloupce, na jehož načítání se dotazujeme.\r\n */\r\nexport const isColumnResultLoading: Selector<IAppState, boolean, ColumnSelectorParams> = (state, { aggregationRowKey, columnKey }) =>\r\n isFetching(state, createAggregationResultFetchingKey(aggregationRowKey)) || // načítá se pro všechny sloupce agregačního řádku\r\n isFetching(state, createAggregationResultFetchingKey(aggregationRowKey, columnKey)); // načítá se dotazovaný sloupec\r\n\r\n/**\r\n * Získá vstup pro hromadné načtení výsledků pro agregační funkce numerických řádků. Není použitý reselect, protože selector je určený pouze pro ságu a nebude se\r\n * volat příliš často.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, pro který se mají získat vstupy k načtení výsledků.\r\n */\r\nexport const unsafeGetColumnsForReload: Selector<IAppState, IAggregationsParams, SelectorParams> = (state, { aggregationRowKey }) => Object.values(getAggregationRow(state, aggregationRowKey).columns)\r\n .filter(({ columnType, aggregationFunction }) => columnType === ColumnType.numeric && aggregationFunction)\r\n .reduce((result, { key, aggregationFunction, attributeName }) => ({\r\n ...result,\r\n [key]: {\r\n attributeName,\r\n aggregationFunction,\r\n } as AggregationParams,\r\n }), {} as IAggregationsParams);\r\n\r\n/**\r\n * Získá objekt obsahující zvolené agregační funkce pod klíči sloupců. Není použitý reselect, protože selector je určený pouze pro ságu a nebude se\r\n * volat příliš často.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, na jehož sloupec se dotazujeme.\r\n */\r\nexport const unsafeGetColumnsAggregationFunctions: Selector<IAppState, ColumnAggregationFunctions, SelectorParams> = (state, { aggregationRowKey }) => (\r\n Object.values(getAggregationRow(state, aggregationRowKey).columns)\r\n .filter(({ columnType }) => columnType === ColumnType.numeric)\r\n .reduce((result, { key, aggregationFunction }) => ({\r\n ...result,\r\n [key]: aggregationFunction,\r\n }), {} as ColumnAggregationFunctions)\r\n);\r\n\r\n/**\r\n * Získá objekt obsahující všechny zvolené agregační funkce pod klíči sloupců. Není použitý reselect, protože selector je určený pouze pro ságu a nebude se\r\n * volat příliš často.\r\n * @param state\r\n * @param aggregationRowKey Klíč agregačního řádku, na jehož sloupec se dotazujeme.\r\n */\r\nexport const unsafeGetAllColumnsAggregationFunctions: Selector<IAppState, ColumnAggregationFunctions, SelectorParams> = (state, { aggregationRowKey }) => (\r\n Object.values(getAggregationRow(state, aggregationRowKey).columns)\r\n .reduce((result, { key, aggregationFunction }) => ({\r\n ...result,\r\n [key]: aggregationFunction,\r\n }), {} as ColumnAggregationFunctions)\r\n);\r\n","import { all, call, fork, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { createSetFetchingAction } from \"@multiweb/reactCore/fetching\";\r\nimport { createLoadLocalizationKeysAction } from \"@multiweb/reactCore/i18n\";\r\nimport { IAggregationsResult } from \"@multiweb/types/contracts\";\r\nimport { IBigNumber } from \"@multiweb/types/multiweb\";\r\nimport { SagaWithReturnType, SagaYieldReturn, TypedObject } from \"@multiweb/types/react\";\r\nimport { createSetAggregationResultsAction } from \"./actions\";\r\nimport { AGGREGATION_FUNCTION_SELECTED, FETCHING_KEY_STATIC_ITEMS, FILTER_CHANGED, RELOAD_AGGREGATION_RESULTS } from \"./constants\";\r\nimport { SELECT_OPTION_LOC_KEY } from \"./locKeys\";\r\nimport { aggregationRowLogger } from \"./logger\";\r\nimport { OPTIONS_LOCALIZATION_KEYS } from \"./options\";\r\nimport { getClassName, getColumnAttributeName, getColumnFormat, getFilter, unsafeGetColumnsForReload } from \"./selectors\";\r\nimport {\r\n AggregationRowKey,\r\n ColumnKey,\r\n FormattedAggregationResults,\r\n IAggregationFunctionSelectedAction,\r\n IReloadAggregationResultsAction,\r\n} from \"./types\";\r\nimport { createAggregationResultFetchingKey, createEmptyFormattedResults } from \"./utils\";\r\n\r\nconst { getDataReaderClient, getFormattedNumberString } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* aggregationRowSaga() {\r\n yield fork(loadLocalizationsSaga);\r\n yield takeEvery(AGGREGATION_FUNCTION_SELECTED, aggregationFunctionSelectedSaga);\r\n yield takeEvery([RELOAD_AGGREGATION_RESULTS, FILTER_CHANGED], reloadAggregationResultsSaga);\r\n};\r\n\r\n/**\r\n * Načte lokalizace.\r\n */\r\nexport const loadLocalizationsSaga: SagaWithReturnType = function* loadLocalizationsSaga() {\r\n yield put(createLoadLocalizationKeysAction([...OPTIONS_LOCALIZATION_KEYS, SELECT_OPTION_LOC_KEY], FETCHING_KEY_STATIC_ITEMS));\r\n};\r\n\r\n/**\r\n * Obsluhuje výběr agregační funkce.\r\n * @param action\r\n */\r\nexport const aggregationFunctionSelectedSaga: SagaWithReturnType<[IAggregationFunctionSelectedAction]> = function* aggregationFunctionSelectedSaga(action) {\r\n const { columnKey, aggregationFunction } = action.payload;\r\n const { aggregationRowKey } = action.meta;\r\n if (!aggregationFunction) {\r\n return;\r\n }\r\n const className: ReturnType<typeof getClassName> = yield select(getClassName, { aggregationRowKey });\r\n if (!className) {\r\n yield call(aggregationRowLogger.error, \"Cannot load aggregation result for aggregation row %s because it does not have defined className.\", aggregationRowKey);\r\n return;\r\n }\r\n const attributeName: ReturnType<typeof getColumnAttributeName> = yield select(getColumnAttributeName, { aggregationRowKey, columnKey });\r\n if (!attributeName) {\r\n yield call(aggregationRowLogger.error, \"Cannot load aggregation result for aggregation row %s because its column %s does not have defined attributeName.\", aggregationRowKey, columnKey);\r\n return;\r\n }\r\n const { condition, conditionParams, readVersioned }: ReturnType<typeof getFilter> = yield select(getFilter, { aggregationRowKey });\r\n\r\n const fetchingKey: ReturnType<typeof createAggregationResultFetchingKey> = yield call(createAggregationResultFetchingKey, aggregationRowKey, columnKey);\r\n yield put(createSetFetchingAction(fetchingKey, true));\r\n\r\n try {\r\n const dataReaderClient: ReturnType<typeof getDataReaderClient> = yield call(getDataReaderClient);\r\n const result: SagaYieldReturn<typeof dataReaderClient.getAggregation> = yield call(dataReaderClient.getAggregation.bind(dataReaderClient), aggregationFunction, className, attributeName, condition, conditionParams, readVersioned);\r\n const formattedResult: SagaYieldReturn<typeof formatResultSaga> = yield call(formatResultSaga, aggregationRowKey, columnKey, result);\r\n yield put(createSetAggregationResultsAction(aggregationRowKey, { [columnKey]: formattedResult }));\r\n } catch (error) {\r\n yield call(\r\n aggregationRowLogger.error, \"Loading of aggregation failed: %s. Input parameters: %O\", error instanceof Error ? error?.message : \"\", {\r\n aggregationRowKey,\r\n className,\r\n columnKey,\r\n attributeName,\r\n aggregationFunction,\r\n condition,\r\n conditionParams,\r\n readVersioned,\r\n });\r\n // při chybě vymažeme předchozí výsledek, protože již není aktuální\r\n yield put(createSetAggregationResultsAction(aggregationRowKey, { [columnKey]: null }));\r\n } finally {\r\n yield put(createSetFetchingAction(fetchingKey, false));\r\n }\r\n};\r\n\r\n/**\r\n * Načte výsledky agregačních funkcí pro všechny numerické sloupce s vybranou agregační funkcí v jednom agregačním řádku.\r\n * @param action\r\n */\r\nexport const reloadAggregationResultsSaga: SagaWithReturnType<[IReloadAggregationResultsAction]> = function* reloadAggregationResultsSaga(action) {\r\n const { aggregationRowKey } = action.meta;\r\n const className: ReturnType<typeof getClassName> = yield select(getClassName, { aggregationRowKey });\r\n if (!className) {\r\n yield call(aggregationRowLogger.error, \"Cannot load aggregation results for aggregation row %s because it does not have defined className.\", aggregationRowKey);\r\n return;\r\n }\r\n const { condition, conditionParams, readVersioned }: ReturnType<typeof getFilter> = yield select(getFilter, { aggregationRowKey });\r\n\r\n const fetchingKey: ReturnType<typeof createAggregationResultFetchingKey> = yield call(createAggregationResultFetchingKey, aggregationRowKey);\r\n yield put(createSetFetchingAction(fetchingKey, true));\r\n const aggregationParams: ReturnType<typeof unsafeGetColumnsForReload> = yield select(unsafeGetColumnsForReload, { aggregationRowKey });\r\n try {\r\n const dataReaderClient: ReturnType<typeof getDataReaderClient> = yield call(getDataReaderClient);\r\n const results: SagaYieldReturn<typeof dataReaderClient.getAggregations> = yield call(dataReaderClient.getAggregations.bind(dataReaderClient), aggregationParams, className, condition, conditionParams, readVersioned);\r\n const formattedResults: SagaYieldReturn<typeof formatResultsSaga> = yield call(formatResultsSaga, aggregationRowKey, results);\r\n yield put(createSetAggregationResultsAction(aggregationRowKey, formattedResults));\r\n } catch (error) {\r\n yield call(aggregationRowLogger.error, \"Loading of aggregations failed: %s. Input parameters: %O\", error instanceof Error ? error?.message : \"\", {\r\n aggregationRowKey,\r\n className,\r\n condition,\r\n conditionParams,\r\n readVersioned,\r\n });\r\n // při chybě vymažeme předchozí výsledek, protože již není aktuální\r\n yield put(createSetAggregationResultsAction(aggregationRowKey, createEmptyFormattedResults(aggregationParams)));\r\n } finally {\r\n yield put(createSetFetchingAction(fetchingKey, false));\r\n }\r\n};\r\n\r\n/**\r\n * Naformátuje všechny výsledky.\r\n * @param aggregationRowKey Klíč agregačního řádku, do kterého patří sloupce, pro než se formátují výsledky.\r\n * @param results Výsledky k naformátování. Musí být klíčované přes klíč sloupce, aby bylo možné získat formát sloupce.\r\n * @return Naformátované výsledky.\r\n */\r\nexport const formatResultsSaga: SagaWithReturnType<[AggregationRowKey, IAggregationsResult], FormattedAggregationResults> = function* formatResultsSaga(aggregationRowKey, results) {\r\n const formattedAggregationResults: TypedObject<SagaYieldReturn<typeof formatResultSaga>> = yield all(\r\n Object.entries(results)\r\n .reduce((acc, [columnKey, result]) => ({\r\n ...acc,\r\n [columnKey]: call(formatResultSaga, aggregationRowKey, columnKey, result),\r\n }), {}),\r\n );\r\n return formattedAggregationResults;\r\n};\r\n\r\n/**\r\n * Naformátuje výsledek agregační funkce pro konkrétní sloupec.\r\n * @param aggregationRowKey Klíč agregačního řádku, do kterého sloupec patří.\r\n * @param columnKey Klíč sloupce, z něhož se načte formátovací řetězec.\r\n * @param result Hodnota k naformátování.\r\n * @return Naformátovaná hodnota v podobě textu.\r\n */\r\nexport const formatResultSaga: SagaWithReturnType<[AggregationRowKey, ColumnKey, IBigNumber], string> = function* formatResultSaga(aggregationRowKey, columnKey, result) {\r\n const displayFormat: SagaYieldReturn<typeof getColumnFormat> = yield select(getColumnFormat, { aggregationRowKey, columnKey });\r\n const numberString: SagaYieldReturn<typeof getFormattedNumberString> = yield call(getFormattedNumberString, result, { displayFormat });\r\n return numberString;\r\n};\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\n\r\n/**\r\n * Obsahuje definici enumů používaných v Icon komponentě. Enumy jsou v separátním souboru z důvodu\r\n * přehlednosti.\r\n */\r\n\r\n/**\r\n * Vlastnost `speak` ovlivňuje chování prohlížeče při čtení obsahu – používané například při\r\n * práci se čtečkami obrazovky.\r\n * @see https://css-tricks.com/almanac/properties/s/speak/\r\n */\r\nexport enum SpeakProperty {\r\n /** Komponenta dědí vlastnost ze svého předka */\r\n inherit = \"inherit\",\r\n /** Obsah komponenty nebude zahrnut při čtení stránky */\r\n none = \"none\",\r\n /** Použije se výchozí chování prohlížeče */\r\n normal = \"normal\",\r\n}\r\n\r\nexport enum IconSize {\r\n large = \"large\",\r\n small = \"small\",\r\n}\r\n\r\n/**\r\n * Barva ikony. Na barvy se aplikuje téma aplikace.\r\n * Změny je nutné reflektovat v proměnné @icon-colors v souboru Icon/constants.less.\r\n */\r\nexport enum IconColor {\r\n\r\n /*----- Obecné -----*/\r\n default = \"default\",\r\n inherit = \"inherit\",\r\n\r\n /*----- Odstíny šedi -----*/\r\n /* black-white (výchozí) */\r\n textPrimary = \"text-primary\",\r\n textSecondary = \"text-secondary\",\r\n textDisabled = \"text-disabled\",\r\n blackWhite = \"black-white\",\r\n\r\n /* černá-černá */\r\n blackPrimaryFixed = \"black-primary-fixed\",\r\n blackSecondaryFixed = \"black-secondary-fixed\",\r\n blackDisabledFixed = \"black-secondary-fixed\",\r\n\r\n /* bílá-bílá */\r\n whitePrimaryFixed = \"white-primary-fixed\",\r\n whiteSecondaryFixed = \"white-secondary-fixed\",\r\n whiteDisabledFixed = \"white-secondary-fixed\",\r\n\r\n /* bílá-černá */\r\n textPrimaryInverted = \"text-primary-inverted\",\r\n textSecondaryInverted = \"text-secondary-inverted\",\r\n textDisabledInverted = \"text-primary-inverted\",\r\n whiteBlack = \"white-black\",\r\n\r\n /*----- Branding -----*/\r\n\r\n /* tmavá-světlá (výchozí) */\r\n colorPrimary = \"color-primary\",\r\n colorSecondary = \"color-secondary\",\r\n\r\n /* tmavá-tmavá */\r\n colorPrimaryDarkFixed = \"color-primary-dark-fixed\",\r\n colorSecondaryDarkFixed = \"color-secondary-dark-fixed\",\r\n blackFixed = \"black-fixed\",\r\n\r\n /* světlá-světlá */\r\n colorPrimaryLightFixed = \"color-primary-light-fixed\",\r\n colorSecondaryLightFixed = \"color-secondary-light-fixed\",\r\n whiteFixed = \"white-fixed\",\r\n\r\n /* Saturované */\r\n\r\n red = \"red\",\r\n pink = \"pink\",\r\n purple = \"purple\",\r\n deeppurple = \"deeppurple\",\r\n indigo = \"indigo\",\r\n blue = \"blue\",\r\n lightblue = \"lightblue\",\r\n cyan = \"cyan\",\r\n teal = \"teal\",\r\n green = \"green\",\r\n lightgreen = \"light\",\r\n lime = \"lime\",\r\n yellow = \"yellow\",\r\n amber = \"amber\",\r\n orange = \"orange\",\r\n deeporange = \"deeporange\",\r\n grey1 = \"grey-1\",\r\n\r\n}\r\n/**\r\n * Určuje variantu stylů tlačítka\r\n */\r\nexport enum IconThemeVariant {\r\n default = \"default\",\r\n avatar = \"avatar\",\r\n}\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, createQA, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { AccessibilityProps, QAProps } from \"@multiweb/types/react\";\r\nimport { IconColor, IconSize, IconThemeVariant, SpeakProperty } from \"./IconEnums\";\r\n\r\nexport type IconProps = {\r\n /** Kód určující, která ikona se zobrazí. */\r\n iconCode: IconCode;\r\n /** Popisek pro bližší vysvětlení ikony, který se zobrazí po najetí kurzoru. */\r\n title?: string;\r\n disabled?: boolean;\r\n size?: IconSize | number;\r\n /** Chování při čtení obsahu prohlížečem. Více informací u definice výčtového typu SpeakProperty */\r\n speak?: SpeakProperty;\r\n color?: IconColor;\r\n variant?: IconThemeVariant;\r\n} & QAProps & Pick<AccessibilityProps, \"role\" | \"tabIndex\" | \"hideOutlineOnFocus\" | \"ariaChecked\" | \"ariaDisabled\">;\r\n\r\nconst classNames = bemClassNames(\"icon-component\");\r\n\r\nexport const Icon: FunctionComponent<IconProps> = ({\r\n color = IconColor.inherit,\r\n iconCode,\r\n disabled = false,\r\n size = IconSize.small,\r\n speak = SpeakProperty.none,\r\n title,\r\n role,\r\n qa,\r\n tabIndex,\r\n hideOutlineOnFocus,\r\n ariaChecked,\r\n ariaDisabled,\r\n variant = IconThemeVariant.default,\r\n}) => {\r\n const numericSize: number | undefined = !isNaN(Number(size)) ? size as number : undefined;\r\n return (\r\n <span\r\n style={numericSize ? { fontSize: numericSize } : undefined}\r\n className={classNames(transformKeysToParamCase({\r\n color,\r\n icon: iconCode,\r\n size: numericSize ? undefined : size,\r\n speak,\r\n disabled,\r\n hideOutlineOnFocus,\r\n variant,\r\n }))}\r\n aria-checked={ariaChecked}\r\n aria-disabled={ariaDisabled}\r\n {...{ title, role, tabIndex }}\r\n {...createQA(qa)}\r\n />\r\n );\r\n};\r\n","export * from \"./Icon\";\r\nexport * from \"./IconEnums\";\r\n","/** Více informací ve *story* **Design/Styl/Témata – Témata komponent**. */\r\nexport enum ComponentTheme {\r\n default = \"default\",\r\n dark = \"dark\",\r\n inverted = \"inverted\",\r\n light = \"light\",\r\n}\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\n\r\nconst classNames = bemClassNames(\"spinner-component\");\r\nconst spinnerLeft = classNames(\"left\");\r\nconst spinnerRight = classNames(\"right\");\r\nconst spinnerBorderRight = classNames(\"border-right\");\r\nconst spinnerBorderLeft = classNames(\"border-left\");\r\n\r\nexport enum SpinnerSize {\r\n small = \"small\",\r\n fullscreen = \"fullscreen\",\r\n toolbar = \"toolbar\",\r\n}\r\n\r\nexport enum SpinnerTheme {\r\n gray = \"gray\",\r\n light = \"light\",\r\n colored = \"colored\",\r\n}\r\n\r\nexport type SpinnerComponentProps = {\r\n theme?: SpinnerTheme;\r\n size?: SpinnerSize;\r\n};\r\n\r\nexport const SpinnerComponent: FunctionComponent<SpinnerComponentProps> = ({ theme, size }) => (\r\n <div className={classNames(transformKeysToParamCase({\r\n theme,\r\n size,\r\n }))}>\r\n <div className={spinnerRight}>\r\n <div className={spinnerBorderRight}></div>\r\n </div>\r\n <div className={spinnerLeft}>\r\n <div className={spinnerBorderLeft}></div>\r\n </div>\r\n </div>\r\n);\r\n","export * from \"./SpinnerComponent\";\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\n\r\n/**\r\n * Barva pozadí. Na barvy se aplikuje téma aplikace.\r\n * Úpravy je nutné promítnout i do souboru constants.less.\r\n */\r\nexport enum ButtonBackgroundColor {\r\n\r\n /*----- Obecné -----*/\r\n default = \"default\",\r\n inherit = \"inherit\",\r\n\r\n /*----- Pozadí -----*/\r\n headerBgWithoutBlur = \"header-bg-without-blur\",\r\n buttonPrimary = \"button-primary\",\r\n buttonPrimaryColor = \"button-primary-color\",\r\n transparent = \"transparent\",\r\n\r\n /*----- Odstíny šedi -----*/\r\n /* black-white (výchozí) */\r\n blackWhite = \"black-white\",\r\n\r\n /* černá-černá */\r\n blackPrimaryFixed = \"black-primary-fixed\",\r\n blackSecondaryFixed = \"black-secondary-fixed\",\r\n blackDisabledFixed = \"black-secondary-fixed\",\r\n\r\n /* bílá-bílá */\r\n whitePrimaryFixed = \"white-primary-fixed\",\r\n whiteSecondaryFixed = \"white-secondary-fixed\",\r\n whiteDisabledFixed = \"white-secondary-fixed\",\r\n\r\n /* bílá-černá */\r\n whiteBlack = \"white-black\",\r\n\r\n /*----- Branding -----*/\r\n\r\n /* tmavá-světlá (výchozí) */\r\n colorPrimary = \"color-primary\",\r\n colorSecondary = \"color-secondary\",\r\n\r\n /* tmavá-tmavá */\r\n colorPrimaryDarkFixed = \"color-primary-dark-fixed\",\r\n colorSecondaryDarkFixed = \"color-secondary-dark-fixed\",\r\n blackFixed = \"black-fixed\",\r\n\r\n /* světlá-světlá */\r\n colorPrimaryLightFixed = \"color-primary-light-fixed\",\r\n colorSecondaryLightFixed = \"color-secondary-light-fixed\",\r\n whiteFixed = \"white-fixed\",\r\n\r\n /*----- Status -----*/\r\n\r\n /* Success */\r\n colorSuccess = \"color-success\",\r\n\r\n /* Information */\r\n colorInformation = \"color-information\",\r\n\r\n /* Warning */\r\n colorWarning = \"color-warning\",\r\n\r\n /* Error */\r\n colorError = \"color-error\",\r\n}\r\n\r\n/**\r\n * Určuje variantu stylů tlačítka\r\n */\r\nexport enum ButtonThemeVariant {\r\n /**\r\n * Příznak, zda má tlačítko používat styly třídy value-picker.\r\n * Tato třída obsahuje volání less funkce ecButton (styly pro tlačítka dědící z editable controlu).\r\n * Příznak zároveň přepíná styly na základě stavů, které jsou do ButtonProvideru předávány. Podporovány jsou následující stavy:\r\n * - enabled - styly povoleného tlačítka\r\n * - disabled - styly zakázaného tlačítka\r\n * - invalid - styly nevalidního stavu tlačítko\r\n */\r\n valuePicker = \"value-picker\",\r\n /** Styl tlačítka pro dropdown */\r\n dropdown = \"dropdown\",\r\n avatar = \"avatar\",\r\n default = \"default\",\r\n}\r\n","import { TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils/constants\";\r\nimport { OptionalTabIndex } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Funkce vrací tab index v závislosti na `disabled`.\r\n * Pokud je `disabled` <code><i>true</i></code>, vrací {@link TAB_INDEX_FOCUSABLE_ONLY}.\r\n * Pokud je `disabled` <code><i>false</i></code>, vrací původní hodnotu `tabIndex`.\r\n * @param tabIndex {#link OptionalTabIndex}\r\n * @param disabled\r\n * @return {@link TAB_INDEX_FOCUSABLE_ONLY} pokud je `disabled` <code><i>true</i></code>, v opačném případě vrací `tabIndex`.\r\n */\r\nexport const getTabIndexBasedOnDisabled = (tabIndex: OptionalTabIndex, disabled: boolean): OptionalTabIndex => {\r\n return disabled ? TAB_INDEX_FOCUSABLE_ONLY : tabIndex;\r\n};\r\n","import React, { FocusEventHandler, forwardRef, FunctionComponent, KeyboardEventHandler, MouseEventHandler, PropsWithChildren, useRef } from \"react\";\r\n\r\nimport { bemClassNames, combineRefs, createQA, doNothing, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { Cursor } from \"@multiweb/types/multiweb\";\r\nimport { ForwardRefType, QAProps, TabIndex, TextAlign } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { SpinnerComponent } from \"../SpinnerComponent\";\r\nimport { ButtonBackgroundColor, ButtonThemeVariant } from \"./enums\";\r\nimport { getTabIndexBasedOnDisabled } from \"./utils\";\r\n\r\nexport type ButtonProviderEventHandlerProps = {\r\n /** Callback volaný na kliknutí */\r\n onClick: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při kliknutí uvnitř elementu */\r\n onMouseDown?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při puštění tlačítka po kliknutí */\r\n onMouseUp?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při opuštění kurzoru z elementu */\r\n onMouseOut?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při dvojitém kliknutí na element. */\r\n onDoubleClick?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při získání zaměření */\r\n onFocus?: FocusEventHandler<HTMLButtonElement>;\r\n /** Funkce volaná při ztrátě zaměření obalované oblasti */\r\n onBlur?: FocusEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při stisknutí klávesy */\r\n onKeyDown?: KeyboardEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při ukončení stisku klávesy */\r\n onKeyUp?: KeyboardEventHandler<HTMLButtonElement>;\r\n};\r\n\r\nexport type ButtonProviderProps = PropsWithChildren<{\r\n /** Pozadí tlačítka */\r\n backgroundColor?: ButtonBackgroundColor;\r\n /** Příznak, zda je tlačítko zakázané */\r\n disabled?: boolean;\r\n /** Téma tlačítka */\r\n theme?: ComponentTheme;\r\n /** Popisek zobrazený po najetí myši */\r\n title?: string;\r\n /** Umožňuje nastavit tabindex - výchozí hodnota je undefined, chování tedy závisí na prohlížeči */\r\n tabIndex?: TabIndex;\r\n /** Příznak, zda je komponenta zaměřená */\r\n isFocused?: boolean;\r\n /** Stín tlačítka */\r\n shadow?: boolean;\r\n /** Ohraničení tlačítka */\r\n outline?: boolean;\r\n /** Příznak, zda je tlačítko v nevalidním stavu */\r\n invalid?: boolean;\r\n /** Zarovnání textu na tlačítku */\r\n textAlign?: TextAlign;\r\n /** Šířka tlačítka */\r\n width?: number | string;\r\n /** Výška tlačítka */\r\n height?: number | string;\r\n /** Hodnota kurzoru předávaná do tlačítka */\r\n cursor?: Cursor;\r\n /** Upravuje výchozí chování vzhledu */\r\n variant?: ButtonThemeVariant;\r\n /** Role tlačítka */\r\n role?: Role;\r\n /** Příznak, zda má tlačítko vykreslit loading indikátor */\r\n isLoading?: boolean;\r\n /** Komponenta, která zobrazuje loading indikátor. Slouží k nahrazení defaultního spinneru. */\r\n LoadingIndicator?: FunctionComponent;\r\n}> & ButtonProviderEventHandlerProps & QAProps;\r\n\r\nconst classNames = bemClassNames(\"button-provider-component\");\r\n\r\n/** Obalující komponenta pro tvorbu tlačítek */\r\nexport const ButtonProvider: ForwardRefType<HTMLButtonElement, ButtonProviderProps> = forwardRef<HTMLButtonElement, ButtonProviderProps>(({\r\n backgroundColor = ButtonBackgroundColor.default,\r\n disabled = false,\r\n onClick,\r\n onMouseDown,\r\n onMouseOut,\r\n onMouseUp,\r\n onDoubleClick,\r\n theme = ComponentTheme.default,\r\n title,\r\n tabIndex,\r\n isFocused = false,\r\n children,\r\n qa,\r\n shadow = false,\r\n outline = true,\r\n onFocus,\r\n onBlur,\r\n onKeyUp,\r\n onKeyDown,\r\n invalid,\r\n cursor,\r\n variant = ButtonThemeVariant.default,\r\n textAlign,\r\n width,\r\n height,\r\n role,\r\n isLoading = false,\r\n LoadingIndicator = SpinnerComponent,\r\n}, forwardRef) => {\r\n const innerRef = useRef<HTMLButtonElement>(null);\r\n const ref = combineRefs(innerRef, forwardRef);\r\n useSetFocus(isFocused, innerRef);\r\n\r\n return (\r\n <button\r\n className={classNames({ backgroundColor, theme, disabled, shadow, outline, invalid, cursor, variant, textAlign })}\r\n aria-label={title}\r\n aria-disabled={isLoading}\r\n tabIndex={getTabIndexBasedOnDisabled(tabIndex, disabled)}\r\n onClick={isLoading || disabled ? doNothing : onClick}\r\n style={{ width, height }}\r\n {...{ onMouseDown, onMouseUp, onMouseOut, onDoubleClick, title, ref, onFocus, onBlur, onKeyDown, onKeyUp, role }}\r\n {...createQA(qa)}\r\n onBlur={onBlur}\r\n >\r\n { isLoading && (\r\n <div className={classNames(\"loading-indicator\")}>\r\n <LoadingIndicator />\r\n </div>)\r\n }\r\n <span className={classNames(\"content\", { isLoading })}>{children}</span>\r\n </button>\r\n );\r\n});\r\n","export * from \"./ButtonProvider\";\r\nexport * from \"./enums\";\r\n","/** Způsob zobrazení prvku */\r\nexport enum Display {\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n block = \"block\",\r\n flex = \"flex\",\r\n inline = \"inline\",\r\n inlineBlock = \"inline-block\",\r\n inlineFlex = \"inline-flex\",\r\n}\r\n\r\n/**\r\n * Směr skládání prvků\r\n * @see https://css-tricks.com/almanac/properties/f/flex-direction/\r\n * */\r\nexport enum FlexDirection {\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n column = \"column\",\r\n columnReverse = \"column-reverse\",\r\n row = \"row\",\r\n rowReverse = \"row-reverse\",\r\n}\r\n\r\n/**\r\n * Podíl velikosti rodiče\r\n * @see https://css-tricks.com/almanac/properties/f/flex-grow/\r\n * */\r\nexport enum FlexGrow {\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n zero = \"zero\",\r\n one = \"one\",\r\n two = \"two\",\r\n three = \"three\",\r\n four = \"four\",\r\n five = \"five\",\r\n six = \"six\",\r\n seven = \"seven\",\r\n eight = \"eight\",\r\n nine = \"nine\",\r\n ten = \"ten\",\r\n}\r\n\r\n/**\r\n * Smršťování obsahu\r\n * @see https://css-tricks.com/almanac/properties/f/flex-shrink/\r\n */\r\nexport { FlexGrow as FlexShrink };\r\n\r\n/**\r\n * Zalamování obsahu\r\n * @see https://css-tricks.com/almanac/properties/f/flex-wrap/\r\n */\r\nexport enum FlexWrap {\r\n nowrap = \"nowrap\",\r\n wrap = \"wrap\",\r\n wrapReverse = \"wrap-reverse\",\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n}\r\n\r\n/**\r\n * Pozicování vůči hlavní ose\r\n * @see https://css-tricks.com/almanac/properties/j/justify-content/\r\n * */\r\nexport enum JustifyContent {\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n center = \"center\",\r\n flexEnd = \"flex-end\",\r\n flexStart = \"flex-start\",\r\n spaceAround = \"space-around\",\r\n spaceBetween = \"space-between\",\r\n spaceEvenly = \"space-evenly\",\r\n}\r\n\r\n/** Velikost odsazení */\r\nexport enum SpacingSize {\r\n auto = \"auto\",\r\n none = \"none\",\r\n xxs = \"xxs\",\r\n xs = \"xs\",\r\n s = \"s\",\r\n m = \"m\",\r\n l = \"l\",\r\n xl = \"xl\",\r\n xxl = \"xxl\",\r\n xxxl = \"xxxl\",\r\n}\r\n\r\n/* Pozicování elementu */\r\nexport enum Position {\r\n static = \"static\",\r\n relative = \"relative\",\r\n fixed = \"fixed\",\r\n absolute = \"absolute\",\r\n sticky = \"sticky\",\r\n}\r\n","import { createCreateActionType } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu `controls`. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"controls\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce.\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\nexport const INIT_CONTROLS_VALUE = createActionType(\"INIT_CONTROLS_VALUE\");\r\nexport const SET_VALIDATION_DESCRIPTIONS = createActionType(\"SET_VALIDATION_DESCRIPTIONS\");\r\nexport const CONTROLS_VALUE_CHANGED = createActionType(\"CONTROLS_VALUE_CHANGED\");\r\nexport const CLEAR_CONTROLS_VALUE = createActionType(\"CLEAR_CONTROLS_VALUE\");\r\nexport const VALIDATE = createActionType(\"VALIDATE\");\r\nexport const CLEAR_VALIDATION_ERRORS = createActionType(\"CLEAR_VALIDATION_ERRORS\");\r\n","/** Překročen maximální počet znaků: @0 */\r\nexport const MAX_LENGTH_ERROR_LOC_KEY = \"GUI-716495\";\r\n/** Nevalidní hodnota v poli */\r\nexport const INVALID_CONTROL_VALUE_LOC_KEY = \"GUI-214428\";\r\n/** Informuje o tom, že pole je povinné, ale nemá vyplněnu (platnou) hodnotu. Text: \"Nevalidní hodnota v poli\". */\r\nexport const REQUIRED_INVALID_STATE_LOC_KEY = \"GUI-55627\";\r\n\r\n/** Minimální možná hodnota je */\r\nexport const MIN_VALUE_VALIDATION_ERROR_LOC_KEY = \"GUI-502669\";\r\n/** Maximální možná hodnota je */\r\nexport const MAX_VALUE_VALIDATION_ERROR_LOC_KEY = \"GUI-502667\";\r\n/** Minimální možná hodnota je @0 */\r\nexport const MIN_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY = \"GUI-754891\";\r\n/** Maximální možná hodnota je @0 */\r\nexport const MAX_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY = \"GUI-754892\";\r\n","import { ValidationErrorType } from \"@multiweb/types/multiweb\";\r\nimport { ReduxCompatibleValue, TypedObject } from \"@multiweb/types/react\";\r\nimport { ControlReduxRawValue } from \"../types\";\r\n\r\n/**\r\n * Výčet známých validačních funkcí pro \"instant\"-validaci. Jde o součást {@link CustomizableInstantValidationFnKey}.\r\n */\r\nexport enum InstantValidationFnKey {\r\n maxLength = \"maxLength\",\r\n numbersOnly = \"numbersOnly\",\r\n length = \"length\",\r\n numberCharactersOnly = \"numberCharactersOnly\",\r\n}\r\n\r\n/**\r\n * Klíč validační funkce pro \"instant\"-validaci. Kromě {@link InstantValidationFnKey} je možné jako klíč uvést \"libovolný\" řetězec z důvodu customizace.\r\n * Zákazníci si mohou registrovat vlastní validační funkce pod vlastním klíčem.\r\n * - Určeno pro uchování v reduxu. Proto nemůže být funkce, ale pouze klíč.\r\n * - V `InstantValidation.ts` pak existuje mapování z klíčů na konkrétní validační funkce.\r\n */\r\nexport type CustomizableInstantValidationFnKey = InstantValidationFnKey | string;\r\n\r\n/**\r\n * Výčet známých validačních funkcí pro \"explicit\"-validaci. Jde o součást {@link CustomizableExplicitValidationFnKey}.\r\n */\r\nexport enum ExplicitValidationFnKey {\r\n regex = \"regex\",\r\n maxLength = \"maxLength\",\r\n minValue = \"minValue\",\r\n maxValue = \"maxValue\",\r\n}\r\n\r\n/**\r\n * Klíč validační funkce pro \"explicit\"-validaci. Kromě {@link ExplicitValidationFnKey} je možné jako klíč uvést \"libovolný\" řetězec z důvodu customizace.\r\n * Zákazníci si mohou registrovat vlastní validační funkce pod vlastním klíčem.\r\n * - Určeno pro uchování v reduxu. Proto nemůže být funkce, ale pouze klíč.\r\n * - V `ExplicitValidation.ts` pak existuje mapování z klíčů na konkrétní validační funkce.\r\n */\r\nexport type CustomizableExplicitValidationFnKey = ExplicitValidationFnKey | string;\r\n\r\n/**\r\n * Identifikace volání \"instant\"-validační funkce. Definuje funkci, která se má provolat včetně parametrů, které se jí mají předat.\r\n * Identifikace je uložitelná v reduxu.\r\n * - Týká se validačních funkcí z `InstantValidation.ts`.\r\n * - Více viz {@link CustomizableInstantValidationFnKey}.\r\n */\r\nexport interface IInstantValidationFnDescription {\r\n readonly fnKey: CustomizableInstantValidationFnKey;\r\n readonly args: TypedObject<ReduxCompatibleValue>;\r\n}\r\n\r\n/**\r\n * Identifikace volání \"explicit\"-validační funkce. Definuje funkci, která se má provolat včetně parametrů, které se jí mají předat.\r\n * Identifikace je uložitelná v reduxu.\r\n * - Týká se validačních funkcí z `ExplicitValidation.ts`.\r\n * - Více viz {@link CustomizableExplicitValidationFnKey}.\r\n */\r\nexport interface IExplicitValidationFnDescription {\r\n /**\r\n * Klíč funkce, která se má provolat.\r\n */\r\n readonly fnKey: CustomizableExplicitValidationFnKey;\r\n /**\r\n * Parametry, které se funkci předají.\r\n */\r\n readonly args: TypedObject<ReduxCompatibleValue>;\r\n /**\r\n * Lokalizační klíč, který se použije pro chybovou hlášku ({@link IExplicitValidationError}), pokud validace neprojde.\r\n * - Používá se především při načítání lokalizací (pro {@link ValidationErrorWrapper}).\r\n * - Volitelně je možné použít pro customizaci chybové hlášky. K tomu ale zatím (září 2020) není důvod.\r\n */\r\n readonly locKey: string;\r\n}\r\n\r\n/**\r\n * Dílčí informace, proč neprošla validace. (Dílčí v tom, že důvodů, proč komponenta není validní, může být více. Tj. `IExplicitValidationError[]`.)\r\n */\r\nexport interface IExplicitValidationError {\r\n /**\r\n * Lokalizační klíč. Např. \"GUI-123\". Je možné nezadat, pak je ale třeba zadat {@link message}.\r\n */\r\n readonly locKey?: string;\r\n /**\r\n * Lokalizovaná zpráva určená k přímému zobrazení klientovi.\r\n * Volitelný údaj. Pokud zadán, pak se již nezadává {@link locKey}.\r\n */\r\n readonly message?: string;\r\n /**\r\n * Doplňuje {@link locKey}.\r\n * Parametry, které budou dosazeny za zástupné znaky v lokalizovaném textu.\r\n */\r\n readonly locArgs?: string[];\r\n\r\n /**\r\n * Udává typ chyby\r\n */\r\n readonly errorType?: ValidationErrorType;\r\n}\r\n\r\n/**\r\n * Lokalizovaná verze {@link IExplicitValidationError}.\r\n */\r\nexport interface ILocalizedExplicitValidationError {\r\n /**\r\n * Lokalizovaná zpráva určená k přímému zobrazení klientovi.\r\n */\r\n message: string;\r\n}\r\n\r\n/**\r\n * Signatura \"instant\"-validačních funkcí. Tj. funkcí validujících okamžitě při psaní - viz `InstantValidation.ts`.\r\n */\r\nexport type InstantValidationFunction = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n) => boolean;\r\n\r\n/**\r\n * Signatura \"explicit\"-validačních funkcí. Tj. funkcí validujících pouze na vyžádání - viz `ExplicitValidation.ts`.\r\n */\r\nexport type ExplicitValidationFunction = (\r\n /**\r\n * Hodnota určená k validaci.\r\n */\r\n value: ControlReduxRawValue,\r\n /**\r\n * Parametry předávané - navíc k `value` - do validační funkce.\r\n * Např. `{maxLength: 10}` pro `validateMaxLength`.\r\n */\r\n args: TypedObject<ReduxCompatibleValue>,\r\n /**\r\n * Lokalizační klíč, který se použije pro návratovou chybovou hlášku při provolání validační funkce, pokud validace neprojde.\r\n */\r\n locKey: string,\r\n) => IExplicitValidationError | null;\r\n","import { ControlReduxRawValue } from \"../types\";\r\n\r\n/**\r\n * Společné parametry předávané do všech validačních funkcí z `validationFunctions.ts`.\r\n */\r\ninterface ICommonParams<T extends ControlReduxRawValue> {\r\n /**\r\n * Hodnota, která je předmětem validace.\r\n * Za `T` by měl být dosazen konkrétní typ, který je danou konkrétní validační funkcí podporován. Např. `string`.\r\n */\r\n readonly value: T;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isMaxLengthValid`.\r\n */\r\nexport interface IValidateMaxLengthParams extends ICommonParams<string | undefined | null> {\r\n /**\r\n * Maximální délka, vůči které `isMaxLengthValid` bude validovat.\r\n */\r\n readonly maxLength: number;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isRegexValid`.\r\n */\r\nexport interface IValidateRegexParams extends ICommonParams<string | undefined | null> {\r\n /**\r\n * Regulární výraz, vůči kterému `isRegexValid` bude validovat.\r\n */\r\n readonly regex: RegExp;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isNumbersOnlyValid`.\r\n */\r\nexport interface IIsNumbersOnlyValidParams extends ICommonParams<string | undefined | null> {\r\n // Schválně prázdné. \"isNumbersOnlyValid\" nemá žádné extra parametry.\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `charsDeleted`.\r\n */\r\nexport interface IValidateCharsDeletedParams extends ICommonParams<string | undefined | null> {\r\n /**\r\n * Protějšek, vůči kterému se bude délka `value` validovat.\r\n */\r\n readonly targetValue: string | undefined | null;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isNumberCharactersOnlyValid`.\r\n */\r\nexport interface IIsNumberCharactersOnlyValidParams extends ICommonParams<string> {\r\n readonly isInteger: boolean;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isMinValueValid` a `isMinValueBigNumberValid`.\r\n */\r\nexport interface IValidateMinValueParams extends ICommonParams<string> {\r\n readonly isBigNumber: boolean;\r\n readonly minValue: number;\r\n}\r\n\r\n/**\r\n * Vstupní parametry pro funkci `isMaxValueValid` a `isMaxValueBigNumberValid`.\r\n */\r\nexport interface IValidateMaxValueParams extends ICommonParams<string> {\r\n readonly isBigNumber: boolean;\r\n readonly maxValue: number;\r\n}\r\n","import {\r\n invariant,\r\n isArrayEqual,\r\n isBoolean,\r\n isNull,\r\n isNumber,\r\n isString,\r\n isUndefined,\r\n} from \"@multiweb/reactUtils\";\r\nimport { ReduxCompatibleValue, TypedObject } from \"@multiweb/types/react\";\r\nimport { ControlReduxRawValue } from \"../types\";\r\nimport { IExplicitValidationError, ILocalizedExplicitValidationError } from \"./types\";\r\nimport {\r\n IIsNumberCharactersOnlyValidParams,\r\n IIsNumbersOnlyValidParams,\r\n IValidateCharsDeletedParams,\r\n IValidateMaxLengthParams,\r\n IValidateMaxValueParams,\r\n IValidateMinValueParams,\r\n IValidateRegexParams,\r\n} from \"./validationFunctionTypes\";\r\n\r\nexport const isLocArgsEqual = (locArgs1: string[] | undefined, locArgs2: string[] | undefined) => {\r\n if (locArgs1 === locArgs2) {\r\n return true;\r\n } else if (locArgs1 === undefined || locArgs2 === undefined) {\r\n return false;\r\n } else {\r\n return isArrayEqual(locArgs1, locArgs2, Object.is);\r\n }\r\n};\r\n\r\nexport const isErrorEqual = (error1: IExplicitValidationError, error2: IExplicitValidationError): boolean => (\r\n error1.locKey === error2.locKey &&\r\n isLocArgsEqual(error1.locArgs, error2.locArgs) &&\r\n error1.message === error2.message\r\n);\r\n\r\nexport const areErrorsEqual = (errors1: ReadonlyArray<IExplicitValidationError>, errors2: ReadonlyArray<IExplicitValidationError>) => (\r\n isArrayEqual(errors1, errors2, isErrorEqual)\r\n);\r\n\r\nexport const isLocalizedErrorEqual = (error1: ILocalizedExplicitValidationError, error2: ILocalizedExplicitValidationError): boolean => (\r\n error1.message === error2.message\r\n);\r\n\r\nexport const areLocalizedErrorsEqual = (errors1: ReadonlyArray<ILocalizedExplicitValidationError>, errors2: ReadonlyArray<ILocalizedExplicitValidationError>) => (\r\n isArrayEqual(errors1, errors2, isLocalizedErrorEqual)\r\n);\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IValidateMaxLengthParams}.\r\n * @param value Platná hodnota je `string|null|undefined`. Pokud jakákoli jiná, pak vyhodí chybu.\r\n * @param args Platný je objekt s položkou `maxLength: number`. Pokud tuto položku `args` nemá, pak vyhodí chybu.\r\n */\r\nexport const getTypedParamsForIsMaxLengthValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IValidateMaxLengthParams => {\r\n invariant(isString(value) || isUndefined(value) || isNull(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(!!args.maxLength, \"[Controls/validation] maxLength not present\");\r\n invariant(isNumber(args.maxLength), `[Controls/validation] maxLength is not a number: ${args.maxLength}`);\r\n return ({\r\n value,\r\n ...args,\r\n }) as IValidateMaxLengthParams;\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IValidateCharsDeletedParams}.\r\n * @param value Platná hodnota je `string|null|undefined`. Pokud jakákoli jiná, pak vyhodí chybu.\r\n * @param args Platný je objekt s položkou `targetValue: string|null|undefined`.\r\n */\r\nexport const getTypedParamsForCharsDeletedValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IValidateCharsDeletedParams => {\r\n invariant(isString(value) || isUndefined(value) || isNull(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(isString(args.targetValue) || isUndefined(args.targetValue) || isNull(args.targetValue), `[Controls/validation] Unexpected targetValue: ${args.targetValue}`);\r\n return ({\r\n value,\r\n targetValue: args.targetValue,\r\n }) as IValidateCharsDeletedParams;\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IValidateRegexParams}.\r\n * @param value Platná hodnota je `string|null|undefined`. Pokud jakákoli jiná, pak vyhodí chybu.\r\n * @param args Platný je jednoprvkový objekt s položkou `regex: string` obsahující platný regulární výraz. Pokud tuto položku `args` nemá, pak vyhodí chybu.\r\n */\r\nexport const getTypedParamsForIsRegexValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IValidateRegexParams => {\r\n invariant(isString(value) || isUndefined(value) || isNull(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(!!args.regex, \"[Controls/validation] regex not present\");\r\n invariant(isString(args.regex), `[Controls/validation] regex is not a string: ${args.regex}`);\r\n return ({\r\n value,\r\n regex: new RegExp(args.regex),\r\n }) as IValidateRegexParams;\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IValidateMinValueParams}.\r\n * @param value Platná hodnota je `string`. Jakákoliv jiná hodnota vyhodí chybu.\r\n * @param args Platný je dvouprvkový objekt s položkami:\r\n * - `isBigNumber` - příznak zda se má validovat hodnota jako BigNumber\r\n * - `minValue` - největší validní hodnota\r\n */\r\nexport const getTypedParamsForIsMinValueValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IValidateMinValueParams => {\r\n invariant(isString(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(args.isBigNumber != null, \"[Controls/validation] isBigNumber not present\");\r\n invariant(args.minValue != null, \"[Controls/validation] minValue not present\");\r\n invariant(isBoolean(args.isBigNumber), `[Controls/validation] isBigNumber is not a boolean: ${value}`);\r\n invariant(isNumber(args.minValue), `[Controls/validation] minValue is not a number: ${value}`);\r\n return ({\r\n value,\r\n isBigNumber: args.isBigNumber,\r\n minValue: args.minValue,\r\n });\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IValidateMaxValueParams}.\r\n * @param value Platná hodnota je `string`. Jakákoliv jiná hodnota vyhodí chybu.\r\n * @param args Platný je dvouprvkový objekt s položkami:\r\n * - `isBigNumber` - příznak zda se má validovat hodnota jako BigNumber\r\n * - `maxValue` - největší validní hodnota\r\n */\r\nexport const getTypedParamsForIsMaxValueValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IValidateMaxValueParams => {\r\n invariant(isString(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(args.isBigNumber != null, \"[Controls/validation] isBigNumber not present\");\r\n invariant(args.maxValue != null, \"[Controls/validation] maxValue not present\");\r\n invariant(isBoolean(args.isBigNumber), `[Controls/validation] isBigNumber is not a boolean: ${value}`);\r\n invariant(isNumber(args.maxValue), `[Controls/validation] maxValue is not a number: ${value}`);\r\n return ({\r\n value,\r\n isBigNumber: args.isBigNumber,\r\n maxValue: args.maxValue,\r\n });\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IIsNumbersOnlyValidParams}.\r\n * @param value Platná hodnota je `string|null|undefined`. Pokud jakákoli jiná, pak vyhodí chybu.\r\n * @param args Platný je prázdný objekt. (Aneb, žádné parametry se neočekávají.) Pokud `args` není prázdný, pak vyhodí chybu.\r\n */\r\nexport const getTypedParamsForIsNumbersOnlyValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IIsNumbersOnlyValidParams => {\r\n invariant(isString(value) || isUndefined(value) || isNull(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(Object.keys(args).length === 0, \"[Controls/validation] args is not empty\");\r\n return ({\r\n value,\r\n }) as IIsNumbersOnlyValidParams;\r\n};\r\n\r\n/**\r\n * Převádí univerzální parametry na konkrétní {@link IIsNumberCharactersOnlyValidParams}.\r\n * @param value Platná hodnota je `string`. Jakákoliv jiná hodnota vyhodí chybu.\r\n * @param args Platný je jednoprvkový objekt s položkou `isInteger: boolean` obsahující příznak, zda se mají validovat pouze celá čísla.\r\n * Pokud tuto položku `args` nemá, pak vyhodí chybu.\r\n */\r\nexport const getTypedParamsForIsNumberCharactersOnlyValidOrFail = (\r\n value: ControlReduxRawValue,\r\n args: TypedObject<ReduxCompatibleValue>,\r\n): IIsNumberCharactersOnlyValidParams => {\r\n invariant(isString(value), `[Controls/validation] Unexpected value: ${value}`);\r\n invariant(args.isInteger != null, \"[Controls/validation] isInteger is not present\");\r\n invariant(isBoolean(args.isInteger), \"[Controls/validation] isInteger is not a boolean.\");\r\n return ({\r\n value,\r\n isInteger: args.isInteger,\r\n }) as IIsNumberCharactersOnlyValidParams;\r\n};\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n IIsNumberCharactersOnlyValidParams,\r\n IIsNumbersOnlyValidParams,\r\n IValidateCharsDeletedParams,\r\n IValidateMaxLengthParams,\r\n IValidateMaxValueParams,\r\n IValidateMinValueParams,\r\n IValidateRegexParams,\r\n} from \"./validationFunctionTypes\";\r\n\r\nconst { createBigNumberProxy } = bridge;\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota není delší, než maximální délka.\r\n *\r\n * @param value Řetězec k validaci.\r\n * @param maxLength Maximální povolená délka pro `value`.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isMaxLengthValid = ({ value, maxLength }: IValidateMaxLengthParams): boolean => {\r\n return !value || (value.length <= maxLength);\r\n};\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota vyhovuje danému regulárnímu výrazu.\r\n *\r\n * @param value Řetězec k validaci.\r\n * @param regex Regulární výraz, vůči kterému se `value` validuje.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isRegexValid = ({ value, regex }: IValidateRegexParams): boolean => {\r\n return !value || regex.test(value);\r\n};\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota obsahuje pouze čísla.\r\n *\r\n * @param value Řetězec k validaci.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isNumbersOnlyValid = ({ value }: IIsNumbersOnlyValidParams): boolean => {\r\n return !value || /^\\d+$/.test(value);\r\n};\r\n\r\n/**\r\n * Kontroluje, jestli byl z hodnoty 'value' smazán nějaký znak porovnáním délky hodnoty 'targetValue'.\r\n * Pokud je délka 'value' menší než délka 'targetValue', vrací 'true', v opačném případě 'false'.\r\n * @param value validovaná hodnota vůči 'targetValue'\r\n * @param targetValue\r\n */\r\nexport const charsDeleted = ({ value, targetValue }: IValidateCharsDeletedParams): boolean => {\r\n return !!value && !!targetValue && (value.length < targetValue.length);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda zadaná řetězcová hodnota obsahuje pouze povolené znaky.\r\n *\r\n * @param value Řetězcová hodnota.\r\n * @param isInteger Příznak, zda se mají validovat pouze celá čísla.\r\n */\r\nexport const isNumberCharactersOnlyValid = ({ value, isInteger }: IIsNumberCharactersOnlyValidParams): boolean => {\r\n const regex = isInteger\r\n ? /^[+-]?\\d*$/\r\n : /^[+-]?\\d*(\\.)?\\d*$/;\r\n return regex.test(value);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota větší nebo rovna nejmenší povolené hodnotě.\r\n * V případě že je zadaná hodnota NaN, validace projde.\r\n *\r\n * @param value Zadaná hodnota.\r\n * @param minValue Nejmenší povolená hodnota\r\n */\r\nexport const isMinValueValid = ({ value, minValue }: IValidateMinValueParams) => {\r\n const numberValue = Number(value);\r\n if (Number.isNaN(numberValue)) {\r\n return true;\r\n }\r\n return numberValue >= minValue;\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota reprezentující BigNumber větší nebo rovna nejmenší povolené hodnotě.\r\n * V případě že je zadaná hodnota NaN, validace projde.\r\n *\r\n * @param value Zadaná hodnota - řetězec který se předá konstruktoru BigNumberProxy.\r\n * @param minValue Nejmenší povolená hodnota\r\n */\r\nexport const isMinValueBigNumberValid = ({ value, minValue }: IValidateMinValueParams) => {\r\n const bigNumberValue = createBigNumberProxy(value);\r\n if (bigNumberValue.isNaN()) {\r\n return true;\r\n }\r\n return bigNumberValue.gte(minValue);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota menší nebo rovna největší povolené hodnotě.\r\n * V případě že je zadaná hodnota NaN, validace projde.\r\n *\r\n * @param value Zadaná hodnota.\r\n * @param maxValue Největší povolená hodnota\r\n */\r\nexport const isMaxValueValid = ({ value, maxValue }: IValidateMaxValueParams) => {\r\n const numberValue = Number(value);\r\n if (Number.isNaN(numberValue)) {\r\n return true;\r\n }\r\n return numberValue <= maxValue;\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota reprezentující BigNumber menší nebo rovna největší povolené hodnotě.\r\n * V případě že je zadaná hodnota NaN, validace projde.\r\n *\r\n * @param value Zadaná hodnota - řetězec který se předá konstruktoru BigNumberProxy.\r\n * @param maxValue Největší povolená hodnota\r\n */\r\nexport const isMaxValueBigNumberValid = ({ value, maxValue }: IValidateMaxValueParams) => {\r\n const bigNumberValue = createBigNumberProxy(value);\r\n if (bigNumberValue.isNaN()) {\r\n return true;\r\n }\r\n return bigNumberValue.lte(maxValue);\r\n};\r\n","import { invariant } from \"@multiweb/reactUtils\";\r\nimport { ReduxCompatibleValue, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n INVALID_CONTROL_VALUE_LOC_KEY,\r\n MAX_LENGTH_ERROR_LOC_KEY,\r\n MAX_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY,\r\n MIN_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY,\r\n} from \"../locKeys\";\r\nimport { ControlReduxRawValue } from \"../types\";\r\nimport {\r\n CustomizableExplicitValidationFnKey,\r\n ExplicitValidationFnKey,\r\n ExplicitValidationFunction,\r\n IExplicitValidationError,\r\n IExplicitValidationFnDescription,\r\n ILocalizedExplicitValidationError,\r\n} from \"./types\";\r\nimport {\r\n getTypedParamsForIsMaxLengthValidOrFail,\r\n getTypedParamsForIsMaxValueValidOrFail,\r\n getTypedParamsForIsMinValueValidOrFail,\r\n getTypedParamsForIsRegexValidOrFail,\r\n} from \"./utils\";\r\nimport * as validationFunctions from \"./validationFunctions\";\r\n\r\n/**\r\n * Tento soubor obsahuje validace spouštěné pouze na vyžádání.\r\n * Validuje se existující hodnota v reduxu a výsledkem validace je seznam validačních chyb - tj. důvodů, proč hodnota není validní.\r\n * Více viz `readme.md`.\r\n */\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota není delší, než maximální délka.\r\n *\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje maximální délku, vůči níž se `value` validuje.\r\n * Spolu s `value` musí vyhovovat rozhraní {@link IValidateMaxLengthParams}.\r\n * @param locKey Lokalizační klíč, který se použije pro návratovou chybovou hlášku, pokud validace neprojde.\r\n * @return Vhodný {@link IExplicitValidationError}, pokud validace neprojde, jinak `null`.\r\n */\r\nexport const validateMaxLength: ExplicitValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>, locKey: string) => {\r\n const typedParams = getTypedParamsForIsMaxLengthValidOrFail(value, args);\r\n return validationFunctions.isMaxLengthValid(typedParams) ? null : createValidationError(locKey, [String(typedParams.maxLength)]);\r\n};\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota vyhovuje danému regulárnímu výrazu.\r\n *\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje regulární výraz, vůči kterému se `value` validuje.\r\n * Spolu s `value` musí vyhovovat rozhraní {@link IValidateRegexParams}.\r\n * @param locKey Lokalizační klíč, který se použije pro návratovou chybovou hlášku, pokud validace neprojde.\r\n * @return Vhodný {@link IExplicitValidationError}, pokud validace neprojde, jinak `null`.\r\n */\r\nexport const validateRegex: ExplicitValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>, locKey: string) => {\r\n const typedParams = getTypedParamsForIsRegexValidOrFail(value, args);\r\n return validationFunctions.isRegexValid(typedParams) ? null : createValidationError(locKey);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota větší nebo rovna nejmenší povolené hodnotě.\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje příznak, zda se má hodnota validovat jako BigNumber a minimální povolenou hodnotu.\r\n * @param locKey Lokalizační klíč, který se použije pro návratovou chybovou hlášku, pokud validace neprojde.\r\n * @return Vhodný {@link IExplicitValidationError}, pokud validace neprojde, jinak `null`.\r\n */\r\nexport const validateMinValue: ExplicitValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>, locKey: string) => {\r\n const typedParams = getTypedParamsForIsMinValueValidOrFail(value, args);\r\n const isValid = typedParams.isBigNumber\r\n ? validationFunctions.isMinValueValid(typedParams)\r\n : validationFunctions.isMinValueBigNumberValid(typedParams);\r\n return isValid ? null : createValidationError(locKey, [String(typedParams.minValue)]);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda je zadaná hodnota menší nebo rovna největší povolené hodnotě.\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje příznak, zda se má hodnota validovat jako BigNumber, a maximální povolenou hodnotu.\r\n * @param locKey Lokalizační klíč, který se použije pro návratovou chybovou hlášku, pokud validace neprojde.\r\n * @return Vhodný {@link IExplicitValidationError}, pokud validace neprojde, jinak `null`.\r\n */\r\nexport const validateMaxValue: ExplicitValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>, locKey: string) => {\r\n const typedParams = getTypedParamsForIsMaxValueValidOrFail(value, args);\r\n const isValid = typedParams.isBigNumber\r\n ? validationFunctions.isMaxValueValid(typedParams)\r\n : validationFunctions.isMaxValueBigNumberValid(typedParams);\r\n return isValid ? null : createValidationError(locKey, [String(typedParams.maxValue)]);\r\n};\r\n\r\n/**\r\n * Mapuje klíče na validační funkce. Určeno pro potřeby {@link validateValue}.\r\n * Je možné sem doregistrovat další validační funkce přes {@link registerCustomValidationFunction}.\r\n */\r\nexport const validationFnMap = new Map<CustomizableExplicitValidationFnKey, ExplicitValidationFunction>([\r\n [ExplicitValidationFnKey.maxLength, validateMaxLength],\r\n [ExplicitValidationFnKey.regex, validateRegex],\r\n [ExplicitValidationFnKey.minValue, validateMinValue],\r\n [ExplicitValidationFnKey.maxValue, validateMaxValue],\r\n]);\r\n\r\n/**\r\n * Vrací validační funkci se zadaným klíčem. Nebo vyhodí výjimku, pokud pro daný klíč funkce neexistuje.\r\n */\r\nexport const getValidationFn = (fnKey: CustomizableExplicitValidationFnKey): ExplicitValidationFunction => {\r\n const validationFn = validationFnMap.get(fnKey);\r\n invariant(!!validationFn, `[Controls/ExplicitValidation] Function for given key not found: ${fnKey}`);\r\n return validationFn;\r\n};\r\n\r\n/**\r\n * Zaregistruje zákaznickou validační funkci. Po zaregistrování bude možné tuto funkci předávat do {@link validateValue}.\r\n * @param fnKey Klíč identifikující danou funkci. Musí být jedinečný, jinak se registrace nezdaří.\r\n * @param customFunction Validační funkce k zaregistrování.\r\n */\r\nexport const registerCustomValidationFunction = (fnKey: CustomizableExplicitValidationFnKey, customFunction: ExplicitValidationFunction) => {\r\n if (validationFnMap.get(fnKey)) {\r\n throw new Error(`[Controls/ExplicitValidation] Function with given key already exists: ${fnKey}`);\r\n }\r\n validationFnMap.set(fnKey, customFunction);\r\n};\r\n\r\n/**\r\n * Zvaliduje zadanou hodnotu zadanými validačními funkcemi.\r\n * @param value Hodnota k validaci.\r\n * @param descriptions Seznam validací, které budou na `value` aplikovány.\r\n * @returns Seznam nalezených důvodů, proč `value` není validní. Nebo prázdný seznam, pokud validní je.\r\n */\r\nexport const validateValue = (value: ControlReduxRawValue, descriptions: ReadonlyArray<IExplicitValidationFnDescription>): ReadonlyArray<IExplicitValidationError> => (\r\n descriptions.reduce((errors, currentDescription) => {\r\n const validationFn = getValidationFn(currentDescription.fnKey);\r\n const error = validationFn(value, currentDescription.args, currentDescription.locKey);\r\n if (error) {\r\n errors.push(error);\r\n }\r\n return errors;\r\n }, [] as IExplicitValidationError[])\r\n);\r\n\r\n/**\r\n * Převádí `maxLength` na instanci {IExplicitValidationFnDescription} určenou pro {@link validateMaxLength}.\r\n * @param maxLength\r\n * @param locKey Pokud zadán, bude tento lokalizační klíč použit jako důvod nevalidnosti (viz `IExplicitValidationFnDescription.locKey`).\r\n * Jinak bude jako důvod nevalidnosti použit {@link MAX_LENGTH_ERROR_LOC_KEY}.\r\n */\r\nexport const createMaxLengthDescription = (maxLength: number, locKey?: string): IExplicitValidationFnDescription => ({\r\n fnKey: ExplicitValidationFnKey.maxLength,\r\n args: { maxLength },\r\n locKey: locKey ?? MAX_LENGTH_ERROR_LOC_KEY,\r\n});\r\n\r\n/**\r\n * Převádí `regex` na instanci {IExplicitValidationFnDescription} určenou pro {@link validateRegex}.\r\n * @param regex\r\n * @param locKey Pokud zadán, bude tento lokalizační klíč použit jako důvod nevalidnosti (viz `IExplicitValidationFnDescription.locKey`).\r\n * Jinak bude jako důvod nevalidnosti použit {@link INVALID_CONTROL_VALUE_LOC_KEY}.\r\n */\r\nexport const createRegexDescription = (regex: string, locKey?: string): IExplicitValidationFnDescription => ({\r\n fnKey: ExplicitValidationFnKey.regex,\r\n args: { regex },\r\n locKey: locKey ?? INVALID_CONTROL_VALUE_LOC_KEY,\r\n});\r\n\r\n/**\r\n * Vytvoří instanci {@link IExplicitValidationFnDescription} určenou pro {@link validateMinValue}.\r\n *\r\n * @param isBigNumber Příznak, zda se má validovat hodnota jako BigNumber.\r\n * @param minValue Dolní limit validní hodnoty (včetně).\r\n * @param locKey Pokud zadán, bude tento lokalizační klíč použit jako důvod nevalidnosti (viz `IExplicitValidationFnDescription.locKey`).\r\n * Jinak bude jako důvod nevalidnosti použit {@link INVALID_CONTROL_VALUE_LOC_KEY}.\r\n */\r\nexport const createMinValueDescription = (\r\n minValue: number,\r\n isBigNumber: boolean = false,\r\n locKey: string = MIN_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY,\r\n): IExplicitValidationFnDescription => ({\r\n fnKey: ExplicitValidationFnKey.minValue,\r\n args: {\r\n isBigNumber,\r\n minValue,\r\n },\r\n locKey,\r\n});\r\n\r\n/**\r\n * Vytvoří instanci {@link IExplicitValidationFnDescription} určenou pro {@link validateMaxValue}.\r\n *\r\n * @param isBigNumber Příznak, zda se má validovat hodnota jako BigNumber.\r\n * @param maxValue Horní limit validní hodnoty (včetně).\r\n * @param locKey Pokud zadán, bude tento lokalizační klíč použit jako důvod nevalidnosti (viz `IExplicitValidationFnDescription.locKey`).\r\n * Jinak bude jako důvod nevalidnosti použit {@link INVALID_CONTROL_VALUE_LOC_KEY}.\r\n */\r\nexport const createMaxValueDescription = (\r\n maxValue: number,\r\n isBigNumber: boolean = false,\r\n locKey: string = MAX_VALUE_VALIDATION_ERROR_ARGS_LOC_KEY,\r\n): IExplicitValidationFnDescription => ({\r\n fnKey: ExplicitValidationFnKey.maxValue,\r\n args: {\r\n isBigNumber,\r\n maxValue,\r\n },\r\n locKey,\r\n});\r\n\r\n/**\r\n * Vrátí novou instanci {@link IExplicitValidationError} se zadanými `locKey` a `locArgs`.\r\n * @param locKey Lokalizační klíč. Např. \"GUI-123\".\r\n * @param locArgs Parametry, které budou dosazeny za zástupné znaky v lokalizovaném textu.\r\n */\r\nexport const createValidationError = (locKey: string, locArgs?: string[]): IExplicitValidationError => ({\r\n locKey,\r\n locArgs,\r\n});\r\n\r\n/**\r\n * Vrátí novou instanci {@link ILocalizedExplicitValidationError}.\r\n * @param message Lokalizovaná zpráva určená k přímému zobrazení klientovi.\r\n */\r\nexport const createLocalizedValidationError = (message: string): ILocalizedExplicitValidationError => ({\r\n message,\r\n});\r\n\r\nexport const ExplicitValidation = {\r\n createMaxLengthDescription,\r\n createRegexDescription,\r\n registerCustomValidationFunction,\r\n validateValue,\r\n createValidationError,\r\n createLocalizedValidationError,\r\n createMinValueDescription,\r\n createMaxValueDescription,\r\n};\r\n","import { EMPTY_OBJECT, invariant } from \"@multiweb/reactUtils\";\r\nimport { ReduxCompatibleValue, TypedObject } from \"@multiweb/types/react\";\r\nimport { ControlReduxRawValue } from \"../types\";\r\nimport {\r\n CustomizableInstantValidationFnKey,\r\n IInstantValidationFnDescription,\r\n InstantValidationFnKey,\r\n InstantValidationFunction,\r\n} from \"./types\";\r\nimport {\r\n getTypedParamsForCharsDeletedValidOrFail,\r\n getTypedParamsForIsMaxLengthValidOrFail,\r\n getTypedParamsForIsNumberCharactersOnlyValidOrFail,\r\n getTypedParamsForIsNumbersOnlyValidOrFail,\r\n} from \"./utils\";\r\nimport * as validationFunctions from \"./validationFunctions\";\r\n\r\n/**\r\n * Tento soubor obsahuje validace spouštěné (interně value-reducerem) okamžitě při psaní na každý `onChange`.\r\n * Pokud validace neprojde, pak se nová hodnota do reduceru ani nezapíše.\r\n * Více viz `readme.md`.\r\n */\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota není delší, než maximální délka.\r\n *\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje maximální délku, vůči níž se `value` validuje.\r\n * Spolu s `value` musí vyhovovat rozhraní {@link IValidateMaxLengthParams}.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isMaxLengthValid: InstantValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>) => {\r\n const typedParams = getTypedParamsForIsMaxLengthValidOrFail(value, args);\r\n return validationFunctions.isMaxLengthValid(typedParams);\r\n};\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota obsahuje pouze čísla.\r\n *\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Musí být prázdné.\r\n * Spolu s `value` musí vyhovovat rozhraní {@link IIsNumbersOnlyValidParams}.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isNumbersOnlyValid: InstantValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>) => {\r\n const typedParams = getTypedParamsForIsNumbersOnlyValidOrFail(value, args);\r\n return validationFunctions.isNumbersOnlyValid(typedParams);\r\n};\r\n\r\n/**\r\n * Zvaliduje, zda zadaná řetězcová hodnota není delší, než maximální délka a pokud je, tak validuje, jestli z hodnoty uživatel smazal nějaký znak.\r\n *\r\n * @param value Hodnota k validaci. Musí to být řetězec.\r\n * @param args Obsahuje maximální délku, vůči níž se `value` validuje a cílovou hodnotu, vůči které probíhá validace toho, zda byl při editaci smazán nějaký znak.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isLengthValid: InstantValidationFunction = (value, args: TypedObject<ReduxCompatibleValue>) => {\r\n const charsDeletedValidParams = getTypedParamsForCharsDeletedValidOrFail(value, args);\r\n const isMaxLengthValidParams = getTypedParamsForIsMaxLengthValidOrFail(value, args);\r\n\r\n const maxLengthValid = validationFunctions.isMaxLengthValid(isMaxLengthValidParams);\r\n\r\n return maxLengthValid ? maxLengthValid : validationFunctions.charsDeleted(charsDeletedValidParams);\r\n};\r\n\r\n/**\r\n * Kontroluje, zda zadaná řetězcová hodnota obsahuje pouze povolené znaky.\r\n * Je možné validovat pouze celá čísla.\r\n * @param value Řetězcová hodnota.\r\n * @param args Obsahuje příznak, zda se mají validovat pouze celá čísla.\r\n * @return `true`, pokud validace projde.\r\n */\r\nexport const isNumberCharactersOnlyValid: InstantValidationFunction = (value, args) => {\r\n const typedParams = getTypedParamsForIsNumberCharactersOnlyValidOrFail(value, args);\r\n return validationFunctions.isNumberCharactersOnlyValid(typedParams);\r\n};\r\n\r\n/**\r\n * Mapuje klíče na validační funkce. Určeno pro potřeby {@link isValueValid}.\r\n * Je možné sem doregistrovat další validační funkce přes {@link registerCustomValidationFunction}.\r\n */\r\nexport const validationFnMap = new Map<CustomizableInstantValidationFnKey, InstantValidationFunction>([\r\n [InstantValidationFnKey.maxLength, isMaxLengthValid],\r\n [InstantValidationFnKey.numbersOnly, isNumbersOnlyValid],\r\n [InstantValidationFnKey.length, isLengthValid],\r\n [InstantValidationFnKey.numberCharactersOnly, isNumberCharactersOnlyValid],\r\n]);\r\n\r\n/**\r\n * Vrací validační funkci se zadaným klíčem. Nebo vyhodí výjimku, pokud pro daný klíč funkce neexistuje.\r\n */\r\nexport const getValidationFn = (fnKey: CustomizableInstantValidationFnKey) => {\r\n const validationFn = validationFnMap.get(fnKey);\r\n invariant(!!validationFn, `[Controls/InstantValidation] Function for given key not found: ${fnKey}`);\r\n return validationFn;\r\n};\r\n\r\n/**\r\n * Zaregistruje zákaznickou validační funkci. Po zaregistrování bude možné tuto funkci předávat do {@link isValueValid}.\r\n * @param fnKey Klíč identifikující danou funkci. Musí být jedinečný, jinak se registrace nezdaří.\r\n * @param customFunction Validační funkce k zaregistrování.\r\n */\r\nexport const registerCustomValidationFunction = (fnKey: CustomizableInstantValidationFnKey, customFunction: InstantValidationFunction) => {\r\n if (validationFnMap.get(fnKey)) {\r\n throw new Error(`[Controls/InstantValidation] Function with given key already exists: ${fnKey}`);\r\n }\r\n validationFnMap.set(fnKey, customFunction);\r\n};\r\n\r\n/**\r\n * Zvaliduje zadanou hodnotu zadanými validačními funkcemi.\r\n * @param value Hodnota k validaci.\r\n * @param descriptions Seznam validací, které budou na `value` aplikovány.\r\n * @returns `true`, pokud všechny validace projdou. Jinak `false`.\r\n */\r\nexport const isValueValid = (value: ControlReduxRawValue, descriptions: ReadonlyArray<IInstantValidationFnDescription>): boolean => (\r\n descriptions.reduce((acc, currentDescription) => {\r\n const isValidFn = getValidationFn(currentDescription.fnKey);\r\n return acc && isValidFn(value, currentDescription.args);\r\n }, true as boolean)\r\n);\r\n\r\n/**\r\n * Převádí `maxLength` na instanci {IInstantValidationFnDescription} určenou pro {@link isMaxLengthValid}.\r\n */\r\nexport const createMaxLengthDescription = (maxLength: number): IInstantValidationFnDescription => ({\r\n fnKey: InstantValidationFnKey.maxLength,\r\n args: { maxLength },\r\n});\r\n\r\n/**\r\n * Vrací instanci {IInstantValidationFnDescription} určenou pro {@link isNumbersOnlyValid}.\r\n */\r\nexport const createNumbersOnlyDescription = (): IInstantValidationFnDescription => ({\r\n fnKey: InstantValidationFnKey.numbersOnly,\r\n args: EMPTY_OBJECT,\r\n});\r\n\r\n/**\r\n * Vrací instanci {IInstantValidationFnDescription} určenou pro {@link isLengthValid}.\r\n */\r\nexport const createLengthDescription = (targetValue: string, maxLength: number): IInstantValidationFnDescription => ({\r\n fnKey: InstantValidationFnKey.length,\r\n args: { targetValue, maxLength },\r\n});\r\n\r\n/**\r\n * Vrací instanci {IInstantValidationFnDescription} určenou pro {@link isNumberCharactersOnlyValid}.\r\n */\r\nexport const createNumberCharactersOnlyDescription = (isInteger: boolean): IInstantValidationFnDescription => ({\r\n fnKey: InstantValidationFnKey.numberCharactersOnly,\r\n args: { isInteger },\r\n});\r\n\r\nexport const InstantValidation = {\r\n registerCustomValidationFunction,\r\n isValueValid,\r\n createMaxLengthDescription,\r\n createNumbersOnlyDescription,\r\n createLengthDescription,\r\n createNumberCharactersOnlyDescription,\r\n};\r\n","export { ExplicitValidation } from \"./ExplicitValidation\";\r\nexport { InstantValidation } from \"./InstantValidation\";\r\nexport { IExplicitValidationError, IExplicitValidationFnDescription, IInstantValidationFnDescription, ILocalizedExplicitValidationError } from \"./types\";\r\nexport { areErrorsEqual, areLocalizedErrorsEqual, isLocalizedErrorEqual } from \"./utils\";\r\n","import { Action } from \"redux\";\r\n\r\nimport { ReduxCompatibleValue, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n CLEAR_CONTROLS_VALUE,\r\n CLEAR_VALIDATION_ERRORS,\r\n CONTROLS_VALUE_CHANGED,\r\n INIT_CONTROLS_VALUE,\r\n SET_VALIDATION_DESCRIPTIONS,\r\n VALIDATE,\r\n} from \"./constants\";\r\nimport { IExplicitValidationError, IExplicitValidationFnDescription, IInstantValidationFnDescription } from \"./validation\";\r\n\r\n/**\r\n * Klíč pro jednoznačnou identifikaci stavu pole. Na základě jednoho klíče je možné přistupovat ke stavu z více komponent.\r\n */\r\nexport type ControlsKey = string;\r\n\r\n/**\r\n * Režim instantních validací při zadávání nové hodnoty do Reduxu. (Typicky akce {@link IControlsValueChangedAction}.)\r\n */\r\nexport enum ControlsValueInstantValidationMode {\r\n /**\r\n * Režim validací používaný při editaci člověkem.\r\n * - Je žádoucí, aby člověk mohl zadat pouze validní hodnoty - s ohledem na instantní validace.\r\n * - Musí se ale také ošetřit stav, kdy již v Reduxu je nevalidní hodnota.\r\n *\r\n * Takže:\r\n * - Pokud stávající hodnota v Reduxu je validní (s ohledem na instantní validace), pak i nová hodnota musí být validní. Jinak se do Reduxu nepropíše.\r\n * - Pokud stávající hodnota validní není, pak se nová hodnota 1:1 propíše bez validací.\r\n */\r\n userEdit = \"userEdit\",\r\n /**\r\n * Jde o iniciální hodnotu - typicky získanou ze serveru. (Tj. Při načtení dat ze serveru do formuláře.)\r\n * Tato hodnota musí být do Reduxu propsána 1:1, i kdyby byla neplatná.\r\n *\r\n * -\r\n *\r\n * Pozn. k explicitním validacím:\r\n * - `errors` reducer musí zohlednit i fakt, že hodnota není validní s ohledem na instantní validace.\r\n * - Ale pouze, pokud se aktuální hodnota změnila od té iniciální. (Typicky proto, že ji změnil uživatel přes `userEdit`.)\r\n */\r\n initialValue = \"initialValue\",\r\n /**\r\n * Zadanou hodnotu 1:1 uloží do Reduxu. I kdyby byla nevalidní.\r\n * Přitom nejde o iniciální hodnotu.\r\n *\r\n * -\r\n *\r\n * Používá se v setteru `EditableControlConnector.controlValue`.\r\n * - Ten by se neměl používat při běžné editaci uživatelem. Ale pouze pro explicitní programové nastavení.\r\n * - Voláno např. v `DetailFrame` při změně hodnoty pro nastavení původní - nevalidní - hodnoty.\r\n */\r\n allowInvalid = \"allowInvalid\",\r\n}\r\n\r\n/**\r\n * Struktura stavu modulu `controls`.\r\n */\r\nexport interface IControlsState {\r\n readonly controlsInstances: ControlsInstances;\r\n}\r\n\r\n/**\r\n * Hodnoty jednotlivých polí indexovaných podle klíčů.\r\n */\r\nexport type ControlsInstances = TypedObject<ControlsInstance>;\r\n\r\n/**\r\n * Interní hodnota controlu představující jeho vnitřní stav - i nevalidní.\r\n * - Např. pro `DateEdit.tsx` tu může být i `\"xoxoxo\"`, když si to tam uživatel zapíše.\r\n * - Tato hodnota je interní záležitostí každého control. (Např. pro `ComboBox` to může být třeba index položky nebo zobrazený text uživateli. Dle toho, co je interně výhodnější na implementaci.)\r\n * - Je zodpovědností každého control, jak `rawValue` vyrenderuje. (Např. `CheckBox` bude mít asi `rawValue: boolean` a vyrenderuje to jako `<input type='checkbox' value={rawValue} />`.)\r\n * - Hodnota se typicky ukládá do Reduxu. Proto se do ní smí ukládat pouze typy vhodné pro Redux. Viz {@link ReduxCompatibleValue}.\r\n * - Hodnota se používá i navenek controlu. Ale pouze jako _\"zapouzdřený black box\"_.\r\n *\r\n * **Pozn. k vnějšímu použití jako blackboxu**:\r\n * - Dá se využít např. k uchování stávající hodnoty za účelem jejího pozdějšího obnovení či distribuci do jiných komponent (téhož typu).\r\n * ```\r\n * const rawValueAsBlackBox = someComponent.rawValue;\r\n * ...\r\n * anotherComponent.rawValue = rawValueAsBlackBox;\r\n * ```\r\n *\r\n * **Pozn2. Z historických důvodů se této hodnotě také někdy říká `displayedValue`**.\r\n * - V původní/nereactí appce se tato hodnota typicky 1:1 předávala do HTML elementu `<input value=rawValue>`.\r\n * - A to se typicky 1:1 zobrazilo uživateli.\r\n * - Pří přepisu do Reactu se ukázalo výhodnější/obecnější tomu říkat `rawValue`.\r\n * - Resp. Je to trochu komplikovanější, protože `IAttributeControl.displayedValue` slouží pro dva různé usecases. Více viz `EditableControlConnector.displayedValue`.\r\n */\r\nexport type ControlReduxRawValue = ReduxCompatibleValue;\r\n\r\n/**\r\n * Struktura dat pro jedno pole. <br>\r\n * K datům může v jeden moment přistupovat více komponent. Tento počet je udržován v proměnné `counter`.<br>\r\n * Field `rawValue` reprezentuje hodnotu stavu pole. <br>\r\n */\r\nexport type ControlsInstance = Readonly<{\r\n /** Aktuální hodnota pole. */\r\n readonly rawValue: ControlReduxRawValue;\r\n /** Původní hodnota pole - nastavená při režimu `ControlsValueInstantValidationMode.initialValue`. */\r\n readonly initialRawValue: ControlReduxRawValue;\r\n readonly instantValidationFnDescriptions: ReadonlyArray<IInstantValidationFnDescription>;\r\n readonly explicitValidationFnDescriptions: ReadonlyArray<IExplicitValidationFnDescription>;\r\n readonly errors: ReadonlyArray<IExplicitValidationError>;\r\n readonly counter: number;\r\n}>;\r\n\r\n/**\r\n * Extra parametry pro reducer `errors`.\r\n * Jde o nové hodnoty některých dalších reducerů.\r\n */\r\nexport type ErrorsReducerExtraParams = Pick<ControlsInstance, \"rawValue\" | \"initialRawValue\" | \"instantValidationFnDescriptions\" | \"explicitValidationFnDescriptions\">;\r\n\r\n/**\r\n * Parametry selektoru, který vrací {@link createStableGetMergedValidationErrors}.\r\n */\r\nexport type MergeValidationErrorsParams = {\r\n dataKey: ControlsKey;\r\n /** Chyby evidované (k téže komponentě) mimo redux (v původním nereactím MultiWebu). */\r\n externalErrors: ReadonlyArray<IExplicitValidationError>;\r\n};\r\n\r\nexport interface IControlsMappedAction extends Action<string> {\r\n readonly meta: {\r\n readonly controlsKey: ControlsKey;\r\n };\r\n}\r\n\r\nexport class IControlsMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.controlsKey;\r\n }\r\n}\r\n\r\nexport interface IInitControlsValueAction extends IControlsMappedAction {\r\n readonly payload: {\r\n readonly rawValue: ControlReduxRawValue;\r\n };\r\n}\r\n\r\nexport class IInitControlsValueAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === INIT_CONTROLS_VALUE;\r\n }\r\n}\r\n\r\nexport interface ISetValidationDescriptionsAction extends IControlsMappedAction {\r\n readonly payload: {\r\n readonly instantValidationFnDescriptions: ReadonlyArray<IInstantValidationFnDescription>;\r\n readonly explicitValidationFnDescriptions: ReadonlyArray<IExplicitValidationFnDescription>;\r\n };\r\n}\r\n\r\nexport class ISetValidationDescriptionsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_VALIDATION_DESCRIPTIONS;\r\n }\r\n}\r\n\r\nexport interface IControlsValueChangedAction extends IControlsMappedAction {\r\n readonly payload: {\r\n readonly rawValue: ControlReduxRawValue;\r\n readonly validationMode: ControlsValueInstantValidationMode;\r\n };\r\n}\r\n\r\nexport class IControlsValueChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CONTROLS_VALUE_CHANGED;\r\n }\r\n}\r\n\r\nexport interface IClearControlsValueAction extends IControlsMappedAction {}\r\n\r\nexport class IClearControlsValueAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_CONTROLS_VALUE;\r\n }\r\n}\r\n\r\nexport interface IValidateAction extends IControlsMappedAction {}\r\n\r\nexport class IValidateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === VALIDATE;\r\n }\r\n}\r\n\r\nexport interface IClearValidationErrorsAction extends IControlsMappedAction {}\r\n\r\nexport class IClearValidationErrorsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_VALIDATION_ERRORS;\r\n }\r\n}\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type CaptionComponentProps = {\r\n /** Identifikátor labelu. Může být potřebný pro využití aria-labelledby v jiných komponentách */\r\n readonly id?: string;\r\n /** Příznak, zda je popisek zobrazen pro povinné pole. Přiznak je použit i pro postponeRequired. */\r\n readonly required?: boolean;\r\n /** Text popisku */\r\n readonly text?: string;\r\n /** Nápověda po najetí myši */\r\n readonly title?: string;\r\n /** Určuje ke kterému prvku formuláře je popisek vázán */\r\n readonly htmlFor?: string;\r\n /** Příznak, zda je popisek zobrazen jestli pole není v editaci */\r\n readonly alwaysShowCaption?: boolean;\r\n /** Příznak, zda se má text ořezávat. */\r\n readonly ellipsis?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"caption-component\");\r\n\r\nexport const CaptionComponent: FunctionComponent<CaptionComponentProps> = ({\r\n id,\r\n required = false,\r\n text,\r\n title,\r\n htmlFor,\r\n alwaysShowCaption = true,\r\n ellipsis = false,\r\n}) => (\r\n <label\r\n {...{ id, title, htmlFor }}\r\n className={classNames({\r\n required,\r\n ellipsis,\r\n \"alwaysVisible\": alwaysShowCaption,\r\n })}\r\n >\r\n {text}\r\n </label>\r\n);\r\n","export * from \"./CaptionComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\n\r\nconst className = bemClassNames(\"encrypted-symbol-component\");\r\n\r\nexport const EncryptedSymbol: FunctionComponent = () => (\r\n <div className={className()}>\r\n <Icon iconCode={IconCode.userLock} color={IconColor.textSecondary} />\r\n </div>\r\n);\r\n","export { EncryptedSymbol } from \"./EncryptedSymbol\";\r\n","/** Výčet typů vstupního pole */\r\nexport enum InputType {\r\n text = \"text\",\r\n password = \"password\",\r\n number = \"number\",\r\n checkbox = \"checkbox\",\r\n hidden = \"hidden\",\r\n}\r\n","import React, { ChangeEvent, forwardRef, HTMLProps, useEffect, useRef } from \"react\";\r\n\r\nimport { bemClassNames, combineRefs, TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, OnJavaScriptChange, OptionalTabIndex, TextAlign, TextDirectionality } from \"@multiweb/types/react\";\r\nimport { InputType } from \"./types\";\r\n\r\nconst classNames = bemClassNames(\"input-component\");\r\n\r\ntype CustomInputProps = {\r\n /** Callback volaný při opuštění pole */\r\n onChange?: (value: string | undefined) => void;\r\n /** Hodnota pole */\r\n value: string | undefined;\r\n /** Umožňuje nastavit tabindex */\r\n tabIndex?: OptionalTabIndex | typeof TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT;\r\n /** Příznak, zda je povolen autocomplete */\r\n autoComplete?: boolean;\r\n /** Typ vstupního pole */\r\n type?: InputType;\r\n /** Callback volaný při odposlechnutí javascriptové `change` eventy */\r\n onJavaScriptChange?: OnJavaScriptChange;\r\n /** Určuje směr textu */\r\n direction?: TextDirectionality;\r\n /** Zarovnání textu */\r\n textAlign?: TextAlign;\r\n};\r\n\r\nexport type InputProps = Omit<HTMLProps<HTMLInputElement>, keyof CustomInputProps | \"ref\" | \"dir\"> & CustomInputProps;\r\n\r\n/** Obalovací komponenta základního vstupního pole `<input />` s výchozími hodnotami */\r\nexport const Input: ForwardRefType<HTMLInputElement, InputProps> = forwardRef<HTMLInputElement, InputProps>(({\r\n onChange,\r\n autoComplete = false,\r\n onJavaScriptChange,\r\n textAlign,\r\n ...restInputProps\r\n}, forwardRef) => {\r\n const innerRef = useRef<HTMLInputElement>(null);\r\n const ref = combineRefs(innerRef, forwardRef);\r\n\r\n useEffect(() => {\r\n const handleOnJavaScriptChange = (e: Event) => {\r\n if (onJavaScriptChange) {\r\n onJavaScriptChange(e);\r\n }\r\n };\r\n\r\n const innerRefCurrent = innerRef.current;\r\n\r\n if (innerRefCurrent) {\r\n innerRefCurrent.addEventListener(\"change\", handleOnJavaScriptChange);\r\n }\r\n\r\n return () => {\r\n if (innerRefCurrent) {\r\n innerRefCurrent.removeEventListener(\"change\", handleOnJavaScriptChange);\r\n }\r\n };\r\n }, [onJavaScriptChange]);\r\n\r\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n if (onChange) {\r\n onChange(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n <input\r\n className={classNames({ \"text-align\": textAlign })}\r\n onChange={handleChange}\r\n autoComplete={autoComplete ? \"on\" : \"off\"}\r\n {...{ ref }}\r\n {...restInputProps}\r\n />\r\n );\r\n});\r\n","export { Input, InputProps } from \"./Input\";\r\nexport { InputType } from \"./types\";\r\n","/**\r\n * Workaround pro vyřešení neexistujícího UMD/AMD buildu pro @bem-react/classname. Prozatím je tu vykopírovaný kód,\r\n * časem se zavede bundler, který bude schopný závislost převést na UMD.\r\n */\r\n\r\n/**\r\n * License\r\n * © 2018 Yandex. Code released under Mozilla Public License 2.0.\r\n * https://github.com/bem/bem-react/blob/master/docs/en/LICENSE.txt\r\n */\r\n\r\n/**\r\n * List of classname.\r\n */\r\nexport type ClassNameList = Array<string | undefined>;\r\n\r\n/**\r\n * Allowed modifiers format.\r\n *\r\n * @see https://en.bem.info/methodology/key-concepts/#modifier\r\n */\r\nexport type NoStrictEntityMods = Record<string, string | boolean | number | undefined>;\r\n\r\n/**\r\n * BEM Entity className initializer.\r\n */\r\nexport type ClassNameInitilizer = (blockName: string, elemName?: string) => ClassNameFormatter;\r\n\r\n/**\r\n * BEM Entity className formatter.\r\n */\r\ndeclare function classNameFormatter(): string;\r\ndeclare function classNameFormatter(elemNameOrBlockMods: null, elemMix: ClassNameList): string;\r\ndeclare function classNameFormatter(\r\n elemNameOrBlockMods: NoStrictEntityMods | string,\r\n elemModsOrBlockMix?: NoStrictEntityMods | ClassNameList | null,\r\n elemMix?: ClassNameList,\r\n): string;\r\n\r\nexport type ClassNameFormatter = typeof classNameFormatter;\r\n\r\n/**\r\n * Settings for the naming convention.\r\n */\r\nexport type Preset = {\r\n /**\r\n * Global namespace.\r\n *\r\n * @example `omg-Bem-Elem_mod_val`\r\n */\r\n n?: string;\r\n /**\r\n * Elem's delimiter.\r\n */\r\n e?: string;\r\n /**\r\n * Modifier's delimiter.\r\n */\r\n m?: string;\r\n /**\r\n * Modifier value delimiter.\r\n */\r\n v?: string;\r\n}\r\n\r\n/**\r\n * BEM className configure function.\r\n *\r\n * @example\r\n * ``` ts\r\n *\r\n * import { withNaming } from '@bem-react/classname';\r\n *\r\n * const cn = withNaming({ n: 'ns-', e: '__', m: '_' });\r\n *\r\n * cn('block', 'elem'); // 'ns-block__elem'\r\n * ```\r\n *\r\n * @param preset settings for the naming convention\r\n */\r\nexport function withNaming(preset: Preset): ClassNameInitilizer {\r\n const nameSpace = preset.n || \"\";\r\n const modValueDelimiter = preset.v || preset.m;\r\n\r\n function stringify(b: string, e?: string, m?: NoStrictEntityMods | null, mix?: ClassNameList) {\r\n const entityName = e ? nameSpace + b + preset.e + e : nameSpace + b;\r\n let className = entityName;\r\n\r\n if (m) {\r\n const modPrefix = \" \" + className + preset.m;\r\n\r\n for (const k in m) {\r\n if (m.hasOwnProperty(k)) {\r\n const modVal = m[k];\r\n\r\n if (modVal === true) {\r\n className += modPrefix + k;\r\n } else if (modVal) {\r\n className += modPrefix + k + modValueDelimiter + modVal;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (mix !== undefined) {\r\n for (let i = 0, len = mix.length; i < len; i++) {\r\n const value = mix[i];\r\n\r\n // Skipping non-string values and empty strings\r\n if (!value || typeof value.valueOf() !== \"string\") continue;\r\n\r\n const mixes = value.split(\" \");\r\n\r\n for (let j = 0; j < mixes.length; j++) {\r\n const val = mixes[j];\r\n if (val !== entityName) {\r\n className += \" \" + val;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return className;\r\n }\r\n\r\n return function cnGenerator(b: string, e?: string): ClassNameFormatter {\r\n return (\r\n elemOrMods?: NoStrictEntityMods | string | null,\r\n elemModsOrBlockMix?: NoStrictEntityMods | ClassNameList | null,\r\n elemMix?: ClassNameList,\r\n ) => {\r\n if (typeof elemOrMods === \"string\") {\r\n if (Array.isArray(elemModsOrBlockMix)) {\r\n return stringify(b, elemOrMods, undefined, elemModsOrBlockMix);\r\n }\r\n return stringify(b, elemOrMods, elemModsOrBlockMix, elemMix);\r\n }\r\n return stringify(b, e, elemOrMods, elemModsOrBlockMix as ClassNameList);\r\n };\r\n };\r\n}\r\n\r\n/**\r\n * BEM Entity className initializer with React naming preset.\r\n *\r\n * @example\r\n * ``` ts\r\n *\r\n * import { cn } from '@bem-react/classname';\r\n *\r\n * const cat = cn('Cat');\r\n *\r\n * cat(); // Cat\r\n * cat({ size: 'm' }); // Cat_size_m\r\n * cat('Tail'); // Cat-Tail\r\n * cat('Tail', { length: 'small' }); // Cat-Tail_length_small\r\n *\r\n * const dogPaw = cn('Dog', 'Paw');\r\n *\r\n * dogPaw(); // Dog-Paw\r\n * dogPaw({ color: 'black', exists: true }); // Dog-Paw_color_black Dog-Paw_exists\r\n * ```\r\n *\r\n * @see https://en.bem.info/methodology/naming-convention/#react-style\r\n */\r\nexport const cn = withNaming({\r\n e: \"-\",\r\n m: \"_\",\r\n});\r\n","import { ClassNameFormatter } from \"@bem-react/classname\";\r\nimport { FormComponentProps } from \"../types\";\r\n\r\n/** Typ funkce `generateFormComponentClasses` */\r\ntype GenerateFormComponentClassesType = {\r\n (classNames: ClassNameFormatter,\r\n props: NonNullable<Pick<FormComponentProps,\r\n | \"disabled\"\r\n | \"encrypted\"\r\n | \"invalid\"\r\n | \"required\"\r\n | \"backgroundColor\"\r\n | \"readOnly\"\r\n >>,\r\n extraClasses?: string[]\r\n ): string;\r\n};\r\n\r\n/**\r\n * Funkce vytvoří názvy CSS tříd pro obecné formulářové komponenty dle zadaných props.\r\n * Dodatečné názvy tříd se přidají k vygenerovaným názvem. Názvy jsou odděleny mezerou.\r\n *\r\n * @param classNames Funkce pro tvorbu tříd se zadefinovaným namespacem.\r\n * např. <code>bemClassNames(\"react-component\");</code>\r\n * @param props Props podle kterých se generují třídy.\r\n * @param props.disabled - Příznak, zda se má pole zobrazit jako zakázané.\r\n * @param props.encrypted - Příznak, zda se má pole zobrazit jako šifrované.\r\n * @param props.invalid - Příznak, zda se má pole zobrazit jako nevalidní.\r\n * @param props.required - Příznak, zda se má pole zobrazit jako povinné.\r\n * @param props.backgroundColor - Barva pozadí pole.\r\n * @param extraClasses - Názvy dodatečných CSS tříd.\r\n */\r\nexport const generateFormComponentClasses: GenerateFormComponentClassesType = (\r\n classNames: ClassNameFormatter,\r\n {\r\n disabled,\r\n encrypted,\r\n invalid,\r\n required,\r\n backgroundColor,\r\n readOnly,\r\n },\r\n extraClasses,\r\n) => {\r\n const classes = extraClasses ? [...extraClasses] : [];\r\n if (disabled) {\r\n classes.push(classNames(\"disabled\"));\r\n } else if (encrypted) {\r\n classes.push(classNames(\"encrypted\"));\r\n } else if (invalid) {\r\n classes.push(classNames(\"invalid\"));\r\n } else if (readOnly) {\r\n classes.push(classNames(\"read-only\"));\r\n } else {\r\n classes.push(classNames(\"enabled\", {\r\n required,\r\n background: backgroundColor,\r\n }));\r\n }\r\n return classes.join(\" \");\r\n};\r\n","export { generateFormComponentClasses } from \"./formComponentClasses\";\r\n","import { FocusEventHandler } from \"react\";\r\n\r\nimport { TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT } from \"@multiweb/reactUtils\";\r\nimport { OnChangeHandler, OptionalTabIndex } from \"@multiweb/types/react\";\r\n\r\n/** Výčet možných umístění popisu vůči checkboxu */\r\nexport enum CaptionAlignment {\r\n leftJustify = \"taLeftJustify\",\r\n rightJustify = \"taRightJustify\",\r\n}\r\n\r\n/** Typ hodnoty uložené v checkboxu */\r\nexport type CheckBoxComponentValue = boolean | undefined;\r\n\r\n/** Props sdílené mezi interními komponentami CheckBoxComponent */\r\nexport type CheckBoxComponentSharedProps = Readonly<{\r\n /** Příznak, zda je zaškrtávací pole třístavové */\r\n hasThreeStates?: boolean;\r\n /** Vysvětlivka pole */\r\n title?: string;\r\n /** Hodnota pole */\r\n value: CheckBoxComponentValue;\r\n /** Callback volaný při změně hodnoty pole */\r\n onChange?: OnChangeHandler<CheckBoxComponentValue>;\r\n /** Callback volaný při opuštění pole */\r\n onBlur?: FocusEventHandler<HTMLDivElement>;\r\n /** Příznak, zda se pro hodnotu `false` dvoustavového checkboxu zobrazí červený křížek */\r\n showFalseAsCrossed?: boolean;\r\n /** Umožňuje nastavit tabindex */\r\n tabIndex?: OptionalTabIndex | typeof TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT;\r\n}>;\r\n","import React, { forwardRef, useEffect, useRef } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { EncryptedSymbol } from \"../../EncryptedSymbol\";\r\nimport { Input, InputType } from \"../../Input\";\r\nimport { FormComponentProps } from \"../../types\";\r\nimport { generateFormComponentClasses } from \"../../utils\";\r\nimport { CheckBoxComponentSharedProps } from \"../types\";\r\n\r\nexport type CheckBoxFieldProps = FormComponentProps\r\n & CheckBoxComponentSharedProps\r\n & QAProps;\r\n\r\nconst classNames = bemClassNames(\"check-box-field-component\");\r\n\r\n/** Dvoustavové a třístavové zaškrtávací políčko bez popisku a chování */\r\nexport const CheckBoxField: ForwardRefType<HTMLDivElement, CheckBoxFieldProps> = forwardRef<HTMLDivElement, CheckBoxFieldProps>(({\r\n id,\r\n encrypted = false,\r\n hasThreeStates = false,\r\n invalid = false,\r\n disabled = false,\r\n required = false,\r\n backgroundColor,\r\n title,\r\n value,\r\n tabIndex,\r\n showFalseAsCrossed,\r\n qa,\r\n}, ref) => {\r\n const checkboxRef = useRef<HTMLInputElement>(null);\r\n const classes = generateFormComponentClasses(classNames, { disabled, encrypted, invalid, required, backgroundColor }, [\r\n classNames({\r\n checked: !encrypted && value === true,\r\n crossed: (hasThreeStates || showFalseAsCrossed) && !encrypted && value === false,\r\n empty: !encrypted && value === undefined,\r\n }),\r\n ]);\r\n\r\n useEffect(() => {\r\n if (checkboxRef.current) {\r\n checkboxRef.current.checked = !!value;\r\n checkboxRef.current.indeterminate = value === undefined;\r\n }\r\n }, [value]);\r\n return (\r\n <div\r\n className={classes}\r\n role={Role.checkBox}\r\n aria-checked={value}\r\n {...{ id, tabIndex, title, ref }}\r\n {...createQA(qa)}\r\n >\r\n {encrypted && <EncryptedSymbol />}\r\n <Input\r\n type={InputType.hidden}\r\n ref={checkboxRef}\r\n disabled={disabled || encrypted}\r\n value={(value === undefined ? \"\" : value.toString())}\r\n {...{ required }}\r\n aria-invalid={invalid}\r\n />\r\n </div>\r\n );\r\n});\r\n","export * from \"./CheckBoxField\";\r\n","import { CheckBoxComponentValue } from \"../types\";\r\n\r\n/**\r\n * Třístavový přepínač\r\n * Více informací o přepínání v `CheckBoxSwitcher.md`.\r\n * @param value Hodnota před přepnutím\r\n * @return Hodnotu po přepnutí\r\n */\r\nexport const getNextCheckBoxValue = (value: CheckBoxComponentValue): CheckBoxComponentValue => {\r\n switch (value) {\r\n case true:\r\n return false;\r\n case false:\r\n return undefined;\r\n case undefined:\r\n return true;\r\n default: throw new Error(`[CheckBoxComponent] - Unexpected value ${value}`);\r\n }\r\n};\r\n","import React, { createRef, FunctionComponent, KeyboardEvent, MouseEventHandler, ReactNode, RefObject, useEffect } from \"react\";\r\n\r\nimport { bemClassNames, createQA, Key } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { FormComponentEventHandlersProps, FormComponentProps } from \"../../types\";\r\nimport { CheckBoxComponentSharedProps } from \"../types\";\r\nimport { getNextCheckBoxValue } from \"./utils\";\r\n\r\ntype CheckBoxSwitcherChildrenProps = {\r\n ref: RefObject<HTMLDivElement>;\r\n};\r\n\r\nexport type CheckBoxSwitcherProps = {\r\n /** Potomci, kteří mají k dispozici referenci určenou pro vstupní pole checkboxu */\r\n children: (props: CheckBoxSwitcherChildrenProps) => ReactNode;\r\n /** Příznak, zda chceme vynutit v checkboxu hodnotu */\r\n forceDefaultValue?: boolean;\r\n /** Defaultní hodnota checkboxu při vynucení hodnoty */\r\n defaultValue?: boolean;\r\n}\r\n& Pick<FormComponentProps, \"encrypted\" | \"disabled\">\r\n& Pick<FormComponentEventHandlersProps,\r\n | \"onClick\"\r\n | \"onMouseOver\"\r\n | \"onMouseEnter\"\r\n | \"onMouseLeave\"\r\n | \"onKeyDown\"\r\n | \"onFocus\"\r\n | \"onBlur\"\r\n >\r\n& Omit<CheckBoxComponentSharedProps, \"id\" | \"showFalseAsCrossed\">\r\n& QAProps;\r\n\r\nconst classNames = bemClassNames(\"check-box-switcher-component\");\r\n\r\n/** Obalovací komponenta zajišťující logiku pro dvoustavové a třístavové zaškrtávací pole */\r\nexport const CheckBoxSwitcher: FunctionComponent<CheckBoxSwitcherProps> = ({\r\n children,\r\n encrypted = false,\r\n hasThreeStates = false,\r\n onChange,\r\n onClick,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n disabled = false,\r\n title,\r\n value,\r\n qa,\r\n forceDefaultValue = false,\r\n defaultValue = true,\r\n}) => {\r\n const checkBoxFieldRef = createRef<HTMLDivElement>();\r\n\r\n const switchValue = () => {\r\n if (!disabled && !encrypted && onChange) {\r\n if (hasThreeStates) {\r\n onChange(getNextCheckBoxValue(value));\r\n } else {\r\n onChange(!value);\r\n }\r\n }\r\n };\r\n\r\n const handleClick: MouseEventHandler = (e) => {\r\n onClick && onClick(e);\r\n switchValue();\r\n if (!disabled && !encrypted && checkBoxFieldRef.current) {\r\n checkBoxFieldRef.current.focus();\r\n }\r\n };\r\n\r\n const handleKeyPress = (event: KeyboardEvent<HTMLDivElement>) => {\r\n event.preventDefault();\r\n if (event.key === Key.Space) {\r\n switchValue();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (forceDefaultValue && onChange)\r\n onChange(defaultValue);\r\n\r\n // Chceme provádět pouze při prvním renderu ([]), v ostatních případech\r\n // už nastavení hodnoty je necháno na samotné komponentě.\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n <div\r\n {...createQA(qa)}\r\n className={classNames({\r\n encrypted,\r\n disabled,\r\n })}\r\n role={Role.checkBox}\r\n aria-checked={!!value}\r\n onClick={handleClick}\r\n onKeyPress={handleKeyPress}\r\n {...{\r\n title,\r\n onFocus,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onKeyDown,\r\n onBlur,\r\n }}\r\n >\r\n {children({ ref: checkBoxFieldRef })}\r\n </div>\r\n );\r\n};\r\n","export * from \"./CheckBoxSwitcher\";\r\n","import React, { forwardRef } from \"react\";\r\n\r\nimport { combineRefs } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { CaptionComponent } from \"../CaptionComponent\";\r\nimport { FlexDirection, Layout, SpacingSize } from \"../Layout\";\r\nimport { FormComponentEventHandlersProps, FormComponentProps } from \"../types\";\r\nimport { CheckBoxField } from \"./CheckBoxField\";\r\nimport { CheckBoxSwitcher } from \"./CheckBoxSwitcher\";\r\nimport { CaptionAlignment, CheckBoxComponentSharedProps } from \"./types\";\r\n\r\nexport type CheckBoxComponentProps = {\r\n /** Popisek zobrazený vedle checkboxu */\r\n label?: string;\r\n /** Umístění popisu */\r\n alignment?: CaptionAlignment;\r\n /** Příznak, zda chceme vynutit v checkboxu hodnotu */\r\n forceDefaultValue?: boolean;\r\n /** Defaultní hodnota checkboxu při vynucení hodnoty */\r\n defaultValue?: boolean;\r\n}\r\n & FormComponentProps\r\n & CheckBoxComponentSharedProps\r\n & FormComponentEventHandlersProps\r\n & QAProps;\r\n\r\n/** Zaškrtávací políčko */\r\nexport const CheckBoxComponent: ForwardRefType<HTMLDivElement, CheckBoxComponentProps> = forwardRef<HTMLDivElement, CheckBoxComponentProps>(({\r\n id,\r\n encrypted = false,\r\n hasThreeStates = false,\r\n invalid = false,\r\n label,\r\n onChange,\r\n onClick,\r\n onBlur,\r\n onFocus,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n disabled = false,\r\n required = false,\r\n backgroundColor,\r\n title,\r\n value,\r\n alignment = CaptionAlignment.rightJustify,\r\n tabIndex,\r\n showFalseAsCrossed,\r\n qa,\r\n forceDefaultValue = false,\r\n defaultValue = true,\r\n}, ref) => {\r\n const isLeftAligned = alignment === CaptionAlignment.leftJustify;\r\n return (\r\n <CheckBoxSwitcher {...{\r\n encrypted,\r\n hasThreeStates,\r\n disabled,\r\n title,\r\n value,\r\n onChange,\r\n onClick,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onBlur,\r\n onFocus,\r\n qa,\r\n forceDefaultValue,\r\n defaultValue,\r\n }}>\r\n {({ ref: switcherRef }) => {\r\n const joinedRefs = combineRefs<HTMLDivElement>(switcherRef, ref);\r\n return (\r\n <Layout flexDirection={isLeftAligned ? FlexDirection.rowReverse : FlexDirection.row}>\r\n <CheckBoxField\r\n {...{\r\n id,\r\n encrypted,\r\n hasThreeStates,\r\n invalid,\r\n disabled,\r\n required,\r\n backgroundColor,\r\n title,\r\n value,\r\n tabIndex,\r\n showFalseAsCrossed,\r\n }}\r\n ref={joinedRefs}\r\n />\r\n {label !== undefined && (\r\n <Layout\r\n spacingSizeLeft={isLeftAligned ? undefined : SpacingSize.xxs}\r\n spacingSizeRight={isLeftAligned ? SpacingSize.xxs : undefined}\r\n >\r\n <CaptionComponent\r\n text={label}\r\n htmlFor={id}\r\n {...{ required, title }}\r\n />\r\n </Layout>\r\n )}\r\n </Layout>\r\n );\r\n }}\r\n </CheckBoxSwitcher>\r\n );\r\n});\r\n","export { CheckBoxComponent, CheckBoxComponentProps } from \"./CheckBoxComponent\";\r\nexport { CheckBoxField } from \"./CheckBoxField\";\r\nexport { CaptionAlignment, CheckBoxComponentSharedProps, CheckBoxComponentValue } from \"./types\";\r\n","import { FocusEventHandler, KeyboardEventHandler, MouseEventHandler, PropsWithChildren, ReactNode, RefObject } from \"react\";\r\n\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport {\r\n NoneOwnProps,\r\n OnChangeHandler,\r\n} from \"@multiweb/types/react\";\r\nimport { Cursor } from \"../../../Global/Base/Enums\";\r\nimport { ControlReduxRawValue, ControlsKey } from \"../controls/types\";\r\nimport { IExplicitValidationError } from \"../controls/validation/types\";\r\nimport { CaptionAlignment } from \"./CheckBoxComponent\";\r\n\r\n/**\r\n * Pozicování vůči vedlejší ose\r\n * @see https://css-tricks.com/almanac/properties/a/align-items/\r\n * */\r\nexport enum AlignItems {\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n baseline = \"baseline\",\r\n center = \"center\",\r\n flexEnd = \"flex-end\",\r\n flexStart = \"flex-start\",\r\n stretch = \"stretch\",\r\n}\r\n\r\n/**\r\n * Používá se ve VirtualizedListu a InfiniteVirtualizedListu k vytvoření hlavičky a patičky.\r\n *\r\n * Jelikož má mít hlavička a patička plnou šířku komponenty VirtualizedList, je potřeba jí předat šířku z Autosizeru.\r\n *\r\n * @param width Šířka vytvářené komponenty (hlavičky nebo patičky).\r\n */\r\nexport type VirtualizedListStickyComponentCreator = (width: number) => ReactNode;\r\n\r\n/**\r\n * Určuje variantu stylů DataGridu. Variant je sdílený a předává se do InfiniteVirtualizedListu.\r\n */\r\nexport enum DataGridVariant {\r\n default = \"default\",\r\n gridParticipants = \"grid-participants\",\r\n}\r\n\r\n/** Typy fází animace */\r\nexport enum AnimationPhase {\r\n start = \"start\",\r\n end = \"end\",\r\n}\r\n\r\n/** Výčet velikostí komponent */\r\nexport enum ComponentSize {\r\n large = \"large\",\r\n small = \"small\",\r\n}\r\n\r\n/** Výčet podporovaných barev pozadí pro formulářové komponenty */\r\nexport enum BackgroundColor {\r\n yellow = \"yellow\",\r\n orange = \"orange\",\r\n blue = \"blue\",\r\n}\r\n\r\n/** Sdílené props event handlerů pro formulářové komponenty */\r\nexport type FormComponentEventHandlersProps = Readonly<{\r\n /** Callback volaný při zaměření pole */\r\n onFocus?: FocusEventHandler;\r\n /** Callback volaný při opuštění pole */\r\n onBlur?: FocusEventHandler;\r\n /** Callback volaný po kliknutí primárním tlačítkem myši na pole */\r\n onClick?: MouseEventHandler;\r\n /** Callback volaný po kliknutí jiným než primárním tlačítkem myši na pole */\r\n onAuxClick?: MouseEventHandler;\r\n /** Callback volaný po zmáčknutí myši v poli */\r\n onMouseDown?: MouseEventHandler;\r\n /** Callback volaný po přejetí myší na pole */\r\n onMouseOver?: MouseEventHandler;\r\n /** Callback volaný po vstupu myši do oblasti pole */\r\n onMouseEnter?: MouseEventHandler;\r\n /** Callback volaný po opuštění oblasti pole myší */\r\n onMouseLeave?: MouseEventHandler;\r\n /** Callback volaná po stisknutí tlačítka klávesnice */\r\n onKeyDown?: KeyboardEventHandler;\r\n}>;\r\n\r\n/** Props společné pro obecné formulářové komponenty použitelné i mimo MultiWeb. */\r\nexport type FormComponentProps = Readonly<{\r\n /** Unikátní identifikátor ovládacího prvku formuláře */\r\n id?: string;\r\n /** Příznak, zda je pole zakázáno. V takovém případě je pole neklikatelné a neemituje žádné eventy.\r\n * `disabled` se používá pouze tehdy, pokud komponenta neobsahuje atribut `readOnly`.\r\n */\r\n disabled?: boolean;\r\n /** Příznak, zda je hodnota pole nevalidní */\r\n invalid?: boolean;\r\n /** Příznak, zda je pole povinné */\r\n required?: boolean;\r\n /** Barva pozadí vstupního pole */\r\n backgroundColor?: BackgroundColor;\r\n /** Příznak, zda se má pole zobrazit jako šifrované. */\r\n encrypted?: boolean;\r\n /**\r\n * Příznak, zda je pole označeno pouze pro čtení což znamená, že je pole neměnitelné, ale použitlelné k označení nebo kopírování textu.\r\n * Tento atribut je preferovaný před atributem `disabled`, pokud ho komponenta obsahuje.\r\n * `readOnly` se nastavuje v souvislosti s přiznakem `enabledVisual` a reflektuje opak jeho hodnoty.\r\n * V rámci multiwebu zastává roli `disabled` (využívá stejné styly, aby se tvářil jako disabled) s tím rozdílem, že je využita jeho vlastnosti klikatelnosti.\r\n *\r\n * Pokud má uživatel právo editace, tak při kliknutí na `readOnly` komponentu zároveň dojde k přepnutí stavu editace formuláře na `isEditing=true` viz {@link EditableControlComponentProps}.\r\n *\r\n * @example (počítá s tim, že má uživatel potřebné právo pro editaci).\r\n * <HTMLElement readOnly=true isEditing=false /> - uživatel nemůže editovat.\r\n * Kliknu na element.\r\n * <HTMLElement readOnly=false isEditing=true /> - uživatel se přepíná do stavu isEditing a může editovat.\r\n */\r\n readOnly?: boolean;\r\n /** Příznak, zda se má komponenta použít v transparentním módu. Týká se to např. nastavení barvy pozadí, nezobrazování okrajů apod. */\r\n transparent?: boolean;\r\n}>;\r\n\r\n/**\r\n * Props předávané do základních komponent, které rozšiřují třídu GenericControl a jsou použitelné napříč formulářovými komponentami specifickými pro MultiWeb aplikaci.\r\n * Obsahuje pouze props odpovídající atributům z třídy GenericControl, které ovlivňují vykreslení základních komponent.\r\n */\r\nexport type GenericControlComponentProps = NoneOwnProps;\r\n\r\n/**\r\n * Props odpovídající atributům vyskytujících se v základním needitačním control, které rozšiřují třídu Control a jsou použitelné napříč formulářovými komponentami specifickými pro MultiWeb aplikaci.\r\n * Obsahuje pouze props odpovídající atributům z třídy Control, které ovlivňují vykreslení základních needitačních komponent.\r\n *\r\n * Typ PropsWithChildren se používá kvůli chybě související s {@link https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-4.html#weak-type-detection|Weak type check}.\r\n */\r\nexport type ControlComponentProps = Readonly<PropsWithChildren<{\r\n /** Unikátní identifikátor komponenty. Id je určeno primárně pro input element v komponentě. */\r\n id?: string;\r\n /** Příznak zda je komponenta interaktivní */\r\n interactive?: boolean;\r\n /** Lokalizační klíč názvu komponenty a nápovědy */\r\n locKey: string;\r\n /** Lokalizační klíč pro text placeholderu */\r\n placeholderLocKey?: string;\r\n /** Příznak, zda je pole viditelné */\r\n visible?: boolean;\r\n /** Příznak, zda je pole povolené */\r\n enabled?: boolean;\r\n /** Příznak, zda je pole šifrováno */\r\n encrypted?: boolean;\r\n /** Hodnota komponenty */\r\n value?: unknown ;\r\n}>> & GenericControlComponentProps;\r\n\r\n/**\r\n * Callback určený na provolání při spuštění validace konkrétního control.\r\n */\r\nexport type OnValidationCallback = () => void;\r\n\r\n/**\r\n * Callback určený na provolání při změně validačních chyb konkrétního control. Tj.\r\n * - buď při změně redux stavu `errors` v controls-modulu\r\n * - nebo při změně externích validačních chyb\r\n *\r\n * (Dá se použít pro napojení eventy `validityChanged` z původní/nereactí aplikace.)\r\n */\r\nexport type OnValidityChanged = () => void;\r\n\r\n/**\r\n * Textová reprezentace controlu - typicky určená jako součást nadpisu formuláře (`DetailFrame._captionAttrs`).\r\n * - Pokud je grafická reprezentace controlu textová (např. Edit, NumEdit, ComboBox, ...), pak tu nejspíš bude 1:1, co v grafické reprezentaci.\r\n * - V ostatních případech (např. CheckBox) ...\r\n */\r\nexport type ControlDisplayedValue = string | null;\r\n\r\n/**\r\n * Kompletní/naparsovaná hodnota. Nebo `undefined`, pokud rawValue není naparsovatelná. <br/>\r\n * V této formě jsou data ukládána např. v `DetailFrame.actualObject`.\r\n *\r\n * -\r\n *\r\n * Příklady pro `DateEdit`:\r\n * - pro `DateEdit` vždy vrací `Date | null | undefined`.\r\n * - pokud uživatel zadá - za rawValue - řetězec `\"3.5.2004\"`, pak tomu bude odpovídat `controlValue === new Date(2004, 5, 3)`.\r\n * - pokud uživatel zadá - za rawValue - `null` (nebo prázdný řetězec), pak tomu bude odpovídat `controlValue === null`.\r\n * - pokud uživatel zadá - za rawValue - řetězec `\"nesmysl\"`, pak tomu bude odpovídat `controlValue === undefined`.\r\n */\r\nexport type ControlValue = any;\r\n\r\n/**\r\n * Callback volaný při mountu editovatelného control.\r\n * - Používá se pro předání věcí - specifických pro danou komponentu - navenek.\r\n * - Konkrétně pro předání převodníků mezi různými formami hodnoty controlu.\r\n * - Tyto převodníky využívá `EditableControlConnector` pro naplnění kontraktu některých svých metod (`displayedValue`, `controlValue`).\r\n */\r\nexport type OnEditableControlMount = (args: {\r\n /** Převádí rawValue na {@link ControlDisplayedValue}. */\r\n getDisplayedValue: (rawValue: ControlReduxRawValue) => ControlDisplayedValue;\r\n /** Převádí rawValue na {@link ControlValue}. */\r\n getControlValue: (rawValue: ControlReduxRawValue) => ControlValue;\r\n /** Převádí {@link ControlValue} na rawValue. */\r\n convertControlValueToRawValue: (controlValue: ControlValue) => ControlReduxRawValue;\r\n}) => void;\r\n\r\n/**\r\n * Props odpovídající atributům vyskytujících se v editačním control, které rozšiřují třídu EditableControl a jsou použitelné napříč formulářovými komponentami specifickými pro MultiWeb aplikaci.\r\n * Obsahuje pouze props odpovídající atributům z třídy EditableControl, které ovlivňují vykreslení editačních komponent.\r\n * Více informací v souboru `UI.React/components/formComponents.md`\r\n */\r\nexport type EditableControlComponentProps = Readonly<{\r\n /** Klíč sloužící k identifikaci pole v reduxu */\r\n dataKey: ControlsKey;\r\n /** Příznak, zda je pole odloženě povinné */\r\n postponedRequired?: boolean;\r\n /** Příznak, zda je hodnota pole pouze pro čtení */\r\n enabledVisual?: boolean;\r\n /** Příznak, zda je pole doporučené */\r\n recommended?: boolean;\r\n /** Příznak, zda je pole povinné */\r\n required?: boolean;\r\n /** Externí validační chyby. Tj. důvody nevalidnosti, které neřeší dané control. (Control je pouze dostane zvenku k zobrazení.) */\r\n externalErrors: ReadonlyArray<IExplicitValidationError>;\r\n /** True, pokud se má v tooltipu zobrazit hláška, že hodnota je povinná, ale není vyplněna (platnou) hodnotou. */\r\n isInRequiredInvalidState: boolean;\r\n /** Voláno při každém spuštění validace daným controlem. */\r\n onValidationCallback: OnValidationCallback;\r\n /** Voláno pouze, pokud se výsledek validace změnil. */\r\n onValidityChanged: OnValidityChanged;\r\n /** Reference na vstupni pole. */\r\n ref?: RefObject<HTMLElement>;\r\n /** Callback volaný při mountu editovatelného control. */\r\n onMount?: OnEditableControlMount;\r\n /**\r\n * Callback volaný při každé změně hodnoty pole.\r\n * Reaguje na React `onChange` event, ne na JavaScript `change` event.\r\n * Mezi těmito událostmi {@link https://stackoverflow.com/questions/38256332/in-react-whats-the-difference-between-onchange-and-oninput|je rozdíl}.\r\n */\r\n onChange?: OnChangeHandler<ControlReduxRawValue>;\r\n /**\r\n * Callback volaný při opuštění pole se změněnou hodnotou.\r\n * Od {@link onChange} se liší tím, že se nevolá při každé změně hodnoty v control.\r\n */\r\n triggerValueChange?: () => void;\r\n /** Příznak, zda je pole v módu editace. Příznak je opakem `readOnly` z {@link FormComponentProps}.\r\n * Pokud má uživatel právo editace, tak přepínáním editačního módu zároveň dochází k přepínaní `readOnly` viz {@link FormComponentProps}.\r\n */\r\n isEditing?: boolean;\r\n}> & ControlComponentProps & FormComponentEventHandlersProps & MultiEditProps;\r\n\r\nexport type LoadableEditableControlComponentProps = Readonly<{\r\n /** Informace o tom, zda probiha loading */\r\n isLoading: boolean;\r\n}> & EditableControlComponentProps;\r\n\r\n/**\r\n * Props sdílené mezi fake kontejnery pro hromadnou editaci. Jedná se o props předávané zvenčí, tvoří tak rozhraní pro komponenty vstupující do multiEditMixinu.\r\n */\r\nexport type FakeContainerProps = {\r\n /** Lokalizační klíč pro získání vysvětlivky pole (title) a názvu pole (pro přístupnost v případě, že pro komponentu neexistuje odpovídající label) */\r\n locKey: string;\r\n} & Pick<FakeComponentProps, \"disabled\" | \"required\" | \"postponedRequired\" | \"recommended\" | \"onClick\" | \"onKeyDown\" | \"isEditing\" | \"ariaLabelledBy\">;\r\n\r\n/**\r\n * Props sdílené mezi fake komponentami pro hromadnou editaci.\r\n */\r\nexport type FakeComponentProps = {\r\n /** Popisek pole*/\r\n label: string;\r\n /** Vysvětlivka pole */\r\n title: string;\r\n /** Vysvětlivka pro hodnotu hromadné editace */\r\n valueTitle: string;\r\n /** Příznak, zda je pole zakázáno */\r\n disabled?: boolean;\r\n /**\r\n * Příznak, zda je aktivní editace. Pokud není aktivní, pole vypadá jako zakázané, ale ve skutečnosti zakázané není, aby se při kliknutí na pole\r\n * zaslala událost nadřazenému formuláři, který editaci aktivuje.\r\n */\r\n isEditing?: boolean;\r\n /** Callback volaný při kliknutí. Disabled nemá na volání vliv. Vyhodnocení disabled je zodpovědností tvůrce callbacku\r\n * (typicky {@link MultiEditWrapper} nebo {@link MultiEditMixin}) */\r\n onClick?: MouseEventHandler;\r\n /** Callback volaný při stisku klávesy. Disabled nemá na volání vliv. Vyhodnocení disabled je zodpovědností tvůrce callbacku\r\n * (typicky {@link MultiEditWrapper} nebo {@link MultiEditMixin}) */\r\n onKeyDown?: KeyboardEventHandler;\r\n /**\r\n * Prop pro zadání atributu <code>aria-labelledby</code>. Poskytuje čitelnost fake komponentám pro čtečky.\r\n * Nelze použít hodnotu for z label elementu, protože ten už je svázaný s reálnou komponentou. Proto se typicky zadává id label elementu.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute\r\n */\r\n ariaLabelledBy?: string;\r\n /** Právo povinnost */\r\n required?: boolean;\r\n /** Právo doporučenost */\r\n recommended?: boolean;\r\n /** Právo odložené povinnosti */\r\n postponedRequired?: boolean;\r\n};\r\n\r\n/**\r\n * Props sdílené mezi needitovatelnymi fake komponentami pro hromadnou editaci.\r\n */\r\nexport type NoEditFakeComponentProps = {\r\n /** Vysvětlivka pole */\r\n title: string;\r\n /** Vysvětlivka pro hodnotu hromadné editace */\r\n valueTitle: string;\r\n /** Zobrazená hodnota */\r\n value: string;\r\n};\r\n\r\n/**\r\n * Props related to modal window size adjustment.\r\n */\r\nexport type ResizeOptionsProps = {\r\n /** Switch that determines whether the modal window can be resized (symmetrically) */\r\n readonly resizable?: boolean;\r\n /** Switch that determines whether the modal window can be resized (asymmetrically) */\r\n readonly asymmetricallyResizable?: boolean;\r\n /** Sets box width */\r\n readonly defaultWidth: number;\r\n /** Sets box height */\r\n readonly defaultHeight: number;\r\n /** Sets min box width */\r\n readonly minWidth?: number;\r\n /** Sets max box width */\r\n readonly maxWidth?: number;\r\n /** Sets min box height */\r\n readonly minHeight?: number;\r\n /** Sets max box height */\r\n readonly maxHeight?: number;\r\n};\r\n\r\n/**\r\n * Rozhraní pro reactové komponenty podporující hromadnou editaci.\r\n * Vychází z rozhraní IMultiEdit v ControlInterfaces.ts. ControlInterfaces ale nejsou striktní, proto je nelze využít přímo\r\n * v reactu.\r\n */\r\nexport type MultiEditProps = {\r\n /** Příznak značící, jestli je hromadná editace právě aktivní */\r\n multiEditActive: boolean;\r\n /** Příznak, zda proběhla interakce s fake komponentou v rámci jednoho cyklu hromadné editace. */\r\n touched: boolean;\r\n};\r\n\r\n/**\r\n * Dílčí props, které také vrací `EditableControlConnector._getRenderProps`. Jde o props získané z datových atributů kořenového elementu.\r\n * - Tyto props nejsou zcela společné.\r\n * - Nicméně se předávají do všech React komponent renderovaných přes `EditableControlConnector`.\r\n * - I do těch, které dané props nepodporují.\r\n * - Je to kvůli usnadnění implementace `EditableControlConnector._getRenderProps()`.\r\n *\r\n * Možnosti:\r\n * 1. Pro každou komponentu udělat konkrétní konektor. Např. pro `Edit` `EditConnector`.\r\n * Konkrétní konektor by tak předal přesně ty props, které vyžaduje konkrétní komponenta. Nic víc.\r\n * 2. **(Zvolené řešení)** Ponechat univerzální konektor `EditableControlConnector` použitelný pro vícero komponent.\r\n * A do těch komponent předávat všechny props z datových atributů. Pro jistotu, kdyby je náhodou komponenty potřebovaly.\r\n * 3. Ponechat univerzální konektor, ale při jeho instanciaci předat funkci, která z data atributů vyextrahuje\r\n * specifické props šité na míru pro konkrétní komponentu.\r\n * 4. Podobně jako 3. možnost. S tím, že funkce na extrakci specifických props by byla součástí komponenty - jako statická. Např. `Edit.extractPropsFromDataAttributes`.\r\n * Do konektoru by tak stačilo předat jen tu komponentu a konektor by si z ní provolal `extractPropsFromDataAttributes`.\r\n *\r\n * Důvod:\r\n * - Rozhodli jsme se pro možnost 2: univerzální `EditableControlConnector` a univerzální props.\r\n * - Variantu 3 jsme rovnou zavrhli, protože by hrozilo riziko, že při instanciaci konektoru se předá špatná funkce na extrakci specifických props.\r\n * Je třeba mít robustní řešení.\r\n * - Varianta 4 je robustní. Ale vyžadovala by nestandardní implementace komponent. To by člověka mohlo mást.\r\n * - Ad možnost 1) Konkrétní konektory sice mají tu výhodu, že jsou šité na míru. A může tak být kód přehlednější.\r\n * To, co se do nich předává, to skutečně používají.\r\n * Také nemůže nastat kolize props. (Např. kdyby se přes datový atribut předávala prop `xyz` s nějakým významem/typem, ale daná komponenta očekávala také prop `xyz`, ale s jiným významem/typem.)\r\n * - Toto riziko jsme však vyhodnotili, že nehrozí.\r\n * - Přišlo nám rozumnější mít jednodušší implementaci - tj. jediný univerzální konektor. (I za cenu univerzálních props.)\r\n * - (Pozn. Možná i tak někdy bude třeba udělat specifický konektor. Ale z jiných důvodů. Např. proto, že je třeba, aby implementoval i jiná rozhraní.)\r\n */\r\nexport type DataAttributesProps = {\r\n /** Pokud zadáno, nebude možné zadat text delší než tato hodnota. */\r\n maxLength?: number;\r\n /** Pokud zadáno, nebude možné zadat text kratší než tato hodnota. */\r\n minLength?: number;\r\n /** Pokud zadáno, pak editovaný text nevyhovující tomuto regulárnímu výrazu bude nevalidní. */\r\n validationRegex?: string;\r\n /** Formátovací řetězec pro zobrazení hodnot čísel, datumů, bool hodnot a dalších. */\r\n displayFormat?: string;\r\n /** Lokalizační klíč pro popisek a nápovědný text ovládacího prvku. */\r\n captionLocKey?: string;\r\n};\r\n\r\n/**\r\n * Props specifické pro {@link CheckBox} získané z datových atributů kořenového elementu\r\n */\r\nexport type CheckBoxControlDataAttributesProps = {\r\n /** Určuje umístění popisu vůči CheckBoxu */\r\n alignment?: CaptionAlignment;\r\n};\r\n\r\n/**\r\n * Props pro komponenty, u kterých lze nastavovat hodnotu kurzoru.\r\n */\r\nexport type CursorValueAdjustableComponentProps = {\r\n /** Hodnota kurzoru předávaná do komponenty */\r\n cursor: Cursor;\r\n};\r\n\r\n/**\r\n * Typ přidávající vlastnosti, které se používají v případě, kdy má atribut přidanou vlastnost BackgroundAttr.\r\n */\r\nexport type BackgroundAttributeProps = Readonly<{\r\n /**\r\n * Určuje zda je barva atributu nastavena jiným atributem.\r\n * Pokud má atribut nastavenou vlastnost `BackkgrounAttrName`, hodnota v ní uvedeného atributu určuje barvu tohoto atributu.\r\n * V takovém případě je atribut obalen HTML kontejnerem, který udává jeho barvu.\r\n * Komponenty pak tuto barvu mohou využít pomocí CSS proměnné.\r\n * Např. Ikona pro barvu textu nebo <Badge/> pro barvu pozadí\r\n */\r\n hasBackgroundAttr?: boolean;\r\n}>;\r\n\r\n/**\r\n * Props společné pro NumEdit komponentu.\r\n */\r\nexport type NumEditComponentProps = Readonly<{\r\n /**\r\n * Omezuje horní limit číselné hodnoty atributu.\r\n */\r\n maxValue?: number;\r\n\r\n /**\r\n * Omezuje dolní limit číselné hodnoty atributu.\r\n */\r\n minValue?: number;\r\n\r\n /**\r\n * Formátovací řetězec pro zobrazení hodnot čísel, datumů, bool hodnot a dalších.\r\n */\r\n displayFormat?: string;\r\n\r\n /**\r\n * Datový typ atributu.\r\n */\r\n dataType?: OWDataType | string;\r\n}>;\r\n\r\nexport type ComboBoxControlDataAttributesProps = Readonly<{\r\n /**\r\n * Jméno reduxového enumu, který bude nahrán\r\n */\r\n enumName: string;\r\n\r\n /**\r\n * Řetězec hodnot comboboxu oddělených středníkem, které nemají být zobrazeny v comboboxu\r\n */\r\n hideValues?: string;\r\n\r\n /**\r\n * Lokalizační klíč pro placeholder comboboxu\r\n */\r\n placeholderLocKey?: string;\r\n}>;\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { AlignItems } from \"../types\";\r\nimport { Display, FlexDirection, FlexGrow, FlexShrink, FlexWrap, JustifyContent, Position, SpacingSize } from \"./enums\";\r\n\r\nexport type LayoutProps = {\r\n /** Pozicování vůči vedlejší ose */\r\n alignItems?: AlignItems;\r\n /** Obalovaná komponenta */\r\n children?: ReactNode;\r\n /** Vynucené zhroucení obsahu */\r\n collapse?: boolean;\r\n /** Způsob rozložení prvku */\r\n display?: Display;\r\n /**\r\n * Příznak, zda má layout vyplnit výšku nadřazeného prvku.\r\n *\r\n * **Upozornění:** nastavit pouze pro první flex container! Více info v Layout.md\r\n */\r\n fillHeight?: boolean;\r\n /** Směr skládání prvků */\r\n flexDirection?: FlexDirection;\r\n /** Podíl velikosti rodiče */\r\n flexGrow?: FlexGrow;\r\n /** Smršťování obsahu */\r\n flexShrink?: FlexShrink;\r\n /** Zalamování obsahu */\r\n flexWrap?: FlexWrap;\r\n /** Pozicování vůči hlavní ose */\r\n justifyContent?: JustifyContent;\r\n /** Velikost odsazení ze všech stran*/\r\n spacingSize?: SpacingSize;\r\n /** Velikost spodního odsazení */\r\n spacingSizeBottom?: SpacingSize;\r\n /** Velikost horizontálního odsazení */\r\n spacingSizeHorizontal?: SpacingSize;\r\n /** Velikost levého odsazení */\r\n spacingSizeLeft?: SpacingSize;\r\n /** Velikost pravého odsazení */\r\n spacingSizeRight?: SpacingSize;\r\n /** Velikost horního odsazení */\r\n spacingSizeTop?: SpacingSize;\r\n /** Velikost vertikálního odsazení */\r\n spacingSizeVertical?: SpacingSize;\r\n /** Odsazení mezi flex itemy, hodnota je v pixelech */\r\n gap?: number;\r\n /** Příznak, zda se má odebrat prvek a všechny jeho podřízené prvky ze stromu přístupnosti */\r\n ariaHidden?: boolean;\r\n /** Pozice vůči celé stránce */\r\n position?: Position;\r\n} & QAProps;\r\n\r\nconst classNames = bemClassNames(\"layout-component\");\r\n\r\n/**\r\n * Komponenta slouží pro rozložení komponent. Umožňuje nastavit způsob rozložení prvků (`display`)\r\n * a odsazení okolo obalovaných. Při použití zobrazení prvků `flex` umožňuje nastavit další vlastnosti.\r\n * */\r\nexport const Layout: FunctionComponent<LayoutProps> = ({\r\n alignItems,\r\n children,\r\n collapse,\r\n display = Display.flex,\r\n fillHeight = false,\r\n flexDirection,\r\n flexGrow,\r\n flexShrink,\r\n flexWrap,\r\n gap,\r\n justifyContent,\r\n spacingSize,\r\n spacingSizeBottom,\r\n spacingSizeHorizontal,\r\n spacingSizeLeft,\r\n spacingSizeRight,\r\n spacingSizeTop,\r\n spacingSizeVertical,\r\n qa,\r\n ariaHidden,\r\n position,\r\n}) => (\r\n <div\r\n className={classNames({\r\n \"align-items\": alignItems,\r\n collapse,\r\n display,\r\n \"fill-height\": fillHeight,\r\n \"flex-direction\": flexDirection,\r\n \"flex-grow\": flexGrow,\r\n \"flex-shrink\": flexShrink,\r\n \"flex-wrap\": flexWrap,\r\n \"justify-content\": justifyContent,\r\n \"spacing-size-all\": spacingSize,\r\n \"spacing-size-bottom\": spacingSizeBottom,\r\n \"spacing-size-horizontal\": spacingSizeHorizontal,\r\n \"spacing-size-left\": spacingSizeLeft,\r\n \"spacing-size-right\": spacingSizeRight,\r\n \"spacing-size-top\": spacingSizeTop,\r\n \"spacing-size-vertical\": spacingSizeVertical,\r\n position,\r\n })}\r\n aria-hidden={ariaHidden}\r\n style={{ gap }}\r\n {...createQA(qa)}\r\n >\r\n {children}\r\n </div>\r\n);\r\n","export * from \"./enums\";\r\nexport * from \"./Layout\";\r\n","import React, { forwardRef } from \"react\";\r\n\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { ButtonProvider, ButtonProviderProps } from \"../ButtonProvider\";\r\nimport { Icon, IconColor, IconProps, IconThemeVariant } from \"../Icon\";\r\nimport { Layout, LayoutProps, SpacingSize } from \"../Layout\";\r\n\r\nexport type IconButtonProps =\r\n { iconVariant?: IconThemeVariant }\r\n & Omit<IconProps, \"variant\">\r\n & Pick<ButtonProviderProps, \"shadow\" | \"outline\" | \"backgroundColor\" | \"onClick\" | \"onDoubleClick\" | \"onMouseDown\" | \"onMouseUp\" | \"onMouseOut\" | \"invalid\" | \"cursor\" | \"variant\">\r\n & Pick<LayoutProps, \"spacingSize\">\r\n & QAProps;\r\n\r\n/** Tlačítko v podobě ikony */\r\nexport const IconButton: ForwardRefType<HTMLButtonElement, IconButtonProps> = forwardRef<HTMLButtonElement, IconButtonProps>(({\r\n onClick,\r\n onDoubleClick,\r\n onMouseDown,\r\n onMouseUp,\r\n onMouseOut,\r\n title,\r\n disabled,\r\n backgroundColor,\r\n shadow,\r\n outline,\r\n spacingSize = SpacingSize.xs,\r\n invalid,\r\n cursor,\r\n color = IconColor.colorPrimary,\r\n variant,\r\n iconVariant,\r\n qa,\r\n ...restProps\r\n}, ref) => {\r\n return (\r\n <ButtonProvider {...{ onClick, onDoubleClick, onMouseDown, onMouseUp, onMouseOut, title, ref, disabled, shadow, outline, backgroundColor, invalid, cursor, variant, qa }}>\r\n <Layout spacingSize={spacingSize}>\r\n <Icon {...restProps} disabled={disabled} color={color} variant={iconVariant} />\r\n </Layout>\r\n </ButtonProvider>\r\n );\r\n});\r\n","export * from \"./IconButton\";\r\n","import React, { ChangeEvent, FunctionComponent, KeyboardEvent, useEffect, useRef } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IconColor } from \"../Icon\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { JustifyContent, Layout } from \"../Layout\";\r\n\r\nexport type AdvancedFilterProps = {\r\n /** Podmínka, která má být zobrazena v komponentě */\r\n condition?: string;\r\n /** Callback volaný při stisku Enter */\r\n onConfirm: (condition: string) => void;\r\n /** Callback volaný po změně obsahu vstupního pole (po ztrátě focusu) */\r\n onChange: (condition: string) => void;\r\n /** Callback volaný při kliku na tlačítko zavřít */\r\n onClose: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"advanced-filter-component\");\r\n\r\nexport const AdvancedFilter: FunctionComponent<AdvancedFilterProps> = ({ condition, onConfirm, onChange, onClose }) => {\r\n const inputElement = useRef<HTMLTextAreaElement>(null);\r\n\r\n const onKeyPress = (event: KeyboardEvent) => {\r\n if (inputElement.current && event.charCode === 13 && !event.shiftKey) {\r\n onConfirm(inputElement.current.value);\r\n\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const changeEvent = (event: ChangeEvent<HTMLTextAreaElement>) => {\r\n onChange(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (inputElement.current) {\r\n inputElement.current.focus();\r\n }\r\n });\r\n\r\n return (\r\n <div\r\n className={classNames()}\r\n >\r\n <Layout\r\n justifyContent={JustifyContent.flexEnd}\r\n >\r\n <IconButton\r\n iconCode={IconCode.uiCrossSmall}\r\n onClick={onClose}\r\n color={IconColor.grey1}\r\n />\r\n </Layout>\r\n <textarea\r\n className={classNames(\"input\")}\r\n placeholder={\"(name = 'text1' and \\\"Last Name\\\" = 'text2') or name = 'text3'\"}\r\n ref={inputElement}\r\n onKeyPress={onKeyPress}\r\n defaultValue={condition}\r\n onChange={changeEvent}\r\n >\r\n </textarea>\r\n\r\n </div>\r\n );\r\n};\r\n","export * from \"./AdvancedFilter\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, useInitialValue } from \"@multiweb/reactUtils\";\r\nimport { AnimationPhase } from \"../types\";\r\n\r\nexport type AnimatedHeightProps = {\r\n /** Potomek */\r\n children: ReactNode;\r\n /** Příznak, zda má být komponenta zapojená do DOM */\r\n animationPhase: AnimationPhase;\r\n /** Výška obalující komponenty */\r\n height: number;\r\n /** Délka trvání animace */\r\n animationDurationMs: number;\r\n};\r\n\r\nconst classNames = bemClassNames(\"animated-height-component\");\r\n\r\n/**\r\n * Komponenta slouží pro animování výšky (*property* `height`) obalované komponenty.\r\n */\r\nexport const AnimatedHeight: FunctionComponent<AnimatedHeightProps> = ({\r\n children,\r\n animationPhase,\r\n animationDurationMs,\r\n height,\r\n}) => {\r\n const internalHeight = useInitialValue(height, 0);\r\n const startPhase = animationPhase === AnimationPhase.start;\r\n\r\n return (\r\n <div\r\n className={classNames()}\r\n style={{\r\n height: startPhase ? internalHeight : 0,\r\n transition: `all ${animationDurationMs}ms ${startPhase ? \"ease-in\" : \"ease-out\"}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","export * from \"./AnimatedHeight\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { AnimationPhase } from \"../types\";\r\n\r\nexport type AnimatedOpacityProps = {\r\n /** Potomek */\r\n children: ReactNode;\r\n /** Fáze animace */\r\n animationPhase: AnimationPhase;\r\n /** Délka trvání animace */\r\n animationDurationMs: number;\r\n};\r\n\r\nconst classNames = bemClassNames(\"animated-opacity-component\");\r\n\r\n/**\r\n * Komponenta slouží pro animování neprůhlednosti (*property* `opacity`) obalované komponenty.\r\n */\r\nexport const AnimatedOpacity: FunctionComponent<AnimatedOpacityProps> = ({\r\n children,\r\n animationPhase,\r\n animationDurationMs,\r\n}) => {\r\n const startPhase = animationPhase === AnimationPhase.start;\r\n\r\n return (\r\n <div\r\n className={classNames()}\r\n style={{\r\n opacity: startPhase ? 1 : 0,\r\n animation: `opacityAnimation ${animationDurationMs}ms ease-in`,\r\n transition: `all ${animationDurationMs}ms ${startPhase ? \"ease-in\" : \"ease-out\"}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","export * from \"./AnimatedOpacity\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, useInitialValue } from \"@multiweb/reactUtils\";\r\nimport { AnimationPhase } from \"../types\";\r\n\r\nexport type AnimatedWidthProps = {\r\n /** Potomek */\r\n children: ReactNode;\r\n /** Příznak, zda má být komponenta zapojená do DOM */\r\n animationPhase: AnimationPhase;\r\n /** Šířka obalující komponenty */\r\n width: number;\r\n /** Délka trvání animace */\r\n animationDurationMs: number;\r\n};\r\n\r\nconst classNames = bemClassNames(\"animated-width-component\");\r\n\r\n/**\r\n * Komponenta slouží pro animování šířky (*property* `width`) obalované komponenty.\r\n */\r\nexport const AnimatedWidth: FunctionComponent<AnimatedWidthProps> = ({\r\n children,\r\n animationPhase,\r\n animationDurationMs,\r\n width,\r\n}) => {\r\n const internalWidth = useInitialValue(width, 0);\r\n const startPhase = animationPhase === AnimationPhase.start;\r\n\r\n return (\r\n <div\r\n className={classNames()}\r\n style={{\r\n width: startPhase ? internalWidth : 0,\r\n transition: `all ${animationDurationMs}ms ${startPhase ? \"ease-in\" : \"ease-out\"}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","export * from \"./AnimatedWidth\";\r\n","/**\r\n * Id elementu (kontejneru) pro renderování modálních oken.\r\n * Změny je nutné reflektovat ve storybooku v souboru `preview-body.html`.\r\n * */\r\nexport const MODAL_ROOT_ID = \"modalRoot\";\r\n","/**\r\n * Funkce pro usnadnění práce s nativním intersection observerem.\r\n * Originál od @thebuilder:\r\n * @see{@link https://github.com/thebuilder/react-intersection-observer/blob/master/src/index.tsx}\r\n */\r\n\r\nexport type ObserverInstanceCallback = (inView: boolean, intersection: IntersectionObserverEntry) => void;\r\n\r\nexport type ObserverInstance = {\r\n inView: boolean;\r\n readonly callback: ObserverInstanceCallback;\r\n readonly element: Element;\r\n readonly observerId: string;\r\n readonly observer: IntersectionObserver;\r\n readonly thresholds: ReadonlyArray<number>;\r\n};\r\n\r\n/**\r\n * Nastavení observeru.\r\n */\r\nexport interface IntersectionOptions extends IntersectionObserverInit {\r\n /** Vyvolá callback pouze při prvotním zobrazení, poto. */\r\n triggerOnce?: boolean;\r\n}\r\n\r\nexport type InViewHookResponse = [(node?: Element | null) => void, boolean, IntersectionObserverEntry | undefined];\r\n\r\nexport type IntersectionState = {\r\n inView: boolean;\r\n entry?: IntersectionObserverEntry;\r\n};\r\n\r\nexport const initialIntersectionState: IntersectionState = {\r\n inView: false,\r\n entry: undefined,\r\n};\r\n\r\nconst INSTANCE_MAP: Map<Element, ObserverInstance> = new Map();\r\nconst OBSERVER_MAP: Map<string, IntersectionObserver> = new Map();\r\nconst ROOT_IDS: Map<Element | Document, string> = new Map();\r\n\r\nlet consecutiveRootId = 0;\r\n\r\n/**\r\n * Generate a unique ID for the root element.\r\n * @param root\r\n */\r\nfunction getRootId(root?: Element | Document | null) {\r\n if (!root) {\r\n return \"\";\r\n }\r\n if (ROOT_IDS.has(root)) {\r\n return ROOT_IDS.get(root) + \"_\";\r\n }\r\n consecutiveRootId += 1;\r\n ROOT_IDS.set(root, consecutiveRootId.toString());\r\n return ROOT_IDS.get(root) + \"_\";\r\n}\r\n\r\n/**\r\n * Monitor element, and trigger callback when element becomes inView.\r\n * @param element {HTMLElement}\r\n * @param callback {Function} Called with inView.\r\n * @param options {Object} InterSection observer options.\r\n * @param options.threshold {Number} Number between 0 and 1, indicating how much of the element should be inView before triggering.\r\n * @param options.root {HTMLElement}\r\n * @param options.rootMargin {String} The CSS margin to apply to the root element.\r\n */\r\nexport function observe(element: Element, callback: ObserverInstanceCallback, options: IntersectionObserverInit = {}) {\r\n // IntersectionObserver needs a threshold to trigger, so set it to 0 if it's not defined.\r\n const { root, rootMargin, threshold = 0 } = options;\r\n // Validate that the element is not being used in another <Observer />\r\n if (INSTANCE_MAP.has(element)) {\r\n throw new Error(\r\n `[IntersectionObserver] Trying to observe element with id \"${element.id}\", but it's already being observed by another instance.\\nMake sure the 'ref' is only used by a single Observer instance.`,\r\n );\r\n }\r\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\r\n // An observer with the same options can be reused, so lets use this fact.\r\n const observerId: string =\r\n getRootId(root) + (rootMargin ? `${threshold.toString()}_${rootMargin}` : threshold.toString());\r\n\r\n let observerInstance = OBSERVER_MAP.get(observerId);\r\n if (!observerInstance) {\r\n observerInstance = new IntersectionObserver(onChange, options);\r\n if (observerId) OBSERVER_MAP.set(observerId, observerInstance);\r\n }\r\n\r\n const instance: ObserverInstance = {\r\n callback,\r\n element,\r\n inView: false,\r\n observerId,\r\n observer: observerInstance,\r\n // Make sure we have the thresholds value. It's undefined on a browser like Chrome 51.\r\n thresholds: observerInstance.thresholds || (Array.isArray(threshold) ? threshold : [threshold]),\r\n };\r\n\r\n INSTANCE_MAP.set(element, instance);\r\n observerInstance.observe(element);\r\n\r\n return instance;\r\n}\r\n\r\n/**\r\n * Stop observing an element. If an element is removed from the DOM or otherwise destroyed,\r\n * make sure to call this method.\r\n * @param element {Element}\r\n */\r\nexport function unobserve(element: Element | null) {\r\n if (!element) {\r\n return;\r\n }\r\n const instance = INSTANCE_MAP.get(element);\r\n\r\n if (instance) {\r\n const { observerId, observer } = instance;\r\n const { root } = observer;\r\n\r\n observer.unobserve(element);\r\n\r\n // Check if we are still observing any elements with the same threshold.\r\n let itemsLeft = false;\r\n // Check if we still have observers configured with the same root.\r\n let rootObserved = false;\r\n if (observerId) {\r\n INSTANCE_MAP.forEach((item, key) => {\r\n if (key !== element) {\r\n if (item.observerId === observerId) {\r\n itemsLeft = true;\r\n rootObserved = true;\r\n }\r\n if (item.observer.root === root) {\r\n rootObserved = true;\r\n }\r\n }\r\n });\r\n }\r\n if (!rootObserved && root) ROOT_IDS.delete(root);\r\n if (observer && !itemsLeft) {\r\n // No more elements to observe for threshold, disconnect observer\r\n observer.disconnect();\r\n }\r\n\r\n // Remove reference to element\r\n INSTANCE_MAP.delete(element);\r\n }\r\n}\r\n\r\n/**\r\n * Destroy all IntersectionObservers currently connected\r\n **/\r\nexport function destroy() {\r\n OBSERVER_MAP.forEach((observer) => {\r\n observer.disconnect();\r\n });\r\n\r\n OBSERVER_MAP.clear();\r\n INSTANCE_MAP.clear();\r\n ROOT_IDS.clear();\r\n consecutiveRootId = 0;\r\n}\r\n\r\nfunction onChange(changes: IntersectionObserverEntry[]) {\r\n changes.forEach((intersection) => {\r\n const { isIntersecting, intersectionRatio, target } = intersection;\r\n const instance = INSTANCE_MAP.get(target);\r\n\r\n // Firefox can report a negative intersectionRatio when scrolling.\r\n if (instance && intersectionRatio >= 0) {\r\n // If threshold is an array, check if any of them intersects. This just triggers the onChange event multiple times.\r\n let inView = instance.thresholds.some((threshold) => {\r\n return instance.inView ? intersectionRatio > threshold : intersectionRatio >= threshold;\r\n });\r\n\r\n if (isIntersecting !== undefined) {\r\n // If isIntersecting is defined, ensure that the element is actually intersecting.\r\n // Otherwise it reports a threshold of 0\r\n inView = inView && isIntersecting;\r\n }\r\n\r\n instance.inView = inView;\r\n instance.callback(inView, intersection);\r\n }\r\n });\r\n}\r\n","/**\r\n * Vrací `true`, pokud jsou zadaná pole ekvivalentní.\r\n * @param array1\r\n * @param array2\r\n * @param isItemEqual Funkce, která rozhoduje o ekvivalenci jednotlivých položek - na stejných indexech.\r\n */\r\nexport const isArrayEqual = <T>(array1: ReadonlyArray<T>, array2: ReadonlyArray<T>, isItemEqual: (item1: T, item2: T) => boolean) => (\r\n (array2.length === array1.length) && (array1.every((item1, index) => isItemEqual(item1, array2[index])))\r\n);\r\n\r\n/**\r\n * Vrací `true`, pokud obě zadaná pole mají stejný počet prvků a prvky na stejných indexech jsou shodné (tatáž instance).\r\n * @param array1\r\n * @param array2\r\n */\r\nexport const isArrayShallowEqual = <T>(array1: ReadonlyArray<T>, array2: ReadonlyArray<T>) => isArrayEqual(array1, array2, Object.is);\r\n","import { EffectCallback, MutableRefObject, RefCallback, RefObject, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\";\r\nimport throttle from \"lodash.throttle\";\r\n\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { MouseButton, OnJavaScriptChange } from \"@multiweb/types/react\";\r\nimport { MODAL_ROOT_ID } from \"../../constants\";\r\nimport { doNothing } from \"../constants\";\r\nimport {\r\n initialIntersectionState,\r\n IntersectionOptions,\r\n IntersectionState,\r\n InViewHookResponse,\r\n observe,\r\n unobserve,\r\n} from \"../intersectionObserver\";\r\nimport { isArrayShallowEqual } from \"../isArrayEqual\";\r\n\r\nconst { stopPropagationNative } = bridge;\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.coreUI);\r\n\r\n/** Zpoždění, které se využívá v hooku `useContentOverflows`. */\r\nconst CONTENT_OVERFLOW_THROTTLE_MS = 150;\r\n/** Zpoďění použíte v hooku useElementScrollData pro zpoždění několika scroll eventu po sobě */\r\nconst SCROLL_INFO_THROTTLE_MS = 150;\r\n\r\n/**\r\n * Zjistí, zda element přetéká rodiče.\r\n * @param element Element kontrolovaný na přetečení.\r\n * @param ignoreHeightChange Určuje, zda se má ignorovat přetečení na vertikální ose.\r\n * @param ignoreWidthChange Určuje, zda se má ignorovat přetečení na horizontální ose.\r\n */\r\nconst textOverflows = <T extends HTMLElement>(element: T, ignoreHeightChange?: boolean, ignoreWidthChange?: boolean): boolean => (\r\n (!ignoreHeightChange && element.offsetHeight < element.scrollHeight)\r\n || (!ignoreWidthChange && element.offsetWidth < element.scrollWidth)\r\n);\r\n\r\n/**\r\n * Hook pro zjištění, zda element přetéká rodiče.\r\n * @ref Reference na zkoumaný element.\r\n * @param ignoreHeightChange Určuje, zda se má ignorovat přetečení na vertikální ose.\r\n * @param ignoreWidthChange Určuje, zda se má ignorovat přetečení na horizontální ose.\r\n */\r\nexport const useContentOverflows = <T extends HTMLElement>(ref: RefObject<T>, ignoreHeightChange?: boolean, ignoreWidthChange?: boolean) => {\r\n const [contentOverflows, setContentOverflows] = useState(false);\r\n\r\n const callback = useCallback(() => {\r\n const element = ref.current;\r\n if (element) {\r\n setContentOverflows(textOverflows<T>(element, ignoreHeightChange, ignoreWidthChange));\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [ref.current, ignoreHeightChange, ignoreWidthChange]);\r\n\r\n useThrottleResizeObserver(ref, callback, callback, CONTENT_OVERFLOW_THROTTLE_MS);\r\n\r\n return contentOverflows;\r\n};\r\n\r\n/**\r\n * Hook pro zakázání scrollování po stisknutí prostředního tlačítka.\r\n * Provádět funkcionalitu až na event onMouseDown není možné.\r\n * @param ref Objekt s referencí na element pro zakázání scrollování.\r\n */\r\nexport const usePreventMiddleButtonScroll = <T extends HTMLElement>(ref: RefObject<T>) => {\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.onmousedown = (event) => {\r\n return (event.button !== MouseButton.middleButton);\r\n };\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [ref.current]);\r\n};\r\n\r\n/**\r\n * Hook pro nastavení zaměření elementu podle hodnoty prop. Pro správnou funkci musí být cílový element zaměřitelný, to lze nastavit pomocí tabindex.\r\n *\r\n * @example Použití\r\n * import {createRef} from \"react\";\r\n * import {TAB_INDEX_FOCUSABLE_ONLY, useSetFocus} from \"@multiweb/reactUtils\";\r\n * const Component = ({isFocused}) => {\r\n * const ref = createRef<HTMLElement>>();\r\n * useSetFocus<HTMLElement>(isFocused, ref);\r\n * return (\r\n * <div ref={ref} tabIndex={TAB_INDEX_FOCUSABLE_ONLY} >Click on me!</div>\r\n * );\r\n * }\r\n *\r\n * @param isFocused Hodnota prop nastavující zaměření. Pokud je true, nastaví zaměření. Pokud je false, nic nedělá.\r\n * @param ref Objekt s referencí na element pro zaměření.\r\n * @param customScroll Funkce umožňující přizpůsobení chování scrollování nadřazené scrollovatelné komponenty. Pokud je zadaná, potlačí se automatický scroll\r\n * @param selectAllText Příznak, zda se má po zaměření automaticky označit všechen text. Aplikovatelné pouze pro typ HTMLInputElement a HTMLTextAreaElement.\r\n * při získání zaměření.\r\n */\r\nexport const useSetFocus = <T extends HTMLElement>(isFocused: boolean, ref: RefObject<T>, customScroll?: (element: T) => void, selectAllText?: boolean) => {\r\n useEffect(() => {\r\n if (ref.current && isFocused) {\r\n const focusOptions = customScroll ? { preventScroll: true } : undefined;\r\n ref.current.focus(focusOptions);\r\n if (customScroll) {\r\n customScroll(ref.current);\r\n }\r\n if (selectAllText && (ref.current instanceof HTMLInputElement || ref.current instanceof HTMLTextAreaElement)) {\r\n ref.current.select();\r\n }\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [ref.current, isFocused]);\r\n};\r\n\r\n/**\r\n * Hook sloužící pro oddálení vypnutí spínače. Po zapnutí (`value` na `true`) hook\r\n * instantně vrací `true`. Po vypnutí (`value` na `false`) vrací hook ještě po dobu\r\n * `delayMs` hodnotu `true`, po uplynutí doby již vrací `false`.\r\n *\r\n * @param value Hodnota požadavku na stav vypínače.\r\n * @param delayMs Doba oddálení vypnutí spínače v milisekundách.\r\n * */\r\nexport const useTurnOffDelay = (value: boolean, delayMs: number) => {\r\n const [isTurnedOn, setIsTurnedOn] = useState(value);\r\n\r\n useEffect(() => {\r\n let timeoutId: number;\r\n if (!value) {\r\n timeoutId = window.setTimeout(() => {\r\n setIsTurnedOn(value);\r\n }, delayMs);\r\n } else {\r\n setIsTurnedOn(value);\r\n }\r\n return () => clearTimeout(timeoutId);\r\n }, [value, delayMs]);\r\n\r\n return isTurnedOn;\r\n};\r\n\r\n/**\r\n * Hook pro uchování předchozí hodnoty.\r\n *\r\n * @param value Hodnota pro uchování\r\n */\r\nexport const usePrevious = (value: any) => {\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]);\r\n\r\n return ref.current;\r\n};\r\n\r\n/**\r\n * Hook slouží pro uchování hodnoty s nastavením počátečního stavu. Hook má uplatnění například v případě,\r\n * kdy chceme inicializovat hodnotu pro následnou animaci na hodnotu přicházející z props pomocí property transition.\r\n * @see AnimatedWidth\r\n *\r\n * @param value Uložená hodnota\r\n * @param initialValue Počáteční hodnota\r\n */\r\nexport const useInitialValue = <T,>(value: T, initialValue: T) => {\r\n const [internalValue, setInternalValue] = useState<T>(initialValue);\r\n\r\n useEffect(() => {\r\n setInternalValue(value);\r\n }, [value]);\r\n\r\n return internalValue;\r\n};\r\n\r\n/**\r\n * Hook nahrazující funkci setTimeout.\r\n *\r\n * @param callback Callback volaný po vypršení času\r\n * @param delayMs Doba zpoždění zavolání callback funkce\r\n */\r\nexport const useTimeout = (callback: () => void, delayMs: number) => {\r\n const savedCallback = useRef(doNothing);\r\n\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n useEffect(() => {\r\n const tick = () => savedCallback.current();\r\n const timeoutId = setTimeout(tick, delayMs);\r\n return () => clearTimeout(timeoutId);\r\n }, [delayMs]);\r\n};\r\n\r\n/**\r\n * Hook slouží pro uchování historie změn určité proměnné. Vrací historii hodnot.\r\n *\r\n * @param value Hodnota pro uložení do historie\r\n */\r\nexport const useValueHistory = <T>(value: T): T[] => {\r\n const historyRef = useRef<T[]>([]);\r\n const history = historyRef.current;\r\n\r\n if (!history.length || value !== history[0]) {\r\n historyRef.current.unshift(value);\r\n }\r\n\r\n return history.slice(1);\r\n};\r\n\r\n/**\r\n * Hook je ekvivalentem metody forceUpdate třídních komponent.\r\n * @return Funkce pro vynucení překreslení komponenty.\r\n * @see {@link https://github.com/CharlesStover/use-force-update/blob/master/src/use-force-update.ts}\r\n */\r\nexport const useForceUpdate = () => {\r\n const [, dispatch] = useState(Object.create(null));\r\n return useCallback(\r\n (): void => {\r\n dispatch(Object.create(null));\r\n },\r\n [dispatch],\r\n );\r\n};\r\n\r\n/**\r\n * Hook volající zadanou funkci při kliknutí mimo zadaný element.\r\n * Bere v potaz i eventy zrušených kliknutí _clickCancelled_.\r\n * @param refs Reference na elementy\r\n * @param onClickOutside Funkce volaná při kliknutí mimo element\r\n */\r\nexport const useClickOutsideWatcher = (refs: ReadonlyArray<RefObject<HTMLElement>>, onClickOutside: (event: Event) => void) => {\r\n useEffect(() => {\r\n let clickStartedFromWithin = false; // Slouží pro zjištění, jestli kliknutí bylo inicializováno uvnitř Dropdownu či mimo\r\n\r\n const handleClick = (event: Event) => {\r\n if (event.target instanceof Element && !clickStartedFromWithin) {\r\n const element: Element = event.target;\r\n if (!refs.some(ref => ref?.current?.contains(element))) {\r\n onClickOutside(event);\r\n }\r\n }\r\n };\r\n\r\n const handleMouseDown = (event: Event) => {\r\n clickStartedFromWithin = refs.some(modalRef => modalRef?.current?.contains(event.target as Element) === true);\r\n };\r\n\r\n const addListeners = () => {\r\n document.addEventListener(\"mousedown\", handleMouseDown, { capture: true });\r\n document.addEventListener(\"click\", handleClick, { capture: true });\r\n document.addEventListener(\"clickCancelled\", handleClick, { capture: true });\r\n };\r\n\r\n const removeListeners = () => {\r\n document.removeEventListener(\"mousedown\", handleMouseDown, { capture: true });\r\n document.removeEventListener(\"click\", handleClick, { capture: true });\r\n document.removeEventListener(\"clickCancelled\", handleClick, { capture: true });\r\n };\r\n\r\n addListeners();\r\n return removeListeners;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [onClickOutside, ...refs]);\r\n};\r\n\r\n/**\r\n * Hook volající zadanou funkci při kliku mimo trigger a content element.\r\n *\r\n * @param triggerRef Reference na trigger element.\r\n * @param contentRef Reference na modal content element.\r\n * @param onClickOutside Funkce volaná při kliknutí mimo element.\r\n * @param modalRoot Id pro modal root element (defaultně modalRoot id pro Multiweb).\r\n */\r\nexport const useClickOutsideModalWatcher = (triggerRef: RefObject<HTMLElement>, contentRef: RefObject<HTMLElement>, onClickOutside: (event: Event) => void, modalRoot: string = MODAL_ROOT_ID) => {\r\n const innerOnClickOutside = useCallback((event: Event) => {\r\n if (event.target instanceof Element) {\r\n const clickedElement: Element = event.target;\r\n\r\n /**\r\n * U zanořených modálů, které jsou renderované přes portal, nám klasická kontrola nestačí.\r\n * Následující kontrola využívá toho, že popupy jsou v domu v tom pořadí,\r\n * jakém byly otevřeny.\r\n */\r\n if (contentRef.current?.closest(`#${modalRoot}`)) { // zkontrolujeme, že content je v modalRoot\r\n let popup: any = contentRef?.current?.closest(\".popup\");\r\n while (popup) {\r\n if (popup.contains(clickedElement)) {\r\n return;\r\n }\r\n popup = popup?.nextSibling;\r\n }\r\n }\r\n onClickOutside(event);\r\n }\r\n }, [contentRef, modalRoot, onClickOutside]);\r\n\r\n useClickOutsideWatcher([triggerRef, contentRef], innerOnClickOutside);\r\n};\r\n\r\n/**\r\n * Hook, který přidá MutationObserver. Lze využít například u komponent,\r\n * které potřebují reagovat na změnu elementů v DOMu.\r\n * @param ref Reference na element.\r\n * @param callback Metoda, která se zavolá při změnách DOMu.\r\n * @param options Volitené nastavení, lze pomocí něj určit, na jaké změny má MutationObserver reagovat.\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver}\r\n */\r\nexport const useMutationObserver = <T extends HTMLElement>(ref: RefObject<T>, callback: MutationCallback, options?: MutationObserverInit) => {\r\n useEffect(() => {\r\n if (ref.current) {\r\n const observer = new MutationObserver(callback);\r\n observer.observe(ref.current, options);\r\n } else {\r\n logger.warn(\"MutationObserver couldn't be initialized with ref.current = undefined.\");\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n};\r\n\r\n/**\r\n * Hook pro použití intersection observeru. Dokáže zjistit, zda je element zobrazen (z části zobrazen - thresholds).\r\n *\r\n * @example Použití\r\n * import {useInView} from \"@multiweb/reactUtils\";\r\n * const Component = () => {\r\n * const [ref, inView] = useInViewe();\r\n * return (\r\n * <div ref={ref}>\r\n * Am I visible?\r\n * {\r\n * inView ? \"Yes, I am.\" : \"No, I do not.\"\r\n * }\r\n * </div>\r\n * );\r\n * }\r\n *\r\n * @see{@link https://github.com/thebuilder/react-intersection-observer/blob/master/src/useInView.tsx}\r\n *\r\n * @param options nastavení pro\r\n */\r\nexport function useInView(options: IntersectionOptions = {}): InViewHookResponse {\r\n const ref = useRef<Element>();\r\n const [state, setState] = useState<IntersectionState>(initialIntersectionState);\r\n\r\n const setRef = useCallback(\r\n (node) => {\r\n if (ref.current) {\r\n unobserve(ref.current);\r\n }\r\n\r\n if (node) {\r\n observe(\r\n node,\r\n (inView, intersection) => {\r\n setState({ inView, entry: intersection });\r\n if (inView && options.triggerOnce) {\r\n // If it should only trigger once, unobserve the element after it's inView\r\n unobserve(node);\r\n }\r\n },\r\n options,\r\n );\r\n }\r\n\r\n // Store a reference to the node, so we can unobserve it later\r\n ref.current = node;\r\n },\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [options.threshold, options.root, options.rootMargin, options.triggerOnce],\r\n );\r\n\r\n useEffect(() => {\r\n if (!ref.current && state !== initialIntersectionState && !options.triggerOnce) {\r\n // If we don't have a ref, then reset the state\r\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\r\n setState(initialIntersectionState);\r\n }\r\n }, [state, options.triggerOnce]);\r\n\r\n return [setRef, state.inView, state.entry];\r\n}\r\n\r\n/**\r\n * Hook dělající skoro totéž, co {@link useEffect}.\r\n * Navíc řeší počáteční závislosti a tím předchází nechtěnému provolání efektu při mount.\r\n * (Viz https://github.com/facebook/react/issues/15873.)\r\n *\r\n * Příklad:\r\n * ```\r\n * const INITIAL_ARRAY = [1, 2, 3];\r\n * // Předpoklad: SomeComponent je vždy renderována jen s `myArray === INITIAL_ARRAY`.\r\n * const SomeComponent = ({myArray}) => {\r\n * // someEffect1 se provolá 1x\r\n * useEffect(someEffect1, [myArray]);\r\n *\r\n * // someEffect2 se provolá 0x\r\n * useEffectWithInitialDependencies(someEffect2, [myArray], INITIAL_ARRAY);\r\n *\r\n * return (<div>...</div>);\r\n * };\r\n * ```\r\n *\r\n * @param effect Efekt, který se aplikuje, pokud je hodnota `dependencies` odlišná (shallow equal) od předchozího volání. (Toliko shoda s {@link useEffect}.)\r\n * Pokud jde o první volání `useEffectWithInitialDependencies` (tj. při `mount`), pak se `effect` provolá pouze, pokud `dependencies != initialDependencies` (shallow equal).\r\n * @param dependencies Závislosti, jejichž změna způsobí vyvolání `effect`. (Stejně jako u {@link useEffect}.\r\n * @param initialDependencies Uplatní se pouze při prvním provolání `useEffectWithInitialDependencies` (tj. při `mount`). Pak se vůči této hodnotě vyhodnocuje, zda-li došlo ke změně `dependencies`.\r\n */\r\nexport const useEffectWithInitialDependencies = <T>(effect: EffectCallback, dependencies: ReadonlyArray<T>, initialDependencies: ReadonlyArray<T>): void => {\r\n const firstCallRef = useRef(true);\r\n useEffect(() => {\r\n const canCallEffect = (!firstCallRef.current || !isArrayShallowEqual(dependencies, initialDependencies));\r\n firstCallRef.current = false;\r\n if (canCallEffect) {\r\n return effect();\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, dependencies);\r\n};\r\n\r\ntype UseStopPropagationEventHandlerParams = {\r\n /** Typ události, které listener naslouchá */\r\n readonly eventType: string;\r\n /** Funkce, která se zavolá při vyvolání události */\r\n readonly callback?: EventListener;\r\n /** Příznak, jestli se má na eventu zavolat _preventDefault_ */\r\n readonly preventDefault?: boolean;\r\n /** Příznak, že se nemá vyvolat event zrušení _[eventType]Cancelled_ */\r\n readonly dontTriggerCancelEvent?: boolean;\r\n};\r\n\r\n/** Pomocný typ {@link useStopPropagationEventListenerRef} pro uchování listeneru */\r\ntype ListenerData = {\r\n readonly element: Element;\r\n readonly listener: EventListener;\r\n readonly eventType: string;\r\n};\r\n\r\n/** Pomocná funkce pro {@link useStopPropagationEventListenerRef} pro smazání listeneru */\r\nconst clearListener = (ref: MutableRefObject<ListenerData | null>) => {\r\n const listenerInfo = ref.current;\r\n if (!listenerInfo) {\r\n return;\r\n }\r\n ref.current = null;\r\n const { element, eventType, listener } = listenerInfo;\r\n element.removeEventListener(eventType, listener);\r\n};\r\n\r\n/**\r\n * Hook, který vrátí RefCallback, který přes addEventListener naváže event přímo na konkrétní element a zruší propagaci eventu.\r\n *\r\n * Není potřeba od verze React 17.\r\n * @see{@link https://reactjs.org/blog/2020/08/10/react-v17-rc.html#changes-to-event-delegation}\r\n *\r\n * Díky tomu, že React 16 a níž navazuje eventy přes prop onClick apod. až na element window, tak se click listener\r\n * zavolá první na elementech, které jsou v nereactí části a až pak na elementech reactí části. Proto nezabírá\r\n * zavolání stopPropagation. Toto už je vyřešené v React v17, kde se tyto eventy navazují na prvek, nad kterým\r\n * se zavolá ReactDOM.render.\r\n *\r\n * @example Použití\r\n * clickListenerRef = useStopPropagationEventListenerRef({\r\n * eventType: \"click\",\r\n * callback: onDownloadRequested,\r\n * preventDefault: true,\r\n * });\r\n *\r\n * return <a ref={clickListenerRef}>...</a>;\r\n */\r\nexport const useStopPropagationEventListenerRef = ({ eventType, callback, preventDefault, dontTriggerCancelEvent }: UseStopPropagationEventHandlerParams): RefCallback<Element | undefined> => {\r\n const listenerRef = useRef<ListenerData | null>(null);\r\n const elementRef = useRef<Element | undefined | null>();\r\n\r\n const handleEvent = useCallback<EventListener>(event => {\r\n if (preventDefault) {\r\n event.preventDefault();\r\n }\r\n\r\n if (dontTriggerCancelEvent) {\r\n event.stopPropagation();\r\n } else {\r\n stopPropagationNative(event);\r\n }\r\n\r\n callback?.(event);\r\n }, [callback, dontTriggerCancelEvent, preventDefault]);\r\n\r\n const handleElementSet = useCallback<RefCallback<Element | undefined>>(element => {\r\n elementRef.current = element;\r\n clearListener(listenerRef);\r\n\r\n if (element) {\r\n element.addEventListener(eventType, handleEvent);\r\n listenerRef.current = { element, eventType, listener: handleEvent };\r\n }\r\n }, [eventType, handleEvent]);\r\n\r\n // aktualizace při změně listeneru\r\n useEffect(() => {\r\n const element = elementRef.current;\r\n if (element) {\r\n handleElementSet(element);\r\n }\r\n }, [handleElementSet]);\r\n\r\n // odvázání listeneru při unmount\r\n useEffect(() => {\r\n return () => {\r\n clearListener(listenerRef);\r\n };\r\n }, []);\r\n\r\n return handleElementSet;\r\n};\r\n\r\n/**\r\n * Hook, který vrací callback memoizované funkce přidávající change eventu do HTML elementu a zároveň se stará i o její vymazání.\r\n * @template T HTML element, do kterého bude přidána eventa change\r\n * @param onJavaScriptChange callback na javascriptovou onChange eventu\r\n */\r\nexport const useJavaScriptChange = <T extends HTMLElement>(onJavaScriptChange?: OnJavaScriptChange) => {\r\n // nutno memoizovat, v opačném případě by docházelo k vytváření nové instance funkce a eventa by se nikdy z elementu nesmazala\r\n const handleOnJavaScriptChange = useCallback(e => {\r\n if (onJavaScriptChange) {\r\n onJavaScriptChange(e);\r\n }\r\n }, [onJavaScriptChange]);\r\n\r\n const ref: MutableRefObject<T | null> = useRef<T>(null);\r\n return useCallback(node => {\r\n if (ref.current) {\r\n // smaže eventu z poslední instance (nodu)\r\n ref.current.removeEventListener(\"change\", handleOnJavaScriptChange);\r\n }\r\n\r\n if (node) {\r\n node.addEventListener(\"change\", handleOnJavaScriptChange);\r\n }\r\n\r\n ref.current = node;\r\n }, [handleOnJavaScriptChange]);\r\n};\r\n\r\ntype ElementScrollData = { width: number; height: number; scrollHeight: number; scrollTop: number };\r\n/**\r\n * Hook vrací výšku, šířku, scrollovací šířku a aktuální pozici ve scrollovaní na předaném elementu.\r\n * Pokud element neexistuje a nebo ještě není vykreslen vrací nulové hodnoty.\r\n * @param elementRef Reference na element\r\n * @param dependencies Závíslosti\r\n */\r\nexport const useElementScrollData = <T extends HTMLElement = HTMLDivElement>(elementRef: RefObject<T>, dependencies: any[]): ElementScrollData => {\r\n const [elementSize, setElementSize] = useState<ElementScrollData>({\r\n width: 0,\r\n height: 0,\r\n scrollHeight: 0,\r\n scrollTop: 0,\r\n });\r\n\r\n // Vypínáme ho, protože lint nedokáže odvodit závislosti hooku uvnitř\r\n // řetězení funkcí v callbacku (obalení arrow funkce throttlem).\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const throttledHandleScroll = useCallback(throttle((e: Event) => {\r\n const node = e.target as HTMLElement;\r\n if (node) {\r\n setElementSize({\r\n width: node.offsetWidth || 0,\r\n height: node.offsetHeight || 0,\r\n scrollHeight: node.scrollHeight || 0,\r\n scrollTop: node.scrollTop || 0,\r\n });\r\n }\r\n }, SCROLL_INFO_THROTTLE_MS, { trailing: true, leading: true }), []);\r\n\r\n useEffect(() => {\r\n const node = elementRef?.current;\r\n if (node) {\r\n node.addEventListener(\"scroll\", throttledHandleScroll, { passive: true });\r\n\r\n setElementSize({\r\n width: node.offsetWidth,\r\n height: node.offsetHeight,\r\n scrollHeight: node.scrollHeight,\r\n scrollTop: node.scrollTop,\r\n });\r\n }\r\n\r\n return () => {\r\n node?.removeEventListener(\"scroll\", throttledHandleScroll);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [elementRef, ...dependencies]);\r\n\r\n return elementSize;\r\n};\r\n\r\n/**\r\n * Hook volající zadanou funkci při přesunutí mimo zadaný element.\r\n * @param ref Reference na element\r\n * @param onMouseLeave Funkce volaná při přesunutí kurzoru mimo element\r\n * @param milliseconds Milisekundy určující prodlevu zavolání onMouseLeave\r\n */\r\nexport const useMouseLeaveWatcher = <T extends HTMLElement>(ref: RefObject<T>, onMouseLeave: () => void, milliseconds: number = 0) => {\r\n const timerRef = useRef<number>();\r\n\r\n useEffect(() => {\r\n const clearTimer = () => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current);\r\n }\r\n };\r\n\r\n const handleLeave = () => {\r\n timerRef.current = self.setTimeout(onMouseLeave, milliseconds);\r\n };\r\n\r\n const refCurrent = ref.current;\r\n\r\n refCurrent?.addEventListener(\"mouseleave\", handleLeave);\r\n refCurrent?.addEventListener(\"mouseenter\", clearTimer);\r\n\r\n return () => {\r\n refCurrent?.removeEventListener(\"mouseleave\", handleLeave);\r\n refCurrent?.removeEventListener(\"mouseenter\", clearTimer);\r\n clearTimer();\r\n };\r\n }, [milliseconds, onMouseLeave, ref, timerRef]);\r\n};\r\n\r\n/**\r\n * Hook vracející novou instanci lazy-loading-loggeru\r\n * @param loggingSection Oblast pro kterou bude vrácený logger logovat\r\n */\r\nexport const useLogger = (loggingSection: LoggingSection) => {\r\n const logger = useMemo(() => LazyLoadingSectionLogger.create(loggingSection), [loggingSection]);\r\n return logger;\r\n};\r\n\r\ntype ResizeFunction = ((size: number | undefined) => void) | undefined;\r\n\r\n/**\r\n * Hook obalující ResizeObserver, který navíc doplňuje o throttle funkcionalitu\r\n * @param ref Reference na element\r\n * @param onWidthChange Funkce volaná při změně šířky\r\n * @param onHeightChange Funkce volaná při změně výšky\r\n * @param wait Čas v milisekundách, za kterou se funkce zavolají maximálně jednou\r\n */\r\nexport const useThrottleResizeObserver = <T extends HTMLElement>(ref: RefObject<T>, onWidthChange: ResizeFunction, onHeightChange: ResizeFunction, wait: number = 0) => {\r\n useLayoutEffect(() => {\r\n const handleResize = throttle(() => {\r\n if (ref.current) {\r\n onWidthChange && onWidthChange(ref.current ? ref.current.clientWidth : undefined);\r\n onHeightChange && onHeightChange(ref?.current ? ref?.current.clientHeight : undefined);\r\n }\r\n }, wait);\r\n const observer = new ResizeObserver(handleResize);\r\n if (ref?.current)\r\n observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, [ref, onWidthChange, onHeightChange, wait]);\r\n};\r\n\r\nexport const THROTTLE_RESIZE_OBSERVER_MILISECONDS = 200;\r\n\r\n/**\r\n * Hook spočítá velikost fontu v procentech, tak aby se text vešel do svého parenta\r\n * @param ref Reference na element\r\n * @param maxFontSize maximální velikost fontu v procentech\r\n * @param value zobrazovaná hodnota\r\n * @returns\r\n */\r\nexport const useFitText = <T extends HTMLElement>(ref: RefObject<T>, refParent: RefObject<T>, maxFontSize: number, value: string | null | undefined) => {\r\n const [fontSize, setFontSize] = useState(maxFontSize);\r\n const prevWidth = useRef(0);\r\n const isEnlarging = useRef(false);\r\n\r\n const onWidthChange = (width: number | undefined) => {\r\n if (width && ref.current && refParent.current && value) {\r\n const valueWidth = ref.current.getBoundingClientRect().width;\r\n const parentWidth = refParent.current.getBoundingClientRect().width;\r\n\r\n if (prevWidth.current != parentWidth) {\r\n isEnlarging.current = (prevWidth.current - parentWidth < 0) && prevWidth.current > 0;\r\n }\r\n\r\n const ratio = parentWidth / valueWidth;\r\n\r\n if (ratio < 1 && isEnlarging.current) {\r\n isEnlarging.current = false;\r\n }\r\n if (!isEnlarging.current && ratio >= 1) {\r\n return;\r\n }\r\n const size = Math.min(Math.floor(fontSize * ratio), maxFontSize);\r\n\r\n prevWidth.current = parentWidth;\r\n\r\n setFontSize(size);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n isEnlarging.current = true;\r\n }, [value]);\r\n\r\n useThrottleResizeObserver(refParent, onWidthChange, undefined, THROTTLE_RESIZE_OBSERVER_MILISECONDS);\r\n\r\n return `${fontSize}%`;\r\n};\r\n","import { useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Hook, který vrací boolean hodnotu, která říká, jestli prohližeč už načetl všechny fonty.\r\n * Hodí se např. při měření rozměrů HTML komponent. Využívá události `document.fonts.ready()`, aby\r\n * bylo zajištěno, že prohlížeč už načetl všechny fonty.\r\n */\r\nexport const useFontsLoaded = () => {\r\n const [fontLoaded, setFontLoaded] = useState(document.fonts.status === \"loaded\");\r\n useEffect(() => {\r\n if (!fontLoaded) {\r\n document.fonts.ready.then(() => {\r\n setFontLoaded(true);\r\n });\r\n }\r\n }, [fontLoaded]);\r\n return fontLoaded;\r\n};\r\n","import { RefObject, useEffect, useState } from \"react\";\r\nimport throttle from \"lodash.throttle\";\r\n\r\n/** Parametry usePopupFlip hooku */\r\nexport type UsePopupFlipParams = {\r\n /** Reference na spouštěč */\r\n triggerRef: RefObject<HTMLDivElement>;\r\n /** Reference na popup */\r\n popupRef?: RefObject<HTMLDivElement>;\r\n /** Pozice, kde se má okno prioritně zobrazit */\r\n positionPriority?: PopupPosition;\r\n /** Příznak, zda je otevírací oblast otevřená */\r\n opened: boolean;\r\n /** Výška contentu v popupu */\r\n height?: number;\r\n /** Šířka contentu v popupu */\r\n width?: number;\r\n /** Odsazení */\r\n offset?: number;\r\n};\r\n\r\n/**\r\n * Posun části popupu v závislosti na překlopení této části do dostupného místa\r\n */\r\nexport type OptionsContentOffset = {\r\n /** Horní posun */\r\n topOffset: number;\r\n /** Levý posun */\r\n leftOffset: number;\r\n};\r\n\r\n/** Směr otevření popupu */\r\nexport enum PopupPosition {\r\n rightBottom = \"rightBottom\",\r\n leftBottom = \"leftBottom\",\r\n rightTop = \"rightTop\",\r\n leftTop = \"leftTop\",\r\n}\r\n\r\n/** Výchozí délka throttle při změně směru popupu */\r\nexport const POPUP_FLIP_THROTTLE_MS = 15;\r\n\r\nexport const DEFAULT_POPUP_OFFSET = 0;\r\n\r\n/**\r\n * Hook určený pro výpočet posunu popupu v závislosti na překlopení těla do dostupného místa.\r\n * Nespouští se při záměně obsahu části reprezentující spouštěč - při odlišné výšce této části se část repretentující okno ke spoustěči neposune.\r\n * Pozice okna se během výpočtu nachází mimo viditelnou oblast.\r\n * @param triggerRef Reference na spouštěč\r\n * @param opened Příznak, zda je otevírací oblast otevřená\r\n * @param popupRef Reference na popup\r\n * @param positionPriority Pozice, kde se má okno prioritně zobrazit\r\n * @param height Výška contentu v popupu.\r\n * @param width Šířka contentu v popupu.\r\n * @param offset Odsazení.\r\n */\r\nexport const usePopupFlip = ({ offset = DEFAULT_POPUP_OFFSET, ...params }: UsePopupFlipParams): OptionsContentOffset => {\r\n const [position, setPosition] = useState<OptionsContentOffset>({ topOffset: -window.innerHeight, leftOffset: -window.innerWidth });\r\n\r\n useEffect(() => {\r\n updatePosition();\r\n window.addEventListener(\"resize\", throttledUpdatePosition, { passive: true, capture: true });\r\n window.addEventListener(\"scroll\", throttledUpdatePosition, { passive: true, capture: true });\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", throttledUpdatePosition);\r\n window.removeEventListener(\"scroll\", throttledUpdatePosition);\r\n };\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [params.triggerRef, params.popupRef, params.opened]);\r\n\r\n const updatePosition = () => {\r\n if (!params.opened) {\r\n return;\r\n }\r\n\r\n const position = getPosition();\r\n if (position) {\r\n setPosition(position);\r\n }\r\n };\r\n\r\n const throttledUpdatePosition = throttle(updatePosition, POPUP_FLIP_THROTTLE_MS);\r\n\r\n /**\r\n * Podle dostupného místa kolem komponenty určí na kterou stranu se má popup otevírat.\r\n */\r\n const getPosition = (): OptionsContentOffset | undefined => {\r\n if (!(params.triggerRef?.current && (params.popupRef?.current || (params.height && params.width)))) {\r\n return undefined;\r\n }\r\n const triggerContentRect = params.triggerRef.current.getBoundingClientRect();\r\n const popupContentRect = params.popupRef?.current\r\n ? params.popupRef.current.getBoundingClientRect() : new DOMRect(0, 0, params.width, params.height);\r\n const contentPosition = getContentPosition(triggerContentRect, popupContentRect, params.positionPriority, offset);\r\n const offsets = getOffsets(triggerContentRect, popupContentRect, offset);\r\n return offsets[contentPosition];\r\n };\r\n\r\n return position;\r\n};\r\n\r\nexport const getContentPosition = (triggerContentRect: DOMRect, popupContentRect: DOMRect, positionPriority?: PopupPosition, offset: number = DEFAULT_POPUP_OFFSET) => {\r\n const { rightSpace, leftSpace, topSpace, bottomSpace } = getSpaces(\r\n triggerContentRect,\r\n popupContentRect,\r\n window.innerWidth,\r\n window.innerHeight,\r\n offset,\r\n );\r\n\r\n const largestSpace = getLargestSpace(triggerContentRect, window.innerWidth, window.innerHeight);\r\n\r\n return getPopupPosition(rightSpace, bottomSpace, leftSpace, topSpace, positionPriority, largestSpace);\r\n};\r\n\r\n/**\r\n * Podle dostupného místa určí vhodnou pozici popupu\r\n * @param rightSpace Příznaky zda je dostupné místo vpravo\r\n * @param bottomSpace Příznaky zda je dostupné místo dole\r\n * @param leftSpace Příznaky zda je dostupné místo vlevo\r\n * @param topSpace Příznaky zda je dostupné místo nahoře\r\n * @param positionPriority Pozice, kde se má okno prioritně zobrazit\r\n * @param largestSpace Pozice, kde je k dispozici největší prostor\r\n */\r\nexport const getPopupPosition = (rightSpace: boolean, bottomSpace: boolean, leftSpace: boolean, topSpace: boolean, positionPriority?: PopupPosition, largestSpace?: PopupPosition) => {\r\n const spaces = {\r\n [ PopupPosition.leftBottom ]: (leftSpace && bottomSpace),\r\n [ PopupPosition.leftTop ]: (leftSpace && topSpace),\r\n [ PopupPosition.rightBottom ]: (rightSpace && bottomSpace),\r\n [ PopupPosition.rightTop ]: (rightSpace && topSpace),\r\n };\r\n\r\n // Pokud je to možné popup je vložen prioritní místo\r\n if (positionPriority && spaces[positionPriority]) {\r\n return positionPriority;\r\n }\r\n\r\n // Popup je vložen na první volné místo\r\n if (spaces[PopupPosition.rightBottom]) {\r\n return PopupPosition.rightBottom;\r\n }\r\n if (spaces[PopupPosition.leftBottom]) {\r\n return PopupPosition.leftBottom;\r\n }\r\n if (spaces[PopupPosition.rightTop]) {\r\n return PopupPosition.rightTop;\r\n }\r\n if (spaces[PopupPosition.leftTop]) {\r\n return PopupPosition.leftTop;\r\n }\r\n\r\n // Popup je vložen do největšího prostoru, pokud není, umístí se vpravo dolů\r\n return largestSpace ?? PopupPosition.rightBottom;\r\n};\r\n\r\n/** Zjistí, zda je v jednotlivých směrech dostatek místa. */\r\nexport const getSpaces = (\r\n triggerContentRect: DOMRect,\r\n popupContentRect: DOMRect,\r\n windowWidth: number,\r\n windowHeight: number,\r\n offset: number = DEFAULT_POPUP_OFFSET,\r\n) => ({\r\n rightSpace: popupContentRect.width <= windowWidth - triggerContentRect.left,\r\n leftSpace: popupContentRect.width <= triggerContentRect.right,\r\n topSpace: popupContentRect.height + offset <= triggerContentRect.top,\r\n bottomSpace: popupContentRect.height <= windowHeight - triggerContentRect.bottom - offset,\r\n});\r\n\r\n/** Zjistí největší prostor */\r\nexport const getLargestSpace = (\r\n triggerContentRect: DOMRect,\r\n windowWidth: number,\r\n windowHeight: number,\r\n): PopupPosition => {\r\n if (triggerContentRect.top > windowHeight - triggerContentRect.bottom) {\r\n return windowWidth - triggerContentRect.right > triggerContentRect.left\r\n ? PopupPosition.rightTop : PopupPosition.leftTop;\r\n } else {\r\n return windowWidth - triggerContentRect.right > triggerContentRect.left\r\n ? PopupPosition.rightBottom : PopupPosition.leftBottom;\r\n }\r\n};\r\n\r\n/**\r\n * Získá posuny pro jednotlivé pozice pro popup.\r\n * Pokud je popup součástí iframe, výsledná hodnota se upraví podle polohy scrollbaru který scrolluje dokument.\r\n */\r\nexport const getOffsets = (triggerContentRect: DOMRect, popupContentRect: DOMRect, offset: number = DEFAULT_POPUP_OFFSET) => {\r\n const offsets = {\r\n [PopupPosition.leftBottom]: {\r\n topOffset: triggerContentRect.bottom + offset,\r\n leftOffset: -popupContentRect.width + triggerContentRect.right,\r\n },\r\n [PopupPosition.rightBottom]: {\r\n topOffset: triggerContentRect.bottom + offset,\r\n leftOffset: triggerContentRect.left,\r\n },\r\n [PopupPosition.leftTop]: {\r\n topOffset: triggerContentRect.top - popupContentRect.height - offset,\r\n leftOffset: -popupContentRect.width + triggerContentRect.right,\r\n },\r\n [PopupPosition.rightTop]: {\r\n topOffset: triggerContentRect.top - popupContentRect.height - offset,\r\n leftOffset: triggerContentRect.left,\r\n },\r\n };\r\n const scrollingElement = document.scrollingElement;\r\n if (window !== window.top && scrollingElement) {\r\n const { scrollLeft, scrollTop } = scrollingElement;\r\n Object.keys(PopupPosition).forEach((space) => {\r\n const offset = offsets[space as PopupPosition];\r\n offset.topOffset += scrollTop;\r\n offset.leftOffset += scrollLeft;\r\n });\r\n }\r\n return offsets;\r\n};\r\n","export * from \"./hooks\";\r\nexport * from \"./useFontsLoadedHook\";\r\nexport { getContentPosition, POPUP_FLIP_THROTTLE_MS, PopupPosition, usePopupFlip } from \"./usePopupFlipHook\";\r\n","import { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { useTurnOffDelay } from \"@multiweb/reactUtils/hooks\";\r\n\r\nexport type DelayedUnmountProps = {\r\n /** Zpozdění odpojení potomka z DOM */\r\n delayMs: number;\r\n /** Příznak, zda má být potomek zapojený do DOM */\r\n mounted: boolean;\r\n /** Potomek */\r\n children: ReactElement;\r\n};\r\n\r\n/**\r\n * Komponenta slouží pro zpoždění odpojení komponenty z DOM.\r\n */\r\nexport const DelayedUnmount: FunctionComponent<DelayedUnmountProps> = ({\r\n delayMs,\r\n mounted,\r\n children,\r\n}) => {\r\n const delayedMount = useTurnOffDelay(mounted, delayMs);\r\n\r\n return delayedMount ? children : null;\r\n};\r\n","export * from \"./DelayedUnmount\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AnimatedHeight } from \"../AnimatedHeight\";\r\nimport { AnimatedOpacity } from \"../AnimatedOpacity\";\r\nimport { AnimatedWidth } from \"../AnimatedWidth\";\r\nimport { DelayedUnmount } from \"../DelayedUnmount\";\r\nimport { AnimationPhase } from \"../types\";\r\n\r\n/** Výčet pro typ animace */\r\nexport enum AnimationType {\r\n opacity = \"opacity\",\r\n width = \"width\",\r\n height = \"height\",\r\n}\r\n\r\nexport type AnimatedMountProps = {\r\n /** Příznak, zda má být potomek zapojený v DOM */\r\n mounted: boolean;\r\n /** Typ animace při změně příznaku pro zapojení */\r\n animationType: AnimationType;\r\n /** Délka trvání animace při změně příznaku pro zapojení */\r\n animationDurationMs: number;\r\n /** Šířka komponenty při animované šířce */\r\n width?: number;\r\n /** Výška komponenty při animované výšce */\r\n height?: number;\r\n};\r\n\r\n/**\r\n * Komponenta slouží pro animované přidávání/odebírání komponent do/z DOM.\r\n */\r\nexport const AnimatedMount: FunctionComponent<AnimatedMountProps> = ({\r\n mounted,\r\n animationType,\r\n children,\r\n animationDurationMs,\r\n width,\r\n height,\r\n}) => {\r\n const animationPhase = mounted ? AnimationPhase.start : AnimationPhase.end;\r\n const widthAnimationType = animationType === AnimationType.width;\r\n const heightAnimationType = animationType === AnimationType.height;\r\n\r\n if (widthAnimationType && width && (heightAnimationType && height) === undefined) {\r\n throw new Error(\"[AnimatedMount] Width or Height prop was not provided.\");\r\n }\r\n\r\n const animatedOptions = () => {\r\n switch (animationType) {\r\n case AnimationType.width:\r\n return (\r\n <AnimatedWidth width={width || 0} // Zde bude šířka vždy definovaná, typová kontrola to však nerozpozná\r\n {...{ animationDurationMs, animationPhase }}\r\n >\r\n {children}\r\n </AnimatedWidth>\r\n );\r\n case AnimationType.height:\r\n return (\r\n <AnimatedHeight height={height || 0} // Zde bude výška vždy definovaná, typová kontrola to však nerozpozná\r\n {...{ animationDurationMs, animationPhase }}\r\n >\r\n {children}\r\n </AnimatedHeight>\r\n );\r\n case AnimationType.opacity:\r\n return (\r\n <AnimatedOpacity {...{ animationDurationMs, animationPhase }}>\r\n {children}\r\n </AnimatedOpacity>\r\n );\r\n }\r\n };\r\n\r\n return (\r\n <DelayedUnmount\r\n delayMs={animationDurationMs}\r\n {...{ mounted }}\r\n >\r\n {animatedOptions()}\r\n </DelayedUnmount>\r\n );\r\n};\r\n","export * from \"./AnimatedMount\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\n\r\nexport type CheckBoxIconProps = {\r\n /** Příznak, zda má být zobrazena zaškrtnutá ikona */\r\n checked: boolean;\r\n /** Příznak, zda je checkbox vizuálně neaktivní - výchozí hodnota je false */\r\n disabled?: boolean;\r\n /** Popisek */\r\n title?: string;\r\n};\r\n\r\nexport const CheckBoxIcon: FunctionComponent<CheckBoxIconProps> = ({\r\n checked,\r\n disabled = false,\r\n title,\r\n}) => (\r\n <Icon\r\n color={checked ? IconColor.green : IconColor.red}\r\n iconCode={checked ? IconCode.uiCheckSmall : IconCode.uiCrossSmall}\r\n role={Role.checkBox}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n hideOutlineOnFocus={true}\r\n ariaChecked={checked}\r\n ariaDisabled={true}\r\n {...{ disabled, title }}\r\n />\r\n);\r\n","export * from \"./CheckBoxIcon\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\nimport { AccessibilityProps } from \"@multiweb/types/react\";\r\nimport { Icon, IconColor, IconProps } from \"../Icon\";\r\nimport { BackgroundAttributeProps } from \"../types\";\r\n\r\nexport type IconWithBackgroundAttrProps = IconProps & BackgroundAttributeProps & Pick<AccessibilityProps, \"role\" | \"tabIndex\" | \"hideOutlineOnFocus\" | \"ariaChecked\" | \"ariaDisabled\">;\r\n\r\nconst classNames = bemClassNames(\"icon-with-backgroundattr\");\r\n\r\n/** Komponent pro zobrazení ikony obalené v BackgroundAttr. Barva textu ikony je pak nastavena na základě hodnoty BackgroundAttr. */\r\nexport const IconWithBackgroundAttr: FunctionComponent<IconWithBackgroundAttrProps> = ({\r\n color,\r\n hasBackgroundAttr,\r\n ...restProps\r\n}) => (\r\n <span className={classNames(transformKeysToParamCase({\r\n hasBackgroundAttr,\r\n }))}>\r\n <Icon {...restProps} color={hasBackgroundAttr ? IconColor.inherit : color} />\r\n </span>\r\n);\r\n","export * from \"./IconWithBackgroundAttr\";\r\n","import { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IBigNumber } from \"@multiweb/types/multiweb\";\r\n\r\nconst { getFormattedNumberString } = bridge;\r\n\r\n/**\r\n * Množina vstupních hodnot se odvíjí od funkcionality formátovací funkce\r\n * @see getFormattedNumberString\r\n */\r\nexport type NumberFormatterValue = string | IBigNumber | number | null | undefined;\r\n\r\nexport type NumberFormatterProps = {\r\n /** Potomci, kteří mají k dispozici zformátovanou hodnotu */\r\n children: (value: string) => ReactElement;\r\n /**\r\n * Formát aplikovaný na vstupní hodnotu\r\n * @see https://wiki-dokumentace/index.php?title=DisplayFormat\r\n */\r\n displayFormat?: string;\r\n /** Vstupní formátovaná hodnota */\r\n value: NumberFormatterValue;\r\n /** Měna, která se má v dané kultůře naformátovat. */\r\n currency?: string;\r\n /** Datový typ. */\r\n dataType?: OWDataType | string;\r\n};\r\n\r\n/**\r\n * Hook pro výpočet výsledné hodnoty\r\n * @param displayFormat Formát aplikovaný na vstupní hodnotu\r\n * @param value Vstupní formátovaná hodnota\r\n * @param currency Měna, která se má v dané kultůře naformátovat.\r\n * @param dataType Datový typ.\r\n * @returns Zformátovaná hodnota\r\n */\r\nconst useFormattedString: typeof getFormattedNumberString = (\r\n value,\r\n { displayFormat, currency, dataType },\r\n) => getFormattedNumberString(value, { displayFormat, currency, dataType });\r\n\r\n/** Komponenta pro převod číselné hodnoty na řetězcovou podle zadaného formátu */\r\nexport const NumberFormatter: FunctionComponent<NumberFormatterProps> = ({\r\n children,\r\n displayFormat,\r\n value,\r\n currency,\r\n dataType,\r\n}) => children(useFormattedString(value, { displayFormat, currency, dataType }));\r\n","export * from \"./NumberFormatter\";\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\n\r\n/**\r\n * Barva textu. Na barvy se aplikuje téma aplikace.\r\n * Úpravy je nutné promítnout i do souboru constants.less.\r\n */\r\nexport enum TextColor {\r\n\r\n /*----- Obecné -----*/\r\n default = \"default\",\r\n inherit = \"inherit\",\r\n\r\n /*----- Odstíny šedi -----*/\r\n /* black-white (výchozí) */\r\n textPrimary = \"text-primary\",\r\n textSecondary = \"text-secondary\",\r\n textDisabled = \"text-disabled\",\r\n blackWhite = \"black-white\",\r\n\r\n /* černá-černá */\r\n blackPrimaryFixed = \"black-primary-fixed\",\r\n blackSecondaryFixed = \"black-secondary-fixed\",\r\n blackDisabledFixed = \"black-secondary-fixed\",\r\n\r\n /* bílá-bílá */\r\n whitePrimaryFixed = \"white-primary-fixed\",\r\n whiteSecondaryFixed = \"white-secondary-fixed\",\r\n whiteDisabledFixed = \"white-secondary-fixed\",\r\n\r\n /* bílá-černá */\r\n textPrimaryInverted = \"text-primary-inverted\",\r\n textSecondaryInverted = \"text-secondary-inverted\",\r\n textDisabledInverted = \"text-primary-inverted\",\r\n whiteBlack = \"white-black\",\r\n\r\n /*----- Branding -----*/\r\n\r\n /* tmavá-světlá (výchozí) */\r\n colorPrimary = \"color-primary\",\r\n colorSecondary = \"color-secondary\",\r\n\r\n /* tmavá-tmavá */\r\n colorPrimaryDarkFixed = \"color-primary-dark-fixed\",\r\n colorSecondaryDarkFixed = \"color-secondary-dark-fixed\",\r\n blackFixed = \"black-fixed\",\r\n\r\n /* světlá-světlá */\r\n colorPrimaryLightFixed = \"color-primary-light-fixed\",\r\n colorSecondaryLightFixed = \"color-secondary-light-fixed\",\r\n whiteFixed = \"white-fixed\",\r\n\r\n /* Saturované */\r\n\r\n red = \"red\",\r\n pink = \"pink\",\r\n purple = \"purple\",\r\n deeppurple = \"deeppurple\",\r\n indigo = \"indigo\",\r\n blue = \"blue\",\r\n lightblue = \"lightblue\",\r\n cyan = \"cyan\",\r\n teal = \"teal\",\r\n green = \"green\",\r\n lightgreen = \"light\",\r\n lime = \"lime\",\r\n yellow = \"yellow\",\r\n amber = \"amber\",\r\n orange = \"orange\",\r\n deeporange = \"deeporange\",\r\n grey1 = \"grey-1\",\r\n\r\n}\r\n\r\n/**\r\n * Tloušťka písma.\r\n * Úpravy je nutné promítnout i do souboru constants.less.\r\n */\r\nexport enum FontWeight {\r\n normal = \"normal\",\r\n bold = \"bold\",\r\n}\r\n\r\n/**\r\n * Způsob zpracování bílých znaků uvnitř prvku.\r\n * Hodnoty se přiřazují jako CSS atributy přes inline styl.\r\n */\r\nexport enum WhiteSpace {\r\n normal = \"normal\",\r\n nowrap = \"nowrap\",\r\n pre = \"pre\",\r\n preLine = \"pre-line\",\r\n preWrap = \"pre-wrap\",\r\n initial = \"initial\",\r\n inherit = \"inherit\",\r\n}\r\n","import { KeyboardEventHandler } from \"react\";\r\n\r\nimport { TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils\";\r\nimport { OptionalTabIndex } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Získá výsledný tab index na základě zadaných prop. Explicitně zadaný tabIndex má přednost. Pokud zadaný není,\r\n * je text zaměřitelný pouze pokud zpracovává události klávesnice (je zadaný alespoň jeden onKey* handler).\r\n * @param tabIndex Prop tabIndex zadaná explicitně do komponenty Text.\r\n * @param onKeyDown Handler pro zpracování událostí stisku kláves, který je zadaný do komponenty Text.\r\n * @param onKeyUp Handler pro zpracování událostí uvolnění kláves, který je zadaný do komponenty Text.\r\n * @param onKeyPress Handler pro zpracování událostí stisku a uvolnění kláves, který je zadaný do komponenty Text.\r\n */\r\nexport const getTabIndex = (\r\n tabIndex: OptionalTabIndex,\r\n onKeyDown?: KeyboardEventHandler,\r\n onKeyUp?: KeyboardEventHandler,\r\n onKeyPress?: KeyboardEventHandler,\r\n): OptionalTabIndex => {\r\n if (tabIndex !== undefined) {\r\n return tabIndex;\r\n } else if (onKeyDown || onKeyUp || onKeyPress) {\r\n return TAB_INDEX_FOCUSABLE_ONLY;\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Získá hodnotu pro atribut aria-label na základě zadaných props ariaLabelledBy, ariaLabel a title.\r\n * V případě zadané ariaLabelledBy vrací undefined. Další pořadí priorit je hodnota ariaLabel a nakonec title.\r\n *\r\n * @param ariaLabelledBy Id elementu sloužícího jako popisek.\r\n * @param ariaLabel Popisek textu.\r\n * @param title Vysvětlivka textu.\r\n */\r\nexport const getAriaLabel = (ariaLabelledBy?: string, ariaLabel?: string, title?: string): string | undefined => {\r\n if (ariaLabelledBy) {\r\n return undefined;\r\n } else if (ariaLabel) {\r\n return ariaLabel;\r\n } else {\r\n return title;\r\n }\r\n};\r\n","import React, { FunctionComponent, MouseEventHandler } from \"react\";\r\n\r\nimport { bemClassNames, createQA, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\nimport { AccessibilityProps, KeyboardNavigationProps, QAProps, TabIndex } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { FontWeight, TextColor, WhiteSpace } from \"./enums\";\r\nimport { getAriaLabel, getTabIndex } from \"./utils\";\r\n\r\nexport type TextProps = {\r\n /** Příznak, zda je text vizuálně neaktivní - výchozí hodnota je false */\r\n disabled?: boolean;\r\n /** Zobrazený text - výchozí hodnota je prázdný řetězec */\r\n value?: string;\r\n /** Tloušťka písma */\r\n fontWeight?: FontWeight;\r\n /** Barevné téma */\r\n theme?: ComponentTheme;\r\n /** Popisek */\r\n title?: string;\r\n /** Barva textu - má vyšší prioritu než barevné téma */\r\n color?: TextColor;\r\n /** Příznak, zda je možné označit text */\r\n isTextSelectable?: boolean;\r\n /** Způsob zpracování bílých znaků uvnitř prvku */\r\n whiteSpace?: WhiteSpace;\r\n /** Příznak, zda se má text ořezávat. */\r\n ellipsis?: boolean;\r\n /** Příznak, zda má být text podtržený. */\r\n underline?: boolean;\r\n /** Akce, která se provede při obyčejném kliku na komponentu. */\r\n onClick?: MouseEventHandler;\r\n /** Umožňuje nastavit tabindex. Pokud není zadaný, určuje se výsledná hodnota tabIndexu na základě onKeyDown handleru. Pokud je handler zadaný, použije se hodnota TAB_INDEX_FOCUSABLE_ONLY.\r\n * Pokud neexistuje, použije se hodnota undefined a chování tedy závisí na prohlížeči. */\r\n tabIndex?: TabIndex;\r\n /** Popisek pole, který se použije jako aria-label pokud není zadané ariaLabelledBy. Pokud není explicitně zadané ariaLabelledBy ani ariaLabel, použije se v aria-label title. */\r\n ariaLabel?: string;\r\n} & QAProps & Pick<AccessibilityProps, \"role\" | \"ariaSort\" | \"hideOutlineOnFocus\" | \"ariaLabelledBy\"> & KeyboardNavigationProps;\r\n\r\nconst classNames = bemClassNames(\"text-component\");\r\n\r\n/** Základní textová komponenta */\r\nexport const Text: FunctionComponent<TextProps> = ({\r\n value = \"\",\r\n fontWeight,\r\n theme = ComponentTheme.default,\r\n title,\r\n qa,\r\n disabled = false,\r\n color = TextColor.inherit,\r\n isTextSelectable = true,\r\n whiteSpace,\r\n ellipsis,\r\n underline,\r\n role,\r\n ariaSort,\r\n hideOutlineOnFocus,\r\n onClick,\r\n onKeyDown,\r\n onKeyUp,\r\n onKeyPress,\r\n tabIndex,\r\n ariaLabelledBy,\r\n ariaLabel,\r\n}) => (\r\n <span\r\n className={classNames(transformKeysToParamCase({ theme, fontWeight, disabled, color, selectableText: isTextSelectable, ellipsis, underline, hideOutlineOnFocus }))}\r\n style={{ whiteSpace }}\r\n aria-label={getAriaLabel(ariaLabelledBy, ariaLabel, title)}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-sort={ariaSort ?? undefined}\r\n aria-disabled={disabled || undefined}\r\n tabIndex={getTabIndex(tabIndex, onKeyDown, onKeyUp, onKeyPress)}\r\n {...createQA(qa)}\r\n {...{ title, onKeyDown, onKeyUp, onKeyPress, onClick, role }}\r\n >\r\n {value}\r\n </span>\r\n);\r\n","export * from \"./enums\";\r\nexport * from \"./Text\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { NumberFormatter, NumberFormatterProps } from \"../NumberFormatter\";\r\nimport { Text, TextProps } from \"../Text\";\r\n\r\nexport type NumberValueProps = Pick<NumberFormatterProps, \"displayFormat\" | \"value\" >\r\n & Pick<TextProps, \"fontWeight\" | \"color\" | \"title\" | \"disabled\" | \"ellipsis\">\r\n & QAProps;\r\n\r\n/** Číselná hodnota formátovaná podle zadaného formátu */\r\nexport const NumberValue: FunctionComponent<NumberValueProps> = ({\r\n value,\r\n displayFormat,\r\n fontWeight,\r\n color,\r\n title,\r\n disabled = false,\r\n qa,\r\n ellipsis = true,\r\n}) => (\r\n <NumberFormatter {...{ value, displayFormat }}>\r\n {(formattedValue) => (\r\n <Text\r\n value={formattedValue}\r\n {...{ title, fontWeight, color, disabled, qa, ellipsis }}\r\n />\r\n )}\r\n </NumberFormatter>\r\n);\r\n","export * from \"./NumberValue\";\r\n","import React from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { Text } from \"../Text\";\r\n\r\nconst { getDateToStringFunction } = bridge;\r\n\r\n/**\r\n * Vrátí správně naformátovanou hodnotu pro atribut, jehož typ souvisí s časem a datem.\r\n * @param value Hodnota atributu.\r\n * @param type Typ atributu.\r\n * @param displayFormat Formát, v jakém má být hodnota zobrazena.\r\n * @param interactive Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat.\r\n * @param hasBackgroundAttr Určuje, zda je komponenta obalena uvnitř BackgroundAttr, ze kterého má převzít barvu pozadí\r\n */\r\nexport const displayDate = (\r\n value: any,\r\n type: OWDataType.date | OWDataType.dateTime | OWDataType.time,\r\n displayFormat: string | null = null,\r\n interactive?: boolean,\r\n ellipsis?: boolean,\r\n) => {\r\n let displayValue = \"\";\r\n if (value instanceof Date) {\r\n switch (type) {\r\n case OWDataType.dateTime:\r\n displayValue = getDateToStringFunction(displayFormat ?? \"\").format(value);\r\n break;\r\n case OWDataType.date:\r\n displayValue = getDateToStringFunction(displayFormat ?? \"dd\").format(value);\r\n break;\r\n case OWDataType.time:\r\n displayValue = getDateToStringFunction(displayFormat ?? \"t\").format(value);\r\n break;\r\n }\r\n }\r\n return <Text value={displayValue} disabled={!interactive} {...{ ellipsis }} />;\r\n};\r\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IEnum } from \"@multiweb/types/multiweb\";\r\nimport { CheckBoxIcon } from \"../CheckBoxIcon\";\r\nimport { IconWithBackgroundAttr } from \"../IconWithBackgroundAttr\";\r\nimport { NumberValue } from \"../NumberValue\";\r\nimport { Text } from \"../Text\";\r\nimport { BackgroundAttributeProps } from \"../types\";\r\nimport { displayDate } from \"./utils\";\r\n\r\nconst { getDefaultNumberFormat, stripHTMLFromText } = bridge;\r\n\r\nexport type AttributeProps = {\r\n /** Hodnota záznamu. */\r\n value: any;\r\n /** Datový typ atributu. */\r\n type?: OWDataType;\r\n /** Formát, v jakém má být hodnota zobrazena. */\r\n displayFormat?: string | null;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Popisek */\r\n title?: string;\r\n /** Příznak, zda se má text ořezávat. */\r\n ellipsis?: boolean;\r\n} & BackgroundAttributeProps;\r\n\r\n/**\r\n * Komponenta vykreslí příslušnou komponentu na základě datového typu atributu.\r\n */\r\nexport const Attribute: FunctionComponent<AttributeProps> = ({\r\n value,\r\n type,\r\n displayFormat = null,\r\n interactive = true,\r\n title,\r\n hasBackgroundAttr = false,\r\n ellipsis = true,\r\n}) => {\r\n const initialValue = value instanceof IEnum ? value.toLocaleString() : value;\r\n const [enumValue, setEnumValue] = useState(initialValue);\r\n\r\n useEffect(() => {\r\n // neměly by nastat případy, kdy je v atributu původně IEnum a typ objektu se pak změní\r\n if (value instanceof IEnum) {\r\n const fetchLocalizedName = async () => {\r\n const result = await value.getLocalizedName();\r\n setEnumValue(result);\r\n };\r\n\r\n fetchLocalizedName();\r\n }\r\n }); // žádné dependencies, value se sama o sobě nemění (jen výsledek metody getLocalizedName)\r\n\r\n const modifiedType = type?.startsWith(\"Enum|\") ? \"Enum\" : type;\r\n switch (modifiedType) {\r\n case OWDataType.date:\r\n case OWDataType.time:\r\n case OWDataType.dateTime: {\r\n return displayDate(value, modifiedType, displayFormat, interactive, ellipsis);\r\n }\r\n case OWDataType.boolean: {\r\n return <CheckBoxIcon checked={!!value} disabled={!interactive} {...{ title }} />;\r\n }\r\n case OWDataType.icon: {\r\n return (\r\n <IconWithBackgroundAttr\r\n iconCode={value}\r\n disabled={!interactive}\r\n {...{ title, hasBackgroundAttr }}\r\n />\r\n );\r\n }\r\n case OWDataType.byte:\r\n case OWDataType.short:\r\n case OWDataType.integer:\r\n case OWDataType.int64:\r\n case OWDataType.bcd:\r\n case OWDataType.double:\r\n case OWDataType.single:\r\n case OWDataType.decimal:\r\n case OWDataType.money: {\r\n return (\r\n <NumberValue\r\n value={value}\r\n displayFormat={getDefaultNumberFormat(type)}\r\n disabled={!interactive}\r\n title={value}\r\n {...{ ellipsis }}\r\n />\r\n );\r\n }\r\n case OWDataType.flags:\r\n case OWDataType.enum: {\r\n return (\r\n <Text\r\n value={enumValue}\r\n disabled={!interactive}\r\n title={enumValue}\r\n {...{ ellipsis }}\r\n />\r\n );\r\n }\r\n case OWDataType.htmlText: {\r\n const attrValue = stripHTMLFromText(value.toString());\r\n return (\r\n <Text\r\n value={attrValue}\r\n disabled={!interactive}\r\n title={attrValue}\r\n {...{ ellipsis }}\r\n />\r\n );\r\n }\r\n default:\r\n return (\r\n <Text\r\n value={value.toString()}\r\n disabled={!interactive}\r\n title={value.toString()}\r\n {...{ ellipsis }}\r\n />\r\n );\r\n }\r\n};\r\n","export * from \"./Attribute\";\r\n","export type WebcamFacingMode = \"user\" | \"environment\";\r\n\r\nconst DEFAULT_WIDTH = 640;\r\nconst DEFAULT_HEIGHT = DEFAULT_WIDTH * (3 / 4);\r\n\r\nexport class WebcamUtils {\r\n private _webcamElement: HTMLVideoElement;\r\n private _facingMode: WebcamFacingMode;\r\n private _webcamList: MediaDeviceInfo[] = [];\r\n private _streamList: MediaStream[] = [];\r\n private _selectedDeviceId: string = \"\";\r\n private _canvasElement: HTMLCanvasElement | null;\r\n private _context: CanvasRenderingContext2D | null = null;\r\n\r\n /**\r\n * Vrátí facingMode\r\n */\r\n public get facingMode(): WebcamFacingMode {\r\n return this._facingMode;\r\n }\r\n\r\n public set facingMode(value) {\r\n this._facingMode = value;\r\n }\r\n\r\n /**\r\n * Vrací seznam vstupních zařízení\r\n */\r\n public get webcamList(): readonly MediaDeviceInfo[] {\r\n return Array.from(this._webcamList);\r\n }\r\n\r\n /**\r\n * Vrací počet vstupních zařízení\r\n */\r\n public get webcamCount(): number {\r\n return this._webcamList.length;\r\n }\r\n\r\n /**\r\n * Vrací ID právě vybraného zařízení\r\n */\r\n public get selectedDeviceId(): string {\r\n return this._selectedDeviceId;\r\n }\r\n\r\n constructor(webcamElement: HTMLVideoElement, facingMode: WebcamFacingMode = \"user\", canvasElement: HTMLCanvasElement | null = null) {\r\n this._webcamElement = webcamElement;\r\n this._webcamElement.width = this._webcamElement.width || DEFAULT_WIDTH;\r\n this._webcamElement.height = this._webcamElement.height || DEFAULT_HEIGHT;\r\n this._facingMode = facingMode;\r\n this._canvasElement = canvasElement;\r\n\r\n if (canvasElement) {\r\n this._context = canvasElement.getContext(\"2d\");\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí seznam všech video vstupů\r\n */\r\n public getVideoInputs(mediaDevices: MediaDeviceInfo[]): MediaDeviceInfo[] {\r\n this._webcamList = WebcamUtils.getVideoInputs(mediaDevices);\r\n if (this._webcamList.length === 1) {\r\n this._facingMode = \"user\";\r\n }\r\n return this._webcamList;\r\n }\r\n\r\n public static getVideoInputs(mediaDevices: MediaDeviceInfo[]): MediaDeviceInfo[] {\r\n const webcamList: MediaDeviceInfo[] = [];\r\n mediaDevices.forEach(mediaDevice => {\r\n if (mediaDevice.kind === \"videoinput\") {\r\n webcamList.push(mediaDevice);\r\n }\r\n });\r\n\r\n return webcamList;\r\n }\r\n\r\n /**\r\n * Vrátí nastavení oprávnění přístupu\r\n */\r\n public getMediaConstraints(): MediaStreamConstraints {\r\n const videoConstraints: MediaTrackConstraints = {};\r\n if (this._selectedDeviceId === \"\") {\r\n videoConstraints.facingMode = this._facingMode;\r\n } else {\r\n videoConstraints.deviceId = { exact: this._selectedDeviceId };\r\n }\r\n\r\n return {\r\n video: videoConstraints,\r\n audio: false,\r\n };\r\n }\r\n\r\n /**\r\n * Výběr kamery na základě facingMode\r\n */\r\n public selectCamera(): void {\r\n for (const webcam of this._webcamList) {\r\n if ((this._facingMode === \"user\" && webcam.label.toLowerCase().includes(\"front\"))\r\n || (this._facingMode === \"environment\" && webcam.label.toLowerCase().includes(\"back\"))\r\n ) {\r\n this._selectedDeviceId = webcam.deviceId;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Změní facingMode a vybere kameru\r\n */\r\n public flip(): void {\r\n this._facingMode = (this._facingMode === \"user\") ? \"environment\" : \"user\";\r\n this._webcamElement.style.transform = \"\";\r\n this.selectCamera();\r\n }\r\n\r\n /**\r\n * Spustí stream (Načte všechny kamery, vyžádá práva a vybere kameru na základě facingMode)\r\n */\r\n public async start(startStream = true): Promise<string> {\r\n this.stop();\r\n const stream = await navigator.mediaDevices.getUserMedia(this.getMediaConstraints());\r\n this._streamList.push(stream);\r\n await this.info();\r\n\r\n this.selectCamera();\r\n if (startStream) {\r\n await this.stream();\r\n this._timerCallback();\r\n } else {\r\n return this._selectedDeviceId;\r\n }\r\n\r\n return this._selectedDeviceId;\r\n }\r\n\r\n /**\r\n * Vrátí všechny video vstupy\r\n */\r\n public async info(): Promise<readonly MediaDeviceInfo[]> {\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n return this.getVideoInputs(devices);\r\n }\r\n\r\n public static async info(): Promise<readonly MediaDeviceInfo[]> {\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n return this.getVideoInputs(devices);\r\n }\r\n\r\n /**\r\n * Zahájí stream videa do videoElement\r\n */\r\n public async stream(): Promise<WebcamFacingMode> {\r\n const stream = await navigator.mediaDevices.getUserMedia(this.getMediaConstraints());\r\n this._streamList.push(stream);\r\n this._webcamElement.srcObject = stream;\r\n if (this._facingMode === \"user\") {\r\n this._webcamElement.style.transform = \"scale(-1,1)\";\r\n }\r\n this._webcamElement.play();\r\n\r\n return this._facingMode;\r\n }\r\n\r\n /**\r\n * Zastaví stream\r\n */\r\n public stop(): void {\r\n this._streamList.forEach(stream => {\r\n stream.getTracks().forEach(track => {\r\n track.stop();\r\n });\r\n });\r\n }\r\n\r\n private _videoStreamToCanvas(): void {\r\n this._context?.drawImage(this._webcamElement, 0, 0, this._webcamElement.videoWidth, this._webcamElement.videoHeight);\r\n }\r\n\r\n private _timerCallback(): void {\r\n if (this._webcamElement.paused || this._webcamElement.ended) return;\r\n\r\n this._videoStreamToCanvas();\r\n\r\n self.setTimeout(() => this._timerCallback(), 0);\r\n }\r\n\r\n private _snapPrepare(): void {\r\n if (this._canvasElement != null) {\r\n this._canvasElement.height = this._webcamElement.scrollHeight;\r\n this._canvasElement.width = this._webcamElement.scrollWidth;\r\n\r\n if (!this._context) this._context = this._canvasElement.getContext(\"2d\");\r\n if (!this._context) throw \"There was an error in creating the context\";\r\n\r\n if (this._facingMode === \"user\") {\r\n this._context.translate(this._canvasElement.width, 0);\r\n this._context.scale(-1, 1);\r\n }\r\n this._context.clearRect(0, 0, this._canvasElement.width, this._canvasElement.height);\r\n this._context.drawImage(this._webcamElement, 0, 0, this._canvasElement.width, this._canvasElement.height);\r\n }\r\n }\r\n\r\n /**\r\n * Pořídí snímek z webkamery\r\n *\r\n * @return Vrátí snímek v Base64 (image/jpeg)\r\n */\r\n public snapToDataUrl(): string {\r\n this._snapPrepare();\r\n if (this._canvasElement) {\r\n return this._canvasElement.toDataURL(\"image/jpeg\");\r\n } else {\r\n throw \"canvas element is missing\";\r\n }\r\n }\r\n\r\n /**\r\n * Pořídí snímek z webkamery\r\n *\r\n * @return Vrátí snímek v blob (image/jpeg)\r\n */\r\n public snapToBlob(): Promise<Blob | null> {\r\n return new Promise((resolve, reject) => {\r\n this._snapPrepare();\r\n if (this._canvasElement) {\r\n this._canvasElement.toBlob((blob) => {\r\n resolve(blob);\r\n }, \"image/jpeg\");\r\n } else {\r\n reject(\"canvas element is missing\");\r\n }\r\n });\r\n }\r\n}\r\n","import React, { FunctionComponent, useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { ButtonThemeVariant } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { WebcamUtils } from \"@multiweb/reactUtils/webcam\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IconButton } from \"../IconButton\";\r\n\r\nexport type AvatarSnapProps = {\r\n /**\r\n * Informace o tom zda spustit stream z kamery\r\n */\r\n enabled: boolean;\r\n /**\r\n * Informace zda zobrazit tlačítko pro pořízení snímku\r\n */\r\n canSnap: boolean;\r\n /**\r\n * Callback pro stisk tlačítka na pořízení snímku\r\n * @param blob Blob formát souboru s pořízeným snímkem\r\n */\r\n snapButtonClick?: (blob: Blob | null) => void;\r\n /**\r\n * Ikona tlačítka pro pořízení snímku\r\n */\r\n snapButtonIcon?: IconCode;\r\n /**\r\n * Varianta tlačítka\r\n */\r\n snapButtonVariant?: ButtonThemeVariant;\r\n};\r\n\r\nconst classNames = bemClassNames(\"avatar-snap\");\r\n\r\nexport const AvatarSnap: FunctionComponent<AvatarSnapProps> = ({\r\n enabled,\r\n canSnap,\r\n snapButtonClick,\r\n snapButtonIcon = IconCode.toolCamera,\r\n snapButtonVariant,\r\n}) => {\r\n const [webcam, setWebcam] = useState<WebcamUtils | null>(null);\r\n const videoRef = useRef<HTMLVideoElement>(null);\r\n\r\n const canvasRef = useCallback(node => {\r\n if (videoRef?.current) {\r\n setWebcam(new WebcamUtils(videoRef.current, \"user\", node));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!webcam) return;\r\n\r\n if (enabled) {\r\n webcam.start();\r\n } else {\r\n webcam.stop();\r\n }\r\n }, [webcam, enabled]);\r\n\r\n const snapButtonCallback = () => {\r\n if (!webcam || !snapButtonClick || !canSnap) {\r\n return;\r\n }\r\n webcam.snapToBlob().then(snapButtonClick);\r\n };\r\n\r\n return (\r\n <div className={classNames()}>\r\n <div className={classNames(\"preview\")}>\r\n {/* eslint-disable-next-line jsx-a11y/media-has-caption */}\r\n <video ref={videoRef}></video>\r\n </div>\r\n <div className={classNames(\"toolbar\")}>\r\n {canSnap && <IconButton variant={snapButtonVariant} iconCode={snapButtonIcon} onClick={snapButtonCallback}></IconButton>}\r\n </div>\r\n <div className={classNames(\"helper\")}>\r\n <canvas ref={canvasRef}></canvas>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./AvatarSnap\";\r\n","/**\r\n * Typ loaderu\r\n */\r\nexport enum LoaderTheme {\r\n default = \"default\",\r\n colored = \"colored\",\r\n light = \"light\",\r\n dark = \"dark\",\r\n}\r\n\r\n/**\r\n * Velikost loaderu\r\n */\r\nexport enum LoaderSize {\r\n default = \"default\",\r\n medium = \"medium\",\r\n large = \"large\",\r\n}\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { LoaderSize, LoaderTheme } from \"./enum\";\r\n\r\nexport type LoaderProps = {\r\n /**\r\n * Velikost loader\r\n */\r\n size?: LoaderSize;\r\n /**\r\n * Barevné téma loaderu\r\n */\r\n theme?: LoaderTheme;\r\n};\r\n\r\nconst classNames = bemClassNames(\"loader-container\");\r\n\r\nexport const Loader: FunctionComponent<LoaderProps> = ({\r\n size = LoaderSize.default,\r\n theme = LoaderTheme.default,\r\n}) => {\r\n return (\r\n <div className={classNames({ size, theme })}>\r\n <div className=\"loader\">\r\n <div className=\"left\">\r\n <div className=\"border\"></div>\r\n </div>\r\n <div className=\"right\">\r\n <div className=\"border\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./enum\";\r\nexport * from \"./Loader\";\r\n","/** Tvar avatara */\r\nexport enum Shape {\r\n /** Čtverec */\r\n square = \"square\",\r\n /** Kruh */\r\n circle = \"circle\",\r\n /** Zaoblený čtverec */\r\n roundedSquare = \"roundedSquare\",\r\n}\r\n\r\nexport enum AvatarSize {\r\n small = \"small\",\r\n medium = \"medium\",\r\n large = \"large\",\r\n}\r\n\r\n/**\r\n * Typ zobrazeného loaderu\r\n */\r\nexport enum LoaderType {\r\n progressBar = \"progressBar\",\r\n spinner = \"spinner\",\r\n}\r\n","import React, { DragEventHandler, FunctionComponent, PropsWithChildren, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames, doNothing } from \"@multiweb/reactUtils\";\r\nimport { WebcamUtils } from \"@multiweb/reactUtils/webcam\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { AvatarSnap } from \"../AvatarSnap\";\r\nimport { ButtonThemeVariant } from \"../ButtonProvider\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { Loader, LoaderSize, LoaderTheme } from \"../Loader\";\r\nimport { AvatarSize, LoaderType, Shape } from \"./enum\";\r\n\r\nexport type AvatarComponentProps = {\r\n /** Zda je přepnut do editačního režimu */\r\n isEditing?: boolean;\r\n /** Tvar avatara */\r\n shape?: Shape;\r\n /** Kompletní cesta k avatarovi */\r\n image: string | null;\r\n /** Velikost avatara */\r\n size?: AvatarSize;\r\n /** Kliknutí na pořízení snímku z kamery */\r\n snapBtnClick?: (blob: Blob | null) => void;\r\n /** Kliknutí na tlačítko nahrání souboru */\r\n uploadFileClick?: (files: readonly File[]) => void;\r\n /** Kliknutí na tlačítko smazání avatara */\r\n deleteImageClick?: () => void;\r\n /** Kliknutí na tlačítko opakované nahrávání avatara */\r\n refreshUploadClick?: (files: readonly File[]) => void;\r\n /** Informace o tom zda probíhá upload a má se zobrazit loader */\r\n isLoading?: boolean;\r\n /** Typ zobrazeného loaderu */\r\n loaderType?: LoaderType;\r\n /** Informace o tom, zda je ve stavu chyby */\r\n isError?: boolean;\r\n /** Pokud probíhá loading, tak zde je uváděn stav v procentech */\r\n loadingProgress?: number;\r\n /** Text tlačítka pro změnu avatara */\r\n changeButtonText?: string;\r\n /** Text tlačítka pro smazání avatara */\r\n deleteButtonText?: string;\r\n /** Text tlačítka pro pořízení snímku z webcamery */\r\n snapButtonText?: string;\r\n /** Text tlačítka pro opětovné nahrání */\r\n refreshButtonText?: string;\r\n /** Text popisující chybu, která nastala */\r\n errorText?: string;\r\n /** Text zobrazen při nahrávání */\r\n loadingText?: string;\r\n /** Pokud je avatar prázdný, umožňuje zobrazit iniciály */\r\n userInitials?: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"avatar-component\");\r\n\r\nconst SubElementImage = ({ children }: PropsWithChildren<unknown>) => <div className={classNames(\"image\")}>{children}</div>;\r\nconst SubElementButtons = ({ children }: PropsWithChildren<unknown>) => <div className={classNames(\"buttons\")}>{children}</div>;\r\n\r\nexport const AvatarComponent: FunctionComponent<AvatarComponentProps> = ({\r\n isEditing = false,\r\n shape = Shape.circle,\r\n image,\r\n size = AvatarSize.medium,\r\n snapBtnClick,\r\n uploadFileClick,\r\n deleteImageClick,\r\n refreshUploadClick,\r\n isLoading = false,\r\n loaderType = LoaderType.spinner,\r\n deleteButtonText,\r\n snapButtonText,\r\n changeButtonText,\r\n refreshButtonText,\r\n userInitials = \"\",\r\n loadingProgress = 0,\r\n isError = false,\r\n errorText = \"\",\r\n loadingText = \"\",\r\n}) => {\r\n const [isSnapping, setIsSnapping] = useState(false);\r\n const [isWebcamAvailable, setIsWebcamAvailable] = useState(false);\r\n const fileInputRef = useRef<HTMLInputElement>(null);\r\n const isEmpty = !image;\r\n\r\n const selectFileCallback = () => {\r\n fileInputRef?.current?.click();\r\n };\r\n\r\n const onChangeCallback = (isRefreshButton: boolean = false) => {\r\n if (fileInputRef.current) {\r\n const files = Array.from(fileInputRef.current?.files ?? []);\r\n\r\n isRefreshButton ? refreshUploadClick?.(files) : uploadFileClick?.(files);\r\n }\r\n };\r\n\r\n const cancelUploadCallback = () => {\r\n // @ts-ignore // pokud klikneme na křížek vynulujeme fileedit\r\n if (fileInputRef?.current) fileInputRef.current.value = null;\r\n deleteImageClick?.();\r\n };\r\n\r\n const dropEventCallback: DragEventHandler = (e) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if (e.dataTransfer.items) {\r\n uploadFileClick?.(\r\n Array.from(e.dataTransfer.items)\r\n .filter(item => item.kind === \"file\" && item.getAsFile() != null)\r\n .map(item => item.getAsFile()!),\r\n );\r\n } else {\r\n uploadFileClick?.(Array.from(e.dataTransfer.files));\r\n }\r\n };\r\n\r\n const dragStop: DragEventHandler = (e) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n };\r\n\r\n const onRefreshCallback = () => onChangeCallback(true);\r\n const onUploadCallback = () => onChangeCallback(false);\r\n\r\n const startCaptureCallback = () => setIsSnapping(true);\r\n const stopCaptureCallback = () => setIsSnapping(false);\r\n\r\n const snapBtnCallback = (data: Blob | null) => {\r\n setIsSnapping(false);\r\n snapBtnClick?.(data);\r\n };\r\n\r\n enum ButtonQAVariant {\r\n captureStart = \"capture-start-button\",\r\n captureStop = \"capture-stop-button\",\r\n imageSelect = \"image-select-button\",\r\n imageDelete = \"image-delete-button\",\r\n }\r\n\r\n useEffect(() => {\r\n WebcamUtils.info().then((info) => {\r\n setIsWebcamAvailable(info.length !== 0);\r\n });\r\n }, []);\r\n\r\n return (\r\n <div onDrop={dropEventCallback} onDragOver={dragStop} onDragEnter={dragStop} className={classNames({ shape, size, empty: isEmpty, editing: isEditing, loading: isLoading })}>\r\n {isLoading || isError\r\n ? (\r\n <SubElementImage>\r\n <span className={classNames(\"text\")}>{isError ? errorText : loadingText}</span>\r\n </SubElementImage>\r\n ) :\r\n (<SubElementImage>\r\n {isWebcamAvailable && isSnapping && <AvatarSnap canSnap={true} snapButtonVariant={ButtonThemeVariant.avatar} enabled={isSnapping} snapButtonClick={snapBtnCallback} />}\r\n {!isSnapping && image && <img src={image} alt=\"avatar\" />}\r\n {!isSnapping && isEmpty && <div className={classNames(\"user-initials\")}>{userInitials}</div>}\r\n </SubElementImage>\r\n )}\r\n {isLoading && !isError && (\r\n <SubElementButtons>\r\n {loaderType === LoaderType.progressBar && <div className={classNames(\"loading\")}><div className={classNames(\"progress-bar\")} style={{ width: `${loadingProgress}%` }} /></div>}\r\n {loaderType === LoaderType.spinner && <Loader theme={LoaderTheme.colored} size={LoaderSize.medium} />}\r\n </SubElementButtons>\r\n )}\r\n\r\n {!isLoading && !isError && isEditing && (\r\n <SubElementButtons>\r\n <input type=\"file\" accept=\"image/*\" onChange={onUploadCallback} ref={fileInputRef} />\r\n {isWebcamAvailable && isSnapping && <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.uiCross} onClick={stopCaptureCallback} disabled={isLoading} qa={ButtonQAVariant.captureStop} />}\r\n {isWebcamAvailable && !isSnapping && <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.toolCameraFilled} onClick={startCaptureCallback} disabled={isLoading} title={snapButtonText} qa={ButtonQAVariant.captureStart} />}\r\n\r\n {!isSnapping && <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.docImageFilled} onClick={selectFileCallback ?? doNothing} disabled={isLoading} title={changeButtonText} qa={ButtonQAVariant.imageSelect} />}\r\n {image && <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.editorialTrashFilled} onClick={deleteImageClick ?? doNothing} disabled={isLoading} title={deleteButtonText} qa={ButtonQAVariant.imageDelete} />}\r\n </SubElementButtons>\r\n )}\r\n {isError && (\r\n <SubElementButtons>\r\n <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.uiRefreshFilled} onClick={onRefreshCallback} title={refreshButtonText} />\r\n <IconButton variant={ButtonThemeVariant.avatar} iconCode={IconCode.uiCrossFilled} onClick={cancelUploadCallback} title={deleteButtonText} />\r\n </SubElementButtons>\r\n )}\r\n </div>\r\n );\r\n};\r\n","export * from \"./AvatarComponent\";\r\nexport * from \"./enum\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\n\r\nexport type BackgroundColorWrapperProps = {\r\n /** Obsah pro vložení do komponenty. */\r\n children: ReactNode;\r\n /** Název barvy pozadí typu FlagColor. */\r\n color: FlagColor;\r\n};\r\n\r\nconst classNames = bemClassNames(\"background-color-wrapper-component\");\r\n\r\n/** Komponenta, která na základě obdržené barvy pozadí obarví obsah, který je do ní vložen. */\r\nexport const BackgroundColorWrapper: FunctionComponent<BackgroundColorWrapperProps> = ({ children, color }) => {\r\n return (\r\n <div className={classNames()} data-color={color}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","export * from \"./BackgroundColorWrapper\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nconst className = bemClassNames(\"badge-component\");\r\n\r\nexport enum BadgeVariant {\r\n /** Základní zobrazení */\r\n default = \"default\",\r\n /** Zobrazení při použití BackgroundAttr, kdy se načítá barva pozadí z nadřazeného HTML elementu. */\r\n backgroundAttr = \"backgroundAttr\",\r\n}\r\nexport type BadgeProps = {\r\n children: ReactNode;\r\n /** Varianta zobrazení odznaku */\r\n variant?: BadgeVariant;\r\n /** Barva pozadí */\r\n backgroundColor?: string;\r\n /**Barva textu */\r\n textColor?: string;\r\n};\r\n\r\n/** Komponenta, která zobrazí badge/tag pro atribut */\r\nexport const Badge: FunctionComponent<BadgeProps> = ({\r\n children,\r\n variant = \"default\",\r\n backgroundColor,\r\n textColor,\r\n}) => (\r\n <div className={className({ variant })} style={{ backgroundColor, color: textColor }} >\r\n {children}\r\n </div >\r\n);\r\n","export * from \"./Badge\";\r\n","import { FunctionComponent, ReactElement, useState } from \"react\";\r\n\r\nexport type BooleanSwitcherChildrenProps = {\r\n /** Callback nastaví vnitřní stav na pravdu */\r\n turnOn: () => void;\r\n /** Callback nastaví vnitřní stav na nepravdu */\r\n turnOff: () => void;\r\n /** Hodnota vnitřního stavu */\r\n value: boolean;\r\n};\r\n\r\nexport type BooleanSwitcherProps = {\r\n /** Potomci, kteří mají k dispozici vnitřní stav a callbacks pro jeho nastavní */\r\n children: (props: BooleanSwitcherChildrenProps) => ReactElement;\r\n};\r\n\r\n/** Komponenta slouží pro zachování, aktualizaci a poskytnutí logické hodnoty technikou `render props` */\r\nexport const BooleanSwitcher: FunctionComponent<BooleanSwitcherProps> = ({ children }) => {\r\n const [value, setValue] = useState<boolean>(false);\r\n\r\n const turnOn = () => setValue(true);\r\n\r\n const turnOff = () => setValue(false);\r\n\r\n return children({ turnOn, turnOff, value });\r\n};\r\n","export * from \"./BooleanSwitcher\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, doNothing } from \"@multiweb/reactUtils\";\r\nimport { TextAlign } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { Cursor } from \"../../../../Global/Base/Enums\";\r\nimport { ButtonBackgroundColor, ButtonProvider } from \"../ButtonProvider\";\r\nimport { Text, WhiteSpace } from \"../Text\";\r\nimport { NoEditFakeComponentProps } from \"../types\";\r\n\r\nexport type ButtonFakeComponentProps = Pick<NoEditFakeComponentProps, \"value\" | \"title\">;\r\n\r\nconst classNames = bemClassNames(\"button-edit-fake-component\");\r\nexport const ButtonFakeComponent: FunctionComponent<ButtonFakeComponentProps> = ({ value, title }) => (\r\n <div className={classNames()}>\r\n <ButtonProvider\r\n disabled={true}\r\n onClick={doNothing}\r\n backgroundColor={ButtonBackgroundColor.transparent}\r\n theme={ComponentTheme.default}\r\n cursor={Cursor.default}\r\n textAlign={TextAlign.start}\r\n width=\"100%\"\r\n {...{ title }}\r\n >\r\n\r\n <Text\r\n isTextSelectable={false}\r\n whiteSpace={WhiteSpace.nowrap}\r\n ellipsis={true}\r\n disabled={true}\r\n {...{ value }}\r\n />\r\n </ButtonProvider>\r\n </div>\r\n);\r\n","export * from \"./ButtonFakeComponent\";\r\n","/**\r\n * Lokalizační klíč pro text \"Více hodnot\" používaný ve fake komponentách.\r\n */\r\nexport const FAKE_COMPONENT_VALUE_LOC_KEY = \"GUI-715304\";\r\n/**\r\n * Lokalizační klíč pro text \"Multieditace nepodporována\" používaný ve fake komponentách.\r\n */\r\nexport const FAKE_COMPONENT_NOEDIT_VALUE_LOC_KEY = \"GUI-721248\";\r\n/**\r\n * Ano\r\n*/\r\nexport const YES_LOC_KEY = \"GUI-722098\";\r\n/**\r\n * Ne\r\n*/\r\nexport const NO_LOC_KEY = \"GUI-722099\";\r\n/**\r\n * Opravdu chcete zavřít průvodce?\r\n*/\r\nexport const CLOSE_WIZARD_LOC_KEY = \"GUI-763622\";\r\n/**\r\n * Zavřít\r\n*/\r\nexport const CLOSE_LOC_KEY = \"GUI-4447\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ButtonFakeComponent, ButtonFakeComponentProps } from \"../ButtonFakeComponent\";\r\nimport { FAKE_COMPONENT_NOEDIT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\ntype StateProps = Pick<ButtonFakeComponentProps, \"value\" | \"title\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FakeContainerProps, IAppState> = (state) => ({\r\n value: getPrimaryText(state, FAKE_COMPONENT_NOEDIT_VALUE_LOC_KEY) ?? \"\",\r\n title: getSecondaryText(state, FAKE_COMPONENT_NOEDIT_VALUE_LOC_KEY) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče pro získání hodnoty zobrazované v InputFakeComponent a také pro vysvětlivku (title).\r\n */\r\nexport const ButtonFake = connect(mapStateToProps)(ButtonFakeComponent);\r\n","export * from \"./ButtonFake\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { CaptionComponent, CaptionComponentProps } from \"../CaptionComponent\";\r\n\r\nexport type CaptionProps = Pick<CaptionComponentProps, \"required\" | \"htmlFor\" | \"alwaysShowCaption\"> & {\r\n /** Lokalizační klíč pro caption. */\r\n locKey: string;\r\n};\r\n\r\ntype StateProps = Pick<CaptionComponentProps, \"text\" | \"title\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, CaptionProps, IAppState> = (state, { locKey }) => ({\r\n text: getPrimaryText(state, locKey),\r\n title: getSecondaryText(state, locKey),\r\n});\r\n\r\nexport const Caption = connect(mapStateToProps)(CaptionComponent);\r\n","export * from \"./Caption\";\r\n","import React, { FunctionComponent, useMemo } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { CaptionComponent } from \"../CaptionComponent\";\r\nimport { CaptionAlignment } from \"../CheckBoxComponent\";\r\nimport { FlexDirection, Layout, SpacingSize } from \"../Layout\";\r\nimport { FakeComponentProps } from \"../types\";\r\n\r\nconst { generateElementID } = bridge;\r\n\r\nexport type CheckBoxFakeComponentProps = {\r\n /** Příznak, zda je pole povinné */\r\n required?: boolean;\r\n /** Umístění popisu */\r\n alignment?: CaptionAlignment;\r\n} & Omit<FakeComponentProps, \"ariaLabelledBy\">;\r\n\r\nconst classNames = bemClassNames(\"check-box-fake-component\");\r\n\r\nexport const CheckBoxFakeComponent: FunctionComponent<CheckBoxFakeComponentProps> = ({\r\n label,\r\n alignment = CaptionAlignment.rightJustify,\r\n required,\r\n title,\r\n disabled,\r\n onClick,\r\n onKeyDown,\r\n valueTitle,\r\n isEditing,\r\n postponedRequired,\r\n recommended,\r\n}) => {\r\n const isLeftAligned = alignment === CaptionAlignment.leftJustify;\r\n const labelId = useMemo(() => `${generateElementID()}-label`, []);\r\n const isDisabled = disabled || !isEditing;\r\n const isRequired = required && !isDisabled;\r\n const isPostponedRequired = postponedRequired && !required && !isDisabled;\r\n const isRecommended = recommended && !postponedRequired && !isRequired && !isDisabled;\r\n return (\r\n <div className={classNames()} {...{ onClick, onKeyDown }} >\r\n <Layout flexDirection={isLeftAligned ? FlexDirection.rowReverse : FlexDirection.row} >\r\n <div\r\n className={classNames(\"question-mark-box\", { disabled: isDisabled, required: isRequired, postponedRequired: isPostponedRequired, recommended: isRecommended })}\r\n title={valueTitle}\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}\r\n role={Role.checkBox}\r\n aria-checked=\"mixed\"\r\n aria-disabled={disabled}\r\n aria-labelledby={labelId}\r\n />\r\n <Layout\r\n spacingSizeLeft={isLeftAligned ? undefined : SpacingSize.xxs}\r\n spacingSizeRight={isLeftAligned ? SpacingSize.xxs : undefined}\r\n >\r\n <CaptionComponent\r\n id={labelId}\r\n text={label}\r\n {...{ required, title }}\r\n />\r\n </Layout>\r\n </Layout>\r\n </div>\r\n );\r\n};\r\n","export * from \"./CheckBoxFakeComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { CheckBoxFakeComponent, CheckBoxFakeComponentProps } from \"../CheckBoxFakeComponent\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\nexport type CheckBoxFakeProps = FakeContainerProps & Pick<CheckBoxFakeComponentProps, \"alignment\" | \"required\">;\r\n\r\ntype StateProps = Pick<CheckBoxFakeComponentProps, \"label\" | \"title\" | \"valueTitle\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, CheckBoxFakeProps, IAppState> = (state, { locKey }) => ({\r\n label: getPrimaryText(state, locKey) ?? \"\",\r\n title: getSecondaryText(state, locKey) ?? \"\",\r\n valueTitle: getSecondaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče názvu a vysvětlivky pro CheckBoxFakeComponent.\r\n */\r\nexport const CheckBoxFake: ComponentType<CheckBoxFakeProps> = connect(mapStateToProps)(CheckBoxFakeComponent);\r\n","export * from \"./CheckBoxFake\";\r\n","import { AnyAction, combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ParametricReducer, ReduxCompatibleValue } from \"@multiweb/types/react\";\r\nimport { INVALID_CONTROL_VALUE_LOC_KEY } from \"./locKeys\";\r\nimport {\r\n ControlReduxRawValue,\r\n ControlsInstance,\r\n ControlsInstances,\r\n ControlsValueInstantValidationMode,\r\n ErrorsReducerExtraParams,\r\n IClearControlsValueAction,\r\n IClearValidationErrorsAction,\r\n IControlsMappedAction,\r\n IControlsState,\r\n IControlsValueChangedAction,\r\n IInitControlsValueAction,\r\n ISetValidationDescriptionsAction,\r\n IValidateAction,\r\n} from \"./types\";\r\nimport {\r\n areErrorsEqual,\r\n ExplicitValidation,\r\n IExplicitValidationError,\r\n IExplicitValidationFnDescription,\r\n IInstantValidationFnDescription,\r\n InstantValidation,\r\n} from \"./validation\";\r\n\r\n/**\r\n * <p> Proměnná je použita jako inicializace stavu pro redux.\r\n * <p> Pozn. Při vytvoření libovolného reduceru je jeho výchozí stav nastaven na `undefined` a proto chceme námi přiřazenou výchozí hodnotu odlišit. Pro označení prázdné hodnoty je použit typ `null`.\r\n * <p> Pokud bychom si i přes to chtěli vynutit výchozí hodnotu stavu o typu `undefined`, museli bychom v reduceru transformovat stav na cokoli jiného mimo `undefined`, tzn. např. na `null`.\r\n * V opačném případě bychom obdrželi chybovou hlášku.\r\n */\r\nconst INITIAL_CONTROLS_VALUE: ControlReduxRawValue = null;\r\nconst INITIAL_CONTROLS_COUNTER_VALUE = 0;\r\n\r\nconst rawValue: ParametricReducer<ReduxCompatibleValue, ReadonlyArray<IInstantValidationFnDescription>> = (state = INITIAL_CONTROLS_VALUE, action, instantValidationFnDescriptions) => {\r\n if (action instanceof IInitControlsValueAction) {\r\n return action.payload.rawValue;\r\n } else if (action instanceof IControlsValueChangedAction) {\r\n const { rawValue, validationMode } = action.payload;\r\n switch (validationMode) {\r\n case ControlsValueInstantValidationMode.initialValue:\r\n case ControlsValueInstantValidationMode.allowInvalid:\r\n return rawValue;\r\n case ControlsValueInstantValidationMode.userEdit: {\r\n const allowNewValue = InstantValidation.isValueValid(rawValue, instantValidationFnDescriptions);\r\n return allowNewValue ? (rawValue ?? null) : state;\r\n }\r\n default:\r\n throw new Error(`[controls] Unexpected validationMode: ${validationMode}`);\r\n }\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst initialRawValue: Reducer<ReduxCompatibleValue> = (state = INITIAL_CONTROLS_VALUE, action) => {\r\n if (action instanceof IControlsValueChangedAction) {\r\n const { rawValue, validationMode } = action.payload;\r\n switch (validationMode) {\r\n case ControlsValueInstantValidationMode.initialValue:\r\n return rawValue;\r\n case ControlsValueInstantValidationMode.userEdit:\r\n case ControlsValueInstantValidationMode.allowInvalid:\r\n return state;\r\n default:\r\n throw new Error(`[controls] Unexpected validationMode: ${validationMode}`);\r\n }\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst counter: Reducer<number> = (state = INITIAL_CONTROLS_COUNTER_VALUE, action) => {\r\n if (action instanceof IInitControlsValueAction) {\r\n return ++state;\r\n } else if (action instanceof IClearControlsValueAction) {\r\n return --state;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst instantValidationFnDescriptions: Reducer<ReadonlyArray<IInstantValidationFnDescription>> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof IInitControlsValueAction) {\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof ISetValidationDescriptionsAction) {\r\n return action.payload.instantValidationFnDescriptions;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst explicitValidationFnDescriptions: Reducer<ReadonlyArray<IExplicitValidationFnDescription>> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof IInitControlsValueAction) {\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof ISetValidationDescriptionsAction) {\r\n return action.payload.explicitValidationFnDescriptions;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst errors: ParametricReducer<ReadonlyArray<IExplicitValidationError>, ErrorsReducerExtraParams> = (\r\n state = EMPTY_ARRAY as ReadonlyArray<IExplicitValidationError>,\r\n action: AnyAction,\r\n {\r\n rawValue,\r\n initialRawValue,\r\n instantValidationFnDescriptions,\r\n explicitValidationFnDescriptions,\r\n },\r\n) => {\r\n if (action instanceof IValidateAction) {\r\n if (rawValue === initialRawValue) {\r\n // Pokud hodnotu uživatel nezměnil, pak ji chceme považovat za platnou, i kdyby platná nebyla.\r\n // Usecase:\r\n // - Uživatel načte data do formuláře.\r\n // - Z nějakého důvodu jsou ale již data ze serveru neplatná. (Např. proto, že definice formuláře se změnila.)\r\n // - Uživatel změní nějaké attributy, ale zrovna ten s neplatnou hodnotou ze serveru nezmění.\r\n // - Je žádoucí, aby to šlo uživateli uložit.\r\n return EMPTY_ARRAY;\r\n } else {\r\n const newExplicitErrors = ExplicitValidation.validateValue(rawValue, explicitValidationFnDescriptions);\r\n\r\n // Díky ControlsValueInstantValidationMode.initialValue může být `value` nevalidní i s ohledem na InstantValidation.\r\n const isInstantValidationOK = InstantValidation.isValueValid(rawValue, instantValidationFnDescriptions);\r\n const newErrors = isInstantValidationOK ? newExplicitErrors : [ExplicitValidation.createValidationError(INVALID_CONTROL_VALUE_LOC_KEY), ...newExplicitErrors];\r\n\r\n return areErrorsEqual(state, newErrors) ? state : newErrors;\r\n }\r\n } else if (action instanceof IClearValidationErrorsAction) {\r\n return EMPTY_ARRAY;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst controlsInstanceReducer: Reducer<ControlsInstance> = (state: ControlsInstance | undefined = EMPTY_OBJECT as ControlsInstance, action) => {\r\n const newInstantValidationFnDescriptions = instantValidationFnDescriptions(state.instantValidationFnDescriptions, action);\r\n const newExplicitValidationFnDescriptions = explicitValidationFnDescriptions(state.explicitValidationFnDescriptions, action);\r\n const newCounter = counter(state.counter, action);\r\n\r\n // Při opětovném inicializování se hodnota controlu již nebude měnit.\r\n // Změnu hodnoty je nutné provést pomocí akce {@link IControlsValueChangedAction}.\r\n const newRawValue = action instanceof IInitControlsValueAction && newCounter > 1\r\n ? state?.rawValue\r\n : rawValue(state.rawValue, action, newInstantValidationFnDescriptions);\r\n const newInitialRawValue = initialRawValue(state.initialRawValue, action);\r\n\r\n const errorsExtraParams = {\r\n rawValue: newRawValue,\r\n initialRawValue: newInitialRawValue,\r\n instantValidationFnDescriptions: newInstantValidationFnDescriptions,\r\n explicitValidationFnDescriptions: newExplicitValidationFnDescriptions,\r\n };\r\n\r\n return produce(state, (draft: any) => {\r\n draft.counter = newCounter;\r\n draft.instantValidationFnDescriptions = newInstantValidationFnDescriptions;\r\n draft.explicitValidationFnDescriptions = newExplicitValidationFnDescriptions;\r\n draft.rawValue = newRawValue;\r\n draft.initialRawValue = newInitialRawValue;\r\n draft.errors = errors(state.errors, action, errorsExtraParams);\r\n });\r\n};\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action instanceof IControlsMappedAction ? action.meta.controlsKey : undefined;\r\n};\r\n\r\nconst instanceControlsValueMapReducer = createInstanceMapReducer(controlsInstanceReducer, instanceKeyResolver);\r\n\r\nconst controlsInstances: Reducer<ControlsInstances> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IClearControlsValueAction) {\r\n return produce(state, (draft: any) => {\r\n const controlsInstance = controlsInstanceReducer(draft[action.meta.controlsKey], action);\r\n draft[action.meta.controlsKey] = controlsInstance;\r\n\r\n if (controlsInstance.counter <= 0) {\r\n delete draft[action.meta.controlsKey];\r\n }\r\n });\r\n } else {\r\n return instanceControlsValueMapReducer(state, action);\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<IControlsState> = combineReducers({\r\n controlsInstances,\r\n});\r\n","import {\r\n CLEAR_CONTROLS_VALUE,\r\n CLEAR_VALIDATION_ERRORS,\r\n CONTROLS_VALUE_CHANGED,\r\n INIT_CONTROLS_VALUE,\r\n SET_VALIDATION_DESCRIPTIONS,\r\n VALIDATE,\r\n} from \"./constants\";\r\nimport {\r\n ControlReduxRawValue,\r\n ControlsKey,\r\n ControlsValueInstantValidationMode,\r\n IClearControlsValueAction,\r\n IClearValidationErrorsAction,\r\n IControlsValueChangedAction,\r\n IInitControlsValueAction,\r\n ISetValidationDescriptionsAction,\r\n IValidateAction,\r\n} from \"./types\";\r\nimport { IExplicitValidationFnDescription, IInstantValidationFnDescription } from \"./validation\";\r\n\r\n/**\r\n * Inicializuje pole se zadaným klíčem a hodnotou.\r\n * (Validační popisy (instantní i explicitní) pro daný klíč nastaví na prázdné pole.)\r\n *\r\n * -\r\n *\r\n * Pozn. K září 2020 se vždy volá s `value = null`.\r\n * - Akce tak slouží pouze k vytvoření záznamu v Reduxu s daným `controlsKey`.\r\n * - Obsah tohoto záznamu zatím není znám. Musí být donastaven později. Např. přes {@link createControlsValueChangedAction}.\r\n *\r\n * @param controlsKey klíč kontrolu sloužící k jeho jednoznačné identifikaci.\r\n * @param rawValue počáteční hodnota pole. (Vždy se 1:1 uloží do Reduxu. Žádné validace se neprovádí.)\r\n */\r\nexport const createInitControlsValueAction = (\r\n controlsKey: ControlsKey,\r\n rawValue: ControlReduxRawValue,\r\n): IInitControlsValueAction => ({\r\n type: INIT_CONTROLS_VALUE,\r\n payload: {\r\n rawValue,\r\n },\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví popisy validací do existující instance `controlsKey`.\r\n *\r\n * @param controlsKey klíč kontrolu sloužící k jeho jednoznačné identifikaci.\r\n * @param instantValidationFnDescriptions\r\n * @param explicitValidationFnDescriptions\r\n */\r\nexport const createSetValidationDescriptionsAction = (\r\n controlsKey: ControlsKey,\r\n instantValidationFnDescriptions: ReadonlyArray<IInstantValidationFnDescription>,\r\n explicitValidationFnDescriptions: ReadonlyArray<IExplicitValidationFnDescription>,\r\n): ISetValidationDescriptionsAction => ({\r\n type: SET_VALIDATION_DESCRIPTIONS,\r\n payload: {\r\n instantValidationFnDescriptions,\r\n explicitValidationFnDescriptions,\r\n },\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce signalizující změnu hodnoty pole.\r\n *\r\n * @param controlsKey klíč pole sloužící k jeho jednoznačné identifikaci.\r\n * @param rawValue nová hodnota pole.\r\n * @param validationMode Viz {@link ControlsValueInstantValidationMode}. Výchozí hodnota je `userEdit`.\r\n */\r\nexport const createControlsValueChangedAction = (\r\n controlsKey: ControlsKey,\r\n rawValue: ControlReduxRawValue,\r\n validationMode: ControlsValueInstantValidationMode = ControlsValueInstantValidationMode.userEdit,\r\n): IControlsValueChangedAction => ({\r\n type: CONTROLS_VALUE_CHANGED,\r\n payload: {\r\n rawValue,\r\n validationMode,\r\n },\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní data pro pole se zadaným klíčem.\r\n *\r\n * @param controlsKey Klíč kontrolu k jeho jednoznačné identifikaci.\r\n */\r\nexport const createClearControlsValueAction = (\r\n controlsKey: ControlsKey,\r\n): IClearControlsValueAction => ({\r\n type: CLEAR_CONTROLS_VALUE,\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n\r\n/**\r\n * Spustí validaci pro pole se zadaným klíčem.\r\n *\r\n * @param controlsKey Klíč kontrolu k jeho jednoznačné identifikaci.\r\n */\r\nexport const createValidateAction = (\r\n controlsKey: ControlsKey,\r\n): IValidateAction => ({\r\n type: VALIDATE,\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n\r\n/**\r\n * Vyprázdní validační chyby ve stavu pro pole se zadaným klíčem.\r\n *\r\n * @param controlsKey Klíč kontrolu k jeho jednoznačné identifikaci.\r\n */\r\nexport const createClearValidationErrorsAction = (\r\n controlsKey: ControlsKey,\r\n): IClearValidationErrorsAction => ({\r\n type: CLEAR_VALIDATION_ERRORS,\r\n meta: {\r\n controlsKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY, invariant } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ControlReduxRawValue, ControlsInstance, ControlsKey, IControlsState, MergeValidationErrorsParams } from \"./types\";\r\nimport { areLocalizedErrorsEqual, IExplicitValidationError, ILocalizedExplicitValidationError, isLocalizedErrorEqual } from \"./validation\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící modulu `controls`.\r\n * @param state\r\n */\r\nconst getModel: Selector<IAppState, IControlsState> = (state) => state.controls;\r\n\r\n/**\r\n * Získá podstrom stavu patřící konkrétnímu poli (komponentě).\r\n * @param state\r\n * @param controlsKey Klíč pole sloužící k jeho jednoznačné identifikaci.\r\n * @throws Vyhodí chybu v případě, že pole se zadaným klíčem neexistuje.\r\n */\r\nexport const getControlsInstance: Selector<IAppState, ControlsInstance, ControlsKey> = (state, controlsKey) => {\r\n const controlsInstance = getModel(state).controlsInstances[controlsKey];\r\n if (!controlsInstance) {\r\n throw new Error(`[Controls] - Controls value with key ${controlsKey} is not initialized.`);\r\n }\r\n return controlsInstance;\r\n};\r\n\r\n/**\r\n * Získá vnitřní hodnotu pole.\r\n * @param state\r\n * @param controlsKey Klíč pole sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const getRawValue: Selector<IAppState, ControlReduxRawValue | undefined, ControlsKey> = (state, controlsKey) => getControlsInstance(state, controlsKey).rawValue ?? undefined;\r\n\r\n/**\r\n * Získá výchozí hodnotu pole.\r\n * @param state\r\n * @param controlsKey Klíč pole sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const getInitialRawValue: Selector<IAppState, ControlReduxRawValue | undefined, ControlsKey> = (state, controlsKey) => getControlsInstance(state, controlsKey).initialRawValue ?? undefined;\r\n\r\n/**\r\n * Získá validační chyby evidované ve stavu k vnitřní hodnotě pole.\r\n * @param state\r\n * @param controlsKey Klíč pole sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const getErrors: Selector<IAppState, ReadonlyArray<IExplicitValidationError>, ControlsKey> = (state, controlsKey) => getControlsInstance(state, controlsKey).errors;\r\n\r\n/**\r\n * Převádí instanci {@link IExplicitValidationError} na {@link ILocalizedExplicitValidationError}.\r\n * @param state Redux stav. Z něj se vezmou lokalizované hlášky.\r\n * @param error Chyba k převodu.\r\n */\r\nexport const getLocalizedValidationError = (state: IAppState, error: IExplicitValidationError): ILocalizedExplicitValidationError => {\r\n if (error.message !== undefined) {\r\n invariant(!error.locKey, `[controls] locKey must not be defined when message is defined: ${error.message}`);\r\n invariant(!error.locArgs, `[controls] locArgs must not be defined when message is defined: ${error.message}`);\r\n return ({\r\n message: error.message,\r\n });\r\n } else {\r\n invariant(!!error.locKey, \"[controls] locKey must be defined when message is not\");\r\n const message = getPrimaryText(state, error.locKey!, error.locArgs) ?? \"\";\r\n return ({\r\n message,\r\n });\r\n }\r\n};\r\n\r\n/**\r\n * Sloučí validační chyby z reduxu s `externalErrors` do jediného seznamu a lokalizuje je. Duplicity zahazuje.\r\n * @returns **Vždy novou instanci**!\r\n * @see createStableGetMergedValidationErrors\r\n */\r\nconst getMergedValidationErrors: Selector<IAppState, ReadonlyArray<ILocalizedExplicitValidationError>, MergeValidationErrorsParams> = (\r\n state, { dataKey, externalErrors },\r\n) => {\r\n const componentErrors = getErrors(state, dataKey);\r\n\r\n const result: ILocalizedExplicitValidationError[] = [];\r\n const isErrorUnique = ((localizedError: ILocalizedExplicitValidationError) => result.every((resultError) => !isLocalizedErrorEqual(localizedError, resultError)));\r\n\r\n [...componentErrors, ...externalErrors].forEach((error) => {\r\n const localizedError = getLocalizedValidationError(state, error);\r\n if (isErrorUnique(localizedError)) {\r\n result.push(localizedError);\r\n }\r\n });\r\n\r\n return result;\r\n};\r\n\r\n/**\r\n * Vytvoří a vrátí selektor, který:\r\n * - Sloučí validační chyby z reduxu s `externalErrors` do jediného seznamu a lokalizuje je. Duplicity zahazuje.\r\n * - Pamatuje si výsledek z posledního volání. Pokud aktuální volání vrací obsahově totéž, pak vrátí výsledek z posledního volání - kvůli zachování stejné instance.\r\n *\r\n * <br>Pozn. Selektor se volá pokaždé, když je nutné zvalidovat stav. Např. v případě komponenty {@link Edit} se může volat i více než 20x a toto chování je známé.\r\n * Více informací je možné nalézt v rámci tasku {@link https://tfs/Jadro/Jadro%20.NET/_workitems/edit/30219}.\r\n */\r\nexport const createStableGetMergedValidationErrors = (): Selector<IAppState, ReadonlyArray<ILocalizedExplicitValidationError>, MergeValidationErrorsParams> => {\r\n let previousMergedErrors: ReadonlyArray<ILocalizedExplicitValidationError> = EMPTY_ARRAY;\r\n\r\n return (state, params) => {\r\n const mergedErrors = getMergedValidationErrors(state, params);\r\n if (areLocalizedErrorsEqual(previousMergedErrors, mergedErrors)) {\r\n return previousMergedErrors;\r\n } else {\r\n previousMergedErrors = mergedErrors;\r\n return mergedErrors;\r\n }\r\n };\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { IControlsState } from \"./types\";\r\n\r\nexport {\r\n createClearControlsValueAction,\r\n createClearValidationErrorsAction,\r\n createControlsValueChangedAction,\r\n createInitControlsValueAction,\r\n createSetValidationDescriptionsAction,\r\n createValidateAction,\r\n} from \"./actions\";\r\nexport { REQUIRED_INVALID_STATE_LOC_KEY } from \"./locKeys\";\r\nexport {\r\n createStableGetMergedValidationErrors,\r\n getErrors,\r\n getInitialRawValue,\r\n getRawValue,\r\n} from \"./selectors\";\r\nexport {\r\n ControlReduxRawValue,\r\n ControlsInstance,\r\n ControlsKey,\r\n ControlsValueInstantValidationMode,\r\n IControlsState,\r\n} from \"./types\";\r\nexport {\r\n areLocalizedErrorsEqual,\r\n ExplicitValidation,\r\n IExplicitValidationError,\r\n IExplicitValidationFnDescription,\r\n IInstantValidationFnDescription,\r\n ILocalizedExplicitValidationError,\r\n InstantValidation,\r\n} from \"./validation\";\r\n\r\nexport const controlsModule: ApplicationStatefulModule<typeof NAME, Reducer<IControlsState>> = {\r\n NAME,\r\n reducer,\r\n};\r\n","import { Fragment, ReactNode } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ControlsKey, createControlsValueChangedAction, getRawValue } from \"@multiweb/reactControls\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ControlReduxRawValue } from \"../../controls/types\";\r\n\r\ntype ControlValueWrapperChildrenProps = {\r\n rawValue: ControlReduxRawValue;\r\n onChange: (rawValue: ControlReduxRawValue) => void;\r\n};\r\n\r\nexport type ControlValueWrapperProps = {\r\n dataKey: ControlsKey;\r\n /** Control, který je předmětem napojení hodnoty na redux. */\r\n children: (props: ControlValueWrapperChildrenProps) => ReactNode;\r\n};\r\n\r\ntype StateProps = {\r\n rawValue: ControlReduxRawValue;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ControlValueWrapperProps, IAppState> = (state, { dataKey }) => ({\r\n rawValue: getRawValue(state, dataKey),\r\n});\r\n\r\ntype DispatchProps = {\r\n onChange: (rawValue: ControlReduxRawValue) => void;\r\n};\r\n\r\nconst mapDisptachToProps: MapDispatchToProps<DispatchProps, ControlValueWrapperProps> = (dispatch, { dataKey }) => ({\r\n onChange: (rawValue) => dispatch(createControlsValueChangedAction(dataKey, rawValue)),\r\n});\r\n\r\nexport type ControlValueWrapperComponentProps = {\r\n rawValue: ControlReduxRawValue;\r\n onChange: (rawValue: ControlReduxRawValue) => void;\r\n /** Control, který je předmětem napojení hodnoty na redux. */\r\n children: (props: ControlValueWrapperChildrenProps) => ReactNode;\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, ControlValueWrapperProps, {children: ReactNode}> = ({ rawValue }, { onChange }, { children }) => ({\r\n children: children({ rawValue, onChange }),\r\n});\r\n\r\n/**\r\n * Obálka nad control napojující jeho hodnotu na redux.\r\n */\r\nexport const ControlValueWrapper = connect(mapStateToProps, mapDisptachToProps, mergeProps)(Fragment);\r\n","export { ControlValueWrapper } from \"./ControlValueWrapper\";\r\n","import React, { ComponentType, Fragment, FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { BackgroundColor, EditableControlComponentProps, FormComponentProps } from \"../types\";\r\n\r\n/** Vstupní props specifických komponent */\r\nexport type FormComponentPropsWrapperProps = Readonly<{\r\n children: (props: FormComponentProps) => ReactNode;\r\n}> & Pick<EditableControlComponentProps, \"postponedRequired\" | \"required\" | \"recommended\" | \"encrypted\" | \"enabledVisual\">;\r\n\r\n/** Obalovací komponenta převádí props specifických formulářových komponent na obecné props technikou `render props`.\r\n * Komponenta podporuje převod na následující specifické props:\r\n * - `disabled`\r\n * - `backgroundColor`\r\n * - `readOnly`\r\n * pozn. detailnější popis použití jednotlivých specifických props lze nalézt v {@link FormComponentProps}.\r\n */\r\nexport const FormComponentPropsWrapper: FunctionComponent<FormComponentPropsWrapperProps> = ({\r\n children,\r\n postponedRequired,\r\n required,\r\n recommended,\r\n enabledVisual,\r\n}) => {\r\n let backgroundColor = undefined;\r\n if (recommended) {\r\n backgroundColor = BackgroundColor.blue;\r\n } else if (required) {\r\n backgroundColor = BackgroundColor.yellow;\r\n } else if (postponedRequired) {\r\n backgroundColor = BackgroundColor.orange;\r\n }\r\n return (\r\n <Fragment>\r\n {children({\r\n disabled: !enabledVisual,\r\n backgroundColor,\r\n readOnly: !enabledVisual,\r\n })}\r\n </Fragment>\r\n );\r\n};\r\n\r\n/**\r\n * HOC (higher-order component) převodníku props.\r\n * Lze ji použít například spolu s `connect`em z balíčku `react-redux`.\r\n * @param FormComponent Obecná formulářová komponenta (např. EditComponent).\r\n */\r\nexport const withFormComponentPropsWrapper = (\r\n FormComponent: ComponentType<FormComponentProps>,\r\n): FunctionComponent<Omit<FormComponentPropsWrapperProps, \"children\">> => (props) => (\r\n <FormComponentPropsWrapper {...props}>\r\n {(convertedProps) => (\r\n <FormComponent {...convertedProps} />\r\n )}\r\n </FormComponentPropsWrapper>\r\n);\r\n","export { FormComponentPropsWrapper } from \"./FormComponentPropsWrapper\";\r\n","import React, { Fragment, FunctionComponent, useEffect } from \"react\";\r\n\r\nexport type LocalizationLoaderComponentProps = {\r\n /** Funkce, jejíž volání zajistí načtení lokalizací */\r\n loadLocalizations: () => void;\r\n /** Příznak, zda jsou lokalizace načtené */\r\n localizationsLoaded: boolean;\r\n};\r\n\r\n/**\r\n * Obalující komponenta, která zajistí načtení lokalizací, pokud ještě nejsou načtené. To se provádí typicky při _namountování_ komponenty.\r\n * Komponenta vykresluje pouze zadané potomky, sama o sobě žádné elementy nepřidává.\r\n */\r\nexport const LocalizationLoaderComponent: FunctionComponent<LocalizationLoaderComponentProps> = ({\r\n loadLocalizations,\r\n localizationsLoaded,\r\n children,\r\n}) => {\r\n useEffect(() => {\r\n if (!localizationsLoaded) {\r\n loadLocalizations();\r\n }\r\n }, [loadLocalizations, localizationsLoaded]);\r\n return (\r\n <Fragment>\r\n {children}\r\n </Fragment>\r\n );\r\n};\r\n","import { PropsWithChildren } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createLoadLocalizationKeysAction, DEFAULT_FETCHING_KEY, hasLocalization } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LocalizationLoaderComponent, LocalizationLoaderComponentProps } from \"./LocalizationLoaderComponent\";\r\n\r\nexport type LocalizationLoaderProps = Readonly<PropsWithChildren<{\r\n /** Lokalizační klíč, který se má načíst */\r\n locKey: string;\r\n /**\r\n * Klíč pro fetching modul, pod kterým bude indikováno načítání.\r\n * Pokud není zadaný, použije se výchozí hodnota sdílená pro všechny LocalizationLoader a LocalizationMultiLoader komponenty.\r\n */\r\n fetchingKey?: string;\r\n}>>;\r\n\r\ntype StateProps = Pick<LocalizationLoaderComponentProps, \"localizationsLoaded\">;\r\ntype DispatchProps = Pick<LocalizationLoaderComponentProps, \"loadLocalizations\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LocalizationLoaderProps, IAppState> = (state, { locKey }) => ({\r\n localizationsLoaded: hasLocalization(state, locKey),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, LocalizationLoaderProps> = (dispatch, { locKey, fetchingKey = DEFAULT_FETCHING_KEY }) => ({\r\n loadLocalizations: () => dispatch(createLoadLocalizationKeysAction([locKey], fetchingKey, true)),\r\n});\r\n\r\n/**\r\n * Zajišťuje načtení lokalizačního klíče, pokud ještě není načtený. Slouží pro případ jednoho klíče, pro načítání více klíčů je možné\r\n * použít {@link LocalizationMultiLoader}.\r\n */\r\nexport const LocalizationLoader = connect(mapStateToProps, mapDispatchToProps)(LocalizationLoaderComponent);\r\n","import { PropsWithChildren } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createLoadLocalizationKeysAction, DEFAULT_FETCHING_KEY, hasLocalization } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LocalizationLoaderComponent, LocalizationLoaderComponentProps } from \"./LocalizationLoaderComponent\";\r\n\r\nexport type LocalizationMultiLoaderProps = PropsWithChildren<Readonly<{\r\n /** Pole lokalizačních klíčů pro načtení */\r\n locKeys: readonly string[];\r\n /**\r\n * Klíč pro fetching modul, pod kterým bude indikováno načítání.\r\n * Pokud není zadaný, použije se výchozí hodnota sdílená pro všechny LocalizationLoader a LocalizationMultiLoader komponenty.\r\n */\r\n fetchingKey?: string;\r\n}>>;\r\n\r\ntype StateProps = Pick<LocalizationLoaderComponentProps, \"localizationsLoaded\">;\r\ntype DispatchProps = Pick<LocalizationLoaderComponentProps, \"loadLocalizations\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LocalizationMultiLoaderProps, IAppState> = (state, { locKeys }) => ({\r\n localizationsLoaded: !locKeys.some((locKey) => !hasLocalization(state, locKey)),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, LocalizationMultiLoaderProps> = (dispatch, { locKeys, fetchingKey = DEFAULT_FETCHING_KEY }) => ({\r\n loadLocalizations: () => dispatch(createLoadLocalizationKeysAction(locKeys, fetchingKey, true)),\r\n});\r\n\r\n/**\r\n * Zajišťuje načtení lokalizačních klíčů, pokud alespoň jeden z nich ještě není načtený. Slouží pro případ více klíčů, pro načítání jednoho klíče je možné\r\n * použít {@link LocalizationLoader}.\r\n */\r\nexport const LocalizationMultiLoader = connect(mapStateToProps, mapDispatchToProps)(LocalizationLoaderComponent);\r\n","export * from \"./LocalizationLoader\";\r\nexport * from \"./LocalizationMultiLoader\";\r\n","import React, { Fragment, FunctionComponent, ReactElement } from \"react\";\r\n\r\nexport type LocalizationProviderComponentChildrenProps = {\r\n /** Lokalizovaný primární text */\r\n readonly text: string;\r\n /** Lokalizovaný sekundární text (popisek) */\r\n readonly title: string;\r\n};\r\n\r\nexport type LocalizationProviderComponentProps = {\r\n /** Funkce jako potomek. Pokud není zadaná, komponenta zobrazí text. Pokud je zadaná, vytvoří obsah s možností využít text i popisek. */\r\n readonly children?: (props: LocalizationProviderComponentChildrenProps) => ReactElement;\r\n} & LocalizationProviderComponentChildrenProps;\r\n\r\nexport const LocalizationProviderComponent: FunctionComponent<LocalizationProviderComponentProps> = ({ text, title, children }) => (\r\n children ? (\r\n children({ text, title })\r\n ) : (\r\n <Fragment>{ text }</Fragment>\r\n )\r\n);\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LocalizationProviderComponent, LocalizationProviderComponentChildrenProps } from \"./LocalizationProviderComponent\";\r\n\r\nexport type LocalizationProviderProps = {\r\n /** Lokalizační klíč pro získání překladů */\r\n readonly locKey: string;\r\n /** Výchozí hodnota pro primární text, která se použije, pokud není klíč načtený. Výchozí hodnota je nastavena na \"\". */\r\n readonly defaultText?: string;\r\n /** Výchozí hodnota pro sekundární text (popisek), která se použije, pokud není klíč načtený. Výchozí hodnota je nastavena na \"\". */\r\n readonly defaultTitle?: string;\r\n /** Parametry pro dosazení do překladu primárního textu daného klíče, pokud je parametrizovaný. */\r\n readonly textParams?: string[];\r\n /** Parametry pro dosazení do překladu sekundárního textu (popisku) daného klíče, pokud je parametrizovaný. */\r\n readonly titleParams?: string[];\r\n};\r\n\r\ntype StateProps = LocalizationProviderComponentChildrenProps;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LocalizationProviderProps, IAppState> = (state, {\r\n locKey,\r\n defaultText = \"\",\r\n defaultTitle = \"\",\r\n textParams,\r\n titleParams,\r\n}) => ({\r\n text: getPrimaryText(state, locKey, textParams) ?? defaultText,\r\n title: getSecondaryText(state, locKey, titleParams) ?? defaultTitle,\r\n});\r\n\r\nexport const LocalizationProvider = connect(mapStateToProps)(LocalizationProviderComponent);\r\n","export * from \"./LocalizationProvider\";\r\n","import { createRef, FunctionComponent, ReactElement, RefObject, useEffect } from \"react\";\r\n\r\nimport { FakeComponentProps } from \"@multiweb/reactComponents\";\r\nimport { MultiEditProps } from \"../types\";\r\n\r\nexport type MultiEditWrapperChildrenProps = {\r\n /** Reference na reálnou komponentu. Příklad použití je v komponentě Edit.tsx. */\r\n ref: RefObject<any>;\r\n};\r\n\r\nexport type MultiEditWrapperFakeComponentRendererProps = Pick<FakeComponentProps, \"disabled\">;\r\n\r\nexport type MultiEditWrapperProps = {\r\n /** Příznak, zda je pole zakázáno */\r\n disabled?: boolean;\r\n /** Příznak, zda je pole v módu editace */\r\n isEditing?: boolean;\r\n /** Funkce pro vykreslení fake komponenty. Využívá techniku render props pro možnost předání dodatečných props. */\r\n fakeComponentRenderer: (props: MultiEditWrapperFakeComponentRendererProps) => ReactElement;\r\n /** Příznak, zda proběhla interakce s fake komponentou v rámci jednoho cyklu hromadné editace. */\r\n touched: boolean;\r\n /** Reálná komponenta, která se vykresluje, když není aktivní multi edit. */\r\n children: (props: MultiEditWrapperChildrenProps) => ReactElement;\r\n} & MultiEditProps;\r\n\r\n/**\r\n * Pomocná komponenta pro přepínání fake komponent pro hromadnou editaci.\r\n *\r\n * Pokud je multieditace aktivní, je zobrazena fake komponenta skrze `fakeComponentRenderer`.\r\n * Pro spuštění editace je nejprve nutné kliknout na fake komponentu, která na ni nastaví focus.\r\n * Při následném stisknutí klávesy `Backspace` nebo `Delete` se fake komponenta nahradí obalovanou komponentou a režim editace je aktivní.\r\n */\r\nexport const MultiEditWrapper: FunctionComponent<MultiEditWrapperProps> = ({\r\n multiEditActive = false,\r\n disabled = false,\r\n isEditing = false,\r\n fakeComponentRenderer,\r\n touched,\r\n children,\r\n}) => {\r\n const ref = createRef<HTMLElement>();\r\n\r\n useEffect(() => {\r\n if (touched && ref.current) {\r\n ref.current.focus();\r\n }\r\n // TODO: 37450 - Reference se mění při každé změně hodnoty. Pokud se hodnota nezmění na touch, tak NumEdit neumožní\r\n // přepnutí na jiný edit. Pokud referenci z dependencies odstraníme, vše funguje jak má.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [touched]);\r\n\r\n const showFakeComponent = multiEditActive && (!touched || !isEditing);\r\n\r\n return showFakeComponent ? (\r\n fakeComponentRenderer({ disabled })\r\n ) : (\r\n children({ ref })\r\n );\r\n};\r\n","export * from \"./MultiEditWrapper\";\r\n","import { IExplicitValidationFnDescription } from \"@multiweb/reactControls\";\r\n\r\n/**\r\n * Vrací lokalizační klíče uřčené pro načtení v rámci {@link ValidationErrorWrapper}.\r\n * - To jsou všechny lokalizační klíče se zadaných `explicitValidationFnDescriptions`.\r\n * @param explicitValidationFnDescriptions\r\n */\r\nexport const getLocKeysToLoad = (explicitValidationFnDescriptions: ReadonlyArray<IExplicitValidationFnDescription>) => (\r\n explicitValidationFnDescriptions.map(({ locKey }) => locKey)\r\n);\r\n","import { withNaming } from \"@bem-react/classname\";\r\n\r\n/**\r\n * Funkce z knihovny @bem-react/classname přizpůsobená projektové konvenci zápisu css tříd.\r\n * @internal\r\n */\r\nexport const bemClassNames = withNaming({ n: \"\", e: \"__\", m: \"--\", v: \"-\" });\r\n","import React, { FunctionComponent, ReactElement, RefObject } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport { bemClassNames, invariant, usePopupFlip } from \"@multiweb/reactUtils\";\r\nimport { PopupPosition } from \"@multiweb/reactUtils/hooks/usePopupFlipHook\";\r\n\r\nexport type PopupComponentProps = {\r\n /** Reference na spouštěč popupu */\r\n triggerElement: RefObject<any>;\r\n /** Reference na obsah popupu */\r\n contextElement?: RefObject<any>;\r\n /** Prioritní pozice zobrazení popupu vůči triggerElement */\r\n requestedPosition?: PopupPosition;\r\n /** Příznak, zda je popup otevřený */\r\n opened?: boolean;\r\n /** Element popup nabídky */\r\n children: ReactElement<any>;\r\n /** Funkce volaná po přesunutí kurzoru mimo Popup */\r\n onMouseLeave?: () => void;\r\n /** Funkce volaná po přesunutí kurzoru na Popup */\r\n onMouseEnter?: () => void;\r\n /** Id elementu pro vykreslení modálu */\r\n rootId: string;\r\n /** Výška obsahu popupu */\r\n height?: number;\r\n /** Šířka obsahu popupu */\r\n width?: number;\r\n};\r\n\r\nconst className = bemClassNames(\"popup\");\r\n\r\n/** Obecná komponenta popupu */\r\nexport const PopupComponent: FunctionComponent<PopupComponentProps> = ({\r\n triggerElement,\r\n contextElement,\r\n requestedPosition,\r\n opened = false,\r\n children,\r\n onMouseLeave,\r\n onMouseEnter,\r\n rootId,\r\n height,\r\n width,\r\n}) => {\r\n const popupRoot = document.getElementById(rootId);\r\n const { topOffset, leftOffset } = usePopupFlip({ triggerRef: triggerElement, popupRef: contextElement, positionPriority: requestedPosition, opened, height, width });\r\n\r\n invariant(popupRoot, `[ModalWindow] Cannot render modal window because element with id ${rootId} is undefined.`);\r\n\r\n /**\r\n * Handler pro událost onMouseLeave\r\n * pokud je popupu předaná funkce onMouseLeave, zavolá ji\r\n */\r\n const handleMouseLeave = () => {\r\n if (onMouseLeave)\r\n onMouseLeave();\r\n };\r\n\r\n /**\r\n * Handler pro událost onMouseEnter\r\n * pokud je popupu předaná funkce onMouseEnter, zavolá ji\r\n */\r\n const handleMouseEnter = () => {\r\n if (onMouseEnter)\r\n onMouseEnter();\r\n };\r\n\r\n return (createPortal(\r\n opened && <div className={className()} style={{ top: topOffset, left: leftOffset }} onMouseLeave={handleMouseLeave} onMouseEnter={handleMouseEnter}>\r\n {children}\r\n </div>, popupRoot)\r\n );\r\n};\r\n","export * from \"./PopupComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { MODAL_ROOT_ID } from \"UI/UI.React/constants\";\r\nimport { PopupComponent, PopupComponentProps } from \"../PopupComponent\";\r\n\r\nexport type PopupProps = Omit<PopupComponentProps, \"rootId\">;\r\n\r\n/** Komponenta popupu */\r\nexport const Popup: FunctionComponent<PopupProps> = ({\r\n triggerElement,\r\n contextElement,\r\n requestedPosition,\r\n opened = false,\r\n children,\r\n onMouseLeave,\r\n onMouseEnter,\r\n height,\r\n width,\r\n}) => {\r\n return (<PopupComponent { ...{ triggerElement, contextElement, opened, children, onMouseLeave, onMouseEnter, requestedPosition, height, width } } rootId={MODAL_ROOT_ID} />);\r\n};\r\n","export * from \"./Popup\";\r\n","import React, { Fragment, FunctionComponent, ReactElement, useCallback, useRef, useState } from \"react\";\r\n\r\nimport { ILocalizedExplicitValidationError } from \"@multiweb/reactControls\";\r\nimport { useMouseLeaveWatcher } from \"@multiweb/reactUtils\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils/bemClassNames\";\r\nimport { PopupPosition } from \"@multiweb/reactUtils/hooks/usePopupFlipHook\";\r\nimport { Popup } from \"../Popup\";\r\n\r\nexport type ValidationErrorTooltipProps = {\r\n /** Unikátní identifikátor tooltipu. */\r\n id?: string;\r\n /** Pole validačních chyb. */\r\n errors: ReadonlyArray<ILocalizedExplicitValidationError>;\r\n /** Komponenta, které se tooltip týká. */\r\n children: ReactElement;\r\n};\r\n\r\nconst classNames = bemClassNames(\"validation-error-tooltip\");\r\nconst CLOSING_DELAY = 0;\r\n\r\n/**\r\n * Obálka nad control zajišťující zobrazení tooltipu s chybovými zprávami, proč neprošla validace.\r\n * Tj. zobrazuje jak dané control a navíc - při najetí myší - daný tooltip.\r\n * (Pokud žádné chyby nejsou, pak žádný tooltip nezobrazí.)\r\n *\r\n * *Implementační pozn.*: Inspirováno z `UI/UI/UI/Controls/EditableControl.ts`.\r\n * Tooltip je zobrazován za pomocí `PopupMenu` z původní/nereactí aplikace.\r\n */\r\nexport const ValidationErrorTooltip: FunctionComponent<ValidationErrorTooltipProps> = ({\r\n id,\r\n errors,\r\n children,\r\n}) => {\r\n const triggerRef = useRef<HTMLDivElement>(null);\r\n const contextRef = useRef<HTMLDivElement>(null);\r\n\r\n const [ isPopupOpen, setIsPopupOpen ] = useState(false);\r\n\r\n const onMouseOver = useCallback(() => {\r\n setIsPopupOpen(true);\r\n }, []);\r\n\r\n const onMouseLeave = useCallback(() => {\r\n setIsPopupOpen(false);\r\n }, []);\r\n\r\n useMouseLeaveWatcher(triggerRef, onMouseLeave, CLOSING_DELAY);\r\n\r\n return (\r\n <Fragment>\r\n {errors.length > 0 &&\r\n <Popup\r\n triggerElement={triggerRef}\r\n contextElement={contextRef}\r\n onMouseLeave={onMouseLeave}\r\n opened={isPopupOpen}\r\n requestedPosition={PopupPosition.rightBottom}\r\n >\r\n <div ref={contextRef} id={id} className={classNames(\"popup\")}>\r\n {errors.map((error) => <div key={error.message}>{error.message}</div>)}\r\n </div>\r\n </Popup>}\r\n <div ref={triggerRef} onMouseOver={onMouseOver} onFocus={onMouseOver} className={classNames()}>\r\n {children}\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n","export { ValidationErrorTooltip, ValidationErrorTooltipProps } from \"./ValidationErrorTooltip\";\r\n","import React, { FunctionComponent, ReactElement, useEffect } from \"react\";\r\n\r\nimport { ILocalizedExplicitValidationError } from \"@multiweb/reactControls\";\r\nimport { useEffectWithInitialDependencies } from \"@multiweb/reactUtils\";\r\nimport { LocalizationMultiLoader } from \"../LocalizationLoader\";\r\nimport { ValidationErrorTooltip } from \"../ValidationErrorTooltip\";\r\n\r\nexport type ValidationErrorWrapperComponentProps = {\r\n /** Unikátní identifikátor tooltipu. */\r\n tooltipId?: string;\r\n /**\r\n * Validační chyby. Zobrazí se v tooltipu při najetí myši. (Pokud není zadána `requiredInvalidError`.)\r\n *\r\n * Při jejich změně dojde k provolání `onValidityChanged`.\r\n */\r\n validationErrors: ReadonlyArray<ILocalizedExplicitValidationError>;\r\n /**\r\n * Hláška, že pole je povinné, ale není vyplněno (platnou hodnotou).\r\n * - Pokud zadána, pak se v tooltipu - místo `errors` - zobrazí pouze tato hláška.\r\n * - Pozn. Toto není validační chyba! Proto musí být evidováno samostatně. A nesmí to ovlivnit volání `onValidityChanged`.\r\n */\r\n requiredInvalidError?: ILocalizedExplicitValidationError;\r\n /** Závislosti pro `onRegister`. Při změně závislostí je nutné `onRegister` provolat znovu. */\r\n registerDependencies: ReadonlyArray<any>;\r\n /** Lokalizační klíče, k nimž bude načtena lokalizace. */\r\n locKeysToLoad: ReadonlyArray<string>;\r\n /** Callback pro zaregistrování validací do reduxu. */\r\n onRegister: () => void;\r\n /** Callback volaný při změně `validationErrors`. */\r\n onValidityChanged: () => void;\r\n /** Validované control. */\r\n children: ReactElement;\r\n};\r\n\r\n/**\r\n * Pomocná komponenta pro `ValidationErrorWrapper`. Zajišťuje:\r\n * - Provolání zadané registrace, když je potřeba.\r\n * - Provolání zadané `onValidityChanged` při změně validačních chyb.\r\n * - Načtení lokalizací potřebných pro `ValidationErrorWrapper`. (Zejména pro validační chyby zobrazované v tooltipu.)\r\n * - Deleguje zobrazení tooltipu na {@link ValidationErrorTooltip}.\r\n */\r\nexport const ValidationErrorWrapperComponent: FunctionComponent<ValidationErrorWrapperComponentProps> = ({\r\n tooltipId,\r\n validationErrors,\r\n requiredInvalidError,\r\n registerDependencies,\r\n locKeysToLoad,\r\n onRegister,\r\n onValidityChanged,\r\n children,\r\n}) => {\r\n useEffect(() => {\r\n onRegister();\r\n // Záměrně se nevrací odregistrační funkce. Tento wrapper není zodpovědný za vytváření/mazání dataKey instance v Reduxu.\r\n // Pouze za registraci validací do existující instance.\r\n // (A není důvod při unmountu/updatu validace odregistrovávat.)\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, registerDependencies);\r\n\r\n // Pozn. onValidityChanged se vyvolá při každé změně instance validationErrors.\r\n // - I když obsahově se validationErrors nezměnila.\r\n // - Je však důležité volat validationErrors jen, když se nezměnila obsahově.\r\n // - Proto je nutné zvenku zajistit, aby se instance validationErrors změnila jen, pokud se změnil její obsah.\r\n // - Např. použitím selektoru createStableGetMergedValidationErrors z modulu `controls`, který toto zajišťuje.\r\n useEffectWithInitialDependencies(onValidityChanged, [validationErrors], [validationErrors]);\r\n\r\n const tooltipErrors = requiredInvalidError ? [requiredInvalidError] : validationErrors;\r\n return (\r\n <LocalizationMultiLoader locKeys={locKeysToLoad}>\r\n <ValidationErrorTooltip id={tooltipId} errors={tooltipErrors}>\r\n {children}\r\n </ValidationErrorTooltip>\r\n </LocalizationMultiLoader>\r\n );\r\n};\r\n","import { ReactElement } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport {\r\n ControlReduxRawValue,\r\n ControlsKey,\r\n createSetValidationDescriptionsAction,\r\n createStableGetMergedValidationErrors,\r\n createValidateAction,\r\n ExplicitValidation,\r\n getRawValue,\r\n IExplicitValidationError,\r\n IExplicitValidationFnDescription,\r\n IInstantValidationFnDescription,\r\n ILocalizedExplicitValidationError,\r\n REQUIRED_INVALID_STATE_LOC_KEY,\r\n} from \"@multiweb/reactControls\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { OnValidationCallback, OnValidityChanged } from \"../types\";\r\nimport { getLocKeysToLoad } from \"./utils\";\r\nimport { ValidationErrorWrapperComponent, ValidationErrorWrapperComponentProps } from \"./ValidationErrorWrapperComponent\";\r\n\r\nexport type ValidationErrorWrapperChildrenProps = {\r\n invalid: boolean;\r\n /** Spustí validaci. */\r\n validate: (callback?: OnValidationCallback) => void;\r\n};\r\n\r\nexport type ValidationErrorWrapperProps = {\r\n /** Unikátní identifikátor tooltipu. */\r\n tooltipId?: string;\r\n /** Identifikace **existující** controls instance v Reduxu. */\r\n dataKey: ControlsKey;\r\n /** Popisy určené k zaregistrovaní do Reduxu - k `dataKey`. */\r\n instantValidationFnDescriptions: ReadonlyArray<IInstantValidationFnDescription>;\r\n /** Popisy určené k zaregistrovaní do Reduxu - k `dataKey`. */\r\n explicitValidationFnDescriptions: ReadonlyArray<IExplicitValidationFnDescription>;\r\n /** Externí validační chyby. Tj. důvody nevalidnosti, které neřeší dané control. (Control je pouze dostane zvenku k zobrazení.) */\r\n externalErrors: ReadonlyArray<IExplicitValidationError>;\r\n /**\r\n * True, pokud se má v tooltipu zobrazit hláška, že hodnota je povinná, ale není vyplněna (platnou) hodnotou.\r\n * - V takovém případě se ignorují validační chyby (`errors` z Reduxu a `externalErrors`) - a v tooltipu se zobrazí pouze tato jediná hláška.\r\n * - Pozn. Toto není validační chyba! Proto musí být evidováno jako samostatný příznak. A nesmí to ovlivnit volání `onValidityChanged`.\r\n */\r\n isInRequiredInvalidState: boolean;\r\n /** Voláno pouze, pokud se výsledek validace změnil. */\r\n onValidityChanged: OnValidityChanged;\r\n /** Validované control. */\r\n children: (props: ValidationErrorWrapperChildrenProps) => ReactElement;\r\n};\r\n\r\ntype StateProps = {\r\n validationErrors: ReadonlyArray<ILocalizedExplicitValidationError>;\r\n requiredInvalidError?: ILocalizedExplicitValidationError;\r\n rawValue: ControlReduxRawValue;\r\n};\r\n\r\ntype DispatchProps = {\r\n /** Callback pro zaregistrování validací do reduxu. */\r\n onRegister: () => void;\r\n /**\r\n * Spouští validaci. Pouze se předá dál do `children`. `children` (např. `Edit`) si to pak mohou napojit např. na `onBlur`.\r\n * @param callback Callback je provolán vždy před spuštěním validace.\r\n */\r\n validate: (callback?: OnValidationCallback) => void;\r\n};\r\n\r\nconst createMapStateToProps = (): MapStateToProps<StateProps, ValidationErrorWrapperProps, IAppState> => {\r\n const getMergedValidationErrors = createStableGetMergedValidationErrors();\r\n return (state, { dataKey, externalErrors, isInRequiredInvalidState }) => ({\r\n validationErrors: getMergedValidationErrors(state, { dataKey, externalErrors }),\r\n requiredInvalidError: (isInRequiredInvalidState ? ExplicitValidation.createLocalizedValidationError(getPrimaryText(state, REQUIRED_INVALID_STATE_LOC_KEY) ?? \"\") : undefined),\r\n rawValue: getRawValue(state, dataKey),\r\n });\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, ValidationErrorWrapperProps> = (\r\n dispatch,\r\n { dataKey, instantValidationFnDescriptions, explicitValidationFnDescriptions },\r\n) => ({\r\n validate: (callback?: OnValidationCallback) => {\r\n callback && callback();\r\n dispatch(createValidateAction(dataKey));\r\n },\r\n onRegister: () => dispatch(createSetValidationDescriptionsAction(dataKey, instantValidationFnDescriptions, explicitValidationFnDescriptions)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, ValidationErrorWrapperProps, ValidationErrorWrapperComponentProps> = (\r\n { validationErrors, requiredInvalidError },\r\n { onRegister, validate },\r\n {\r\n dataKey,\r\n tooltipId,\r\n instantValidationFnDescriptions,\r\n explicitValidationFnDescriptions,\r\n onValidityChanged,\r\n children,\r\n },\r\n) => ({\r\n tooltipId,\r\n validationErrors,\r\n requiredInvalidError,\r\n registerDependencies: [dataKey, instantValidationFnDescriptions, explicitValidationFnDescriptions],\r\n locKeysToLoad: [...getLocKeysToLoad(explicitValidationFnDescriptions), REQUIRED_INVALID_STATE_LOC_KEY],\r\n onRegister,\r\n onValidityChanged,\r\n children: children({\r\n invalid: (validationErrors.length > 0 || !!requiredInvalidError),\r\n validate,\r\n }),\r\n});\r\n\r\n/**\r\n * Obálka pro validace controlu zajišťuje:\r\n * - Napojení na redux modulu `controls`, který uchovává stav validací.\r\n * - Zaregistrování validačních popisů.\r\n * - Funkce `validate` pro provedení (explicitní) validace nad daným control. Poskytnuta do control, které ji může napojit např. na `onBlur`.\r\n * - Tooltip s chybovými hláškami z validace - po najetí myši.\r\n */\r\nexport const ValidationErrorWrapper = connect(createMapStateToProps, mapDispatchToProps, mergeProps)(ValidationErrorWrapperComponent);\r\n","export { ValidationErrorWrapper, ValidationErrorWrapperChildrenProps, ValidationErrorWrapperProps } from \"./ValidationErrorWrapper\";\r\n","import React, { forwardRef, useCallback, useEffect } from \"react\";\r\n\r\nimport { combineRefs, EMPTY_ARRAY, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { CaptionAlignment, CheckBoxComponent } from \"../CheckBoxComponent\";\r\nimport { CheckBoxFake } from \"../CheckBoxFake\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport { LocalizationLoader } from \"../LocalizationLoader\";\r\nimport { LocalizationProvider } from \"../LocalizationProvider\";\r\nimport { MultiEditWrapper, MultiEditWrapperFakeComponentRendererProps } from \"../MultiEditWrapper\";\r\nimport { CheckBoxControlDataAttributesProps, DataAttributesProps, EditableControlComponentProps } from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\n\r\nexport type CheckBoxProps = Omit<EditableControlComponentProps, \"ref\">\r\n & Pick<DataAttributesProps, \"displayFormat\" | \"captionLocKey\">\r\n & Pick<CheckBoxControlDataAttributesProps, \"alignment\">;\r\n\r\n/** Možné formáty zobrazení CheckBoxu */\r\nexport enum CheckBoxDisplayFormat {\r\n twoState = \"2s\",\r\n threeState = \"3s\",\r\n}\r\n\r\nexport const CheckBox: ForwardRefType<HTMLInputElement, CheckBoxProps> = forwardRef<HTMLInputElement, CheckBoxProps>(({\r\n id,\r\n dataKey,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n displayFormat,\r\n onChange: onChangeExternal,\r\n onValidityChanged,\r\n onValidationCallback,\r\n onMount,\r\n onBlur,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onKeyDown,\r\n onClick,\r\n triggerValueChange,\r\n captionLocKey,\r\n alignment = CaptionAlignment.rightJustify,\r\n locKey,\r\n encrypted,\r\n multiEditActive,\r\n touched,\r\n enabledVisual,\r\n recommended,\r\n required,\r\n postponedRequired,\r\n isEditing,\r\n}, ref) => {\r\n useEffect(() => {\r\n onMount && onMount({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n getControlValue: (rawValue) => rawValue,\r\n convertControlValueToRawValue: (controlValue) => controlValue,\r\n });\r\n }, [onMount]);\r\n\r\n const fakeComponentRenderer = useCallback(({ disabled }: MultiEditWrapperFakeComponentRendererProps) => (\r\n <CheckBoxFake {...{ disabled, isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired }} />\r\n ), [isEditing, locKey, onClick, onKeyDown, required, recommended, postponedRequired]);\r\n\r\n // Výchozí formát checkboxu je trojstavový, pokud není explicitně nastaven jako dvoustavový.\r\n // Dvoustavový checkbox se nastaví i v případě, že je checkbox required.\r\n const hasThreeStates = (displayFormat?.toLowerCase()) !== CheckBoxDisplayFormat.twoState && !required;\r\n\r\n const checkBox = (label?: string, title?: string) => (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => (\r\n <ValidationErrorWrapper\r\n {...{ dataKey, externalErrors, isInRequiredInvalidState, onValidityChanged }}\r\n instantValidationFnDescriptions={EMPTY_ARRAY}\r\n explicitValidationFnDescriptions={EMPTY_ARRAY}\r\n >\r\n {({ invalid, validate }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }} >\r\n {({ disabled, backgroundColor, readOnly }) => (\r\n <MultiEditWrapper {...{ multiEditActive, disabled, isEditing, touched, fakeComponentRenderer }}>\r\n {({ ref: checkBoxRef }) => {\r\n const joinedRefs = combineRefs<HTMLInputElement>(checkBoxRef, ref);\r\n\r\n return (\r\n <CheckBoxComponent\r\n {...{\r\n id,\r\n encrypted,\r\n invalid,\r\n onClick,\r\n onBlur,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onKeyDown,\r\n backgroundColor,\r\n readOnly,\r\n title,\r\n disabled,\r\n hasThreeStates,\r\n label,\r\n alignment,\r\n required,\r\n }}\r\n value={rawValue}\r\n ref={joinedRefs}\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}\r\n showFalseAsCrossed={true}\r\n forceDefaultValue={rawValue === undefined && !hasThreeStates && isEditing && touched && multiEditActive}\r\n onChange={(value) => {\r\n onChange(value);\r\n onChangeExternal && onChangeExternal(value);\r\n validate(onValidationCallback);\r\n triggerValueChange && triggerValueChange();\r\n }}\r\n />\r\n );\r\n }}\r\n </MultiEditWrapper>\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ValidationErrorWrapper>\r\n )}\r\n </ControlValueWrapper>\r\n );\r\n\r\n return captionLocKey ? (\r\n <LocalizationLoader locKey={captionLocKey}>\r\n <LocalizationProvider locKey={captionLocKey}>\r\n {({ text, title }) => checkBox(text, title)}\r\n </LocalizationProvider>\r\n </LocalizationLoader>\r\n ) : (\r\n checkBox()\r\n );\r\n});\r\n","export { CheckBox, CheckBoxProps } from \"./CheckBox\";\r\n","import React, { FunctionComponent, PropsWithChildren, useState } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { Icon } from \"../Icon\";\r\nimport { FlexDirection, JustifyContent, Layout, SpacingSize } from \"../Layout\";\r\nimport { FontWeight, Text } from \"../Text\";\r\nimport { AlignItems } from \"../types\";\r\n\r\nexport type CollapsibleProps = PropsWithChildren<{\r\n /** příznak umožňující externí minimalizaci/expanzi collapsible komponenty */\r\n handleExpansionExternally?: boolean;\r\n /** zobrazí název pro rozevírací seznam */\r\n captionText: string;\r\n /** číselná hodnota (px), nastavující výšku viditelnosti seznamu při sbalení – 0 značí úplně sbaleno */\r\n collapsedHeight?: number;\r\n /** defaultní hodnota, nastavující, zda je seznam otevřen */\r\n defaultOpened?: boolean;\r\n /** callback volaný při sbalení/rozbalení seznamu */\r\n onExpansionChange?: (isExpanded: boolean) => void;\r\n} & QAProps>;\r\n\r\nconst classNames = bemClassNames(\"collapsible-component\");\r\n\r\nconst collapsibleBtnDataQA = createQA(\"collapsible-component-btn\");\r\nconst collapsibleContentDataQA = createQA(\"collapsible-component-content\");\r\n\r\nexport const Collapsible: FunctionComponent<CollapsibleProps> = ({\r\n handleExpansionExternally = false,\r\n captionText,\r\n children,\r\n collapsedHeight = 0,\r\n defaultOpened = false,\r\n onExpansionChange,\r\n qa,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(defaultOpened);\r\n\r\n const isReallyExpanded = handleExpansionExternally ? defaultOpened : isExpanded;\r\n\r\n const handleClick = () => {\r\n if (!handleExpansionExternally)\r\n setIsExpanded((prevIsExpanded) => !prevIsExpanded);\r\n\r\n if (onExpansionChange)\r\n onExpansionChange(!isReallyExpanded);\r\n };\r\n\r\n return (\r\n <Layout qa={qa} flexDirection={FlexDirection.column}>\r\n <button {...collapsibleBtnDataQA} className={classNames({ \"is-open\": isReallyExpanded })} onClick={handleClick}>\r\n <Layout alignItems={AlignItems.center} justifyContent={JustifyContent.spaceBetween}>\r\n <Layout spacingSize={SpacingSize.s}>\r\n <Text fontWeight={FontWeight.bold} value={captionText} />\r\n </Layout>\r\n <span className={classNames(\"icon\", { rotate: isReallyExpanded })}>\r\n <Layout spacingSize={SpacingSize.s}>\r\n <Icon iconCode={IconCode.uiChevronBottom} />\r\n </Layout>\r\n </span>\r\n </Layout>\r\n </button>\r\n <div {...collapsibleContentDataQA} className={classNames(\"content\", { \"expanded\": isReallyExpanded })}>\r\n <div style={{ minHeight: collapsedHeight }}>\r\n {children}\r\n </div>\r\n </div>\r\n </Layout>\r\n );\r\n};\r\n","export * from \"./Collapsible\";\r\n","import React, { ChangeEvent, ClassAttributes, forwardRef, SelectHTMLAttributes } from \"react\";\r\n\r\nimport { bemClassNames, combineRefs, TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT, useJavaScriptChange } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, OnJavaScriptChange, OptionalTabIndex } from \"@multiweb/types/react\";\r\nimport { FormComponentProps } from \"../types\";\r\n\r\nconst classNames = bemClassNames(\"select-provider-component\");\r\n\r\ntype CustomSelectProviderProps = {\r\n /**\r\n * Callback volaný při změně hodnoty pole.\r\n * Událost `onChange` je reactí událost a nepodobá se defaultnímu javascriptovému chování události `onChange`.\r\n * Podobá se spíše javascriptové události `onInput`.\r\n */\r\n onChange?: (value?: string) => void;\r\n /** Callback volaný při odposlechnutí javascriptové `change` eventy. */\r\n onJavaScriptChange?: OnJavaScriptChange;\r\n /** Umožňuje nastavit tabindex */\r\n tabIndex?: OptionalTabIndex | typeof TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT;\r\n /** Přednastavená hodnota selectu */\r\n value?: string | ReadonlyArray<string> | number;\r\n /** Příznak, zda je jako hodnota selectu nastavena prázdná hodnota */\r\n isEmpty?: boolean;\r\n}\r\n& Pick<FormComponentProps, \"readOnly\">;\r\n\r\nexport type SelectHTMLProps = SelectHTMLAttributes<HTMLSelectElement> & ClassAttributes<HTMLSelectElement>;\r\n\r\nexport type SelectProviderProps = Omit<SelectHTMLProps, keyof CustomSelectProviderProps | \"ref\"> & CustomSelectProviderProps;\r\n\r\nexport const SelectProvider: ForwardRefType<HTMLSelectElement, SelectProviderProps> = forwardRef<HTMLSelectElement, SelectProviderProps>(({\r\n onJavaScriptChange,\r\n onChange,\r\n onBlur,\r\n children,\r\n disabled,\r\n readOnly,\r\n isEmpty,\r\n ...restProps\r\n}, forwardRef) => {\r\n const refCallback = useJavaScriptChange(onJavaScriptChange);\r\n const ref = combineRefs(refCallback, forwardRef);\r\n\r\n const handleChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n if (onChange) {\r\n onChange(e.target.value);\r\n }\r\n };\r\n\r\n return (\r\n <div className={classNames({ isEmpty, readOnly, disabled })}>\r\n <select\r\n onChange={handleChange}\r\n {...{ disabled, onBlur, ref }}\r\n {...restProps}>\r\n {children}\r\n </select>\r\n </div>\r\n );\r\n});\r\n","export { SelectProvider, SelectProviderProps } from \"./SelectProvider\";\r\n","import { ExtendedOption } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Option pro comboboxy.\r\n */\r\nexport type ComboBoxOption = {\r\n /** Příznak značící, zda se má option skrýt */\r\n hide?: boolean;\r\n /** Příznak značící, zda se jedná o placeholder option */\r\n isPlaceholder?: boolean;\r\n} & ExtendedOption<string | number, string>;\r\n","import React, { FunctionComponent, OptionHTMLAttributes } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { Option } from \"@multiweb/types/react\";\r\n\r\nconst classNames = bemClassNames(\"option-provider-component\");\r\n\r\ntype CustomOptionProviderProps = {\r\n /** Možnost obsahující value a text pro komponentu option */\r\n option: Option<string | ReadonlyArray<string> | number | undefined>;\r\n /** Příznak značící, zda se má option skrýt */\r\n hide?: boolean;\r\n};\r\n\r\nexport type OptionProviderProps = Omit<OptionHTMLAttributes<HTMLOptionElement>, \"className\" | \"value\"> & CustomOptionProviderProps;\r\n\r\nexport const OptionProvider: FunctionComponent<OptionProviderProps> = ({\r\n option,\r\n hide = false,\r\n ...restProps\r\n}) => {\r\n return (\r\n <option\r\n className={classNames({ hide })}\r\n value={option.value}\r\n {...restProps}\r\n >\r\n {option.text}\r\n </option>\r\n );\r\n};\r\n","export { OptionProvider, OptionProviderProps } from \"./OptionProvider\";\r\n","import React from \"react\";\r\n\r\nimport { OptionProvider } from \"../OptionProvider\";\r\nimport { ComboBoxOption } from \"./types\";\r\n\r\n/**\r\n * Sestaví pole komponent `<OptionProvider> na základě vstupního parametru `options`.\r\n * @param options data, na základě kterých se vytvoří pole optionů\r\n */\r\nexport const getOptionProviders = (options: ReadonlyArray<ComboBoxOption>) => {\r\n return options.map(option => {\r\n const key = option.value + \"\";\r\n return (\r\n <OptionProvider key={key} hide={ option.hide } {...{ option }} />\r\n );\r\n });\r\n};\r\n","import React, { createRef, forwardRef, MouseEventHandler, useMemo } from \"react\";\r\n\r\nimport { bemClassNames, combineRefs } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, OnJavaScriptChange } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { EncryptedSymbol } from \"../EncryptedSymbol\";\r\nimport { SelectProvider } from \"../SelectProvider\";\r\nimport {\r\n FormComponentEventHandlersProps,\r\n FormComponentProps,\r\n} from \"../types\";\r\nimport { generateFormComponentClasses } from \"../utils\";\r\nimport { ComboBoxOption } from \"./types\";\r\nimport { getOptionProviders } from \"./utils\";\r\n\r\nconst classNames = bemClassNames(\"combobox-component\");\r\n\r\nexport type ComboBoxComponentProps = {\r\n /** Možnosti pro výběr hodnoty comboboxu */\r\n options: ReadonlyArray<ComboBoxOption>;\r\n /** Přednastavená hodnota comboboxu */\r\n value?: string | number;\r\n /** Název comboboxu */\r\n name?: string;\r\n /**\r\n * Callback volaný při změně hodnoty pole.\r\n * Událost `onChange` je reactí událost a nepodobá se defaultnímu javascriptovému chování události `onChange`.\r\n * Podobá se spíše javascriptové události `onInput`.\r\n */\r\n onChange?: (value: string | undefined) => void;\r\n /** Callback volaný při odposlechnutí javascriptové `change` eventy */\r\n onJavaScriptChange?: OnJavaScriptChange;\r\n /** Callback volaný při kliknutí uvnitř elementu */\r\n onMouseDown?: MouseEventHandler<HTMLSelectElement>;\r\n /** Příznak, zda je jako hodnota comboboxu nastavena prázdná hodnota.\r\n * `isEmpty` může být zvenku definováno nezávisle na tom, jestli je prop `value` undefined, případně do jejího určení můžou vstupovat další proměnné.\r\n * Např. `isEmpty=true` je u ComboBox komponenty určeno tím, zda je zapnutá multieditace a jaká hodnota `value` je právě nastavena.\r\n */\r\n isEmpty?: boolean;\r\n}\r\n& FormComponentProps\r\n& FormComponentEventHandlersProps;\r\n\r\n/** Interní komponenta řešící stylování, vytváření pole option providerů a memoizaci */\r\nexport const ComboBoxComponent: ForwardRefType<HTMLSelectElement, ComboBoxComponentProps> = forwardRef<HTMLSelectElement, ComboBoxComponentProps>(({\r\n id,\r\n options,\r\n value,\r\n name,\r\n disabled = false,\r\n encrypted = false,\r\n invalid = false,\r\n required = false,\r\n readOnly = false,\r\n backgroundColor,\r\n isEmpty,\r\n onClick,\r\n onKeyDown,\r\n ...restProps\r\n}, forwardRef) => {\r\n const innerRef = createRef<HTMLSelectElement>();\r\n const ref = combineRefs<HTMLSelectElement>(innerRef, forwardRef);\r\n\r\n const classes = generateFormComponentClasses(classNames, {\r\n disabled,\r\n encrypted,\r\n invalid,\r\n required,\r\n backgroundColor,\r\n readOnly,\r\n }, [classNames()]);\r\n\r\n const optionComponents = useMemo(() => getOptionProviders(options), [options]);\r\n\r\n return (\r\n <div role={Role.comboBox} className={classes} {...{ onClick }} onKeyDown={onKeyDown}>\r\n {encrypted && <EncryptedSymbol/>}\r\n <SelectProvider\r\n hidden={encrypted}\r\n disabled={disabled || encrypted}\r\n {...{\r\n id,\r\n value,\r\n name,\r\n readOnly,\r\n required,\r\n isEmpty,\r\n ref,\r\n }}\r\n {...restProps}\r\n >\r\n { optionComponents }\r\n </SelectProvider>\r\n </div>\r\n );\r\n});\r\n","/** Hodnoty pro komponentu ComboBox. */\r\nexport enum ComboBoxValues {\r\n /**\r\n * Hodnota pro skrytou optionu, jejíž text je ale zároveň placeholderem v případě, že je v selectu vybrána možnost s prázdným textem.\r\n */\r\n placeholderOptionValue = \"-1\",\r\n\r\n /** Hodnota pro prázdnou viditelnou optionu. */\r\n emptyOptionValue = \"-2\",\r\n\r\n /**\r\n * Hodnota pro možnost reprezentující hromadnou editaci.\r\n */\r\n multiEditOptionValue = \"-3\",\r\n}\r\n","export { ComboBoxComponent, ComboBoxComponentProps } from \"./ComboBoxComponent\";\r\nexport { ComboBoxValues } from \"./enums\";\r\nexport { ComboBoxOption } from \"./types\";\r\n","import { createCreateActionType, createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu enums. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"enums\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce.\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření klíče načítání pro lokalizace enumů\r\n */\r\nconst createFetchingKey = createCreateFetchingKey(NAME);\r\n\r\n/**\r\n * Doba čekání v ms, po kterou se seskupují akce požadující načtení enumů.\r\n * Hodnota je určena náhodně a je možné ji upravit po otestování v reálném použití.\r\n */\r\nexport const BATCHING_DELAY = 100;\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizace pro enumy ve fetching modulu.\r\n */\r\nexport const FETCHING_KEY_ENUMS_LOCALIZATION = createFetchingKey(\"FETCHING_KEY_ENUMS_LOCALIZATION\");\r\n\r\n/**\r\n * Načítání dat enumu na základě jména enumu.\r\n */\r\nexport const LOAD_ENUMS_DATA = createActionType(\"LOAD_ENUMS_DATA\");\r\n\r\n/**\r\n * Vložení dat týkajících se enumu do reduxu.\r\n */\r\nexport const SET_ENUMS_DATA = createActionType(\"SET_ENUMS_DATA\");\r\n\r\n/**\r\n * Smazání dat týkajících se enumu z reduxu.\r\n */\r\nexport const CLEAR_ENUM_DATA = createActionType(\"CLEAR_ENUM_DATA\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { CLEAR_ENUM_DATA, LOAD_ENUMS_DATA, SET_ENUMS_DATA } from \"./constants\";\r\n\r\nexport type EnumsInstances = TypedObject<EnumInstance>;\r\n\r\n/**\r\n * Struktura dat pro jeden enum.\r\n * K datům může v jeden moment přistupovat více komponent. Tento počet je udržován v proměnné `counter`.\r\n *\r\n * Pozn. Zatím stav není normalizován. V případě potřeby by se měly optimalizovat descriptions z enumType.descriptions\r\n * podle name a intValue. Tzn. přidat sem TypedObjects podobně jako u EnumsInstances.\r\n */\r\nexport type EnumInstance = Readonly<{\r\n readonly enumType: IReduxEnumType | null;\r\n readonly counter: number;\r\n}>;\r\n\r\n/**\r\n * Pomocný typ pro akci `ISetEnumsAction`, který obsahuje jak enum data, tak klíč, pod kterým budou v reduxu uložena.\r\n */\r\nexport type EnumTypeWithKey = Readonly<{\r\n readonly enumType: IReduxEnumType;\r\n readonly enumKey: string;\r\n}>;\r\n\r\n/**\r\n * Rozhraní obsahující detailní informace o enumu.\r\n */\r\nexport interface IReduxEnumType {\r\n\r\n /**\r\n * Doplňující údaje k enumu.\r\n */\r\n readonly descriptions: ReadonlyArray<IReduxEnumDescription>;\r\n\r\n /**\r\n * Typ enumu. Obvykle se používá k držení údaje o názvu enumu.\r\n */\r\n readonly type: string;\r\n}\r\n\r\n/**\r\n * Rozhraní obsahující doplňující informace k položce enumu.\r\n */\r\nexport interface IReduxEnumDescription {\r\n /**\r\n * Pořadové číslo položky enumu\r\n */\r\n readonly intValue: number;\r\n\r\n /**\r\n * Název položky enumu\r\n */\r\n readonly name: string;\r\n\r\n /**\r\n * Lokalizační klíč pro položku enumu\r\n */\r\n readonly locKey: string;\r\n\r\n /**\r\n * Popis položky enumu\r\n */\r\n readonly description: string;\r\n}\r\n\r\n/**\r\n * Definice stavu pro enums.\r\n */\r\nexport interface IEnumsState {\r\n readonly enumsInstances: EnumsInstances;\r\n}\r\n\r\n/**\r\n * Klíč pro jednoznačnou identifikaci enumu. Na základě jednoho klíče je možné přistupovat ke stavu z více komponent.\r\n */\r\nexport type EnumKey = string;\r\n\r\n/**\r\n * Indikuje počátek načítání dat týkajících se enumů. Data jsou načítána na základě jmen typů enumu.\r\n */\r\nexport interface ILoadEnumsAction extends Action<typeof LOAD_ENUMS_DATA> {\r\n readonly payload: {\r\n readonly enumsKeys: ReadonlyArray<EnumKey>;\r\n readonly enableBatching: boolean;\r\n };\r\n}\r\n\r\nexport class ILoadEnumsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_ENUMS_DATA;\r\n }\r\n}\r\n\r\n/**\r\n * Vložení dat týkajících se enumu do stavu, kde klíč pro identifikaci enumu je jeho jméno (`enumName`).\r\n */\r\nexport interface ISetEnumsAction extends Action<typeof SET_ENUMS_DATA> {\r\n readonly payload: {\r\n readonly enumTypesWithKeys: ReadonlyArray<EnumTypeWithKey>;\r\n };\r\n}\r\n\r\nexport class ISetEnumsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_ENUMS_DATA;\r\n }\r\n}\r\n\r\n/**\r\n * Parametry pro selektory k vyhledání hodnoty enumu.\r\n */\r\nexport type EnumValueSelectorParams = {\r\n readonly enumTypeName: string;\r\n readonly value: string | number;\r\n};\r\n\r\n/**\r\n * Akce využívaná pro vymazání dat enumu v momentě, kdy už je komponenta nepotřebuje.\r\n */\r\nexport interface IClearEnumAction extends Action<typeof CLEAR_ENUM_DATA> {\r\n readonly payload: {\r\n readonly enumsKey: EnumKey;\r\n };\r\n}\r\n\r\nexport class IClearEnumAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_ENUM_DATA;\r\n }\r\n}\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport { castDraft, Draft, produce } from \"immer\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { EnumInstance, EnumsInstances, IClearEnumAction, IEnumsState, ILoadEnumsAction, ISetEnumsAction } from \"./types\";\r\n\r\nconst INITIAL_ENUM_COUNTER_VALUE = 0;\r\n\r\nconst INITIAL_ENUM_INSTANCE_STATE: EnumInstance = {\r\n counter: INITIAL_ENUM_COUNTER_VALUE,\r\n enumType: null,\r\n};\r\n\r\nconst counter: Reducer<number> = (state = INITIAL_ENUM_COUNTER_VALUE, action) => {\r\n if (action instanceof ILoadEnumsAction) {\r\n return ++state;\r\n } else if (action instanceof IClearEnumAction) {\r\n return state > 0 ? --state : state;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const enumsInstances: Reducer<EnumsInstances> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ILoadEnumsAction) {\r\n return produce(state, (draft: Draft<EnumsInstances>) => {\r\n action.payload.enumsKeys.forEach(enumKey => {\r\n const reduxEnumType = draft[enumKey];\r\n draft[enumKey] = {\r\n enumType: castDraft(reduxEnumType?.enumType ?? INITIAL_ENUM_INSTANCE_STATE.enumType),\r\n counter: counter(reduxEnumType?.counter ?? INITIAL_ENUM_INSTANCE_STATE.counter, action),\r\n };\r\n });\r\n });\r\n } else if (action instanceof ISetEnumsAction) {\r\n return produce(state, (draft: Draft<EnumsInstances>) => {\r\n action.payload.enumTypesWithKeys.forEach(({ enumKey, enumType }) => {\r\n const enumInstanceDraft: EnumInstance = draft[enumKey];\r\n if (!enumInstanceDraft) {\r\n return state;\r\n }\r\n\r\n draft[enumKey] = {\r\n enumType: castDraft(enumType),\r\n counter: counter(enumInstanceDraft.counter, action),\r\n };\r\n\r\n return draft;\r\n });\r\n });\r\n } else if (action instanceof IClearEnumAction) {\r\n return produce(state, (draft: Draft<EnumsInstances>) => {\r\n const enumsKey = action.payload.enumsKey;\r\n const enumInstanceDraft: EnumInstance = draft[enumsKey];\r\n if (!enumInstanceDraft) {\r\n return castDraft(state);\r\n }\r\n\r\n const count = counter(enumInstanceDraft.counter, action);\r\n\r\n if (count <= 0) {\r\n delete draft[enumsKey];\r\n } else {\r\n draft[enumsKey].counter = count;\r\n }\r\n\r\n return draft;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<IEnumsState> = combineReducers({\r\n enumsInstances,\r\n});\r\n","import { CLEAR_ENUM_DATA, LOAD_ENUMS_DATA, SET_ENUMS_DATA } from \"./constants\";\r\nimport { EnumKey, EnumTypeWithKey, IClearEnumAction, ILoadEnumsAction, ISetEnumsAction } from \"./types\";\r\n\r\n/**\r\n * Pro zadaný klíč spustí načítání dat týkající se enumů.\r\n * @param enumsKeys klíče enumů, respektive jejich názvy, pro které budou data načtena\r\n * @param enableBatching příznak, zda se má využít batchování akcí. Výchozí hodnota je false. Batchování umožňuje zpracovat akce následující krátce za sebou najednou,\r\n * čímž šetří výkon. Nehodí se pro osamocené akce, kde nepřinese benefit výkonu a pouze prodlouží načtení o dobu čekání na následné akce.\r\n */\r\nexport const createLoadEnumsAction = (enumsKeys: ReadonlyArray<EnumKey>, enableBatching = false): ILoadEnumsAction => ({\r\n type: LOAD_ENUMS_DATA,\r\n payload: {\r\n enumsKeys,\r\n enableBatching,\r\n },\r\n});\r\n\r\n/**\r\n * Uloží do reduxu data týkající se enumu pro zadaný klíč.\r\n * @param enumTypesWithKeys pole objektů obsahujících reduxové typy enumů a klíče k jejich identifikaci v reduxu\r\n */\r\nexport const createSetEnumsAction = (enumTypesWithKeys: ReadonlyArray<EnumTypeWithKey>): ISetEnumsAction => ({\r\n type: SET_ENUMS_DATA,\r\n payload: {\r\n enumTypesWithKeys,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní data pro enum ná základě zadaného klíče.\r\n *\r\n * @param enumsKey klíč k identifikaci dat týkajících se enumu\r\n */\r\nexport const createClearEnumAction = (enumsKey: EnumKey): IClearEnumAction => ({\r\n type: CLEAR_ENUM_DATA,\r\n payload: {\r\n enumsKey,\r\n },\r\n});\r\n","import { ISectionLogger, LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const logger: ISectionLogger = LazyLoadingSectionLogger.create(LoggingSection.enums);\r\n","import { Action } from \"redux\";\r\n\r\nimport { EnumDescription, IEnumType } from \"@multiweb/types/multiweb\";\r\nimport { EnumTypeWithKey, ILoadEnumsAction, IReduxEnumDescription, IReduxEnumType } from \"./types\";\r\n\r\n/**\r\n * Udělá konverzi mezi typem enumu ze staré části aplikace do typu enumu uchovávaného v reduxu.\r\n * @param enumType zkonvertuje se na {@link IReduxEnumType}\r\n */\r\nexport const convertToReduxEnumType = (enumType: IEnumType): IReduxEnumType => {\r\n return {\r\n descriptions: convertToReduxDescriptions(enumType.descriptions),\r\n type: enumType.type,\r\n };\r\n};\r\n\r\n/**\r\n * Udělá konverzi mezi popiskama ze staré části aplikace do popisků uchovávaných v reduxu.\r\n * @param descriptions zkonvertuje se na pole {@link IReduxEnumDescription}\r\n */\r\nexport const convertToReduxDescriptions = (descriptions: EnumDescription[]): ReadonlyArray<IReduxEnumDescription> => {\r\n return descriptions.map((des) => {\r\n return {\r\n intValue: des.IntValue,\r\n name: des.Name,\r\n locKey: des.LocKey,\r\n description: des.Description,\r\n };\r\n });\r\n};\r\n\r\n/**\r\n * Zjistí, zda je v pole enumů obsažen konkrétní enum pro zadaný klíč. Pokud pole klíč obsahuje, vrací `true`, v opačném případě `false`.\r\n * @param key klíč k identifikaci konkrétní položky enumu\r\n * @param enumType typ enumu, který se bude pro zadaný klíč prohledávat\r\n */\r\nexport const enumHas = (key: string | number, enumType: IReduxEnumType): boolean => enumType.descriptions.some(des => des.name === key || des.intValue === key);\r\n\r\n/**\r\n * Pro zadaný klíč vrací konkrétní enum z pole enumů. Pokud pole enum neobsahuje, vrací `undefined`.\r\n * @param key klíč k identifikaci konkrétní položky enumu\r\n * @param enumType typ enumu, který se bude pro zadaný klíč prohledávat\r\n */\r\nexport const getFromEnum = (key: string | number, enumType: IReduxEnumType): IReduxEnumDescription | undefined => enumType.descriptions.find(des => des.name === key || des.intValue === key);\r\n\r\n/**\r\n * Pro zadané pole enumů vrací názvy popisků, které slouží jako klíče.\r\n * @param enumType typ enumu, který se bude prohledávat\r\n */\r\nexport const getEnumKeys = (enumType: IReduxEnumType): string[] => enumType.descriptions.map(des => des.name);\r\n\r\n/**\r\n * Zjistí, zda se jedná o akci s požadavkem na načtení enumu a zda režim batchování odpovídá zadanému parametru.\r\n * Umožňuje tak rozlišit akce se zapnutým/vypnutým batchováním.\r\n * @param batchingEnabled Pokud je true, odchytávají se akce se zapnutým batchováním. Pokud je false, odchytávají se akce s vypnutým batchováním.\r\n */\r\nexport const createLoadEnumActionPattern = (batchingEnabled: boolean) => (action: Action) => (\r\n action instanceof ILoadEnumsAction && action.payload.enableBatching === batchingEnabled\r\n);\r\n\r\n/**\r\n * Spojí enumy ze zadaných akcí. Výsledné pole obsahuje pouze unikátní výskyty, duplicity jsou odstraněny.\r\n * @param actions Akce, z nichž se získají data.\r\n */\r\nexport const mergeLoadEnumsActions = (actions: readonly ILoadEnumsAction[]): ReadonlyArray<string> => {\r\n const mergedData = actions.reduce((result, action) => {\r\n return [...result, ...action.payload.enumsKeys];\r\n }, [] as ReadonlyArray<string>);\r\n\r\n return [...new Set(mergedData)];\r\n};\r\n\r\n/**\r\n * Extrahuje z reduxových typů enumů lokalizační klíče a spojí je do jednoho pole. Duplicitní klíče jsou zahozeny.\r\n * @param enumTypesWithKeys pole reduxových typů enumů\r\n */\r\nexport const extractLocKeys = (enumTypesWithKeys: ReadonlyArray<EnumTypeWithKey>): ReadonlyArray<string> => {\r\n const locKeys: string[] = [];\r\n for (const enumTypeWithKey of enumTypesWithKeys) {\r\n locKeys.push(...enumTypeWithKey.enumType.descriptions.map((desc) => desc.locKey));\r\n }\r\n return [...new Set(locKeys)];\r\n};\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { EnumInstance, EnumKey, EnumValueSelectorParams, IReduxEnumDescription, IReduxEnumType } from \"./types\";\r\nimport { enumHas, getEnumKeys, getFromEnum } from \"./utils\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící enums modulu.\r\n */\r\nconst getModel = (state: IAppState) => state.core.enums;\r\n\r\n/**\r\n * Získá podstrom stavu patřící konkrétnímu enumu.\r\n * @param state\r\n * @param enumsKey Klíč enumu sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const getEnumsInstance: Selector<IAppState, EnumInstance | undefined, EnumKey> = (state, enumsKey) => getModel(state).enumsInstances[enumsKey];\r\n\r\n/**\r\n * Získa na základě `enumTypeName` ze stavu enums modulu správný typ enumu. Pokud enum neexistuje, vrací undefined.\r\n * @param state stav enums modulu\r\n * @param enumTypeName indexový klíč, na jehož základě se vrací správný typ enumu\r\n */\r\nexport const getEnumType: Selector<IAppState, IReduxEnumType | null | undefined, string> = (state: IAppState, enumTypeName: string) => getEnumsInstance(state, enumTypeName)?.enumType;\r\n\r\n/**\r\n * Získá vnitřní čítač pole.\r\n * @param state stav enums modulu\r\n * @param enumsKey Klíč pole sloužící k jeho jednoznačné identifikaci.\r\n */\r\nexport const getCounter: Selector<IAppState, number | undefined, EnumKey> = (state, enumsKey) => getEnumsInstance(state, enumsKey)?.counter ?? undefined;\r\n\r\n/**\r\n * Vrací klíče enumů, které doposud nebyly inicializováný. Pokud enum inicializován již byl, ve výsledku jej vynechá.\r\n * @param state stav enums modulu\r\n * @param enumsKeys klíče enumů, které se prozkoumají kvůli zjištění inicializace\r\n */\r\nexport const getUninitializedEnums: Selector<IAppState, ReadonlyArray<EnumKey>, ReadonlyArray<EnumKey>> = (state, enumsKeys) => enumsKeys.filter(enumKey => !getEnumType(state, enumKey));\r\n\r\n/**\r\n * Na základě jména enumu zjistí, zda již v reduxu existuje typ enumu.\r\n * @param state stav enums modulu\r\n * @param enumTypeName indexový klíč, na jehož základě se zjistí, zda enum type v reduxu již existuje\r\n */\r\nexport const hasEnumType: Selector<IAppState, boolean, string> = (state: IAppState, enumTypeName: string) => getEnumType(state, enumTypeName) !== undefined;\r\n\r\n/**\r\n * Vrací description na základě parametru `value`. Pokud hodnota není nalezena, vrací `undefined`.\r\n * @param state stav enums modulu\r\n * @param enumParams parametry pro selektory k vyhledání hodnoty enumu.\r\n */\r\nexport const getValue: Selector<IAppState, IReduxEnumDescription | undefined, EnumValueSelectorParams> = (state: IAppState, enumParams: EnumValueSelectorParams) => {\r\n const { enumTypeName, value } = enumParams;\r\n\r\n const enumType = getEnumType(state, enumTypeName);\r\n if (!enumType) {\r\n return undefined;\r\n }\r\n\r\n return getFromEnum(value, enumType);\r\n};\r\n\r\n/**\r\n * Vrací, zda je mezi descriptionami pro zadané jméno obsažena konkrétní hodnota v některém enumu. Pokud některý enum hodnotu obsahuje, tak vrací `true`, jinak `false`.\r\n * @param state stav enums modulu\r\n * @param enumParams parametry pro selektory k vyhledání hodnoty enumu.\r\n */\r\nexport const hasValue: Selector<IAppState, boolean, EnumValueSelectorParams> = (state: IAppState, enumParams: EnumValueSelectorParams) => {\r\n const { enumTypeName, value } = enumParams;\r\n\r\n const enumType = getEnumType(state, enumTypeName);\r\n if (!enumType) {\r\n return false;\r\n }\r\n\r\n return enumHas(value, enumType);\r\n};\r\n\r\n/**\r\n * Vrací stringové identifikátory položek enumu pro zadané jméno typu enumu.\r\n * @param state stav enums modulu\r\n * @param enumTypeName klíč, na jehož základě se vrátí správný typ enumu\r\n */\r\nexport const getItemNames: Selector<IAppState, ReadonlyArray<string>, string> = (state: IAppState, enumTypeName: string) => {\r\n const enumType = getEnumType(state, enumTypeName);\r\n if (!enumType) {\r\n return EMPTY_ARRAY;\r\n }\r\n\r\n return getEnumKeys(enumType);\r\n};\r\n","import { Channel } from \"redux-saga\";\r\nimport { actionChannel, call, delay, flush, fork, put, select, take, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport { createLoadLocalizationKeysAction } from \"../i18n\";\r\nimport { createLoadEnumsAction, createSetEnumsAction } from \"./actions\";\r\nimport { BATCHING_DELAY, FETCHING_KEY_ENUMS_LOCALIZATION } from \"./constants\";\r\nimport { logger } from \"./logger\";\r\nimport { getUninitializedEnums } from \"./selectors\";\r\nimport { EnumTypeWithKey, ILoadEnumsAction } from \"./types\";\r\nimport { convertToReduxEnumType, createLoadEnumActionPattern, extractLocKeys, mergeLoadEnumsActions } from \"./utils\";\r\n\r\nconst { getEnumData, errorHandler } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* enumsSaga() {\r\n yield fork(batchingLoadEnumsSaga);\r\n yield takeEvery(createLoadEnumActionPattern(false), loadEnumsSaga);\r\n};\r\n\r\nexport const batchingLoadEnumsSaga: SagaWithReturnType = function* batchingLoadEnumSaga() {\r\n const loadEnumsActionChannel: Channel<ILoadEnumsAction> = yield actionChannel(createLoadEnumActionPattern(true));\r\n logger.debug(\"Loading enum saga for action batching is initialized.\");\r\n while (true) {\r\n const firstAction: ILoadEnumsAction = yield take(loadEnumsActionChannel);\r\n yield delay(BATCHING_DELAY);\r\n const bufferedActions: ReadonlyArray<ILoadEnumsAction> = yield flush(loadEnumsActionChannel);\r\n const allActions = [firstAction, ...bufferedActions];\r\n const mergedActionsData: ReturnType<typeof mergeLoadEnumsActions> = yield call(mergeLoadEnumsActions, allActions);\r\n logger.debug(() => `Batched ${allActions.length} actions after ${BATCHING_DELAY}ms. Aggregated actions data: ${JSON.stringify(mergedActionsData)}`);\r\n yield call(loadEnumsSaga, createLoadEnumsAction(mergedActionsData));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje požadavky na načtení dat týkajících se enumů. Načtená data doplní k ostatním položkám ve stavu. Lokalizační klíče uloží do i18n modulu.\r\n */\r\nexport const loadEnumsSaga: SagaWithReturnType<[ILoadEnumsAction]> = function* loadEnumSaga(action) {\r\n const enumsKeys = action.payload.enumsKeys;\r\n const uninitializedEnums: SagaYieldReturn<typeof getUninitializedEnums> = yield select(getUninitializedEnums, enumsKeys);\r\n const enumTypesWithKeys: EnumTypeWithKey[] = [];\r\n try {\r\n for (const en of uninitializedEnums) {\r\n const enumType: SagaYieldReturn<typeof getEnumData> = yield call(getEnumData, en);\r\n const reduxEnumType: SagaYieldReturn<typeof convertToReduxEnumType> = yield call(convertToReduxEnumType, enumType);\r\n enumTypesWithKeys.push({\r\n enumKey: en,\r\n enumType: reduxEnumType,\r\n });\r\n }\r\n // uloží enumy do reduxu\r\n yield put(createSetEnumsAction(enumTypesWithKeys));\r\n // uloží lokalizační klíče do reduxu\r\n yield put(createLoadLocalizationKeysAction(extractLocKeys(enumTypesWithKeys), FETCHING_KEY_ENUMS_LOCALIZATION, true));\r\n } catch (error) {\r\n yield call(errorHandler, error);\r\n }\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IEnumsState } from \"./types\";\r\n\r\nexport { createClearEnumAction, createLoadEnumsAction } from \"./actions\";\r\nexport { getEnumType, getItemNames, getValue, hasEnumType, hasValue } from \"./selectors\";\r\nexport { IReduxEnumType } from \"./types\";\r\nexport const enumsModule: ApplicationStatefulModule<typeof NAME, Reducer<IEnumsState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import React, { Fragment, FunctionComponent, useEffect } from \"react\";\r\n\r\nexport type EnumLoaderComponentProps = {\r\n /** Příznak, zda je již enum načten */\r\n enumLoaded: boolean;\r\n\r\n /** Funkce, jejíž volání zajistí načtení enumu */\r\n loadEnum: () => void;\r\n};\r\n\r\nexport const EnumLoaderComponent: FunctionComponent<EnumLoaderComponentProps> = ({\r\n enumLoaded,\r\n loadEnum,\r\n children,\r\n}) => {\r\n useEffect(() => {\r\n if (!enumLoaded) {\r\n loadEnum();\r\n }\r\n }, [loadEnum, enumLoaded]);\r\n\r\n return (\r\n <Fragment>\r\n {children}\r\n </Fragment>\r\n );\r\n};\r\n","import { PropsWithChildren } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createLoadEnumsAction, hasEnumType } from \"@multiweb/reactCore/enums\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { EnumLoaderComponent, EnumLoaderComponentProps } from \"./EnumLoaderComponent\";\r\n\r\nexport type EnumLoaderProps = Readonly<PropsWithChildren<{\r\n /** Typ enumu, který se má nahrát */\r\n enumName: string;\r\n}>>;\r\n\r\ntype StateProps = Pick<EnumLoaderComponentProps, \"enumLoaded\">;\r\ntype DispatchProps = Pick<EnumLoaderComponentProps, \"loadEnum\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, EnumLoaderProps, IAppState> = (state, { enumName }) => ({\r\n enumLoaded: hasEnumType(state, enumName),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, EnumLoaderProps> = (dispatch, { enumName }) => ({\r\n loadEnum: () => dispatch(createLoadEnumsAction([enumName], true)),\r\n});\r\n\r\n/** Postará se o načtení typu enumu, pokud ještě v reduxu neexistuje. */\r\nexport const EnumLoader = connect(mapStateToProps, mapDispatchToProps)(EnumLoaderComponent);\r\n","export * from \"./EnumLoader\";\r\n","import { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { IReduxEnumType } from \"@multiweb/reactCore/enums\";\r\n\r\nexport type EnumProviderComponentChildrenProps = {\r\n /** Typ enumu, který bude vrácen potomkem v podobě render props. */\r\n readonly enumType: IReduxEnumType | undefined | null;\r\n};\r\n\r\nexport type EnumProviderComponentProps = {\r\n /** Funkce jako potomek, která vrací správný enum. */\r\n readonly children: (props: EnumProviderComponentChildrenProps) => ReactElement;\r\n} & EnumProviderComponentChildrenProps;\r\n\r\nexport const EnumProviderComponent: FunctionComponent<EnumProviderComponentProps> = ({\r\n enumType,\r\n children,\r\n}) => (\r\n children({ enumType })\r\n);\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getEnumType } from \"@multiweb/reactCore/enums\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { EnumProviderComponent, EnumProviderComponentChildrenProps } from \"./EnumProviderComponent\";\r\n\r\nexport type EnumProviderProps = {\r\n /** Jméno enumu, na základě někož provider vrátí správný enum. Pokud enum neexistuje vrací undefined. */\r\n enumName: string;\r\n};\r\n\r\ntype StateProps = EnumProviderComponentChildrenProps;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, EnumProviderProps, IAppState> = (state, { enumName }) => ({\r\n enumType: getEnumType(state, enumName),\r\n});\r\n\r\nexport const EnumProvider = connect(mapStateToProps)(EnumProviderComponent);\r\n","export * from \"./EnumProvider\";\r\n","import React, { Fragment, FunctionComponent, ReactElement } from \"react\";\r\n\r\nexport type LocalizedComboBoxOptionsWrapperComponentProps = {\r\n /** Potomek obsahují jednotlivé options, které je možné získat v podobě render props */\r\n children: ReactElement;\r\n};\r\n\r\n/**\r\n * Pomocná komponenta, která předá potomka s vytvořenými options k dalšímu zpracování v podobě render props.\r\n * @param children potomek obsahují jednotlivé options\r\n */\r\nexport const LocalizedComboBoxOptionsWrapperComponent: FunctionComponent<LocalizedComboBoxOptionsWrapperComponentProps> = ({\r\n children,\r\n}) => (\r\n <Fragment>\r\n { children }\r\n </Fragment>\r\n);\r\n","import { IReduxEnumType } from \"@multiweb/reactCore/enums\";\r\nimport { ExtendedLocalizableOption } from \"@multiweb/reactCore/i18n\";\r\nimport { ComboBoxOption, ComboBoxValues } from \"../../ComboBoxComponent\";\r\n\r\n/**\r\n * Na základě `multiEditOptionText` vytvoří option pro položku multieditace.\r\n * @param multiEditOptionText přiznak, zda je aktivní multieditace\r\n */\r\nexport const getMultiEditOption = (multiEditOptionText: string): ComboBoxOption => ({\r\n value: ComboBoxValues.multiEditOptionValue,\r\n text: multiEditOptionText,\r\n});\r\n\r\n/**\r\n * Na základě `placeholderText` vytvoří option pro položku placeholderu. Tato option je defaultně skrytá.\r\n * Pokud je `placeholderText` definován, možnost obsahuje i lokalizovaný text.\r\n * @param placeholderText lokalizační klíč, na jehož základě bude option obsahovat i lokalizovaný text\r\n */\r\nexport const getPlaceholderOption = (placeholderText?: string): ComboBoxOption => {\r\n let placeholderOption: ComboBoxOption;\r\n if (placeholderText) {\r\n placeholderOption = {\r\n value: ComboBoxValues.placeholderOptionValue,\r\n text: placeholderText,\r\n hide: true,\r\n isPlaceholder: true,\r\n };\r\n } else {\r\n placeholderOption = {\r\n value: ComboBoxValues.placeholderOptionValue,\r\n text: \"\",\r\n hide: true,\r\n isPlaceholder: true,\r\n };\r\n }\r\n\r\n return placeholderOption;\r\n};\r\n\r\n/**\r\n * Vrací prázdnou option bez textu. Na základě přiznáků `isEditing` a `required` se urči, zdá má být option skrytá.\r\n * @param isEditing přiznak, zda je aktivní režim editace\r\n * @param required přiznak, zda je combobox povinný\r\n */\r\nexport const getEmptyOption = (isEditing?: boolean, required?: boolean): ComboBoxOption => ({\r\n value: ComboBoxValues.emptyOptionValue,\r\n text: \"\",\r\n hide: isEditing && required,\r\n});\r\n\r\n/**\r\n * Na základě `enumType` vrací pole options k lokalizaci s meta daty v podobě jména položky enumu.\r\n * @param enumType typ enumu\r\n */\r\nexport const getExtendedLocalizedOptions = (enumType: IReduxEnumType): ReadonlyArray<ExtendedLocalizableOption<number, string>> => (\r\n enumType.descriptions.map(desc => ({\r\n value: desc.intValue,\r\n locKey: desc.locKey,\r\n meta: desc.name,\r\n }))\r\n);\r\n\r\n/**\r\n * Obohatí na základě `hideValues` relevantní optiony přiznakem hide=true. Jednotlivé položky pole projde a pokud jsou definovány v řetězci hideValues, nastaví je pro skrytí.\r\n * Položky v poli nemaže, vrací je všechny.\r\n *\r\n * Př. HideValues=\"Neuvedeno;Sklad;Nakladove_stredisko\"\r\n * @param options položky pro combobox\r\n * @param hideValues řetězec položek, které se nemají zobrazovat v comboboxu\r\n */\r\nexport const updateOptionsWithHidden = (options: ReadonlyArray<ComboBoxOption>, hideValues?: string): ReadonlyArray<ComboBoxOption> => {\r\n if (!hideValues) {\r\n return options;\r\n }\r\n\r\n const optionsWithHidden: ComboBoxOption[] = [];\r\n\r\n // Parsing dat z řetězce hideValues\r\n // odstranime případné mezery okolo středníku a vymžeme prázdné prvky z pole\r\n const hideValArr: string[] = hideValues.split(/\\s*;\\s*/).filter(Boolean);\r\n\r\n // Na základě pole hideValArr přidá do relevantních options k atributu hide hodnotu true. Všechny položky následně vrátí.\r\n options.forEach(option => {\r\n const hiddenFound = hideValArr.find(hideVal => hideVal === option.meta);\r\n const updatedOption: ComboBoxOption = {\r\n value: option.value,\r\n text: option.text,\r\n hide: option.hide,\r\n meta: option.meta,\r\n };\r\n if (hiddenFound) {\r\n updatedOption.hide = true;\r\n }\r\n optionsWithHidden.push(updatedOption);\r\n });\r\n\r\n return optionsWithHidden;\r\n};\r\n","import { PropsWithChildren, ReactElement } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { IReduxEnumType } from \"@multiweb/reactCore/enums\";\r\nimport { createGetLocalizedOptions, getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ComboBoxOption } from \"../../ComboBoxComponent\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../../locKeys\";\r\nimport {\r\n LocalizedComboBoxOptionsWrapperComponent,\r\n LocalizedComboBoxOptionsWrapperComponentProps,\r\n} from \"./LocalizedComboBoxOptionsWrapperComponent\";\r\nimport { getEmptyOption, getExtendedLocalizedOptions, getMultiEditOption, getPlaceholderOption, updateOptionsWithHidden } from \"./utils\";\r\n\r\nexport type LocalizedComboBoxOptionsWrapperChildrenProps = {\r\n options: ReadonlyArray<ComboBoxOption>;\r\n};\r\n\r\nexport type LocalizedComboBoxOptionsWrapperProps = Readonly<PropsWithChildren<{\r\n /** Typ enumu, ze kterého se budou vytvářet options.\r\n * Není zde předpoklad, že by se enumType měnil za chodu aplikace, a proto jsou na jeho základě vytvořeny stejné lokalizované optiony.\r\n * Považujeme ho tedy jako statický.\r\n */\r\n enumType: IReduxEnumType;\r\n\r\n /** Lokalizační klíč pro placeholder option */\r\n placeholderLocKey?: string;\r\n\r\n /** Příznak, zda je aktivní multieditace */\r\n multiEditActive?: boolean;\r\n\r\n /** Přiznak, zda je aktivní režim editace */\r\n isEditing?: boolean;\r\n\r\n /** Přiznak, zda je combobox povinný */\r\n required?: boolean;\r\n\r\n /** Řetězec obsahující položky comboboxu, které se mají skrýt */\r\n hideValues?: string;\r\n\r\n /** Potomek */\r\n children: (props: LocalizedComboBoxOptionsWrapperChildrenProps) => ReactElement;\r\n}>>;\r\n\r\ntype StateProps = {\r\n /** Lokalizovaný text možnosti pro multieditaci */\r\n multiEditOptionText?: string;\r\n /** Lokalizovaný text pro placeholder comboboxu */\r\n placeholderOptionText?: string;\r\n /** lokalizované options, které se zkonvertují na základě typu enumu */\r\n localizedOptions: ReadonlyArray<ComboBoxOption>;\r\n};\r\n\r\nconst createMapStateToProps: (state: IAppState, props: LocalizedComboBoxOptionsWrapperProps) => MapStateToProps<StateProps, LocalizedComboBoxOptionsWrapperProps, IAppState> = (\r\n _state,\r\n { enumType },\r\n) => {\r\n const getLocalizedOptions = createGetLocalizedOptions(getExtendedLocalizedOptions(enumType));\r\n return (state, { multiEditActive, placeholderLocKey }) => ({\r\n multiEditOptionText: multiEditActive ? getPrimaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\" : undefined,\r\n placeholderOptionText: placeholderLocKey ? getPrimaryText(state, placeholderLocKey) ?? \"\" : undefined,\r\n localizedOptions: getLocalizedOptions(state),\r\n });\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, LocalizedComboBoxOptionsWrapperProps, LocalizedComboBoxOptionsWrapperComponentProps> = (\r\n { multiEditOptionText, placeholderOptionText, localizedOptions },\r\n _dispatchProps,\r\n { hideValues, isEditing, required, children },\r\n) => {\r\n const placeholderOption = getPlaceholderOption(placeholderOptionText);\r\n const emptyOption = getEmptyOption(isEditing, required);\r\n const localizedOptionsWithHidden = updateOptionsWithHidden(localizedOptions, hideValues);\r\n\r\n const options: ComboBoxOption[] = [emptyOption, placeholderOption, ...localizedOptionsWithHidden];\r\n if (multiEditOptionText) {\r\n options.unshift(getMultiEditOption(multiEditOptionText));\r\n }\r\n return {\r\n children: children({ options }),\r\n };\r\n};\r\n\r\n/**\r\n * Wrapper zajišťuje konverzi typu enumu na lokalizované options.\r\n * Zároveň se stará o správné vytvoření defaultních options (multieditOption, placeholderOption, emptyOption) na základě jednotlivých příznaků.\r\n */\r\nexport const LocalizedComboBoxOptionsWrapper = connect(createMapStateToProps, undefined, mergeProps)(LocalizedComboBoxOptionsWrapperComponent);\r\n","export { LocalizedComboBoxOptionsWrapper, LocalizedComboBoxOptionsWrapperProps } from \"./LocalizedComboBoxOptionsWrapper\";\r\n","import { ComboBoxOption, ComboBoxValues } from \"../ComboBoxComponent\";\r\n\r\n/**\r\n * Najde v poli options položku multieditace, v opačném případě vrací undefined.\r\n * @param options položky comboboxu\r\n */\r\nexport const getMultiEditOption = (options: ReadonlyArray<ComboBoxOption>): ComboBoxOption | undefined => options.find(op => op.value === ComboBoxValues.multiEditOptionValue);\r\n\r\n/**\r\n * Vrací, jestli se hodnota comboboxu označí jako prázdná.\r\n * @param value hodnota comboboxu\r\n */\r\nexport const isEmptyValue = (value?: string | null): boolean => [ComboBoxValues.emptyOptionValue, ComboBoxValues.placeholderOptionValue, \"\", null, undefined].includes(value);\r\n\r\n/**\r\n * Vrací, zda je hodnota obsažena v poli nedefaultních možností. Defaultní možnosti jsou např. placeholder, prázdná možnost nebo možnost multieditace.\r\n * Všechny zbývající jsou nedefaultní a mají value >= 0.\r\n * @param options všechny možnosti comboboxu\r\n * @param value hodnota comboboxu\r\n */\r\nexport const nonDefaultOptionsContain = (options: ReadonlyArray<ComboBoxOption>, value?: string | null): boolean => options.some(op => op.value >= 0 && op.value.toString() === value?.toString());\r\n\r\n/**\r\n * Zjistí, zda je příchozí hodnota prázdná a v takovém případě vrátí `placeholderOptionValue`.\r\n * @param rawValue původní hodnota k zobrazení v comboboxu\r\n */\r\nexport const updateEmptyOptionValueIfNeeded = (rawValue?: string): string | undefined => isEmptyValue(rawValue) ? ComboBoxValues.placeholderOptionValue : rawValue;\r\n\r\n/**\r\n * Upraví hodnotu comboboxu v režimu multieditace.\r\n * Rozlišuje, zda jsme v rámci multieditace v editaci a zda je hodnota povinná a na tomto základě hodnotu upraví/nechá stejnou.\r\n * @param options položky comboboxu\r\n * @param rawValue původní hodnota k zobrazení v comboboxu\r\n * @param isEditing příznak, zda je aktivní editace\r\n * @param required příznak, zda je hodnota povinná\r\n */\r\nexport const updateValueInMultiEditing = (options: ReadonlyArray<ComboBoxOption>, rawValue?: string, isEditing?: boolean, required?: boolean): string | undefined => {\r\n const rawStringValue = rawValue?.toString();\r\n\r\n // Pokud je zapnutá multieditace s editací, nastavuje hodnotu z rawValue, protože je v tomto režimu možné měnit hodnotu z comboboxu.\r\n if (isEditing) {\r\n // Pokud je required, tak není potřeba měnit prázdnou hodnotu na placeholder.\r\n if (required) {\r\n return rawStringValue;\r\n }\r\n\r\n // Pokud není required, je nutné změnit prázdnou hodnotu na placeholder.\r\n return updateEmptyOptionValueIfNeeded(rawStringValue);\r\n }\r\n\r\n // Pokud je zapnutá multieditace bez editace, zobrazí popisek pro multieditaci.\r\n return getMultiEditOption(options)?.value.toString();\r\n};\r\n\r\n/**\r\n * Pokud není nastaven režim editace, vrací všechny možnosti bez ohledu na `hide` atribut dané možnosti.\r\n * Pokud je nastaven režim editace, odfiltruje všechny možnosti s atributem `hide=true` vyjma placeholder možnosti.\r\n * @param options možnosti comboboxu\r\n * @param isEditing příznak, zda je aktivní editace\r\n */\r\nexport const removeHidden = (options: ReadonlyArray<ComboBoxOption>, isEditing?: boolean): ReadonlyArray<ComboBoxOption> => isEditing ?\r\n options.filter(option => !option.hide || option.isPlaceholder) : options;\r\n\r\n/**\r\n * Vrací, zda je `value` prázdná hodnota nebo ne.\r\n * @param options možnosti comboboxu\r\n * @param value hodnota comboboxu\r\n * @param multiEditActive příznak, zda je aktivní multieditace\r\n */\r\nexport const isEmpty = (options: ReadonlyArray<ComboBoxOption>, value?: string, multiEditActive?: boolean): boolean => {\r\n const isPlaceholderOrHidden = value === ComboBoxValues.placeholderOptionValue || !nonDefaultOptionsContain(options, value);\r\n if (multiEditActive) {\r\n return value !== ComboBoxValues.multiEditOptionValue && isPlaceholderOrHidden;\r\n }\r\n\r\n return isPlaceholderOrHidden;\r\n};\r\n","import React, { forwardRef, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { combineRefs, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { ComboBoxComponent, ComboBoxOption, ComboBoxValues } from \"../ComboBoxComponent\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { EnumLoader } from \"../EnumLoader\";\r\nimport { EnumProvider } from \"../EnumProvider\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport {\r\n ComboBoxControlDataAttributesProps,\r\n EditableControlComponentProps,\r\n} from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\nimport { LocalizedComboBoxOptionsWrapper } from \"./LocalizedComboBoxOptionsWrapper\";\r\nimport {\r\n getMultiEditOption,\r\n isEmpty,\r\n removeHidden,\r\n updateEmptyOptionValueIfNeeded,\r\n updateValueInMultiEditing,\r\n} from \"./utils\";\r\n\r\nexport type ComboBoxProps = Omit<EditableControlComponentProps, \"ref\"> & ComboBoxControlDataAttributesProps;\r\n\r\nexport const ComboBox: ForwardRefType<HTMLSelectElement, ComboBoxProps> = forwardRef<HTMLSelectElement, ComboBoxProps>(({\r\n id,\r\n dataKey,\r\n enumName,\r\n hideValues,\r\n placeholderLocKey,\r\n onBlur,\r\n onChange: onChangeExternal,\r\n onMount,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onMouseDown,\r\n onKeyDown,\r\n onClick,\r\n triggerValueChange,\r\n encrypted,\r\n multiEditActive,\r\n enabledVisual,\r\n recommended,\r\n required,\r\n postponedRequired,\r\n isEditing,\r\n externalErrors,\r\n onValidityChanged,\r\n isInRequiredInvalidState,\r\n}, forwardRef) => {\r\n const innerRef = useRef<HTMLSelectElement | null>(null);\r\n const ref = combineRefs(innerRef, forwardRef);\r\n\r\n // Příznak indikující, zda se v rámci daného comboboxu provedla změna hodnoty v rámci multieditace.\r\n // Příznak je nutné si držet kvůli situacím, kdy je na stejnou redux hodnotu napojených více comboboxů\r\n // a změna v jednom z nich by v režimu multieditace změnila hodnotu i v ostatních.\r\n const [valueChangedInMultiEditMode, setValueChangedInMultiEditMode] = useState<boolean>(false);\r\n\r\n useEffect(() => {\r\n onMount && onMount({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n getControlValue: (rawValue) => {\r\n // hodnota k zobrazení musí být nemínusové číslo, mínusové hodnoty mají všechny defaultní optiony\r\n if (rawValue == null || Number.isNaN(rawValue) || rawValue < 0) {\r\n return null;\r\n }\r\n return rawValue.toString();\r\n },\r\n convertControlValueToRawValue: (controlValue) => controlValue?.valueOf(),\r\n });\r\n }, [onMount]);\r\n\r\n const comboBox = (options: ReadonlyArray<ComboBoxOption>) => {\r\n return (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => {\r\n let value: string | undefined = rawValue?.toString();\r\n let visibleOptions: ReadonlyArray<ComboBoxOption> = removeHidden(options, isEditing);\r\n // režim multieditace\r\n if (multiEditActive) {\r\n // pokud jsme v režimu multieditace, probíha editace a hodnota comboboxu je změněna, je nutné smazat možnost multieditace z comboboxu\r\n if (isEditing && valueChangedInMultiEditMode) {\r\n visibleOptions = visibleOptions.filter(op => op.value !== ComboBoxValues.multiEditOptionValue);\r\n }\r\n // pokud jsme zrušili editaci v rámci multieditace, resetujeme přiznak `valueChangedInMultiEditMode`\r\n if (!isEditing && valueChangedInMultiEditMode) {\r\n setValueChangedInMultiEditMode(false);\r\n }\r\n // Viz `valueChangedInMultiEditMode`.\r\n // Abysme zajistili, že se nezmění hodnota u dalších comboboxů, které můžou být na redux hodnotu napojeny,\r\n // je nutné updatovat jenom comboboxy, u kterých se už hodnota měnila.\r\n value = valueChangedInMultiEditMode ? updateValueInMultiEditing(visibleOptions, value, isEditing, required) : getMultiEditOption(options)?.value.toString();\r\n } else {\r\n // Pokud nejsme v režimu multieditace, hodnota comboboxu se může měnit pouze tehdy, je li prázdna.\r\n value = updateEmptyOptionValueIfNeeded(value);\r\n }\r\n\r\n return (\r\n <ValidationErrorWrapper {...{ dataKey, instantValidationFnDescriptions: EMPTY_ARRAY, explicitValidationFnDescriptions: EMPTY_ARRAY, externalErrors, isInRequiredInvalidState, onValidityChanged }}>\r\n {({ invalid, validate }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }}>\r\n {({ backgroundColor, disabled, readOnly }) => (\r\n <ComboBoxComponent\r\n name={id}\r\n isEmpty={isEmpty(visibleOptions, value, multiEditActive)}\r\n {...{\r\n id,\r\n encrypted,\r\n required,\r\n backgroundColor,\r\n disabled,\r\n readOnly,\r\n invalid,\r\n onClick,\r\n onMouseLeave,\r\n onMouseEnter,\r\n onMouseOver,\r\n onMouseDown,\r\n onKeyDown,\r\n onFocus,\r\n options: visibleOptions,\r\n ref,\r\n value,\r\n }\r\n }\r\n\r\n onChange={(e) => {\r\n onChange(e);\r\n onChangeExternal && onChangeExternal(e);\r\n validate();\r\n triggerValueChange && triggerValueChange();\r\n // Pokud jsme v rámci režimu multieditace udělali změnu, nastavíme příznak na true\r\n if (multiEditActive && e !== ComboBoxValues.multiEditOptionValue) {\r\n setValueChangedInMultiEditMode(true);\r\n }\r\n }}\r\n onBlur={(e) => {\r\n validate();\r\n onBlur && onBlur(e);\r\n }}\r\n />\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ ValidationErrorWrapper>\r\n );\r\n }\r\n }\r\n </ControlValueWrapper>\r\n );\r\n };\r\n\r\n return (\r\n <EnumLoader enumName={enumName}>\r\n <EnumProvider enumName={enumName}>\r\n { ({ enumType }) => (\r\n enumType ? (\r\n <LocalizedComboBoxOptionsWrapper {...{ enumType, placeholderLocKey, multiEditActive, isEditing, required, hideValues }}>\r\n { ({ options }) => (\r\n comboBox(options)\r\n )}\r\n </LocalizedComboBoxOptionsWrapper>\r\n ) : comboBox(EMPTY_ARRAY)\r\n )}\r\n </EnumProvider>\r\n </EnumLoader>\r\n );\r\n});\r\n","export { ComboBox, ComboBoxProps } from \"./ComboBox\";\r\n","import React, { ComponentType, FunctionComponent } from \"react\";\r\n\r\nexport type ConditionalMountProps = {\r\n /**\r\n * Příznak pro zobrazení komponenty.\r\n */\r\n mounted: boolean;\r\n /**\r\n * Komponenta, která se má vykreslit, pokud je podmínka splněna.\r\n */\r\n Component?: ComponentType;\r\n /**\r\n * Dodatečné props pro vykreslovanou komponentu.\r\n */\r\n [key: string]: any;\r\n};\r\n\r\nexport const ConditionalMount: FunctionComponent<ConditionalMountProps> = ({ mounted, Component, ...restProps }) => (\r\n mounted && Component ? <Component {...restProps} /> : null\r\n);\r\n","export * from \"./ConditionalMount\";\r\n","import React, { CSSProperties, forwardRef, Fragment, ReactNode, useMemo } from \"react\";\r\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, CellMeasurerCacheParams, IndexRange, List, ListProps, OnScrollCallback } from \"react-virtualized\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, KeyGeneratorType, RowRenderer } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { DataGridVariant, VirtualizedListStickyComponentCreator } from \"../types\";\r\n\r\nexport type VirtualizedListProps<T> = {\r\n /** Data pro vykreslení položek. */\r\n readonly items: ReadonlyArray<T>;\r\n /** Funkce pro generování klíčů položek. */\r\n readonly keyGenerator: KeyGeneratorType<T>;\r\n /** Funkce pro vykreslení položek. */\r\n readonly itemRenderer: RowRenderer<T>;\r\n /** Parametry pro cache rozměrů položek. */\r\n readonly cellMeasureCacheParams: CellMeasurerCacheParams;\r\n /** Zaskroluje na daný index. */\r\n readonly scrollToIndex?: number;\r\n /** Nastavuje zarovnání scrollu. */\r\n readonly scrollToAlignment?: ListProps[\"scrollToAlignment\"];\r\n /** Odhad výšky záznamu. */\r\n readonly estimatedRowSize?: number;\r\n /** Upravuje výchozí chování vzhledu. */\r\n readonly variant?: DataGridVariant;\r\n /** Callback volaný při scrollování listem. */\r\n readonly onScroll?: OnScrollCallback;\r\n /** Funkce pro vytvoření hlavičky. */\r\n readonly stickyHeaderCreator?: VirtualizedListStickyComponentCreator;\r\n /** Funkce pro vytvoření patičky. */\r\n readonly stickyFooterCreator?: VirtualizedListStickyComponentCreator;\r\n /** Funkce volaná po vykreslení řádků - interní využití. */\r\n readonly onRowsRendered?: (indexRange: IndexRange) => void;\r\n /** Funkce pro vykreslení obsahu namísto položek v případě, že nejsou dostupná žádná data. */\r\n readonly noRowsRenderer?: () => JSX.Element;\r\n};\r\n\r\nconst STICKY_HEADER_KEY = \"virtualized-list-sticky-header\";\r\nconst STICKY_FOOTER_KEY = \"virtualized-list-sticky-footer\";\r\n\r\nconst classNames = bemClassNames(\"virtualized-list-component\");\r\n\r\nexport const VirtualizedList: ForwardRefType<List, VirtualizedListProps<any>> = forwardRef<List, VirtualizedListProps<any>>(({\r\n items,\r\n itemRenderer,\r\n keyGenerator,\r\n cellMeasureCacheParams,\r\n estimatedRowSize,\r\n scrollToIndex,\r\n scrollToAlignment,\r\n variant = DataGridVariant.default,\r\n onScroll,\r\n stickyHeaderCreator,\r\n stickyFooterCreator,\r\n onRowsRendered,\r\n noRowsRenderer,\r\n}, ref) => {\r\n /**\r\n * Cache má jako klíče indexy, proto se musí vytvořit znovu při změně dat, jinak by používala výšky nesprávných položek.\r\n * Cache slouží pro jednu sadu položek při jejich scrollování.\r\n */\r\n const cache = new CellMeasurerCache(cellMeasureCacheParams);\r\n const hasHeader = !!stickyHeaderCreator;\r\n const hasFooter = !!stickyFooterCreator;\r\n const rowCount = useMemo(\r\n () => {\r\n if (items.length > 0) {\r\n return items.length + (hasHeader ? 1 : 0) + (hasFooter ? 1 : 0);\r\n }\r\n\r\n return items.length;\r\n },\r\n [items, hasHeader, hasFooter],\r\n );\r\n\r\n return (\r\n <div className={classNames({ variant })}>\r\n <AutoSizer>\r\n {({ width, height }) => (\r\n <Fragment>\r\n {stickyHeaderCreator && (\r\n <div className={classNames(\"sticky-header\")}>\r\n {stickyHeaderCreator(width)}\r\n </div>\r\n )}\r\n <List\r\n tabIndex={null}\r\n rowHeight={cache.rowHeight}\r\n deferredMeasurementCache={cache}\r\n {...{ width, height, rowCount, onRowsRendered, ref, noRowsRenderer, estimatedRowSize, scrollToIndex, scrollToAlignment, onScroll }}\r\n role={Role.rowGroup}\r\n rowRenderer={({ index, style, parent }) => {\r\n const key = internalKeyGenerator(index, items, keyGenerator, hasHeader, hasFooter);\r\n return (\r\n <CellMeasurer\r\n key={key}\r\n cache={cache}\r\n parent={parent}\r\n index={index}\r\n >\r\n {internalItemRenderer(index, items, itemRenderer, style, width, stickyHeaderCreator, stickyFooterCreator)}\r\n </CellMeasurer>\r\n );\r\n }}\r\n />\r\n {stickyFooterCreator && (\r\n <div className={classNames(\"sticky-footer\")}>\r\n {stickyFooterCreator(width)}\r\n </div>\r\n )}\r\n </Fragment>\r\n )}\r\n </AutoSizer>\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Vygeneruje klíč pro položku listu. Generuje speciální klíč pro hlavičku a patičku. Pro zbývající položky listu používá generátor\r\n * dodaný v props.\r\n */\r\nconst internalKeyGenerator = <T,>(index: number, items: ReadonlyArray<T>, keyGenerator: KeyGeneratorType<T>, hasHeader: boolean, hasFooter: boolean) => {\r\n const prefixItemsCount = hasHeader ? 1 : 0;\r\n if (hasHeader && index === 0) {\r\n return STICKY_HEADER_KEY;\r\n } else if (hasFooter && index === (items.length + prefixItemsCount)) {\r\n return STICKY_FOOTER_KEY;\r\n } else {\r\n const itemIndex = index - prefixItemsCount;\r\n return keyGenerator(items[itemIndex], itemIndex, items);\r\n }\r\n};\r\n\r\n/**\r\n * Vykreslí položku listu. Řeší vykreslení hlavičky/patičky na první/poslední pozici, pokud jsou specifikované. Zbylé položky jsou vykresleny\r\n * pomocí funkce dodané v props.\r\n */\r\nconst internalItemRenderer = <T,>(\r\n index: number,\r\n items: ReadonlyArray<T>,\r\n itemRenderer: RowRenderer<T>,\r\n style: CSSProperties,\r\n width: number,\r\n stickyHeaderCreator?: VirtualizedListStickyComponentCreator,\r\n stickyFooterCreator?: VirtualizedListStickyComponentCreator,\r\n): ReactNode => {\r\n const prefixItemsCount = stickyHeaderCreator ? 1 : 0;\r\n if (stickyHeaderCreator && index === 0) {\r\n return (\r\n <div style={style} className={classNames(\"inner-sticky-header\")}>\r\n {stickyHeaderCreator(width)}\r\n </div>\r\n );\r\n } else if (stickyFooterCreator && index === (items.length + prefixItemsCount)) {\r\n return (\r\n <div style={style} className={classNames(\"inner-sticky-footer\")}>\r\n {stickyFooterCreator(width)}\r\n </div>\r\n );\r\n } else {\r\n const itemIndex = index - prefixItemsCount;\r\n return (\r\n <div style={style}>\r\n {itemRenderer(items[itemIndex], itemIndex, items)}\r\n </div>\r\n );\r\n }\r\n};\r\n","export * from \"./VirtualizedList\";\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Index, InfiniteLoader } from \"react-virtualized\";\r\n\r\nimport { bemClassNames, DEFAULT_DATA_COUNT_TO_LOAD, doNothing, useForceUpdate } from \"@multiweb/reactUtils\";\r\nimport { FetchingState } from \"@multiweb/types/react\";\r\nimport { DataGridVariant } from \"../types\";\r\nimport { VirtualizedList, VirtualizedListProps } from \"../VirtualizedList\";\r\n\r\nexport type InfiniteVirtualizedListProps<T> = VirtualizedListProps<T> & {\r\n /** Počet dat k dočtení. Slouží pro vytvoření patřičného počtu skeletonů. */\r\n dataCountToLoad?: number;\r\n /** Určuje, zda je možné načítat další data. */\r\n canLoadNextItems: boolean;\r\n /** Uchovává informaci, v jakém stavu je načítání dat. */\r\n fetchingState: FetchingState;\r\n /** Upravuje výchozí chování vzhledu VirtualizedListu. */\r\n variant?: DataGridVariant;\r\n /** Odhad výšky záznamu. */\r\n estimatedRowSize?: number;\r\n /** Funkce, která slouží pro načítání dalších řádků s daty. */\r\n loadNextItems: (count: number) => void;\r\n /** Funkce, která vrací pole skeletonů. */\r\n createSkeletonRowsKeys: (count: number) => ReadonlyArray<T>;\r\n};\r\n\r\nconst asyncEmpty = new Promise(doNothing);\r\n\r\nconst classNames = bemClassNames(\"infinite-virtualized-list-component\");\r\n\r\nexport const InfiniteVirtualizedList = <T,>({\r\n items,\r\n keyGenerator,\r\n itemRenderer,\r\n cellMeasureCacheParams,\r\n canLoadNextItems,\r\n loadNextItems,\r\n dataCountToLoad = DEFAULT_DATA_COUNT_TO_LOAD,\r\n fetchingState,\r\n estimatedRowSize,\r\n scrollToIndex,\r\n variant = DataGridVariant.default,\r\n onScroll,\r\n stickyHeaderCreator,\r\n stickyFooterCreator,\r\n noRowsRenderer,\r\n createSkeletonRowsKeys,\r\n}: InfiniteVirtualizedListProps<T>) => {\r\n const [resolveLoadingPromise, setResolveLoadingPromise] = useState<(() => void) | null>();\r\n const [rejectLoadingPromise, setRejectLoadingPromise] = useState<(() => void) | null>();\r\n const forceUpdate = useForceUpdate();\r\n useEffect(() => {\r\n if (fetchingState === FetchingState.success && resolveLoadingPromise) {\r\n resolveLoadingPromise();\r\n } else if (fetchingState === FetchingState.error && rejectLoadingPromise) {\r\n rejectLoadingPromise();\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [fetchingState]);\r\n\r\n useEffect(() => {\r\n forceUpdate();\r\n }, [forceUpdate, itemRenderer]);\r\n\r\n const displaySkeletons = canLoadNextItems\r\n || fetchingState === FetchingState.initialized\r\n || fetchingState === FetchingState.request;\r\n\r\n const ivlItems = displaySkeletons ? items.concat(createSkeletonRowsKeys(dataCountToLoad)) : items;\r\n const rowCount = ivlItems.length;\r\n\r\n const isRowLoaded = ({ index }: Index) => {\r\n return index < items.length ? !!items[index] : false;\r\n };\r\n\r\n const asyncLoadNextItems = () =>\r\n new Promise<void>((resolve, reject) => {\r\n loadNextItems(dataCountToLoad);\r\n setResolveLoadingPromise(() => {\r\n resolve();\r\n setResolveLoadingPromise(null);\r\n setRejectLoadingPromise(null);\r\n });\r\n setRejectLoadingPromise(() => {\r\n reject();\r\n setResolveLoadingPromise(null);\r\n setRejectLoadingPromise(null);\r\n });\r\n });\r\n\r\n const loadMoreRows =\r\n fetchingState === FetchingState.request || !canLoadNextItems ? () => asyncEmpty : asyncLoadNextItems;\r\n\r\n return (\r\n <div className={classNames({ variant })}>\r\n <InfiniteLoader {...{ isRowLoaded, loadMoreRows, rowCount }}>\r\n {({ onRowsRendered, registerChild }) => (\r\n <VirtualizedList\r\n ref={registerChild}\r\n items={ivlItems}\r\n {...{\r\n cellMeasureCacheParams,\r\n itemRenderer,\r\n keyGenerator,\r\n onRowsRendered,\r\n stickyHeaderCreator,\r\n stickyFooterCreator,\r\n noRowsRenderer,\r\n variant,\r\n estimatedRowSize,\r\n onScroll,\r\n scrollToIndex,\r\n }}\r\n />\r\n )}\r\n </InfiniteLoader>\r\n </div>\r\n );\r\n};\r\n","export * from \"./InfiniteVirtualizedList\";\r\n","import React, { ReactNode, useEffect, useState } from \"react\";\r\n\r\nimport { bemClassNames, useInView } from \"@multiweb/reactUtils\";\r\n\r\nexport type ResponsiveListItemProps<T> = {\r\n /** Data pro vykreslení položky. */\r\n item: T;\r\n /** Funkce pro vykreslení položky. */\r\n itemRenderer: (item: T) => ReactNode;\r\n /** Určuje, zda je item první. Pokud ano, zobrazí se i pokud se do LLF nevleze celý. Defaultní hodnota je `false`. */\r\n isFirst?: boolean;\r\n /** Komponenta, vůči které se vyhodnocuje, zda je Item zobrazen. @see IntersectionObserver */\r\n root?: HTMLElement | null;\r\n /** Callback, který se volá při prvním zobrazení itemu. */\r\n onShownCallback?: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"responsive-list-item\");\r\n\r\nexport const ResponsiveListItem = <T,>({\r\n item,\r\n itemRenderer,\r\n isFirst = false,\r\n root,\r\n onShownCallback,\r\n}: ResponsiveListItemProps<T>) => {\r\n const [onShownCallbackCalled, setOnShownCallbackCalled] = useState<boolean>(!onShownCallback); // true, pokud handled nepředáme.\r\n const [ref, inView] = useInView({ threshold: isFirst ? 0 : 1, root });\r\n useEffect(() => {\r\n if (inView && !onShownCallbackCalled) {\r\n onShownCallback && onShownCallback();\r\n setOnShownCallbackCalled(true);\r\n }\r\n }, [inView, onShownCallback, onShownCallbackCalled]);\r\n\r\n return (\r\n <div className={classNames({ hidden: !inView })} ref={ref}>\r\n {itemRenderer(item)}\r\n </div>\r\n );\r\n};\r\n","import React, { ReactNode, useEffect, useRef, useState } from \"react\";\r\nimport { AutoSizer } from \"react-virtualized\";\r\n\r\nimport { bemClassNames, getApproximateRowsCount } from \"@multiweb/reactUtils\";\r\nimport { FetchingState } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { ResponsiveListItem } from \"./ResponsiveListItem/ResponsiveListItem\";\r\n\r\nconst classNames = bemClassNames(\"responsive-list\");\r\n\r\nexport type ResponsiveListProps<T> = {\r\n /** Data pro vykreslení položek. */\r\n items: ReadonlyArray<T>;\r\n /** Funkce pro vykreslení položek. */\r\n itemRenderer: (item: T) => ReactNode;\r\n /** Funkce, která slouží pro načítání dalších řádků s daty. */\r\n loadNextItems: (count: number) => void;\r\n /** Funkce, která vrací pole skeletonů. */\r\n createSkeletonRowsKeys: (count: number) => ReadonlyArray<T>;\r\n /** Určuje, zda je možné načítat další data. */\r\n canLoadNextItems: boolean;\r\n /** Uchovává informaci, v jakém stavu je načítání dat. */\r\n fetchingState: FetchingState;\r\n /** Počet dat, které se právě načítají. */\r\n fetchingCount: number;\r\n /** Funkce pro vykreslení obsahu namísto položek v případě, že nejsou dostupná žádná data. */\r\n noRowsRenderer?: () => JSX.Element;\r\n /** Funkce pro generování klíčů položek. */\r\n keyGenerator: (item: any) => string;\r\n /**\r\n * Minimální výška řádku. Určuje se pro výpočet počtu načtených dat. Výchozí hodnotou je konstanta *DATA_ROW_MIN_HEIGHT*,\r\n * která je minimální výškou DataRowTemplate (použití v LiteListFrame).\r\n *\r\n * Hodnota **nesmí** být větší než je reálná minimální výška itemu. Způsobilo by to pouze částečné naplnění ResponsiveListu.\r\n *\r\n * Pokud se používá customTemplate. Měla by se tato hodnota nastavit, aby nedocházelo k zbytečnému načítání dat.\r\n */\r\n minimalItemHeight?: number;\r\n};\r\n\r\n/** Zobrazí pouze tolik řádků, kolik se jich do komponenty vejde. Při změně své velikosti přepočítává množství řádků k zobrazení. */\r\nexport const ResponsiveList = <T,>(props: ResponsiveListProps<T>) => (\r\n <AutoSizer disableWidth>{({ height }) => <ResponsiveListInner {...props} height={height} />}</AutoSizer>\r\n);\r\n\r\nexport type ResponsiveListInnerProps<T> = ResponsiveListProps<T> & {\r\n /** Výška komponenty, podle které se dopočítávají další data. */\r\n height: number;\r\n};\r\n\r\nexport const ResponsiveListInner = <T,>({\r\n items,\r\n itemRenderer,\r\n loadNextItems,\r\n createSkeletonRowsKeys,\r\n canLoadNextItems,\r\n fetchingState,\r\n fetchingCount,\r\n noRowsRenderer,\r\n keyGenerator,\r\n minimalItemHeight,\r\n height,\r\n}: ResponsiveListInnerProps<T>) => {\r\n const [renderedCount, setRenderedCount] = useState<number>(1);\r\n const root = useRef<HTMLDivElement>(null);\r\n useEffect(() => {\r\n if (canLoadNextItems && height > 0) {\r\n const approximateCount = getApproximateRowsCount(height, minimalItemHeight);\r\n if (\r\n (fetchingState === FetchingState.success || fetchingState === FetchingState.initialized) &&\r\n items.length + fetchingCount < approximateCount\r\n ) {\r\n const loadCount = approximateCount - items.length; // Pokud načítám 4 itemy, ale vešlo by se jich 8, tak dočtení zavolám znovu. (první načítání se zruší)\r\n loadNextItems(loadCount);\r\n }\r\n }\r\n }, [canLoadNextItems, height, fetchingState, items, fetchingCount, minimalItemHeight, loadNextItems]);\r\n\r\n const skeletonIds = createSkeletonRowsKeys(fetchingCount);\r\n const renderItems = items.concat(skeletonIds);\r\n\r\n return (\r\n <div className={classNames()} ref={root} style={{ height }} role={Role.rowGroup}>\r\n {renderItems.slice(0, renderedCount).map((item, index) => (\r\n <ResponsiveListItem\r\n key={keyGenerator(item)}\r\n isFirst={index === 0}\r\n root={root.current}\r\n onShownCallback={\r\n // Při iteraci způsobí rerender jen poslednímu itemu (odstraní se z něj onShownCallback).\r\n index === renderedCount - 1 ? () => setRenderedCount(renderedCount + 1) : undefined\r\n }\r\n {...{ item, itemRenderer }}\r\n />\r\n ))}\r\n {items.length === 0 && fetchingState === FetchingState.success && noRowsRenderer && noRowsRenderer()}\r\n </div>\r\n );\r\n};\r\n","export { ResponsiveList, ResponsiveListProps } from \"./ResponsiveList\";\r\n","import React from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { FetchingState, KeyGeneratorType, RowRenderer } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { InfiniteVirtualizedList, InfiniteVirtualizedListProps } from \"../InfiniteVirtualizedList\";\r\nimport { ResponsiveList } from \"../ResponsiveList\";\r\nimport { DataGridVariant } from \"../types\";\r\n\r\nexport type DataGridProps<T> = {\r\n /** Data pro vykreslení položek. */\r\n items: ReadonlyArray<T>;\r\n /** Určuje, zdali se budou data dočítat postupně, nebo se načtou jen do viditelné části. */\r\n loadOnScroll: boolean;\r\n /** Určuje, zda se načítají další data. */\r\n fetchingState: FetchingState;\r\n /** Počet dat, které se právě načítají. */\r\n fetchingCount: number;\r\n /** Určuje, zda je možné načítat další data. */\r\n canLoadData: boolean;\r\n /** Zaskroluje na daný index. Použito ve VirtualizedListu. */\r\n scrollToIndex?: number;\r\n /** Počet dat k dočtění, určuje počet skeletonů pro VirtualizedList. */\r\n dataCountToLoad?: number;\r\n /** Upravuje výchozí chování vzhledu. */\r\n variant?: DataGridVariant;\r\n /** Odhad výšky záznamu pro InfiniteVirtualizedList. */\r\n estimatedRowSize?: number;\r\n /** Akce pro načtení dalších dat. */\r\n loadData: (count: number) => void;\r\n /** Funkce pro generování klíčů položek. */\r\n keyGenerator: KeyGeneratorType<T>;\r\n /** Funkce, která vrací pole skeletonů. */\r\n createSkeletonRowsKeys: (count: number) => ReadonlyArray<T>;\r\n /** Pokud v DataGridu nejsou žádná data, vykreslí element. */\r\n noRowsRenderer: () => JSX.Element;\r\n /** Vykreslí jednotlivé položky. */\r\n itemRenderer: RowRenderer<T>;\r\n} & Pick<InfiniteVirtualizedListProps<T>, \"onScroll\">;\r\n\r\nconst classNames = bemClassNames(\"data-grid-component\");\r\n\r\nexport const DataGrid = <T,>({\r\n items,\r\n loadOnScroll,\r\n fetchingState,\r\n fetchingCount,\r\n canLoadData,\r\n dataCountToLoad,\r\n estimatedRowSize,\r\n scrollToIndex,\r\n variant = DataGridVariant.default,\r\n loadData,\r\n keyGenerator,\r\n createSkeletonRowsKeys,\r\n noRowsRenderer,\r\n itemRenderer,\r\n onScroll,\r\n}: DataGridProps<T>) => (\r\n <div className={classNames({ variant })} role={Role.grid} aria-multiselectable={true} >\r\n {loadOnScroll ? (\r\n <InfiniteVirtualizedList\r\n cellMeasureCacheParams={{ fixedWidth: true }}\r\n loadNextItems={loadData}\r\n canLoadNextItems={canLoadData}\r\n {...{ items, fetchingState, keyGenerator, createSkeletonRowsKeys, noRowsRenderer, itemRenderer, dataCountToLoad, variant, estimatedRowSize, scrollToIndex, onScroll }}\r\n />\r\n ) : (\r\n <ResponsiveList\r\n loadNextItems={loadData}\r\n canLoadNextItems={canLoadData}\r\n {...{ items, fetchingState, fetchingCount, keyGenerator, createSkeletonRowsKeys, noRowsRenderer, itemRenderer }}\r\n />\r\n )}\r\n </div>\r\n );\r\n","export * from \"./DataGrid\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\n\r\nexport type DividerProps = {\r\n /** Téma oddělovače */\r\n theme?: ComponentTheme;\r\n};\r\n\r\nconst classNames = bemClassNames(\"divider-component\");\r\n\r\n/** Komponenta slouží jako vertikální vizuální oddělovač. */\r\nexport const Divider: FunctionComponent<DividerProps> = ({\r\n theme = ComponentTheme.default,\r\n}) => (\r\n <div className={classNames({ theme })} />\r\n);\r\n","export * from \"./Divider\";\r\n","import React, { FunctionComponent, KeyboardEventHandler, MouseEventHandler } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Icon, IconColor, IconSize } from \"../Icon\";\r\nimport { Text, TextColor } from \"../Text\";\r\n\r\nexport type DocumentDownloadButtonComponentProps = {\r\n /** Název souboru */\r\n filename: string;\r\n /** Příznak, zda je tlačítko vizuálně neaktivní */\r\n disabled?: boolean;\r\n /** Callback volaný po kliknutí na tlačítko */\r\n onClick: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volán po stisku klávesy */\r\n onKeyPress: KeyboardEventHandler<HTMLButtonElement>;\r\n};\r\n\r\nconst classNames = bemClassNames(\"document-download-button-component\");\r\n\r\nexport const DocumentDownloadButtonComponent: FunctionComponent<DocumentDownloadButtonComponentProps> = ({\r\n filename,\r\n disabled = false,\r\n onClick,\r\n onKeyPress,\r\n}) => (\r\n <button\r\n title={filename}\r\n className={classNames({ disabled })}\r\n {...{\r\n disabled,\r\n onClick,\r\n onKeyPress,\r\n }}\r\n >\r\n <Icon\r\n disabled={disabled}\r\n size={IconSize.small}\r\n iconCode={IconCode.docAttachment}\r\n color={IconColor.colorPrimary}\r\n />\r\n <span className={classNames(\"text\", { disabled })}>\r\n <Text\r\n value={filename}\r\n disabled={disabled}\r\n color={TextColor.colorPrimary}\r\n ellipsis\r\n />\r\n </span>\r\n </button>\r\n);\r\n","export * from \"./DocumentDownloadButtonComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type DotCheckBoxProps = {\r\n /** Callback volaný na kliknutí */\r\n onChange?: (checked: boolean) => void;\r\n /** Příznak, zda je pole určené pouze pro čtení, deaktivuje možnost kliknutí */\r\n readOnly?: boolean;\r\n /** Nápověda po najetí myši */\r\n title?: string;\r\n /** Příznak, zda je pole zaškrtnuté */\r\n value: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"dot-check-box-component\");\r\n\r\n/** Dvoustavové tečkové zaškrtávací pole bez štítku */\r\nexport const DotCheckBox: FunctionComponent<DotCheckBoxProps> = ({\r\n onChange,\r\n readOnly = false,\r\n title,\r\n value,\r\n}) => {\r\n const handleClick = () => {\r\n if (!readOnly && onChange) {\r\n onChange(!value);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n onClick={handleClick}\r\n className={classNames()}\r\n title={title}\r\n tabIndex={1}\r\n >\r\n <input\r\n className={classNames(\"hidden-check-box\")}\r\n readOnly\r\n type=\"checkbox\"\r\n checked={value}\r\n />\r\n <div\r\n className={classNames(\"styled-check-box\", {\r\n \"read-only\": readOnly,\r\n checked: value,\r\n unchecked: !value,\r\n })}\r\n />\r\n </div>\r\n );\r\n};\r\n","export * from \"./DotCheckBox\";\r\n","/** Konstanta pro dragging eventy v DraggableTree. */\r\nexport const DRAG_TRANSFER_KEY = \"DRAGGABLE_TREE_DATA_TRANSFER_KEY\";\r\n/** Doba v ms, po kterou se má počkat s vykonáním DragOver události. */\r\nexport const DEBOUNCE_TIME_DELAY = 60;\r\n","import { HTMLAttributes, ReactNode } from \"react\";\r\n\r\nexport type DraggableItem = {\r\n /** ID prvku, unikátní v rámci stromu. */\r\n readonly id: string;\r\n /** Učuje stav, zdali se pod prvkem mají zobrazit jeho potomci. */\r\n readonly expanded: boolean;\r\n /** Seznam ID-ček potomků a jejich pořadí. */\r\n readonly children: readonly string[];\r\n};\r\n\r\nexport type ItemRendererType = (htmlElementProps: HTMLAttributes<HTMLElement>, item: DraggableItem, dragOverPosition: DragOverPosition | null) => ReactNode;\r\n\r\n/** Typ popisující pozici kurzoru nad komponentou v době provolání události DragOver. */\r\nexport type DragOverPosition = \"Top\" | \"Middle\" | \"Bottom\";\r\n","import React, { FunctionComponent, HTMLAttributes, MouseEventHandler, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ButtonBackgroundColor } from \"../ButtonProvider\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { Text, WhiteSpace } from \"../Text\";\r\nimport { DragOverPosition } from \"./types\";\r\n\r\ntype DefaultItemRendererProps = {\r\n readonly htmlElementProps: HTMLAttributes<HTMLElement>;\r\n readonly itemId: string;\r\n readonly value: string;\r\n readonly isExpanded: boolean;\r\n readonly hasChildren: boolean;\r\n readonly dragOverPosition: DragOverPosition | null;\r\n readonly onChevronClick: (itemId: string) => void;\r\n readonly onItemClick: (itemId: string) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"default-item-renderer\");\r\n\r\n/** Defaultní implementace pro renderer řádku komponenty DraggableTree. Tuto komponentu můžete, ale nemusíte využít pro zobrazení řádků vašeho stromu. */\r\nexport const DefaultItemRenderer: FunctionComponent<DefaultItemRendererProps> = ({ htmlElementProps, itemId, value, isExpanded, hasChildren, dragOverPosition, onChevronClick, onItemClick }) => {\r\n const [isMouseOver, setIsMouseOver] = useState(false);\r\n\r\n const handleItemClick = () => onItemClick(itemId);\r\n const enableHover = () => setIsMouseOver(true);\r\n const disableHover = () => setIsMouseOver(false);\r\n const handleChevronClick: MouseEventHandler<HTMLSpanElement> = (e) => {\r\n e.stopPropagation();\r\n onChevronClick(itemId);\r\n };\r\n\r\n return (\r\n <div className={classNames({ \"mouse-over\": isMouseOver })} onBlur={disableHover} onFocus={enableHover} onMouseOver={enableHover} onMouseLeave={disableHover} {...htmlElementProps}>\r\n <span className={classNames(\"inner-wraper\", { \"drag-over\": dragOverPosition !== null })} onClick={handleItemClick}>\r\n {hasChildren && (\r\n <IconButton\r\n iconCode={isExpanded ? IconCode.uiChevronBottomSmall : IconCode.uiChevronRightSmall}\r\n color={IconColor.colorPrimary}\r\n onClick={handleChevronClick}\r\n backgroundColor={ButtonBackgroundColor.transparent} />\r\n )}\r\n <span className={classNames(\"value-wrapper\", { \"has-children\": hasChildren })}>\r\n <Icon iconCode={IconCode.uiCardView} color={IconColor.blue} />\r\n <Text value={value} isTextSelectable={false} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </span>\r\n </span>\r\n </div>\r\n );\r\n};\r\n","import React, { createContext, FunctionComponent, PropsWithChildren, useMemo } from \"react\";\r\n\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { DraggableItem } from \"./types\";\r\n\r\ntype DraggableItemsContextType = {\r\n readonly getDraggableItem: (id: string) => DraggableItem | undefined;\r\n};\r\n\r\nexport const DraggableItemsContext = createContext<DraggableItemsContextType | null>(null);\r\n\r\ntype DraggableItemsContextProviderProps = PropsWithChildren<{\r\n readonly items: TypedObject<DraggableItem>;\r\n}>;\r\n\r\nexport const DraggableItemsContextProvider: FunctionComponent<DraggableItemsContextProviderProps> = ({ items, children }) => {\r\n const value = useMemo<DraggableItemsContextType>(() => ({\r\n getDraggableItem: (itemId: string) => items[itemId],\r\n }), [items]);\r\n\r\n return (\r\n <DraggableItemsContext.Provider value={value}>\r\n {children}\r\n </DraggableItemsContext.Provider>\r\n );\r\n};\r\n","import { FunctionComponent, ReactElement, useContext, useMemo } from \"react\";\r\n\r\nimport { DraggableItemsContext } from \"./DraggableItemsContextProvider\";\r\nimport { DraggableItem } from \"./types\";\r\n\r\nexport type DraggableItemProviderComponentChildrenProps = {\r\n /** Prvek daného ID. */\r\n readonly item: DraggableItem;\r\n};\r\n\r\ntype DraggableItemProviderProps = {\r\n /** ID prvku stromu. */\r\n readonly itemId: string;\r\n readonly children: (props: DraggableItemProviderComponentChildrenProps) => ReactElement;\r\n};\r\n\r\n/** Komponenta se chová jako takový pseudo selector, kdy odstiňuje logiku memoizace konkrétního prvku stromu. */\r\nexport const DraggableItemProvider: FunctionComponent<DraggableItemProviderProps> = ({ itemId, children }) => {\r\n const draggableItemsContext = useContext(DraggableItemsContext);\r\n const item = draggableItemsContext?.getDraggableItem(itemId);\r\n\r\n if (item === undefined)\r\n throw new Error(`No item of given id '${itemId}' was found!`);\r\n\r\n return useMemo(() => children({ item }), [children, item]);\r\n};\r\n","import { DragEvent } from \"react\";\r\n\r\nimport { DragOverPosition } from \"./types\";\r\n\r\n/** Funkce pro vytvoření klíče pro DataTransfer objekt. */\r\nexport const createDataTransferKey = (key: string, itemId: string): string => `${key}:${itemId}`;\r\n\r\n/** Vrací hodnotu ID dragovaného prvku */\r\nexport const getItemIdFromKey = (dataTransferKey: string): string => dataTransferKey.split(\":\")[1];\r\n\r\n/** Vypočítává pozici kurzoru vůči prvku, nad kterým právě probíhá událost dragOver. */\r\nexport const getDragOverPosition = (e: DragEvent<HTMLElement>, ignoreMiddlePosition: boolean): DragOverPosition => {\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n const height = rect.height;\r\n const y = e.clientY - rect.top; //y position within the element.\r\n\r\n if (ignoreMiddlePosition) {\r\n return y < height / 2 ? \"Top\" : \"Bottom\";\r\n }\r\n\r\n if (y < height / 3) {\r\n return \"Top\";\r\n }\r\n\r\n if (y > (height / 3) * 2) {\r\n return \"Bottom\";\r\n }\r\n\r\n return \"Middle\";\r\n};\r\n","import React, { Fragment, FunctionComponent, HTMLAttributes, memo, ReactElement, useCallback, useMemo, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { DEBOUNCE_TIME_DELAY, DRAG_TRANSFER_KEY } from \"./constants\";\r\nimport { DraggableItemProvider, DraggableItemProviderComponentChildrenProps } from \"./DraggableItemProvider\";\r\nimport { DragOverPosition, ItemRendererType } from \"./types\";\r\nimport { createDataTransferKey, getDragOverPosition, getItemIdFromKey } from \"./utils\";\r\n\r\nexport type DraggableTreeItemProp = {\r\n /** ID prvku stromu. */\r\n readonly itemId: string;\r\n /** Příznak pro ignorování středové pozice. */\r\n readonly ignoreMiddlePosition: boolean;\r\n /** Funkce vracející podobu prvku stromu. */\r\n readonly itemRenderer: ItemRendererType;\r\n /** Callback volaný při dropnutí prvku stromu. */\r\n readonly changeItemsHierarchy: (itemId: string, toItemId: string, hierarchyPosition: DragOverPosition) => void;\r\n /** Callback volaný při dragOver, který určuje, jestli může prvek být dropnut. */\r\n readonly canDropItem: (draggedItemId: string, toItemId: string, hierarchyPosition: DragOverPosition) => boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"draggable-tree-item\");\r\n\r\nexport const DraggableTreeItem: FunctionComponent<DraggableTreeItemProp> = memo(({ itemId, ignoreMiddlePosition, itemRenderer, changeItemsHierarchy, canDropItem }) => {\r\n const currentDropEffectRef = useRef<\"link\" | \"none\" | \"copy\" | \"move\">(\"move\");\r\n const isDebounced = useRef(false);\r\n const [dragOverPosition, setDragOverPosition] = useState<DragOverPosition | null>(null);\r\n\r\n const htmlElementProps: HTMLAttributes<HTMLElement> = useMemo(() => ({\r\n draggable: true,\r\n onDragStart: (e) => e.dataTransfer.setData(createDataTransferKey(DRAG_TRANSFER_KEY, itemId), itemId),\r\n onDragEnd: () => setDragOverPosition(null),\r\n onDragEnter: () => {\r\n isDebounced.current = false;\r\n setTimeout(() => isDebounced.current = true, DEBOUNCE_TIME_DELAY);\r\n },\r\n onDragLeave: (e) => {\r\n if (e.currentTarget === e.target)\r\n setDragOverPosition(null);\r\n },\r\n onDragOver: (e) => {\r\n e.preventDefault();\r\n e.dataTransfer.dropEffect = currentDropEffectRef.current;\r\n\r\n if (!isDebounced.current)\r\n return;\r\n\r\n const newDragOverPosition = getDragOverPosition(e, ignoreMiddlePosition);\r\n\r\n if (newDragOverPosition === dragOverPosition) {\r\n return;\r\n }\r\n\r\n setDragOverPosition(newDragOverPosition);\r\n const draggedItemId = getItemIdFromKey(e.dataTransfer.types[0]);\r\n\r\n if (!canDropItem(draggedItemId, itemId, newDragOverPosition)) {\r\n e.dataTransfer.dropEffect = currentDropEffectRef.current = \"none\";\r\n return;\r\n }\r\n\r\n currentDropEffectRef.current = e.dataTransfer.dropEffect = \"copy\";\r\n },\r\n onDrop: (e) => {\r\n e.preventDefault();\r\n\r\n if (dragOverPosition)\r\n changeItemsHierarchy(e.dataTransfer.getData(e.dataTransfer.types[0]), itemId, dragOverPosition);\r\n\r\n setDragOverPosition(null);\r\n },\r\n }), [dragOverPosition, itemId, ignoreMiddlePosition, changeItemsHierarchy, canDropItem]);\r\n\r\n const innerRenderer = useCallback<(props: DraggableItemProviderComponentChildrenProps) => ReactElement>(({ item }) =>\r\n <Fragment>\r\n {itemRenderer(htmlElementProps, item, dragOverPosition)}\r\n {(item.expanded && item.children.length !== 0) && (\r\n <div className={classNames()}>\r\n {item.children.map(childId =>\r\n <DraggableTreeItem key={childId} itemId={childId} {...{ itemRenderer, changeItemsHierarchy, ignoreMiddlePosition, canDropItem }} />,\r\n )}\r\n </div>\r\n )}\r\n </Fragment>, [htmlElementProps, dragOverPosition, ignoreMiddlePosition, itemRenderer, changeItemsHierarchy, canDropItem]);\r\n\r\n return (\r\n <DraggableItemProvider itemId={itemId}>\r\n {innerRenderer}\r\n </DraggableItemProvider>\r\n );\r\n});\r\n","import React, { FunctionComponent, memo } from \"react\";\r\n\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { DraggableItemsContextProvider } from \"./DraggableItemsContextProvider\";\r\nimport { DraggableTreeItem, DraggableTreeItemProp } from \"./DraggableTreeItem\";\r\nimport { DraggableItem } from \"./types\";\r\n\r\nexport type DraggableTreeProps = {\r\n /** Seznam ID-ček kořenových prvků stromu. */\r\n readonly rootItems: readonly string[];\r\n /** Objekt obsahující definici všech prvků dragovatelného stromu. */\r\n readonly items: TypedObject<DraggableItem>;\r\n} & Pick<DraggableTreeItemProp, \"changeItemsHierarchy\" | \"itemRenderer\" | \"canDropItem\" | \"ignoreMiddlePosition\">;\r\n\r\n/** Komponenta pro zobrazení stromové struktury, umožňující dragování prvků napříc stromem. */\r\nexport const DraggableTree: FunctionComponent<DraggableTreeProps> = memo(({ rootItems, items, ignoreMiddlePosition = false, changeItemsHierarchy, itemRenderer, canDropItem }) => (\r\n <DraggableItemsContextProvider items={items}>\r\n {rootItems.map(x =>\r\n <DraggableTreeItem key={x} itemId={x} {...{ changeItemsHierarchy, itemRenderer, ignoreMiddlePosition, canDropItem }} />,\r\n )}\r\n </DraggableItemsContextProvider>\r\n));\r\n","export { DRAG_TRANSFER_KEY } from \"./constants\";\r\nexport { DefaultItemRenderer } from \"./DefaultItemRenderer\";\r\nexport { DraggableTree } from \"./DraggableTree\";\r\nexport { DraggableItem, DragOverPosition, ItemRendererType } from \"./types\";\r\nexport { createDataTransferKey, getDragOverPosition, getItemIdFromKey } from \"./utils\";\r\n","import React, { ComponentType, forwardRef } from \"react\";\r\n\r\nimport { ForwardRefType, KnownKeys } from \"@multiweb/types/react\";\r\nimport { LocalizationLoader } from \"UI/UI.React/components/LocalizationLoader\";\r\nimport { LocalizationProvider } from \"UI/UI.React/components/LocalizationProvider\";\r\n\r\ntype TLocKey = { locKey: string | undefined};\r\n/** Typ obsahující výslednou lokalizaci (text a její popisek) */\r\ntype LocalizationResult = {text: string; title: string};\r\n/**\r\n * Typ, který slouží k namapování props komponenty na `locKey`, který se použije pro získání lokalizace\r\n */\r\nexport type MapLocKey<TComponentProps> = (props: React.PropsWithChildren<TComponentProps>) => TLocKey;\r\n/**\r\n * Typ, který mapuje získanou lokalizaci do props lokalizované komponenty.\r\n * `text` obsahuje překlad lokalizačního klíče.\r\n * `title` obsahuje popisek lokalizačního klíče.\r\n */\r\nexport type MapLocalizationToProps<TComponentProps> = (localization: LocalizationResult) => TComponentProps;\r\n\r\n/**\r\n * HOC, které lokalizuje komponentu. Přijímá argument `locKey` na základě kterého vrátí text a popisek, který se namapuje do props obalované komponenty.\r\n * @param mapLocalizationToProps Typ, který slouží k namapování props komponenty na `locKey`, který se použije pro získání lokalizace\r\n * @param mapLocKey Typ, který mapuje získanou lokalizaci do props lokalizované komponenty\r\n * @returns Lokalizovaná komponenta\r\n */\r\nexport const withLocalization =\r\n<TStateProps, TComponentProps> (mapLocalizationToProps: MapLocalizationToProps<TStateProps>, mapLocKey: MapLocKey<Omit<TComponentProps, KnownKeys<TStateProps>>>) =>\r\n (Component: ComponentType<TComponentProps>): ForwardRefType<HTMLElement, Omit<TComponentProps, KnownKeys<TStateProps>>> => {\r\n //Záměrně obcházíme typovou kontrolu. Protože `LocalizedComponent` potřebují mít na vstupu celé props. Ale z metody je potřeba vrátit komponentu bez props, které byly naplněny tady a nebyly pak vynucovány\r\n const LocalizedComponent = forwardRef<HTMLElement, TComponentProps>((props, ref) => {\r\n const locKey = mapLocKey(props).locKey || \"\";\r\n return (\r\n <LocalizationLoader locKey={locKey}>\r\n <LocalizationProvider locKey={locKey}>\r\n {({ text, title }) => <Component {...mapLocalizationToProps({ text, title })} {...props}\r\n ref={ref}/>}\r\n </LocalizationProvider>\r\n </LocalizationLoader>\r\n );\r\n }) as ForwardRefType<HTMLElement, Omit<TComponentProps, KnownKeys<TStateProps>>>;\r\n return LocalizedComponent;\r\n };\r\n","import { InputType } from \"../Input\";\r\n\r\n/** Typ podporovaných typů editačního pole. */\r\nexport type EditComponentInputType = InputType.text | InputType.password;\r\n","import React, { ClipboardEventHandler, createRef, FocusEventHandler, forwardRef, useEffect, useState } from \"react\";\r\n\r\nimport { bemClassNames, combineRefs, TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT, useForceUpdate } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport {\r\n AccessibilityProps,\r\n ForwardRefType,\r\n OnJavaScriptChange,\r\n OptionalTabIndex,\r\n TextAlign,\r\n TextDirectionality,\r\n} from \"@multiweb/types/react\";\r\nimport { ButtonBackgroundColor } from \"../ButtonProvider\";\r\nimport { EncryptedSymbol } from \"../EncryptedSymbol\";\r\nimport { IconColor } from \"../Icon\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { Input, InputType } from \"../Input\";\r\nimport { SpacingSize } from \"../Layout\";\r\nimport { FormComponentEventHandlersProps, FormComponentProps } from \"../types\";\r\nimport { generateFormComponentClasses } from \"../utils\";\r\nimport { EditComponentInputType } from \"./types\";\r\n\r\nconst classNames = bemClassNames(\"edit-component\");\r\n\r\nexport type AdornmentIconOptions = {\r\n icon?: IconCode;\r\n iconColor?: IconColor;\r\n tooltipText?: string;\r\n onClick: () => void;\r\n};\r\n\r\nexport type EditComponentProps = {\r\n /** Jazyk vstupní hodnoty */\r\n lang?: string;\r\n /** Maximální počet vložených znaků */\r\n maxLength?: number;\r\n /** Minimální počet vložených znaků */\r\n minLength?: number;\r\n /** Callback volaný při změně hodnoty pole */\r\n onChange?: (value: string | undefined) => void;\r\n /** Text zobrazovaný při prázdné hodnotě vstupu */\r\n placeholder?: string;\r\n /** Příznak, zda se má kontrolovat pravopis */\r\n spellCheck?: boolean;\r\n /** Regulární výraz, podle kterého je hodnota pole kontrolována při odeslání formuláře */\r\n pattern?: string;\r\n /** Hodnota pole */\r\n value: string | undefined;\r\n /** Typ vstupního pole. */\r\n type?: EditComponentInputType;\r\n /** Umožňuje nastavit tabindex */\r\n tabIndex?: OptionalTabIndex | typeof TAB_INDEX_FOCUSABLE_ORDER_EXPLICIT;\r\n /** Callback volaný při odposlechnutí javascriptové `change` eventy */\r\n onJavaScriptChange?: OnJavaScriptChange;\r\n /** Určuje směr textu */\r\n dir?: TextDirectionality;\r\n /** Zarovnání textu */\r\n textAlign?: TextAlign;\r\n /** Příznak, zda se má upravovat pozice kurzoru */\r\n fixCaretPosition?: boolean;\r\n /** Vysvětlivka pole */\r\n tooltipText?: string;\r\n /** Možnosti elementu zobrazujícího se na konci inputu. */\r\n endAdornment?: AdornmentIconOptions;\r\n /** Callback volaný při kopírování do clipboardu z inputu. */\r\n onCopy?: ClipboardEventHandler<HTMLInputElement>;\r\n /** Callback volaný při vložení z clipboardu do inputu. */\r\n onPaste?: ClipboardEventHandler<HTMLInputElement>;\r\n} & FormComponentProps & FormComponentEventHandlersProps & Pick<AccessibilityProps, \"ariaDescribedBy\">;\r\n\r\n/** Interní komponenta řešící stylování, formátování hodnoty pole a manipulaci s callbacky */\r\nexport const EditComponent: ForwardRefType<HTMLInputElement, EditComponentProps> = forwardRef<HTMLInputElement, EditComponentProps>(({\r\n id,\r\n disabled = false,\r\n encrypted = false,\r\n invalid = false,\r\n lang,\r\n maxLength,\r\n minLength,\r\n onBlur,\r\n onChange: onChangeExternal,\r\n onFocus: onFocusExternal,\r\n onClick,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onCopy,\r\n onPaste,\r\n placeholder,\r\n backgroundColor,\r\n required = false,\r\n spellCheck,\r\n pattern,\r\n value = \"\",\r\n tabIndex,\r\n type = InputType.text,\r\n onJavaScriptChange,\r\n readOnly = true,\r\n transparent = false,\r\n dir,\r\n textAlign,\r\n fixCaretPosition = true,\r\n ariaDescribedBy,\r\n tooltipText,\r\n endAdornment,\r\n}, ref) => {\r\n let classes;\r\n if (transparent) {\r\n classes = classNames({ transparent });\r\n } else {\r\n classes = generateFormComponentClasses(classNames, {\r\n disabled,\r\n encrypted,\r\n invalid,\r\n required,\r\n backgroundColor,\r\n readOnly,\r\n }, [classNames({ transparent })]);\r\n }\r\n\r\n const innerRef = createRef<HTMLInputElement>();\r\n const joinedRef = combineRefs<HTMLInputElement>(innerRef, ref);\r\n\r\n const [lastOnChangeValue, setLastOnChangeValue] = useState<string>(\"\");\r\n const [startIndex, setStartIndex] = useState<number>(0);\r\n const [endIndex, setEndIndex] = useState<number>(0);\r\n\r\n const forceUpdate = useForceUpdate();\r\n\r\n useEffect(() => {\r\n if (value && innerRef.current && fixCaretPosition) {\r\n if (value.length === lastOnChangeValue.length) {\r\n /* Pro pripady validni hodnoty editu a pro pripady, kdy se nahrazuje znak za jiny znak. Napr. \"abcde\" za \"aZcde\". */\r\n innerRef.current.setSelectionRange(startIndex, endIndex);\r\n } else {\r\n /* Procesovani nevalidnich hodnot */\r\n if (startIndex === 0) {\r\n /* Pro pripady, kdy je hodnota nevalidni a mazeme prvni znak z retezce. */\r\n innerRef.current.setSelectionRange(0, 0);\r\n } else {\r\n /* Pro pripady, kdy je hodnota retezce nevalidni a zaroven nepracujeme s prvnim znakem retezce.\r\n * Napr. pokud zadame maxLength na 3 a nove chceme \"abc\" prepsat na \"abcd\", tak takovy retezec je nevalidni a zpet nam jako value prijde namisto \"abcd\" retezec \"abc\".\r\n * Proto je nutne vratit se o pozici zpet.\r\n */\r\n innerRef.current.setSelectionRange(startIndex - 1, endIndex - 1);\r\n }\r\n }\r\n }\r\n /** Nutnost předání všech použitých referencí byla vypnuta kvůli nechtěnému vyvolání useEffect při změně: value, fixCaretPosition, innerRef */\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [startIndex, endIndex]);\r\n\r\n const onChange = (val: string | undefined) => {\r\n handleCaretPosition();\r\n onChangeExternal && onChangeExternal(val);\r\n };\r\n\r\n const handleCaretPosition = () => {\r\n if (innerRef.current) {\r\n const el = innerRef.current;\r\n\r\n if (el.selectionStart && el.selectionEnd) {\r\n setStartIndex(el.selectionStart);\r\n setEndIndex(el.selectionEnd);\r\n\r\n /* pokud se stav nemění (tzn. nemeni se hodnota), je nutné re-render vyvolat ručně */\r\n if (el.value === lastOnChangeValue) {\r\n forceUpdate();\r\n }\r\n\r\n setLastOnChangeValue(el.value);\r\n } else {\r\n setStartIndex(0);\r\n setEndIndex(0);\r\n }\r\n }\r\n };\r\n\r\n const onFocus: FocusEventHandler = (e) => {\r\n setStartIndex(value?.length);\r\n setEndIndex(value?.length);\r\n setLastOnChangeValue(value);\r\n\r\n onFocusExternal && onFocusExternal(e);\r\n };\r\n\r\n return (\r\n <div className={classes}>\r\n {encrypted && <EncryptedSymbol />}\r\n <Input\r\n {...{\r\n id,\r\n required,\r\n spellCheck,\r\n pattern,\r\n placeholder,\r\n maxLength,\r\n minLength,\r\n lang,\r\n tabIndex,\r\n onChange,\r\n onJavaScriptChange,\r\n value,\r\n type,\r\n onBlur,\r\n onClick,\r\n onMouseOver,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onFocus,\r\n ref: joinedRef,\r\n readOnly,\r\n dir,\r\n textAlign,\r\n onCopy,\r\n onPaste,\r\n }}\r\n title={tooltipText}\r\n disabled={disabled || encrypted}\r\n hidden={encrypted}\r\n aria-invalid={invalid}\r\n aria-describedby={ariaDescribedBy}\r\n />\r\n {(endAdornment && value) &&\r\n <div className={classNames(\"end-adornment-wrapper\")}>\r\n <IconButton\r\n spacingSize={SpacingSize.none}\r\n backgroundColor={ButtonBackgroundColor.transparent}\r\n disabled={disabled || encrypted}\r\n iconCode={endAdornment.icon || IconCode.uiCrossSmall}\r\n onClick={endAdornment.onClick}\r\n color={endAdornment.iconColor || IconColor.blue}\r\n />\r\n </div>\r\n }\r\n </div>\r\n );\r\n});\r\n","export { EditComponent, EditComponentProps } from \"./EditComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { InputType } from \"../Input\";\r\nimport { FakeComponentProps } from \"../types\";\r\n\r\nexport type InputFakeComponentProps = {\r\n /** Text zobrazovaný v komponentě */\r\n value: string;\r\n} & FakeComponentProps;\r\n\r\nconst classNames = bemClassNames(\"input-fake-component\");\r\n\r\nexport const InputFakeComponent: FunctionComponent<InputFakeComponentProps> = ({\r\n value,\r\n onClick,\r\n onKeyDown,\r\n label,\r\n title,\r\n disabled,\r\n valueTitle,\r\n isEditing,\r\n ariaLabelledBy,\r\n required,\r\n recommended,\r\n postponedRequired,\r\n}) => {\r\n const isDisabled = disabled || !isEditing;\r\n const isRequired = required && !isDisabled;\r\n const isPostponedRequired = postponedRequired && !isDisabled && !required;\r\n const isRecommended = recommended && !isDisabled && !required && !postponedRequired;\r\n\r\n return (\r\n <div\r\n className={classNames({ disabled: isDisabled, required: isRequired, recommended: isRecommended, postponedRequired: isPostponedRequired })}\r\n {...{ title, onClick, onKeyDown }}\r\n >\r\n <input\r\n className={classNames(\"input\")}\r\n type={InputType.text}\r\n title={valueTitle}\r\n readOnly={true}\r\n /* Uživatel může ve fake komponentě provést pouze smazání hodnoty pomocí kláves backspace/delete. Toto je zvláštní forma vstupu, která se zpracovává samostatně přes onKeyDown událost.\r\n Proto je input nastavený jako readonly, protože neumožňuje běžnou editaci. Z pohledu přístupnosti však není readonly nastavení zcela vhodné, protože uživatel by si myslel, že pole\r\n nelze editovat vůbec. Pole však lze editovat, jen je třeba provést nejdřív krok smazání. Proto je readonly atribut inputu přepsán hodnotou aria-readonly nastavenou na false. */\r\n aria-readonly={false}\r\n aria-label={ariaLabelledBy ? undefined : label}\r\n aria-labelledby={ariaLabelledBy}\r\n {...{ value, disabled }}\r\n />\r\n </div>);\r\n};\r\n","export * from \"./InputFakeComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { InputFakeComponent, InputFakeComponentProps } from \"../InputFakeComponent\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\nexport type InputFakeProps = FakeContainerProps;\r\n\r\ntype StateProps = Pick<InputFakeComponentProps, \"value\" | \"title\" | \"valueTitle\" | \"label\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, InputFakeProps, IAppState> = (state, { locKey }) => ({\r\n value: getPrimaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n valueTitle: getSecondaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n label: getPrimaryText(state, locKey) ?? \"\",\r\n title: getSecondaryText(state, locKey) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče pro získání hodnoty zobrazované v InputFakeComponent a také pro vysvětlivku (title).\r\n */\r\nexport const InputFake: ComponentType<InputFakeProps> = connect(mapStateToProps)(InputFakeComponent);\r\n","export * from \"./InputFake\";\r\n","import React, { forwardRef, useCallback, useEffect, useMemo } from \"react\";\r\nimport { defaultMemoize } from \"reselect\";\r\n\r\nimport { ControlReduxRawValue, ExplicitValidation, InstantValidation } from \"@multiweb/reactControls\";\r\nimport { combineRefs, EMPTY_ARRAY, TOOLTIP_ID_PREFIX } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { MapLocalizationToProps, MapLocKey, withLocalization } from \"../../HOC/withLocalization/withLocalization\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { EditComponent, EditComponentProps } from \"../EditComponent\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport { InputType } from \"../Input\";\r\nimport { InputFake } from \"../InputFake\";\r\nimport { MultiEditWrapper, MultiEditWrapperFakeComponentRendererProps } from \"../MultiEditWrapper\";\r\nimport { DataAttributesProps, EditableControlComponentProps, FormComponentProps } from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\n\r\nexport type EditComponentEnhancedProps = EditComponentProps & {\r\n /** Lokalizační klíč pro placeholder */\r\n placeholderLocKey?: string;\r\n};\r\n\r\ntype StateProps = Pick<EditComponentEnhancedProps, \"placeholder\">;\r\nconst mapToProps: MapLocalizationToProps<StateProps> = ({ text }) => ({\r\n placeholder: text,\r\n});\r\nconst mapLocKeyProp: MapLocKey<Omit<EditComponentEnhancedProps, \"placeholder\">> = ({ placeholderLocKey }) => ({\r\n locKey: placeholderLocKey,\r\n});\r\n\r\nconst EditComponentEnhanced = withLocalization(mapToProps, mapLocKeyProp)(EditComponent);\r\n\r\nexport type EditProps = Omit<EditableControlComponentProps, \"ref\">\r\n & Pick<DataAttributesProps, \"maxLength\" | \"validationRegex\">\r\n & Pick<FormComponentProps, \"transparent\">;\r\n\r\nexport const Edit: ForwardRefType<HTMLInputElement, EditProps> = forwardRef<HTMLInputElement, EditProps>(({\r\n id,\r\n dataKey,\r\n maxLength,\r\n validationRegex,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n onValidationCallback,\r\n onValidityChanged,\r\n onBlur,\r\n onChange: onChangeExternal,\r\n onMount,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onKeyDown,\r\n onClick,\r\n triggerValueChange,\r\n locKey,\r\n placeholderLocKey,\r\n encrypted,\r\n multiEditActive,\r\n touched,\r\n enabledVisual,\r\n recommended,\r\n required,\r\n postponedRequired,\r\n isEditing,\r\n transparent = false,\r\n}, ref) => {\r\n // useMemo vrací memoizovanou funkci, která je přepočítána jenom v případě, kdy se mění parametr maxLength nebo rawValue.\r\n // Pokud jsou obě hodnoty stejné jako při posledním volání, nic nepřepočítává a vrací předchozí funkci.\r\n const createInstantDesc = useMemo(() => defaultMemoize((maxLength: number | undefined, rawValue: ControlReduxRawValue | undefined) =>\r\n maxLength ? [InstantValidation.createLengthDescription(rawValue, maxLength)] : EMPTY_ARRAY,\r\n ), []);\r\n const explicitValidationFnDescriptions = useMemo(() => validationRegex ? [ExplicitValidation.createRegexDescription(validationRegex)] : [], [validationRegex]);\r\n\r\n useEffect(() => {\r\n onMount && onMount({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n getControlValue: (rawValue) => rawValue,\r\n convertControlValueToRawValue: (controlValue) => controlValue,\r\n });\r\n // viz koment dole, bude opraveno v ramci 30853\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fakeComponentRenderer = useCallback(({ disabled }: MultiEditWrapperFakeComponentRendererProps) => (\r\n <InputFake { ...{ disabled, isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired } } />\r\n ), [isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired]);\r\n\r\n const tooltipId = TOOLTIP_ID_PREFIX + dataKey;\r\n\r\n return (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => {\r\n const instantValidationFnDescriptions = createInstantDesc(maxLength, rawValue);\r\n return (\r\n <ValidationErrorWrapper {...{\r\n dataKey,\r\n tooltipId,\r\n instantValidationFnDescriptions,\r\n explicitValidationFnDescriptions,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n onValidityChanged,\r\n }}>\r\n {({ invalid, validate }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }}>\r\n {({ disabled, backgroundColor, readOnly }) => (\r\n <MultiEditWrapper fakeComponentRenderer={fakeComponentRenderer} {...{ multiEditActive, disabled, isEditing, touched }}>\r\n {({ ref: editRef }) => {\r\n const joinedRefs = combineRefs<HTMLInputElement>(editRef, ref);\r\n return (\r\n <EditComponentEnhanced\r\n {...{ id, encrypted, invalid, onClick, onMouseLeave, onMouseEnter, onMouseOver, onFocus, ref: joinedRefs, backgroundColor, readOnly, type: InputType.text, transparent, placeholderLocKey }}\r\n value={rawValue?.toString()}\r\n onChange={(e) => {\r\n onChange(e);\r\n onChangeExternal && onChangeExternal(e);\r\n }}\r\n onBlur={(e) => {\r\n validate(onValidationCallback);\r\n onBlur && onBlur(e);\r\n }}\r\n onJavaScriptChange={(_e) => {\r\n triggerValueChange && triggerValueChange();\r\n }}\r\n aria-describedby={tooltipId}\r\n />\r\n );\r\n }}\r\n </MultiEditWrapper>\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ValidationErrorWrapper>\r\n );\r\n }\r\n }\r\n </ControlValueWrapper>\r\n );\r\n});\r\n","export { Edit } from \"./Edit\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IEmptyMessage } from \"@multiweb/types/react\";\r\nimport { Icon, IconSize } from \"../Icon\";\r\n\r\nexport type EmptyMessageComponentProps = {\r\n /** Obsahuje lokalizovanou zprávu a kód ikony. */\r\n emptyMessage?: IEmptyMessage;\r\n};\r\n\r\nconst classNames = bemClassNames(\"empty-message\");\r\n\r\nexport const EmptyMessageComponent: FunctionComponent<EmptyMessageComponentProps> = ({ emptyMessage }) => (\r\n <div className={classNames()}>\r\n {emptyMessage ? <Icon iconCode={emptyMessage.iconCode} size={IconSize.large} /> : null}\r\n <div className={classNames(\"message\")}>{emptyMessage?.text}</div>\r\n </div>\r\n);\r\n","export * from \"./EmptyMessageComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { Text } from \"../Text\";\r\n\r\nexport type EmptyTextProps = {\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Obsah, který má být zobrazen. */\r\n content?: string;\r\n};\r\nconst classNames = bemClassNames(\"empty-text-component\");\r\n\r\n/**\r\n * Komponenta vrací komponentu Text bez hodnoty. Používá se například u záznamu v případech, kdy není dostupná hodnota atributu.\r\n */\r\nexport const EmptyText: FunctionComponent<EmptyTextProps> = ({\r\n interactive = true,\r\n content = \"\",\r\n}) => (\r\n <span className={classNames()}>\r\n <Text\r\n value={content}\r\n disabled={!interactive}\r\n />\r\n </span>\r\n);\r\n","export * from \"./EmptyText\";\r\n","import React, { FunctionComponent, MouseEvent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { FlagColor, MouseButton } from \"@multiweb/types/react\";\r\n\r\nexport type FlagCircleProps = {\r\n /** Název barvy flagu typu FlagColor */\r\n color: FlagColor;\r\n /** Popis barvy */\r\n title?: string;\r\n /** Příznak značící, jestli je daný flag vybrán */\r\n isSelected?: boolean;\r\n /** Callback volaný při změně */\r\n onChange?: (color: FlagColor, checked: boolean) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"flag-circle-component\");\r\n\r\n/** Klikatelné barevné kolečko flagu */\r\nexport const FlagCircle: FunctionComponent<FlagCircleProps> = ({ color, title, isSelected, onChange }) => {\r\n const updateColor = (color: FlagColor): any => {\r\n return { \"--flag-circle-color\": color };\r\n };\r\n\r\n const onClick = (event: MouseEvent) => {\r\n if (event.button == MouseButton.leftButton && onChange) {\r\n onChange(color, !isSelected);\r\n }\r\n };\r\n return (\r\n <div\r\n className={classNames()}\r\n {...{ onClick, title }}\r\n data-color={color}\r\n data-checked={isSelected}\r\n style={updateColor(color)}\r\n >\r\n </div>\r\n );\r\n};\r\n","export * from \"./FlagCircle\";\r\n","import { OptionalTabIndex } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Pomocný typ pro KeyboardNavigationContext a FocusableItemWrapper. Používá se\r\n * pro registraci komponent dostupných klávesnicí v navigačním kontextu.\r\n */\r\nexport type NavigableComponentProps = {\r\n /** Identifikátor itemu */\r\n id: string;\r\n /** Jestli je element zaměřitelný */\r\n focusable: boolean;\r\n};\r\n\r\n/**\r\n * Pomocný typ pro návratovou hodnotu z getNavigationData pro KeyboardNavigationContext.\r\n */\r\nexport type NavigationData = {\r\n /** Hodnota tab indexu. */\r\n tabIndex: OptionalTabIndex;\r\n /** Příznak, zda má být komponenta zaměřená. */\r\n isFocused: boolean;\r\n};\r\n\r\n/**\r\n * Pomocný enum pro nastavení módu, podle kterého se řídí algoritmus pro výběr pozice zaměřeného prvku.\r\n */\r\nexport enum PositionSelectionMode {\r\n /** Při ztrátě zaměřitelnosti aktuálně zaměřeného prvku se zaměří první možný prvek. Může vést ke ztrátě pozice. */\r\n default,\r\n /** Při změně pozice nebo ztrátě aktuálně zaměřeného prvku se zaměření předá prvku, který se dostal na jeho místo v seznamu. */\r\n holdPosition,\r\n /** Při změně pozice nebo ztrátě aktuálně zaměřeného prvku se zaměření předá prvnímu zaměřitelnému prvku. */\r\n preferFirst,\r\n}\r\n","import { TAB_INDEX_FOCUSABLE_ONLY, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils/constants\";\r\nimport { OptionalTabIndex, TabIndex } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Funkce vrací tab index v závislosti na stavu `disabled`.\r\n * TODO: Zakazovat disabled elementům focus je z pohledu přístupnosti bad practice.\r\n * @param tabIndex Původní hodnota tab indexu {@link OptionalTabIndex}.\r\n * @param disabled Jestli je element ve stavu disabled.\r\n * @return {@link TAB_INDEX_FOCUSABLE_ONLY} pokud je `disabled` = _`true`_, v opačném případě vrací původní hodnotu `tabIndex`.\r\n */\r\nexport const getTabIndexBasedOnDisabled = (tabIndex: OptionalTabIndex, disabled: boolean): OptionalTabIndex =>\r\n disabled ? TAB_INDEX_FOCUSABLE_ONLY : tabIndex;\r\n\r\n/**\r\n * Funkce vrací tab index na základě techniky \"Roving tabindex\".\r\n * @param focusable Jestli je element zaměřitelný.\r\n * @returns {@link TAB_INDEX_FOCUSABLE_TAB_SEQUENCE} pokud je `focusable` = _`true`_, v opačném případě vrací {@link TAB_INDEX_FOCUSABLE_ONLY}.\r\n * @see Pro více informací {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets#managing_focus_inside_groups|developer.mozilla.org}\r\n */\r\nexport const getRovingTabIndex = (focusable?: boolean): TabIndex =>\r\n focusable ? TAB_INDEX_FOCUSABLE_TAB_SEQUENCE : TAB_INDEX_FOCUSABLE_ONLY;\r\n","export * from \"./tabIndex\";\r\n","import React, {\r\n createContext,\r\n FunctionComponent,\r\n KeyboardEvent,\r\n ReactNode,\r\n useCallback,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\n\r\nimport { TabIndex } from \"@multiweb/types/react\";\r\nimport { SharedKey } from \"Global/Base/Utils/EventUtils\";\r\nimport { NavigableComponentProps, NavigationData, PositionSelectionMode } from \"../types\";\r\nimport { getRovingTabIndex } from \"../utils\";\r\n\r\nexport type KeyboardNavigationContextType = {\r\n /** Přidá prvek do navigačních dat. */\r\n readonly addItem: (itemId: string) => void;\r\n /** Odstraní prvek z navigačních dat. */\r\n readonly removeItem: (itemId: string) => void;\r\n /** Nastaví prvku stav možnosti zaměření. */\r\n readonly setItemFocusability: (itemId: string, focusable: boolean) => void;\r\n /** Zaměří prvek podle jeho Id. V případě null nezaměří žádný. */\r\n readonly focusItem: (itemId: string | null) => void;\r\n /** Zaměří další prvek podle stisknuté klávesy. */\r\n readonly focusNextItem: (keyboardEvent: KeyboardEvent) => void;\r\n /** Zaměří první zaměřitelný prvek. */\r\n readonly setFirstItemFocusable: () => void;\r\n /** Vrací stav zaměřitelnosti daného prvku. */\r\n readonly getNavigationData: (itemId: string) => NavigationData;\r\n};\r\n\r\n/**\r\n * Kontext obsahující callbacky pro navigaci mezi registrovanými prvky a práci s jejich zaměřením.\r\n */\r\nexport const KeyboardNavigationContext = createContext<KeyboardNavigationContextType | null>(null);\r\n\r\nexport type KeyboardNavigationContextProviderProps = {\r\n /** Klávesa pro označení následujícího prvku */\r\n nextItemKey?: SharedKey;\r\n /** Klávesa pro označení předchozího prvku */\r\n previousItemKey?: SharedKey;\r\n /** Kontext reaguje na stisk nextItemKey a previousItemKey exkluzivně a zabraňuje propagaci událostí */\r\n isExclusive?: boolean;\r\n /** Režim algoritmu pro výběr pozice zaměřeného prvku */\r\n positionSelectionMode?: PositionSelectionMode;\r\n children: ReactNode;\r\n};\r\nexport const KeyboardNavigationContextProvider: FunctionComponent<KeyboardNavigationContextProviderProps> = ({\r\n nextItemKey = SharedKey.ArrowRight,\r\n previousItemKey = SharedKey.ArrowLeft,\r\n isExclusive = true,\r\n positionSelectionMode = PositionSelectionMode.default,\r\n children,\r\n}) => {\r\n /** Navigační data všech prvků v kontextu */\r\n const navigationDataRef = useRef(new Array<NavigableComponentProps>());\r\n /** Id aktuálně zaměřitelného prvku */\r\n const focusableItemIdRef = useRef(\"\");\r\n /** Příznak, zda je nějaký prvek reálně zaměřený */\r\n const isAnyItemFocused = useRef(false);\r\n /** Aktuálně zaměřený prvek */\r\n const [focusedItemIdState, setFocusedItemIdState] = useState<string | null>(null);\r\n /** Aktuálně zaměřitelný prvek */\r\n const [focusableItemIdState, setFocusableItemIdState] = useState<string | null>(null);\r\n\r\n /** Pomocná funkce pro nastavení zaměřitelnosti navigačního prvku */\r\n const setItemFocusable = (itemId: string) => {\r\n setFocusableItemIdState(itemId);\r\n focusableItemIdRef.current = itemId;\r\n };\r\n\r\n /** Pomocná funkce pro zaměření navigačního prvku */\r\n const setItemFocused = (itemId: string) => {\r\n setItemFocusable(itemId);\r\n setFocusedItemIdState(itemId);\r\n isAnyItemFocused.current = true;\r\n };\r\n\r\n /** Pomocná funkce pro vynulování vnitřních stavů */\r\n const setNoneItemFocusable = () => {\r\n setFocusableItemIdState(null);\r\n setFocusedItemIdState(null);\r\n focusableItemIdRef.current = \"\";\r\n isAnyItemFocused.current = false;\r\n };\r\n\r\n /** Nastaví zaměřitelný první navigační prvek. */\r\n const setFirstItemFocusable = useCallback(() => {\r\n const focusableItems = navigationDataRef.current.filter(item => item.focusable);\r\n if (focusableItems.length > 0) {\r\n setItemFocusable(focusableItems[0].id);\r\n setFocusedItemIdState(null);\r\n } else {\r\n // Žádný navigační prvek není zaměřitelný, vynulujeme vnitřní stavy.\r\n setNoneItemFocusable();\r\n }\r\n }, []);\r\n\r\n /** Nastaví zaměřitelný poslední navigační prvek. */\r\n const setLastItemFocusable = useCallback(() => {\r\n const focusableItems = navigationDataRef.current.filter(item => item.focusable);\r\n if (focusableItems.length > 0) {\r\n setItemFocusable(focusableItems[focusableItems.length - 1].id);\r\n setFocusedItemIdState(null);\r\n } else {\r\n // Žádný navigační prvek není zaměřitelný, vynulujeme vnitřní stavy.\r\n setNoneItemFocusable();\r\n }\r\n }, []);\r\n\r\n /** Nastaví prvku stav možnosti zaměření. */\r\n const setItemFocusability = useCallback((itemId: string, focusable: boolean) => {\r\n const navigationDataArray = navigationDataRef.current;\r\n const focusableItems = navigationDataArray.filter(item => item.focusable);\r\n const currentItemIndex = focusableItems.findIndex(item => focusableItemIdRef.current === item.id);\r\n const foundItem = navigationDataArray.find(item => item.id === itemId);\r\n const foundItemIndex = focusableItems.findIndex(item => item.id === itemId);\r\n if (foundItem) {\r\n foundItem.focusable = focusable;\r\n const updatedFocusableItems = navigationDataArray.filter(item => item.focusable);\r\n if (currentItemIndex >= 0 && foundItemIndex <= currentItemIndex) {\r\n // Došlo ke změně zaměřitelnosti před aktuálně zaměřeným prvkem, takže došlo ke změně jeho pozice.\r\n // Je potřeba případně aktualizovat aktuálně zaměřený prvek podle nastavení positionSelectionMode.\r\n let newFocusableIndex = currentItemIndex;\r\n if (positionSelectionMode === PositionSelectionMode.preferFirst) {\r\n newFocusableIndex = 0;\r\n }\r\n switch (positionSelectionMode) {\r\n case PositionSelectionMode.holdPosition:\r\n case PositionSelectionMode.preferFirst:\r\n if (updatedFocusableItems.length > newFocusableIndex) {\r\n setItemFocusable(updatedFocusableItems[newFocusableIndex].id);\r\n if (isAnyItemFocused.current) {\r\n setFocusedItemIdState(updatedFocusableItems[newFocusableIndex].id);\r\n }\r\n } else if (updatedFocusableItems.length > 0) {\r\n setLastItemFocusable();\r\n } else {\r\n // Žádný navigační prvek není zaměřitelný, vynulujeme vnitřní stavy.\r\n setNoneItemFocusable();\r\n }\r\n }\r\n }\r\n if (foundItem.id === focusableItemIdRef.current && !foundItem.focusable) {\r\n // Pokud byl právě tento prvek aktuálně zaměřitelný a byla mu odebrána zaměřitelnost,\r\n // zachováme se podle nastavení positionSelectionMode.\r\n switch (positionSelectionMode) {\r\n case PositionSelectionMode.preferFirst:\r\n setFirstItemFocusable();\r\n break;\r\n case PositionSelectionMode.default:\r\n if (updatedFocusableItems.length > currentItemIndex) {\r\n setItemFocusable(updatedFocusableItems[currentItemIndex].id);\r\n if (isAnyItemFocused.current) {\r\n setFocusedItemIdState(updatedFocusableItems[currentItemIndex].id);\r\n }\r\n } else if (updatedFocusableItems.length > 0) {\r\n setLastItemFocusable();\r\n }\r\n }\r\n }\r\n }\r\n if (!focusableItemIdRef.current) {\r\n // Pokud ještě žádný prvek není zaměřitelný, nastavíme zaměřitelný první prvek.\r\n setFirstItemFocusable();\r\n }\r\n }, [positionSelectionMode, setFirstItemFocusable, setLastItemFocusable]);\r\n\r\n /** Přidá prvek do navigačních dat. */\r\n const addItem = useCallback((itemId: string) => {\r\n const navigationDataArray = navigationDataRef.current;\r\n const foundItemIndex = navigationDataArray.findIndex(item => item.id === itemId);\r\n const navigationDataItem = { id: itemId, focusable: false };\r\n if (foundItemIndex >= 0) {\r\n navigationDataArray[foundItemIndex] = navigationDataItem;\r\n } else {\r\n navigationDataArray.push(navigationDataItem);\r\n }\r\n }, []);\r\n\r\n /** Odstraní prvek z navigačních dat. */\r\n const removeItem = useCallback((itemId: string) => {\r\n // Prvek ve skutečnosti neodstraníme, jenom mu nastavíme focusable na false,\r\n // abychom neztratili jeho pozici, např. při překreslení komponenty.\r\n setItemFocusability(itemId, false);\r\n }, [setItemFocusability]);\r\n\r\n /** Zaměří prvek podle jeho Id. */\r\n const focusItem = (itemId: string | null) => {\r\n if (itemId) {\r\n const item = navigationDataRef.current.find(currentItem => currentItem.id === itemId);\r\n if (item) {\r\n setItemFocused(itemId);\r\n }\r\n } else {\r\n setFocusedItemIdState(null);\r\n isAnyItemFocused.current = false;\r\n }\r\n };\r\n\r\n /** Zaměří další prvek podle stisknuté klávesy. */\r\n const focusNextItem = (keyboardEvent: KeyboardEvent) => {\r\n if ([nextItemKey, previousItemKey].includes(keyboardEvent.key as SharedKey)) {\r\n const focusableItems = navigationDataRef.current.filter(item => item.focusable);\r\n const currentItem = focusableItems.find(item => focusableItemIdState === item.id);\r\n if (currentItem) {\r\n const focusedItemIndex = focusableItems.indexOf(currentItem);\r\n const nextFocusedItem = focusableItems[(\r\n focusableItems.length + focusedItemIndex + (keyboardEvent.key === nextItemKey ? 1 : -1)\r\n ) % focusableItems.length];\r\n setItemFocused(nextFocusedItem.id);\r\n if (isExclusive) {\r\n // Pokud je kontext exkluzivní, zabráníme propagaci události do dalších kontextů.\r\n keyboardEvent.stopPropagation();\r\n }\r\n }\r\n }\r\n };\r\n\r\n /** Vrací stav zaměřitelnosti daného prvku a jeho tabIndex. */\r\n const getNavigationData = (itemId: string): {isFocused: boolean; tabIndex: TabIndex} => {\r\n return {\r\n isFocused: focusedItemIdState === itemId,\r\n tabIndex: getRovingTabIndex(focusableItemIdState === itemId),\r\n };\r\n };\r\n\r\n return <KeyboardNavigationContext.Provider\r\n value={{\r\n addItem,\r\n removeItem,\r\n setItemFocusability,\r\n focusItem,\r\n focusNextItem,\r\n setFirstItemFocusable,\r\n getNavigationData,\r\n }}\r\n >\r\n {children}\r\n </KeyboardNavigationContext.Provider>;\r\n};\r\n","import { useContext } from \"react\";\r\n\r\nimport { KeyboardNavigationContext, KeyboardNavigationContextType } from \"./KeyboardNavigationContext\";\r\n\r\nexport const useKeyboardNavigationContext = (): KeyboardNavigationContextType => {\r\n const context = useContext(KeyboardNavigationContext);\r\n if (!context) {\r\n throw new Error(\"Context cannot be empty. Check if your component is wrapped in KeyboardNavigationContextProvider\");\r\n }\r\n return context;\r\n};\r\n","export * from \"./KeyboardNavigationContext\";\r\nexport * from \"./useKeyboardNavigationContext\";\r\n","import React, { FunctionComponent, ReactNode, useEffect } from \"react\";\r\n\r\nimport { useKeyboardNavigationContext } from \"../KeyboardNavigationContext\";\r\nimport { NavigableComponentProps } from \"../types\";\r\n\r\nexport type FocusableItemWrapperProps = NavigableComponentProps & {\r\n /** Jestli má wrapper nastavit předané id i do svého DOM elementu */\r\n exposeId?: boolean;\r\n /** Potomek, kterého tento wrapper obaluje */\r\n children: ReactNode;\r\n};\r\n\r\n/**\r\n * Wrapper sloužící k obalení zaměřitelné komponenty a její registraci v navigačním kontextu.\r\n */\r\nexport const FocusableItemWrapper: FunctionComponent<FocusableItemWrapperProps> = ({ id, exposeId = false, focusable, children }) => {\r\n const { addItem, removeItem, setItemFocusability, focusItem, focusNextItem } = useKeyboardNavigationContext();\r\n\r\n /**\r\n * useEffect pro přidání a odebrání komponenty z navigačního kontextu.\r\n * Komponentu přidáváme a odebíráme jen pokud známe její id,\r\n * v opačném případě bychom se neměli při změně zaměření čeho chytit.\r\n */\r\n useEffect(() => {\r\n addItem(id);\r\n return () => removeItem(id);\r\n }, [id, removeItem, addItem]);\r\n\r\n /**\r\n * useEffect pro nastavení stavu zaměřitelnosti komponenty.\r\n * Tento stav znamená, zda je možné komponentu označit při navigaci\r\n * klávesnicí a může například přímo reflektovat její viditelnost.\r\n */\r\n useEffect(() => {\r\n setItemFocusability(id, focusable);\r\n }, [id, setItemFocusability, focusable]);\r\n\r\n return (\r\n <div\r\n id={exposeId ? id : undefined}\r\n className=\"focusable-item-wrapper\"\r\n onMouseDown={() => {\r\n focusItem(id);\r\n }}\r\n onKeyDown={focusNextItem}\r\n onFocus={(event) => {\r\n focusItem(id);\r\n event.stopPropagation();\r\n }}\r\n onBlur={(event) => {\r\n focusItem(null);\r\n event.stopPropagation();\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n","export * from \"./FocusableItemWrapper\";\r\n","export * from \"./FocusableItemWrapper\";\r\nexport * from \"./KeyboardNavigationContext\";\r\nexport * from \"./types\";\r\nexport * from \"./utils\";\r\n","export {\r\n FocusableItemWrapper,\r\n getRovingTabIndex,\r\n getTabIndexBasedOnDisabled,\r\n KeyboardNavigationContextProvider,\r\n NavigationData,\r\n useKeyboardNavigationContext,\r\n} from \"./navigation\";\r\n","import React, { FunctionComponent, MouseEvent, useEffect } from \"react\";\r\n\r\nimport { FocusableItemWrapper, useKeyboardNavigationContext } from \"@multiweb/accessibility\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { FlagColor, MouseButton } from \"@multiweb/types/react\";\r\nimport { ButtonProvider } from \"../ButtonProvider\";\r\nimport { FlagCircle } from \"../FlagCircle\";\r\n\r\nexport type FlagCircleWithTitleProps = {\r\n /** Název barvy flagu typu FlagColor */\r\n color: FlagColor;\r\n /** Popis barvy */\r\n title?: string;\r\n /** Příznak značící, jestli je daný flag vybrán */\r\n isSelected?: boolean;\r\n /** Zda-li má být prvek při prvním zobrazení zaměřen */\r\n isInitFocused?: boolean;\r\n /** Callback volaný při změně */\r\n onChange?: (color: FlagColor, checked: boolean) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"flag-circle-with-title-component\");\r\n\r\n/** Klikatelný flag - barevné kolečko s názvem */\r\nexport const FlagCircleWithTitle: FunctionComponent<FlagCircleWithTitleProps> = ({ color, title, isSelected, isInitFocused, onChange }) => {\r\n const { getNavigationData, focusItem } = useKeyboardNavigationContext();\r\n const { isFocused, tabIndex } = getNavigationData(color);\r\n\r\n // Podmíněný useEffect pro prvotní zaměření komponenty\r\n useEffect(() => {\r\n if (isInitFocused) {\r\n focusItem(color);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const onClick = (event: MouseEvent) => {\r\n if (event.button === MouseButton.leftButton && onChange) {\r\n onChange(color, !isSelected);\r\n }\r\n };\r\n\r\n return (\r\n <FocusableItemWrapper id={color} focusable={!!onChange}>\r\n <ButtonProvider {...{ isFocused, tabIndex, onClick }} width=\"100%\">\r\n <div className={classNames()}>\r\n <FlagCircle key={color} {...{ color, title, isSelected }} />\r\n <span className={classNames(\"title\")}>{title}</span>\r\n </div>\r\n </ButtonProvider>\r\n </FocusableItemWrapper>\r\n );\r\n};\r\n","export * from \"./FlagCircleWithTitle\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { KeyboardNavigationContextProvider } from \"@multiweb/accessibility\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\nimport { Key } from \"Global/Base/Utils/EventUtils\";\r\nimport { FlagCircleWithTitle } from \"../FlagCircleWithTitle\";\r\n\r\nexport type FlagGroupProps = {\r\n /** Flagy ke zobrazení */\r\n flags: IFlagGroupColor[];\r\n /** Zda zaměřit první prvek */\r\n focusFirstItem?: boolean;\r\n /** Callback volaný při změně stavu flagu */\r\n onChange: (color: FlagColor, checked: boolean) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"flag-group-component\");\r\n\r\nconst SORTED_COLORS: FlagColor[] = [\r\n \"red\",\r\n \"deeporange\",\r\n \"orange\",\r\n \"amber\",\r\n \"yellow\",\r\n \"lime\",\r\n \"lightgreen\",\r\n \"green\",\r\n \"teal\",\r\n \"aqua\",\r\n \"lightblue\",\r\n \"blue\",\r\n \"navy\",\r\n \"deeppurple\",\r\n \"fuchsia\",\r\n \"pink\",\r\n \"gray\",\r\n \"silver\",\r\n \"black\",\r\n \"brown\",\r\n \"none\",\r\n];\r\n\r\nconst NEUTRAL_COLORS: FlagColor[] = [\r\n \"none\", \"brown\", \"silver\", \"gray\", \"black\",\r\n];\r\n\r\n/** Zobrazí skupinu flagů */\r\nexport const FlagGroup: FunctionComponent<FlagGroupProps> = ({ flags, focusFirstItem = false, onChange }) => {\r\n const sortedFlags = flags.sort(compare);\r\n\r\n function compare(a: IFlagGroupColor, b: IFlagGroupColor): number {\r\n const indexA = SORTED_COLORS.indexOf(a.color);\r\n const indexB = SORTED_COLORS.indexOf(b.color);\r\n if (indexA === -1) return 1;\r\n if (indexB === -1) return -1;\r\n if (indexA > indexB) return 1;\r\n if (indexA < indexB) return -1;\r\n return 0;\r\n }\r\n\r\n let selectedItemIndex = -1;\r\n if (focusFirstItem) {\r\n selectedItemIndex = sortedFlags.findIndex(f => f.isSelected && f.color !== \"none\");\r\n if (selectedItemIndex < 0) {\r\n selectedItemIndex = 0;\r\n }\r\n }\r\n\r\n return (\r\n <div className={classNames()}>\r\n <KeyboardNavigationContextProvider nextItemKey={Key.ArrowDown} previousItemKey={Key.ArrowUp}>\r\n <div className={classNames(\"subgroup\")}>\r\n {sortedFlags.filter(f => !NEUTRAL_COLORS.includes(f.color)).map((flag, index) => (\r\n <FlagCircleWithTitle key={flag.color} {...flag} onChange={onChange} isInitFocused={index === selectedItemIndex} />\r\n ))}\r\n </div>\r\n <div className={classNames(\"subgroup\")}>\r\n {sortedFlags.filter(f => NEUTRAL_COLORS.includes(f.color)).map((flag, index) => (\r\n <FlagCircleWithTitle key={flag.color} {...flag} onChange={onChange} isInitFocused={(index + SORTED_COLORS.length - NEUTRAL_COLORS.length) === selectedItemIndex } />\r\n ))}\r\n </div>\r\n </KeyboardNavigationContextProvider>\r\n </div>\r\n );\r\n};\r\n\r\n/** Obsahuje definici jednoho flagu */\r\nexport interface IFlagGroupColor {\r\n /** Zobrazená barva */\r\n color: FlagColor;\r\n /** Titulek */\r\n title?: string;\r\n /** Zda má být zobrazen jako označený */\r\n isSelected: boolean;\r\n}\r\n","export * from \"./FlagGroup\";\r\n","import React, { FocusEvent, FunctionComponent, ReactNode, useState } from \"react\";\r\n\r\nimport { TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { TabIndex } from \"@multiweb/types/react\";\r\n\r\nexport type FocusProviderPropsChildrenProps = {\r\n /** Příznak, zda je zaměřený element v rámci obalované oblasti */\r\n isFocused: boolean;\r\n};\r\n\r\nexport type FocusProviderProps = {\r\n /** Umožňuje nastavit tabindex. Výchozí hodnota je TAB_INDEX_FOCUSABLE_TAB_SEQUENCE. */\r\n tabIndex?: TabIndex;\r\n /** Potomci, kteří mají k dispozici informaci o zaměření elementu v rámci obalované oblasti */\r\n children: (props: FocusProviderPropsChildrenProps) => ReactNode;\r\n /** Funkce volaná při ztrátě zaměření obalované oblasti */\r\n onBlur?: (event: FocusEvent) => void;\r\n /** Funkce volaná při zaměření v rámci obalované oblasti */\r\n onFocus?: (event: FocusEvent) => void;\r\n};\r\n\r\n/**\r\n * Komponenta slouží pro práci s informací o zaměření (`onFocus`) některého elementu v rámci\r\n * obalované oblasti. Informace (`isFocused`) je potomkům předávána technikou `render props`.\r\n */\r\nexport const FocusProvider: FunctionComponent<FocusProviderProps> = ({\r\n children,\r\n tabIndex = TAB_INDEX_FOCUSABLE_TAB_SEQUENCE,\r\n onBlur,\r\n onFocus,\r\n}) => {\r\n const [isFocused, setIsFocused] = useState(false);\r\n\r\n const handleBlur = (event: FocusEvent) => {\r\n /* Pokud proběhl pokus o zaměření elementu mimo obalovanou oblast, tak se nastaví zaměření na `false`. */\r\n if (!event.relatedTarget || !event.currentTarget.contains(event.relatedTarget as Node)) {\r\n setIsFocused(false);\r\n onBlur && onBlur(event);\r\n }\r\n };\r\n\r\n const handleFocus = (event: FocusEvent) => {\r\n setIsFocused(true);\r\n onFocus && onFocus(event);\r\n };\r\n\r\n return (\r\n <div\r\n className=\"focus-provider-component\"\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n {...{ tabIndex }}\r\n >\r\n {children({ isFocused })}\r\n </div>\r\n );\r\n};\r\n","export * from \"./FocusProvider\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, CUSTOM_CSS_PROPERTY_PREFIX, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Počet sloupců (min: 1, max: 12)\r\n * */\r\nexport enum GridColumnCount {\r\n one = 1,\r\n two,\r\n three,\r\n four,\r\n five,\r\n six,\r\n seven,\r\n eight,\r\n nine,\r\n ten,\r\n eleven,\r\n twelve,\r\n}\r\n\r\n/**\r\n * Velikost mezery (min: 1, max: 8)\r\n * */\r\nexport enum GridGapSize {\r\n one = 1,\r\n two,\r\n three,\r\n four,\r\n five,\r\n six,\r\n seven,\r\n eight,\r\n}\r\n\r\n/** Vertikální zarovnání položek*/\r\nexport enum GridLayoutAlignItems {\r\n start = \"start\",\r\n end = \"end\",\r\n center = \"center\",\r\n stretch = \"stretch\",\r\n}\r\n\r\n/** Vertikální zarovnání položek*/\r\nexport enum GridLayoutJustifyItems {\r\n start = \"start\",\r\n end = \"end\",\r\n center = \"center\",\r\n stretch = \"stretch\",\r\n}\r\n\r\nexport type GridLayoutProps = {\r\n /** Potomci k vyrenderování */\r\n children?: ReactNode;\r\n /** Šířka layoutu v pixelech */\r\n width?: string;\r\n /** Výška layoutu v pixelech */\r\n height?: number | string;\r\n /** Zarovnání horizontální */\r\n alignItems?: GridLayoutAlignItems;\r\n /** Zarovnání vertikální */\r\n justifyItems?: GridLayoutJustifyItems;\r\n /** Přeskládá položky gridu tak, aby došlo k odstranění přebytečných mezer */\r\n dense?: boolean;\r\n /** Počet sloupců. Ve výchozím stavu je komponenta rozdělena na 12 sloupců. */\r\n columns?: GridColumnCount;\r\n /** Počet sloupců pro šířku obrazovky S */\r\n columnsS?: GridColumnCount;\r\n /** Počet sloupců pro šířku obrazovky M */\r\n columnsM?: GridColumnCount;\r\n /** Počet sloupců pro šířku obrazovky L */\r\n columnsL?: GridColumnCount;\r\n /** Počet sloupců pro šířku obrazovky XL */\r\n columnsXl?: GridColumnCount;\r\n /** Počet sloupců pro šířku obrazovky XXL */\r\n columnsXxl?: GridColumnCount;\r\n /** Velikost mezery */\r\n gap?: GridGapSize;\r\n /** Velikost mezery S */\r\n gapS?: GridGapSize;\r\n /** Velikost mezery M */\r\n gapM?: GridGapSize;\r\n /** Velikost mezery L */\r\n gapL?: GridGapSize;\r\n /** Velikost mezery XL */\r\n gapXl?: GridGapSize;\r\n /** Velikost mezery XXL */\r\n gapXxl?: GridGapSize;\r\n};\r\n\r\nconst classNames = bemClassNames(\"grid-layout-component\");\r\n\r\n/** Komponenta umožňující grid rozložení */\r\nexport const GridLayout: FunctionComponent<GridLayoutProps> = ({\r\n children,\r\n width,\r\n height,\r\n alignItems,\r\n justifyItems,\r\n dense,\r\n columns,\r\n columnsS,\r\n columnsM,\r\n columnsL,\r\n columnsXl,\r\n columnsXxl,\r\n gap,\r\n gapS,\r\n gapM,\r\n gapL,\r\n gapXl,\r\n gapXxl,\r\n}) => (\r\n <div\r\n className={classNames(\r\n transformKeysToParamCase({\r\n alignItems,\r\n justifyItems,\r\n dense,\r\n }),\r\n )}\r\n style={{\r\n ...transformKeysToParamCase({\r\n columns,\r\n columnsS,\r\n columnsM,\r\n columnsL,\r\n columnsXl,\r\n columnsXxl,\r\n gap,\r\n gapS,\r\n gapM,\r\n gapL,\r\n gapXl,\r\n gapXxl,\r\n }, CUSTOM_CSS_PROPERTY_PREFIX),\r\n width,\r\n height,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n);\r\n","export * from \"./GridLayout\";\r\n","import React, { forwardRef, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, CUSTOM_CSS_PROPERTY_PREFIX, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Počet sloupců GridLayoutu, které bude komponenta zabírat\r\n */\r\nexport enum ColSpan {\r\n one = 1,\r\n two,\r\n three,\r\n four,\r\n five,\r\n six,\r\n seven,\r\n eight,\r\n nine,\r\n ten,\r\n eleven,\r\n twelve,\r\n}\r\n\r\n/** Horizontální zarovnání komponenty */\r\nexport enum AlignSelf {\r\n start = \"start\",\r\n end = \"end\",\r\n center = \"center\",\r\n stretch = \"stretch\",\r\n }\r\n\r\n/** Vertikální zarovnání komponenty */\r\nexport enum JustifySelf {\r\nstart = \"start\",\r\nend = \"end\",\r\ncenter = \"center\",\r\nstretch = \"stretch\",\r\n}\r\n\r\n/** Určuje, zdali si položky GridLayoutu zachovají výšku z definice, nebo se roztáhnou na výšku řádku. */\r\nexport enum GridItemsHeight {\r\n /** Výšky položek budou zachovány. */\r\n keepHeight = \"keepHeight\",\r\n /** Položky se roztáhnou na výšku řádku. Ta je určena nejvyšší položkou. */\r\n takeHighest = \"takeHighest\",\r\n}\r\n\r\nexport type GridLayoutItemProps = {\r\n /** Potomci */\r\n children?: ReactNode;\r\n /** Šířka itemu v pixelech */\r\n width?: number | string;\r\n /** Výška itemu v pixelech */\r\n height?: number | string;\r\n /** Horizontální zarovnání položky */\r\n alignSelf?: AlignSelf;\r\n /** Vertikální zarovnání položky */\r\n justifySelf?: JustifySelf;\r\n /** Počet sloupců, které komponenta zabírá */\r\n colSpan?: ColSpan;\r\n /** Počet sloupců, které komponenta zabírá při šířce obrazovky S */\r\n colSpanS?: ColSpan;\r\n /** Počet sloupců, které komponenta zabírá při šířce obrazovky M */\r\n colSpanM?: ColSpan;\r\n /** Počet sloupců, které komponenta zabírá při šířce obrazovky L */\r\n colSpanL?: ColSpan;\r\n /** Počet sloupců, které komponenta zabírá při šířce obrazovky XL */\r\n colSpanXl?: ColSpan;\r\n /** Počet sloupců, které komponenta zabírá při šířce obrazovky XXL */\r\n colSpanXxl?: ColSpan;\r\n /** Počet řádků, které komponenta zabírá */\r\n rowSpan?: number;\r\n /** Počet řádků, které komponenta zabírá při šířce obrazovky S */\r\n rowSpanS?: number;\r\n /** Počet řádků, které komponenta zabírá při šířce obrazovky M */\r\n rowSpanM?: number;\r\n /** Počet řádků, které komponenta zabírá při šířce obrazovky L */\r\n rowSpanL?: number;\r\n /** Počet řádků, které komponenta zabírá při šířce obrazovky XL */\r\n rowSpanXl?: number;\r\n /** Počet řádků, které komponenta zabírá při šířce obrazovky XXL */\r\n rowSpanXxl?: number;\r\n /** Určuje pořadí v gridu */\r\n order?: number;\r\n /** Určuje viditelnost itemu */\r\n visible?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"grid-layout-item-component\");\r\n\r\n/** Komponenta umožňující grid rozložení */\r\nexport const GridLayoutItem: ForwardRefType<HTMLDivElement, GridLayoutItemProps> = forwardRef<HTMLDivElement, GridLayoutItemProps>(({\r\n children,\r\n width,\r\n height,\r\n alignSelf,\r\n justifySelf,\r\n colSpan,\r\n colSpanS,\r\n colSpanM,\r\n colSpanL,\r\n colSpanXl,\r\n colSpanXxl,\r\n rowSpan,\r\n rowSpanS,\r\n rowSpanM,\r\n rowSpanL,\r\n rowSpanXl,\r\n rowSpanXxl,\r\n order,\r\n visible = true,\r\n}, ref) => {\r\n return (\r\n <div\r\n className={classNames(\r\n transformKeysToParamCase({\r\n alignSelf,\r\n justifySelf,\r\n hidden: !visible,\r\n }),\r\n )}\r\n ref={ref}\r\n style={{\r\n ...transformKeysToParamCase({\r\n colSpan,\r\n colSpanS,\r\n colSpanM,\r\n colSpanL,\r\n colSpanXl,\r\n colSpanXxl,\r\n rowSpan,\r\n rowSpanS,\r\n rowSpanM,\r\n rowSpanL,\r\n rowSpanXl,\r\n rowSpanXxl,\r\n }, CUSTOM_CSS_PROPERTY_PREFIX),\r\n order,\r\n width,\r\n height,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});\r\n","export * from \"./GridLayoutItem\";\r\n","import React, { forwardRef, KeyboardEvent } from \"react\";\r\n\r\nimport { bemClassNames, createQA, isActivatingKeyEvent } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { BooleanSwitcher, BooleanSwitcherChildrenProps } from \"../BooleanSwitcher\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\nimport { FlexGrow, JustifyContent, Layout, SpacingSize } from \"../Layout\";\r\nimport { FontWeight, Text, TextColor } from \"../Text\";\r\nimport { AlignItems } from \"../types\";\r\n\r\nconst classNames = bemClassNames(\"icon-select-item-component\");\r\n\r\nexport type IconSelectItemProps = {\r\n /** Kód určující, která ikona se zobrazí. */\r\n iconCode: IconCode;\r\n /** Text položky */\r\n text: string;\r\n /** Funkce volaná při výběru položky */\r\n onSelect: () => void;\r\n /** Příznak, zda je položka vybraná */\r\n isSelected?: boolean;\r\n /** Příznak, zda je položka zakázána */\r\n disabled?: boolean;\r\n} & QAProps;\r\n\r\n/** Komponenta položky těla rozevíracího seznamu */\r\nexport const IconSelectItem: ForwardRefType<HTMLButtonElement, IconSelectItemProps> = forwardRef<HTMLButtonElement, IconSelectItemProps>(({\r\n qa,\r\n iconCode,\r\n text,\r\n onSelect,\r\n isSelected = false,\r\n disabled = false,\r\n}, ref) => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (isActivatingKeyEvent(event)) {\r\n event.preventDefault();\r\n onSelect();\r\n }\r\n };\r\n\r\n return (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => (\r\n <button\r\n className={classNames({ disabled, isSelected, hovered: isHovered })}\r\n onKeyDown={handleKeyDown}\r\n onClick={onSelect}\r\n {...createQA(qa)}\r\n {...{ disabled, onMouseEnter, onMouseLeave, ref }}\r\n >\r\n <Layout\r\n spacingSizeHorizontal={SpacingSize.xs}\r\n alignItems={AlignItems.center}\r\n >\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Icon\r\n color={isHovered ? IconColor.whiteBlack : IconColor.grey1}\r\n {...{ disabled, iconCode }}\r\n />\r\n </Layout>\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Text\r\n fontWeight={FontWeight.bold}\r\n value={text}\r\n color={isHovered ? TextColor.whiteBlack : TextColor.blackWhite}\r\n isTextSelectable={!disabled}\r\n {...{ disabled }}\r\n />\r\n </Layout>\r\n <Layout justifyContent={JustifyContent.flexEnd} flexGrow={FlexGrow.one}>\r\n {isSelected ? (\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Icon\r\n iconCode={IconCode.uiCheckSmall}\r\n color={isHovered ? IconColor.whiteBlack : IconColor.grey1}\r\n {...{ disabled }}\r\n />\r\n </Layout>\r\n ) : (\r\n <Layout spacingSize={SpacingSize.m}/>\r\n )}\r\n </Layout>\r\n </Layout>\r\n </button>\r\n )}\r\n </BooleanSwitcher>\r\n );\r\n});\r\n","export * from \"./IconSelectItem\";\r\n","/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\n\r\n/**\r\n * Barva ikony a textu. Na barvy se aplikuje téma aplikace.\r\n */\r\nexport enum IconTextColor {\r\n\r\n /*----- Obecné -----*/\r\n default = \"default\",\r\n inherit = \"inherit\",\r\n\r\n /*----- Odstíny šedi -----*/\r\n /* black-white (výchozí) */\r\n textPrimary = \"text-primary\",\r\n textSecondary = \"text-secondary\",\r\n textDisabled = \"text-disabled\",\r\n blackWhite = \"black-white\",\r\n\r\n /* černá-černá */\r\n blackPrimaryFixed = \"black-primary-fixed\",\r\n blackSecondaryFixed = \"black-secondary-fixed\",\r\n blackDisabledFixed = \"black-secondary-fixed\",\r\n\r\n /* bílá-bílá */\r\n whitePrimaryFixed = \"white-primary-fixed\",\r\n whiteSecondaryFixed = \"white-secondary-fixed\",\r\n whiteDisabledFixed = \"white-secondary-fixed\",\r\n\r\n /* bílá-černá */\r\n textPrimaryInverted = \"text-primary-inverted\",\r\n textSecondaryInverted = \"text-secondary-inverted\",\r\n textDisabledInverted = \"text-primary-inverted\",\r\n whiteBlack = \"white-black\",\r\n\r\n /*----- Branding -----*/\r\n\r\n /* tmavá-světlá (výchozí) */\r\n colorPrimary = \"color-primary\",\r\n colorSecondary = \"color-secondary\",\r\n\r\n /* tmavá-tmavá */\r\n colorPrimaryDarkFixed = \"color-primary-dark-fixed\",\r\n colorSecondaryDarkFixed = \"color-secondary-dark-fixed\",\r\n blackFixed = \"black-fixed\",\r\n\r\n /* světlá-světlá */\r\n colorPrimaryLightFixed = \"color-primary-light-fixed\",\r\n colorSecondaryLightFixed = \"color-secondary-light-fixed\",\r\n whiteFixed = \"white-fixed\",\r\n\r\n /* Saturované */\r\n\r\n red = \"red\",\r\n pink = \"pink\",\r\n purple = \"purple\",\r\n deeppurple = \"deeppurple\",\r\n indigo = \"indigo\",\r\n blue = \"blue\",\r\n lightblue = \"lightblue\",\r\n cyan = \"cyan\",\r\n teal = \"teal\",\r\n green = \"green\",\r\n lightgreen = \"light\",\r\n lime = \"lime\",\r\n yellow = \"yellow\",\r\n amber = \"amber\",\r\n orange = \"orange\",\r\n deeporange = \"deeporange\",\r\n grey1 = \"grey-1\",\r\n\r\n}\r\n","import { IconColor } from \"../Icon\";\r\nimport { TextColor } from \"../Text\";\r\nimport { IconTextColor } from \"./enums\";\r\n\r\n/**\r\n * Konverze {@link IconTextColor} na {@link IconColor}. V případě nezdaru vrací jako výchozí barvu {@link IconColor.blackWhite}.\r\n * @param iconTextColor\r\n */\r\nexport const getIconColor = (iconTextColor: IconTextColor): IconColor => {\r\n return Object.values(IconColor).find(iconColor => iconColor.toString() === iconTextColor.toString()) ?? IconColor.blackWhite;\r\n};\r\n\r\n/**\r\n * Konverze {@link IconTextColor} na {@link TextColor}. V případě nezdaru vrací jako výchozí barvu {@link TextColor.blackWhite}.\r\n * @param iconTextColor\r\n */\r\nexport const getTextColor = (iconTextColor: IconTextColor): TextColor => {\r\n return Object.values(TextColor).find(textColor => textColor.toString() === iconTextColor.toString()) ?? TextColor.blackWhite;\r\n};\r\n","import React, { forwardRef, MouseEvent } from \"react\";\r\n\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { ButtonProvider, ButtonProviderProps } from \"../ButtonProvider\";\r\nimport { Icon, IconProps } from \"../Icon\";\r\nimport { Layout, SpacingSize } from \"../Layout\";\r\nimport { Text } from \"../Text\";\r\nimport { IconTextColor } from \"./enums\";\r\nimport { getIconColor, getTextColor } from \"./utils\";\r\n\r\nexport type IconTextButtonProps = {\r\n /** Popisek pro bližší popis tlačítka */\r\n title?: string;\r\n /** Barva ikony a textu */\r\n color?: IconTextColor;\r\n /** Callback volaný na kliknutí */\r\n onClick: (event: MouseEvent<HTMLButtonElement>) => void;\r\n /** Text tlačítka */\r\n value: string;\r\n} & Omit<ButtonProviderProps, \"title\" | \"onClick\" | \"theme\"> & Omit<IconProps, \"title\" | \"color\" | \"size\">;\r\n\r\n/** Tlačítko v podobě ikony a textu */\r\nexport const IconTextButton: ForwardRefType<HTMLButtonElement, IconTextButtonProps> = forwardRef<HTMLButtonElement, IconTextButtonProps>(({\r\n title,\r\n color = IconTextColor.colorPrimary,\r\n onClick,\r\n backgroundColor,\r\n isFocused,\r\n tabIndex,\r\n disabled,\r\n shadow,\r\n outline,\r\n ...restProps\r\n}, ref) => (\r\n <ButtonProvider {...{ onClick, title, ref, disabled, tabIndex, isFocused, shadow, outline, backgroundColor }}>\r\n <Layout spacingSizeVertical={SpacingSize.xs} spacingSizeLeft={SpacingSize.xs}>\r\n <Icon color={getIconColor(color)} disabled={disabled} {...restProps} />\r\n </Layout>\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Text color={getTextColor(color)} disabled={disabled} isTextSelectable={false} {...restProps} />\r\n </Layout>\r\n </ButtonProvider>\r\n));\r\n","export { IconTextColor } from \"./enums\";\r\nexport * from \"./IconTextButton\";\r\nexport * from \"./utils\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_ONLY, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { Icon, IconColor, IconSize } from \"../Icon\";\r\nimport { FlexDirection, FlexGrow, JustifyContent, Layout } from \"../Layout\";\r\nimport { Text } from \"../Text\";\r\nimport { AlignItems, FakeComponentProps } from \"../types\";\r\n\r\nexport type ImageEditFakeComponentProps = {\r\n /** Text zobrazovaný v komponentě */\r\n value: string;\r\n} & FakeComponentProps;\r\n\r\nconst classNames = bemClassNames(\"image-edit-fake-component\");\r\n\r\n/** ImageEditFakeComponent obsahující ikonu a text. Komponenta se podobá ImageFake komponentě ve stavu, kdy nění vybrán obrázkový formát souboru. */\r\nexport const ImageEditFakeComponent: FunctionComponent<ImageEditFakeComponentProps> = ({\r\n value,\r\n onClick,\r\n onKeyDown,\r\n label,\r\n title,\r\n disabled,\r\n valueTitle,\r\n isEditing,\r\n ariaLabelledBy,\r\n}) => (\r\n <Layout flexGrow={FlexGrow.one} alignItems={AlignItems.flexStart} justifyContent={JustifyContent.center}>\r\n <div\r\n className={classNames()}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY} // Nutné kvůli zaměření myší, aby se uživatel nemusel trefovat přímo do textu.\r\n {...{ title, onClick, onKeyDown }}\r\n >\r\n <Layout alignItems={AlignItems.center} justifyContent={JustifyContent.center} flexDirection={FlexDirection.column} flexGrow={FlexGrow.one} >\r\n <Icon disabled={disabled || !isEditing} iconCode={IconCode.docImage} size={IconSize.large} title={valueTitle} color={IconColor.blackFixed}/>\r\n <div className={classNames(\"textDiv\")}>\r\n <Text\r\n value={value}\r\n disabled={disabled || !isEditing}\r\n title={valueTitle}\r\n hideOutlineOnFocus={true}\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}\r\n role={Role.button}\r\n ariaLabelledBy={ariaLabelledBy}\r\n ariaLabel={label}\r\n />\r\n </div>\r\n </Layout>\r\n </div>\r\n </Layout>\r\n);\r\n","export * from \"./ImageEditFakeComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ImageEditFakeComponent, ImageEditFakeComponentProps } from \"../ImageEditFakeComponent\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\nexport type ImageEditFakeProps = FakeContainerProps;\r\n\r\ntype StateProps = Pick<ImageEditFakeComponentProps, \"value\" | \"title\" | \"valueTitle\" | \"label\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ImageEditFakeProps, IAppState> = (state, { locKey }) => ({\r\n value: getPrimaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n valueTitle: getSecondaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n label: getPrimaryText(state, locKey) ?? \"\",\r\n title: getSecondaryText(state, locKey) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče pro získání hodnoty zobrazované v ImageEditFakeComponent a také pro vysvětlivku (title).\r\n */\r\nexport const ImageEditFake: ComponentType<ImageEditFakeProps> = connect(mapStateToProps)(ImageEditFakeComponent);\r\n","export * from \"./ImageEditFake\";\r\n","/**\r\n * Slouží k určení, jakým způsobem se má odkaz otevřít\r\n */\r\nexport enum LinkTargetOptions {\r\n /** V novém okně */\r\n blank = \"_blank\",\r\n /** Ve stávajícím okně */\r\n self = \"_self\",\r\n /** V nadřazaném rámci */\r\n parent = \"_parent\",\r\n /** V celém těle aktuálního okna */\r\n top = \"_top\",\r\n}\r\n\r\n/**\r\n * Podporované schémata url adresy\r\n */\r\nexport enum Scheme {\r\n https = \"https://\",\r\n http = \"http://\",\r\n mailTo = \"mailto:\",\r\n file = \"file:///\",\r\n}\r\n","import { Scheme } from \"./enums\";\r\n\r\nexport const formatUrl = (url: string, defaultScheme: Scheme | string): string => {\r\n if (!url) return url;\r\n\r\n const reg: RegExp = /mailto:+[\\s\\S]+|([\\s\\S]+:\\/\\/+[\\s\\S]+)$/i;\r\n if (reg.test(url))\r\n return url;\r\n\r\n return defaultScheme.concat(url);\r\n};\r\n\r\nexport const prettyPrintUrl = (url: string): string => {\r\n return url.replace(/mailto:/i, \"\");\r\n};\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { LinkTargetOptions, Scheme } from \"./enums\";\r\nimport { formatUrl, prettyPrintUrl } from \"./utils\";\r\n\r\nexport type LinkProps = {\r\n /** Adresa odkazu */\r\n url: string;\r\n /** Text odkazu */\r\n text?: string;\r\n /** Text nápovědy */\r\n title?: string;\r\n /** Komponenta, která má sloužit jako odkaz */\r\n children?: ReactNode;\r\n /** Způsob jakým se má odkaz otevřít */\r\n target?: LinkTargetOptions;\r\n /** Pokud je nastaveno a url neobsahuje schéma, přidá automaticky zvolené schéma */\r\n defaultScheme?: Scheme | string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"link\");\r\n\r\nexport const Link: FunctionComponent<LinkProps> = ({\r\n url,\r\n text,\r\n title,\r\n children,\r\n target = LinkTargetOptions.blank,\r\n defaultScheme = Scheme.https,\r\n}) => {\r\n return (\r\n <a href={formatUrl(url, defaultScheme)} title={title || text} target={target} onClick={(e) => e.stopPropagation()} className={classNames({ underline: !children })}>\r\n {children || text || prettyPrintUrl(url)}\r\n </a>\r\n );\r\n};\r\n","export * from \"./enums\";\r\nexport * from \"./Link\";\r\nexport * from \"./utils\";\r\n","import { createCreateActionType } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu linkButton. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"linkButton\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\nexport const INIT = createActionType(\"INIT\");\r\nexport const UPDATE_OPTIONS = createActionType(\"UPDATE_OPTIONS\");\r\nexport const CLICK = createActionType(\"CLICK\");\r\nexport const CLEAR = createActionType(\"CLEAR\");\r\nexport const SET_LOADING = createActionType(\"SET_LOADING\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { CLEAR, CLICK, INIT, SET_LOADING, UPDATE_OPTIONS } from \"./constants\";\r\n\r\n/**\r\n * Struktura stavu modulu LinkButtonState.\r\n */\r\nexport interface ILinkButtonState {\r\n readonly url: string;\r\n readonly params: ReadonlyArray<string>;\r\n readonly functions: ReadonlyArray<string>;\r\n readonly isLoading: boolean;\r\n readonly instanceID?: string;\r\n}\r\n\r\n/**\r\n* Data agregovaných hodnot indexovaných podle jejich klíčů.\r\n*/\r\nexport type LinkButtonMapState = TypedObject<ILinkButtonState>;\r\n\r\nexport interface ILinkButtonMappedAction extends Action<string> {\r\n readonly meta: {\r\n readonly dataKey: string;\r\n };\r\n}\r\n\r\nexport class ILinkButtonMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.dataKey;\r\n }\r\n}\r\n\r\nexport interface IInitLinkButtonAction extends ILinkButtonMappedAction {\r\n readonly payload: {\r\n readonly url: string;\r\n readonly params: string[];\r\n readonly functions: string[];\r\n readonly isLoading: boolean;\r\n };\r\n}\r\n\r\nexport class IInitLinkButtonAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === INIT;\r\n }\r\n}\r\n\r\nexport interface ILinkButtonClearAction extends ILinkButtonMappedAction {}\r\n\r\nexport class ILinkButtonClearAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR;\r\n }\r\n}\r\n\r\nexport interface ILinkButtonClickAction extends ILinkButtonMappedAction {}\r\n\r\nexport class ILinkButtonClickAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLICK;\r\n }\r\n}\r\n\r\nexport interface IUpdateLinkButtonOptionsAction extends ILinkButtonMappedAction {\r\n readonly payload: {\r\n readonly instanceID?: string;\r\n };\r\n}\r\n\r\nexport class IUpdateLinkButtonOptionsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_OPTIONS;\r\n }\r\n}\r\n\r\nexport interface ILinkButtonSetLoadingAction extends ILinkButtonMappedAction {\r\n readonly payload: {\r\n readonly isLoading: boolean;\r\n };\r\n}\r\n\r\nexport class ILinkButtonSetLoadingAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_LOADING;\r\n }\r\n}\r\n","import { AnyAction, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IInitLinkButtonAction, ILinkButtonClearAction, ILinkButtonSetLoadingAction, ILinkButtonState, IUpdateLinkButtonOptionsAction, LinkButtonMapState } from \"./types\";\r\n\r\nconst LINK_BUTTON_INIT_STATE: ILinkButtonState = {\r\n url: \"\",\r\n params: [],\r\n functions: [],\r\n isLoading: false,\r\n};\r\n\r\nexport const linkButtonReducer: Reducer<ILinkButtonState> = (state = LINK_BUTTON_INIT_STATE, action) => {\r\n if (action instanceof IInitLinkButtonAction)\r\n return { ...action.payload };\r\n else if (action instanceof IUpdateLinkButtonOptionsAction) {\r\n return produce(state, (draft) => {\r\n draft.instanceID = action.payload.instanceID;\r\n });\r\n } else if (action instanceof ILinkButtonSetLoadingAction) {\r\n return produce(state, (draft) => {\r\n draft.isLoading = action.payload.isLoading;\r\n });\r\n }\r\n return state;\r\n};\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action?.meta?.dataKey;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(linkButtonReducer, instanceKeyResolver);\r\n\r\nexport const reducer: Reducer<LinkButtonMapState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ILinkButtonClearAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.dataKey];\r\n });\r\n } else {\r\n const dataKey = instanceKeyResolver(action);\r\n if (state[dataKey] || action instanceof IInitLinkButtonAction) {\r\n // Do store ukládám pouze pokud je již instance vytvořená nebo pokud je akce inicializační\r\n return instanceMapReducer(state, action);\r\n }\r\n return state;\r\n }\r\n};\r\n","import { CLEAR, CLICK, INIT, SET_LOADING, UPDATE_OPTIONS } from \"./constants\";\r\nimport { IInitLinkButtonAction, ILinkButtonClearAction, ILinkButtonClickAction, ILinkButtonSetLoadingAction, IUpdateLinkButtonOptionsAction } from \"./types\";\r\n\r\n/** Akce, která se vyvolá při inicializace link buttonu */\r\nexport const createInitLinkButtonAction = (dataKey: string, url: string, params: string[], functions: string[]): IInitLinkButtonAction => ({\r\n type: INIT,\r\n payload: {\r\n url,\r\n params,\r\n functions,\r\n isLoading: false,\r\n },\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/** Akce, která se vyvolá při změně actualObjectu */\r\nexport const createUpdateLinkButtonOptionsAction = (dataKey: string, instanceID?: string): IUpdateLinkButtonOptionsAction => ({\r\n type: UPDATE_OPTIONS,\r\n payload: {\r\n instanceID,\r\n },\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/** Akce, která se vyvolá při kliknutí na tlačítko */\r\nexport const createLinkButtonClickAction = (dataKey: string): ILinkButtonClickAction => ({\r\n type: CLICK,\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/** Akce starající se o smazání instance Link Buttonu ze storu. */\r\nexport const createClearLinkButtonAction = (dataKey: string): ILinkButtonClearAction => ({\r\n type: CLEAR,\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/** Nastaví indikátor načítání pro daný klíč\r\n * @param dataKey Klíč konkrétního LinkButtonu\r\n * @param isLoading Stav načítání\r\n */\r\nexport const createSetLoadingAction = (dataKey: string, isLoading: boolean): ILinkButtonSetLoadingAction => ({\r\n type: SET_LOADING,\r\n payload: {\r\n isLoading,\r\n },\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ILinkButtonState } from \"./types\";\r\n\r\n/**\r\n * Získá z globálního stavu instanci patřící LinkButton podle `dataKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataKey Klíč k instanci LinkButton.\r\n */\r\nexport const getLinkButtonInstance: Selector<IAppState, Readonly<ILinkButtonState> | undefined, string> = (\r\n state: IAppState,\r\n dataKey: string,\r\n): ILinkButtonState => state.linkButton[dataKey];\r\n\r\n/**\r\n * Získá z globálního stavu informaci o načítání patřící LinkButton podle `dataKey`.\r\n *\r\n * @param state\r\n * @param dataKey Klíč k instanci LinkButton.\r\n */\r\nexport const getIsLoading: Selector<IAppState, boolean, string> = (state: IAppState, dataKey: string): boolean => state.linkButton[dataKey].isLoading;\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IRunMethodResult } from \"@multiweb/types/contracts\";\r\n\r\nconst { replaceAllWithLookahead, replaceAll } = bridge;\r\n\r\n/**\r\n * Dosadí do parametry a výsledky funkcí do templatu url adresy\r\n * @param url Šablona url adresy\r\n * @param params Pole stringů, které se dosadí do url adresy za @i (kde i je číslo)\r\n * @param results Pole výsledků funkcí, které se dosadí do url adresy za @i (kde i je číslo)\r\n*/\r\nexport const processUrl = (url: string, params?: string[], results?: IRunMethodResult[]) => {\r\n let processedUrl = url;\r\n\r\n (params || []).forEach((param, index) => {\r\n processedUrl = replaceAllWithLookahead(processedUrl, `@${index}`, encodeURIComponent(param), \"@\");\r\n });\r\n\r\n (results || []).forEach((result, index) => {\r\n if (result)\r\n processedUrl = replaceAll(processedUrl, \"@@\" + index, encodeURIComponent(result.resultValue));\r\n });\r\n\r\n return processedUrl;\r\n};\r\n","import { all, call, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IRunMethodResult } from \"@multiweb/types/contracts\";\r\nimport { IOWObject } from \"@multiweb/types/multiweb\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { createSetLoadingAction } from \"./actions\";\r\nimport { CLICK } from \"./constants\";\r\nimport { getLinkButtonInstance } from \"./selectors\";\r\nimport { ILinkButtonClickAction } from \"./types\";\r\nimport { processUrl } from \"./utils\";\r\n\r\nconst { runStaticMethodWithParams, isNullOrEmpty, errorHandler, openUrl, getInstance, isParametricUrl, hasParameters, canCallOnlyStaticMethods, createDefferedWindow } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* linkButtonSaga() {\r\n yield takeEvery([CLICK], clickSaga);\r\n};\r\n\r\nexport const runFunctionSaga: SagaWithReturnType<[string, IOWObject | null], Promise<IRunMethodResult> | undefined> = function* runFunctionSaga(methodName, actualObject) {\r\n if (isNullOrEmpty(methodName)) {\r\n call(errorHandler, { name: \"Empty function name.\", message: \"Empty function name.\" });\r\n return undefined;\r\n } else {\r\n const separatorPosition = methodName.indexOf(\".\");\r\n if (separatorPosition > 0) {\r\n // Volání statické metody\r\n return yield call(runStaticMethodWithParams, { className: methodName.substring(0, separatorPosition), methodName: methodName.substring(separatorPosition + 1) });\r\n } else if (actualObject) {\r\n // Volání instanční metody - je nutné předávat params s prázdným polem, jinak je výsledkem null\r\n return yield call([actualObject, \"runWithParams\"], { methodName, params: [] });\r\n }\r\n }\r\n};\r\n\r\nexport const getParametersSaga: SagaWithReturnType<\r\n[IOWObject, readonly string[]], Promise<ConditionParams> | undefined> = function* getParametersSaga(actualObject, params) {\r\n return yield call([actualObject, \"getParameters\"], params);\r\n};\r\n\r\nexport const manageUrlSaga: SagaWithReturnType<\r\n [readonly string[], readonly string[], string, string, IOWObject | null],\r\n void\r\n> = function* manageUrlSaga(params, functions, dataKey, url, actualObject) {\r\n try {\r\n // Kvůli vlastnosti blokování otevírání stránek z aync callu Safari, je nutné vytvořit si window dříve a poté změnit location\r\n const deffered = createDefferedWindow();\r\n yield put(createSetLoadingAction(dataKey, true));\r\n let paramResults: string[] = [];\r\n if (actualObject)\r\n paramResults = yield call(getParametersSaga, actualObject, params);\r\n\r\n const results = yield all(functions.map(functionName => call(runFunctionSaga, functionName, actualObject)));\r\n const processedUrl: ReturnType<typeof processUrl> = yield call(processUrl, url, paramResults, results);\r\n yield call([deffered, \"navigate\"], processedUrl);\r\n } catch (error) {\r\n yield call(errorHandler, (error as Error));\r\n } finally {\r\n yield put(createSetLoadingAction(dataKey, false));\r\n }\r\n};\r\n\r\n/**\r\n * Otevře zpracovanou url\r\n * @param action\r\n */\r\nexport const clickSaga: SagaWithReturnType<[ILinkButtonClickAction]> = function* clickSaga(action) {\r\n const linkButtonInstance: ReturnType<typeof getLinkButtonInstance> = yield select(\r\n getLinkButtonInstance,\r\n action.meta.dataKey,\r\n );\r\n\r\n if (!linkButtonInstance) {\r\n yield call(errorHandler, {\r\n name: \"LinkButton instance not found\",\r\n message: `LinkButton instance with dataKey '${action.meta.dataKey}' not found.`,\r\n });\r\n return;\r\n }\r\n\r\n const { url, functions, params, instanceID } = linkButtonInstance;\r\n\r\n if (!(yield call(isParametricUrl, url))) {\r\n yield call(errorHandler, {\r\n name: \"Url is not valid.\",\r\n message: \"Given url is not valid.\",\r\n });\r\n return;\r\n }\r\n\r\n // bez parametrů\r\n if (!(yield call(hasParameters, url))) {\r\n yield call(openUrl, url);\r\n return;\r\n }\r\n\r\n // pouze se statickými metodami\r\n if (yield call(canCallOnlyStaticMethods, url, functions)) {\r\n yield call(manageUrlSaga, params, functions, action.meta.dataKey, url, null);\r\n return;\r\n }\r\n\r\n if (!instanceID) {\r\n yield call(errorHandler, {\r\n name: \"actualObject is not selected.\",\r\n message: \"Cannot exectute action - actualObject is not selected.\",\r\n });\r\n return;\r\n }\r\n\r\n const actualObject: ReturnType<typeof getInstance> = yield call(getInstance, instanceID);\r\n\r\n if (!actualObject) {\r\n yield call(errorHandler, {\r\n name: \"actualObject is not selected.\",\r\n message: \"Cannot exectute action - actualObject is not selected.\",\r\n });\r\n return;\r\n }\r\n\r\n if (!actualObject.classInfo?.className) {\r\n yield call(errorHandler, { name: \"ClassName is empty.\", message: \"Cannot call given functions - className is empty.\" });\r\n return;\r\n }\r\n\r\n yield call(manageUrlSaga, params, functions, action.meta.dataKey, url, actualObject);\r\n};\r\n","export * from \"./withLocalization\";\r\n","export * from \"./withLocalization\";\r\n","import React, { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nimport { Layout, SpacingSize } from \"../Layout\";\r\nimport { ComponentSize } from \"../types\";\r\n\r\nexport type TextButtonSpacingProps = PropsWithChildren<{\r\n size?: ComponentSize;\r\n}>;\r\n\r\n/** Komponenta vnitřního odsazení textových tlačítek. */\r\nexport const TextButtonSpacing: FunctionComponent<TextButtonSpacingProps> = ({\r\n size = ComponentSize.large,\r\n children,\r\n}) => {\r\n const smallSpacing = size === ComponentSize.small;\r\n\r\n return (\r\n <Layout\r\n spacingSizeVertical={smallSpacing ? SpacingSize.xxs : SpacingSize.xs}\r\n spacingSizeHorizontal={smallSpacing ? SpacingSize.xs : SpacingSize.s}\r\n >\r\n {children}\r\n </Layout>\r\n );\r\n};\r\n","export * from \"./TextButtonSpacing\";\r\n","import React, { forwardRef, MouseEventHandler } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, LinkTargetOptions, TextAlign } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { ButtonFake } from \"../ButtonFake\";\r\nimport { ButtonProvider } from \"../ButtonProvider\";\r\nimport { MultiEditWrapper } from \"../MultiEditWrapper\";\r\nimport { Text, WhiteSpace } from \"../Text\";\r\nimport { TextButtonSpacing } from \"../TextButtonSpacing\";\r\nimport { ComponentSize, MultiEditProps } from \"../types\";\r\n\r\nconst { openUrl } = bridge;\r\n\r\nconst classNames = bemClassNames(\"link-button-component\");\r\n\r\nexport type LinkButtonComponentProps = {\r\n /** Adresa odkazu */\r\n url?: string;\r\n /** Text odkazu */\r\n text?: string;\r\n /** Text nápovědy */\r\n title?: string;\r\n /** Způsob jakým se má odkaz otevřít */\r\n target?: LinkTargetOptions;\r\n /** Callback volaný na kliknutí */\r\n onClick?: MouseEventHandler<HTMLButtonElement>;\r\n /** Příznak, zda má tlačítko vykreslit loading indikátor */\r\n isLoading?: boolean;\r\n /** Příznak, zda má být tlačítko aktivní */\r\n enabled?: boolean;\r\n /** Lokalizační klíč */\r\n locKey: string;\r\n} & Omit<MultiEditProps, \"ref\">;\r\n\r\n/** Komponenta tlačítka otevírající URL adresy */\r\nexport const LinkButtonComponent: ForwardRefType<HTMLInputElement, LinkButtonComponentProps> = forwardRef<HTMLInputElement, LinkButtonComponentProps>(({\r\n url,\r\n text,\r\n title,\r\n target = LinkTargetOptions.blank,\r\n enabled,\r\n isLoading,\r\n multiEditActive,\r\n locKey,\r\n onClick = () => {\r\n if (url && enabled)\r\n openUrl(url, target);\r\n },\r\n// Reference je zde kvůli EditableControlConnectoru.\r\n// @ts-ignore\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\n}, ref) => {\r\n const fakeComponentRenderer = () => <ButtonFake locKey={locKey} />;\r\n\r\n return (\r\n <div className={classNames()}>\r\n <MultiEditWrapper fakeComponentRenderer={fakeComponentRenderer} touched={false} multiEditActive={multiEditActive}>\r\n {() => {\r\n return <ButtonProvider {...{ onClick, title, isLoading }} role={Role.link} disabled={!enabled}\r\n width=\"100%\" height=\"100%\" textAlign={TextAlign.center}>\r\n <TextButtonSpacing size={ComponentSize.small}>\r\n <Text\r\n isTextSelectable={false}\r\n value={text}\r\n whiteSpace={WhiteSpace.nowrap}\r\n ellipsis={true}\r\n underline={true}\r\n />\r\n </TextButtonSpacing>\r\n </ButtonProvider>;\r\n }}\r\n </MultiEditWrapper>\r\n </div>\r\n );\r\n});\r\n","export * from \"./LinkButtonComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { MapLocalizationToProps, MapLocKey, withLocalization } from \"UI/UI.React/HOC\";\r\nimport { LinkButtonComponent, LinkButtonComponentProps } from \"../LinkButtonComponent\";\r\nimport { createLinkButtonClickAction } from \"./actions\";\r\nimport { getIsLoading } from \"./selectors\";\r\n\r\n//Props napojené komponenty musí rozšiřovat props prezentační komponenty\r\nexport type LinkButtonProps = {\r\n /** Id instance */\r\n readonly dataKey: string;\r\n /** Lokalizační klíč textu a nápovědy */\r\n readonly locKey: string;\r\n} & LinkButtonComponentProps;\r\n\r\ntype StateProps = Pick<LinkButtonComponentProps, \"isLoading\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LinkButtonProps, IAppState> = (state, { dataKey }) => ({\r\n isLoading: getIsLoading(state, dataKey),\r\n});\r\n\r\ntype DispatchProps = Pick<LinkButtonComponentProps, \"onClick\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, LinkButtonProps> = (dispatch, { dataKey }) => ({\r\n onClick: () => dispatch(createLinkButtonClickAction(dataKey)),\r\n});\r\n\r\nconst mapToProps: MapLocalizationToProps<Pick<LinkButtonProps, \"text\" | \"title\">> = ({ text, title }) => ({\r\n text,\r\n title,\r\n});\r\n\r\nconst mapLocKeyProp: MapLocKey<Omit<LinkButtonProps, \"text\" | \"title\">> = ({ locKey }) => ({\r\n locKey,\r\n});\r\n\r\nconst LinkButtonConnected = connect(mapStateToProps, mapDispatchToProps)(LinkButtonComponent);\r\n// eslint-disable-next-line react-redux/prefer-separate-component-file\r\nexport const LinkButton = withLocalization(mapToProps, mapLocKeyProp)(LinkButtonConnected);\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { LinkButtonMapState } from \"./types\";\r\n\r\nexport * from \"./LinkButton\";\r\n\r\nexport const linkButtonModule: ApplicationStatefulModule<typeof NAME, Reducer<LinkButtonMapState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n\r\nexport {\r\n createClearLinkButtonAction,\r\n createInitLinkButtonAction,\r\n createLinkButtonClickAction,\r\n createUpdateLinkButtonOptionsAction,\r\n} from \"./actions\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { FlexGrow, Layout } from \"../Layout\";\r\nimport { Text, TextColor, WhiteSpace } from \"../Text\";\r\nimport { FakeComponentProps } from \"../types\";\r\n\r\nexport type LinkEditFakeComponentProps = {\r\n /** Text zobrazovaný v komponentě */\r\n value: string;\r\n} & FakeComponentProps;\r\n\r\nconst classNames = bemClassNames(\"link-edit-fake-component\");\r\n\r\nexport const LinkEditFakeComponent: FunctionComponent<LinkEditFakeComponentProps> = ({\r\n value,\r\n onClick,\r\n onKeyDown,\r\n label,\r\n title,\r\n disabled,\r\n valueTitle,\r\n isEditing,\r\n ariaLabelledBy,\r\n}) => (\r\n <div\r\n className={classNames({ disabled: disabled || !isEditing })}\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}\r\n role={Role.textBox}\r\n aria-disabled={disabled}\r\n aria-label={ariaLabelledBy ? undefined : label}\r\n aria-labelledby={ariaLabelledBy}\r\n {...{ title, onClick, onKeyDown }}\r\n >\r\n <Layout flexGrow={FlexGrow.one}>\r\n <Text color={TextColor.textPrimary} title={valueTitle} value={value} disabled={disabled || !isEditing} whiteSpace={WhiteSpace.nowrap} ellipsis={true}/>\r\n </Layout>\r\n </div>\r\n);\r\n","export * from \"./LinkEditFakeComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LinkEditFakeComponent, LinkEditFakeComponentProps } from \"../LinkEditFakeComponent\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\nexport type LinkEditFakeProps = FakeContainerProps;\r\n\r\ntype StateProps = Pick<LinkEditFakeComponentProps, \"value\" | \"title\" | \"valueTitle\" | \"label\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LinkEditFakeProps, IAppState> = (state, { locKey }) => ({\r\n value: getPrimaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n valueTitle: getSecondaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n label: getPrimaryText(state, locKey) ?? \"\",\r\n title: getSecondaryText(state, locKey) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče pro získání hodnoty zobrazované v LinkEditFakeComponent a také pro vysvětlivku (title).\r\n */\r\nexport const LinkEditFake: ComponentType<LinkEditFakeProps> = connect(mapStateToProps)(LinkEditFakeComponent);\r\n","export * from \"./LinkEditFake\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type SkeletonProps = {\r\n /** Šířka (výchozí hodnota je 100%) */\r\n width?: string | number;\r\n /** Výška (výchozí hodnota je 100%) */\r\n height?: string | number;\r\n /**\r\n * Pokud má hodnotu `true`, nastaví `border-radius: 50%`.\r\n *\r\n * Při stejné výšce a šířce bude mít tedy komponenta tvar kruhu, při rozdílné tvar oválu.\r\n */\r\n circle?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"skeleton-component\");\r\n\r\nexport const Skeleton: FunctionComponent<SkeletonProps> = ({\r\n width = \"100%\",\r\n height = \"100%\",\r\n circle,\r\n}) => (\r\n <div\r\n className={classNames({ circle })}\r\n style={{ width, height }}\r\n />\r\n);\r\n","const skeletonWidths = [50, 60, 25, 30, 20, 80, 20];\r\n\r\nexport const getSkeletonPercentageWidthByIndex = (index: number): string =>\r\n `${skeletonWidths[index % skeletonWidths.length]}%`;\r\n","export * from \"./Skeleton\";\r\nexport { getSkeletonPercentageWidthByIndex } from \"./utils\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { UNKNOWN_KEY_TEXT } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames, createQA, Key } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { OrderType } from \"@multiweb/types/multiweb\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\nimport { Layout, SpacingSize } from \"../Layout\";\r\nimport { Skeleton } from \"../Skeleton\";\r\nimport { FontWeight, Text, TextColor } from \"../Text\";\r\n\r\nexport type ListHeaderAttributeComponentProps = {\r\n /** Lokalizovaný název atributu. */\r\n attributeName?: string;\r\n /** Lokalizovaný popisek atributu. */\r\n attributeTitle?: string;\r\n /** Druh řazení. */\r\n orderType?: OrderType;\r\n /** Akce, která se provede při obyčejném kliku na atribut. */\r\n onClick: () => void;\r\n /** Akce, která se provede při shift kliku. */\r\n onShiftClick: () => void;\r\n /** Určuje, zda probíhá načítání lokalizací. */\r\n isLocalizationsFetching: boolean;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"list-header-attribute-component\");\r\n\r\nexport const ListHeaderAttributeComponent: FunctionComponent<ListHeaderAttributeComponentProps> = ({\r\n attributeName = UNKNOWN_KEY_TEXT,\r\n attributeTitle,\r\n orderType,\r\n onClick,\r\n onShiftClick,\r\n isLocalizationsFetching,\r\n interactive = true,\r\n}) => (\r\n <span\r\n className={classNames()}\r\n onClick={(event) => {\r\n if (interactive) {\r\n event.shiftKey ? onShiftClick() : onClick();\r\n }\r\n }}\r\n {...createQA(attributeName)}\r\n role={Role.columnHeader}\r\n aria-sort={orderType ?? undefined}\r\n >\r\n {isLocalizationsFetching ? (\r\n <div className={classNames(\"skeleton\")}>\r\n <Skeleton />\r\n </div>\r\n ) : (\r\n <Text\r\n value={attributeName}\r\n role={Role.button}\r\n title={attributeTitle}\r\n color={orderType ? undefined : TextColor.textSecondary}\r\n fontWeight={orderType && FontWeight.bold}\r\n ellipsis\r\n hideOutlineOnFocus\r\n onKeyDown={(event) => {\r\n if (event.key === Key.Space || event.key === Key.Enter) {\r\n event.preventDefault();\r\n event.shiftKey ? onShiftClick() : onClick();\r\n }\r\n }}\r\n disabled={!interactive}\r\n />\r\n )}\r\n <Layout spacingSizeRight={SpacingSize.xs} ariaHidden={true}>\r\n {orderType && !isLocalizationsFetching && (\r\n <Icon\r\n iconCode={\r\n orderType === OrderType.ascending ? IconCode.uiArrowTopSmall : IconCode.uiArrowBottomSmall\r\n }\r\n color={IconColor.textPrimary}\r\n disabled={!interactive}\r\n />\r\n )}\r\n </Layout>\r\n </span>\r\n);\r\n","export * from \"./ListHeaderAttributeComponent\";\r\n","import { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport const classNames = bemClassNames(\"measurer\");\r\n","import React, { useEffect, useRef } from \"react\";\r\n\r\nimport { useFontsLoaded } from \"@multiweb/reactUtils\";\r\nimport { IComponentSize } from \"@multiweb/types/react\";\r\nimport { classNames } from \"./constants\";\r\n\r\ninterface IMeasurerItemProps {\r\n /** Měřená komponenta. */\r\n children: React.ReactNode;\r\n /** Callback volaný v momentě vyrenderování komponenty. */\r\n onMeasuredCallback: (size: IComponentSize) => void;\r\n}\r\n\r\n/**\r\n * Vyrenderuje komponentu a v callbacku vrátí její reálné rozměry v HTML.\r\n */\r\nexport const MeasuredItem: React.FC<IMeasurerItemProps> = ({\r\n children,\r\n onMeasuredCallback,\r\n}) => {\r\n const fontLoaded = useFontsLoaded();\r\n const itemRef = useRef<HTMLDivElement | null>(null);\r\n\r\n useEffect(() => {\r\n if (fontLoaded && itemRef?.current) {\r\n const { width, height } = itemRef.current.getBoundingClientRect();\r\n onMeasuredCallback({ width, height });\r\n }\r\n }, [fontLoaded, onMeasuredCallback]);\r\n\r\n return (\r\n <div ref={itemRef} className={classNames(\"measured-item\")}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import { ReactNode } from \"react\";\r\n\r\nimport { IComponentSize } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Rozhraní pro měření komponent\r\n */\r\nexport interface IMeasuredItem {\r\n /** Unikátní klíč komponenty */\r\n key: string;\r\n /** Měřená kompomenta */\r\n component: ReactNode;\r\n /** Callback, který se zavolá v případě úspěšného změření kompoennty */\r\n onItemMeasured: (size: IComponentSize) => void;\r\n}\r\n","import React, { ReactElement, useEffect, useState } from \"react\";\r\n\r\nimport { ISectionLogger } from \"@multiweb/logging\";\r\nimport { isEmptyArray, isEmptyString } from \"@multiweb/reactUtils\";\r\nimport { CaseInsensitiveMap } from \"@multiweb/types/multiweb\";\r\nimport { IComponentSize } from \"@multiweb/types/react\";\r\nimport { classNames } from \"./constants\";\r\nimport { MeasuredItem } from \"./MeasuredItem\";\r\nimport { IMeasuredItem } from \"./types\";\r\n\r\ninterface IMeasurerProps {\r\n /** Kolekce komoponent, u kterých chceme změřit rozměry po vyrenderování */\r\n itemsToMeasure: ReadonlyArray<IMeasuredItem>;\r\n /** Callback, který se zavolá v momentě kdy jsou změřeny všechny požadované komponenty */\r\n onAllMeasuredCallback: () => void;\r\n /** Logger (volitelně) */\r\n logger?: ISectionLogger;\r\n}\r\n\r\n/** Komponenta postyktuje měření výšek a šířek pro předaný seznam komponent */\r\nexport const Measurer: React.FC<IMeasurerProps> = ({\r\n itemsToMeasure,\r\n onAllMeasuredCallback,\r\n logger,\r\n}) => {\r\n const [itemsMeasured, setItemsMeasured] = useState<CaseInsensitiveMap<IComponentSize>>(new CaseInsensitiveMap<IComponentSize>());\r\n const [allMeasuredTriggered, setAllMeasuredTriggered] = useState<boolean>(false);\r\n const itemMeasuredHandler = (item: IMeasuredItem, size: IComponentSize) => {\r\n logger?.debug(\"items measured\", item.key, size.width);\r\n item.onItemMeasured(size);\r\n if (isEmptyString(item.key))\r\n logger?.error(\"Cannot measure item without valid key\");\r\n\r\n setItemsMeasured(prev => {\r\n const newList = new CaseInsensitiveMap<IComponentSize>(prev);\r\n if (newList.has(item.key))\r\n logger?.error(\"Found one or more items with same measure keys. This will probably break measuring sizes.\");\r\n else\r\n newList.set(item.key, size);\r\n\r\n return newList;\r\n });\r\n };\r\n\r\n //Pokud už byly změřeny všechny komponenty, je potřeba vyvolat callback, že už bylo vše změřeno\r\n useEffect(() => {\r\n if (!allMeasuredTriggered && !isEmptyArray(itemsToMeasure) && itemsMeasured.size === itemsToMeasure.length) {\r\n onAllMeasuredCallback();\r\n setAllMeasuredTriggered(true);\r\n logger?.debug(\"All items were measured.\");\r\n }\r\n //Stačí mi hook volat jen při změně itemsMeasured.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsMeasured]);\r\n\r\n const [items, setItems] = useState<ReactElement[] | undefined>();\r\n useEffect(() => {\r\n setItems(itemsToMeasure && itemsToMeasure.map((item) =>\r\n <MeasuredItem key={item.key} onMeasuredCallback={(size) => itemMeasuredHandler(item, size)}>\r\n {item.component}\r\n </MeasuredItem>));\r\n setItemsMeasured(new CaseInsensitiveMap());\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [itemsToMeasure]);\r\n\r\n return (\r\n <div className={classNames()}>\r\n {items}\r\n </div>\r\n );\r\n};\r\n","export { Measurer } from \"./Measurer\";\r\nexport { IMeasuredItem } from \"./types\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FakeComponentProps } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type MemoFakeComponentProps = {\r\n /** Text zobrazovaný v komponentě */\r\n value: string;\r\n} & FakeComponentProps;\r\n\r\nconst classNames = bemClassNames(\"memo-fake-component\");\r\n\r\nexport const MemoFakeComponent: FunctionComponent<MemoFakeComponentProps> = ({\r\n value,\r\n onClick,\r\n onKeyDown,\r\n label,\r\n title,\r\n disabled,\r\n valueTitle,\r\n isEditing,\r\n ariaLabelledBy,\r\n required,\r\n recommended,\r\n postponedRequired,\r\n}) => {\r\n const isDisabled = disabled || !isEditing;\r\n const isRequired = required && !isDisabled;\r\n const isPostponedRequired = postponedRequired && !required && !isDisabled;\r\n const isRecommended = recommended && !postponedRequired && !isRequired && !isDisabled;\r\n return (\r\n <div\r\n className={classNames({ disabled: isDisabled, required: isRequired, postponedRequired: isPostponedRequired, recommended: isRecommended })}\r\n {...{ title, onClick, onKeyDown }}\r\n >\r\n <textarea\r\n className={classNames(\"textarea\")}\r\n title={valueTitle}\r\n readOnly={true}\r\n /* Uživatel může ve fake komponentě provést pouze smazání hodnoty pomocí kláves backspace/delete. Toto je zvláštní forma vstupu, která se zpracovává samostatně přes onKeyDown událost.\r\n Proto je textarea nastavená jako readonly, protože neumožňuje běžnou editaci. Z pohledu přístupnosti však není readonly nastavení zcela vhodné, protože uživatel by si myslel, že pole\r\n nelze editovat vůbec. Pole však lze editovat, jen je třeba provést nejdřív krok smazání. Proto je readonly atribut v textarea přepsán hodnotou aria-readonly nastavenou na false. */\r\n aria-readonly={false}\r\n aria-label={ariaLabelledBy ? undefined : label}\r\n aria-labelledby={ariaLabelledBy}\r\n {...{ disabled, value }}\r\n />\r\n </div>\r\n );\r\n};\r\n","export * from \"./MemoFakeComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { FAKE_COMPONENT_VALUE_LOC_KEY } from \"../locKeys\";\r\nimport { MemoFakeComponent, MemoFakeComponentProps } from \"../MemoFakeComponent\";\r\nimport { FakeContainerProps } from \"../types\";\r\n\r\nexport type MemoFakeProps = FakeContainerProps;\r\n\r\ntype StateProps = Pick<MemoFakeComponentProps, \"value\" | \"title\" | \"valueTitle\" | \"label\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MemoFakeProps, IAppState> = (state, { locKey }) => ({\r\n value: getPrimaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n valueTitle: getSecondaryText(state, FAKE_COMPONENT_VALUE_LOC_KEY) ?? \"\",\r\n label: getPrimaryText(state, locKey) ?? \"\",\r\n title: getSecondaryText(state, locKey) ?? \"\",\r\n});\r\n\r\n/**\r\n * Zajišťuje překlad lokalizačního klíče pro získání hodnoty zobrazované v MemoFakeComponent a také pro vysvětlivku (title).\r\n */\r\nexport const MemoFake: ComponentType<MemoFakeProps> = connect(mapStateToProps)(MemoFakeComponent);\r\n","export * from \"./MemoFake\";\r\n","/**\r\n * Zajišťuje, aby i na menších rozlišeních bylo modální okno responzivní, tzn. přizpůsobovalo se velikosti rozlišení.\r\n * @param browserSize Hodnota pro velikost šířky nebo výšky prohlížeče.\r\n * @param defaultSize Hodnota pro defaultní velikost šířky nebo výšky modálního okna.\r\n */\r\nexport const getFittableSize = (browserSize: number, defaultSize: number): number => {\r\n return browserSize < defaultSize ? browserSize * 0.8 : defaultSize;\r\n};\r\n\r\n/**\r\n * Určuje výchozí hodnotu pozice modálního okna.\r\n * @param browserWidth Šířka nebo výška prohlížeče.\r\n * @param alignSide Hodnota odsazení modálního okna od levého nebo horního okraje prohlížeče.\r\n * @param windowDimension Šířka nebo výška modálního okna.\r\n */\r\nexport const setInitialPosition = (browserWidth: number, alignSide: number, windowDimension: number): number => {\r\n return browserWidth * alignSide - (windowDimension / 2);\r\n};\r\n\r\n/**\r\n * Určuje maximální a minimální velikost modálního okna.\r\n * @param newSizeValue Hodnota nové šířky nebo velikosti modálního okna.\r\n * @param minSize Minimální hodnota šířky nebo velikosti modálního okna.\r\n * @param browserSize Hodnota pro velikost šířky nebo výšky prohlížeče.\r\n */\r\nexport const clampWindowDimension = (newSizeValue: number, minSize: number, browserSize: number): number => {\r\n if (newSizeValue > minSize && newSizeValue < browserSize) {\r\n return newSizeValue;\r\n }\r\n\r\n if (newSizeValue >= browserSize) {\r\n return browserSize;\r\n }\r\n\r\n return minSize;\r\n};\r\n\r\n/**\r\n * Určuje, zda-li je modální okno mimo hranice prohlížeče.\r\n * @param newLeft Nová hodnota odsazení modálního okna od levého okraje prohlížeče.\r\n * @param newTop Nová hodnota odsazení modálního okna od horního okraje prohlížeče\r\n * @param windowDimensionWidth Šířka modálního okna.\r\n * @param browserWidth Šířka prohlížeče.\r\n * @param browserHeight Výška prohlížeče.\r\n */\r\nexport const isWindowOutOfBounds = (newLeft: number, newTop: number, windowDimensionWidth: number, browserWidth: number, browserHeight: number): boolean => {\r\n const horizontalOffset = (windowDimensionWidth >> 1) + newLeft;\r\n return horizontalOffset < 0\r\n || horizontalOffset > browserWidth\r\n || newTop < 0\r\n || newTop + 16 > browserHeight;\r\n};\r\n","import React, { forwardRef, KeyboardEvent, MouseEvent, PropsWithChildren, useEffect, useRef, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport { ANIMATION_DURATION_MS, bemClassNames, combineRefs, invariant, Key, stopPropagationHandler, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType, MouseButtons } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { MODAL_ROOT_ID } from \"../../constants\";\r\nimport { AnimatedMount, AnimationType } from \"../AnimatedMount\";\r\nimport { ResizeOptionsProps } from \"../types\";\r\nimport { clampWindowDimension, getFittableSize, isWindowOutOfBounds, setInitialPosition } from \"./utils\";\r\n\r\nexport type ModalWindowProps = PropsWithChildren<{\r\n /** přepínač určující, zda-li se modal window bude moci zavřít i při kliknutí mimo něj */\r\n readonly closeByOuterClick?: boolean;\r\n /** přepinač určující, zda-li se modal window bude moci posouvat */\r\n readonly draggable?: boolean;\r\n /** přepínač určující, zda-li bude mít modal window průhledné pozadí nebo klasické MW (backdrop) */\r\n readonly hasTransparentBackdrop?: boolean;\r\n /** zobrazení modal window */\r\n readonly isDisplayed: boolean;\r\n /** pokud je true, tak skryje modální okno, ale nepřestane jej renderovat v DOM-u */\r\n readonly isHidden?: boolean;\r\n /** Callback volaný při stisku klávesy ESCAPE. Předání hodnoty také způsobí, že při stisku ESCAPE se modální okno zavře. */\r\n readonly closeOnEscape?: ((e: KeyboardEvent<HTMLDivElement>) => void) | true;\r\n /** callback funkce volaná po dokončení animace skrytí modálního okna */\r\n readonly onCloseChange: () => void;\r\n readonly onOuterClick?: () => void;\r\n /** Id elementu pro přístupnost aria-labelledby */\r\n readonly labelId?: string;\r\n /** Funkce volaná při zaměření modálu. To nastává při prvním renderu komponenty nebo když uživatel z modálu focusem odjede a pak se na něj vrátí. */\r\n readonly onContentFocus?: () => void;\r\n}> & ResizeOptionsProps;\r\n\r\nconst classNames = bemClassNames(\"modal-component\");\r\nconst box = classNames(\"box\");\r\nconst draggingLineContainer = classNames(\"dragging-line-container\");\r\nconst resizerClass = classNames(\"resizer\");\r\nconst resizerAreaClass = classNames(\"resizer-area\");\r\n\r\n/** hodnota pro zarovnání modal okna směrem na střed - nahrazuje css vlastnost: left: 50% */\r\nconst ALIGN_LEFT = 0.50;\r\n/** hodnota pro zarovnání modal okna směrem na střed - nahrazuje css vlastnost: top: 47% (opticky lepší nedávat okno úplně na střed) */\r\nconst ALIGN_TOP = 0.47;\r\n/** šířka resizeru */\r\nconst RESIZER_THICKNESS = 8;\r\n\r\nexport const ModalWindow: ForwardRefType<HTMLDivElement, ModalWindowProps> = forwardRef<HTMLDivElement, ModalWindowProps>(({\r\n children,\r\n draggable = false,\r\n resizable = false,\r\n asymmetricallyResizable = false,\r\n isDisplayed = true,\r\n isHidden = false,\r\n closeByOuterClick = false,\r\n hasTransparentBackdrop = false,\r\n labelId,\r\n closeOnEscape,\r\n onOuterClick,\r\n onCloseChange,\r\n onContentFocus,\r\n defaultHeight,\r\n defaultWidth,\r\n minWidth = 200,\r\n maxWidth,\r\n minHeight = 200,\r\n maxHeight,\r\n}, forwardRef) => {\r\n const { innerWidth: browserWidth, innerHeight: browserHeight } = window;\r\n const [windowDimensions, setWindowDimensions] = useState({ width: getFittableSize(browserWidth, defaultWidth), height: getFittableSize(browserHeight, defaultHeight) });\r\n const [windowPosition, setWindowPosition] = useState({ left: setInitialPosition(browserWidth, ALIGN_LEFT, windowDimensions.width), top: setInitialPosition(browserHeight, ALIGN_TOP, windowDimensions.height) });\r\n const [isDraggerActive, setIsDraggerActive] = useState(false);\r\n const [closingRequested, setClosingRequested] = useState(false);\r\n const isDragging = useRef(false);\r\n const isResizing = useRef(false);\r\n const isClosing = useRef(false);\r\n const contentRef = useRef<HTMLDivElement>(null);\r\n const initialCoordinates = useRef({ x: 0, y: 0 });\r\n const clickStartedFromWithin = useRef<boolean>(false);\r\n const backgroundRef = useRef<HTMLDivElement>(null);\r\n const combinedBackgroundRef = combineRefs(backgroundRef, forwardRef);\r\n\r\n const modalRoot = document.getElementById(MODAL_ROOT_ID);\r\n\r\n invariant(modalRoot, `[ModalWindow] Cannot render modal window because element with id ${MODAL_ROOT_ID} is undefined.`);\r\n\r\n useEffect(() => {\r\n // Tento useEffect zajistí, že po otevření okna se focus dá na okno.\r\n // Pokud ale programátor v obsahu okna už nějakému prvku nastavil focus, tak se tento kód neprovede.\r\n if (backgroundRef.current && !backgroundRef.current.contains(document.activeElement))\r\n backgroundRef.current.focus();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if ((!isDisplayed || closingRequested) && !isClosing.current) {\r\n isClosing.current = true;\r\n setTimeout(onCloseChange, ANIMATION_DURATION_MS);\r\n }\r\n }, [isDisplayed, closingRequested, onCloseChange]);\r\n\r\n const handleKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\r\n stopPropagationHandler(event);\r\n\r\n // reagujeme na onKeyUp, aby se při zavření ModalWindow neodchytil stisk klávesy na nějakém jiném elementu, který se po zavření zaměří.\r\n if (event.key === Key.Escape && closeOnEscape) {\r\n if (typeof closeOnEscape === \"function\") {\r\n closeOnEscape(event);\r\n }\r\n setClosingRequested(true);\r\n }\r\n };\r\n\r\n const handleOuterClick = (e: MouseEvent<HTMLDivElement>) => {\r\n if (closeByOuterClick && e.currentTarget === e.target && !clickStartedFromWithin.current)\r\n !onOuterClick ? setClosingRequested(true) : onOuterClick();\r\n };\r\n\r\n const onDraggerEnter = () => {\r\n setIsDraggerActive(true);\r\n };\r\n\r\n const onDraggerLeave = () => {\r\n setIsDraggerActive(false);\r\n };\r\n\r\n const handleDragStart = (e: MouseEvent<HTMLDivElement>) => {\r\n isDragging.current = true;\r\n initialCoordinates.current = { x: e.clientX, y: e.clientY };\r\n e.stopPropagation();\r\n };\r\n\r\n const handleResizeStart = (e: MouseEvent<HTMLDivElement>) => {\r\n isResizing.current = true;\r\n e.stopPropagation();\r\n };\r\n\r\n const handleMouseMove = (e: MouseEvent<HTMLDivElement>) => {\r\n if (e.buttons === MouseButtons.leftButton && isDragging.current)\r\n handleDragMove(e);\r\n else if (e.buttons === MouseButtons.leftButton && isResizing.current)\r\n handleResizeMove(e);\r\n else {\r\n isDragging.current = false;\r\n isResizing.current = false;\r\n }\r\n };\r\n\r\n const handleDragMove = (e: MouseEvent<HTMLDivElement>) => {\r\n const deltaX = e.clientX - initialCoordinates.current.x;\r\n const deltaY = e.clientY - initialCoordinates.current.y;\r\n const newLeft = windowPosition.left + deltaX;\r\n const newTop = windowPosition.top + deltaY;\r\n\r\n if (isWindowOutOfBounds(newLeft, newTop, windowDimensions.width, browserWidth, browserHeight))\r\n return;\r\n\r\n setWindowPosition({ left: newLeft, top: newTop });\r\n initialCoordinates.current = { x: e.clientX, y: e.clientY };\r\n };\r\n\r\n const handleResizeMove = (e: MouseEvent<HTMLDivElement>) => {\r\n if (contentRef.current === null)\r\n return;\r\n\r\n const contentBcr = contentRef.current.getBoundingClientRect();\r\n const deltaWidth = e.clientX - contentBcr.right + RESIZER_THICKNESS;\r\n const deltaHeight = e.clientY - contentBcr.bottom + RESIZER_THICKNESS;\r\n\r\n if (e.clientX >= contentBcr.left && e.clientY >= contentBcr.top) {\r\n const newWidth = windowDimensions.width + (resizable ? deltaWidth * 2 : deltaWidth);\r\n const newHeight = windowDimensions.height + (windowPosition.top !== 0 && resizable ? deltaHeight * 2 : deltaHeight);\r\n\r\n const clampWidth = clampWindowDimension(newWidth, minWidth, browserWidth);\r\n const clampHeight = clampWindowDimension(newHeight, minHeight, browserHeight);\r\n\r\n setWindowDimensions({\r\n width: clampWidth,\r\n height: clampHeight,\r\n });\r\n\r\n if (resizable) {\r\n const newLeft = windowPosition.left - (clampWidth - windowDimensions.width) / 2;\r\n const newTop = Math.max(0, windowPosition.top - (clampHeight - windowDimensions.height) / 2);\r\n\r\n setWindowPosition({\r\n left: newLeft,\r\n top: newTop,\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleDragStop = (e: MouseEvent<HTMLDivElement>) => {\r\n isDragging.current = false;\r\n clickStartedFromWithin.current = contentRef?.current?.contains(e.target as Element) === true;\r\n };\r\n\r\n const handleResizeStop = () => {\r\n isResizing.current = false;\r\n };\r\n\r\n const handleModalCenter = (e: MouseEvent<HTMLDivElement>) => {\r\n if (e.currentTarget === e.target)\r\n setWindowPosition({\r\n left: setInitialPosition(browserWidth, ALIGN_LEFT, windowDimensions.width),\r\n top: setInitialPosition(browserHeight, ALIGN_TOP, windowDimensions.height),\r\n });\r\n };\r\n\r\n /** Ošetřuje, aby se focus nikdy nedostal na samotný modál/backdrop. */\r\n const onModalFocus = (e: React.FocusEvent<HTMLDivElement>) => {\r\n if (!backgroundRef.current) {\r\n return;\r\n }\r\n\r\n // Pokud se focus snaží dostat přímo na modál (= neprobublalo to jen z obsahu komponenty).\r\n if (e.target.isSameNode(backgroundRef.current)) {\r\n /** Informace, zda událost focusu byla vyvolána v rámci obsahu komponenty. */\r\n const focusFromInside = !!e.relatedTarget && backgroundRef.current.contains(e.relatedTarget as Node);\r\n\r\n // Pokud se klávesou TAB podařilo skočit z obsahu na modál, tak focus vrátíme na poslední zaměřený element z obsahu.\r\n if (focusFromInside) {\r\n (e.relatedTarget as HTMLElement).focus();\r\n } else {\r\n // Pokud bylo vyvoláno zaměření od někud mimo obsah modálu, tak zaměříme obsah modálu.\r\n onContentFocus?.();\r\n }\r\n }\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n return (createPortal(\r\n <div\r\n onKeyUp={handleKeyUp}\r\n onFocus={onModalFocus}\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE} // Nastavujeme tabIndex, aby se vyvolávala metoda onFocus a my mohli focus zpracovat. Samotný modál by ale nikdy zaměřen být neměl.\r\n ref={combinedBackgroundRef}\r\n className={classNames({ \"hidden\": isHidden })}\r\n >\r\n <AnimatedMount animationDurationMs={ANIMATION_DURATION_MS} animationType={AnimationType.opacity} mounted={isDisplayed && !closingRequested}>\r\n <div className={classNames(\"backdrop\", { \"transparent-backdrop\": hasTransparentBackdrop })} onClick={handleOuterClick} onMouseMove={handleMouseMove} onMouseDown={handleDragStop} onMouseUp={handleResizeStop} onDoubleClick={handleModalCenter}>\r\n <div ref={contentRef} className={box} style={{ width: windowDimensions.width, height: windowDimensions.height, minWidth, minHeight, maxWidth, maxHeight, left: windowPosition.left, top: windowPosition.top }} role={Role.dialog} aria-labelledby={labelId} >\r\n {draggable &&\r\n <div className={draggingLineContainer} onMouseDown={handleDragStart} onMouseUp={handleDragStop} onMouseEnter={onDraggerEnter} onMouseLeave={onDraggerLeave}>\r\n <div className={classNames(\"dragging-line\", { \"active\": isDraggerActive })} />\r\n </div>\r\n }\r\n {(resizable || asymmetricallyResizable) &&\r\n <div className={resizerAreaClass} onMouseDown={handleResizeStart}>\r\n <div className={resizerClass} />\r\n </div>\r\n }\r\n {children}\r\n </div>\r\n </div>\r\n </AnimatedMount>\r\n </div>, modalRoot)\r\n );\r\n});\r\n","export * from \"./ModalWindow\";\r\n","import React, { forwardRef } from \"react\";\r\n\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { ButtonBackgroundColor, ButtonProvider, ButtonProviderProps } from \"../ButtonProvider\";\r\nimport { Text, TextColor, TextProps, WhiteSpace } from \"../Text\";\r\nimport { TextButtonSpacing } from \"../TextButtonSpacing\";\r\nimport { ComponentSize } from \"../types\";\r\n\r\nexport type TextButtonProps = {\r\n text?: string;\r\n size?: ComponentSize;\r\n} & ButtonProviderProps & QAProps & Pick<TextProps, \"color\" | \"fontWeight\">;\r\n\r\n/** Tlačítko v podobě textu */\r\nexport const TextButton: ForwardRefType<HTMLButtonElement, TextButtonProps> = forwardRef<HTMLButtonElement, TextButtonProps> (({\r\n backgroundColor = ButtonBackgroundColor.transparent,\r\n disabled = false,\r\n onClick,\r\n size = ComponentSize.small,\r\n text = \"\",\r\n theme = ComponentTheme.default,\r\n title,\r\n tabIndex,\r\n isFocused = false,\r\n qa,\r\n color = TextColor.default,\r\n fontWeight,\r\n shadow,\r\n outline,\r\n width,\r\n textAlign,\r\n ...restProps\r\n}, forwardRef) => (\r\n <ButtonProvider\r\n {...{ onClick, title, tabIndex, theme, size, disabled, color, fontWeight, qa, isFocused, backgroundColor, shadow, outline, width, textAlign, ...restProps }}\r\n ref={forwardRef}\r\n >\r\n <TextButtonSpacing {...{ size }}>\r\n <Text\r\n isTextSelectable={false}\r\n value={text}\r\n whiteSpace={WhiteSpace.nowrap}\r\n ellipsis={true}\r\n {...{ theme, color, fontWeight, disabled }}\r\n />\r\n </TextButtonSpacing>\r\n </ButtonProvider>\r\n));\r\n","export * from \"./TextButton\";\r\n","import React, { FunctionComponent, PropsWithChildren, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames, Key } from \"@multiweb/reactUtils\";\r\nimport { ButtonBackgroundColor } from \"../ButtonProvider\";\r\nimport { ModalWindow, ModalWindowProps } from \"../ModalWindow\";\r\nimport { TextColor } from \"../Text\";\r\nimport { TextButton } from \"../TextButton\";\r\nimport { ComponentSize } from \"../types\";\r\n\r\nexport type MessageWindowComponentProps = PropsWithChildren<{\r\n /** text předaný primary button (levé tlačítko) */\r\n readonly secondaryButtonText?: string;\r\n /** text předaný secondary button (pravé tlačítko) */\r\n readonly primaryButtonText: string;\r\n /** callback funkce volaná při kliku na primary button */\r\n readonly onPrimaryButtonClick?: () => void;\r\n /** callback funkce volaná při kliku na secondary button */\r\n readonly onSecondaryButtonClick?: () => void;\r\n /** callback funkce volaná při zavření MessageWindow */\r\n readonly onCloseMessageWindow: () => void;\r\n}>\r\n & Pick<ModalWindowProps, \"closeOnEscape\">;\r\n\r\nconst classNames = bemClassNames(\"message-window\");\r\nconst messageWindowClassName = classNames();\r\nconst messageWindowContentClassName = classNames(\"content\");\r\nconst buttonsAreaClassName = classNames(\"buttons-area\");\r\n\r\nexport const MessageWindowComponent: FunctionComponent<MessageWindowComponentProps> = ({\r\n children,\r\n secondaryButtonText,\r\n primaryButtonText,\r\n closeOnEscape,\r\n onPrimaryButtonClick,\r\n onSecondaryButtonClick,\r\n onCloseMessageWindow,\r\n}) => {\r\n const [isDisplayed, setIsDisplayed] = useState(true);\r\n const focusButtonRef = useRef<HTMLButtonElement>(null);\r\n\r\n const handleOnPrimaryButtonClick = () => {\r\n setIsDisplayed(false);\r\n if (onPrimaryButtonClick)\r\n onPrimaryButtonClick();\r\n };\r\n\r\n const handleOnSecondaryButtonClick = () => {\r\n setIsDisplayed(false);\r\n if (onSecondaryButtonClick)\r\n onSecondaryButtonClick();\r\n };\r\n\r\n const focusDialog = () => {\r\n focusButtonRef.current?.focus();\r\n };\r\n\r\n return (\r\n <ModalWindow {...{ isDisplayed, closeOnEscape }} onCloseChange={onCloseMessageWindow} onContentFocus={focusDialog} defaultWidth={640} defaultHeight={134} minWidth={320} minHeight={134} maxHeight={900} maxWidth={1200}>\r\n <div className={messageWindowClassName}>\r\n <div className={messageWindowContentClassName}>\r\n {children}\r\n </div>\r\n <div className={buttonsAreaClassName}>\r\n {secondaryButtonText &&\r\n <TextButton\r\n size={ComponentSize.large}\r\n onClick={handleOnSecondaryButtonClick}\r\n text={secondaryButtonText}\r\n title={secondaryButtonText}\r\n backgroundColor={ButtonBackgroundColor.transparent}\r\n color={TextColor.colorPrimary}\r\n />\r\n }\r\n <TextButton\r\n ref={focusButtonRef}\r\n size={ComponentSize.large}\r\n isFocused\r\n onClick={handleOnPrimaryButtonClick}\r\n onKeyDown={(e) => e.key === Key.Tab && !e.shiftKey ? e.preventDefault() : undefined}\r\n text={primaryButtonText}\r\n title={primaryButtonText}\r\n backgroundColor={ButtonBackgroundColor.colorPrimary}\r\n color={TextColor.whiteBlack}\r\n />\r\n </div>\r\n </div>\r\n </ModalWindow>\r\n );\r\n};\r\n","export * from \"./MessageWindowComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { MessageWindowComponent, MessageWindowComponentProps } from \"../MessageWindowComponent\";\r\n\r\ntype StateProps = Pick<MessageWindowComponentProps, \"primaryButtonText\" | \"secondaryButtonText\">;\r\nexport type MessageWindowProps = {\r\n /** lokalizační klíč pro text předávaný primary button */\r\n readonly primaryButtonLocKey: string;\r\n /** lokalizační klíč pro text předáváný secondary button */\r\n readonly secondaryButtonLocKey?: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MessageWindowProps, IAppState> = (state, { primaryButtonLocKey, secondaryButtonLocKey }) => ({\r\n primaryButtonText: getPrimaryText(state, primaryButtonLocKey) ?? \"\",\r\n secondaryButtonText: secondaryButtonLocKey ? getPrimaryText(state, secondaryButtonLocKey) : undefined,\r\n});\r\n\r\nexport const MessageWindow = connect(mapStateToProps)(MessageWindowComponent);\r\n","export * from \"./MessageWindow\";\r\n","import { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ActionType } from \"@multiweb/types/multiweb\";\r\nimport { IEmptyMessage, ReactAction } from \"@multiweb/types/react\";\r\n\r\nexport const BASIC_ACTION_MOCK_ID = \"0\";\r\nexport const ICON_ACTION_MOCK_ID = \"1\";\r\nexport const DETAIL_ACTION_MOCK_ID = \"2\";\r\nexport const ACTIONS_LOCALIZATION_MOCK = {\r\n [`XG-${BASIC_ACTION_MOCK_ID}`]: { primaryText: \"Basic action\", secondaryText: \"Basic action description\" },\r\n [`XG-${ICON_ACTION_MOCK_ID}`]: { primaryText: \"Icon action\", secondaryText: \"Icon action description\" },\r\n [`XG-${DETAIL_ACTION_MOCK_ID}`]: { primaryText: \"Detail action\", secondaryText: \"Detail action description\" },\r\n [\"XG-3\"]: { primaryText: \"Basic action 2\", secondaryText: \"Another basic action description\" },\r\n [\"XG-4\"]: { primaryText: \"Basic action 3\", secondaryText: \"Another basic action description\" },\r\n [\"XG-5\"]: { primaryText: \"Basic action 4\", secondaryText: \"Another basic action description\" },\r\n};\r\nexport const ACTIONS_MOCK: ReactAction[] = [\r\n {\r\n id: BASIC_ACTION_MOCK_ID,\r\n locKey: `XG-${BASIC_ACTION_MOCK_ID}`,\r\n text: \"TextButton\",\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: 1,\r\n priority: 10,\r\n visible: true,\r\n isActive: true,\r\n },\r\n {\r\n id: ICON_ACTION_MOCK_ID,\r\n locKey: `XG-${ICON_ACTION_MOCK_ID}`,\r\n text: \"TextButton\",\r\n iconCode: IconCode.weatherWindsock,\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: 2,\r\n priority: 5,\r\n visible: true,\r\n isActive: true,\r\n },\r\n {\r\n id: \"3\",\r\n locKey: \"XG-3\",\r\n text: \"TextButton\",\r\n iconCode: IconCode.editorialAlignCenter,\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: 3,\r\n priority: 5,\r\n visible: true,\r\n isActive: true,\r\n },\r\n {\r\n id: \"4\",\r\n locKey: \"XG-4\",\r\n text: \"TextButton\",\r\n iconCode: IconCode.editorialAlignLeft,\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: 4,\r\n priority: 5,\r\n visible: true,\r\n isActive: true,\r\n },\r\n {\r\n id: \"5\",\r\n locKey: \"XG-5\",\r\n text: \"TextButton\",\r\n iconCode: IconCode.editorialAlignRight,\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: 5,\r\n priority: 5,\r\n visible: true,\r\n isActive: true,\r\n },\r\n];\r\n\r\nexport const CLICKABLE_ROW_ACTION_MOCK: ReactAction[] = [\r\n {\r\n id: DETAIL_ACTION_MOCK_ID,\r\n locKey: `XG-${DETAIL_ACTION_MOCK_ID}`,\r\n text: \"TextButton\",\r\n actionType: ActionType.standardOpenDetail,\r\n },\r\n];\r\n\r\nexport const MOCK_NAMES = [\r\n \"Alois\",\r\n \"Adam\",\r\n \"Tomáš\",\r\n \"Petr\",\r\n \"Jiří\",\r\n \"Karel\",\r\n \"Jakub\",\r\n \"Pavel\",\r\n \"Jana\",\r\n \"Barbora\",\r\n \"Markéta\",\r\n \"Zuzana\",\r\n undefined,\r\n];\r\nexport const MOCK_ICONS = [\r\n IconCode.locationCompass,\r\n IconCode.locationDirection,\r\n IconCode.locationMap,\r\n IconCode.locationPin,\r\n IconCode.locationPinCheck,\r\n IconCode.locationPinMap,\r\n undefined,\r\n];\r\nexport const MOCK_FLAGS = [\r\n \"fRed\",\r\n \"fGreen\",\r\n \"fBlue\",\r\n \"fBlack\",\r\n \"fGray\",\r\n \"fSilver\",\r\n \"fYellow\",\r\n \"fBrown\",\r\n \"fLime\",\r\n \"fNavy\",\r\n \"fAqua\",\r\n \"fFuchsia\",\r\n \"fPink\",\r\n \"fDeepPurple\",\r\n \"fLightBlue\",\r\n \"fTeal\",\r\n \"fLightGreen\",\r\n \"fAmber\",\r\n \"fOrange\",\r\n \"fDeepOrange\",\r\n undefined,\r\n];\r\nexport const MOCK_DOCUMENT_NAMES = [\r\n \"Document.pdf\",\r\n \"Attachment.txt\",\r\n \"Main file.pdf\",\r\n \"Random_file.txt\",\r\n];\r\n\r\nexport const ATTR_NAME = \"Attr\";\r\nexport const ICON_ATTR_NAME = \"IconAttr\";\r\n\r\nexport const EMPTY_MESSAGE_MOCK: IEmptyMessage = {\r\n text: \"Žádné záznamy. V tomto seznamu nemáme co zobrazit.\",\r\n iconCode: IconCode.docArchiveEmpty,\r\n};\r\n","export { createConcatLocalizationItemsAction, createLocalizationKeysLoadedAction } from \"../actions\";\r\nexport { LOAD_LOCALIZATION_KEYS } from \"../constants\";\r\nexport { LocalizationItem } from \"../types\";\r\n","import { ComponentType } from \"react\";\r\n\r\n/**\r\n * Interface submodulu customizací zajišťující, že\r\n */\r\nexport interface ICustomizationSubmodule {\r\n /**\r\n * Inicializační metoda, která nastaví registrátory.\r\n *\r\n * @internal\r\n */\r\n init(...args: any[]): void;\r\n}\r\n\r\n/**\r\n * Interface rendereru zajišťující jeho základní funkčnost.\r\n * Jednotlivé implementace si jej můžou rozšířit, přidat argumenty, metody, ...\r\n */\r\nexport interface IRenderer<ComponentProps = any> {\r\n /** Klíč rendereru. Musí být unikátní v daném registrátoru. */\r\n readonly key: string;\r\n /** React komponenta, která umí zobrazit daný prvek uživatelského rozhraní. */\r\n readonly component: ComponentType<ComponentProps>;\r\n}\r\n\r\nexport class IRenderer {\r\n private static _properties: (keyof IRenderer)[] = [\"key\", \"component\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return (\r\n instance != null &&\r\n this._properties.every((value) => Reflect.has(instance, value))\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Interface pro registrátor.\r\n * Jednotlivé implementace si mohou přidat atributy jednotlivým metodám, ...\r\n */\r\nexport interface IRendererRegistrator<RendererType extends IRenderer = any> {\r\n /** Zaregistruje renderer. */\r\n register(renderer: RendererType, ...args: any[]): void;\r\n /** Zaregistruje továrnu. */\r\n registerFactory(rendererFactory: () => RendererType, ...args: any[]): void;\r\n /** Získá renderer pro daný klíč. */\r\n getRendererByKey(key?: string): RendererType;\r\n /** Vrátí všechny renderery. */\r\n getAll(): ReadonlyArray<RendererType>;\r\n}\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { IRenderer } from \"./types\";\r\n\r\nexport abstract class AbstractRenderer<ComponentProps = any> implements IRenderer<ComponentProps> {\r\n private readonly _key: string;\r\n\r\n constructor(key: string) {\r\n this._key = key;\r\n }\r\n\r\n public get key(): string {\r\n return this._key;\r\n }\r\n\r\n public abstract canRender(element: HTMLElement): boolean;\r\n\r\n public abstract get component(): ComponentType<ComponentProps>;\r\n}\r\n","import { SagaWithReturnType } from \"@multiweb/types/react\";\r\n\r\nexport const DEFAULT_DATASOURCE_KEY = \"default\";\r\n\r\n/**\r\n * Interface pro customizaci datasource\r\n */\r\nexport interface ICoreDataSourceRegistrator {\r\n /**\r\n * Registrace metody do datasource\r\n * @param methodName Název metody\r\n * @param methodBody Tělo metody\r\n * @param dataSourceId Identifikátor datasource\r\n */\r\n registerMethodToDataSource(methodName: string, methodBody: SagaWithReturnType<any, any>, dataSourceId?: string): void;\r\n\r\n /**\r\n * Vráti metodu\r\n * @param methodName Název metody\r\n * @param dataSourceId Identifikátor datasource\r\n * @param useDefaultIfNotExist Pokud neexistuje vrátít default\r\n */\r\n getMethodByDataSource(methodName: string, dataSourceId?: string, useDefaultIfNotExist?: boolean): SagaWithReturnType<any, any> | undefined;\r\n}\r\n","import { ICustomizationSubmodule } from \"../types\";\r\nimport { ICoreDataSourceRegistrator } from \"./types\";\r\n\r\nexport class CoreCustomization implements ICustomizationSubmodule {\r\n private _datasource: ICoreDataSourceRegistrator | undefined;\r\n\r\n /**\r\n * Inicializační metoda, která nastaví registrátory.\r\n *\r\n * @param customDatasourceRegistrator Registrátor pro datasource.\r\n * @internal\r\n */\r\n public init(customDatasourceRegistrator: ICoreDataSourceRegistrator): void {\r\n if (!this._datasource) {\r\n this._datasource = customDatasourceRegistrator;\r\n }\r\n }\r\n\r\n public get datasource(): ICoreDataSourceRegistrator {\r\n if (!this._datasource) {\r\n throw new Error(`[Customization] LLFDataSource registrator is not defined.\r\n Please check if initialization was called.`);\r\n }\r\n return this._datasource;\r\n }\r\n}\r\n","import { createCreateActionType, createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu menu. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"frames\";\r\n\r\nconst createFetchingKey = createCreateFetchingKey(NAME);\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizace pro statické položky menu ve fetching modulu.\r\n */\r\nexport const FETCHING_KEY_STATIC_FRAMES_ITEMS_LOCALIZATION = createFetchingKey(\"FETCHING_KEY_STATIC_FRAMES_ITEMS_LOCALIZATION\");\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizací, které jsou nastavené pro daný frame.\r\n */\r\nexport const FETCHING_KEY_FRAME_LOCALIZATIONS = createFetchingKey(\"FETCHING_KEY_FRAME_LOCALIZATIONS\");\r\n\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/**\r\n * Typ akce pro inicializaci framu.\r\n */\r\nexport const INIT_FRAME = createActionType(\"INIT_FRAME\");\r\n\r\n/**\r\n * Typ akce pro inicializaci framu, který využívá dataSource.\r\n */\r\nexport const INIT_FRAME_WITH_DATASOURCE = createActionType(\"INIT_FRAME_WITH_DATASOURCE\");\r\n\r\n/**\r\n * Typ akce pro smazání framu.\r\n */\r\nexport const DELETE_FRAME = createActionType(\"DELETE_FRAME\");\r\n\r\n/**\r\n * Typ akce pro zapnutí/vypnutí režimu výběru více záznamů.\r\n */\r\nexport const SET_MULTISELECT_MODE = createActionType(\"SET_MULTISELECT_MODE\");\r\n\r\n/**\r\n * Typ akce pro výběr záznamů daných identifikátory.\r\n */\r\nexport const SET_SELECTED_RECORDS = createActionType(\"SET_SELECTED_RECORDS\");\r\n\r\n/**\r\n * Typ akce pro výběr záznamu daného identifikátorem.\r\n */\r\nexport const TRY_SELECT_RECORD = createActionType(\"TRY_SELECT_RECORD\");\r\n\r\n/**\r\n * Typ akce pro nastavení informace o tom, zda je možné načítat další data.\r\n */\r\nexport const SET_CAN_VALUE_LOAD = createActionType(\"SET_CAN_VALUE_LOAD\");\r\n\r\n/**\r\n * Typ akce pro nastavení template, pomocí kterého se vykreslí DataRow.\r\n */\r\nexport const SET_ROW_TEMPLATE = createActionType(\"SET_ROW_TEMPLATE\");\r\n\r\n/**\r\n * Typ akce pro nastavení informace o tom, do jaké oblasti se zobrazují akce záznamu.\r\n */\r\nexport const SET_ACTION_AREA = createActionType(\"SET_ACTION_AREA\");\r\n\r\n/**\r\n * Typ akce pro nastavení informace o tom, zda se má zobrazit hlavička.\r\n */\r\nexport const SET_SHOW_HEADER = createActionType(\"SET_SHOW_HEADER\");\r\n\r\n/**\r\n * Typ akce pro nastavení informace o tom, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n */\r\nexport const SET_LOAD_ON_SCROLL = createActionType(\"SET_LOAD_ON_SCROLL\");\r\n\r\n/**\r\n * Typ akce pro nastavení informace o tom, zda je frame interaktivní, zda s ním lze pracovat a pouštět nad ním akce.\r\n */\r\nexport const SET_INTERACTIVE = createActionType(\"SET_INTERACTIVE\");\r\n\r\n/**\r\n * Typ akce pro určení, zda se může zapnout režim výběru více záznamů.\r\n */\r\nexport const SET_ALLOW_MULTISELECT = createActionType(\"SET_ALLOW_MULTISELECT\");\r\n\r\n/**\r\n * Typ akce pro odchycení kliknutí na záznam.\r\n */\r\nexport const HANDLE_RECORD_CLICK = createActionType(\"HANDLE_RECORD_CLICK\");\r\n\r\n/**\r\n * Typ akce pro určení, zda je frame viditelný na multiwebu.\r\n */\r\nexport const SET_MULTIWEB_VISIBILITY = createActionType(\"SET_MULTIWEB_VISIBILITY\");\r\n\r\n/**\r\n * Typ akce pro určení, zda je frame viditelný na multiwebu.\r\n */\r\nexport const SET_EMPTY_MESSAGE_CUSTOMIZATION = createActionType(\"SET_EMPTY_MESSAGE_CUSTOMIZATION\");\r\n\r\n/**\r\n * Obsah, který se zobrazí v buňce, pokud nebude mít hodnotu.\r\n */\r\nexport const LLF_EMPTY_VALUE = \"-\";\r\n\r\n/**\r\n * Klíč pro registraci rendereru atributu roleUsers.\r\n */\r\nexport const ROLE_USERS_ATTRIBUTE_RENDERER = \"RoleUsersAttributeRenderer\";\r\n\r\n/**\r\n * Klíč pro registraci rendereru atributu participantType.\r\n */\r\nexport const PARTICIPANT_TYPE_ATTRIBUTE_RENDERER = \"ParticipantTypeAttributeRenderer\";\r\n","import { Action } from \"redux\";\r\n\r\nimport { IDataSourceConditions, IDataSourceInitConfig } from \"@multiweb/reactCore/datasource\";\r\nimport { IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { IconCode } from \"@multiweb/types/contracts/iconCode\";\r\nimport { IOrderBy } from \"@multiweb/types/multiweb\";\r\nimport { EncryptedRecordType, RecordType, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n DELETE_FRAME,\r\n HANDLE_RECORD_CLICK,\r\n INIT_FRAME,\r\n INIT_FRAME_WITH_DATASOURCE,\r\n SET_ACTION_AREA,\r\n SET_ALLOW_MULTISELECT,\r\n SET_CAN_VALUE_LOAD,\r\n SET_EMPTY_MESSAGE_CUSTOMIZATION,\r\n SET_INTERACTIVE,\r\n SET_LOAD_ON_SCROLL,\r\n SET_MULTISELECT_MODE,\r\n SET_MULTIWEB_VISIBILITY,\r\n SET_ROW_TEMPLATE,\r\n SET_SELECTED_RECORDS,\r\n SET_SHOW_HEADER,\r\n TRY_SELECT_RECORD,\r\n} from \"./constants\";\r\n\r\n/**\r\n * Výčtový typ, který určuje umístění akcí v DataRow.\r\n */\r\nexport enum ActionArea {\r\n aaRight = \"aaRight\",\r\n aaLeft = \"aaLeft\",\r\n aaBottom = \"aaBottom\",\r\n}\r\n/**\r\n * Typ určuje šablonu řádku. Lze použít buď standartní šablonu z výčtu existujících nebo zadat vlastní.\r\n */\r\nexport type RowTemplateType = DefaultRowTemplate | string;\r\n/**\r\n * Výčtový typ. který určuje template pro zobrazení dat v DataRow.\r\n */\r\nexport enum DefaultRowTemplate {\r\n singleLine = \"SingleLine\",\r\n multiLine1 = \"MultiLine1\",\r\n multiLine2 = \"MultiLine2\",\r\n multiLine3 = \"MultiLine3\",\r\n}\r\n\r\n/**\r\n * Výčtový typ atributů pro Výběr hráčů\r\n */\r\nexport enum ParticipantsAttributes {\r\n participantType = \"participanttype\",\r\n personName = \"personname\",\r\n actualRoleName = \"actualrolename\",\r\n name = \"name\",\r\n roleUsers = \"roleusers\",\r\n id = \"id\",\r\n}\r\n\r\n/**\r\n * Customizace ikony nebo nebo textu, pokud je frame prázdný.\r\n */\r\nexport type EmptyMessageSettings = {\r\n /** Lokalizace, která se zobrazí, pokud je seznam prázdný. */\r\n readonly noItemsLocKey: string;\r\n /** Kód ikony, která se zobrazí, pokud je seznam prázdný. */\r\n readonly noItemsIcon: IconCode;\r\n /** Lokalizace, která se zobrazí, pokud je aktivní filtr a není nalezen žádný záznam. */\r\n readonly noItemsFilterLocKey: string;\r\n /** Kód ikony, která se zobrazí, pokud je aktivní filtr a není nalezen žádný záznam */\r\n readonly noItemsFilterIcon: IconCode;\r\n /** Lokalizace, která se zobrazí, pokud je aktivní fulltextové vyhledávání a není nalezen žádný záznam. Jako první parametr (@0) dostane hledaný text. */\r\n readonly noItemsFulltextSearchLocKey: string;\r\n /** Kód ikony, která se zobrazí, pokud je aktivní fulltextové vyhledávání a není nalezen žádný záznam */\r\n readonly noItemsFulltextSearchIcon: IconCode;\r\n};\r\n\r\n/**\r\n * Customizace ikony nebo nebo textu, pokud je frame prázdný. (jen výčet změn)\r\n */\r\nexport type EmptyMessageCustomization = Partial<EmptyMessageSettings>;\r\n\r\n/**\r\n * Definice stavu pro mapu framů.\r\n */\r\nexport type FramesMapState = TypedObject<IFramesState>;\r\n\r\nexport interface IFramesState {\r\n /** Určuje, zda je možné načítat hodnotu. */\r\n readonly canValueLoad: boolean;\r\n /**\r\n * Určuje šablonu, která bude použita pro vykreslení řádků.\r\n * Hodnota je shodná jako klíče rendereru.\r\n */\r\n readonly rowTemplate: RowTemplateType;\r\n /** Určuje do které oblasti se zobrazují akce záznamu. */\r\n readonly actionArea: ActionArea;\r\n /** Určuje, zda se má zobrazit hlavička. */\r\n readonly showHeader: boolean;\r\n /** Určuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části. */\r\n readonly loadOnScroll: boolean;\r\n /** Určuje, zda je frame interaktivní, zda s ním lze pracovat a pouštět nad ním akce. */\r\n readonly interactive: boolean;\r\n /** Určuje, zda je povolen výběr více záznamů. */\r\n readonly allowMultiselect: boolean;\r\n /** Určuje, zda je frame viditelný. */\r\n readonly visibility: boolean;\r\n /** Customizace ikony nebo nebo textu, pokud je frame prázdný. */\r\n readonly emptyMessageCustomization: EmptyMessageSettings;\r\n}\r\n\r\n/** Konfigurační objekt použitý v akci pro inicializaci framu. */\r\nexport type InitFrameConfig = {\r\n /** Počáteční oblast, do které se mají akce vykreslit. */\r\n readonly initialActionArea?: ActionArea;\r\n /** Název šablony (zároveň i klíč pro renderer) */\r\n readonly rowTemplate?: string;\r\n /** Určuje, zda se má zobrazit hlavička. */\r\n readonly initialShowHeader?: boolean;\r\n /** Určuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části. */\r\n readonly initialLoadOnScroll?: boolean;\r\n /** Customizace ikony nebo nebo textu, pokud je frame prázdný. */\r\n readonly emptyMessageCustomization?: EmptyMessageCustomization;\r\n /** Určuje, zda je povolen výběr více záznamů. */\r\n readonly allowMultiselect?: boolean;\r\n};\r\n\r\n/**\r\n * Props sdílené napříč některými komponentami framů.\r\n */\r\nexport type FrameSharedProps = Readonly<{\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Unikátní klíč pro záznam. */\r\n recordId: string;\r\n}>;\r\n\r\nexport type FrameAttributeSharedProps = FrameSharedProps & Readonly<{\r\n /** Jméno atributu. */\r\n attributeName: string;\r\n}>;\r\n\r\n/**\r\n * Rozhoduje, jestli se smí vyrenderovat komponenta pro zašifrovaný stav.\r\n * @param RecordType Záznam z DataSource.\r\n * @param IPublicAttributeInfo Info o atributu.\r\n */\r\nexport type CanRenderEncryptedDecider = (record: EncryptedRecordType, info: IPublicAttributeInfo) => boolean;\r\n\r\n/**\r\n * Rozhoduje o tom, zda se může vyrenderovat komponenta pro zobrazení prázdného atributu.\r\n * @param record Záznam z DataSource.\r\n * @param info Info o atributu.\r\n */\r\nexport type CanRenderEmptyDecider = (record: RecordType, info: IPublicAttributeInfo) => boolean;\r\n\r\n/**\r\n * Pomocná akce, kterou musí rozšiřovat akce, které jsou mapovány\r\n * na jednotlivé instance `Frame`.\r\n */\r\nexport interface IFrameMappedAction<A = string> extends Action<A> {\r\n readonly meta: {\r\n readonly frameKey: string;\r\n };\r\n}\r\n\r\nexport class IFrameMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.frameKey;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro smazání framu.\r\n */\r\nexport interface IDeleteFrameAction extends IFrameMappedAction<typeof DELETE_FRAME> {}\r\n\r\nexport class IDeleteFrameAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === DELETE_FRAME;\r\n }\r\n}\r\n\r\n/** Payload akce pro inicializaci framu. */\r\ninterface IInitFrameActionPayload {\r\n readonly initialCanValueLoad: boolean;\r\n readonly initialInteractive: boolean;\r\n readonly frameConfig: InitFrameConfig;\r\n}\r\n\r\n/**\r\n * Akce pro inicializaci framu.\r\n */\r\nexport interface IInitFrameAction extends IFrameMappedAction<typeof INIT_FRAME> {\r\n readonly payload: IInitFrameActionPayload;\r\n}\r\n\r\nexport class IInitFrameAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === INIT_FRAME;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro inicializaci framu, který využívá dataSource.\r\n */\r\nexport interface IInitFrameWithDataSourceAction extends IFrameMappedAction<typeof INIT_FRAME_WITH_DATASOURCE> {\r\n readonly payload: IInitFrameActionPayload & {\r\n readonly dataSourceConfig: IDataSourceInitConfig;\r\n readonly hasDetailForm: boolean;\r\n readonly initialOrderBy: ReadonlyArray<IOrderBy>;\r\n readonly initialConditions: Partial<IDataSourceConditions>;\r\n };\r\n}\r\n\r\nexport class IInitFrameWithDataSourceAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === INIT_FRAME_WITH_DATASOURCE;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro zapnutí/vypnutí režimu výběru více záznamů.\r\n */\r\nexport interface ISetMultiselectModeAction extends IFrameMappedAction<typeof SET_MULTISELECT_MODE> {\r\n readonly payload: {\r\n readonly multiselectMode: boolean;\r\n };\r\n}\r\n\r\nexport class ISetMultiselectModeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_MULTISELECT_MODE;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro výběr záznamů daných identifikátory.\r\n */\r\nexport interface ISetSelectedRecordsAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly selectedRecordsIds: ReadonlyArray<string>;\r\n };\r\n}\r\n\r\nexport class ISetSelectedRecordsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_SELECTED_RECORDS;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro výběr záznamu daného identifikátorem.\r\n */\r\nexport interface ITrySelectRecordAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly recordId: string;\r\n };\r\n}\r\n\r\nexport class ITrySelectRecordAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === TRY_SELECT_RECORD;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je možné načítat další data.\r\n */\r\nexport interface ISetCanValueLoadAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly value: boolean;\r\n };\r\n}\r\n\r\nexport class ISetCanValueLoadAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_CAN_VALUE_LOAD;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje template, podle kterého se vykreslí DataRow.\r\n */\r\nexport interface ISetRowTemplateAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly rowTemplate: RowTemplateType;\r\n };\r\n}\r\n\r\nexport class ISetRowTemplateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_ROW_TEMPLATE;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje, do které oblasti se zobrazují akce záznamu.\r\n */\r\nexport interface ISetActionAreaAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly actionArea: ActionArea;\r\n };\r\n}\r\n\r\nexport class ISetActionAreaAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_ACTION_AREA;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje, zda se má zobrazit hlavička.\r\n */\r\nexport interface ISetShowHeaderAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly showHeader: boolean;\r\n };\r\n}\r\n\r\nexport class ISetShowHeaderAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_SHOW_HEADER;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n */\r\nexport interface ISetLoadOnScrollAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly loadOnScroll: boolean;\r\n };\r\n}\r\n\r\nexport class ISetLoadOnScrollAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_LOAD_ON_SCROLL;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je frame interaktivní, zda s ním lze pracovat a pouštět nad ním akce.\r\n */\r\nexport interface ISetInteractiveAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly value: boolean;\r\n };\r\n}\r\n\r\nexport class ISetInteractiveAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_INTERACTIVE;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje, zda datasource může zapnout režim výběru více záznamů.\r\n */\r\nexport interface ISetAllowMultiselectAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly allowMultiselect: boolean;\r\n };\r\n}\r\n\r\nexport class ISetAllowMultiselectAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_ALLOW_MULTISELECT;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro odchycení kliknutí na záznam.\r\n */\r\nexport interface IHandleRecordClickAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly recordId: string;\r\n };\r\n}\r\n\r\nexport class IHandleRecordClickAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === HANDLE_RECORD_CLICK;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje příznak o tom, zda je frame viditelný na multiwebu.\r\n */\r\nexport interface ISetMultiwebVisibilityAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly multiwebVisibility: boolean;\r\n };\r\n}\r\n\r\nexport class ISetMultiwebVisibilityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_MULTIWEB_VISIBILITY;\r\n }\r\n}\r\n\r\n/**\r\n * Akce, která nastavuje kustomizační vlastnosti pro empty message.\r\n */\r\nexport interface ISetEmptyMessageCustomizationAction extends IFrameMappedAction {\r\n readonly payload: {\r\n readonly emptyMessageCustomization: EmptyMessageCustomization;\r\n };\r\n}\r\n\r\nexport class ISetEmptyMessageCustomizationAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFrameMappedAction && instance.type === SET_EMPTY_MESSAGE_CUSTOMIZATION;\r\n }\r\n}\r\n","import { IDataSourceConditions, IDataSourceInitConfig } from \"@multiweb/reactCore/datasource\";\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IOrderBy } from \"@multiweb/types/multiweb\";\r\nimport {\r\n HANDLE_RECORD_CLICK,\r\n INIT_FRAME,\r\n INIT_FRAME_WITH_DATASOURCE,\r\n SET_ACTION_AREA,\r\n SET_ALLOW_MULTISELECT,\r\n SET_CAN_VALUE_LOAD,\r\n SET_EMPTY_MESSAGE_CUSTOMIZATION,\r\n SET_INTERACTIVE,\r\n SET_LOAD_ON_SCROLL,\r\n SET_MULTISELECT_MODE,\r\n SET_MULTIWEB_VISIBILITY,\r\n SET_ROW_TEMPLATE,\r\n SET_SELECTED_RECORDS,\r\n SET_SHOW_HEADER,\r\n TRY_SELECT_RECORD,\r\n} from \"./constants\";\r\nimport {\r\n ActionArea,\r\n EmptyMessageCustomization,\r\n IHandleRecordClickAction,\r\n IInitFrameAction,\r\n IInitFrameWithDataSourceAction,\r\n InitFrameConfig,\r\n ISetActionAreaAction,\r\n ISetAllowMultiselectAction,\r\n ISetCanValueLoadAction,\r\n ISetEmptyMessageCustomizationAction,\r\n ISetInteractiveAction,\r\n ISetLoadOnScrollAction,\r\n ISetMultiselectModeAction,\r\n ISetMultiwebVisibilityAction,\r\n ISetRowTemplateAction,\r\n ISetSelectedRecordsAction,\r\n ISetShowHeaderAction,\r\n ITrySelectRecordAction,\r\n RowTemplateType,\r\n} from \"./types\";\r\n\r\n/**\r\n * Akce pro inicializaci framu.\r\n *\r\n * @param frameKey Unikátní klíč pro frame.\r\n * @param initialCanValueLoad Počáteční canValueLoad framu.\r\n * @param initialInteractive Počáteční interactive framu.\r\n * @param frameConfig Konfigurační objekt použitý při inicializaci framu.\r\n * @param frameConfig.rowTemplate Šablona řádku\r\n * @param frameConfig.initialActionArea Počáteční oblast, do které se mají akce vykreslit.\r\n * @param frameConfig.initialShowHeader Určuje, zda se má zobrazit hlavička.\r\n * @param frameConfig.initialLoadOnScroll Určuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n * @param frameConfig.emptyMessageCustomization Customizace ikony nebo nebo textu, pokud je frame prázdný.\r\n */\r\nexport const createInitFrameAction = (\r\n frameKey: string,\r\n initialCanValueLoad: boolean,\r\n initialInteractive: boolean,\r\n frameConfig: InitFrameConfig = EMPTY_OBJECT,\r\n): IInitFrameAction => ({\r\n type: INIT_FRAME,\r\n payload: {\r\n initialCanValueLoad,\r\n initialInteractive,\r\n frameConfig,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro inicializaci framu, který využívá dataSource.\r\n *\r\n * @param frameKey Unikátní klíč pro frame.\r\n * @param initialCanValueLoad Počáteční canValueLoad framu.\r\n * @param initialInteractive Počáteční interactive framu.\r\n * @param dataSourceConfig Konfigurační objekt použitý při inicializaci datasource.\r\n * @param hasDetailForm Značí, zda je povoleno otevřít detail záznamu.\r\n * @param frameConfig Konfigurační objekt použitý při inicializaci framu.\r\n * @param frameConfig.rowTemplate Šablona řádku\r\n * @param frameConfig.initialActionArea Počáteční oblast, do které se mají akce vykreslit.\r\n * @param frameConfig.initialShowHeader Určuje, zda se má zobrazit hlavička.\r\n * @param frameConfig.initialLoadOnScroll Určuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n * @param frameConfig.emptyMessageCustomization Customizace ikony nebo nebo textu, pokud je frame prázdný.\r\n */\r\nexport const createInitFrameWithDataSourceAction = (\r\n frameKey: string,\r\n initialCanValueLoad: boolean,\r\n initialInteractive: boolean,\r\n dataSourceConfig: IDataSourceInitConfig,\r\n hasDetailForm: boolean,\r\n frameConfig: InitFrameConfig = EMPTY_OBJECT,\r\n initialOrderBy: ReadonlyArray<IOrderBy> = EMPTY_ARRAY,\r\n initialConditions: Partial<IDataSourceConditions> = EMPTY_OBJECT,\r\n): IInitFrameWithDataSourceAction => ({\r\n type: INIT_FRAME_WITH_DATASOURCE,\r\n payload: {\r\n initialCanValueLoad,\r\n initialInteractive,\r\n frameConfig,\r\n dataSourceConfig,\r\n hasDetailForm,\r\n initialOrderBy,\r\n initialConditions,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro zapnutí/vypnutí režimu výběru více záznamů.\r\n * Akce se odchytává v sáze {@link setMultiselectSaga} z modulu frames, která nastavuje\r\n * výběr více záznamů v datasource.\r\n * @see {@link createSetDatasourceMultiselectModeAction}\r\n * @param frameKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param multiselectMode Značí, zda je zapnut výběr více záznamů.\r\n */\r\nexport const createSetMultiselectModeAction = (\r\n frameKey: string,\r\n multiselectMode: boolean,\r\n): ISetMultiselectModeAction => ({\r\n type: SET_MULTISELECT_MODE,\r\n payload: {\r\n multiselectMode,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr záznamů daných identifikátory.\r\n *\r\n * @param frameKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param selectedRecordsIds Pole identifikátorů.\r\n */\r\nexport const createSetSelectedRecordsAction = (\r\n frameKey: string,\r\n selectedRecordsIds: ReadonlyArray<string>,\r\n): ISetSelectedRecordsAction => ({\r\n type: SET_SELECTED_RECORDS,\r\n payload: {\r\n selectedRecordsIds,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr záznamu daného identifikátorem.\r\n * Pokud záznam není označen, oznáčí ho.\r\n * Pokud záznam je označen, nic neprovede.\r\n *\r\n * @param frameKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param recordId Identifikátor záznamu, který má být označen.\r\n */\r\nexport const createTrySelectRecordAction = (frameKey: string, recordId: string): ITrySelectRecordAction => ({\r\n type: TRY_SELECT_RECORD,\r\n payload: {\r\n recordId,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je možné načítat další data.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param value Značí, zdali je možné načítat.\r\n */\r\nexport const createSetCanValueLoadAction = (frameKey: string, value: boolean): ISetCanValueLoadAction => ({\r\n type: SET_CAN_VALUE_LOAD,\r\n payload: {\r\n value,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje template, pomocí kterého se vykreslí DataRow.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param rowTemplate Nový RowTemplate.\r\n */\r\nexport const createSetRowTemplateAction = (frameKey: string, rowTemplate: RowTemplateType): ISetRowTemplateAction => ({ //TODO: zrušit?\r\n type: SET_ROW_TEMPLATE,\r\n payload: {\r\n rowTemplate,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje oblast, do které se zobrazují akce v DataRow.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param actionArea Nová ActionArea.\r\n */\r\nexport const createSetActionAreaAction = (frameKey: string, actionArea: ActionArea): ISetActionAreaAction => ({\r\n type: SET_ACTION_AREA,\r\n payload: {\r\n actionArea,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda se má zobrazit hlavička.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param showHeader Značí, zda se má zobrazit hlavička.\r\n */\r\nexport const createSetShowHeaderAction = (frameKey: string, showHeader: boolean): ISetShowHeaderAction => ({\r\n type: SET_SHOW_HEADER,\r\n payload: {\r\n showHeader,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param loadOnScroll Značí, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části.\r\n */\r\nexport const createSetLoadOnScrollAction = (frameKey: string, loadOnScroll: boolean): ISetLoadOnScrollAction => ({\r\n type: SET_LOAD_ON_SCROLL,\r\n payload: {\r\n loadOnScroll,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je frame interaktivní, zda s ním lze pracovat a pouštět nad ním akce.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param value Značí, zdali je možné s framem pracovat.\r\n */\r\nexport const createSetInteractiveAction = (frameKey: string, value: boolean): ISetInteractiveAction => ({\r\n type: SET_INTERACTIVE,\r\n payload: {\r\n value,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda může být zapnut režim výběru více záznamů.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param allowMultiselect Značí, zda je zapnut výběr více záznamů.\r\n */\r\nexport const createSetAllowMultiselectAction = (\r\n frameKey: string,\r\n allowMultiselect: boolean,\r\n): ISetAllowMultiselectAction => ({\r\n type: SET_ALLOW_MULTISELECT,\r\n payload: {\r\n allowMultiselect,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro odchycení kliknutí na záznam.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param recordId Identifikátor záznamu.\r\n */\r\nexport const createHandleRecordClickAction = (frameKey: string, recordId: string): IHandleRecordClickAction => ({\r\n type: HANDLE_RECORD_CLICK,\r\n payload: {\r\n recordId,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je frame viditelný.\r\n * Využívá se např. v mixinu hasVisibilityChanged.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param multiwebVisibility Značí, zda je frame viditelný.\r\n */\r\nexport const createSetVisibilityAction = (\r\n frameKey: string,\r\n multiwebVisibility: boolean,\r\n): ISetMultiwebVisibilityAction => ({\r\n type: SET_MULTIWEB_VISIBILITY,\r\n payload: {\r\n multiwebVisibility,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je frame viditelný.\r\n * Využívá se např. v mixinu hasVisibilityChanged.\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param multiwebVisibility Značí, zda je frame viditelný.\r\n */\r\nexport const createSetEmptyMessageCustomizationAction = (\r\n frameKey: string,\r\n emptyMessageCustomization: EmptyMessageCustomization,\r\n): ISetEmptyMessageCustomizationAction => ({\r\n type: SET_EMPTY_MESSAGE_CUSTOMIZATION,\r\n payload: {\r\n emptyMessageCustomization,\r\n },\r\n meta: {\r\n frameKey,\r\n },\r\n});\r\n","export const LOC_KEY_NO_ITEMS = \"GUI-489002\"; // Žádné záznamy. V tomto seznamu nemáme co zobrazit.\r\nexport const LOC_KEY_NO_ITEMS_FULLTEXT_SEARCH = \"GUI-702817\"; //Snažili jsme se usilovně, ale '@TEXT' jsme nenašli.\r\nexport const LOC_KEY_NO_ITEMS_FILTER = \"GUI-488998\"; //Rádi bychom něco zobrazili, ale zadaný filtr nám to nedovoluje.\r\nexport const LOC_KEY_YES = \"GUI-146838\";\r\nexport const LOC_KEY_NO = \"GUI-146840\";\r\nexport const LOC_KEY_WORKFLOW_ACTIONS = \"GUI-772184\"; // Zobrazit workflow akce\r\n\r\n/**\r\n * Obsahuje staticky definované lokalizační klíče pro framy.\r\n */\r\nexport const staticLocKeys = [\r\n LOC_KEY_NO_ITEMS,\r\n LOC_KEY_NO_ITEMS_FULLTEXT_SEARCH,\r\n LOC_KEY_NO_ITEMS_FILTER,\r\n LOC_KEY_YES,\r\n LOC_KEY_NO,\r\n LOC_KEY_WORKFLOW_ACTIONS,\r\n];\r\n","import { AnyAction, combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { LOC_KEY_NO_ITEMS, LOC_KEY_NO_ITEMS_FILTER, LOC_KEY_NO_ITEMS_FULLTEXT_SEARCH } from \"./locKeys\";\r\nimport {\r\n ActionArea,\r\n DefaultRowTemplate,\r\n EmptyMessageSettings,\r\n FramesMapState,\r\n IDeleteFrameAction,\r\n IFrameMappedAction,\r\n IFramesState,\r\n IInitFrameAction,\r\n IInitFrameWithDataSourceAction,\r\n ISetActionAreaAction,\r\n ISetAllowMultiselectAction,\r\n ISetCanValueLoadAction,\r\n ISetEmptyMessageCustomizationAction,\r\n ISetInteractiveAction,\r\n ISetLoadOnScrollAction,\r\n ISetMultiwebVisibilityAction,\r\n ISetRowTemplateAction,\r\n ISetShowHeaderAction,\r\n RowTemplateType,\r\n} from \"./types\";\r\n\r\nconst canValueLoad: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.initialCanValueLoad;\r\n } else if (action instanceof ISetCanValueLoadAction) {\r\n return action.payload.value;\r\n }\r\n return state;\r\n};\r\n\r\nconst actionArea: Reducer<ActionArea> = (state = ActionArea.aaRight, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.initialActionArea ?? state;\r\n } else if (action instanceof ISetActionAreaAction) {\r\n return action.payload.actionArea;\r\n }\r\n return state;\r\n};\r\n\r\nconst rowTemplate: Reducer<RowTemplateType> = (state = DefaultRowTemplate.singleLine, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.rowTemplate ?? state;\r\n } else if (action instanceof ISetRowTemplateAction) {\r\n return action.payload.rowTemplate;\r\n }\r\n return state;\r\n};\r\n\r\nconst interactive: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.initialInteractive;\r\n } else if (action instanceof ISetInteractiveAction) {\r\n return action.payload.value;\r\n }\r\n return state;\r\n};\r\n\r\nconst loadOnScroll: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.initialLoadOnScroll ?? state;\r\n } else if (action instanceof ISetLoadOnScrollAction) {\r\n return action.payload.loadOnScroll;\r\n }\r\n return state;\r\n};\r\n\r\nconst showHeader: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.initialShowHeader ?? state;\r\n } else if (action instanceof ISetShowHeaderAction) {\r\n return action.payload.showHeader;\r\n }\r\n return state;\r\n};\r\n\r\nconst allowMultiselect: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.allowMultiselect ?? state;\r\n } else if (action instanceof ISetAllowMultiselectAction) {\r\n return action.payload.allowMultiselect;\r\n }\r\n return state;\r\n};\r\n\r\nconst visibility: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof ISetMultiwebVisibilityAction) {\r\n return action.payload.multiwebVisibility;\r\n }\r\n return state;\r\n};\r\n\r\n/**\r\n * Defaultní nastavení pro hlášku, která se zobrazí, pokud je seznam prázdný\r\n */\r\nexport const EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT: EmptyMessageSettings = {\r\n noItemsLocKey: LOC_KEY_NO_ITEMS,\r\n noItemsIcon: IconCode.docArchiveEmpty,\r\n noItemsFilterLocKey: LOC_KEY_NO_ITEMS_FILTER,\r\n noItemsFilterIcon: IconCode.uiSearchCross,\r\n noItemsFulltextSearchLocKey: LOC_KEY_NO_ITEMS_FULLTEXT_SEARCH,\r\n noItemsFulltextSearchIcon: IconCode.uiSearchCross,\r\n};\r\n\r\nconst noItemsLocKey: Reducer<string> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsLocKey, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsLocKey ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsLocKey ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst noItemsIcon: Reducer<IconCode> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsIcon, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsIcon ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsIcon ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst noItemsFilterLocKey: Reducer<string> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFilterLocKey, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsFilterLocKey ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsFilterLocKey ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst noItemsFilterIcon: Reducer<IconCode> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFilterIcon, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsFilterIcon ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsFilterIcon ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst noItemsFulltextSearchLocKey: Reducer<string> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFulltextSearchLocKey, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsFulltextSearchLocKey ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsFulltextSearchLocKey ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst noItemsFulltextSearchIcon: Reducer<IconCode> = (state = EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFulltextSearchIcon, action) => {\r\n if (action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction) {\r\n return action.payload.frameConfig.emptyMessageCustomization?.noItemsFulltextSearchIcon ?? state;\r\n } else if (action instanceof ISetEmptyMessageCustomizationAction) {\r\n return action.payload.emptyMessageCustomization.noItemsFulltextSearchIcon ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst emptyMessageCustomization: Reducer<EmptyMessageSettings> = combineReducers({\r\n noItemsLocKey,\r\n noItemsIcon,\r\n noItemsFilterLocKey,\r\n noItemsFilterIcon,\r\n noItemsFulltextSearchLocKey,\r\n noItemsFulltextSearchIcon,\r\n});\r\n\r\nconst reactFrameReducer: Reducer<IFramesState> = combineReducers({\r\n canValueLoad,\r\n rowTemplate,\r\n actionArea,\r\n showHeader,\r\n loadOnScroll,\r\n interactive,\r\n allowMultiselect,\r\n visibility,\r\n emptyMessageCustomization,\r\n});\r\n\r\n/**\r\n * Resolver instanceKey z akce.\r\n *\r\n * @param action Akce, ve které resolver najde instanceKey.\r\n */\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action instanceof IFrameMappedAction ? action.meta.frameKey : undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(reactFrameReducer, instanceKeyResolver);\r\n\r\nexport const reducer: Reducer<FramesMapState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IDeleteFrameAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.frameKey];\r\n });\r\n } else {\r\n const frameKey = instanceKeyResolver(action);\r\n if (\r\n frameKey &&\r\n (state[frameKey] || action instanceof IInitFrameAction || action instanceof IInitFrameWithDataSourceAction)\r\n ) {\r\n return instanceMapReducer(state, action);\r\n }\r\n return state;\r\n }\r\n};\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n AttributeSelectorParams,\r\n getActions,\r\n getAttributeTypeByAttributeName,\r\n getConfigAttributeByName,\r\n getFulltextSearchString,\r\n getRecordValueById,\r\n isFulltextConditionActive,\r\n RecordAttributeSelectorParams,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { getPrimaryText, getSecondaryText, UNKNOWN_KEY_TEXT } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode, OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IAppState, IEmptyMessage } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_NO, LOC_KEY_YES } from \"./locKeys\";\r\nimport { EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT } from \"./reducer\";\r\nimport { ActionArea, EmptyMessageSettings, IFramesState, RowTemplateType } from \"./types\";\r\n\r\nconst { applyLocParams, generateUUID } = bridge;\r\n/**\r\n * Získá z globálního stavu frame podle `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getFrameInstance: Selector<IAppState, Readonly<IFramesState> | undefined, string> = (\r\n state: IAppState,\r\n frameKey: string,\r\n) => state.frames[frameKey];\r\n\r\n/**\r\n * Získá **emptyMessageCustomization** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací defaultní hodnoty.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getEmptyMessageCustomization: Selector<IAppState, EmptyMessageSettings, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.emptyMessageCustomization ?? EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT;\r\n\r\n/**\r\n * Získá překlad **noItemsLocKey** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací defaultní text.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getNoItemsText: Selector<IAppState, string, string> = (state, frameKey) =>\r\n getPrimaryText(state, getEmptyMessageCustomization(state, frameKey).noItemsLocKey) ||\r\n getPrimaryText(state, EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsLocKey) ||\r\n UNKNOWN_KEY_TEXT;\r\n\r\n/**\r\n* Získá překlad **noItemsIcon** pro frame uložený pod klíčem `frameKey`.\r\n* Pokud pro daný klíč neexistuje instance, vrací defaultní ikonu.\r\n*\r\n* @param state\r\n* @param frameKey Klíč framu.\r\n*/\r\nexport const getNoItemsIcon: Selector<IAppState, IconCode, string> = (state, frameKey) =>\r\n getEmptyMessageCustomization(state, frameKey).noItemsIcon;\r\n\r\n/**\r\n* Získá překlad **noItemsFilterText** pro frame uložený pod klíčem `frameKey`.\r\n* Pokud pro daný klíč neexistuje instance, vrací defaultní text.\r\n*\r\n* @param state\r\n* @param frameKey Klíč framu.\r\n*/\r\nexport const getNoItemsFilterText: Selector<IAppState, string, string> = (state, frameKey) =>\r\n getPrimaryText(state, getEmptyMessageCustomization(state, frameKey).noItemsFilterLocKey) ||\r\n getPrimaryText(state, EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFilterLocKey) ||\r\n UNKNOWN_KEY_TEXT;\r\n\r\n/**\r\n* Získá překlad **noItemsFilterIcon** pro frame uložený pod klíčem `frameKey`.\r\n* Pokud pro daný klíč neexistuje instance, vrací defaultní ikonu.\r\n*\r\n* @param state\r\n* @param frameKey Klíč framu.\r\n*/\r\nexport const getNoItemsFilterIcon: Selector<IAppState, IconCode, string> = (state, frameKey) =>\r\n getEmptyMessageCustomization(state, frameKey).noItemsFilterIcon;\r\n\r\n/**\r\n* Získá překlad **noItemsFulltextSearchText** pro frame uložený pod klíčem `frameKey`.\r\n* Pokud pro daný klíč neexistuje instance, vrací defaultní text.\r\n*\r\n* @param state\r\n* @param frameKey Klíč framu.\r\n*/\r\nexport const getNoItemsFulltextSearchText: Selector<IAppState, string, string> = (state, frameKey) =>\r\n getPrimaryText(state, getEmptyMessageCustomization(state, frameKey).noItemsFulltextSearchLocKey) ||\r\n getPrimaryText(state, EMPTY_MESSAGE_CUSTOMIZATION_DEFAULT.noItemsFulltextSearchLocKey) ||\r\n UNKNOWN_KEY_TEXT;\r\n\r\n/**\r\n* Získá překlad **noItemsFulltextSearchIcon** pro frame uložený pod klíčem `frameKey`.\r\n* Pokud pro daný klíč neexistuje instance, vrací defaultní ikonu.\r\n*\r\n* @param state\r\n* @param frameKey Klíč framu.\r\n*/\r\nexport const getNoItemsFulltextSearchIcon: Selector<IAppState, IconCode, string> = (state, frameKey) =>\r\n getEmptyMessageCustomization(state, frameKey).noItemsFulltextSearchIcon;\r\n\r\n/**\r\n * Vytvoří selector, který na základě **isFulltextConditionActive** získá informaci, že **fulltextCondition** existuje a není prázdná.\r\n * Je-li tomu tak, vrací typ **EmptyMessage** s příslušnou ikonou a informací o tom, že data nebyla nalezena pro hledaný text.\r\n * V opačném případě vrací ikonu a informaci o tom, že data nebyla nalezena při inicializaci.\r\n */\r\nexport const createGetEmptyMessageSelector = () => createSelector<\r\n IAppState,\r\n string,\r\n ReturnType<typeof getFulltextSearchString>,\r\n ReturnType<typeof isFulltextConditionActive>,\r\n ReturnType<typeof getNoItemsText>,\r\n ReturnType<typeof getNoItemsIcon>,\r\n ReturnType<typeof getNoItemsFulltextSearchText>,\r\n ReturnType<typeof getNoItemsFulltextSearchIcon>,\r\n IEmptyMessage | undefined\r\n>(\r\n getFulltextSearchString,\r\n isFulltextConditionActive,\r\n getNoItemsText,\r\n getNoItemsIcon,\r\n getNoItemsFulltextSearchText,\r\n getNoItemsFulltextSearchIcon,\r\n (fulltextSearchString, isFulltextConditionActive, noItemsText, noItemsIcon, fulltextNoItemsText, fulltextNoItemsIcon) => {\r\n if (isFulltextConditionActive) {\r\n const localizedMessage =\r\n applyLocParams(fulltextNoItemsText || \"\", [fulltextSearchString ?? \"\"]) ||\r\n UNKNOWN_KEY_TEXT;\r\n\r\n return {\r\n text: localizedMessage,\r\n iconCode: fulltextNoItemsIcon,\r\n };\r\n } else {\r\n return {\r\n text: noItemsText || \"\",\r\n iconCode: noItemsIcon,\r\n };\r\n }\r\n },\r\n);\r\n\r\n/**\r\n * Získá **canValueLoad** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getCanValueLoad: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.canValueLoad ?? undefined;\r\n\r\n/**\r\n * Získá **actionArea** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getActionArea: Selector<IAppState, ActionArea | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.actionArea;\r\n\r\n/**\r\n * Získá **rowTemplate** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getRowTemplate: Selector<IAppState, RowTemplateType | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.rowTemplate;\r\n\r\n/**\r\n * Získá **showHeader** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getShowHeader: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.showHeader;\r\n\r\n/**\r\n * Získá **loadOnScroll** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getLoadOnScroll: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.loadOnScroll;\r\n\r\n/**\r\n * Získá **allowMultiselectMode** z framu získeho pomocí `frameKey`.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getAllowMultiselectMode: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.allowMultiselect;\r\n\r\n/**\r\n * Získá **interactive** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getInteractive: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.interactive;\r\n\r\n/**\r\n * Vytvoří selector, který vrací unikátní klíč při změně parametrů, který by měly zajistit vyčištění cache ve virtualized listu.\r\n */\r\nexport const createGetRowRerenderKey = () =>\r\n createSelector<\r\n IAppState,\r\n string,\r\n ReturnType<typeof getActionArea>,\r\n ReturnType<typeof getRowTemplate>,\r\n ReturnType<typeof getActions>,\r\n string | undefined\r\n >(\r\n getActionArea,\r\n getRowTemplate,\r\n getActions,\r\n (actionArea, rowTemplate, actions) => {\r\n if (actionArea && rowTemplate && actions) {\r\n return generateUUID();\r\n }\r\n return undefined;\r\n },\r\n );\r\n\r\n/**\r\n * Získá lokalizovaný hlavní text pro zadaný attributeName.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Obsahuje klíč k instanci DataSource a název atributu.\r\n * @returns\r\n */\r\nexport const getAtributePrimaryText: Selector<IAppState, string | undefined, AttributeSelectorParams> = (state, { dataSourceKey, attributeName }) =>\r\n getPrimaryText(state, getConfigAttributeByName(state, { dataSourceKey, attributeName })?.locKey ?? \"\");\r\n\r\n/**\r\n * Získá lokalizovaný alternativní text pro zadaný attributeName.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Obsahuje klíč k instanci DataSource a název atributu.\r\n * @returns\r\n */\r\nexport const getAtributeSecondaryText: Selector<IAppState, string | undefined, AttributeSelectorParams> = (state, { dataSourceKey, attributeName }) =>\r\n getSecondaryText(state, getConfigAttributeByName(state, { dataSourceKey, attributeName })?.locKey ?? \"\");\r\n\r\n/**\r\n * Získá **visibility** pro frame uložený pod klíčem `frameKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param frameKey Klíč framu.\r\n */\r\nexport const getVisibility: Selector<IAppState, boolean | undefined, string> = (state, frameKey) =>\r\n getFrameInstance(state, frameKey)?.visibility;\r\n\r\n/**\r\n * Získá **title** pro záznam.\r\n * Pokud pro daný klíč neexistuje titulek, vrací prázdný řetězec.\r\n */\r\nexport const createGetRecordTitleById = () => createSelector<\r\n IAppState,\r\n RecordAttributeSelectorParams,\r\n ReturnType<typeof getPrimaryText>,\r\n ReturnType<typeof getPrimaryText>,\r\n ReturnType<typeof getAtributeSecondaryText>,\r\n ReturnType<typeof getAttributeTypeByAttributeName>,\r\n ReturnType<typeof getRecordValueById>,\r\n string\r\n>(\r\n (state) => getPrimaryText(state, LOC_KEY_YES) ?? \"\",\r\n (state) => getPrimaryText(state, LOC_KEY_NO) ?? \"\",\r\n (state, params) => getAtributeSecondaryText(state, params) ?? \"\",\r\n (state, params) => getAttributeTypeByAttributeName(state, params),\r\n (state, params) => getRecordValueById(state, params),\r\n (yesText, noText, secondaryText, attributeType, value) => {\r\n let title: string | undefined;\r\n\r\n if (attributeType === OWDataType.boolean) {\r\n if (value === true)\r\n title = yesText;\r\n else if (value === false)\r\n title = noText;\r\n } else {\r\n title = secondaryText;\r\n }\r\n return title ?? \"\";\r\n },\r\n);\r\n","/**\r\n * Určuje variantu stylů DataRow.\r\n */\r\nexport enum DataRowVariant {\r\n default = \"default\",\r\n gridParticipants = \"grid-participants\",\r\n}\r\n","import {\r\n TAB_INDEX_FOCUSABLE_ONLY,\r\n TAB_INDEX_FOCUSABLE_TAB_SEQUENCE,\r\n} from \"@multiweb/reactUtils\";\r\n\r\nexport const getTabIndexByMultiselectMode = (multiselectMode: boolean): number => {\r\n return multiselectMode ? TAB_INDEX_FOCUSABLE_TAB_SEQUENCE : TAB_INDEX_FOCUSABLE_ONLY;\r\n};\r\n","import React, { FunctionComponent, KeyboardEventHandler, MouseEventHandler, useCallback } from \"react\";\r\n\r\nimport { getCustomization } from \"@multiweb/customization\";\r\nimport { CheckBoxField, Icon, Layout, Skeleton, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n bemClassNames,\r\n createFocusWithinObserver,\r\n DataRowElementSiblings,\r\n doNothing,\r\n EMPTY_ARRAY,\r\n EMPTY_OBJECT,\r\n Key,\r\n} from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { DataRowProps } from \"../DataRow\";\r\nimport { DataRowVariant } from \"./enums\";\r\nimport { getTabIndexByMultiselectMode } from \"./utils\";\r\n\r\nconst { openReactConnectorDetail } = bridge;\r\n\r\nexport type DataRowComponentProps = DataRowProps & {\r\n /** Obsahuje klíč pro renderer, kterým se má vyrenderovat template pro řádek. */\r\n templateRendererKey?: string;\r\n /** Určuje, jestli jsou načteny data pro daný záznam. */\r\n isRecordLoaded: boolean;\r\n /** Příznak určující, zda je daná row označena. */\r\n isChecked?: boolean;\r\n /** Příznak určující, zda je daná row vybrána. */\r\n isSelected?: boolean;\r\n /** Určuje, zda DataRow může zobrazit detail záznamu. */\r\n hasDetailForm?: boolean;\r\n /** Určuje, zda je DataSource v režimu výběru více záznamů. */\r\n multiselectMode?: boolean;\r\n /** Určuje, zda je pro DataSource povolen výběr více záznamů. */\r\n allowMultiselect?: boolean;\r\n /** Určuje, zda je vypnutý multi-výběr pomocí klávesy shift. */\r\n disableShiftKey?: boolean;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Umožňuje na DataRow si nastavit vlastní tabIndex, bez ohledu na multiSelect mód. */\r\n explicitTabIndex?: number;\r\n /** Upravuje výchozí chování vzhledu. */\r\n variant?: DataRowVariant;\r\n /** Akce pro odchycení kliknutí na záznam. */\r\n handleRecordClick: () => void;\r\n /** Akce pro přepnutí označení(isChecked) na vybraných(isSelected) záznamech v DataSource. */\r\n toggleSelectedRecordsCheck: () => void;\r\n /** Akce pro výběr záznamů daných identifikátory. */\r\n selectRecords: (selectedRows: ReadonlyArray<string>) => void;\r\n /** Akce pro výběr dalšího záznamu. */\r\n selectNextRecord: (clearOtherSelections: boolean) => void;\r\n /** Akce pro výběr předchozího záznamu. */\r\n selectPreviousRecord: (clearOtherSelections: boolean) => void;\r\n /** Akce pro výběr záznamu daného identifikátorem. */\r\n trySelectRecord: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"data-row-component\");\r\n\r\nexport const DataRowComponent: FunctionComponent<DataRowComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n getSibling,\r\n templateRendererKey,\r\n isRecordLoaded,\r\n isChecked,\r\n isSelected,\r\n hasDetailForm,\r\n multiselectMode = false,\r\n allowMultiselect = false,\r\n disableShiftKey = false,\r\n interactive = true,\r\n explicitTabIndex = undefined,\r\n variant = DataRowVariant.default,\r\n handleRecordClick,\r\n toggleSelectedRecordsCheck,\r\n selectRecords,\r\n selectNextRecord,\r\n selectPreviousRecord,\r\n trySelectRecord,\r\n}) => {\r\n // TODO: přesun do sagy??? - onClickDataRowAction(dataSourceKey, recordId) - odstraneni zavislosti allowMultiselect, handleRecordClick, openReactConnectorDetail, ...\r\n const onClick: MouseEventHandler = useCallback(\r\n (event) => {\r\n if (!isRecordLoaded) {\r\n // Jestliže není záznam dosud načtený, neděláme nic.\r\n return;\r\n }\r\n if (multiselectMode || (allowMultiselect && (event.ctrlKey || event.metaKey || event.shiftKey))) {\r\n handleRecordClick();\r\n } else if (hasDetailForm && interactive) {\r\n openReactConnectorDetail(dataSourceKey, recordId);\r\n }\r\n },\r\n [multiselectMode, allowMultiselect, hasDetailForm, interactive, isRecordLoaded, handleRecordClick, dataSourceKey, recordId],\r\n );\r\n\r\n // TODO: Přesun do sagy??? - onKeyDownDataRowAction(dataSourceKey, recordId???, key, shiftKey). Odstraneni zavislosti selectNextRecord, selectPreviousRecord, toggleSelectedRecordsCheck, ...\r\n const onKeyDown: KeyboardEventHandler = useCallback(\r\n (event) => {\r\n if (multiselectMode && isRecordLoaded) {\r\n const { key, shiftKey } = event;\r\n switch (key) {\r\n case Key.ArrowDown:\r\n case Key.ArrowUp: {\r\n event.preventDefault();\r\n\r\n const siblingType = key === Key.ArrowDown ? DataRowElementSiblings.nextElementSibling : DataRowElementSiblings.previousElementSibling;\r\n\r\n const newFocusElement = getSibling(\r\n siblingType,\r\n document.activeElement,\r\n );\r\n\r\n if (!newFocusElement) {\r\n return true; // Pokud jsem na ResponsiveListu, tak nemůžu selectovat elementy, které nevidím, ale v DataSource jsou načteny.\r\n }\r\n\r\n const reduxSelectMethod = key === Key.ArrowDown ? selectNextRecord : selectPreviousRecord;\r\n\r\n if (newFocusElement.className.includes(classNames())) {\r\n disableShiftKey ? reduxSelectMethod(true) : reduxSelectMethod(!shiftKey);\r\n } else {\r\n selectRecords(EMPTY_ARRAY);\r\n }\r\n\r\n newFocusElement.focus(); // Focus musí být až za akcí, jinak se vyvolá trySelect dříve než se provede aktualizace redux stavu a navigace se pokazí.\r\n return true;\r\n }\r\n case Key.Space: {\r\n event.preventDefault();\r\n toggleSelectedRecordsCheck();\r\n return true;\r\n }\r\n case Key.Escape: {\r\n selectRecords([recordId]);\r\n return true;\r\n }\r\n case Key.Tab: {\r\n selectRecords(EMPTY_ARRAY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n return false;\r\n },\r\n [isRecordLoaded, multiselectMode, getSibling, selectNextRecord, selectPreviousRecord, disableShiftKey, selectRecords, toggleSelectedRecordsCheck, recordId],\r\n );\r\n\r\n // TODO: presun do sagy??? onFocusDataRowAction(). Odstraneni zavislosti trySelectRecord.\r\n const onRowFocus = useCallback(() => {\r\n if (multiselectMode) {\r\n trySelectRecord();\r\n }\r\n }, [multiselectMode, trySelectRecord]);\r\n const { onFocus } = createFocusWithinObserver(onRowFocus, doNothing, onRowFocus);\r\n\r\n /** TabIndex záznamu. Nastaví se až po načtení záznamu (nechceme, aby šlo zaměřit nenačtený záznam). */\r\n const tabIndex = isRecordLoaded ? (explicitTabIndex ?? getTabIndexByMultiselectMode(multiselectMode)) : undefined;\r\n\r\n const Template = getCustomization().liteListFrame.templates.getRendererByKey(templateRendererKey).component;\r\n\r\n return (\r\n <div\r\n className={classNames({\r\n clickable: hasDetailForm || multiselectMode,\r\n multiselectable: multiselectMode,\r\n isSelected: multiselectMode && isSelected,\r\n disabled: !interactive || !isRecordLoaded,\r\n variant,\r\n })}\r\n role={Role.row}\r\n aria-selected={multiselectMode ? isChecked || false : undefined}\r\n {...(interactive ? { onClick, onKeyDown, onFocus, tabIndex } : EMPTY_OBJECT)}\r\n >\r\n <div className={classNames(\"inner-wrapper\")}>\r\n {hasDetailForm && !multiselectMode && (\r\n <div className={classNames(\"arrow-icon\")}>\r\n <Icon iconCode={IconCode.uiChevronRightSmall} disabled={!interactive || !isRecordLoaded} />\r\n </div>\r\n )}\r\n <div className={classNames(\"content\")}>\r\n {multiselectMode && (\r\n <Layout spacingSizeRight={SpacingSize.m}>\r\n {isRecordLoaded ? (\r\n <CheckBoxField\r\n value={isChecked}\r\n disabled={!interactive}\r\n qa={\"multiselectCheckBox\"}\r\n />\r\n ) : (\r\n <Skeleton height={\"var(--base-2)\"} width={\"var(--base-2)\"} />\r\n )}\r\n </Layout>\r\n )}\r\n <Template {...{ dataSourceKey, recordId }} />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./DataRowComponent\";\r\nexport * from \"./enums\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport {\r\n createSelectNextRecord,\r\n createSelectPreviousRecord,\r\n createToggleCheckOnSelectedRecordsAction,\r\n getIsRecordLoaded,\r\n getMultiselectMode,\r\n hasDetailForm,\r\n isRecordChecked,\r\n isRecordSelected,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { GetDataRowSiblingType } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport {\r\n createHandleRecordClickAction,\r\n createSetSelectedRecordsAction,\r\n createTrySelectRecordAction,\r\n} from \"../../actions\";\r\nimport {\r\n getAllowMultiselectMode,\r\n getInteractive,\r\n getRowTemplate,\r\n} from \"../../selectors\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { DataRowComponent, DataRowComponentProps } from \"../DataRowComponent\";\r\n\r\nexport type DataRowProps = {\r\n /** Metoda pro získání sousedního řádku. */\r\n getSibling: GetDataRowSiblingType;\r\n /**\r\n * Obsahuje pevný klíč pro renderer, kterým se má vyrenderovat template pro řádek.\r\n * Pokud není vyplněn, prohledá se kolekce registrovaných šablon.\r\n */\r\n templateRendererKey?: string;\r\n} & FrameSharedProps;\r\n\r\ntype StateProps = Pick<\r\n DataRowComponentProps,\r\n | \"templateRendererKey\"\r\n | \"isRecordLoaded\"\r\n | \"hasDetailForm\"\r\n | \"isSelected\"\r\n | \"isChecked\"\r\n | \"multiselectMode\"\r\n | \"allowMultiselect\"\r\n | \"interactive\"\r\n>;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, DataRowProps, IAppState> = (\r\n state,\r\n { dataSourceKey, recordId, templateRendererKey },\r\n) => ({\r\n templateRendererKey: templateRendererKey || getRowTemplate(state, dataSourceKey),\r\n isRecordLoaded: getIsRecordLoaded(state, { dataSourceKey, recordId }),\r\n isSelected: isRecordSelected(state, { dataSourceKey, recordId }),\r\n isChecked: isRecordChecked(state, { dataSourceKey, recordId }),\r\n hasDetailForm: hasDetailForm(state, dataSourceKey),\r\n allowMultiselect: getAllowMultiselectMode(state, dataSourceKey),\r\n multiselectMode: getMultiselectMode(state, dataSourceKey),\r\n interactive: getInteractive(state, dataSourceKey),\r\n});\r\n\r\ntype DispatchProps = Pick<\r\n DataRowComponentProps,\r\n | \"handleRecordClick\"\r\n | \"toggleSelectedRecordsCheck\"\r\n | \"selectRecords\"\r\n | \"selectNextRecord\"\r\n | \"selectPreviousRecord\"\r\n | \"trySelectRecord\"\r\n>;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, DataRowProps> = (\r\n dispatch,\r\n { dataSourceKey, recordId },\r\n) => ({\r\n handleRecordClick: () => dispatch(createHandleRecordClickAction(dataSourceKey, recordId)),\r\n toggleSelectedRecordsCheck: () => dispatch(createToggleCheckOnSelectedRecordsAction(dataSourceKey)),\r\n selectRecords: (selectedRows) => dispatch(createSetSelectedRecordsAction(dataSourceKey, selectedRows)),\r\n selectNextRecord: (clearOtherSelections) => dispatch(createSelectNextRecord(dataSourceKey, clearOtherSelections)),\r\n selectPreviousRecord: (clearOtherSelections) => dispatch(createSelectPreviousRecord(dataSourceKey, clearOtherSelections)),\r\n trySelectRecord: () => dispatch(createTrySelectRecordAction(dataSourceKey, recordId)),\r\n});\r\n\r\nexport const DataRow = connect(mapStateToProps, mapDispatchToProps)(DataRowComponent);\r\n","export * from \"./DataRow\";\r\n","import React, { FunctionComponent, useLayoutEffect, useRef } from \"react\";\r\n\r\nimport { useThrottleResizeObserver } from \"@multiweb/reactUtils\";\r\n\r\nexport type MeasureCellProps = {\r\n /** Pošle naměřenou šířku */\r\n onWidthChange?: (size: number | undefined) => void;\r\n /** Pošle naměřenou výšku */\r\n onHeightChange?: (size: number | undefined) => void;\r\n /** Čas v ms, ve kterém se onSizeCallback zavolá maximálně jednou */\r\n wait?: number;\r\n};\r\n\r\n/**\r\n * Komponenta sloužící k zjištění rozměrů svého (pozicí) relativního rodiče\r\n */\r\nexport const MeasureCell: FunctionComponent<MeasureCellProps> = ({\r\n onWidthChange,\r\n onHeightChange,\r\n wait = 0,\r\n}) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n useLayoutEffect(() => {\r\n if (ref?.current) {\r\n onWidthChange && onWidthChange(ref?.current.clientWidth);\r\n onHeightChange && onHeightChange(ref?.current.clientHeight);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [onWidthChange, onHeightChange]);\r\n\r\n useThrottleResizeObserver(ref, onWidthChange, onHeightChange, wait);\r\n\r\n return (<div {...{ ref }} style={{ width: \"100%\", position: \"absolute\", visibility: \"hidden\" }} aria-hidden={true}></div>);\r\n};\r\n","export * from \"./MeasureCell\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Cursor } from \"@multiweb/types/multiweb\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\n\r\n/**\r\n * Typ akce. V DropdownAction se použivá jako nepovinný rozlišovací element.\r\n */\r\nexport type DropdownActionType = \"main\" | \"other\" | string;\r\n\r\n/**\r\n * Akce na kliknutí\r\n */\r\nexport type DropdownAction = {\r\n /** Popisek akce */\r\n title: string;\r\n /** Ikona tlačítka */\r\n icon?: IconCode;\r\n /** Text na tlačítku */\r\n text?: string;\r\n /** Samotná akce na kliknutí */\r\n onClick?: ClickAction;\r\n /** Aktivnost akce */\r\n disabled?: boolean;\r\n /** Typ akce, slouží k rozlišení typu akce pří kliknutí. Typ akce se předa při kliku jako argument slouží k rozlišení\r\n * pokud by se používal jeden callback pro více akci */\r\n type?: DropdownActionType;\r\n};\r\n\r\n/** Akce na kliknutí */\r\nexport type ClickAction = (e: React.MouseEvent<HTMLElement, MouseEvent>, actionType?: DropdownActionType, customData?: any) => boolean | void;\r\n\r\nexport type DropdownItemBaseProps = {\r\n /** Téma tlačítka */\r\n theme?: ComponentTheme;\r\n /** Zobrazeny cursor na tlačítku */\r\n cursor?: Cursor;\r\n /** Hlavní akce obsahující callback na kliknutí, text tlačítka, title na najetí myší, aktivnost a ikonu */\r\n clickAction?: DropdownAction;\r\n} & QAProps;\r\n\r\n/**\r\n * Typ pro loaderRenderer Dropdownu.\r\n */\r\nexport type DropdownLoaderRenderer = FunctionComponent<DropdownSizesProps>;\r\n\r\n/** Typ pro dropdown komponenty, které podporují načítání. */\r\nexport type DropdownLoadingProps = {\r\n /** Informace o tom, zda probiha loading */\r\n isLoading?: boolean;\r\n /** Komponenta, která zobrazuje loading skeleton. Slouží k nahrazení defaultního skeletonu. */\r\n loaderRenderer?: DropdownLoaderRenderer;\r\n};\r\n\r\n/** Typ pro dropdown komponenty, které podporují velikosti a maximální velikosti. */\r\nexport type DropdownSizesProps = {\r\n /** Určuje výšku Dropdownu. Doporučené jednotky jsou px, vw, vh. */\r\n height?: string | number;\r\n /** Určuje maximální výšku Dropdownu. Doporučené jednotky jsou px, vw, vh. */\r\n maxHeight?: string | number;\r\n /** Určuje šířku Dropdownu. Doporučené jednotky jsou px, vw, vh. */\r\n width?: string | number;\r\n /** Určuje maximální šířku Dropdownu. Doporučené jednotky jsou px, vw, vh. */\r\n maxWidth?: string | number;\r\n};\r\n\r\n/** Typ pro state maximálních velikostí. */\r\nexport interface IMaxSizes {\r\n /** Maximální výška. */\r\n height: number | string;\r\n /** Maximální šířka. */\r\n width: number | string;\r\n}\r\n","import { RefObject, useEffect, useState } from \"react\";\r\nimport throttle from \"lodash.throttle\";\r\n\r\nimport { getContentPosition, PopupPosition } from \"@multiweb/reactUtils\";\r\nimport { IComponentSize } from \"@multiweb/types/react\";\r\nimport { IMaxSizes } from \"./types\";\r\n\r\nconst MAX_SIZES_THROTTLE_MS = 1000;\r\n\r\n/**\r\n * Hook vracející maximální prostor dle získané pozice dropdownu.\r\n * @param triggerElement reference na spouštěcí element.\r\n * @param size Rozměry dropdown contentu.\r\n * @param isInitialized Přiznak, zda bylo dokončeno měření rozměrů dropdown contentu.\r\n * @returns Maximální výšku a šířku.\r\n */\r\nexport const useMaxSizes = (triggerElement: RefObject<HTMLDivElement>, isInitialized: boolean, size?: IComponentSize) => {\r\n const [maxSizes, setMaxSizes] = useState<IMaxSizes>();\r\n\r\n useEffect(() => {\r\n const handleResize = throttle(() => {\r\n if (!(triggerElement.current && size && isInitialized)) {\r\n return;\r\n }\r\n const contextElementRec = new DOMRect(0, 0, size.width, size.height);\r\n const triggerElementRec = triggerElement.current.getBoundingClientRect();\r\n const position = getContentPosition(triggerElementRec, contextElementRec);\r\n setMaxSizes(calcSizesForPosition(position, triggerElementRec));\r\n }, MAX_SIZES_THROTTLE_MS);\r\n\r\n const observer = new ResizeObserver(handleResize);\r\n observer.observe(document.body);\r\n return () => observer.disconnect();\r\n }, [triggerElement, size, isInitialized]);\r\n\r\n return maxSizes;\r\n};\r\n\r\n/**\r\n * Pomocná funkce pro výpočet maximálního prostoru dle zadané pozice.\r\n * @param popupPosition pozice dropdownu vůči spouštěcímu elementu.\r\n * @param triggerElementRec informace o velikosti a umístění spouštěcího elementu.\r\n * @returns Maximální výšku a šířku.\r\n */\r\nconst calcSizesForPosition = (popupPosition: PopupPosition, triggerElementRec: DOMRect): IMaxSizes => {\r\n switch (popupPosition) {\r\n case PopupPosition.rightBottom:\r\n return {\r\n height: window.innerHeight - triggerElementRec.top - triggerElementRec.height,\r\n width: window.innerWidth - triggerElementRec.left,\r\n };\r\n case PopupPosition.leftBottom:\r\n return {\r\n height: window.innerHeight - triggerElementRec.top - triggerElementRec.height,\r\n width: triggerElementRec.right,\r\n };\r\n case PopupPosition.leftTop:\r\n return {\r\n height: triggerElementRec.top,\r\n width: triggerElementRec.right,\r\n };\r\n case PopupPosition.rightTop:\r\n return {\r\n height: triggerElementRec.top,\r\n width: window.innerWidth - triggerElementRec.left,\r\n };\r\n }\r\n};\r\n","/**\r\n * Určuje, která scrollovací šipka má být aktivní\r\n */\r\nexport enum DropdownArrowDirection {\r\n up = \"up\",\r\n down = \"down\",\r\n}\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Icon, IconColor, JustifyContent, Layout } from \"@multiweb/reactComponents\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { DropdownArrowDirection } from \"./types\";\r\n\r\n/** Ikona pro směr nahoru */\r\nconst UP_ICON = IconCode.uiChevronTopSmallFilled;\r\n/** Ikona pro směr dolů */\r\nconst DOWN_ICON = IconCode.uiChevronBottomSmallFilled;\r\n/** Barva ikony v připadě active=true */\r\nconst ACIVE_COLOR = IconColor.colorPrimary;\r\n/** Barva ikony v připadě active=false */\r\nconst INACTIVE_COLOR = IconColor.textDisabled;\r\n\r\nexport type DropdownContainerOverflowArrowProps = {\r\n /** Směr šípky */\r\n direction: DropdownArrowDirection;\r\n /** Aktivnost šipky */\r\n active: boolean;\r\n};\r\n\r\nexport const DropdownContainerOverflowArrow: FunctionComponent<DropdownContainerOverflowArrowProps> = ({\r\n direction,\r\n active,\r\n}) => <Layout justifyContent={JustifyContent.center}><Icon iconCode={direction === DropdownArrowDirection.up ? UP_ICON : DOWN_ICON} color={active ? ACIVE_COLOR : INACTIVE_COLOR} /></Layout>;\r\n","export * from \"./DropdownContainerOverflowArrow\";\r\nexport * from \"./types\";\r\n","import React, { Fragment, FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { getSkeletonPercentageWidthByIndex, Skeleton } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport type DropdownSkeletonItem = {\r\n skeletonCount?: number;\r\n};\r\n\r\nconst className = bemClassNames(\"dropdown-skeleton-item\");\r\n\r\nexport const DropdownSkeletonItem: FunctionComponent<DropdownSkeletonItem> = ({\r\n skeletonCount = 1,\r\n}) => {\r\n const skeletons: ReactElement[] = [];\r\n\r\n for (let i = 0; i < skeletonCount; i++) {\r\n skeletons.push(\r\n <Fragment key={`fragment-${i}`}>\r\n <Skeleton key={generateUUID()} />\r\n <Skeleton key={generateUUID()} width={getSkeletonPercentageWidthByIndex(i)} />\r\n </Fragment>,\r\n );\r\n }\r\n\r\n return (\r\n <div className={className()} style={{ gridTemplateRows: `repeat(${skeletonCount}, var(--dropdown-menu-item-height))` }}>\r\n {skeletons}\r\n </div>\r\n );\r\n};\r\n","export * from \"./DropdownSkeletonItem\";\r\n","import React, { FunctionComponent, ReactNode, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames, getMaxSize, isClose } from \"@multiweb/reactUtils\";\r\nimport { useContentOverflows, useElementScrollData } from \"@multiweb/reactUtils/hooks\";\r\nimport { DropdownLoadingProps, DropdownSizesProps } from \"../../types\";\r\nimport { DropdownArrowDirection, DropdownContainerOverflowArrow } from \"../DropdownContainerOverflowArrow\";\r\nimport { DropdownSkeletonItem } from \"../DropdownSkeletonItem\";\r\n\r\nexport type DropdownContainerProps = {\r\n /** Položky menu */\r\n children: ReactNode[];\r\n /** Určuje maximální výšku Dropdownu. */\r\n maxHeight?: string | number;\r\n /** Určuje maximální šířku Dropdownu. */\r\n maxWidth?: string | number;\r\n} & DropdownSizesProps &\r\n DropdownLoadingProps;\r\n\r\ntype OverflowState = {\r\n up: boolean;\r\n down: boolean;\r\n};\r\n\r\n/** Tolerance pri scrollovaní je zde z důvodu toho, že při zoomu může docházet k nepřesnostem v hodnotách. viz. readme */\r\nconst SCROLL_TOLERANCE = 1;\r\n/** Minimální šířka dropdownu. */\r\nconst MIN_WIDTH = \"180px\";\r\n\r\nconst className = bemClassNames(\"dropdown-container\");\r\n\r\nconst DefaultLoaderRenderer: FunctionComponent<DropdownSizesProps> = ({\r\n height = \"150px\",\r\n maxHeight,\r\n width = \"300px\",\r\n maxWidth,\r\n}) => (\r\n <div\r\n className={className(\"loader\")}\r\n style={{\r\n height,\r\n maxHeight,\r\n width,\r\n maxWidth,\r\n }}\r\n >\r\n <DropdownSkeletonItem skeletonCount={3} />\r\n </div>\r\n);\r\n\r\nexport const DropdownContainer: FunctionComponent<DropdownContainerProps> = ({\r\n isLoading = false,\r\n children,\r\n loaderRenderer = DefaultLoaderRenderer,\r\n height,\r\n maxHeight,\r\n width,\r\n maxWidth,\r\n}) => {\r\n const itemsAreaRef = useRef<HTMLDivElement>(null);\r\n /**\r\n * Příznak, zda je zobrazeno položek více než je možno zobrazit.\r\n * Budou zobrazeny šipky\r\n */\r\n const hasOverflow = useContentOverflows(itemsAreaRef, false, true);\r\n const [overflowDirection, setOverflowDirection] = useState<OverflowState>({ up: true, down: false });\r\n const scrollData = useElementScrollData(itemsAreaRef, [hasOverflow, isLoading]);\r\n\r\n useEffect(() => {\r\n const { height, scrollHeight, scrollTop } = scrollData;\r\n // Tato funkce je zde přidána kvůli zoomu, při zoomu dochazelo k tomu, že scrollHeight neodpovidal maximálnímu\r\n // dostupnému scrollu, ale mohl byt treba 1919.6 nebo 1920.3, takze je treba brat v potaz nejakou toleranci\r\n const isDownScroll = (): boolean => {\r\n const currentScroll = Math.round(scrollTop + height);\r\n return isClose(currentScroll, scrollHeight, SCROLL_TOLERANCE);\r\n };\r\n\r\n if (hasOverflow) {\r\n if (scrollTop === 0) setOverflowDirection({ down: true, up: false });\r\n else if (isDownScroll()) setOverflowDirection({ down: false, up: true });\r\n else setOverflowDirection({ down: true, up: true });\r\n }\r\n }, [hasOverflow, scrollData, isLoading]);\r\n\r\n const calculatedWidth = width ? getMaxSize(width, MIN_WIDTH) : undefined;\r\n const calculatedMaxWidth = maxWidth ? getMaxSize(maxWidth, MIN_WIDTH) : undefined;\r\n return (\r\n <div\r\n onClick={(e: React.MouseEvent<HTMLDivElement>) => {\r\n e.nativeEvent.stopImmediatePropagation();\r\n e.stopPropagation();\r\n }}\r\n className={className({ hasOverflow, isLoading })}\r\n style={{ height, maxHeight: `calc(${maxHeight} - var(--base))` }}\r\n >\r\n {!isLoading && hasOverflow && (\r\n <DropdownContainerOverflowArrow direction={DropdownArrowDirection.up} active={overflowDirection.up} />\r\n )}\r\n\r\n {isLoading && loaderRenderer({ height, maxHeight, width: calculatedWidth, maxWidth: calculatedMaxWidth })}\r\n {!isLoading && (\r\n <div\r\n ref={itemsAreaRef}\r\n className={className(\"items\")}\r\n style={{ height, maxWidth: `calc(${calculatedMaxWidth} - var(--base))`, width: calculatedWidth }}\r\n >\r\n {children}\r\n </div>\r\n )}\r\n\r\n {!isLoading && hasOverflow && (\r\n <DropdownContainerOverflowArrow\r\n direction={DropdownArrowDirection.down}\r\n active={overflowDirection.down}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n","export * from \"./DropdownContainer\";\r\n","import React, { Fragment, FunctionComponent, ReactNode, RefObject, useEffect, useMemo, useRef, useState } from \"react\";\r\n\r\nimport { Measurer } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames, combineRefs, getMinSize } from \"@multiweb/reactUtils\";\r\nimport { PopupPosition } from \"@multiweb/reactUtils/hooks/usePopupFlipHook\";\r\nimport { IComponentSize } from \"@multiweb/types/react\";\r\nimport { Popup } from \"UI/UI.React/components/Popup\";\r\nimport { useMaxSizes } from \"../../hooks\";\r\nimport { DropdownLoadingProps, DropdownSizesProps } from \"../../types\";\r\nimport { DropdownContainer } from \"../DropdownContainer\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nconst className = bemClassNames(\"dropdown-component-content\");\r\n\r\nexport type DropdownComponentProps = {\r\n /** Reference na spouštěč popupu. Předává se, aby popup věděl, kde se nachází trigger a mohl podle toho umístit Popup. */\r\n triggerElement: RefObject<any>;\r\n /** Reference na obsah popupu. Předává se, aby popup věděl, jak velký je jeho obsah a podle toho ho mohl umístit. */\r\n contextElement: RefObject<any>;\r\n /** Požadovaná preferovaná pozice. */\r\n requestedPosition?: PopupPosition;\r\n /**\r\n * Potomci k vyrenderování.\r\n * Měly by to být být DropdownItem, DropdownListItem,\r\n * DropdownMultiButtonsItem nebo DropdownSeparatorItem.\r\n */\r\n children: ReactNode[];\r\n /** Určuje stav otevření Dropdownu (Popupu s DropdownContainerem) */\r\n isOpen: boolean;\r\n} & DropdownSizesProps & DropdownLoadingProps;\r\n\r\n/**\r\n * Komponenta sloužící k vyrenderování Dropdown.\r\n * O stav otevření se musí starat nadřazená komponenta (@see Dropdown ).\r\n */\r\nexport const DropdownComponent: FunctionComponent<DropdownComponentProps> = ({\r\n triggerElement,\r\n contextElement,\r\n requestedPosition,\r\n isOpen,\r\n children,\r\n isLoading = false,\r\n loaderRenderer,\r\n height,\r\n maxHeight,\r\n width,\r\n maxWidth,\r\n}) => {\r\n const contentOverflowRef = useRef<HTMLDivElement>(null);\r\n const combinedContextRef = combineRefs(contentOverflowRef, contextElement);\r\n const [size, setSize] = useState<IComponentSize>();\r\n const [isInitialized, setIsInitialized] = useState<boolean>(false);\r\n\r\n /**\r\n * Hook vypočte maximální výšku a šířku dropdown contentu na základě určené polohy vůči spouštěcímu elementu.\r\n */\r\n const maxSizes = useMaxSizes(triggerElement, isInitialized, size);\r\n\r\n const popupContent = useMemo(() => {\r\n return <div ref={combinedContextRef} className={className()}>\r\n <DropdownContainer {...{ isLoading, loaderRenderer, height, width }}\r\n maxHeight={getMinSize(maxHeight, `calc(${maxSizes?.height}px - var(--base-2))`)}\r\n maxWidth={getMinSize(maxWidth, `calc(${maxSizes?.width}px - var(--base-4))`)}\r\n >\r\n {children}\r\n </DropdownContainer>\r\n </div>;\r\n // Do dependencies nebyl zahrnut \"combinedContextRef\" z důvodu vyvolání stálého re-renderu\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [maxSizes, isLoading, loaderRenderer, height, width, children, maxHeight, maxWidth]);\r\n\r\n const itemsToMeasure = useMemo(() => {\r\n return [{\r\n key: generateUUID(),\r\n component: popupContent,\r\n onItemMeasured: (size: IComponentSize) => setSize(size),\r\n }];\r\n }, [popupContent]);\r\n\r\n useEffect(() => {\r\n setIsInitialized(false);\r\n }, [maxSizes?.height, maxSizes?.width]);\r\n\r\n return (\r\n <Fragment>\r\n { !isInitialized && <Measurer itemsToMeasure={itemsToMeasure} onAllMeasuredCallback={() => setIsInitialized(true)} /> }\r\n <Popup {...{ opened: isOpen, requestedPosition, triggerElement, height: size?.height, width: size?.width }}>\r\n {popupContent}\r\n </Popup>\r\n </Fragment>\r\n );\r\n};\r\n","import { FunctionComponent, KeyboardEvent, MouseEvent } from \"react\";\r\n\r\n/** Určuje styl otevření */\r\nexport enum OpenOn {\r\n click = \"click\",\r\n hover = \"hover\",\r\n clickAndHover = \"clickAndHover\",\r\n}\r\n\r\n/**\r\n * Typ pro Dropdown trigger renderer properties.\r\n */\r\nexport type DropdownTriggerRendererProps = {\r\n onClick: (e: MouseEvent) => void;\r\n onKeyDown: (e: KeyboardEvent) => void;\r\n};\r\n\r\n/**\r\n * Typ rendereru pro trigger Dropdownu. Pro správné fungování musí custom renderer\r\n * předat **všechny** properties (onClick, onKeyDown, ...).\r\n */\r\nexport type DropdownTriggerRenderer = FunctionComponent<DropdownTriggerRendererProps>;\r\n","import React, { Fragment, FunctionComponent, ReactElement, useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { useClickOutsideModalWatcher } from \"@multiweb/reactUtils\";\r\nimport { DropdownLoadingProps, DropdownSizesProps } from \"../../types\";\r\nimport { DropdownComponent } from \"../DropdownComponent/DropdownComponent\";\r\nimport { DropdownTriggerRenderer, OpenOn } from \"./types\";\r\n\r\nexport type DropdownProps = {\r\n /**\r\n * Potomci k vyrenderování.\r\n * Měly by to být být DropdownItem, DropdownListItem,\r\n * DropdownMultiButtonsItem nebo DropdownSeparatorItem.\r\n */\r\n children: ReactElement<any>[];\r\n /** Typ otevírání Dropdownu. */\r\n openOn?: OpenOn;\r\n /**\r\n * Renderer pro trigger Dropdownu. Pro správné fungování musí předat\r\n * všechny předané properties (onClick, onKeyDown, ...).\r\n */\r\n triggerRenderer: DropdownTriggerRenderer;\r\n /** Callback volající se v případě změny viditelnosti dropdownu. */\r\n onVisibilityChange?: (isOpen: boolean) => void;\r\n} & DropdownSizesProps & DropdownLoadingProps;\r\n\r\nexport const Dropdown: FunctionComponent<DropdownProps> = ({\r\n children,\r\n openOn = OpenOn.click,\r\n triggerRenderer,\r\n isLoading,\r\n loaderRenderer,\r\n height,\r\n maxHeight,\r\n width,\r\n maxWidth,\r\n onVisibilityChange,\r\n}) => {\r\n const triggerElement = useRef<HTMLDivElement>(null);\r\n const contextElement = useRef<HTMLDivElement>(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleVisibility = useCallback((isOpen: boolean) => {\r\n setIsOpen(isOpen);\r\n if (onVisibilityChange) {\r\n onVisibilityChange(isOpen);\r\n }\r\n }, [onVisibilityChange]);\r\n\r\n const clickOutsideCallback = useCallback(() => handleVisibility(false), [handleVisibility]);\r\n\r\n useClickOutsideModalWatcher(triggerElement, contextElement, clickOutsideCallback);\r\n\r\n useEffect(() => {\r\n const listenerElement = triggerElement.current;\r\n const hoverListener = () => handleVisibility(true);\r\n if (openOn === OpenOn.hover || openOn === OpenOn.clickAndHover) {\r\n listenerElement?.addEventListener(\"mouseenter\", hoverListener);\r\n }\r\n\r\n return () => {\r\n listenerElement?.removeEventListener(\"mouseenter\", hoverListener);\r\n };\r\n }, [openOn, triggerElement, handleVisibility]);\r\n\r\n return (\r\n <Fragment>\r\n <div ref={triggerElement}>\r\n {triggerRenderer({\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n if (isOpen || openOn === OpenOn.click || openOn === OpenOn.clickAndHover) {\r\n handleVisibility(!isOpen);\r\n }\r\n },\r\n onKeyDown: (e) => {\r\n if (e.key === \"Enter\") {\r\n handleVisibility(!isOpen);\r\n }\r\n },\r\n })}\r\n </div>\r\n <DropdownComponent {...{ isOpen, isLoading, loaderRenderer, setIsOpen, triggerElement, contextElement, height, width, maxHeight, maxWidth }}>\r\n {children}\r\n </DropdownComponent>\r\n </Fragment>\r\n );\r\n};\r\n","export * from \"./Dropdown\";\r\nexport * from \"./types\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type DropdownCaptionItemComponentProps = {\r\n /** Text, který se zobrazí v titulku */\r\n text: string;\r\n};\r\n\r\nconst className = bemClassNames(\"dropdown-caption-item-component\");\r\n\r\nexport const DropdownCaptionItemComponent: FunctionComponent<DropdownCaptionItemComponentProps> = ({\r\n text,\r\n}) => (\r\n <label className={className()}>{text}</label>\r\n);\r\n","export * from \"./DropdownCaptionItemComponent\";\r\n","import { MapLocalizationToProps, MapLocKey, withLocalization } from \"UI/UI.React/HOC\";\r\nimport { DropdownCaptionItemComponent, DropdownCaptionItemComponentProps } from \"../DropdownCaptionItemComponent\";\r\n\r\nexport type DropdownCaptionItemProps = {\r\n readonly locKey: string;\r\n} & DropdownCaptionItemComponentProps;\r\n\r\ntype StateProps = Pick<DropdownCaptionItemComponentProps, \"text\">;\r\n\r\nconst mapToProps: MapLocalizationToProps<StateProps> = ({ text }) => ({\r\n text,\r\n});\r\n\r\nconst mapLocKeyProp: MapLocKey<Omit<DropdownCaptionItemProps, \"text\">> = ({ locKey }) => ({\r\n locKey,\r\n});\r\n\r\nexport const DropdownCaptionItem = withLocalization(mapToProps, mapLocKeyProp)(DropdownCaptionItemComponent);\r\n","export * from \"./DropdownCaptionItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Icon, Text, TextProps } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\nconst classNames = bemClassNames(\"dropdown-icon-text\");\r\n\r\nexport type DropdownIconTextProps = {\r\n /** Kód ikony k zobrazení */\r\n iconCode?: IconCode;\r\n} & Pick<TextProps, \"value\" | \"disabled\" | \"ellipsis\">;\r\n\r\nexport const DropdownIconText: FunctionComponent<DropdownIconTextProps> = (({\r\n disabled,\r\n value,\r\n iconCode,\r\n ellipsis = true,\r\n}) => {\r\n return (\r\n <div className={classNames()}>\r\n <div className={classNames(\"icon\")}>\r\n {iconCode && <Icon disabled={disabled} iconCode={iconCode} />}\r\n </div>\r\n {value && <div className={classNames(\"text\")}>\r\n <Text isTextSelectable={false} {...{ disabled, value, ellipsis }} />\r\n </div>}\r\n </div>);\r\n});\r\n","export * from \"./DropdownIconText\";\r\n","import React, { forwardRef, ReactElement, useCallback } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { DropdownItemBaseProps } from \"../../types\";\r\n\r\nconst classNames = bemClassNames(\"dropdown-item-wrapper\");\r\n\r\nexport type DropdownItemWrapperProps = {\r\n /** Tělo tlačítka */\r\n children: ReactElement;\r\n} & DropdownItemBaseProps;\r\n\r\nexport const DropdownItemWrapper: ForwardRefType<HTMLDivElement, DropdownItemWrapperProps> = forwardRef<HTMLDivElement, DropdownItemWrapperProps>(({\r\n clickAction,\r\n qa,\r\n theme = ComponentTheme.default,\r\n children,\r\n}, ref) => {\r\n const clickEvent = useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>): void => {\r\n clickAction?.onClick?.(e, \"main\");\r\n }, [ clickAction ]);\r\n\r\n return (\r\n <div\r\n className={classNames({ disabled: clickAction?.disabled }, [`theme-${theme}`])}\r\n aria-label={clickAction?.title}\r\n aria-disabled={clickAction?.disabled ?? false}\r\n role=\"button\"\r\n tabIndex={0}\r\n onClick={clickEvent}\r\n title={clickAction?.title}\r\n {...{ ref }}\r\n {...createQA(qa)}\r\n >\r\n {children}\r\n </div>\r\n );\r\n});\r\n","export * from \"./DropdownItemWrapper\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { DropdownAction, DropdownItemBaseProps } from \"../../types\";\r\nimport { DropdownIconText } from \"../DropdownIconText\";\r\nimport { DropdownItemWrapper } from \"../DropdownItemWrapper\";\r\n\r\nexport type DropdownItemProps = {\r\n /** Callback volaný na kliknutí */\r\n clickAction: DropdownAction;\r\n} & Omit<DropdownItemBaseProps, \"clickAction\">;\r\n\r\nconst classNames = bemClassNames(\"dropdown-item\");\r\n\r\nexport const DropdownItem: FunctionComponent<DropdownItemProps> = (({\r\n clickAction,\r\n ...restProps\r\n}) => (\r\n <DropdownItemWrapper {...{ clickAction }} {...restProps}>\r\n <div className={classNames()}>\r\n <DropdownIconText iconCode={clickAction.icon} value={clickAction.text} disabled={clickAction.disabled} {...restProps} />\r\n </div>\r\n </DropdownItemWrapper>\r\n));\r\n","export * from \"./DropdownItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Icon, IconColor, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { DropdownItemBaseProps } from \"../../types\";\r\nimport { DropdownIconText } from \"../DropdownIconText\";\r\nimport { DropdownItemWrapper } from \"../DropdownItemWrapper\";\r\n\r\nconst DROPDOWN_MENU_ITEM_SUBMENU = IconCode.uiChevronRight;\r\nconst classNames = bemClassNames(\"dropdown-list-item\");\r\n\r\nexport const DropdownListItem: FunctionComponent<DropdownItemBaseProps> = ({ clickAction, ...restProps }) => {\r\n return (\r\n <DropdownItemWrapper {...{ clickAction }} {...restProps}>\r\n <div className={classNames()}>\r\n <DropdownIconText iconCode={clickAction?.icon} value={clickAction?.text} disabled={clickAction?.disabled} {...restProps} />\r\n <Layout spacingSize={SpacingSize.xs} spacingSizeRight={SpacingSize.s}>\r\n <Icon iconCode={DROPDOWN_MENU_ITEM_SUBMENU} color={IconColor.default} />\r\n </Layout>\r\n </div>\r\n </DropdownItemWrapper>);\r\n};\r\n","export * from \"./DropdownListItem\";\r\n","import React, { FunctionComponent, useMemo } from \"react\";\r\n\r\nimport { ButtonBackgroundColor, ButtonThemeVariant, IconButton, IconColor } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { DropdownAction, DropdownItemBaseProps } from \"../../types\";\r\nimport { DropdownIconText } from \"../DropdownIconText\";\r\nimport { DropdownItemWrapper } from \"../DropdownItemWrapper\";\r\n\r\nconst classNames = bemClassNames(\"dropdown-multibutton-item\");\r\n\r\nconst renderActionButtons = (actions: ReadonlyArray<DropdownAction>) => {\r\n return actions\r\n ?.filter((item) => item?.icon && item?.onClick)\r\n .map(\r\n (item) => <IconButton\r\n key={item.title}\r\n variant={ButtonThemeVariant.dropdown}\r\n iconCode={item.icon!}\r\n onClick={(e) => item.onClick?.(e, item.type)}\r\n title={item.title}\r\n color={IconColor.default}\r\n backgroundColor={ButtonBackgroundColor.inherit}\r\n />,\r\n );\r\n};\r\n\r\nexport type DropdownMultiButtonsItemProps = {\r\n /** Pole akcí pro další tlačítka */\r\n actions: readonly DropdownAction[];\r\n} & DropdownItemBaseProps;\r\n\r\n/**\r\n * Tlačítko DropDown, které umožní standartně zorbazit ikonu a text plus umožnuje zobrazit dodatečná tlačítka na pravé straně\r\n * Tlačítka na pravé straně zobrazují pouze ikonu.\r\n */\r\nexport const DropdownMultiButtonsItem: FunctionComponent<DropdownMultiButtonsItemProps> = ({\r\n clickAction,\r\n actions,\r\n ...restProps\r\n}) => {\r\n const actionButtons = useMemo(() => renderActionButtons(actions), [actions]);\r\n const clickEvent = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => clickAction?.onClick?.(e, \"main\");\r\n\r\n return (\r\n <DropdownItemWrapper {...restProps}>\r\n <div className={classNames()}>\r\n <div className={classNames(\"title\", { disabled: clickAction?.disabled })} onClick={clickEvent} title={clickAction?.title}>\r\n <DropdownIconText iconCode={clickAction?.icon} value={clickAction?.text} disabled={clickAction?.disabled} {...restProps} />\r\n </div>\r\n {actions?.length > 0 && <div className={classNames(\"icons\")}>\r\n {actionButtons}\r\n </div>}\r\n </div>\r\n </DropdownItemWrapper>);\r\n};\r\n","export * from \"./DropdownMultiButtonsItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nconst classNames = bemClassNames(\"dropdown-separator-item\");\r\n\r\nexport const DropdownSeparatorItem: FunctionComponent = (() => <div role=\"separator\" className={classNames()}/>);\r\n","export * from \"./DropdownSeparatorItem\";\r\n","export * from \"./Dropdown\";\r\nexport * from \"./DropdownCaptionItem\";\r\nexport * from \"./DropdownItem\";\r\nexport * from \"./DropdownListItem\";\r\nexport * from \"./DropdownMultiButtonsItem\";\r\nexport * from \"./DropdownSeparatorItem\";\r\nexport * from \"./DropdownSkeletonItem\";\r\n","export * from \"./components\";\r\nexport * from \"./types\";\r\n","import React, { FunctionComponent, useEffect, useRef } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { UNKNOWN_KEY_TEXT } from \"@multiweb/reactCore/i18n\";\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { RowActionProps } from \"../RowAction\";\r\n\r\nconst { executeReactConnectorAction } = bridge;\r\n\r\nexport type RowActionComponentProps = RowActionProps & {\r\n /** Ikona k zobrazení. */\r\n iconCode?: IconCode;\r\n /** Určuje viditelnost akce. */\r\n visible?: boolean;\r\n /** Lokalizovaný název akce. */\r\n actionText?: string;\r\n /** Lokalizovaný popis akce. */\r\n actionTitle?: string;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Pošle info o své velikosti */\r\n onSizeCallback?: (id: string, size: number) => void;\r\n};\r\n\r\nexport const RowActionComponent: FunctionComponent<RowActionComponentProps> = ({\r\n iconCode,\r\n visible = true,\r\n actionText = UNKNOWN_KEY_TEXT,\r\n actionTitle,\r\n interactive = true,\r\n disabled,\r\n actionId,\r\n recordId,\r\n onSizeCallback,\r\n dataSourceKey,\r\n}) => {\r\n const targetRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (targetRef.current && onSizeCallback) {\r\n onSizeCallback(actionId, (targetRef.current as unknown as HTMLButtonElement).clientWidth);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [actionText]);\r\n\r\n return (\r\n <button\r\n className={`btn btn-large flat${iconCode ? \" icon no-caption \" + iconCode : \"\"}${\r\n interactive && !disabled ? \"\" : \" Disabled\"\r\n } ${!visible ? \" row-action-component--hidden\" : \"\"}`}\r\n aria-label={actionText}\r\n title={actionTitle}\r\n onClick={(event) => {\r\n if ((event.target as HTMLButtonElement).classList.contains(\"Disabled\")) {\r\n return;\r\n }\r\n executeReactConnectorAction(dataSourceKey, actionId, recordId);\r\n event.stopPropagation();\r\n }}\r\n {...createQA(actionText)}\r\n ref={targetRef}\r\n >\r\n <span className={`btn-caption${interactive && !disabled ? \"\" : \" Disabled\"}`}>{actionText}</span>\r\n </button>\r\n );\r\n};\r\n","export * from \"./RowActionComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport {\r\n getActionExtendedProperties,\r\n getActionIconCode,\r\n getActionLocKey,\r\n getActionVisibility,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { ExtendedPropertiesType } from \"@multiweb/types/multiweb\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getInteractive } from \"../../selectors\";\r\nimport { RowActionComponent, RowActionComponentProps } from \"../RowActionComponent\";\r\n\r\nexport type RowActionProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Identifikátor řádku, na kterém se akce nachází. */\r\n recordId: string;\r\n /** Identifikátor akce, která se má zobrazit. */\r\n actionId: string;\r\n /** Určuje, zda jsou akce zakázány. */\r\n disabled?: boolean;\r\n /** Vlastnosti akce */\r\n extendedProperties?: ExtendedPropertiesType;\r\n};\r\n\r\ntype StateProps = Pick<RowActionComponentProps, \"actionText\" | \"visible\" | \"actionTitle\" | \"iconCode\" | \"interactive\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, RowActionProps, IAppState> = (\r\n state,\r\n { dataSourceKey, actionId },\r\n) => ({\r\n iconCode: getActionIconCode(state, { dataSourceKey, actionId }),\r\n visible: getActionVisibility(state, { dataSourceKey, actionId }),\r\n actionText: getPrimaryText(state, getActionLocKey(state, { dataSourceKey, actionId }) || \"\"),\r\n actionTitle: getSecondaryText(state, getActionLocKey(state, { dataSourceKey, actionId }) || \"\"),\r\n interactive: getInteractive(state, dataSourceKey),\r\n extendedProperties: getActionExtendedProperties(state, { dataSourceKey, actionId }),\r\n});\r\n\r\nexport const RowAction = connect(mapStateToProps)(RowActionComponent);\r\n","export * from \"./RowAction\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { DropdownItem, DropdownItemProps } from \"@multiweb/dropdown\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n getActionIconCode,\r\n getActionLocKey,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\n\r\nconst { executeReactConnectorAction } = bridge;\r\n\r\nexport type RowActionDropdownItemProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Identifikátor řádku, na kterém se akce nachází. */\r\n recordId: string;\r\n /** Identifikátor akce, která se má zobrazit. */\r\n actionId: string;\r\n /** Určuje, zda jsou akce zakázány. */\r\n disabled?: boolean;\r\n};\r\n\r\ntype StateProps = Pick<DropdownItemProps, \"clickAction\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, RowActionDropdownItemProps, IAppState> = (\r\n state,\r\n { dataSourceKey, actionId, recordId },\r\n) => ({\r\n clickAction: {\r\n title: getSecondaryText(state, getActionLocKey(state, { dataSourceKey, actionId }) || \"\") || \"\",\r\n text: getPrimaryText(state, getActionLocKey(state, { dataSourceKey, actionId }) || \"\"),\r\n icon: getActionIconCode(state, { dataSourceKey, actionId }),\r\n onClick: (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\r\n executeReactConnectorAction(dataSourceKey, actionId, recordId);\r\n event.stopPropagation();\r\n },\r\n },\r\n});\r\n\r\nexport const RowActionDropdownItem = connect(mapStateToProps)(DropdownItem);\r\n","export * from \"./RowActionDropdownItem\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { DropdownItem, DropdownSeparatorItem, DropdownSkeletonItem } from \"@multiweb/dropdown\";\r\nimport { IWorkflowMenuItem } from \"@multiweb/types/multiweb\";\r\n\r\nconst renderWorkflowActionItems = (workflowActions: IWorkflowMenuItem[], executeAction: (workflowActionId: string) => void) => {\r\n if (workflowActions && workflowActions.length > 0) {\r\n const items = workflowActions?.map(action =>\r\n <DropdownItem\r\n key={action.ID}\r\n clickAction={{\r\n title: action.Codename,\r\n text: action.ItemName,\r\n onClick: () => executeAction(action.ID),\r\n }} />,\r\n );\r\n items.unshift(<DropdownSeparatorItem key=\"dropdown-separator-item\" />);\r\n return items;\r\n }\r\n return [];\r\n};\r\n\r\nexport type WorkflowActionsComponentProps = {\r\n /** Workflow akce a jejich vlastnosti */\r\n workflowActions?: IWorkflowMenuItem[];\r\n /** Příznak, zda jsou workflow akce načítány */\r\n isLoading: boolean;\r\n /** Funkce, jejiž volání zajistí provedení akce */\r\n executeAction: (workflowActionId: string) => void;\r\n};\r\n\r\nexport const WorkflowActionItemsComponent: FunctionComponent<WorkflowActionsComponentProps> = ({\r\n workflowActions,\r\n isLoading,\r\n executeAction,\r\n}) => {\r\n return (\r\n <Fragment>\r\n { isLoading ? <Fragment>\r\n <DropdownSeparatorItem />\r\n <DropdownSkeletonItem />\r\n </Fragment> : renderWorkflowActionItems(workflowActions || [], executeAction) }\r\n </Fragment>\r\n );\r\n};\r\n","export * from \"./WorkflowActionItemsComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createExecuteWorkflowAction, getWorkflowActions, isWorkflowLoading } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { WorkflowActionItemsComponent, WorkflowActionsComponentProps } from \"../WorkflowActionItemsComponent\";\r\n\r\ntype StateProps = Pick<WorkflowActionsComponentProps, \"workflowActions\" | \"isLoading\">;\r\ntype DispatchProps = Pick<WorkflowActionsComponentProps, \"executeAction\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FrameSharedProps, IAppState> = (state, { dataSourceKey }) => ({\r\n workflowActions: (getWorkflowActions())(state, dataSourceKey),\r\n isLoading: isWorkflowLoading(state, dataSourceKey),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, FrameSharedProps> = (dispatch, { dataSourceKey, recordId }) => ({\r\n executeAction: (workflowActionId: string) => dispatch(createExecuteWorkflowAction(dataSourceKey, workflowActionId, recordId)),\r\n});\r\n\r\nexport const WorkflowActionItems = connect(mapStateToProps, mapDispatchToProps)(WorkflowActionItemsComponent);\r\n","export * from \"./WorkflowActionItems\";\r\n","import React, { FunctionComponent, useLayoutEffect, useMemo, useRef } from \"react\";\r\n\r\nimport { Dropdown, DropdownCaptionItem, DropdownItem } from \"@multiweb/dropdown\";\r\nimport { ButtonBackgroundColor, IconButton, IconColor, IconSize } from \"@multiweb/reactComponents\";\r\nimport { doNothing } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IWorkflowMenuItem } from \"@multiweb/types/multiweb\";\r\n\r\nexport type WorkflowButtonComponentProps = {\r\n /** Nápověda po najetí myši */\r\n title: string;\r\n /** Funkce, jejíž volání zajistí načtení akcí */\r\n loadActions: () => void;\r\n /** Workflow akce a jejich vlastnosti */\r\n workflowActions?: IWorkflowMenuItem[];\r\n /** Příznak, zda jsou workflow akce načítány */\r\n isLoading: boolean;\r\n /** Funkce, jejiž volání zajistí provedení akce */\r\n executeAction: (workflowActionId: string) => void;\r\n /** Pošle info o své velikosti */\r\n onSizeCallback?: (id: string, size: number) => void;\r\n /** Určuje zda je zakázán */\r\n disabled?: boolean;\r\n /** Šířka dropdownu */\r\n dropdownWidth?: number;\r\n /** Maximální šířka dropdownu */\r\n dropdownMaxWidth?: number;\r\n};\r\n\r\nexport const WorkflowButtonComponent: FunctionComponent<WorkflowButtonComponentProps> = ({\r\n title,\r\n loadActions,\r\n workflowActions,\r\n isLoading,\r\n executeAction,\r\n onSizeCallback = doNothing,\r\n disabled,\r\n dropdownWidth = 200,\r\n dropdownMaxWidth = 300,\r\n}) => {\r\n const ref = useRef(null);\r\n\r\n useLayoutEffect(() => {\r\n if (ref.current && onSizeCallback) {\r\n onSizeCallback(\"workflow\", (ref.current as unknown as HTMLDivElement).clientWidth);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const items = useMemo(() => {\r\n if (workflowActions && workflowActions.length > 0) {\r\n const items = workflowActions?.map(action =>\r\n <DropdownItem\r\n key={action.ID}\r\n clickAction={{\r\n title: action.Codename,\r\n text: action.ItemName,\r\n onClick: (event) => {\r\n executeAction(action.ID);\r\n event.stopPropagation(); //TODO - 38304 odstranit po vyřešení bugu s klikatelným row\r\n },\r\n }} />,\r\n );\r\n\r\n items.unshift(<DropdownCaptionItem key=\"GUI-348255\" locKey={\"GUI-348255\"} />); //WorkFlow\r\n return items;\r\n }\r\n\r\n return [<DropdownCaptionItem key=\"GUI-777707\" locKey={\"GUI-777707\"} />]; //Žádné akce\r\n }, [workflowActions, executeAction]);\r\n\r\n return (\r\n <div ref={ref}>\r\n <Dropdown width={dropdownWidth} maxWidth={dropdownMaxWidth} isLoading={isLoading} triggerRenderer={(triggerButtonProps) => (\r\n <IconButton\r\n iconCode={IconCode.recordActions}\r\n color={IconColor.colorPrimary}\r\n size={IconSize.small}\r\n backgroundColor={ButtonBackgroundColor.transparent}\r\n {...triggerButtonProps}\r\n {...{ disabled, title }}\r\n onClick={(event) => {\r\n loadActions();\r\n triggerButtonProps.onClick(event);\r\n }}\r\n />\r\n )}>\r\n {items}\r\n </Dropdown>\r\n </div>\r\n );\r\n};\r\n","export * from \"./WorkflowButtonComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createExecuteWorkflowAction, createLoadWorkflowRequestAction, getWorkflowActions, isWorkflowLoading } from \"@multiweb/reactCore/datasource\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_WORKFLOW_ACTIONS } from \"../../locKeys\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { WorkflowButtonComponent, WorkflowButtonComponentProps } from \"../WorkflowButtonComponent\";\r\n\r\ntype StateProps = Pick<WorkflowButtonComponentProps, \"title\" | \"workflowActions\" | \"isLoading\">;\r\ntype DispatchProps = Pick<WorkflowButtonComponentProps, \"executeAction\" | \"loadActions\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FrameSharedProps, IAppState> = (state, { dataSourceKey }) => ({\r\n title: getPrimaryText(state, LOC_KEY_WORKFLOW_ACTIONS) ?? \"\",\r\n workflowActions: (getWorkflowActions())(state, dataSourceKey),\r\n isLoading: isWorkflowLoading(state, dataSourceKey),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, FrameSharedProps> = (dispatch, { dataSourceKey, recordId }) => ({\r\n executeAction: (workflowActionId: string) => dispatch(createExecuteWorkflowAction(dataSourceKey, workflowActionId, recordId)),\r\n loadActions: () => dispatch(createLoadWorkflowRequestAction(dataSourceKey, recordId)),\r\n});\r\n\r\nexport const WorkflowButton = connect(mapStateToProps, mapDispatchToProps)(WorkflowButtonComponent);\r\n","export * from \"./WorkflowButton\";\r\n","import React, { FunctionComponent, ReactElement, useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport { Dropdown } from \"@multiweb/dropdown\";\r\nimport { ButtonBackgroundColor, IconButton } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { RowAction } from \"../RowAction\";\r\nimport { RowActionDropdownItem } from \"../RowActionDropdownItem\";\r\nimport { WorkflowActionItems } from \"../WorkflowActionItems\";\r\nimport { WorkflowButton } from \"../WorkflowButton\";\r\n\r\nexport type RowActionsComponentProps = FrameSharedProps & {\r\n /** Identifikátory akcí, které se májí zobrazit. */\r\n actionIds?: ReadonlyArray<string>;\r\n /** Určuje, zda jsou akce zakázány. */\r\n disabled?: boolean;\r\n /** Příznak jestli třída podporuje workflow */\r\n hasWorkflow?: boolean;\r\n /** Šířka rodiče, která je k dispozici */\r\n maxWidth?: number;\r\n /** Funkce, jejíž volání zajistí načtení akcí */\r\n loadWorkflowActions: () => void;\r\n /** Příznak, zda jsou workflow akce načítány */\r\n isWorkflowLoading: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"row-actions-component\");\r\nconst DROPDOWN_WIDTH = 200;\r\n\r\nexport const RowActionsComponent: FunctionComponent<RowActionsComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n actionIds = EMPTY_ARRAY as ReadonlyArray<string>,\r\n disabled,\r\n hasWorkflow,\r\n maxWidth = 0,\r\n loadWorkflowActions,\r\n isWorkflowLoading,\r\n}) => {\r\n const [ visibleCount, setVisibleCount ] = useState(actionIds.length + (hasWorkflow ? 1 : 0));\r\n const [sizeMap, setSizeMap] = useState(new Map());\r\n const addToMap = (id: string, width: number) => {\r\n setSizeMap(new Map(sizeMap.set(id, width)));\r\n };\r\n const [isWorkflowHidden, setIsWorkflowHidden] = useState(false);\r\n const [ dropdownTriggerWidth, setDropdownTriggerWidth ] = useState<number>(0);\r\n const dropdownRef = useCallback((node) => {\r\n if (node && node.clientWidth > 0)\r\n setDropdownTriggerWidth(node.clientWidth);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let sum = 0;\r\n const values = Array.from(sizeMap.values());\r\n\r\n for (let i = 0; i < values.length; i++) {\r\n sum += values[i];\r\n if (sum >= ((maxWidth || 0) - dropdownTriggerWidth)) {\r\n setVisibleCount(i - 1);\r\n return;\r\n }\r\n }\r\n setVisibleCount(values.length);\r\n }, [sizeMap, maxWidth, actionIds, dropdownTriggerWidth]);\r\n\r\n const calculatedGroups = useMemo(() => {\r\n const visibleGroup: ReactElement[] = [];\r\n const hiddenGroup: ReactElement[] = [];\r\n\r\n actionIds.forEach((actionId, index) => {\r\n if (index < visibleCount) {\r\n visibleGroup.push(<RowAction\r\n key={actionId}\r\n {...{ dataSourceKey, recordId, actionId, disabled }}\r\n onSizeCallback={addToMap} />);\r\n } else {\r\n hiddenGroup.push(<RowActionDropdownItem key={actionId}\r\n {...{ dataSourceKey, recordId, actionId, disabled }}/>);\r\n }\r\n });\r\n\r\n if (hasWorkflow) {\r\n if (visibleGroup.length < visibleCount) {\r\n visibleGroup.push(\r\n <WorkflowButton\r\n key={recordId}\r\n {...{ dataSourceKey, recordId, disabled }}\r\n onSizeCallback={addToMap}\r\n />,\r\n );\r\n setIsWorkflowHidden(false);\r\n } else {\r\n hiddenGroup.push(\r\n <WorkflowActionItems\r\n key={recordId}\r\n {...{ dataSourceKey, recordId, disabled }}\r\n />,\r\n );\r\n setIsWorkflowHidden(true);\r\n }\r\n }\r\n\r\n return { visibleGroup, hiddenGroup };\r\n\r\n // Je žádoucí odchytávat jen při změně visible, kvůli předešlému hooku, který reaguje na ostatní\r\n // a mění právě visible\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [visibleCount, isWorkflowLoading]);\r\n\r\n const handleDropdownVisibilityChange = useCallback((isOpen: boolean) => {\r\n if (isOpen && isWorkflowHidden) {\r\n loadWorkflowActions();\r\n }\r\n }, [loadWorkflowActions, isWorkflowHidden]);\r\n\r\n return (\r\n <div className={classNames()}>\r\n { calculatedGroups.visibleGroup }\r\n { calculatedGroups.hiddenGroup.length > 0 &&\r\n <div ref={dropdownRef}>\r\n <Dropdown\r\n width={DROPDOWN_WIDTH}\r\n maxWidth={maxWidth}\r\n onVisibilityChange={handleDropdownVisibilityChange}\r\n triggerRenderer={(triggerButtonProps) => (\r\n <IconButton\r\n iconCode={IconCode.musicNextA }\r\n backgroundColor={ButtonBackgroundColor.transparent}\r\n {...triggerButtonProps}\r\n {...{ disabled }}\r\n />\r\n )}>\r\n { calculatedGroups.hiddenGroup }\r\n </Dropdown>\r\n </div>\r\n }\r\n </div>\r\n );\r\n};\r\n","export * from \"./RowActionsComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createLoadWorkflowRequestAction, getIsRecordLoaded, getRecordActionsIds, hasWorkflow, isWorkflowLoading } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { RowActionsComponent, RowActionsComponentProps } from \"../RowActionsComponent\";\r\n\r\ntype StateProps = Pick<RowActionsComponentProps, \"actionIds\" | \"disabled\" | \"isWorkflowLoading\">;\r\ntype DispatchProps = Pick<RowActionsComponentProps, \"loadWorkflowActions\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FrameSharedProps, IAppState> = (state, { dataSourceKey, recordId }) => ({\r\n actionIds: getRecordActionsIds(state, dataSourceKey),\r\n disabled: !getIsRecordLoaded(state, { dataSourceKey, recordId }),\r\n hasWorkflow: hasWorkflow(state, dataSourceKey),\r\n isWorkflowLoading: isWorkflowLoading(state, dataSourceKey),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, FrameSharedProps> = (dispatch, { dataSourceKey, recordId }) => ({\r\n loadWorkflowActions: () => dispatch(createLoadWorkflowRequestAction(dataSourceKey, recordId)),\r\n});\r\n\r\nexport const RowActions = connect(mapStateToProps, mapDispatchToProps)(RowActionsComponent);\r\n","export * from \"./RowActions\";\r\n","import React, { FunctionComponent, ReactNode, useState } from \"react\";\r\n\r\nimport { AlignItems, FlexDirection, FlexGrow, FlexWrap, Layout, Position } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { ActionArea, DefaultRowTemplate, FrameSharedProps, RowTemplateType } from \"../../types\";\r\nimport { MeasureCell } from \"../MeasureCell\";\r\nimport { RowActions } from \"../RowActions\";\r\n\r\nconst THROTTLE_MILISECONDS = 200;\r\nconst ACTION_AREA_SIDE_SIZE = 0.25;\r\n\r\nexport type TemplateLayoutProps = {\r\n /** Obsah k zasazení do šablony. */\r\n contentItems: ReadonlyArray<ReactNode>;\r\n /** Ikony k zasazení do šablony. */\r\n iconItems: ReadonlyArray<ReactNode>;\r\n /** Určuje, jakým způsobem se bude zobrazovat obsah (SingleLine, Multiline, atd). */\r\n rowTemplate?: RowTemplateType;\r\n /** Oblast, do které se mají akce vykreslit. */\r\n actionArea?: ActionArea;\r\n /** Velikostní poměr (procentní, zadaný mezi 0 a 1) části ActionArea vzhledem k celému řádku */\r\n actionAreaSize?: number;\r\n /** Set to true to override default flex-shrink: 0 actions area*/\r\n actionAreaShrink?: boolean;\r\n} & FrameSharedProps;\r\n\r\nconst classNames = bemClassNames(\"template\");\r\n\r\n/**\r\n * Komponenta sloužící k vykreslení atributů.\r\n */\r\nexport const TemplateLayout: FunctionComponent<TemplateLayoutProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n contentItems,\r\n iconItems,\r\n rowTemplate = DefaultRowTemplate.singleLine,\r\n actionArea = ActionArea.aaRight,\r\n actionAreaSize = ACTION_AREA_SIDE_SIZE,\r\n actionAreaShrink = false,\r\n}) => {\r\n const [width, setWidth] = useState<number | undefined>(undefined);\r\n\r\n return (\r\n <Layout flexGrow={FlexGrow.one} flexWrap={FlexWrap.nowrap}>\r\n <Layout alignItems={AlignItems.center}>{iconItems}</Layout>\r\n <Layout\r\n flexWrap={FlexWrap.nowrap}\r\n flexDirection={actionArea === ActionArea.aaBottom ? FlexDirection.column : FlexDirection.row}\r\n flexGrow={FlexGrow.one}\r\n alignItems={AlignItems.stretch}\r\n position={Position.relative}\r\n >\r\n <MeasureCell onWidthChange={setWidth} wait={THROTTLE_MILISECONDS} />\r\n <div className={`${classNames(\"content\")} ${rowTemplate}`}>{contentItems}</div>\r\n <div\r\n className={classNames(\"actions\", { [actionArea]: true, aaShrink: actionAreaShrink })}\r\n role={Role.cell}\r\n >\r\n <RowActions {...{ dataSourceKey, recordId }} maxWidth={(width || 0) * actionAreaSize} />\r\n </div>\r\n </Layout>\r\n </Layout>\r\n );\r\n};\r\n","export * from \"./TemplateLayout\";\r\n","import React from \"react\";\r\n\r\nimport { getCustomization } from \"@multiweb/customization\";\r\nimport { TemplateLayoutItem, TemplateLayoutVariant } from \"@multiweb/reactComponents\";\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\n\r\n/**\r\n * Vrací položky, které se mají umístit do řádku.\r\n *\r\n * @param attributeNames Jména atributů.\r\n * @param dataSourceKey Klíč k DataSource.\r\n * @param recordId Identifikátor záznamu.\r\n * @param dataSourceAttributes Načtené DataSource atributy.\r\n * @param variant Upravuje výchozí chování vzhledu.\r\n * @param role Role pro přístupnost.\r\n */\r\nexport const getItems = (\r\n attributeNames: ReadonlyArray<string>,\r\n dataSourceKey: string,\r\n recordId: string,\r\n dataSourceAttributes?: TypedObject<IDataSourceAttribute>,\r\n variant?: TemplateLayoutVariant,\r\n role?: Role,\r\n): JSX.Element[] =>\r\n attributeNames.map((attributeName, index) => {\r\n const AttributeComponent = getCustomization().liteListFrame.attribute.getRendererByKey(\r\n dataSourceAttributes?.[attributeName]?.attributeRendererKey || \"\",\r\n ).component;\r\n return (\r\n <TemplateLayoutItem\r\n key={`${attributeName}-${index}`}\r\n qa={attributeName}\r\n content={<AttributeComponent {...{ dataSourceKey, recordId, attributeName }} />}\r\n extendedProperties={dataSourceAttributes?.[attributeName]?.extendedProperties}\r\n {...{ variant, role }}\r\n />\r\n );\r\n });\r\n","import React, { FunctionComponent, useMemo } from \"react\";\r\n\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { ActionArea, RowTemplateType } from \"../../types\";\r\nimport { DataRowTemplateProps } from \"../DataRowTemplate\";\r\nimport { TemplateLayout } from \"../TemplateLayout\";\r\nimport { getItems } from \"./utils\";\r\n\r\nexport type DataRowTemplateComponentProps = DataRowTemplateProps & {\r\n /** Obsahuje seřazené ikonové atributy k zobrazení. */\r\n iconDataSourceAttributeNames?: ReadonlyArray<string>;\r\n /** Obsahuje seřazené atributy s obsahem k zobrazení. */\r\n contentDataSourceAttributeNames?: ReadonlyArray<string>;\r\n /** Načtené DataSource atributy. */\r\n dataSourceAttributes?: TypedObject<IDataSourceAttribute>;\r\n /** Oblast, do které se mají akce vykreslit. */\r\n actionArea?: ActionArea;\r\n /** Určuje, jakým způsobem se bude zobrazovat obsah (SingleLine, Multiline, atd). */\r\n rowTemplate?: RowTemplateType;\r\n};\r\n\r\n/** Konstanta udávající, že ActionArea má využít 100% šířka řádku (pro menší část je nutné číslo zmenšit) */\r\nconst FULL_SIZE = 1;\r\n\r\n/**\r\n * Komponenta vykreslující atributy podle template.\r\n */\r\nexport const DataRowTemplateComponent: FunctionComponent<DataRowTemplateComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n iconDataSourceAttributeNames = EMPTY_ARRAY as string[],\r\n contentDataSourceAttributeNames = EMPTY_ARRAY as string[],\r\n dataSourceAttributes,\r\n rowTemplate,\r\n actionArea,\r\n}) => {\r\n const iconItems = useMemo(() => getItems(iconDataSourceAttributeNames, dataSourceKey, recordId, dataSourceAttributes),\r\n [dataSourceKey, recordId, iconDataSourceAttributeNames, dataSourceAttributes]);\r\n\r\n const contentItems = useMemo(() => getItems(contentDataSourceAttributeNames, dataSourceKey, recordId, dataSourceAttributes),\r\n [dataSourceKey, recordId, contentDataSourceAttributeNames, dataSourceAttributes]);\r\n\r\n return (\r\n // Pokud je actionArea dole chceme aby byla rozstáhlá přes celou šířku\r\n <TemplateLayout\r\n {...{ iconItems, contentItems, dataSourceKey, recordId, actionArea, rowTemplate }}\r\n actionAreaSize={ actionArea === ActionArea.aaBottom ? FULL_SIZE : undefined }\r\n />\r\n );\r\n};\r\n","export * from \"./DataRowTemplateComponent\";\r\nexport * from \"./utils\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createGetAttributeNames, getConfigAttributes } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getActionArea, getRowTemplate } from \"../../selectors\";\r\nimport { FrameSharedProps } from \"../../types\";\r\nimport { DataRowTemplateComponent, DataRowTemplateComponentProps } from \"../DataRowTemplateComponent\";\r\n\r\nexport type DataRowTemplateProps = FrameSharedProps;\r\n\r\ntype StateProps = Pick<DataRowTemplateComponentProps, \"actionArea\" | \"rowTemplate\" | \"iconDataSourceAttributeNames\" | \"contentDataSourceAttributeNames\" | \"dataSourceAttributes\">;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, DataRowTemplateProps, IAppState> = () => {\r\n const getIconDataSourceAttributes = createGetAttributeNames(true);\r\n const getContentDataSourceAttributes = createGetAttributeNames(false);\r\n\r\n return (state, { dataSourceKey }) => ({\r\n actionArea: getActionArea(state, dataSourceKey),\r\n rowTemplate: getRowTemplate(state, dataSourceKey),\r\n iconDataSourceAttributeNames: getIconDataSourceAttributes(state, dataSourceKey),\r\n contentDataSourceAttributeNames: getContentDataSourceAttributes(state, dataSourceKey),\r\n dataSourceAttributes: getConfigAttributes(state, dataSourceKey),\r\n });\r\n};\r\n\r\nexport const DataRowTemplate = connect(createMapStateToProps)(DataRowTemplateComponent);\r\n","export * from \"./DataRowTemplate\";\r\n","/**\r\n * Pomocná funkce pro zpracování názvu souboru z hodnoty atributu.\r\n * Pokud je hodnota řetězec, vrací text za poslední dvojtečkou.\r\n * V případě že se v řetězci dvojtečka nevyskytuje, vrací celý řetězec.\r\n * V ostatních případech vrací undefined.\r\n * @param value Hodnota atributu\r\n */\r\nexport const getFilename = (value: any): string | undefined => {\r\n if (typeof value === \"string\") {\r\n const lastColon = value.lastIndexOf(\":\");\r\n return lastColon !== -1 ? value.substr(lastColon + 1) : value;\r\n }\r\n return undefined;\r\n};\r\n","import React, { FunctionComponent, KeyboardEventHandler, MouseEventHandler, useMemo, useState } from \"react\";\r\n\r\nimport { DocumentDownloadButtonComponent, EmptyText } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { downloadFile, invariant, Key } from \"@multiweb/reactUtils\";\r\nimport { IDataAttribute } from \"@multiweb/types/react\";\r\nimport { LLF_EMPTY_VALUE } from \"../../constants\";\r\nimport { getFilename } from \"./utils\";\r\n\r\nconst {\r\n errorHandler,\r\n getDocumentDownloadUrlByObjectId,\r\n prepareDownload,\r\n stopPropagation,\r\n} = bridge;\r\n\r\nexport type DocumentDownloadComponentProps = {\r\n /** Název atributu, který obsahuje odkaz na dokument uložený v DMS */\r\n originalAttributeName: string | undefined;\r\n /** Hodnota atributu aplikačního objektu. */\r\n attributeValue: IDataAttribute[\"value\"];\r\n /** Unikátní klíč záznamu. */\r\n recordId: string;\r\n /** Jméno objektu, který DataSource načítá z databáze. */\r\n objectName: string | undefined;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Zobrazí načítací indikátor. */\r\n showLoadingIndicator: () => void;\r\n /** Skryje načítací indikátor. */\r\n hideLoadingIndicator: () => void;\r\n};\r\n\r\n/** Komponenta zajišťující funkcionalitu pro stažení přílohy */\r\nexport const DocumentDownloadComponent: FunctionComponent<DocumentDownloadComponentProps> = ({\r\n attributeValue,\r\n recordId,\r\n objectName,\r\n originalAttributeName,\r\n interactive = true,\r\n showLoadingIndicator,\r\n hideLoadingIndicator,\r\n}) => {\r\n const [isLoading, setIsLoading] = useState<boolean>(false);\r\n const filename = useMemo(() => getFilename(attributeValue), [attributeValue]);\r\n\r\n const loadUrl = async () => {\r\n if (isLoading || !originalAttributeName || !objectName) return;\r\n setIsLoading(true);\r\n showLoadingIndicator();\r\n\r\n getDocumentDownloadUrlByObjectId(recordId, objectName, originalAttributeName)\r\n .then(async (value) => {\r\n invariant(value, \"[DocumentDownloadComponent] Document is not available.\");\r\n const canDownload = await prepareDownload(value);\r\n if (canDownload)\r\n downloadFile(value);\r\n })\r\n .catch((error) => {\r\n errorHandler(error);\r\n })\r\n .finally(() => {\r\n setIsLoading(false);\r\n hideLoadingIndicator();\r\n });\r\n };\r\n\r\n const handleClick: MouseEventHandler<HTMLSpanElement> = (event) => {\r\n event.preventDefault();\r\n stopPropagation(event);\r\n loadUrl();\r\n };\r\n\r\n const handleKeyPress: KeyboardEventHandler<HTMLSpanElement> = (event) => {\r\n event.preventDefault();\r\n stopPropagation(event);\r\n if (event.key === Key.Enter) {\r\n loadUrl();\r\n }\r\n };\r\n\r\n return filename ? (\r\n <DocumentDownloadButtonComponent\r\n onClick={handleClick}\r\n onKeyPress={handleKeyPress}\r\n disabled={!interactive || !originalAttributeName || !objectName}\r\n filename={filename}\r\n />\r\n ) : (\r\n <EmptyText content={LLF_EMPTY_VALUE} {...{ interactive }} />\r\n );\r\n};\r\n","export * from \"./DocumentDownloadComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createHideLoadingIndicatorAction, createShowLoadingIndicatorAction } from \"@multiweb/reactCore/bridge\";\r\nimport { getObjectName, getOriginalAttributeName } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { DocumentDownloadComponent, DocumentDownloadComponentProps } from \"../DocumentDownloadComponent\";\r\n\r\ntype DocumentDownloadProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Název atributu po zpracování dat z api - začíná malým písmenem */\r\n attributeName: string;\r\n} & Pick<DocumentDownloadComponentProps, \"attributeValue\" | \"recordId\">;\r\ntype StateProps = Pick<DocumentDownloadComponentProps, \"objectName\" | \"originalAttributeName\">;\r\ntype DispatchProps = Pick<DocumentDownloadComponentProps, \"showLoadingIndicator\" | \"hideLoadingIndicator\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, DocumentDownloadProps, IAppState> = (state, { dataSourceKey, attributeName }) => ({\r\n originalAttributeName: getOriginalAttributeName(state, { dataSourceKey, attributeName }),\r\n objectName: getObjectName(state, dataSourceKey),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, DocumentDownloadProps> = {\r\n showLoadingIndicator: createShowLoadingIndicatorAction,\r\n hideLoadingIndicator: createHideLoadingIndicatorAction,\r\n};\r\n\r\nexport const DocumentDownload = connect(mapStateToProps, mapDispatchToProps)(DocumentDownloadComponent);\r\n","export * from \"./DocumentDownload\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { EmptyMessageComponent, EmptyMessageComponentProps } from \"@multiweb/reactComponents\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createGetEmptyMessageSelector } from \"../../selectors\";\r\n\r\nexport type EmptyMessageProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n};\r\n\r\ntype StateProps = Pick<EmptyMessageComponentProps, \"emptyMessage\">;\r\n\r\nconst createMapStateToProps: (\r\n state: IAppState,\r\n props: EmptyMessageProps\r\n) => MapStateToProps<StateProps, EmptyMessageProps, IAppState> = () => {\r\n const getEmptyMessage = createGetEmptyMessageSelector();\r\n\r\n return (state, { dataSourceKey }) => ({\r\n emptyMessage: getEmptyMessage(state, dataSourceKey),\r\n });\r\n};\r\n\r\nexport const EmptyMessage = connect(createMapStateToProps)(EmptyMessageComponent);\r\n","export * from \"./EmptyMessage\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { GridLayoutItem, GridLayoutItemProps } from \"@multiweb/reactComponents\";\r\n\r\nexport type GridLayoutMultiwebItemComponentProps = GridLayoutItemProps & {\r\n /** Určuje, zda je frame viditelný v multiwebu. */\r\n visible?: boolean;\r\n};\r\n\r\n/** Komponenta obalující klasický GridLayoutItem listenery pro použití v connectoru. */\r\nexport const GridLayoutMultiwebItemComponent: FunctionComponent<GridLayoutMultiwebItemComponentProps> = ({\r\n visible,\r\n children,\r\n ...gridLayoutItemProps\r\n}) => {\r\n return (\r\n <GridLayoutItem {...gridLayoutItemProps} visible={visible}>\r\n {children}\r\n </GridLayoutItem>\r\n );\r\n};\r\n","export * from \"./GridLayoutMultiwebItemComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { GridLayoutItemProps } from \"@multiweb/reactComponents\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getVisibility } from \"../../selectors\";\r\nimport { GridLayoutMultiwebItemComponent, GridLayoutMultiwebItemComponentProps } from \"../GridLayoutMultiwebItemComponent\";\r\n\r\nexport type GridLayoutMultiwebItemProps = GridLayoutItemProps & {\r\n frameKey: string;\r\n};\r\n\r\ntype StateProps = Pick<GridLayoutMultiwebItemComponentProps, \"visible\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, GridLayoutMultiwebItemProps, IAppState> = (state, { frameKey }) => ({\r\n visible: getVisibility(state, frameKey),\r\n});\r\n\r\nexport const GridLayoutMultiwebItem = connect(mapStateToProps)(GridLayoutMultiwebItemComponent);\r\n","export * from \"./GridLayoutMultiwebItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Link, Scheme, Text } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\n\r\nconst { isUrl, isEmail, isFile } = bridge;\r\n\r\ntype LinkAttributeProps = {\r\n /** Adresa odkazu */\r\n value: string;\r\n};\r\n/** Komponenta, která vykresluje LinkAttribute. Pokud je hodnota platný odkaz, zobrazí se jako odkaz. V opačném případě jako text */\r\nexport const LinkAttribute: FunctionComponent<LinkAttributeProps> = ({\r\n value,\r\n}) => {\r\n return (\r\n isUrl(value) || isEmail(value) || isFile(value)\r\n ? <Link\r\n url={value}\r\n defaultScheme={isEmail(value) ? Scheme.mailTo : isFile(value) ? Scheme.file : Scheme.https }\r\n />\r\n : <Text ellipsis={true} value={value} title={value} />\r\n );\r\n};\r\n","export * from \"./LinkAttribute\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { ListHeaderAttributeComponent, ListHeaderAttributeComponentProps } from \"@multiweb/reactComponents\";\r\nimport {\r\n createFetchAttributesLocalizationsKey,\r\n createGetAttributeOrderBySelector,\r\n createToggleOrderByAction,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { isFetching } from \"@multiweb/reactCore/fetching\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getAtributePrimaryText, getAtributeSecondaryText, getInteractive } from \"../../selectors\";\r\n\r\nexport type ListHeaderAttributeProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Obsahuje informace potřebné k zobrazení atributu. */\r\n attributeName: string;\r\n};\r\n\r\ntype StateProps = Pick<\r\n ListHeaderAttributeComponentProps,\r\n \"attributeName\" | \"attributeTitle\" | \"orderType\" | \"isLocalizationsFetching\" | \"interactive\"\r\n>;\r\n\r\nconst createMapStateToProps: (\r\n state: IAppState,\r\n props: ListHeaderAttributeProps,\r\n) => MapStateToProps<StateProps, ListHeaderAttributeProps, IAppState> = (_state, { attributeName }) => {\r\n const getAttributeOrderBy = createGetAttributeOrderBySelector(attributeName);\r\n\r\n return (state, { dataSourceKey, attributeName }) => ({\r\n attributeName: getAtributePrimaryText(state, { dataSourceKey, attributeName }),\r\n attributeTitle: getAtributeSecondaryText(state, { dataSourceKey, attributeName }),\r\n orderType: getAttributeOrderBy(state, dataSourceKey),\r\n isLocalizationsFetching: isFetching(state, createFetchAttributesLocalizationsKey(dataSourceKey)),\r\n interactive: getInteractive(state, dataSourceKey),\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick<ListHeaderAttributeComponentProps, \"onClick\" | \"onShiftClick\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, ListHeaderAttributeProps> = (\r\n dispatch,\r\n { dataSourceKey, attributeName },\r\n) => ({\r\n onClick: () => dispatch(createToggleOrderByAction(dataSourceKey, attributeName, true)),\r\n onShiftClick: () => dispatch(createToggleOrderByAction(dataSourceKey, attributeName, false)),\r\n});\r\n\r\nexport const ListHeaderAttribute = connect(createMapStateToProps, mapDispatchToProps)(ListHeaderAttributeComponent);\r\n","export * from \"./ListHeaderAttribute\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AlignItems, FlexWrap, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { ListHeaderAttribute } from \"../ListHeaderAttribute\";\r\n\r\nexport type ListHeaderComponentProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Obsahuje seřazené ikonové atributy k zobrazení. */\r\n iconDataSourceAttributeNames?: ReadonlyArray<string>;\r\n /** Obsahuje seřazené atributy s obsahem k zobrazení. */\r\n contentDataSourceAttributeNames?: ReadonlyArray<string>;\r\n};\r\n\r\nconst classNames = bemClassNames(\"list-header-component\");\r\n\r\nexport const ListHeaderComponent: FunctionComponent<ListHeaderComponentProps> = ({\r\n dataSourceKey,\r\n iconDataSourceAttributeNames = EMPTY_ARRAY as ReadonlyArray<string>,\r\n contentDataSourceAttributeNames = EMPTY_ARRAY as ReadonlyArray<string>,\r\n}) => {\r\n // useMemo nemá cenu - attrNames se mění zároveň.\r\n const orderedAttributes = iconDataSourceAttributeNames\r\n .concat(contentDataSourceAttributeNames);\r\n const items = orderedAttributes?.map((attributeName, index) => (\r\n <ListHeaderAttribute key={`${attributeName}-${index}`} {...{ dataSourceKey, attributeName }} />\r\n ));\r\n\r\n return (\r\n <div className={classNames()} role={Role.rowGroup}>\r\n <div role={Role.row}>\r\n <Layout\r\n flexWrap={FlexWrap.wrap}\r\n alignItems={AlignItems.flexStart}\r\n spacingSize={SpacingSize.xs}\r\n spacingSizeLeft={SpacingSize.m}\r\n >\r\n {items}\r\n </Layout>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./ListHeaderComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createGetAttributeNames } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ListHeaderComponent, ListHeaderComponentProps } from \"../ListHeaderComponent\";\r\n\r\nexport type ListHeaderProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n};\r\n\r\ntype StateProps = Pick<ListHeaderComponentProps, \"iconDataSourceAttributeNames\" | \"contentDataSourceAttributeNames\">;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, ListHeaderProps, IAppState> = () => {\r\n const getIconDataSourceAttributes = createGetAttributeNames(true);\r\n const getContentDataSourceAttributes = createGetAttributeNames(false);\r\n\r\n return (state, { dataSourceKey }) => ({\r\n iconDataSourceAttributeNames: getIconDataSourceAttributes(state, dataSourceKey),\r\n contentDataSourceAttributeNames: getContentDataSourceAttributes(state, dataSourceKey),\r\n });\r\n};\r\n\r\nexport const ListHeader = connect(createMapStateToProps)(ListHeaderComponent);\r\n","export * from \"./ListHeader\";\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { BackgroundAttributeProps } from \"@multiweb/reactComponents\";\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { IconCode, IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { FlagColor, RecordType } from \"@multiweb/types/react\";\r\nimport { FrameAttributeSharedProps } from \"../../types\";\r\n\r\n/**\r\n * Properties pro komponentu atributu.\r\n */\r\nexport type AttributeProps = FrameAttributeSharedProps & BackgroundAttributeProps & {\r\n /** Záznam z modulu dataSource. */\r\n record?: RecordType;\r\n /** Konkrétní atribut. */\r\n dataSourceAttribute?: IDataSourceAttribute;\r\n /** Obecné informace k danému atributu. */\r\n dataSourceAttributeInfo?: IPublicAttributeInfo;\r\n /** Barva pozadí. */\r\n backgroundAttributeColor?: FlagColor;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n /** Určuje, jestli se má atribut vyrenderovat na řádku společně s ostatními atributy. */\r\n inline?: boolean;\r\n /** Popisek atributu. */\r\n title?: string;\r\n /** Pevná ikona u atributu. */\r\n iconCode?: IconCode;\r\n};\r\n\r\n/**\r\n * Typ komponenty pro zobrazeni atributu.\r\n */\r\nexport type AttributeComponent<Props extends AttributeProps = AttributeProps> = ComponentType<Props>;\r\n\r\n/**\r\n * Properties pro komponentu placeholder.\r\n */\r\nexport type PlaceholderProps = FrameAttributeSharedProps & {\r\n /** Určuje index renderovaného atributu. */\r\n attributeIndex?: number;\r\n /** Určuje, zda je daný záznam interativní. */\r\n interactive?: boolean;\r\n /** Jméno atributu, který určuje jakou barvou se má obarvit pozadí. */\r\n backgroundAttributeName?: string;\r\n};\r\n\r\n/**\r\n * Typ komponenty pro zobrazeni placeholderu atributu.\r\n */\r\nexport type PlaceholderComponent<Props extends PlaceholderProps = PlaceholderProps> = ComponentType<Props>;\r\n","import React from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n createGetBackgroundAttributeColor,\r\n getAttributeInfoByName,\r\n getConfigAttributeByName,\r\n getRecordById,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createGetRecordTitleById, getInteractive } from \"../../../selectors\";\r\nimport { FrameAttributeSharedProps } from \"../../../types\";\r\nimport { AttributeComponent, AttributeProps } from \"../types\";\r\n\r\nconst { stringToEnumValue } = bridge;\r\n\r\nexport type ConnectedAttributeHOCProps = FrameAttributeSharedProps;\r\n\r\ntype StateProps = Pick<\r\n AttributeProps,\r\n \"record\" | \"dataSourceAttribute\" | \"dataSourceAttributeInfo\" | \"backgroundAttributeColor\" | \"interactive\"\r\n>;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, ConnectedAttributeHOCProps, IAppState> = () => (\r\n state,\r\n { dataSourceKey, recordId, attributeName },\r\n) => {\r\n const getBackgroundAttributeColor = createGetBackgroundAttributeColor();\r\n const getRecordTitleById = createGetRecordTitleById();\r\n\r\n return {\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n dataSourceAttribute: getConfigAttributeByName(state, { dataSourceKey, attributeName }),\r\n dataSourceAttributeInfo: getAttributeInfoByName(state, { dataSourceKey, attributeName }),\r\n backgroundAttributeColor: getBackgroundAttributeColor(state, { dataSourceKey, attributeName, recordId }),\r\n interactive: getInteractive(state, dataSourceKey),\r\n title: getRecordTitleById(state, { dataSourceKey, attributeName, recordId }),\r\n };\r\n};\r\n\r\n/**\r\n * HOC pro propejení atributu do store.\r\n *\r\n * @param Attribute Komponenta pro attribute\r\n * @param enableBackgroundColor\r\n */\r\nexport const connectAttribute = (\r\n AttributeComponent: AttributeComponent,\r\n) => {\r\n const ConnectedAttributeHOC: AttributeComponent = (props) => {\r\n return (\r\n <AttributeComponent {...props} iconCode={stringToEnumValue(IconCode, props.dataSourceAttribute?.iconName ?? \"\")} />\r\n );\r\n };\r\n\r\n return connect(createMapStateToProps)(ConnectedAttributeHOC);\r\n};\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { BackgroundAttributeProps, IconProps, IconWithBackgroundAttr } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type IconNameAttributeProps = IconProps & BackgroundAttributeProps & { children: React.ReactElement };\r\n\r\nconst className = bemClassNames(\"iconname-attribute\");\r\n\r\nexport const IconNameAttribute: FunctionComponent<IconNameAttributeProps> = ({ children, ...otherProps }) => (\r\n <div className={className()}>\r\n <IconWithBackgroundAttr\r\n {...otherProps}\r\n />\r\n {children}\r\n </div>\r\n);\r\n","export * from \"./IconNameAttribute\";\r\n","import React, { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { Attribute, AttributeProps, Badge, BadgeVariant } from \"@multiweb/reactComponents\";\r\nimport { IconCode, OWDataType } from \"@multiweb/types/contracts\";\r\nimport { FrameAttributeSharedProps } from \"../../types\";\r\nimport { DocumentDownload } from \"../DocumentDownload\";\r\nimport { IconNameAttribute } from \"../IconNameAttribute\";\r\n\r\nexport type FrameAttributeComponentProps = Readonly<FrameAttributeSharedProps & AttributeProps & {\r\n /** Popisek atributu. */\r\n title?: string;\r\n /** Pevná ikona, která se zobrazí spolu s hodnotou atributu. */\r\n iconCode?: IconCode;\r\n}>;\r\n\r\n/** Komponenta vykreslující datové typy specifické pro framy. */\r\nexport const FrameAttributeComponent: FunctionComponent<FrameAttributeComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n attributeName,\r\n value,\r\n type,\r\n displayFormat = null,\r\n interactive = true,\r\n title,\r\n hasBackgroundAttr = false,\r\n iconCode,\r\n}) => {\r\n const modifiedType = type?.startsWith(\"Enum|\") ? OWDataType.enum : type;\r\n let innerComponent: ReactElement;\r\n switch (modifiedType) {\r\n case OWDataType.document:\r\n innerComponent = <DocumentDownload\r\n attributeValue={value.toLocaleString()}\r\n {...{ recordId, dataSourceKey, attributeName, interactive, hasBackgroundAttr, iconCode }} />;\r\n break;\r\n default:\r\n innerComponent = <Attribute\r\n {...{ value, attributeName, type, displayFormat, interactive, title, hasBackgroundAttr: iconCode ? false : hasBackgroundAttr, iconCode }} />;\r\n }\r\n\r\n if (iconCode) {\r\n return withIconName(innerComponent, iconCode, hasBackgroundAttr);\r\n } else if (hasBackgroundAttr) {\r\n return withBadge(innerComponent);\r\n } else {\r\n return innerComponent;\r\n }\r\n};\r\n\r\nconst withBadge = (component: React.ReactElement) => <Badge variant={BadgeVariant.backgroundAttr}>{component}</Badge>;\r\nconst withIconName = (component: React.ReactElement, iconCode: IconCode, hasBackgroundAttr: boolean) => <IconNameAttribute {...{ iconCode, hasBackgroundAttr }}>{component}</IconNameAttribute>;\r\n","export * from \"./ListAttributeComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getAttributeTypeByAttributeName, getConfigAttributeDisplayFormat, getRecordValueById } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getInteractive } from \"../../selectors\";\r\nimport { FrameAttributeSharedProps } from \"../../types\";\r\nimport { FrameAttributeComponent, FrameAttributeComponentProps } from \"../ListAttributeComponent\";\r\n\r\ntype StateProps = Pick<FrameAttributeComponentProps, \"displayFormat\" | \"type\" | \"interactive\" | \"value\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FrameAttributeSharedProps, IAppState> = (\r\n state,\r\n { dataSourceKey, attributeName, recordId },\r\n) => ({\r\n displayFormat: getConfigAttributeDisplayFormat(state, { dataSourceKey, attributeName }),\r\n type: getAttributeTypeByAttributeName(state, { dataSourceKey, attributeName }),\r\n interactive: getInteractive(state, dataSourceKey),\r\n value: getRecordValueById(state, { dataSourceKey, attributeName, recordId }),\r\n});\r\n\r\nexport const ListAttribute = connect(mapStateToProps)(FrameAttributeComponent);\r\n","export * from \"./ListAttribute\";\r\n","import React from \"react\";\r\n\r\nimport { ListAttribute } from \"../../ListAttribute\";\r\nimport { AttributeComponent } from \"../types\";\r\n\r\nexport const LiteListFrameAttribute: AttributeComponent = ({\r\n dataSourceKey,\r\n recordId,\r\n attributeName,\r\n inline,\r\n title,\r\n hasBackgroundAttr = false,\r\n iconCode,\r\n}) => (\r\n <ListAttribute\r\n {...{ dataSourceKey, recordId, attributeName, inline, title, hasBackgroundAttr, iconCode }}\r\n />\r\n);\r\n","/* eslint-disable react-redux/prefer-separate-component-file */\r\nimport React from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { BackgroundColorWrapper } from \"@multiweb/reactComponents\";\r\nimport { createGetBackgroundAttributeColor } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { AttributeComponent, AttributeProps } from \"../types\";\r\nimport { ConnectedAttributeHOCProps } from \"./connectAttribute\";\r\n\r\ntype StateProps = Pick<AttributeProps, \"backgroundAttributeColor\">;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, ConnectedAttributeHOCProps, IAppState> = () => (\r\n state,\r\n { dataSourceKey, recordId, attributeName },\r\n) => {\r\n const getBackgroundAttributeColor = createGetBackgroundAttributeColor();\r\n\r\n return {\r\n backgroundAttributeColor: getBackgroundAttributeColor(state, { dataSourceKey, attributeName, recordId }),\r\n };\r\n};\r\n\r\n/**\r\n * HOC, která obalí atribut pozadím.\r\n *\r\n * @param Attribute Komponenta atributu\r\n * @param enableBackgroundColor\r\n */\r\nexport const withBackgroundAttr = (\r\n AttributeComponent: AttributeComponent,\r\n enableBackgroundColor: boolean = true,\r\n) => {\r\n const ConnectedAttributeHOC: AttributeComponent = (props) => {\r\n const { backgroundAttributeColor } = props;\r\n if (enableBackgroundColor && backgroundAttributeColor) {\r\n return (\r\n <BackgroundColorWrapper color={backgroundAttributeColor}>\r\n <AttributeComponent {...props } hasBackgroundAttr={true} />\r\n </BackgroundColorWrapper>\r\n );\r\n } else {\r\n return (<AttributeComponent {...props} />);\r\n }\r\n };\r\n\r\n return connect(createMapStateToProps)(ConnectedAttributeHOC);\r\n};\r\n","export * from \"./connectAttribute\";\r\nexport * from \"./connectAttribute\";\r\nexport * from \"./LiteListFrameAttribute\";\r\nexport * from \"./withBackgroundAttr\";\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { CanRenderEmptyDecider, CanRenderEncryptedDecider } from \"./types\";\r\n\r\nconst { isNullOrEmpty, stringToEnumValue } = bridge;\r\n\r\n/** Rozhoduje o tom, jestli se má atribut vyrenderovat jako zašifrovaný */\r\nexport const defaultCanRenderEncrypted: CanRenderEncryptedDecider = (record, info) =>\r\n !!(record.encrypted?.value && info.encryptingAlowed);\r\n\r\n/** Rozhoduje o tom, jestli se atribut vyrenderuje, podle toho jestli má neprázdnou hodnotu */\r\nexport const defaultCanRenderEmpty: CanRenderEmptyDecider = (record, info) =>\r\n isNullOrEmpty(record[info.attributeName.toLowerCase()]?.value);\r\n\r\n/** Rozhoduje o tom, jestli se má vyrenderovat ikona podle toho, jestli se jedná o platnou hodnotu enumu IconCode */\r\nexport const defaultIconCanRenderEmpty: CanRenderEmptyDecider = (record, info) =>\r\n isNullOrEmpty(record[info.attributeName.toLowerCase()]?.value)\r\n || stringToEnumValue(IconCode, record[info.attributeName.toLowerCase()]?.value ?? \"\") === undefined;\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createGetAttributeNameIndex, createGetBackgroundAttributeColor, getBackgroundAttributeName } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getInteractive } from \"../../../selectors\";\r\nimport { FrameAttributeSharedProps } from \"../../../types\";\r\nimport { PlaceholderComponent, PlaceholderProps } from \"../types\";\r\n\r\ntype StateProps = Pick<\r\n PlaceholderProps,\r\n \"attributeIndex\" | \"interactive\" | \"backgroundAttributeName\"\r\n>;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, FrameAttributeSharedProps, IAppState> = () => {\r\n const getAttributeIndex = createGetAttributeNameIndex();\r\n const getBackgroundAttributeColor = createGetBackgroundAttributeColor();\r\n\r\n return (state, { dataSourceKey, recordId, attributeName }) => ({\r\n attributeIndex: getAttributeIndex(state, { dataSourceKey, attributeName }),\r\n interactive: getInteractive(state, dataSourceKey),\r\n backgroundAttributeColor: getBackgroundAttributeColor(state, { dataSourceKey, recordId, attributeName }),\r\n backgroundAttributeName: getBackgroundAttributeName(state, { dataSourceKey, attributeName }),\r\n });\r\n};\r\n\r\nexport const connectPlaceholder = (PlaceholderComponent: PlaceholderComponent) => connect(createMapStateToProps)(PlaceholderComponent);\r\n","import React from \"react\";\r\n\r\nimport { EmptyText } from \"@multiweb/reactComponents\";\r\nimport { LLF_EMPTY_VALUE } from \"../../../../constants\";\r\nimport { PlaceholderComponent } from \"../../types\";\r\n\r\nexport const LiteListFrameEmptyAttributePlaceholder: PlaceholderComponent = ({\r\n interactive,\r\n}) => <EmptyText content={LLF_EMPTY_VALUE} {...{ interactive }} />;\r\n","export * from \"./LiteListFrameEmptyAttributePlaceholder\";\r\n","import React from \"react\";\r\n\r\nimport { IconWithBackgroundAttr } from \"@multiweb/reactComponents\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { PlaceholderComponent } from \"../../types\";\r\n\r\nexport const LiteListFrameEncryptedAttributePlaceholder: PlaceholderComponent = ({\r\n interactive,\r\n}) => (\r\n <IconWithBackgroundAttr\r\n iconCode={IconCode.userLock}\r\n disabled={!interactive}\r\n />\r\n);\r\n","export * from \"./LiteListFrameEncryptedAttributePlaceholder\";\r\n","/**\r\n * Standardní výška skeletonu pro atributy umístěné do obsahové části řádku.\r\n */\r\nexport const COMMON_CONTENT_SKELETON_HEIGHT = \"0.75em\";\r\n","import React from \"react\";\r\n\r\nimport { getSkeletonPercentageWidthByIndex, Skeleton } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { PlaceholderComponent } from \"../../types\";\r\nimport { COMMON_CONTENT_SKELETON_HEIGHT } from \"./constants\";\r\n\r\nconst classNames = bemClassNames(\"lite-list-frame-skeleton-attribute-placeholder\");\r\n\r\nexport const LiteListFrameSkeletonAttributePlaceholder: PlaceholderComponent = ({\r\n attributeIndex = 0,\r\n}) => (\r\n <div className={classNames()}>\r\n <Skeleton\r\n height={COMMON_CONTENT_SKELETON_HEIGHT}\r\n width={getSkeletonPercentageWidthByIndex(attributeIndex)}\r\n />\r\n </div>\r\n);\r\n","export * from \"./LiteListFrameSkeletonAttributePlaceholder\";\r\n","export * from \"./connectPlaceholder\";\r\nexport * from \"./LiteListFrameEmptyAttributePlaceholder\";\r\nexport * from \"./LiteListFrameEncryptedAttributePlaceholder\";\r\nexport * from \"./LiteListFrameSkeletonAttributePlaceholder\";\r\n","import React, { FunctionComponent, useMemo } from \"react\";\r\n\r\nimport { IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { RecordType } from \"@multiweb/types/react\";\r\nimport { defaultCanRenderEmpty, defaultCanRenderEncrypted } from \"../../utils\";\r\nimport { LiteListFrameGeneralAttributeProps } from \"../LiteListFrameGeneralAttribute\";\r\nimport { connectAttribute, LiteListFrameAttribute, withBackgroundAttr } from \"./attribute\";\r\nimport {\r\n connectPlaceholder,\r\n LiteListFrameEmptyAttributePlaceholder,\r\n LiteListFrameEncryptedAttributePlaceholder,\r\n LiteListFrameSkeletonAttributePlaceholder,\r\n} from \"./placeholders\";\r\nimport { PlaceholderComponent } from \"./types\";\r\n\r\nexport type LiteListFrameGeneralAttributeComponentProps = LiteListFrameGeneralAttributeProps & {\r\n /** Záznam z modulu dataSource. */\r\n dataSourceAttributeInfo?: IPublicAttributeInfo;\r\n /** Obecné informace k danému atributu. */\r\n record?: RecordType;\r\n};\r\n\r\nexport const LiteListFrameGeneralAttributeComponent: FunctionComponent<LiteListFrameGeneralAttributeComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n attributeName,\r\n canRenderEncrypted = defaultCanRenderEncrypted,\r\n canRenderEmpty = defaultCanRenderEmpty,\r\n dataSourceAttributeInfo,\r\n record,\r\n SkeletonPlaceholder = LiteListFrameSkeletonAttributePlaceholder,\r\n EncryptedPlaceholder = LiteListFrameEncryptedAttributePlaceholder,\r\n EmptyPlaceholder = LiteListFrameEmptyAttributePlaceholder,\r\n AttributeComponent = LiteListFrameAttribute,\r\n inline = false,\r\n hasBackgroundAttr = false,\r\n iconCode,\r\n}) => {\r\n let PlaceholderComponent: PlaceholderComponent | undefined;\r\n if (!record || !dataSourceAttributeInfo) {\r\n PlaceholderComponent = SkeletonPlaceholder;\r\n } else if (canRenderEncrypted(record, dataSourceAttributeInfo)) {\r\n PlaceholderComponent = EncryptedPlaceholder;\r\n } else if (canRenderEmpty(record, dataSourceAttributeInfo)) {\r\n PlaceholderComponent = EmptyPlaceholder;\r\n }\r\n\r\n const result = useMemo(() => {\r\n if (PlaceholderComponent) {\r\n const Placeholder = connectPlaceholder(PlaceholderComponent);\r\n return <Placeholder {...{ dataSourceKey, recordId, attributeName }} />;\r\n } else {\r\n const Attribute = withBackgroundAttr(connectAttribute(AttributeComponent));\r\n return <Attribute {...{ dataSourceKey, recordId, attributeName, inline, hasBackgroundAttr, iconCode }} />;\r\n }\r\n },\r\n [PlaceholderComponent, AttributeComponent, attributeName, dataSourceKey, inline, recordId, hasBackgroundAttr, iconCode]);\r\n\r\n return result;\r\n};\r\n","export * from \"./attribute\";\r\nexport * from \"./LiteListFrameGeneralAttributeComponent\";\r\nexport * from \"./types\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { BackgroundAttributeProps } from \"@multiweb/reactComponents\";\r\nimport { getAttributeInfoByName, getRecordById } from \"@multiweb/reactCore/datasource\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { CanRenderEmptyDecider, CanRenderEncryptedDecider, FrameAttributeSharedProps } from \"../../types\";\r\nimport { AttributeComponent, LiteListFrameGeneralAttributeComponent, LiteListFrameGeneralAttributeComponentProps, PlaceholderComponent } from \"../LiteListFrameGeneralAttributeComponent\";\r\n\r\nexport type LiteListFrameGeneralAttributeProps = FrameAttributeSharedProps & BackgroundAttributeProps & {\r\n /**\r\n * Rozhodovací funkce, která vrací true, pokud má komponenta\r\n * vyrenderovat placeholder pro zašifrovaný záznam.\r\n */\r\n canRenderEncrypted?: CanRenderEncryptedDecider;\r\n /**\r\n * Rozhodovací funkce, která vrací true, pokud má komponenta\r\n * vyrenderovat placeholder pro prázdný záznam.\r\n */\r\n canRenderEmpty?: CanRenderEmptyDecider;\r\n /** Komponenta placeholderu pro načítaný záznam. */\r\n SkeletonPlaceholder?: PlaceholderComponent;\r\n /** Komponenta placeholderu pro zašifrovaný záznam. */\r\n EncryptedPlaceholder?: PlaceholderComponent;\r\n /** Komponenta placeholderu pro prázdný záznam. */\r\n EmptyPlaceholder?: PlaceholderComponent;\r\n /** Komponenta pro zobrazení atributu. */\r\n AttributeComponent?: AttributeComponent;\r\n /** Určuje, jestli se má atribut vyrenderovat na řádku společně s ostatními atributy. */\r\n inline?: boolean;\r\n /** Pevná ikona, která se zobrazí spolu s hodnotou atributu*/\r\n iconCode?: IconCode;\r\n};\r\n\r\ntype StateProps = Pick<\r\n LiteListFrameGeneralAttributeComponentProps,\r\n \"record\" | \"dataSourceAttributeInfo\"\r\n>;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LiteListFrameGeneralAttributeProps, IAppState> = (\r\n state,\r\n { dataSourceKey, attributeName, recordId },\r\n) => ({\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n dataSourceAttributeInfo: getAttributeInfoByName(state, { dataSourceKey, attributeName }),\r\n});\r\n\r\nexport const LiteListFrameGeneralAttribute = connect(mapStateToProps)(LiteListFrameGeneralAttributeComponent);\r\n","export * from \"./LiteListFrameGeneralAttribute\";\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { AbstractRenderer, ILLFAttributeRenderer } from \"@multiweb/customization\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { createDataSourceAttribute } from \"@multiweb/reactUtils\";\r\nimport { LiteListFrameGeneralAttribute, LiteListFrameGeneralAttributeProps } from \"../../../../LiteListFrameGeneralAttribute\";\r\n\r\nconst { stringToBoolean, getExtendedPropertiesFromElement } = bridge;\r\n\r\nexport abstract class LLFAbstractRenderer extends AbstractRenderer<LiteListFrameGeneralAttributeProps> implements ILLFAttributeRenderer {\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeProps> {\r\n return LiteListFrameGeneralAttribute;\r\n }\r\n\r\n // @ts-ignore\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n public getAttributes(element: HTMLElement, ...args: unknown[]): ReadonlyArray<IDataSourceAttribute> {\r\n const attributeName = element.getAttribute(\"data-attrname\") ?? \"\";\r\n\r\n return [\r\n createDataSourceAttribute(attributeName, {\r\n isIcon: stringToBoolean(element.getAttribute(\"data-isicon\")),\r\n iconName: element.getAttribute(\"data-iconname\"),\r\n locKey: element.getAttribute(\"data-lockey\"),\r\n displayFormat: element.getAttribute(\"data-displayformat\"),\r\n hidden: !stringToBoolean(element.getAttribute(\"data-visible\"), true),\r\n backgroundAttrName: element.getAttribute(\"data-backgroundattr\"),\r\n attributeRendererKey: this.key,\r\n trimValue: true,\r\n extendedProperties: getExtendedPropertiesFromElement(element),\r\n }),\r\n ];\r\n }\r\n}\r\n","import { LLFAbstractRenderer } from \"./LLFAbstractRenderer\";\r\n\r\n/**\r\n * Defaultní renderer. Používá se pro renderování klasického atributu nebo\r\n * pokud atribut nemá jiný svůj renderer.\r\n */\r\nexport class LLFDefaultAttributeRenderer extends LLFAbstractRenderer {\r\n public canRender(_element: HTMLElement): boolean {\r\n return true;\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { IconWithBackgroundAttr, Layout } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { AttributeComponent } from \"../../LiteListFrameGeneralAttributeComponent\";\r\n\r\nconst { stringToEnumValue } = bridge;\r\n\r\nexport const LiteListFrameIconAttribute: AttributeComponent = ({\r\n record,\r\n recordId,\r\n dataSourceAttribute,\r\n dataSourceAttributeInfo,\r\n interactive,\r\n title,\r\n hasBackgroundAttr,\r\n}) => {\r\n if (!record || !dataSourceAttribute || !dataSourceAttributeInfo) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Layout\r\n key={recordId}>\r\n <IconWithBackgroundAttr\r\n //stringToEnumValue může vracet undefined, proto přetypování as. Reálně to ale nastat nemůže, iconCanRenderDecider by měl zabránit tomu aby se sem dostala prázdná hodnota\r\n iconCode={stringToEnumValue(IconCode, record[dataSourceAttribute.attributeName].value) as IconCode }\r\n disabled={!interactive}\r\n hasBackgroundAttr={hasBackgroundAttr}\r\n {...{ title }}\r\n />\r\n </Layout>\r\n );\r\n};\r\n","export * from \"./LiteListFrameIconAttribute\";\r\n","import React from \"react\";\r\n\r\nimport { Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { PlaceholderComponent } from \"../../../LiteListFrameGeneralAttributeComponent\";\r\n\r\nconst classNames = bemClassNames(\"empty-icon-component\");\r\n\r\nexport const LiteListFrameEmptyIconAttributePlaceholder: PlaceholderComponent = () =>\r\n <span className={classNames()}>\r\n <Layout spacingSizeHorizontal={SpacingSize.xs} />\r\n </span>;\r\n","export * from \"./LiteListFrameEmptyIconAttributePlaceholder\";\r\n","import React from \"react\";\r\n\r\nimport { Layout, Skeleton, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { PlaceholderComponent } from \"../../../LiteListFrameGeneralAttributeComponent\";\r\n\r\nexport const LiteListFrameSkeletonIconAttributePlaceholder: PlaceholderComponent = ({\r\n backgroundAttributeName,\r\n}) => (\r\n <Layout spacingSizeHorizontal={backgroundAttributeName ? SpacingSize.xxs : undefined}>\r\n <Skeleton circle height={\"var(--icon-small-font-size)\"} width={\"var(--icon-small-font-size)\"} />\r\n </Layout>\r\n);\r\n","export * from \"./LiteListFrameSkeletonIconAttributePlaceholder\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FrameAttributeSharedProps } from \"../../types\";\r\nimport { defaultIconCanRenderEmpty } from \"../../utils\";\r\nimport { LiteListFrameGeneralAttribute } from \"../LiteListFrameGeneralAttribute\";\r\nimport { LiteListFrameIconAttribute } from \"./attribute\";\r\nimport { LiteListFrameEmptyIconAttributePlaceholder } from \"./placeholders/LiteListFrameEmptyIconAttributePlaceholder\";\r\nimport { LiteListFrameSkeletonIconAttributePlaceholder } from \"./placeholders/LiteListFrameSkeletonIconAttributePlaceholder\";\r\n\r\nexport type LiteListFrameIconAttributeComponentProps = FrameAttributeSharedProps;\r\n\r\nexport const LiteListFrameIconAttributeComponent: FunctionComponent<LiteListFrameIconAttributeComponentProps> = (\r\n props,\r\n) => (\r\n <LiteListFrameGeneralAttribute\r\n {...props}\r\n EmptyPlaceholder={LiteListFrameEmptyIconAttributePlaceholder}\r\n SkeletonPlaceholder={LiteListFrameSkeletonIconAttributePlaceholder}\r\n AttributeComponent={LiteListFrameIconAttribute}\r\n canRenderEmpty = {defaultIconCanRenderEmpty}\r\n />\r\n);\r\n","export * from \"./LiteListFrameIconAttributeComponent\";\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { LiteListFrameGeneralAttributeProps } from \"../../../../LiteListFrameGeneralAttribute\";\r\nimport { LiteListFrameIconAttributeComponent } from \"../../../../LiteListFrameIconAttributeComponent\";\r\nimport { LLFAbstractRenderer } from \"./LLFAbstractRenderer\";\r\n\r\nconst { stringToBoolean } = bridge;\r\n\r\nexport class LLFIconAttributeRenderer extends LLFAbstractRenderer {\r\n public canRender(element: HTMLElement): boolean {\r\n return stringToBoolean(element.getAttribute(\"data-isicon\"), false);\r\n }\r\n\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeProps> {\r\n return LiteListFrameIconAttributeComponent;\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { Attribute } from \"@multiweb/reactComponents\";\r\nimport { AttributeComponent } from \"../../../components\";\r\n\r\nexport const LOVShowAttrItemComponent: AttributeComponent = ({\r\n dataSourceKey,\r\n attributeName,\r\n title,\r\n hasBackgroundAttr = false,\r\n iconCode,\r\n record,\r\n dataSourceAttributeInfo,\r\n interactive,\r\n}) => (\r\n <Attribute {...{ value: record?.[attributeName].value, type: dataSourceAttributeInfo?.type, dataSourceKey, attributeName, title, iconCode, hasBackgroundAttr, interactive }} ellipsis={false} />\r\n);\r\n","export * from \"./LOVShowAttrItemComponent\";\r\n","import React, { FunctionComponent, MouseEvent, ReactNode, useCallback } from \"react\";\r\n\r\nimport { Text } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames, EMPTY_OBJECT, transformKeysToParamCase } from \"@multiweb/reactUtils\";\r\nimport { OpenEditWindowParams } from \"@multiweb/types/react\";\r\nimport { LiteListFrameGeneralAttribute } from \"../../../components/LiteListFrameGeneralAttribute\";\r\nimport { FrameAttributeSharedProps } from \"../../../types\";\r\nimport { LOVShowAttrItemComponent } from \"../LOVShowAttrItemComponent\";\r\n\r\nconst { openAttributeEditWindow, stopPropagation } = bridge;\r\n\r\nexport type LOVAttributeComponentProps = {\r\n /** Názvy atributů zobrazených v jedné buňce. */\r\n showAttrs: string[];\r\n /** Informace potřebné k otevření editačního okna. */\r\n openEditWindowParams?: OpenEditWindowParams;\r\n /** Určuje, zda je komponenta vizuálně aktivní a zda s ní lze pracovat. */\r\n interactive?: boolean;\r\n} & FrameAttributeSharedProps;\r\n\r\nconst classNames = bemClassNames(\"lov-attribute-component\");\r\n\r\n/**\r\n * Komponenta slouží pro zobrazení jednotlivých atributů LOV atributu.\r\n */\r\nexport const LOVAttributeComponent: FunctionComponent<LOVAttributeComponentProps> = ({\r\n recordId,\r\n dataSourceKey,\r\n attributeName,\r\n showAttrs,\r\n interactive = true,\r\n openEditWindowParams,\r\n}) => {\r\n const hasEditWindow = !!openEditWindowParams;\r\n const onClick = useCallback(\r\n (e: MouseEvent<HTMLSpanElement>) => {\r\n if (openEditWindowParams) {\r\n openAttributeEditWindow(openEditWindowParams);\r\n }\r\n stopPropagation(e);\r\n },\r\n [openEditWindowParams],\r\n );\r\n\r\n const dividedAttrValues: Array<ReactNode> = [];\r\n showAttrs.forEach((showAttrName, index) => {\r\n const attrName = attributeName + \".\" + showAttrName.toLowerCase();\r\n const key = `${attrName}_${index}`;\r\n dividedAttrValues.push(\r\n <LiteListFrameGeneralAttribute\r\n attributeName={attrName}\r\n inline={true}\r\n AttributeComponent={LOVShowAttrItemComponent}\r\n {...{ key, dataSourceKey, recordId }}\r\n />,\r\n );\r\n\r\n if (index !== showAttrs.length - 1) {\r\n dividedAttrValues.push(\r\n <span key={`${key}_separator`} className={classNames(\"separator\")}>\r\n <Text value={\" | \"} disabled={!interactive} />\r\n </span>,\r\n );\r\n }\r\n });\r\n\r\n return (\r\n <span\r\n className={classNames(transformKeysToParamCase({ ellipsis: true, hasEditWindow, disabled: !interactive }))}\r\n {...(interactive ? { onClick } : EMPTY_OBJECT)}\r\n aria-disabled={!interactive}\r\n >\r\n {dividedAttrValues}\r\n </span>\r\n );\r\n};\r\n","export * from \"./LOVAttributeComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getInteractive } from \"../../../selectors\";\r\nimport { LOVAttributeComponent, LOVAttributeComponentProps } from \"../../components/LOVAttributeComponent\";\r\n\r\nexport type LOVAttributeProps = Omit<LOVAttributeComponentProps, \"interactive\">;\r\n\r\ntype StateProps = Pick<LOVAttributeComponentProps, \"interactive\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LOVAttributeProps, IAppState> = (\r\n state,\r\n { dataSourceKey },\r\n) => ({\r\n interactive: getInteractive(state, dataSourceKey),\r\n});\r\n\r\nexport const LOVAttribute = connect(mapStateToProps)(LOVAttributeComponent);\r\n","export * from \"./LOVAttribute\";\r\n","import { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\n\r\n/**\r\n * Rozšířené informace o LOV atributu.\r\n */\r\nexport interface IDataSourceLOVAttribute extends IDataSourceAttribute {\r\n /** Atributy zobrazené v jedné buňce (například u LOVAttribute).*/\r\n showAttrs: string[];\r\n /** Název formuláře k otevření (například u LOVAttribute). */\r\n editWindow?: string;\r\n}\r\n\r\nexport class IDataSourceLOVAttribute {\r\n private static _properties: (keyof IDataSourceLOVAttribute)[] = [\"showAttrs\", \"editWindow\"];\r\n private static _interfaces = [IDataSourceAttribute];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._properties.every((value) => Reflect.has(instance, value)) &&\r\n this._interfaces.every((_interface) => instance instanceof _interface);\r\n }\r\n}\r\n","import { OpenEditWindowParams } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Vrací parametry potřebné k otevření editačního okna.\r\n * Pokud nejsou definovány showAttrs a editWindow, vrací undefined.\r\n * @param dataSourceKey Unikátní klíč pro DataSource.\r\n * @param recordId Unikátní klíč pro záznam.\r\n * @param attributeId Unikátní klíč pro atribut.\r\n * @param showAttrs Atributy zobrazené v jedné buňce (například u LOVAttribute).\r\n * @param editWindow Název formuláře k otevření.\r\n */\r\nexport const createOpenEditWindowParams = (\r\n dataSourceKey: string,\r\n recordId: string,\r\n attributeId: string,\r\n showAttrs: string[] | null = null,\r\n editWindow: string | null = null,\r\n): OpenEditWindowParams | undefined => {\r\n if (showAttrs && editWindow) {\r\n return {\r\n dataSourceKey,\r\n recordId,\r\n attributeId,\r\n editWindow,\r\n };\r\n }\r\n return undefined;\r\n};\r\n","import React from \"react\";\r\n\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { AttributeComponent } from \"../../../../components\";\r\nimport { LOVAttribute } from \"../../../components/LOVAttribute\";\r\nimport { IDataSourceLOVAttribute } from \"../types\";\r\nimport { createOpenEditWindowParams } from \"../utils\";\r\n\r\nexport const LiteListFrameLOVAttribute: AttributeComponent = ({\r\n dataSourceKey,\r\n recordId,\r\n record,\r\n dataSourceAttribute,\r\n dataSourceAttributeInfo,\r\n interactive,\r\n}) => {\r\n if (!record || !dataSourceAttribute || !dataSourceAttributeInfo || !(dataSourceAttribute instanceof IDataSourceLOVAttribute)) {\r\n return null;\r\n }\r\n\r\n const { attributeName, editWindow } = dataSourceAttribute;\r\n const displayFormat = dataSourceAttribute.displayFormat ?? undefined;\r\n const showAttrs = dataSourceAttribute.showAttrs ?? EMPTY_ARRAY as string[];\r\n\r\n const openEditWindowParams = createOpenEditWindowParams(\r\n dataSourceKey,\r\n recordId,\r\n record?.[attributeName]?.value,\r\n showAttrs,\r\n editWindow,\r\n );\r\n\r\n return (\r\n <LOVAttribute\r\n key={recordId}\r\n {...{\r\n dataSourceKey,\r\n recordId,\r\n record,\r\n attributeName,\r\n showAttrs,\r\n dataSourceAttributeInfo,\r\n displayFormat,\r\n interactive,\r\n openEditWindowParams,\r\n }}\r\n />\r\n );\r\n};\r\n","export * from \"./LiteListFrameLOVAttribute\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { LiteListFrameGeneralAttribute } from \"../../../components/LiteListFrameGeneralAttribute\";\r\nimport { CanRenderEmptyDecider, FrameAttributeSharedProps } from \"../../../types\";\r\nimport { defaultCanRenderEmpty } from \"../../../utils\";\r\nimport { LiteListFrameLOVAttribute } from \"./attribute\";\r\n\r\nexport type LiteListFrameLOVAttributeComponentProps = FrameAttributeSharedProps;\r\n\r\nconst canRenderEmpty: CanRenderEmptyDecider = (record, info) => {\r\n const defaultResult = defaultCanRenderEmpty(record, info);\r\n const newResult = record[info.attributeName]?.value == \"0\";\r\n\r\n return defaultResult || newResult;\r\n};\r\n\r\nexport const LiteListFrameLOVAttributeComponent: FunctionComponent<LiteListFrameLOVAttributeComponentProps> = (\r\n props,\r\n) => (\r\n <LiteListFrameGeneralAttribute\r\n {...props}\r\n canRenderEmpty={canRenderEmpty}\r\n AttributeComponent={LiteListFrameLOVAttribute}\r\n hasBackgroundAttr={false}\r\n />\r\n);\r\n","export * from \"./LiteListFrameLOVAttributeComponent\";\r\nexport * from \"./types\";\r\n","export * from \"./components/LiteListFrameLOVAttributeComponent\";\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { createDataSourceAttribute } from \"@multiweb/reactUtils\";\r\nimport { IDataSourceLOVAttribute, LiteListFrameLOVAttributeComponent } from \"../../../../../LOV\";\r\nimport { LiteListFrameGeneralAttributeProps } from \"../../../../LiteListFrameGeneralAttribute\";\r\nimport { LLFAbstractRenderer } from \"./LLFAbstractRenderer\";\r\n\r\nconst { stringToBoolean } = bridge;\r\n\r\nexport class LLFLOVAttributeRenderer extends LLFAbstractRenderer {\r\n private readonly _controlString: string = \"LOVAttribute\";\r\n\r\n public override canRender(element: HTMLElement): boolean {\r\n return element.getAttribute(\"data-tscitem\") === this._controlString;\r\n }\r\n\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeProps> {\r\n return LiteListFrameLOVAttributeComponent;\r\n }\r\n\r\n public override getAttributes(element: Element): ReadonlyArray<IDataSourceAttribute> {\r\n const showAttrs = element.getAttribute(\"data-showattrs\")?.split(\";\");\r\n if (!showAttrs) {\r\n throw new Error(\"[LOVAttributeRenderer] Data attribute \\\"showAttrs\\\" cannot be empty.\");\r\n }\r\n\r\n const attributeName = element.getAttribute(\"data-attrname\") ?? \"\";\r\n const datasourceAttributes: IDataSourceAttribute[] = [];\r\n\r\n datasourceAttributes.push(\r\n this._createDataSourceLOVAttribute(attributeName, showAttrs, {\r\n locKey: element.getAttribute(\"data-lockey\"),\r\n displayFormat: element.getAttribute(\"data-displayformat\"),\r\n hidden: !stringToBoolean(element.getAttribute(\"data-visible\"), true),\r\n editWindow: element.getAttribute(\"data-editwindow\") ?? undefined,\r\n attributeRendererKey: this.key,\r\n }),\r\n );\r\n\r\n showAttrs?.forEach(showAttrName => {\r\n const attrName = attributeName + \".\" + showAttrName;\r\n datasourceAttributes.push(\r\n createDataSourceAttribute(attrName, {\r\n displayFormat: element.getAttribute(\"data-displayformat\"),\r\n hidden: true,\r\n }),\r\n );\r\n });\r\n\r\n return datasourceAttributes;\r\n }\r\n\r\n /**\r\n * Vytvoří LOV datasource atribut se zadaným názvem, případně i s dalšími předanými vlastnostmi. Do ostatních vlastností doplní null.\r\n * @param attributeName Název atributu\r\n * @param otherParams Další vlastnosti atributu\r\n */\r\n private _createDataSourceLOVAttribute(\r\n attributeName: string,\r\n showAttrs: string[],\r\n otherParams?: Partial<Omit<IDataSourceLOVAttribute, \"attributeName\">>,\r\n ): IDataSourceLOVAttribute {\r\n return {\r\n ...createDataSourceAttribute(attributeName, otherParams),\r\n showAttrs,\r\n editWindow: otherParams?.editWindow,\r\n };\r\n }\r\n}\r\n","export * from \"./LLFAbstractRenderer\";\r\nexport * from \"./LLFDefaultRenderer\";\r\nexport * from \"./LLFIconRenderer\";\r\nexport * from \"./LLFLOVRenderer\";\r\n","/** Role */\r\nexport const LOC_KEY_ROLE = \"GUI-325062\";\r\n\r\n/** Uživatel */\r\nexport const LOC_KEY_USER = \"GUI-650969\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { BackgroundColorWrapper, Badge, BadgeVariant, FontWeight, LocalizationLoader, LocalizationProvider, Skeleton, Text } from \"@multiweb/reactComponents\";\r\nimport { ParticipantType } from \"@multiweb/types/multiweb\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_ROLE, LOC_KEY_USER } from \"./lockeys\";\r\nimport { ParticipantTypeAttributeProps } from \"./ParticipantTypeAttribute\";\r\n\r\nexport const ParticipantTypeAttributeComponent: FunctionComponent<ParticipantTypeAttributeProps> = ({\r\n record,\r\n attributeName,\r\n}) => {\r\n const participantType: ParticipantType = record?.[attributeName]?.value;\r\n const backgroundColor: FlagColor = participantType === ParticipantType.Role ? \"red\" : \"aqua\";\r\n const locKey = participantType === ParticipantType.Role ? LOC_KEY_ROLE : LOC_KEY_USER;\r\n\r\n if (!record) {\r\n return (\r\n <Skeleton width={30} height={20} />\r\n );\r\n }\r\n\r\n return (\r\n <BackgroundColorWrapper color={backgroundColor}>\r\n <Badge variant={BadgeVariant.backgroundAttr}>\r\n <LocalizationLoader locKey={locKey}>\r\n <LocalizationProvider locKey={locKey}>\r\n {({ text }) => <Text fontWeight={FontWeight.bold} value={text}></Text>}\r\n </LocalizationProvider>\r\n </LocalizationLoader>\r\n </Badge>\r\n </BackgroundColorWrapper>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getAttributeInfoByName, getRecordById } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState, RecordType } from \"@multiweb/types/react\";\r\nimport { FrameAttributeSharedProps } from \"../../../../types\";\r\nimport { ParticipantTypeAttributeComponent } from \"./ParticipantTypeAttributeComponent\";\r\n\r\nexport type ParticipantTypeAttributeProps = FrameAttributeSharedProps & {\r\n record?: RecordType;\r\n};\r\n\r\ntype StateProps = Pick<ParticipantTypeAttributeProps, \"record\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ParticipantTypeAttributeProps, IAppState> = (\r\n state,\r\n { dataSourceKey, attributeName, recordId },\r\n) => ({\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n dataSourceAttributeInfo: getAttributeInfoByName(state, { dataSourceKey, attributeName }),\r\n});\r\n\r\nexport const ParticipantTypeAttribute = connect(mapStateToProps)(ParticipantTypeAttributeComponent);\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { LiteListFrameGeneralAttributeComponentProps } from \"../../../../components\";\r\nimport { LLFAbstractRenderer } from \"../../../../components/LiteListFrame/LLFCustomization/renderers/attribute\";\r\nimport { ParticipantTypeAttribute } from \"./ParticipantTypeAttribute\";\r\n\r\nexport class ParticipantTypeAttributeRenderer extends LLFAbstractRenderer {\r\n public override canRender(): boolean {\r\n return false; // Nepoužívá elementy atributů, stačí mít nastavený klíč v dataSource\r\n }\r\n\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeComponentProps> {\r\n return ParticipantTypeAttribute;\r\n }\r\n}\r\n","export * from \"./ParticipantTypeAttributeRenderer\";\r\n","import { ParticipantType } from \"@multiweb/types/multiweb\";\r\n\r\nexport interface IParticipantStateInformation {\r\n /**\r\n * Typ uživatele / role.\r\n */\r\n readonly participanttype: ParticipantValueType<ParticipantType>;\r\n /**\r\n * Identifikace uživatele / role.\r\n */\r\n readonly id: ParticipantValueType<number>;\r\n /**\r\n * Název uživatele / role.\r\n */\r\n readonly name: ParticipantValueType<string>;\r\n}\r\n\r\nexport interface IUserParticipantInformation extends IParticipantStateInformation {\r\n /**\r\n * Fyzické jméno uživatele.\r\n */\r\n readonly personname: ParticipantValueType<string>;\r\n}\r\n\r\nexport interface IRoleParticipantsInformation extends IParticipantStateInformation {\r\n /**\r\n * Název role.\r\n */\r\n readonly actualrolename: ParticipantValueType<string>;\r\n /**\r\n * Uživatelé role.\r\n */\r\n readonly roleusers: ParticipantValueType<IUserParticipantInformation[]>;\r\n}\r\n\r\ntype ParticipantValueType<T> = ({ value: T});\r\n\r\nexport { ParticipantCustomMethodDataType } from \"./datasources/participantsDataSource\";\r\n","import { IRoleParticipantsInformation } from \"@multiweb/reactCore/workflow/types\";\r\nimport { RecordType, RootNodeTypedObject, TypedObject } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Převede klíče objektů na malá písmena a hodnotu převede do struktury { value: hodnota },\r\n * pokud je hodnota pole tak projde potomky a zavola na ně sama sebe\r\n *\r\n * @param rawParticipantsData\r\n */\r\nexport const mapKeyToLowerArray = <T extends TypedObject<any>>(rawParticipantsData: readonly T[]): RecordType[] => {\r\n return rawParticipantsData\r\n .map(row =>\r\n Object.fromEntries(\r\n Object.keys(row)\r\n .map(key =>\r\n [\r\n key.toLowerCase(),\r\n ({\r\n value:\r\n Array.isArray(row[key])\r\n ? mapKeyToLowerArray(row[key])\r\n : row[key],\r\n }),\r\n ],\r\n ),\r\n ),\r\n );\r\n};\r\n\r\n/**\r\n * Převede pole uživatelů do struktury: nadřazená role a její potomci a potomci, kteří jsou ve více rolích.\r\n * @param participantsData data k vytvoření uzlových záznamů.\r\n */\r\nexport const createRootNodesMaps = (participantsData: IRoleParticipantsInformation[]) => {\r\n const owners: RootNodeTypedObject = {};\r\n const childOwnerInvertedMap: { [key: string]: string[] } = {};\r\n\r\n for (const data of participantsData) {\r\n const ownerId: string = data.id.value.toString();\r\n if (data?.roleusers && data?.roleusers.value.length > 0) {\r\n owners[ownerId] = { children: [], inRootNodes: [] }; // Pokud role má uživatele, jedná se o uzlový záznam.\r\n for (const user of data.roleusers.value) {\r\n const userId = user.id.value.toString();\r\n owners[ownerId].children.push(userId);\r\n\r\n // Pomocná struktura pro rychlé zjištění zda uživatel není i v jiné roli.\r\n if (!childOwnerInvertedMap[userId]) {\r\n childOwnerInvertedMap[userId] = [ownerId];\r\n } else {\r\n childOwnerInvertedMap[userId].push(ownerId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const childrenInOtherRootNodes: RootNodeTypedObject = {};\r\n\r\n for (const child in childOwnerInvertedMap) {\r\n if (childOwnerInvertedMap[child].length > 1) {\r\n childrenInOtherRootNodes[child] = { children: [], inRootNodes: childOwnerInvertedMap[child] }; // Pokud je uživatel ve více rolích, tak se opět jedná o uzlový záznam.\r\n }\r\n }\r\n\r\n return { ...owners, ...childrenInOtherRootNodes };\r\n};\r\n","import { call, put } from \"redux-saga/effects\";\r\n\r\nimport { getCustomization } from \"@multiweb/customization\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { createAddRootNodes, CustomMethodDataType, LOAD_DATA, REFRESH_DATA } from \"@multiweb/reactCore/datasource\";\r\nimport { RecordType, SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport type { IOWObjectList } from \"../../../../../OW.Remoting/Remoting/DataTypes/IOWObjectList\";\r\nimport { createRootNodesMaps, mapKeyToLowerArray } from \"../utils\";\r\n\r\nconst {\r\n getActivityParticipants,\r\n} = bridge;\r\n\r\nexport const CUSTOM_DS_WF_PARTICIPANTS = \"CUSTOM_DS_WF_PARTICIPANTS\";\r\n\r\nconst loadParticipantsSaga: SagaWithReturnType<\r\n [string, IOWObjectList, string],\r\n RecordType[]\r\n > = function* loadParticipantsSaga(instanceId, objectList, actionId) {\r\n const rawData: SagaYieldReturn<typeof getActivityParticipants> = yield call(getActivityParticipants, instanceId, objectList, actionId);\r\n const caseInsensitiveData: SagaYieldReturn<typeof mapKeyToLowerArray> = yield call(mapKeyToLowerArray, rawData);\r\n\r\n const rootNodesData: SagaYieldReturn<typeof createRootNodesMaps> = yield call(createRootNodesMaps, caseInsensitiveData as any);\r\n\r\n yield put(createAddRootNodes(actionId, rootNodesData));\r\n\r\n return caseInsensitiveData;\r\n };\r\n\r\ntype extendedFuncs = typeof LOAD_DATA | typeof REFRESH_DATA;\r\nexport type ParticipantCustomMethodDataType = CustomMethodDataType<extendedFuncs, string | IOWObjectList>;\r\n\r\ngetCustomization().core.datasource.registerMethodToDataSource(LOAD_DATA, loadParticipantsSaga, CUSTOM_DS_WF_PARTICIPANTS);\r\ngetCustomization().core.datasource.registerMethodToDataSource(REFRESH_DATA, loadParticipantsSaga, CUSTOM_DS_WF_PARTICIPANTS);\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { getDataSourceInstance } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState, RootNodeTypedObject } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Vrátí pole rootNodes\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getRootNodes: Selector<IAppState, RootNodeTypedObject | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.multiselect.rootNodes;\r\n\r\n/**\r\n * Projde RootNodes a získá celkový počet dětí.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @returns Celkový počet dětí v RootNodes.\r\n */\r\nexport const createGetRootNodesChildrenCount = () =>\r\n createSelector<IAppState, string, ReturnType<typeof getRootNodes>, number | undefined>(\r\n (state, dataSourceKey) => getRootNodes(state, dataSourceKey),\r\n (rootNodes) => {\r\n if (!rootNodes) {\r\n return undefined;\r\n }\r\n\r\n const rootNodesArr = Object.values(rootNodes);\r\n\r\n return rootNodesArr.reduce((accumulator, currentVal) => {\r\n return accumulator += currentVal?.children?.length ?? 0;\r\n }, 0);\r\n },\r\n );\r\n","export { CUSTOM_DS_WF_PARTICIPANTS } from \"./datasources/participantsDataSource\";\r\nexport {\r\n createGetRootNodesChildrenCount,\r\n getRootNodes,\r\n} from \"./selectors\";\r\nexport * from \"./types\";\r\nexport * from \"./utils\";\r\n","import { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport const GRID_PARTICIPANTS_ITEM_CLASS_NAME = bemClassNames(\"grid-participants-item\");\r\n","import React, { FunctionComponent, KeyboardEventHandler, useRef } from \"react\";\r\n\r\nimport { AlignItems, CheckBoxField, FlexDirection, FlexGrow, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, DataRowElementSiblings, getDataRowSibling, Key, TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { GRID_PARTICIPANTS_ITEM_CLASS_NAME } from \"../GridParticipantsItem/constants\";\r\nimport { RoleUserRowProps } from \"../RoleUserRow/RoleUserRow\";\r\n\r\nexport type RoleUserRowComponentProps = RoleUserRowProps & {\r\n /** Příznak, zda je záznam zaškrtnut. */\r\n isChecked?: boolean;\r\n /** Akce pro zaškrtnutí záznamu. */\r\n toggleChecked: () => void;\r\n /** Děti pro vykreslení. */\r\n children?: React.ReactElement[];\r\n};\r\n\r\nconst classNames = bemClassNames(\"role-user-row\");\r\n\r\nexport const RoleUserRowComponent: FunctionComponent<RoleUserRowComponentProps> = ({\r\n isChecked,\r\n toggleChecked,\r\n children,\r\n}) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleOnKeyPressed: KeyboardEventHandler = (event) => {\r\n const { key } = event;\r\n\r\n switch (key) {\r\n case Key.ArrowDown: {\r\n event.preventDefault();\r\n const newFocusElement = document.activeElement?.nextElementSibling as HTMLElement;\r\n\r\n if (!newFocusElement) {\r\n const elem = containerRef.current?.closest(`.${GRID_PARTICIPANTS_ITEM_CLASS_NAME()}`) as HTMLElement;\r\n const nextParentRow = getDataRowSibling(DataRowElementSiblings.nextElementSibling, elem)?.firstChild as HTMLElement;\r\n\r\n if (nextParentRow) {\r\n nextParentRow.focus();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n newFocusElement.focus();\r\n return true;\r\n }\r\n case Key.ArrowUp: {\r\n event.preventDefault();\r\n const newFocusElement = document.activeElement?.previousElementSibling as HTMLElement;\r\n\r\n if (!newFocusElement) {\r\n const elem = containerRef.current?.closest(`.${GRID_PARTICIPANTS_ITEM_CLASS_NAME()}`)?.firstChild as HTMLElement;\r\n\r\n if (elem) {\r\n elem.focus();\r\n }\r\n return true;\r\n }\r\n\r\n newFocusElement.focus();\r\n return true;\r\n }\r\n case Key.Space: {\r\n event.preventDefault();\r\n toggleChecked();\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n return (\r\n <div className={classNames()} onKeyDown={handleOnKeyPressed} tabIndex={TAB_INDEX_FOCUSABLE_ONLY} role={Role.row} onClick={toggleChecked} ref={containerRef} aria-selected={isChecked ?? false} >\r\n <Layout alignItems={AlignItems.center}>\r\n <Layout spacingSizeRight={SpacingSize.m} alignItems={AlignItems.center}>\r\n <CheckBoxField\r\n value={isChecked}\r\n disabled={false}\r\n qa={\"userRowCheckbox\"}\r\n />\r\n </Layout>\r\n <Layout flexGrow={FlexGrow.one} flexDirection={FlexDirection.column}>\r\n { children }\r\n </Layout>\r\n </Layout>\r\n </div>\r\n );\r\n};\r\n","export * from \"./RoleUserRowComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createToggleSelectedRecordCheckAction, isRecordChecked } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { FrameAttributeSharedProps } from \"../../../types\";\r\nimport { RoleUserRowComponent, RoleUserRowComponentProps } from \"../RoleUserRowComponent\";\r\n\r\nexport type RoleUserRowProps = FrameAttributeSharedProps & {\r\n /** Identifikace uživatele role. */\r\n id: string;\r\n};\r\n\r\ntype StateProps = Pick<RoleUserRowComponentProps, \"isChecked\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, RoleUserRowProps, IAppState> = (\r\n state,\r\n { dataSourceKey, id },\r\n) => ({\r\n isChecked: isRecordChecked(state, { dataSourceKey, recordId: id }),\r\n});\r\n\r\ntype DispatchProps = Pick<\r\n RoleUserRowComponentProps,\r\n | \"toggleChecked\"\r\n>;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, RoleUserRowProps> = (\r\n dispatch,\r\n { dataSourceKey, recordId, id },\r\n) => ({\r\n toggleChecked: () => {\r\n dispatch(createToggleSelectedRecordCheckAction(dataSourceKey, id, recordId));\r\n },\r\n});\r\n\r\nexport const RoleUserRow = connect(mapStateToProps, mapDispatchToProps)(RoleUserRowComponent);\r\n","export * from \"./RoleUserRow\";\r\n","import { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport const ROLE_USERS_ATTRIBUTE_CLASS_NAME = bemClassNames(\"role-users-attribute\");\r\n","export { ROLE_USERS_ATTRIBUTE_CLASS_NAME } from \"./customization/attributes/RoleUsers/constants\";\r\n\r\n/**\r\n * Unikátní klíč rendereru pro GridParticipants template.\r\n */\r\nexport const GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY = \"grid-participants\";\r\n/**\r\n * Unikátní klíč rendereru pro GridParticipants Role user template.\r\n */\r\nexport const GRID_PARTICIPANTS_ROLE_USERS_TEMPLATE_RENDERER_KEY = \"grid-participants-role-users\";\r\n/**\r\n * Defaultní hodnota pro zobrazení při prázdném názvu.\r\n */\r\nexport const EMPTY_PARTICIPANT_TEXT_VALUE = \"-\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { TemplateLayoutItem, Text } from \"@multiweb/reactComponents\";\r\nimport { IUserParticipantInformation } from \"@multiweb/reactCore/workflow\";\r\nimport { IDataAttribute, RecordType } from \"@multiweb/types/react\";\r\nimport { RoleUserRow } from \"../../../components/RoleUserRow\";\r\nimport { EMPTY_PARTICIPANT_TEXT_VALUE } from \"../../../constants\";\r\nimport { ROLE_USERS_ATTRIBUTE_CLASS_NAME as classNames } from \"./constants\";\r\nimport { RoleUsersAttributeProps } from \"./RoleUsersAttribute\";\r\n\r\nexport type RoleUsersAttributeComponentProps = RoleUsersAttributeProps & {\r\n /**\r\n * Záznam, ze kterého získáme potřebné data.\r\n */\r\n record?: RecordType;\r\n /**\r\n * Defaultní hodnota pro zobrazení při prázdném názvu.\r\n */\r\n emptyValue?: string;\r\n};\r\n\r\nexport const RoleUsersAttributeComponent: FunctionComponent<RoleUsersAttributeComponentProps> = ({\r\n record,\r\n attributeName,\r\n dataSourceKey,\r\n recordId,\r\n emptyValue = EMPTY_PARTICIPANT_TEXT_VALUE,\r\n}) => {\r\n const users: IDataAttribute<IUserParticipantInformation[]> | undefined = record?.[attributeName];\r\n\r\n if (!record || users?.value?.length === 0) {\r\n return null;\r\n }\r\n\r\n const components = users?.value?.map(({ id, name, personname }) => {\r\n return (\r\n <RoleUserRow\r\n key={id.value}\r\n id={id.value.toString()}\r\n {...{ dataSourceKey, recordId, attributeName }}\r\n >\r\n <TemplateLayoutItem content={<Text value={personname?.value ?? emptyValue} />} />\r\n <TemplateLayoutItem content={<Text value={name.value ?? emptyValue} />} />\r\n </RoleUserRow>\r\n );\r\n });\r\n\r\n return (\r\n <div className={classNames()}>\r\n {components}\r\n </div>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getRecordById } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { FrameAttributeSharedProps } from \"../../../../types\";\r\nimport { RoleUsersAttributeComponent, RoleUsersAttributeComponentProps } from \"./RoleUsersAttributeComponent\";\r\n\r\nexport type RoleUsersAttributeProps = FrameAttributeSharedProps;\r\n\r\ntype StateProps = Pick<RoleUsersAttributeComponentProps, \"record\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, RoleUsersAttributeProps, IAppState> = (state, { dataSourceKey, recordId }) => ({\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n});\r\n\r\nexport const RoleUsersAttribute = connect(mapStateToProps)(RoleUsersAttributeComponent);\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { LiteListFrameGeneralAttributeComponentProps } from \"../../../../components\";\r\nimport { LLFAbstractRenderer } from \"../../../../components/LiteListFrame/LLFCustomization/renderers/attribute\";\r\nimport { RoleUsersAttribute } from \"./RoleUsersAttribute\";\r\n\r\nexport class RoleUsersAttributeRenderer extends LLFAbstractRenderer {\r\n public override canRender(): boolean {\r\n return false; // Nepoužívá elementy atributů, stačí mít nastavený klíč v dataSource\r\n }\r\n\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeComponentProps> {\r\n return RoleUsersAttribute;\r\n }\r\n}\r\n","export * from \"./RoleUsersAttributeRenderer\";\r\n","import React, { FunctionComponent, useMemo } from \"react\";\r\n\r\nimport { ColSpan, GridGapSize, GridLayout, GridLayoutAlignItems, GridLayoutItem, JustifySelf } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { ParticipantType } from \"@multiweb/types/multiweb\";\r\nimport { RecordType } from \"@multiweb/types/react\";\r\nimport { DataRowTemplateComponentProps, getItems } from \"../../../../components/DataRowTemplateComponent\";\r\nimport { ParticipantsAttributes } from \"../../../../types\";\r\n\r\nexport type GridParticipantsRowTemplateComponentProps = DataRowTemplateComponentProps & {\r\n record?: RecordType;\r\n};\r\n\r\nconst classNames = bemClassNames(\"grid-participants-row-template\");\r\n\r\nexport const GridParticipantsRowTemplateComponent: FunctionComponent<GridParticipantsRowTemplateComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n contentDataSourceAttributeNames = EMPTY_ARRAY as string[],\r\n dataSourceAttributes,\r\n record,\r\n}) => {\r\n const participantTypeIndex = contentDataSourceAttributeNames.indexOf(ParticipantsAttributes.participantType);\r\n const participantType = record?.[ParticipantsAttributes.participantType]?.value;\r\n\r\n const contentItems = useMemo(() => {\r\n const attributeNames: Readonly<string[]> = contentDataSourceAttributeNames.filter(item => {\r\n switch (item) {\r\n case ParticipantsAttributes.personName:\r\n return participantType === ParticipantType.User || !record; // pro skeleton\r\n case ParticipantsAttributes.actualRoleName:\r\n return participantType === ParticipantType.Role;\r\n case ParticipantsAttributes.name:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n });\r\n\r\n return getItems(attributeNames, dataSourceKey, recordId, dataSourceAttributes);\r\n },\r\n [contentDataSourceAttributeNames, dataSourceKey, recordId, dataSourceAttributes, participantType, record]);\r\n\r\n const typeItem = useMemo(() => getItems([contentDataSourceAttributeNames[participantTypeIndex]], dataSourceKey, recordId, dataSourceAttributes),\r\n [contentDataSourceAttributeNames, participantTypeIndex, dataSourceKey, recordId, dataSourceAttributes]);\r\n\r\n return (\r\n <GridLayout alignItems={GridLayoutAlignItems.center} gap={GridGapSize.one} >\r\n <GridLayoutItem colSpan={ColSpan.ten} justifySelf={JustifySelf.start} width={\"100%\"}>\r\n <div className={classNames(\"content\")}>\r\n {contentItems}\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two} justifySelf={JustifySelf.end}>\r\n <div className={classNames(\"type\")}>\r\n {typeItem}\r\n </div>\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createGetAttributeNames, getConfigAttributes, getRecordById } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { DataRowTemplateComponentProps } from \"../../../../components/DataRowTemplateComponent\";\r\nimport { FrameSharedProps } from \"../../../../types\";\r\nimport { GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY } from \"../../../constants\";\r\nimport { GridParticipantsRowTemplateComponent } from \"./GridParticipantsRowTemplateComponent\";\r\n\r\nexport type GridParticipantsTemplateProps = FrameSharedProps;\r\n\r\ntype StateProps = Pick<DataRowTemplateComponentProps, \"contentDataSourceAttributeNames\" | \"dataSourceAttributes\">;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, GridParticipantsTemplateProps, IAppState> = () => {\r\n const getContentDataSourceAttributes = createGetAttributeNames(false);\r\n\r\n return (state, { dataSourceKey, recordId }) => ({\r\n rowTemplate: GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY,\r\n contentDataSourceAttributeNames: getContentDataSourceAttributes(state, dataSourceKey),\r\n dataSourceAttributes: getConfigAttributes(state, dataSourceKey),\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n });\r\n};\r\n\r\nexport const GridParticipantsTemplate = connect(createMapStateToProps)(GridParticipantsRowTemplateComponent);\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { ILLFTemplateRenderer, LiteListFrameTemplateProps } from \"@multiweb/customization\";\r\nimport { GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY } from \"../../../constants\";\r\nimport { GridParticipantsTemplate } from \"./GridParticipantsTemplate\";\r\n\r\nexport class GridParticipantsTemplateRenderer implements ILLFTemplateRenderer {\r\n public readonly key: string = GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY;\r\n\r\n public get component(): ComponentType<LiteListFrameTemplateProps> {\r\n return GridParticipantsTemplate;\r\n }\r\n}\r\n","export { GridParticipantsTemplateRenderer } from \"./GridParticipantsTemplateRenderer\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AlignItems, Divider, FlexDirection, FlexGrow, FlexWrap, Layout, SpacingSize, TemplateLayoutVariant } from \"@multiweb/reactComponents\";\r\nimport { IUserParticipantInformation } from \"@multiweb/reactCore/workflow\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { ParticipantType } from \"@multiweb/types/multiweb\";\r\nimport { IDataAttribute, RecordType } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { DataRowTemplateComponentProps, getItems } from \"../../../../components/DataRowTemplateComponent\";\r\nimport { ParticipantsAttributes } from \"../../../../types\";\r\n\r\nexport type RoleUsersRowTemplateComponentProps = DataRowTemplateComponentProps & {\r\n record?: RecordType;\r\n};\r\n\r\nconst classNames = bemClassNames(\"role-users-template-component\");\r\n\r\nexport const RoleUsersRowTemplateComponent: FunctionComponent<RoleUsersRowTemplateComponentProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n dataSourceAttributes,\r\n record,\r\n}) => {\r\n const participantType = record?.[ParticipantsAttributes.participantType]?.value;\r\n const users: IDataAttribute<IUserParticipantInformation[]> | undefined = record?.[ParticipantsAttributes.roleUsers];\r\n\r\n if (participantType !== ParticipantType.Role || users?.value?.length === 0) {\r\n return null;\r\n }\r\n\r\n const attributeNames: Readonly<string[]> = [ParticipantsAttributes.roleUsers];\r\n const contentItems = getItems(attributeNames, dataSourceKey, recordId, dataSourceAttributes, TemplateLayoutVariant.gridParticipants, Role.rowGroup);\r\n\r\n return (\r\n <div className={classNames()}>\r\n <div className={classNames(\"divider\")}>\r\n <Layout spacingSizeLeft={SpacingSize.l} >\r\n <Divider />\r\n </Layout>\r\n </div>\r\n <div className={classNames(\"item\")}>\r\n <Layout flexGrow={FlexGrow.one} flexWrap={FlexWrap.nowrap}>\r\n <Layout\r\n flexWrap={FlexWrap.nowrap}\r\n flexDirection={FlexDirection.row}\r\n flexGrow={FlexGrow.one}\r\n alignItems={AlignItems.stretch}\r\n >\r\n <div className={classNames(\"content\")}>\r\n {contentItems}\r\n </div>\r\n </Layout>\r\n </Layout>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getConfigAttributes, getRecordById } from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { DataRowTemplateComponentProps } from \"../../../../components\";\r\nimport { FrameSharedProps } from \"../../../../types\";\r\nimport { RoleUsersRowTemplateComponent } from \"./RoleUsersTemplateComponent\";\r\n\r\nexport type RoleUsersTemplateProps = FrameSharedProps;\r\n\r\ntype StateProps = Pick<DataRowTemplateComponentProps, \"contentDataSourceAttributeNames\" | \"dataSourceAttributes\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, RoleUsersTemplateProps, IAppState> = (state, { dataSourceKey, recordId }) => ({\r\n dataSourceAttributes: getConfigAttributes(state, dataSourceKey),\r\n record: getRecordById(state, { dataSourceKey, recordId }),\r\n});\r\n\r\nexport const RoleUsersTemplate = connect(mapStateToProps)(RoleUsersRowTemplateComponent);\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { ILLFTemplateRenderer, LiteListFrameTemplateProps } from \"@multiweb/customization\";\r\nimport { GRID_PARTICIPANTS_ROLE_USERS_TEMPLATE_RENDERER_KEY } from \"../../../constants\";\r\nimport { RoleUsersTemplate } from \"./RoleUsersTemplate\";\r\n\r\nexport class RoleUsersTemplateRenderer implements ILLFTemplateRenderer {\r\n public readonly key: string = GRID_PARTICIPANTS_ROLE_USERS_TEMPLATE_RENDERER_KEY;\r\n\r\n public get component(): ComponentType<LiteListFrameTemplateProps> {\r\n return RoleUsersTemplate;\r\n }\r\n}\r\n","export * from \"./RoleUsersTemplateRenderer\";\r\n","import { ILLFAttributeRegistrator, ILLFAttributeRenderer, PriorityRegistrator } from \"@multiweb/customization\";\r\n\r\n/**\r\n * Registrátor, který umožnuje jednotlivým rendererům přidat priority.\r\n *\r\n * Priorit se využívá při hledání, který renderer může zobrazit daný element (v metodě `findRenderer`).\r\n * Vracíme renderer s největší prioritou, který splňuje podmínku `canRender`. Pokud žádný ze zaregistrovaných rendererů\r\n * neumí element zobrazit, použije se defaultní renderer.\r\n */\r\nexport class LLFAttributeRegistrator extends PriorityRegistrator<ILLFAttributeRenderer> implements ILLFAttributeRegistrator {\r\n public findRenderer(element: HTMLElement): ILLFAttributeRenderer {\r\n return this._registeredRenderers.get(this._getRendererKeyByElement(element)) ?? this._defaultRenderer;\r\n }\r\n\r\n /**\r\n * Získá klíč rendereru pro daný element.\r\n *\r\n * @param element Element atributu z DOMu.\r\n * @returns Klíč nalezeného rendereru. Pokud existuje více rendererů, které umí daný atribut vykreslit,\r\n * rozhoduje jejich priorita zadaná v inicializaci Singleton rendereru při registraci.\r\n */\r\n private _getRendererKeyByElement(element: HTMLElement): string {\r\n for (const { itemKey } of this._renderersPriorities) {\r\n const renderer = this._registeredRenderers.get(itemKey);\r\n if (!renderer || !renderer.canRender(element)) {\r\n continue;\r\n }\r\n return itemKey;\r\n }\r\n return this._defaultRenderer.key;\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nimport { AttributeComponent } from \"UI/UI.React/frames/components\";\r\nimport { LinkAttribute } from \"../LinkAttribute/LinkAttribute\";\r\n\r\n/** Komponenta, která vykresluje hodnotu atributu jako text nebo odkaz, v závislosti na tom, zda je hodnota url adresa */\r\nexport const LiteListFrameLinkAttributeComponent: AttributeComponent = ({\r\n record,\r\n attributeName,\r\n}) => {\r\n return <LinkAttribute value={record?.[attributeName].value} />;\r\n};\r\n","export * from \"./LiteListFrameLinkAttributeComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FrameAttributeSharedProps } from \"../../types\";\r\nimport { LiteListFrameGeneralAttribute } from \"../LiteListFrameGeneralAttribute\";\r\nimport { LiteListFrameLinkAttributeComponent } from \"../LiteListFrameLinkAttributeComponent\";\r\n\r\nexport type LiteListFrameLinkAttributeProps = FrameAttributeSharedProps;\r\n/** Komponenta, sloužící k vykreslení hodnoty atributu jako text nebo odkaz v lite list framu. */\r\nexport const LiteListFrameLinkAttribute: FunctionComponent<LiteListFrameLinkAttributeProps> = (\r\n props,\r\n) => (\r\n <LiteListFrameGeneralAttribute\r\n {...props}\r\n AttributeComponent={LiteListFrameLinkAttributeComponent}\r\n />\r\n);\r\n","export * from \"./LiteListFrameLinkAttribute\";\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { LiteListFrameGeneralAttributeProps } from \"../../../../LiteListFrameGeneralAttribute\";\r\nimport { LiteListFrameLinkAttribute } from \"../../../../LiteListFrameLinkAttribute\";\r\nimport { LLFAbstractRenderer } from \"./LLFAbstractRenderer\";\r\n\r\nexport class LLFLinkAttributeRenderer extends LLFAbstractRenderer {\r\n private readonly _controlString: string = \"LinkAttribute\";\r\n\r\n public canRender(element: HTMLElement): boolean {\r\n return element.getAttribute(\"data-tscitem\") === this._controlString;\r\n }\r\n\r\n public override getAttributes(element: HTMLElement, ...args: unknown[]): readonly IDataSourceAttribute[] {\r\n return super.getAttributes(element, args).map(attr => ({ ...attr, trimValue: false }));\r\n }\r\n\r\n public override get component(): ComponentType<LiteListFrameGeneralAttributeProps> {\r\n return LiteListFrameLinkAttribute;\r\n }\r\n}\r\n","import { ComponentType } from \"react\";\r\n\r\nimport { ILLFTemplateRenderer } from \"@multiweb/customization\";\r\nimport { FrameSharedProps } from \"../../../../../types\";\r\nimport { DataRowTemplate } from \"../../../../DataRowTemplate\";\r\n\r\n/** Výchozí renderer pro šablonu řádku */\r\nexport class LLFDefaultTemplateRenderer implements ILLFTemplateRenderer {\r\n public readonly key: string;\r\n\r\n constructor(key: string) {\r\n this.key = key;\r\n }\r\n public get component(): ComponentType<FrameSharedProps> {\r\n return DataRowTemplate;\r\n }\r\n}\r\n","export * from \"./LLFDefaultTemplateRenderer\";\r\n","import { getCustomization, KeyRegistrator } from \"@multiweb/customization\";\r\nimport { PARTICIPANT_TYPE_ATTRIBUTE_RENDERER, ROLE_USERS_ATTRIBUTE_RENDERER } from \"../../../constants\";\r\nimport { ParticipantTypeAttributeRenderer } from \"../../../GridParticipants/customization/attributes/ParticipantType\";\r\nimport { RoleUsersAttributeRenderer } from \"../../../GridParticipants/customization/attributes/RoleUsers\";\r\nimport { GridParticipantsTemplateRenderer } from \"../../../GridParticipants/customization/templates/GridParticipantsTemplate\";\r\nimport { RoleUsersTemplateRenderer } from \"../../../GridParticipants/customization/templates/RoleUsersTemplate\";\r\nimport { DefaultRowTemplate } from \"../../../types\";\r\nimport { LLFDefaultAttributeRenderer, LLFIconAttributeRenderer, LLFLOVAttributeRenderer } from \"./renderers/attribute\";\r\nimport { LLFAttributeRegistrator } from \"./renderers/attribute/LLFAttributeRegistrator\";\r\nimport { LLFLinkAttributeRenderer } from \"./renderers/attribute/LLFLinkRenderer\";\r\nimport { LLFDefaultTemplateRenderer } from \"./renderers/template\";\r\n// Získání customizacni instance\r\nconst customizationInstance = getCustomization();\r\n\r\n// Inicializace registratorů v customizacích\r\ncustomizationInstance.liteListFrame.init(\r\n new LLFAttributeRegistrator(new LLFDefaultAttributeRenderer(\"LLFDefaultAttributeRenderer\")),\r\n new KeyRegistrator(new LLFDefaultTemplateRenderer(DefaultRowTemplate.singleLine)),\r\n);\r\n\r\n// Registrace jednotlivých rendererů\r\n//#region šablony atributů\r\ncustomizationInstance.liteListFrame.attribute.register(new LLFIconAttributeRenderer(\"LLFIconAttributeRenderer\"), 0);\r\ncustomizationInstance.liteListFrame.attribute.register(new LLFLOVAttributeRenderer(\"LLFLOVAttribute\"), 0);\r\ncustomizationInstance.liteListFrame.attribute.register(new LLFLinkAttributeRenderer(\"LLFLinkAttributeRenderer\"), 0);\r\n//#endregion\r\n//#region šablony řádků\r\ncustomizationInstance.liteListFrame.templates.register(new LLFDefaultTemplateRenderer(DefaultRowTemplate.multiLine1));\r\ncustomizationInstance.liteListFrame.templates.register(new LLFDefaultTemplateRenderer(DefaultRowTemplate.multiLine2));\r\ncustomizationInstance.liteListFrame.templates.register(new LLFDefaultTemplateRenderer(DefaultRowTemplate.multiLine3));\r\n//#endregion\r\n\r\n//#region šablony pro WFDialog\r\ncustomizationInstance.liteListFrame.attribute.register(new ParticipantTypeAttributeRenderer(PARTICIPANT_TYPE_ATTRIBUTE_RENDERER), 0);\r\ncustomizationInstance.liteListFrame.attribute.register(new RoleUsersAttributeRenderer(ROLE_USERS_ATTRIBUTE_RENDERER), 0);\r\ncustomizationInstance.liteListFrame.templates.register(new GridParticipantsTemplateRenderer());\r\ncustomizationInstance.liteListFrame.templates.register(new RoleUsersTemplateRenderer());\r\n//#endregion\r\n","import React, { FunctionComponent, useCallback, useEffect } from \"react\";\r\n\r\nimport { DataGrid } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, createSkeletonRowsKeys, DEFAULT_DATA_COUNT_TO_LOAD, EMPTY_ARRAY, getDataRowSibling, invariant, keyGenerator, useInView } from \"@multiweb/reactUtils\";\r\nimport { FetchingState } from \"@multiweb/types/react\";\r\nimport { DataRow } from \"../DataRow\";\r\nimport { EmptyMessage } from \"../EmptyMessage\";\r\nimport { ListHeader } from \"../ListHeader\";\r\n\r\nexport type LiteListFrameComponentProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Unikátní klíč, který se mění, pokud se ve store změní property, které mohou ovlivnit výšku řádku a musí tedy smazat cache virtualized listu. */\r\n rowRendererKey?: string;\r\n /** Seřazené identifikátory dat z DataSource. */\r\n recordsIds?: ReadonlyArray<string>;\r\n /** Určuje, zda se mají data načítat postupně při scrollovaní nebo se zobrazit pouze do viditelné části. */\r\n loadOnScroll?: boolean;\r\n /** Určuje, zda se aktuálně stahují další data. */\r\n fetchingState?: FetchingState;\r\n /** Počet dat, které se právě načítají. */\r\n fetchingCount?: number;\r\n /** Určuje, zda na serveru zbývají data k dočtení. */\r\n hasNextItems?: boolean;\r\n /** Určuje, zda komponenta může načítat další data. */\r\n canValueLoad?: boolean;\r\n /** Určuje, zda se má zobrazit hlavička. */\r\n showHeader?: boolean;\r\n /** Funkce, která zajistí načtení dat. */\r\n loadData: (count: number) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"lite-list-frame-component\");\r\n\r\nexport const LiteListFrameComponent: FunctionComponent<LiteListFrameComponentProps> = ({\r\n dataSourceKey,\r\n rowRendererKey,\r\n recordsIds = EMPTY_ARRAY,\r\n loadData,\r\n fetchingState = FetchingState.initialized,\r\n fetchingCount = 0,\r\n hasNextItems = true,\r\n canValueLoad = true,\r\n loadOnScroll = true,\r\n showHeader = false,\r\n}) => {\r\n const [ivlRef, inView] = useInView();\r\n\r\n useEffect(() => {\r\n if (loadOnScroll && inView && canValueLoad && fetchingState === FetchingState.initialized) {\r\n loadData(DEFAULT_DATA_COUNT_TO_LOAD);\r\n }\r\n }, [loadData, loadOnScroll, inView, canValueLoad, fetchingState]);\r\n\r\n const canLoadData = hasNextItems && canValueLoad && inView; // Mohu načítat další data pouze pokud je LLF viditelný.\r\n\r\n const noRowsRenderer = useCallback(() => <EmptyMessage dataSourceKey={dataSourceKey} />, [dataSourceKey]);\r\n\r\n const itemRenderer = useCallback(\r\n (recordId: string) => {\r\n invariant(recordId, \"[LiteListFrameComponent] At least one record has not correct id attribute.\");\r\n return <DataRow {...{ dataSourceKey, recordId, getSibling: getDataRowSibling }} />;\r\n },\r\n // `rowRendererKey` je potřebný pro vyčištění cache ve virtualized listu\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [dataSourceKey, rowRendererKey],\r\n );\r\n\r\n return (\r\n <div ref={ivlRef} className={classNames()}>\r\n {showHeader && <ListHeader {...{ dataSourceKey }} />}\r\n <div className={classNames(\"content\")}>\r\n <DataGrid\r\n items={recordsIds}\r\n {...{\r\n loadOnScroll,\r\n fetchingState,\r\n fetchingCount,\r\n canLoadData,\r\n loadData,\r\n createSkeletonRowsKeys,\r\n keyGenerator,\r\n noRowsRenderer,\r\n itemRenderer,\r\n }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./LiteListFrameComponent\";\r\n","import \"./LLFCustomization/registration\";\r\n\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport {\r\n createLoadDataAction,\r\n getFetchingCount,\r\n getFetchingState,\r\n getRecordsIds,\r\n hasNextItems,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport {\r\n createGetRowRerenderKey,\r\n getCanValueLoad,\r\n getLoadOnScroll,\r\n getShowHeader,\r\n} from \"../../selectors\";\r\nimport {\r\n LiteListFrameComponent,\r\n LiteListFrameComponentProps,\r\n} from \"../LiteListFrameComponent\";\r\n\r\nexport type LiteListFrameProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n readonly dataSourceKey: string;\r\n};\r\n\r\ntype StateProps = Pick<LiteListFrameComponentProps, \"rowRendererKey\" | \"recordsIds\" | \"fetchingState\" | \"fetchingCount\" | \"hasNextItems\" | \"canValueLoad\" | \"showHeader\" | \"loadOnScroll\" >;\r\n\r\nconst createMapStateToProps: (\r\n state: IAppState,\r\n props: LiteListFrameProps\r\n) => MapStateToProps<StateProps, LiteListFrameProps, IAppState> = () => {\r\n const getRowRendererKey = createGetRowRerenderKey();\r\n return (state, { dataSourceKey }): StateProps => ({\r\n rowRendererKey: getRowRendererKey(state, dataSourceKey),\r\n recordsIds: getRecordsIds(state, dataSourceKey),\r\n fetchingState: getFetchingState(state, dataSourceKey),\r\n fetchingCount: getFetchingCount(state, dataSourceKey),\r\n hasNextItems: hasNextItems(state, dataSourceKey),\r\n canValueLoad: getCanValueLoad(state, dataSourceKey),\r\n showHeader: getShowHeader(state, dataSourceKey),\r\n loadOnScroll: getLoadOnScroll(state, dataSourceKey),\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick<LiteListFrameComponentProps, \"loadData\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, LiteListFrameProps> = (\r\n dispatch,\r\n { dataSourceKey },\r\n) => ({\r\n loadData: (count: number) => dispatch(createLoadDataAction(dataSourceKey, count)),\r\n});\r\n\r\nexport const LiteListFrame = connect(\r\n createMapStateToProps,\r\n mapDispatchToProps,\r\n)(LiteListFrameComponent);\r\n","export * from \"./LiteListFrame\";\r\n","export * from \"./DataRow\";\r\nexport * from \"./DataRowComponent\";\r\nexport * from \"./DataRowTemplate\";\r\nexport * from \"./DataRowTemplateComponent\";\r\nexport * from \"./DocumentDownload\";\r\nexport * from \"./DocumentDownloadComponent\";\r\nexport * from \"./EmptyMessage\";\r\nexport * from \"./GridLayoutMultiwebItem\";\r\nexport * from \"./LinkAttribute\";\r\nexport * from \"./ListHeader\";\r\nexport * from \"./ListHeaderAttribute\";\r\nexport * from \"./ListHeaderComponent\";\r\nexport * from \"./LiteListFrame\";\r\nexport * from \"./LiteListFrameComponent\";\r\nexport * from \"./LiteListFrameGeneralAttribute\";\r\nexport * from \"./LiteListFrameGeneralAttributeComponent\";\r\nexport * from \"./LiteListFrameIconAttributeComponent\";\r\nexport * from \"./RowAction\";\r\nexport * from \"./RowActionComponent\";\r\nexport * from \"./RowActionsComponent\";\r\nexport * from \"./RowActionsComponent\";\r\nexport * from \"./TemplateLayout\";\r\n","import { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { LiteListFrameGeneralAttributeProps } from \"UI/UI.React/frames/components\";\r\nimport { IRenderer, IRendererRegistrator } from \"../../types\";\r\n\r\n/**\r\n * Typ registrátoru pro LLFAttribute.\r\n */\r\nexport type ILLFAttributeRegistrator = ILLFAttributeRendererRegistrator<ILLFAttributeRenderer>;\r\n\r\n/**\r\n * Interface LLFAttribute rendereru. Specifikuje metodu `canRender` a přidává metodu `getAttributes`,\r\n * která je specifická pro LLFAttribute.\r\n */\r\nexport interface ILLFAttributeRenderer extends IRenderer<LiteListFrameGeneralAttributeProps> {\r\n /** Metoda obrží surový html element reprezentující definici sloupce a je na ní, jestli se rozhodne že bude daný sloupec renderovat */\r\n canRender: (element: HTMLElement) => boolean;\r\n /** Získá dataSourceAttributes pro daný element. */\r\n getAttributes: (element: HTMLElement, ...args: any[]) => ReadonlyArray<IDataSourceAttribute>;\r\n}\r\nexport class ILLFAttributeRenderer {\r\n private static _methods: (keyof ILLFAttributeRenderer)[] = [\"canRender\", \"getAttributes\"];\r\n private static _interfaces = [IRenderer];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return (\r\n instance != null &&\r\n this._methods.every((value) => typeof instance[value] === \"function\") &&\r\n this._interfaces.every((_interface) => instance instanceof _interface)\r\n );\r\n }\r\n}\r\n/**\r\n * Registrator pro LLF renderer atributů\r\n */\r\nexport interface ILLFAttributeRendererRegistrator<RendererType extends ILLFAttributeRenderer = any> extends IRendererRegistrator {\r\n /**\r\n * Zaregistruje renderer\r\n * @param priority Kladné nenulové číslo, které určuje prioritu pro výběr rendereru.\r\n * Čím vyšší číslo, tím vyšší priorita.\r\n * Číslo 0 je vyhrazeno defaultním rendererům, které poskytuje multiweb.\r\n */\r\n register(renderer: RendererType, priority?: number): void;\r\n /** Najde renderer pro daný element z DOMu. */\r\n findRenderer(element: HTMLElement): RendererType;\r\n}\r\n","import { FrameSharedProps } from \"UI/UI.React/frames/types\";\r\nimport { IRenderer, IRendererRegistrator } from \"../../types\";\r\n\r\n/**\r\n * Určuje prop types pro komponentu/container zobrazující LLFTemplate.\r\n */\r\nexport type LiteListFrameTemplateProps = FrameSharedProps;\r\n\r\n/**\r\n * Interface LLFTemplate rendereru. Specifikuje metodu `canRender`\r\n */\r\nexport interface ILLFTemplateRenderer extends IRenderer<LiteListFrameTemplateProps> {\r\n}\r\n\r\nexport class ILLFTemplateRenderer {\r\n private static _interfaces = [IRenderer];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return (\r\n instance != null &&\r\n this._interfaces.every((_interface) => instance instanceof _interface)\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Typ registrátoru pro LLFTemplate.\r\n */\r\nexport type ILLFTemplateRegistrator = ILLFTemplateRendererRegistrator<ILLFTemplateRenderer>;\r\n\r\n/**\r\n * Registrator pro LLF renderer atributů\r\n */\r\nexport interface ILLFTemplateRendererRegistrator<RendererType extends ILLFTemplateRenderer = any> extends IRendererRegistrator {\r\n /**\r\n * Zaregistruje renderer\r\n * @param priority Kladné nenulové číslo, které určuje prioritu pro výběr rendereru.\r\n * Čím vyšší číslo, tím vyšší priorita.\r\n * Číslo 0 je vyhrazeno defaultním rendererům, které poskytuje multiweb.\r\n */\r\n register(renderer: RendererType): void;\r\n}\r\n","export * from \"./attributes/types\";\r\nexport * from \"./templates/types\";\r\n","import { ICustomizationSubmodule } from \"../types\";\r\nimport { ILLFAttributeRegistrator, ILLFTemplateRegistrator } from \"./types\";\r\n\r\nexport class LiteListFrameCustomization implements ICustomizationSubmodule {\r\n private _attribute: ILLFAttributeRegistrator | undefined;\r\n private _template: ILLFTemplateRegistrator | undefined;\r\n\r\n /**\r\n * Inicializační metoda, která nastaví registrátory.\r\n *\r\n * @param attributeRegistrator Registrátor pro attribute na LLF.\r\n * @internal\r\n */\r\n public init(attributeRegistrator: ILLFAttributeRegistrator, templateRegistrator: ILLFTemplateRegistrator): void {\r\n if (!this._attribute) {\r\n this._attribute = attributeRegistrator;\r\n this._template = templateRegistrator;\r\n }\r\n }\r\n\r\n /**\r\n * Získá registrátor pro atribut na LLF.\r\n */\r\n public get attribute(): ILLFAttributeRegistrator {\r\n if (!this._attribute) {\r\n throw new Error(`[Customization] LLFAttribute registrator is not defined.\r\n Please check if initialization was called.`);\r\n }\r\n return this._attribute;\r\n }\r\n\r\n public get templates(): ILLFTemplateRegistrator {\r\n if (!this._template) {\r\n throw new Error(`[Customization] LLFTemplate registrator is not defined.\r\n Please check if initialization was called.`);\r\n }\r\n return this._template;\r\n }\r\n}\r\n","import { CoreCustomization } from \"./core/coreCustomization\";\r\nimport {\r\n LiteListFrameCustomization,\r\n} from \"./LiteListFrame/LiteListFrameCustomization\";\r\n\r\nexport class Customization {\r\n public readonly liteListFrame = new LiteListFrameCustomization();\r\n public readonly core = new CoreCustomization();\r\n}\r\nlet _customization: Customization;\r\n\r\n/**\r\n * Vrací singleton instanci customization. V této instanci můžete konkrétním registrátorům zaregistrovat\r\n * nové renderery a modifikovat tak zobrazení danýcg customizovatelných bodů.\r\n *\r\n * @returns Instanci Customization.\r\n */\r\nexport const getCustomization = (): Customization => {\r\n if (!_customization) {\r\n _customization = new Customization();\r\n }\r\n return _customization;\r\n};\r\n","import { CaseInsensitiveMap } from \"@multiweb/types/multiweb\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { DEFAULT_DATASOURCE_KEY, ICoreDataSourceRegistrator } from \"../../core/types\";\r\n\r\nexport class CoreDataSourceRegistrator implements ICoreDataSourceRegistrator {\r\n private _customDataSources: CaseInsensitiveMap<CaseInsensitiveMap<SagaWithReturnType<any, any>>> = new Map();\r\n\r\n private _getOrRegAndGet(dataSourceId: string): CaseInsensitiveMap<SagaWithReturnType<any, any>> {\r\n if (!this._customDataSources.has(dataSourceId)) this._customDataSources.set(dataSourceId, new CaseInsensitiveMap<SagaWithReturnType>());\r\n\r\n // @ts-ignore -- horni podminkou je zaruceno, ze tohle nebude nikdy undefined\r\n return this._customDataSources.get(dataSourceId);\r\n }\r\n\r\n private _getDataSource(dataSourceId: string, useDefaultIfNotExist: boolean = true): undefined | CaseInsensitiveMap<SagaWithReturnType<any, any>> {\r\n if (!this._customDataSources.has(dataSourceId)) {\r\n if (useDefaultIfNotExist) {\r\n return this._customDataSources.get(DEFAULT_DATASOURCE_KEY);\r\n }\r\n return undefined;\r\n } else {\r\n return this._customDataSources.get(dataSourceId);\r\n }\r\n }\r\n\r\n public registerMethodToDataSource(methodName: string, methodBody: SagaWithReturnType<any, any>, dataSourceId: string = DEFAULT_DATASOURCE_KEY): void {\r\n const dataSource = this._getOrRegAndGet(dataSourceId);\r\n\r\n if (dataSource.has(methodName)) {\r\n throw Error(\"Method has already been registered!\");\r\n }\r\n dataSource.set(methodName, methodBody);\r\n }\r\n\r\n public getMethodByDataSource(methodName: string, dataSourceId: string = DEFAULT_DATASOURCE_KEY, useDefaultIfNotExist: boolean = true): SagaWithReturnType<any, any> | undefined {\r\n const dataSource = this._getDataSource(dataSourceId, useDefaultIfNotExist);\r\n\r\n if (dataSource) return dataSource.get(methodName);\r\n\r\n return undefined;\r\n }\r\n}\r\n","export * from \"./datasources/registrator\";\r\nexport * from \"./LiteListFrameCustomization\";\r\nexport * from \"./types\";\r\n","import { CaseInsensitiveMap } from \"Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { ILLFTemplateRenderer, ILLFTemplateRendererRegistrator } from \"../LiteListFrame/types\";\r\n\r\n/**\r\n * Registrátor, který umožnuje renderery vybírat podle klíče. Nemá metodu `canRender`, renderer se vybírá pouze podle zadaného klíče.\r\n */\r\nexport class KeyRegistrator<RendererType extends ILLFTemplateRenderer = ILLFTemplateRenderer> implements ILLFTemplateRendererRegistrator<RendererType> {\r\n private _defaultRenderer: RendererType;\r\n\r\n /** Mapa registrovaných rendererů. */\r\n private _registeredRenderers: CaseInsensitiveMap<RendererType> = new CaseInsensitiveMap<RendererType>();\r\n\r\n constructor(defaultRenderer: RendererType) {\r\n this._defaultRenderer = defaultRenderer;\r\n this._registeredRenderers.set(defaultRenderer.key, defaultRenderer);\r\n }\r\n\r\n public registerFactory(_rendererFactory: () => RendererType): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public register(renderer: RendererType): void {\r\n if (!this._registeredRenderers.has(renderer.key)) {\r\n this._registeredRenderers.set(renderer.key, renderer);\r\n } else {\r\n throw new Error(`Renderer with renderer.key=\"${renderer.key}\" is already registred.`);\r\n }\r\n }\r\n public getRendererByKey(key: string): RendererType {\r\n if (this._registeredRenderers.has(key)) {\r\n return this._registeredRenderers.get(key) ?? this._defaultRenderer;\r\n }\r\n return this._defaultRenderer;\r\n // Defaultní hodnotu vracím protože TS nedokáže odvodit z mapy, že tento případ je odchycen v předchozím kroku.\r\n }\r\n\r\n /**\r\n * Vrací všechny zaregistrované renderery.\r\n */\r\n public getAll(): RendererType[] {\r\n return [\r\n ...this._registeredRenderers.values(),\r\n this._defaultRenderer,\r\n ];\r\n }\r\n}\r\n","import { CaseInsensitiveMap } from \"Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { IRenderer, IRendererRegistrator } from \"../types\";\r\n\r\n/**\r\n * Používá se pro uchování priorit k daným rendererům (_renderersPriorities).\r\n */\r\ntype PriorityRegisterItem = {\r\n /** Priorita rendereru. */\r\n readonly priority: number;\r\n /** Klíč rendereru. */\r\n readonly itemKey: string;\r\n};\r\n\r\n/**\r\n * Registrátor, který umožnuje jednotlivým rendererům přidat priority.\r\n *\r\n * Priorit se využívá při hledání, který renderer může zobrazit daný element (v metodě `findRenderer`).\r\n * Vracíme renderer s největší prioritou, který splňuje podmínku `canRender`. Pokud žádný ze zaregistrovaných rendererů\r\n * neumí element zobrazit, použije se defaultní renderer.\r\n */\r\nexport abstract class PriorityRegistrator<RendererType extends IRenderer = IRenderer> implements IRendererRegistrator<RendererType> {\r\n protected _defaultRenderer: RendererType;\r\n\r\n /** Mapa registrovaných rendererů. */\r\n protected _registeredRenderers: CaseInsensitiveMap<RendererType> = new CaseInsensitiveMap<RendererType>();\r\n /** Pole registrovaných rendererů a jejich priorit seřazené sestupně. */\r\n protected _renderersPriorities: PriorityRegisterItem[] = [];\r\n\r\n constructor(defaultRenderer: RendererType) {\r\n this._defaultRenderer = defaultRenderer;\r\n this._registeredRenderers.set(defaultRenderer.key, defaultRenderer);\r\n }\r\n\r\n public registerFactory(_rendererFactory: () => RendererType, _priority: number): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public register(renderer: RendererType, priority: number = 1): void {\r\n if (!this._registeredRenderers.has(renderer.key)) {\r\n this._registeredRenderers.set(renderer.key, renderer);\r\n this._renderersPriorities.push({ priority, itemKey: renderer.key });\r\n this._renderersPriorities.sort((a, b) => b.priority - a.priority); // Seřadí pole sestupně podle priority.\r\n } else {\r\n throw new Error(`Renderer with renderer.key=\"${renderer.key}\" is already registred.`);\r\n }\r\n }\r\n\r\n public getRendererByKey(key: string): RendererType {\r\n if (this._registeredRenderers.has(key)) {\r\n return this._registeredRenderers.get(key) ?? this._defaultRenderer;\r\n }\r\n return this._defaultRenderer;\r\n // Defaultní hodnotu vracím protože TS nedokáže odvodit z mapy, že tento případ je odchycen v předchozím kroku.\r\n }\r\n\r\n /** Metoda, která prochází renderery podle priority a vrácí první renderer, který bude odpovídat podmínce.*/\r\n public abstract findRenderer(...args: any): RendererType;\r\n\r\n /**\r\n * Vrací všechny zaregistrované renderery seřazené podle priority (renderer s nejvyšší prioritou na začátku).\r\n */\r\n public getAll(): RendererType[] {\r\n return [\r\n ...this._renderersPriorities.map(({ itemKey }) => this.getRendererByKey(itemKey)),\r\n this._defaultRenderer,\r\n ];\r\n }\r\n}\r\n","export * from \"./keyRegistrator\";\r\nexport * from \"./priorityRegistrator\";\r\n","export * from \"./AbstractRenderer\";\r\nexport * from \"./customization\";\r\nexport * from \"./LiteListFrame\";\r\nexport * from \"./registrators\";\r\nexport * from \"./types\";\r\n","import { CoreDataSourceRegistrator, getCustomization } from \"@multiweb/customization\";\r\n\r\n// Získání customizacni instance\r\nconst customizationInstance = getCustomization();\r\n\r\ncustomizationInstance.core.init(new CoreDataSourceRegistrator());\r\n","import { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { FetchingState } from \"@multiweb/types/react\";\r\nimport { IDataSourceState } from \"./types\";\r\n\r\n/**\r\n * Iniciální stav DataSource reduceru.\r\n */\r\nexport const DATA_SOURCE_INIT_STATE: IDataSourceState = {\r\n data: {\r\n records: EMPTY_OBJECT,\r\n recordsIds: EMPTY_ARRAY,\r\n },\r\n multiselect: {\r\n selectedRecords: EMPTY_OBJECT,\r\n checkedRecords: EMPTY_OBJECT,\r\n lastSelectedRecordId: \"\",\r\n multiselectMode: false,\r\n isCheckedAll: false,\r\n keepCheckedIncomingData: false,\r\n rootNodes: EMPTY_OBJECT,\r\n },\r\n loading: {\r\n fetchingState: FetchingState.initialized,\r\n startIndex: 0,\r\n fetchingCount: 0,\r\n hasNextItems: true,\r\n disabledLoading: false,\r\n },\r\n actions: {\r\n actions: EMPTY_OBJECT,\r\n recordActionsIds: EMPTY_ARRAY,\r\n hasDetailForm: false,\r\n },\r\n workflowActions: {\r\n actions: EMPTY_OBJECT,\r\n actionsOrder: EMPTY_ARRAY,\r\n fetchingState: FetchingState.initialized,\r\n },\r\n config: {\r\n objectName: \"\",\r\n attributes: EMPTY_OBJECT,\r\n attributeNames: EMPTY_ARRAY,\r\n fullLengthAttributes: EMPTY_ARRAY,\r\n recordIdKey: \"id\",\r\n formContext: EMPTY_OBJECT,\r\n hasWorkflow: false,\r\n isPersistent: true,\r\n customDataSourceId: \"\",\r\n customMethodsData: EMPTY_OBJECT,\r\n },\r\n conditions: {\r\n condition: \"\",\r\n fulltextCondition: EMPTY_OBJECT,\r\n masterFrameCondition: \"\",\r\n conditionParams: EMPTY_ARRAY,\r\n },\r\n attributeInfo: EMPTY_OBJECT,\r\n orderBy: EMPTY_ARRAY,\r\n};\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { MutableTypedObject, ReactAction, ReactActionId, TypedObject } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IDataSourceActions,\r\n IInitDataSourceAction,\r\n ISetHasDetailFormAction,\r\n IUpdateRecordActionsSuccessAction,\r\n} from \"../types\";\r\n\r\nconst actions: Reducer<TypedObject<ReactAction>> = (\r\n state = DATA_SOURCE_INIT_STATE.actions.actions,\r\n action,\r\n) => {\r\n if (action instanceof IUpdateRecordActionsSuccessAction) {\r\n const newActions: MutableTypedObject<ReactAction> = {};\r\n action.payload.actions.forEach((action) => {\r\n newActions[action.id] = action;\r\n });\r\n return newActions;\r\n }\r\n return state;\r\n};\r\n\r\nconst recordActionsIds: Reducer<ReadonlyArray<ReactActionId>> = (\r\n state = DATA_SOURCE_INIT_STATE.actions.recordActionsIds,\r\n action,\r\n) => {\r\n if (action instanceof IUpdateRecordActionsSuccessAction) {\r\n return action.payload.actions.map((action) => action.id);\r\n }\r\n return state;\r\n};\r\n\r\nconst hasDetailForm: Reducer<boolean> = (\r\n state = DATA_SOURCE_INIT_STATE.actions.hasDetailForm,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.hasDetailForm !== undefined) {\r\n return action.payload.hasDetailForm;\r\n }\r\n } else if (action instanceof ISetHasDetailFormAction) {\r\n return action.payload.hasDetailForm;\r\n }\r\n return state;\r\n};\r\n\r\nexport const actionsReducer: Reducer<IDataSourceActions> = combineReducers({\r\n actions,\r\n recordActionsIds,\r\n hasDetailForm,\r\n});\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n ILoadAttributeInfoErrorAction,\r\n ILoadAttributeInfoSuccessAction,\r\n} from \"../types\";\r\n\r\nexport const attributeInfoReducer: Reducer<TypedObject<IPublicAttributeInfo>> = (\r\n state = DATA_SOURCE_INIT_STATE.attributeInfo,\r\n action,\r\n) => {\r\n if (action instanceof ILoadAttributeInfoSuccessAction) {\r\n const newInfo: MutableTypedObject<IPublicAttributeInfo> = {};\r\n action.payload.attributeInfo.forEach((info) => (newInfo[info.attributeName.toLowerCase()] = info));\r\n return newInfo;\r\n } else if (action instanceof ILoadAttributeInfoErrorAction) {\r\n return EMPTY_OBJECT;\r\n }\r\n return state;\r\n};\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IDataSourceConditions,\r\n IFulltextSearchCondition,\r\n IInitDataSourceAction,\r\n IUpdateFulltextDataSourceCondition,\r\n IUpdateMasterFrameDataSourceCondition,\r\n} from \"../types\";\r\n\r\nconst condition: Reducer<string> = (\r\n state = DATA_SOURCE_INIT_STATE.conditions.condition,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.conditions?.condition ?? state;\r\n }\r\n return state;\r\n};\r\n\r\nconst fulltextCondition: Reducer<IFulltextSearchCondition> = (\r\n state = DATA_SOURCE_INIT_STATE.conditions.fulltextCondition,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.conditions?.fulltextCondition ?? state;\r\n } else if (action instanceof IUpdateFulltextDataSourceCondition) {\r\n return action.payload.newCondition;\r\n }\r\n return state;\r\n};\r\n\r\nconst masterFrameCondition: Reducer<string> = (\r\n state = DATA_SOURCE_INIT_STATE.conditions.masterFrameCondition,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.conditions?.masterFrameCondition ?? state;\r\n } else if (action instanceof IUpdateMasterFrameDataSourceCondition) {\r\n return action.payload.newCondition;\r\n }\r\n return state;\r\n};\r\n\r\nconst conditionParams: Reducer<ConditionParams> = (\r\n state = DATA_SOURCE_INIT_STATE.conditions.conditionParams,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.conditions?.conditionParams ? [...action.payload.conditions.conditionParams] : state;\r\n } else if (action instanceof IUpdateMasterFrameDataSourceCondition) {\r\n return action.payload.conditionParams && [...action.payload.conditionParams];\r\n }\r\n return state;\r\n};\r\n\r\nexport const conditionsReducer: Reducer<IDataSourceConditions> = combineReducers({\r\n condition,\r\n fulltextCondition,\r\n masterFrameCondition,\r\n conditionParams,\r\n});\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IDataSourceConfig,\r\n IInitDataSourceAction,\r\n ISetAttributesAction,\r\n} from \"../types\";\r\n\r\nconst objectName: Reducer<IDataSourceConfig[\"objectName\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.objectName,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.config.objectName;\r\n }\r\n return state;\r\n};\r\n\r\nconst attributes: Reducer<IDataSourceConfig[\"attributes\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.attributes,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction || action instanceof ISetAttributesAction) {\r\n return produce(state, draft => {\r\n const attributes = (action instanceof IInitDataSourceAction) ? action.payload.config.attributes : action.payload.attributes;\r\n\r\n attributes.forEach(attribute => {\r\n const attributeName = attribute.attributeName.toLocaleLowerCase();\r\n draft[attributeName] = attribute;\r\n draft[attributeName].attributeName = attributeName;\r\n draft[attributeName].backgroundAttrName = attribute.backgroundAttrName?.toLocaleLowerCase() ?? null;\r\n },\r\n );\r\n });\r\n }\r\n return state;\r\n};\r\n\r\nconst attributeNames: Reducer<IDataSourceConfig[\"attributeNames\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.attributeNames,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.config.attributes.map(attribute => attribute.attributeName.toLocaleLowerCase());\r\n } else if (action instanceof ISetAttributesAction) {\r\n return action.payload.attributes.map(attribute => attribute.attributeName.toLocaleLowerCase());\r\n }\r\n return state;\r\n};\r\n\r\nconst fullLengthAttributes: Reducer<IDataSourceConfig[\"fullLengthAttributes\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.fullLengthAttributes,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.config.attributes.filter(attribute => attribute.trimValue === false).map(attribute => attribute.attributeName.toLocaleLowerCase());\r\n } else if (action instanceof ISetAttributesAction) {\r\n return action.payload.attributes.filter(attribute => attribute.trimValue === false).map(attribute => attribute.attributeName.toLocaleLowerCase());\r\n }\r\n return state;\r\n};\r\n\r\nconst recordIdKey: Reducer<IDataSourceConfig[\"recordIdKey\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.recordIdKey,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.config.recordIdKey;\r\n }\r\n return state;\r\n};\r\n\r\nconst formContext: Reducer<IDataSourceConfig[\"formContext\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.formContext,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.config) {\r\n return action.payload.config.formContext;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nconst hasWorkflow: Reducer<IDataSourceConfig[\"hasWorkflow\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.hasWorkflow,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n return action.payload.config.hasWorkflow;\r\n }\r\n return state;\r\n};\r\n\r\nconst isPersistent: Reducer<IDataSourceConfig[\"isPersistent\"]> = (\r\n state = DATA_SOURCE_INIT_STATE.config.isPersistent,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.config) {\r\n return action.payload.config.isPersistent;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nconst customDataSourceId: Reducer<IDataSourceConfig[\"customDataSourceId\"] | undefined> = (\r\n state = DATA_SOURCE_INIT_STATE.config.customDataSourceId,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.config?.customDataSourceId) {\r\n return action.payload.config?.customDataSourceId;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nconst customMethodsData: Reducer<IDataSourceConfig[\"customMethodsData\"] | undefined> = (\r\n state = DATA_SOURCE_INIT_STATE.config.customMethodsData,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.config?.customMethodsData) {\r\n return action.payload.config.customMethodsData;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nexport const configReducer: Reducer<IDataSourceConfig> = combineReducers<IDataSourceConfig>({\r\n objectName,\r\n attributes,\r\n attributeNames,\r\n fullLengthAttributes,\r\n recordIdKey,\r\n formContext,\r\n hasWorkflow,\r\n isPersistent,\r\n customDataSourceId,\r\n customMethodsData,\r\n});\r\n","import { AnyAction } from \"redux\";\r\n\r\nimport { ConditionParams, IDataRowsParams } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { DEFAULT_DATA_COUNT_TO_LOAD } from \"@multiweb/reactUtils\";\r\nimport { IRowData } from \"@multiweb/types/contracts\";\r\nimport { IOrderBy, OrderType } from \"@multiweb/types/multiweb\";\r\nimport {\r\n MutableRecordType,\r\n MutableTypedObject,\r\n RecordType,\r\n RootNodeSubType,\r\n RootNodeTypedObject,\r\n} from \"@multiweb/types/react\";\r\nimport { ISelectNextRecord, ISelectPreviousRecord, RecordIdKeyType } from \"./types\";\r\n\r\nconst { compareCaseInsensitive, readAttributeValue } = bridge;\r\n\r\n/**\r\n * Převede typ IOrderBy na podmínku využívanou v dotazech na server.\r\n *\r\n * @param orderByItem Objekt řazení obsahující potřebné atributy (IOrderBy).\r\n */\r\nexport const orderByObjectToConditionString = (orderByItem: IOrderBy): string =>\r\n orderByItem.order === OrderType.ascending ? orderByItem.attributeName : `DESC ${orderByItem.attributeName}`;\r\n\r\n/**\r\n * Převede pole objektů řazení (IOrderBy) na pole stringových podmínek pro dotaz na server.\r\n *\r\n * @param orderBy Kolekce objektů pro seřazení dat.\r\n * @param dataKey Identifikační klíč (např. \"id\", \"kod\", \"jmeno\").\r\n */\r\nexport const mapOrderByToString = (orderBy: ReadonlyArray<IOrderBy>, dataKey: string): string[] => {\r\n const result = orderBy.map((value) => orderByObjectToConditionString(value));\r\n if (!orderBy.find((v) => compareCaseInsensitive(v.attributeName, dataKey))) {\r\n result.push(dataKey);\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * Spojí konfigurace do parametru pro OWManagera.\r\n *\r\n * @param startIndex Index, od kterého se data načítají.\r\n * @param fetchCount Počet načítaných dat.\r\n * @param dataKey Klíč k identifikátoru uvnitř záznamu.\r\n * @param orderBy Attributy, podle kterých se řadí data.\r\n * @param conditionParams Argumenty podmínky.\r\n */\r\nexport const getParameters = (\r\n startIndex: number,\r\n fetchCount: number,\r\n dataKey: string,\r\n orderBy: ReadonlyArray<IOrderBy>,\r\n conditionParams: ConditionParams,\r\n): IDataRowsParams => {\r\n const stringOrderBy: string[] | undefined = mapOrderByToString(orderBy, dataKey);\r\n return {\r\n startIndex,\r\n count: fetchCount !== 0 ? fetchCount : DEFAULT_DATA_COUNT_TO_LOAD,\r\n orderBy: stringOrderBy,\r\n params: conditionParams,\r\n };\r\n};\r\n\r\n/**\r\n * Pomocná funkce pro namapování IRowData[] na IData[]. Z IAttrValue/IEncAttrValue ukládá pouze hodnoty (přes metodu *valueOf*).\r\n *\r\n * @param apiData Data, která přijdou z OWManagera.\r\n */\r\nexport const mapApiDataToStateData = (apiData: ReadonlyArray<IRowData>): RecordType[] =>\r\n apiData.map((apiRow) => {\r\n const newRecord: MutableRecordType = {};\r\n Object.keys(apiRow).forEach((attribute) => {\r\n const apiAtt = apiRow[attribute];\r\n newRecord[attribute.toLowerCase()] = { value: readAttributeValue(apiAtt) };\r\n });\r\n return newRecord;\r\n });\r\n\r\n/**\r\n * Vrací přepnuté řazení.\r\n *\r\n * @param order Řazení, které metoda přepne.\r\n */\r\nexport const toggleOrderType = (order: OrderType | undefined): OrderType | undefined => {\r\n switch (order) {\r\n case OrderType.ascending:\r\n return OrderType.descending;\r\n case OrderType.descending:\r\n return undefined;\r\n default:\r\n return OrderType.ascending;\r\n }\r\n};\r\n/**\r\n * Selector pro získání identifikátoru ze záznamu.\r\n *\r\n * @param record Data z aplikačního serveru.\r\n * @param recordIdKey Klíč identifikátoru v záznamu.\r\n */\r\nexport const getRecordId = (record: RecordType | undefined, recordIdKey: RecordIdKeyType) =>\r\n record?.[recordIdKey]?.value.toString();\r\n\r\n/**\r\n * Vrací předchozí položku v poli.\r\n *\r\n * @param items Pole, ve kterém má funkce hledat.\r\n * @param actualItem Aktuální položka, ke které hledáme souseda.\r\n * @returns Předchozí Položka. `undefined` pokud aktuální položka nebyla nalezena nebo byla jako první v poli.\r\n */\r\nexport const getPreviousItem = <T>(items: ReadonlyArray<T>, actualItem: T): T | undefined => {\r\n const previousItemIndex = items.findIndex((item) => item === actualItem) - 1;\r\n if (previousItemIndex < 0) {\r\n // -2 -> nenelezen, -1 -> aktualni radek je prvni\r\n return undefined;\r\n }\r\n return items[previousItemIndex];\r\n};\r\n\r\n/**\r\n * Vrací další položku v poli.\r\n *\r\n * @param items Pole, ve kterém má funkce hledat.\r\n * @param actualItem Aktuální položka, ke které hledáme sousední.\r\n * @returns Další položka. `undefined` pokud aktuální položka nebyla nalezena nebo byla jako poslední v poli.\r\n */\r\nexport const getNextItem = <T>(items: ReadonlyArray<T>, actualItem: T): T | undefined => {\r\n const nextRowIndex = items.findIndex((item) => item === actualItem) + 1;\r\n if (nextRowIndex < 1 || nextRowIndex === items.length) {\r\n // 0 -> nenelezen, rows.length -> aktualni radek je poslední\r\n return undefined;\r\n }\r\n return items[nextRowIndex];\r\n};\r\n\r\n/**\r\n * Výčet směrů, kterými se dá v DataSource pohybovat.\r\n */\r\nexport enum RecordMoveDirection {\r\n next = \"next\",\r\n previous = \"previous\",\r\n}\r\n\r\n/**\r\n * Vrací identifikátor nově označeného záznamu podle směru pohybu v DataSource.\r\n *\r\n * @param recordsIds Pole identifikátorů pro záznamy.\r\n * @param actualId Identifikátor aktuálního záznamu.\r\n * @param direction Směr pohybu po záznamech v DataSource.\r\n */\r\nexport const getRecordIdByDirection = <T>(\r\n recordsIds: ReadonlyArray<T>,\r\n actualId: T,\r\n direction?: RecordMoveDirection,\r\n): T | undefined => {\r\n switch (direction) {\r\n case RecordMoveDirection.next: {\r\n return getNextItem(recordsIds, actualId);\r\n }\r\n case RecordMoveDirection.previous: {\r\n return getPreviousItem(recordsIds, actualId);\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Získá směr pohybu v DataSource podle typu akce.\r\n *\r\n * @param action Akce, podle které se určí jakým směrem se má v DataSource pohybovat výběr.\r\n */\r\nexport const getSelectionDirectionFromAction = (action: AnyAction): RecordMoveDirection | undefined => {\r\n if (action instanceof ISelectNextRecord) {\r\n return RecordMoveDirection.next;\r\n } else if (action instanceof ISelectPreviousRecord) {\r\n return RecordMoveDirection.previous;\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Určuje, zda se na dataSource mohou načítat další data.\r\n *\r\n * @param requestedCount Počet dat, o který DataSource požádal.\r\n * @param loadedCount Počet reálně načtených dat.\r\n */\r\nexport const hasNextItems = (requestedCount: number, loadedCount: number) =>\r\n !(loadedCount < requestedCount || loadedCount === 0);\r\n\r\n/**\r\n * Pomocná funkce pro procházení kořenových uzlů.\r\n * Pokud zaškrtnu vnitřní záznam a mám záznam i v jiných uzlech, musím je všechny zkontrolovat,\r\n * zda u nich nedojde ke kompletnímu zaškrtnutí vrcholového záznamu.\r\n *\r\n * @param draft Stav z reduceru.\r\n * @param localRootNodes Kořenové uzly k projití.\r\n * @param globalRootNodes Kořenové uzly z Reduxu.\r\n * @param checked Zda byl záznam zaškrtnut. Pokud ano, zjistím, jestli není potřebné zaškrtnout i vrcholový záznam.\r\n */\r\nconst handleRootNodes = (draft: MutableTypedObject<boolean>, localRootNodes: string[], globalRootNodes: RootNodeTypedObject, checked: boolean) => {\r\n for (const rootNode of localRootNodes) {\r\n if (!checked) {\r\n draft[rootNode] = checked; // Pokud byl vnitřní záznam odškrtnut, určitě nebude zaškrtnut vrcholový záznam\r\n } else {\r\n draft[rootNode] = globalRootNodes[rootNode].children.every(child => draft[child]);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Projde kořenový uzel a jeho děti. Pokud jsou děti i v jiných vrcholových záznamech zjistí, jestli je bude potřeba taktéž zaškrtnout.\r\n *\r\n * @param draft Stav z reduceru.\r\n * @param rootNodes Kořenové uzly z Reduxu.\r\n * @param recordId Id zaškrtávaného záznamu.\r\n */\r\nexport const handleCheckingRootNodes = (draft: MutableTypedObject<boolean>, rootNodes: RootNodeTypedObject, recordId: string) => {\r\n const { children, inRootNodes } = rootNodes[recordId] ?? { children: [], inRootNodes: [] };\r\n\r\n if (rootNodes[recordId]) {\r\n for (const child of children) {\r\n if (rootNodes[child]) { // pokud potomek je vrcholový záznam nebo je v jiných záznamech\r\n toggleNodeCheck(draft, child, recordId);\r\n handleRootNodes(draft, rootNodes[child].inRootNodes.filter(id => id !== recordId), rootNodes, draft[child]);\r\n } else {\r\n toggleNodeCheck(draft, child, recordId);\r\n }\r\n }\r\n }\r\n\r\n if (inRootNodes?.length > 0) {\r\n handleRootNodes(draft, inRootNodes, rootNodes, draft[recordId]);\r\n }\r\n};\r\n\r\n/**\r\n * Pomocná funkce pro zaškrtnutí uzlu.\r\n *\r\n * @param draft Stav z reduceru.\r\n * @param id Id záznamu, který se bude zaškrtávat.\r\n * @param recordId Id rodičovského uzlu, podle kterého se vezme stav.\r\n */\r\nconst toggleNodeCheck = (draft: MutableTypedObject<boolean>, id: string, recordId: string) => {\r\n draft[id] = draft[recordId];\r\n};\r\n\r\n/**\r\n * Při zaslaní OwnerId, vím identifikaci rodiče. Můžu tak zkontrolovat, zda jsou zaškrtnuté všechny jeho děti a podle toho změnit jeho stav.\r\n *\r\n * @param draft Stav z reduceru.\r\n * @param rootNodes Kořenové uzly z Reduxu.\r\n * @param ownerId Rodič zaškrtávaného záznamu.\r\n */\r\nexport const handleCheckingWithOwnerId = (draft: MutableTypedObject<boolean>, rootNodes: RootNodeTypedObject, ownerId: string) => {\r\n const { children: otherChildren } = rootNodes[ownerId] ?? {};\r\n\r\n if (otherChildren?.length > 0) {\r\n draft[ownerId] = otherChildren.every(child => draft[child]);\r\n }\r\n};\r\n\r\n/**\r\n * Pomocná funkce pro zaškrtávání dětí uzlových záznamů.\r\n *\r\n * @param draft Stav z reduceru.\r\n * @param rootNode Kořenové uzel z Reduxu.\r\n * @param value hodnota na kterou se mají zaškrtnout.\r\n */\r\nexport const handleCheckingRootNodeChildren = (draft: MutableTypedObject<boolean>, rootNode: RootNodeSubType, value: boolean) => {\r\n if (rootNode) {\r\n for (const child of rootNode.children) {\r\n draft[child] = value;\r\n }\r\n }\r\n};\r\n","import { castDraft, produce } from \"immer\";\r\n\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ParametricReducer, RecordType, TypedObject } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IDataSourceData,\r\n ILoadDataSuccessAction,\r\n IRefreshDataAction,\r\n IRefreshDataSuccessAction,\r\n RecordIdKeyType,\r\n} from \"../types\";\r\nimport { getRecordId } from \"../utils\";\r\n\r\nconst records: ParametricReducer<TypedObject<RecordType>, string> = (\r\n state = DATA_SOURCE_INIT_STATE.data.records,\r\n action,\r\n recordIdKey,\r\n) => {\r\n if (action instanceof ILoadDataSuccessAction || action instanceof IRefreshDataSuccessAction) {\r\n return produce(state, (draft) => {\r\n action.payload.data.forEach((record) => {\r\n if (draft[getRecordId(record, recordIdKey)] === undefined) {\r\n // Záznam se vloží pouze pokud již nebyl načtený.\r\n draft[getRecordId(record, recordIdKey)] = record;\r\n }\r\n });\r\n });\r\n } else if (action instanceof IRefreshDataAction) {\r\n return EMPTY_OBJECT;\r\n }\r\n return state;\r\n};\r\n\r\nconst recordsIds: ParametricReducer<ReadonlyArray<string>, string> = (\r\n state = DATA_SOURCE_INIT_STATE.data.recordsIds,\r\n action,\r\n recordIdKey,\r\n) => {\r\n if (action instanceof ILoadDataSuccessAction) {\r\n return produce(state, (draft) => {\r\n const { data } = action.payload;\r\n const mappedIds = data.map((record) => getRecordId(record, recordIdKey));\r\n const idSet = new Set([...draft, ...mappedIds]);\r\n return [...idSet];\r\n });\r\n } else if (action instanceof IRefreshDataAction) {\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof IRefreshDataSuccessAction) {\r\n const { data } = action.payload;\r\n return data.map((record) => getRecordId(record, recordIdKey));\r\n }\r\n return state;\r\n};\r\n\r\nexport const dataReducer: ParametricReducer<IDataSourceData, RecordIdKeyType> = (\r\n state = DATA_SOURCE_INIT_STATE.data,\r\n action,\r\n recordIdKey,\r\n) => {\r\n return produce(state, (draft) => {\r\n const recordsState = records(draft.records, action, recordIdKey);\r\n const recordsIdsState = recordsIds(draft.recordsIds, action, recordIdKey);\r\n\r\n draft.records = recordsState;\r\n draft.recordsIds = castDraft(recordsIdsState);\r\n });\r\n};\r\n","export type RecordIdType = string;\r\n","import { Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { FetchingState, ParametricReducer } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IDataSourceLoading,\r\n ILoadDataAction,\r\n ILoadDataErrorAction,\r\n ILoadDataSuccessAction,\r\n IRefreshDataAction,\r\n IRefreshDataErrorAction,\r\n IRefreshDataSuccessAction,\r\n ISetDisableLoadingAction,\r\n IUpdateMasterFrameDataSourceCondition,\r\n} from \"../types\";\r\nimport { hasNextItems } from \"../utils\";\r\nimport { RecordIdType } from \"./types\";\r\n\r\nconst fetchingState: Reducer<FetchingState> = (\r\n state = DATA_SOURCE_INIT_STATE.loading.fetchingState,\r\n action,\r\n) => {\r\n if (action instanceof ILoadDataAction) {\r\n // Nic neprovede, pokud DataSource již načítá data\r\n if (state === FetchingState.request) {\r\n return state;\r\n }\r\n return FetchingState.request;\r\n } else if (action instanceof IRefreshDataAction) {\r\n return FetchingState.request;\r\n } else if (action instanceof ILoadDataSuccessAction || action instanceof IRefreshDataSuccessAction) {\r\n return FetchingState.success;\r\n } else if (action instanceof ILoadDataErrorAction || action instanceof IRefreshDataErrorAction) {\r\n return FetchingState.error;\r\n }\r\n return state;\r\n};\r\n\r\nconst startIndex: Reducer<number> = (\r\n state = DATA_SOURCE_INIT_STATE.loading.startIndex,\r\n action,\r\n) => {\r\n if (action instanceof ILoadDataSuccessAction) {\r\n return state + action.payload.data.length;\r\n } else if (action instanceof IRefreshDataSuccessAction) {\r\n return action.payload.data.length;\r\n }\r\n return state;\r\n};\r\n\r\ntype FetchingCountReducerParams = {\r\n readonly fetchingState: FetchingState; // Při načítání dat potřebuje vědět na základě FetchingState, zdali se již nenačítají data.\r\n readonly recordsIds: ReadonlyArray<RecordIdType>; // Při načítání dat potřebuje vědět počet záznamů.\r\n};\r\n\r\nconst fetchingCount: ParametricReducer<number, FetchingCountReducerParams> = (\r\n state = DATA_SOURCE_INIT_STATE.loading.fetchingCount,\r\n action,\r\n reducerParams,\r\n) => {\r\n if (action instanceof ILoadDataAction) {\r\n const { fetchingState } = reducerParams;\r\n // Nic neprovede, pokud DataSource již načítá data\r\n if (fetchingState === FetchingState.request) {\r\n return state;\r\n }\r\n return action.payload.fetchCount;\r\n } else if (action instanceof IRefreshDataAction) {\r\n const { recordsIds } = reducerParams;\r\n return recordsIds.length;\r\n } else if (\r\n action instanceof ILoadDataSuccessAction ||\r\n action instanceof IRefreshDataSuccessAction ||\r\n action instanceof ILoadDataErrorAction ||\r\n action instanceof IRefreshDataErrorAction\r\n ) {\r\n return 0;\r\n }\r\n return state;\r\n};\r\n\r\nconst hasNextItemsReducer: ParametricReducer<boolean, number> = (\r\n state = DATA_SOURCE_INIT_STATE.loading.hasNextItems,\r\n action,\r\n fetchingCount,\r\n) => {\r\n if (action instanceof IRefreshDataAction) {\r\n return true;\r\n } else if (action instanceof ILoadDataSuccessAction || action instanceof IRefreshDataSuccessAction) {\r\n return hasNextItems(fetchingCount, action.payload.data.length);\r\n } else if (action instanceof ILoadDataErrorAction || action instanceof IRefreshDataErrorAction) {\r\n return false;\r\n }\r\n return state;\r\n};\r\n\r\nconst disabledLoading: Reducer<boolean> = (\r\n state = DATA_SOURCE_INIT_STATE.loading.disabledLoading,\r\n action,\r\n) => {\r\n if (action instanceof IUpdateMasterFrameDataSourceCondition) {\r\n const { isMasterRecordSelected = true } = action.payload;\r\n return !isMasterRecordSelected;\r\n } else if (action instanceof ISetDisableLoadingAction) {\r\n return action.payload.value;\r\n }\r\n return state;\r\n};\r\n\r\nexport const loadingReducer: ParametricReducer<IDataSourceLoading, ReadonlyArray<RecordIdType>> = (\r\n state = DATA_SOURCE_INIT_STATE.loading,\r\n action,\r\n recordsIds,\r\n) => {\r\n return produce(state, (draft) => {\r\n const fetchingCountState = fetchingCount(draft.fetchingCount, action, {\r\n recordsIds,\r\n fetchingState: draft.fetchingState,\r\n });\r\n const fetchingStateState = fetchingState(draft.fetchingState, action);\r\n const startIndexState = startIndex(draft.startIndex, action);\r\n const hasNextItemsState = hasNextItemsReducer(draft.hasNextItems, action, draft.fetchingCount);\r\n const disabledLoadingState = disabledLoading(draft.disabledLoading, action);\r\n\r\n draft.fetchingState = fetchingStateState;\r\n draft.startIndex = startIndexState;\r\n draft.fetchingCount = fetchingCountState;\r\n draft.hasNextItems = hasNextItemsState;\r\n draft.disabledLoading = disabledLoadingState;\r\n });\r\n};\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const dataSourceLogger = LazyLoadingSectionLogger.create(LoggingSection.dataSource);\r\n","import { Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ParametricReducer, RootNodeTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport { dataSourceLogger } from \"../logger\";\r\nimport {\r\n ICheckAllRecordsAction,\r\n IDataSourceConfig,\r\n IDataSourceMultiselect,\r\n IDeselectAllRecordsAction,\r\n ILoadDataSuccessAction,\r\n IRefreshDataAction,\r\n IRefreshDataSuccessAction,\r\n ISelectNextRecord,\r\n ISelectPreviousRecord,\r\n ISelectRecordAction,\r\n ISelectRecordsAction,\r\n ISetDatasourceMultiselectModeAction,\r\n ISetLastSelectedRecordIdAction,\r\n ISetRootNodes,\r\n IToggleCheckAllRecordsAction,\r\n IToggleCheckOnSelectedRecordsAction,\r\n IToggleSelectedRecordCheckAction,\r\n IUncheckAllRecordsAction,\r\n RecordIdKeyType,\r\n} from \"../types\";\r\nimport {\r\n getRecordId,\r\n getRecordIdByDirection,\r\n getSelectionDirectionFromAction,\r\n handleCheckingRootNodeChildren,\r\n handleCheckingRootNodes,\r\n handleCheckingWithOwnerId,\r\n} from \"../utils\";\r\nimport { RecordIdType } from \"./types\";\r\n\r\ntype SelectedRecordsReducerParams = {\r\n readonly recordIdKey: RecordIdKeyType; // Při načítání dat potřebuje ze záznamu vytáhnout identifikátor.\r\n readonly recordsIds: ReadonlyArray<RecordIdType>; // Při výběru pomocí klávesnice potřebuje znát pořadí itemů.\r\n readonly lastSelectedRecordId: RecordIdType; // Při výběru pomocí klávesnice potřebuje znát poslední vybraný item.\r\n};\r\n\r\nconst selectedRecords: ParametricReducer<TypedObject<boolean>, SelectedRecordsReducerParams> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.selectedRecords,\r\n action,\r\n reducerParams,\r\n) => {\r\n if (action instanceof ILoadDataSuccessAction || action instanceof IRefreshDataSuccessAction) {\r\n const { data } = action.payload;\r\n const { recordIdKey } = reducerParams;\r\n const loadedDataIds = data.map((record) => getRecordId(record, recordIdKey));\r\n return produce(state, (draft) => {\r\n loadedDataIds.forEach((recordId) => (draft[recordId] = false));\r\n });\r\n } else if (action instanceof IRefreshDataAction) {\r\n return EMPTY_OBJECT;\r\n } else if (action instanceof IDeselectAllRecordsAction) {\r\n return produce(state, (draft) => {\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = false;\r\n });\r\n });\r\n } else if (action instanceof ISelectRecordsAction) {\r\n return produce(state, (draft) => {\r\n const { selectedRecordsIds } = action.payload;\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = false;\r\n });\r\n selectedRecordsIds.forEach((id) => {\r\n draft[id] = true;\r\n });\r\n });\r\n } else if (action instanceof ISelectRecordAction) {\r\n return produce(state, (draft) => {\r\n const { recordId } = action.payload;\r\n if (draft[recordId] !== undefined) {\r\n draft[recordId] = true;\r\n }\r\n });\r\n } else if (action instanceof ISelectNextRecord || action instanceof ISelectPreviousRecord) {\r\n if (reducerParams.recordsIds.length === 0) {\r\n dataSourceLogger.error(\"You can not handle click on record on DataSource without loaded record.\");\r\n return state; // Pokud nejsou načteny žádné záznamy.\r\n }\r\n const { clearOtherSelections } = action.payload;\r\n const { recordsIds, lastSelectedRecordId = recordsIds[0] } = reducerParams;\r\n const newActualRecordId = getRecordIdByDirection(\r\n recordsIds,\r\n lastSelectedRecordId,\r\n getSelectionDirectionFromAction(action),\r\n );\r\n if (!newActualRecordId) {\r\n return state; // nelze se posunout (jsem na okraji DS).\r\n }\r\n return produce(state, (draft) => {\r\n if (clearOtherSelections) {\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = false;\r\n });\r\n draft[newActualRecordId] = true;\r\n } else {\r\n if (draft[newActualRecordId]) {\r\n // odoznačím aktuální řádek (keypressRow).\r\n if (lastSelectedRecordId) {\r\n draft[lastSelectedRecordId] = false;\r\n }\r\n } else {\r\n // označím nový řádek\r\n draft[newActualRecordId] = true;\r\n }\r\n }\r\n });\r\n }\r\n return state;\r\n};\r\n\r\ntype CheckedRecordsReducerParams = {\r\n readonly recordIdKey: string; // Při načítání dat potřebuje ze záznamu vytáhnout identifikátor.\r\n readonly selectedRecords: TypedObject<boolean>; // Při hromadném označování potřebuje vědět, které záznamy jsou vybrány.\r\n readonly keepIncomingDataChecked: boolean; // Při načítání dat potřebuje vědět v jakém jsou stavu.\r\n readonly isCheckedAll: boolean; // Stav zaškrtnutí všech záznamů - před výpočtem.\r\n readonly rootNodes: RootNodeTypedObject; // Uzlové záznamy\r\n};\r\n\r\nconst checkedRecords: ParametricReducer<TypedObject<boolean>, CheckedRecordsReducerParams> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.checkedRecords,\r\n action,\r\n reducerParams,\r\n) => {\r\n if (action instanceof ILoadDataSuccessAction || action instanceof IRefreshDataSuccessAction) {\r\n const { data } = action.payload;\r\n const { recordIdKey, keepIncomingDataChecked } = reducerParams;\r\n const loadedDataIds = data.map((record) => getRecordId(record, recordIdKey));\r\n return produce(state, (draft) => {\r\n loadedDataIds.forEach((id) => {\r\n draft[id] = keepIncomingDataChecked;\r\n });\r\n });\r\n } else if (action instanceof IRefreshDataAction) {\r\n // stejne u selected i checked\r\n return EMPTY_OBJECT;\r\n } else if (action instanceof IUncheckAllRecordsAction) {\r\n // stejne u selected i checked\r\n const { rootNodes } = reducerParams;\r\n\r\n return produce(state, (draft) => {\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = false;\r\n\r\n handleCheckingRootNodeChildren(draft, rootNodes[id], false);\r\n });\r\n });\r\n } else if (action instanceof IToggleCheckOnSelectedRecordsAction) {\r\n // Pokud je alespoň jeden vybraný (selected) řádek, ale není označen (checked),\r\n // tak nová hodnota bude pro všechny true (označí všechny vybrané). Pokud jsou všechny\r\n // vybrané (selected) záznamy označeny (checked), tak je nová hodnota false.\r\n const { selectedRecords, rootNodes } = reducerParams;\r\n const selectedRecordsIds = Object.keys(selectedRecords).filter(\r\n (recordId) => selectedRecords[recordId],\r\n );\r\n const newCheckState = selectedRecordsIds.some((recordId) => !state[recordId]);\r\n return produce(state, (draft) => {\r\n selectedRecordsIds.forEach((id) => {\r\n draft[id] = newCheckState;\r\n\r\n handleCheckingRootNodes(draft, rootNodes, id);\r\n });\r\n });\r\n } else if (action instanceof ICheckAllRecordsAction) {\r\n const { rootNodes } = reducerParams;\r\n\r\n return produce(state, (draft) => {\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = true;\r\n\r\n handleCheckingRootNodeChildren(draft, rootNodes[id], true);\r\n });\r\n });\r\n } else if (action instanceof IToggleCheckAllRecordsAction) {\r\n const { isCheckedAll, rootNodes } = reducerParams;\r\n\r\n return produce(state, (draft) => {\r\n Object.keys(draft).forEach((id) => {\r\n draft[id] = !isCheckedAll;\r\n\r\n handleCheckingRootNodeChildren(draft, rootNodes[id], !isCheckedAll);\r\n });\r\n });\r\n } else if (action instanceof IToggleSelectedRecordCheckAction) {\r\n const { recordId, ownerId } = action.payload;\r\n const { rootNodes } = reducerParams;\r\n\r\n return produce(state, (draft) => {\r\n draft[recordId] = !draft[recordId];\r\n\r\n handleCheckingRootNodes(draft, rootNodes, recordId);\r\n\r\n if (ownerId) {\r\n handleCheckingWithOwnerId(draft, rootNodes, ownerId);\r\n }\r\n });\r\n }\r\n return state;\r\n};\r\n\r\nconst lastSelectedRecordId: ParametricReducer<string, ReadonlyArray<RecordIdType>> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.lastSelectedRecordId,\r\n action,\r\n recordsIds,\r\n) => {\r\n if (action instanceof IRefreshDataAction) {\r\n return \"\";\r\n } else if (action instanceof ISetDatasourceMultiselectModeAction) {\r\n if (!action.payload.multiselectMode) {\r\n return \"\";\r\n }\r\n } else if (action instanceof ISetLastSelectedRecordIdAction) {\r\n return action.payload.recordId;\r\n } else if (action instanceof ISelectNextRecord || action instanceof ISelectPreviousRecord) {\r\n // TODO: 33097 - Tento blok bude nejspíš potřeba upravit\r\n // Potřebuji mit až po nastaveni SelectedRecord (tam je potreba znat selectedRecord neupraven)\r\n const newActualRecordId = getRecordIdByDirection(\r\n recordsIds,\r\n state,\r\n getSelectionDirectionFromAction(action),\r\n );\r\n if (!newActualRecordId) {\r\n return state; // nelze se posunout (jsem na okraji DS).\r\n }\r\n return newActualRecordId;\r\n }\r\n return state;\r\n};\r\n\r\nconst multiselectMode: Reducer<boolean> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.multiselectMode,\r\n action,\r\n) => {\r\n if (action instanceof ISetDatasourceMultiselectModeAction) {\r\n return action.payload.multiselectMode;\r\n }\r\n return state;\r\n};\r\n\r\nconst keepCheckedIncomingData: Reducer<boolean> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.keepCheckedIncomingData,\r\n action,\r\n) => {\r\n if (action instanceof ICheckAllRecordsAction) {\r\n return action.payload.keepIncomingDataChecked;\r\n }\r\n return state;\r\n};\r\n\r\ntype isCheckedAllReducerParams = {\r\n readonly recordsIds: readonly string[];\r\n readonly checkedRecords: TypedObject<boolean>;\r\n};\r\n\r\nconst isCheckedAll: ParametricReducer<boolean, isCheckedAllReducerParams> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.isCheckedAll,\r\n action,\r\n isCheckAllReducerParams,\r\n) => {\r\n if (action instanceof IToggleSelectedRecordCheckAction || action instanceof IToggleCheckOnSelectedRecordsAction) {\r\n const { recordsIds, checkedRecords } = isCheckAllReducerParams;\r\n\r\n const checkedRecordsIds = recordsIds.filter(\r\n (id) => checkedRecords[id],\r\n );\r\n\r\n return checkedRecordsIds.length === recordsIds.length;\r\n } else if (action instanceof IRefreshDataAction) {\r\n // i když mám vybrané vše, tak zruším zaškrtnutí\r\n return false;\r\n } else if (action instanceof ISetDatasourceMultiselectModeAction) {\r\n if (!action.payload.multiselectMode) {\r\n return false;\r\n }\r\n } else if (action instanceof ICheckAllRecordsAction) {\r\n return action.payload.keepIncomingDataChecked;\r\n } else if (action instanceof IToggleCheckAllRecordsAction) {\r\n return !state;\r\n }\r\n return state;\r\n};\r\n\r\nconst rootNodes: Reducer<RootNodeTypedObject> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect.rootNodes,\r\n action,\r\n) => {\r\n if (action instanceof ISetRootNodes) {\r\n return action.payload.nodes;\r\n }\r\n return state;\r\n};\r\n\r\ntype MultiselectReducerParams = {\r\n readonly config: IDataSourceConfig; // Při načítání dat potřebuje vědět, zdali config není undefined.\r\n readonly recordsIds: ReadonlyArray<RecordIdType>; // Při načítání dat potřebuje vědět počet záznamů.\r\n};\r\n\r\nexport const multiselectReducer: ParametricReducer<IDataSourceMultiselect, MultiselectReducerParams> = (\r\n state = DATA_SOURCE_INIT_STATE.multiselect,\r\n action,\r\n reducerParams,\r\n) => {\r\n return produce(state, (draft) => {\r\n const { config: { recordIdKey }, recordsIds } = reducerParams;\r\n\r\n const rootNodesState = rootNodes(draft.rootNodes, action);\r\n const keepCheckedIncomingDataState = keepCheckedIncomingData(draft.keepCheckedIncomingData, action);\r\n const lastSelectedRecordIdState = lastSelectedRecordId(draft.lastSelectedRecordId, action, recordsIds);\r\n const selectedRecordsState = selectedRecords(draft.selectedRecords, action, {\r\n recordIdKey,\r\n recordsIds,\r\n lastSelectedRecordId: draft.lastSelectedRecordId,\r\n });\r\n const checkedRecordsState = checkedRecords(draft.checkedRecords, action, {\r\n recordIdKey,\r\n selectedRecords: selectedRecordsState,\r\n keepIncomingDataChecked: keepCheckedIncomingDataState,\r\n isCheckedAll: draft.isCheckedAll,\r\n rootNodes: rootNodesState,\r\n });\r\n const multiselectModeState = multiselectMode(draft.multiselectMode, action);\r\n const isCheckAllState = isCheckedAll(draft.isCheckedAll, action, { recordsIds, checkedRecords: checkedRecordsState });\r\n draft.selectedRecords = selectedRecordsState;\r\n draft.checkedRecords = checkedRecordsState;\r\n draft.lastSelectedRecordId = lastSelectedRecordIdState;\r\n draft.multiselectMode = multiselectModeState;\r\n draft.isCheckedAll = isCheckAllState;\r\n draft.keepCheckedIncomingData = keepCheckedIncomingDataState;\r\n draft.rootNodes = rootNodesState;\r\n });\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { IOrderBy, OrderType } from \"@multiweb/types/multiweb\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n IInitDataSourceAction,\r\n ISetOrderByAction,\r\n IToggleOrderByAction,\r\n} from \"../types\";\r\n\r\nexport const orderByReducer: Reducer<ReadonlyArray<IOrderBy>> = (\r\n state = DATA_SOURCE_INIT_STATE.orderBy,\r\n action,\r\n) => {\r\n if (action instanceof IInitDataSourceAction) {\r\n if (action.payload.orderBy !== undefined) {\r\n return action.payload.orderBy.map((orderBy) => ({\r\n ...orderBy,\r\n attributeName: orderBy.attributeName.toLowerCase(),\r\n }));\r\n }\r\n } else if (action instanceof ISetOrderByAction) {\r\n return [...action.payload.orderBy];\r\n } else if (action instanceof IToggleOrderByAction) {\r\n const {\r\n payload: { attributeName, clearOthers },\r\n } = action;\r\n\r\n const newOrderBy = state.filter(\r\n (orderBy) => !clearOthers || orderBy.attributeName === attributeName,\r\n );\r\n const orderByIndex = newOrderBy.findIndex((orderedBy) => orderedBy.attributeName === attributeName);\r\n if (orderByIndex === -1) {\r\n // attributeName nenalezen -> vložím na konec\r\n return newOrderBy.concat([{ attributeName, order: OrderType.ascending }]);\r\n } else if (state[orderByIndex].order === OrderType.ascending) {\r\n // ascending -> descending\r\n newOrderBy[orderByIndex].order = OrderType.descending;\r\n return newOrderBy;\r\n } else {\r\n // descending -> odstranit\r\n newOrderBy.splice(orderByIndex, 1);\r\n return newOrderBy;\r\n }\r\n }\r\n return state;\r\n};\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IWorkflowMenuItem } from \"@multiweb/types/multiweb\";\r\nimport { FetchingState, MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n ILoadWorkflowActionsAction,\r\n ILoadWorkflowActionsErrorAction,\r\n ILoadWorkflowActionsSuccessAction,\r\n IWorkflowActions,\r\n} from \"../types\";\r\n\r\nconst actions: Reducer<TypedObject<IWorkflowMenuItem>> = (\r\n state = DATA_SOURCE_INIT_STATE.workflowActions.actions,\r\n action,\r\n) => {\r\n if (action instanceof ILoadWorkflowActionsAction || action instanceof ILoadWorkflowActionsErrorAction) {\r\n return EMPTY_OBJECT;\r\n } else if (action instanceof ILoadWorkflowActionsSuccessAction) {\r\n const newWorkflowActions: MutableTypedObject<IWorkflowMenuItem> = {};\r\n action.payload.workflowActions.forEach((workflowAction) => {\r\n newWorkflowActions[workflowAction.ID] = workflowAction;\r\n });\r\n return newWorkflowActions;\r\n }\r\n return state;\r\n};\r\n\r\nconst actionsOrder: Reducer<ReadonlyArray<string>> = (\r\n state = DATA_SOURCE_INIT_STATE.workflowActions.actionsOrder,\r\n action,\r\n) => {\r\n if (action instanceof ILoadWorkflowActionsAction || action instanceof ILoadWorkflowActionsErrorAction) {\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof ILoadWorkflowActionsSuccessAction) {\r\n return action.payload.workflowActions.map(workflowAction => workflowAction.ID);\r\n }\r\n return state;\r\n};\r\n\r\nconst fetchingState: Reducer<FetchingState> = (\r\n state = DATA_SOURCE_INIT_STATE.workflowActions.fetchingState,\r\n action,\r\n) => {\r\n if (action instanceof ILoadWorkflowActionsAction) {\r\n return FetchingState.request;\r\n } else if (action instanceof ILoadWorkflowActionsSuccessAction) {\r\n return FetchingState.success;\r\n } else if (action instanceof ILoadWorkflowActionsErrorAction) {\r\n return FetchingState.error;\r\n }\r\n return state;\r\n};\r\n\r\nexport const workflowReducer: Reducer<IWorkflowActions> = combineReducers({\r\n actions,\r\n actionsOrder,\r\n fetchingState,\r\n});\r\n","import { AnyAction, Reducer } from \"redux\";\r\nimport { castDraft, produce } from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"../initState\";\r\nimport {\r\n DataSourceMapState,\r\n IDataSourceMappedAction,\r\n IDataSourceState,\r\n IDeleteDataSourceAction,\r\n IInitDataSourceAction,\r\n} from \"../types\";\r\nimport { actionsReducer } from \"./actionsReducer\";\r\nimport { attributeInfoReducer } from \"./attributeInfoReducer\";\r\nimport { conditionsReducer } from \"./conditionsReducer\";\r\nimport { configReducer } from \"./configReducer\";\r\nimport { dataReducer } from \"./dataReducer\";\r\nimport { loadingReducer } from \"./loadingReducer\";\r\nimport { multiselectReducer } from \"./multiselectReducer\";\r\nimport { orderByReducer } from \"./orderByReducer\";\r\nimport { workflowReducer } from \"./workflowReducer\";\r\n\r\n/**\r\n * DataSource reducer pro jednotlivé instance.\r\n *\r\n * @param state Stav DataSource instance.\r\n * @param action Akce, na kterou bude reducer reagovat.\r\n */\r\nconst dataSourceReducer: Reducer<IDataSourceState> = (state = DATA_SOURCE_INIT_STATE, action) => {\r\n return produce(state, (draft) => {\r\n const configState = configReducer(draft.config, action);\r\n const attributeInfoState = attributeInfoReducer(draft.attributeInfo, action);\r\n const orderByState = orderByReducer(draft.orderBy, action);\r\n const conditionsState = conditionsReducer(draft.conditions, action);\r\n const loadingState = loadingReducer(draft.loading, action, draft.data.recordsIds);\r\n const actionsState = actionsReducer(draft.actions, action);\r\n const workflowActionsState = workflowReducer(draft.workflowActions, action);\r\n\r\n draft.config = castDraft(configState);\r\n draft.attributeInfo = attributeInfoState;\r\n draft.orderBy = castDraft(orderByState);\r\n draft.conditions = castDraft(conditionsState);\r\n draft.loading = loadingState;\r\n draft.actions = castDraft(actionsState);\r\n draft.workflowActions = castDraft(workflowActionsState);\r\n\r\n const dataState = dataReducer(draft.data, action, draft.config.recordIdKey);\r\n const multiselectState = multiselectReducer(draft.multiselect, action, {\r\n config: draft.config,\r\n recordsIds: dataState.recordsIds,\r\n });\r\n\r\n draft.data = castDraft(dataState);\r\n draft.multiselect = multiselectState;\r\n });\r\n};\r\n\r\n/**\r\n * Resolver instanceKey z akce.\r\n *\r\n * @param action Akce, ve které resolver najde instanceKey.\r\n */\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action instanceof IDataSourceMappedAction ? action.meta.dataSourceKey : undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(dataSourceReducer, instanceKeyResolver);\r\n\r\nexport const reducer: Reducer<DataSourceMapState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IDeleteDataSourceAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.dataSourceKey];\r\n });\r\n } else {\r\n const dataSourceKey = instanceKeyResolver(action);\r\n if (dataSourceKey && (state[dataSourceKey] || action instanceof IInitDataSourceAction)) {\r\n // Do store ukládám pouze pokud je již instance vytvořená nebo pokud je akce inicializační\r\n return instanceMapReducer(state, action);\r\n }\r\n return state;\r\n }\r\n};\r\n","export { reducer } from \"./reducer\";\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { IPublicAttributeInfo } from \"@multiweb/types/contracts\";\r\nimport { IOrderBy, IWorkflowMenuItem } from \"@multiweb/types/multiweb\";\r\nimport { ReactAction, RecordType, RootNodeTypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n CHECK_ALL_RECORDS,\r\n DELETE_DATASOURCE,\r\n DESELECT_ALL_RECORDS,\r\n EXECUTE_WORKFLOW_ACTION,\r\n GET_WORKFLOW_ACTIONS_ERROR,\r\n GET_WORKFLOW_ACTIONS_REQUEST,\r\n GET_WORKFLOW_ACTIONS_SUCCESS,\r\n INIT_DATASOURCE,\r\n LOAD_ATTRIBUTE_INFO,\r\n LOAD_ATTRIBUTE_INFO_ERROR,\r\n LOAD_ATTRIBUTE_INFO_SUCCESS,\r\n LOAD_DATA,\r\n LOAD_DATA_ERROR,\r\n LOAD_DATA_SUCCESS,\r\n REFRESH_DATA,\r\n REFRESH_DATA_ERROR,\r\n REFRESH_DATA_SUCCESS,\r\n SELECT_NEXT_RECORD,\r\n SELECT_PREVIOUS_RECORD,\r\n SELECT_RECORD,\r\n SELECT_RECORDS,\r\n SET_ATTRIBUTES,\r\n SET_DATASOURCE_MULTISELECT_MODE,\r\n SET_DISABLE_LOADING,\r\n SET_HAS_DETAIL_FORM,\r\n SET_LAST_SELECTED_RECORD_ID,\r\n SET_ORDER_BY,\r\n SET_ROOT_NODES,\r\n TOGGLE_CHECK_ALL_RECORDS,\r\n TOGGLE_CHECK_ON_SELECTED_RECORDS,\r\n TOGGLE_ORDER_BY,\r\n TOGGLE_SELECTED_RECORD_CHECK,\r\n UNCHECK_ALL_RECORDS,\r\n UPDATE_FULLTEXT_CONDITION,\r\n UPDATE_MASTER_FRAME_CONDITION,\r\n UPDATE_RECORD_ACTIONS,\r\n UPDATE_RECORD_ACTIONS_SUCCESS,\r\n} from \"./constants\";\r\nimport { DATA_SOURCE_INIT_STATE } from \"./initState\";\r\nimport {\r\n ICheckAllRecordsAction,\r\n IDataSourceAttribute,\r\n IDataSourceConditions,\r\n IDataSourceInitConfig,\r\n IDeleteDataSourceAction,\r\n IDeselectAllRecordsAction,\r\n IExecuteWorkflowAction,\r\n IFulltextSearchCondition,\r\n IInitDataSourceAction,\r\n ILoadAttributeInfoAction,\r\n ILoadAttributeInfoErrorAction,\r\n ILoadAttributeInfoSuccessAction,\r\n ILoadDataAction,\r\n ILoadDataErrorAction,\r\n ILoadDataSuccessAction,\r\n ILoadWorkflowActionsAction,\r\n ILoadWorkflowActionsErrorAction,\r\n ILoadWorkflowActionsSuccessAction,\r\n IRefreshDataAction,\r\n IRefreshDataErrorAction,\r\n IRefreshDataSuccessAction,\r\n ISelectNextRecord,\r\n ISelectRecordAction,\r\n ISelectRecordsAction,\r\n ISetAttributesAction,\r\n ISetDatasourceMultiselectModeAction,\r\n ISetDisableLoadingAction,\r\n ISetHasDetailFormAction,\r\n ISetLastSelectedRecordIdAction,\r\n ISetOrderByAction,\r\n ISetRootNodes,\r\n IToggleCheckAllRecordsAction,\r\n IToggleCheckOnSelectedRecordsAction,\r\n IToggleOrderByAction,\r\n IToggleSelectedRecordCheckAction,\r\n IUncheckAllRecordsAction,\r\n IUpdateFulltextDataSourceCondition,\r\n IUpdateMasterFrameDataSourceCondition,\r\n IUpdateRecordActionsAction,\r\n IUpdateRecordActionsSuccessAction,\r\n} from \"./types\";\r\n\r\n/**\r\n * Akce pro inicializaci DataSource.\r\n *\r\n * @param dataSourceKey Unikátní klíč pro DataSource.\r\n * @param config Počáteční inicializace DataSource.\r\n * @param hasDetailForm Značí, zda je povoleno otevřít detail záznamu.\r\n * @param orderBy Attributy, podle kterých se řadí data.\r\n * @param conditions Podmínky pro načítání dat.\r\n * @param attributeInfo Serializovaná data, vhodné např. pokud dataSource není napojen na server.\r\n */\r\nexport const createInitDataSourceAction = (\r\n dataSourceKey: string,\r\n config: IDataSourceInitConfig,\r\n hasDetailForm: boolean,\r\n orderBy: ReadonlyArray<IOrderBy> = DATA_SOURCE_INIT_STATE.orderBy,\r\n conditions: Partial<IDataSourceConditions> = DATA_SOURCE_INIT_STATE.conditions,\r\n attributeInfo: ReadonlyArray<IPublicAttributeInfo> = EMPTY_ARRAY,\r\n): IInitDataSourceAction => ({\r\n type: INIT_DATASOURCE,\r\n payload: {\r\n config,\r\n hasDetailForm,\r\n orderBy,\r\n conditions,\r\n attributeInfo,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání DataSource.\r\n *\r\n * @param dataSourceKey Unikátní klíč pro DataSource.\r\n */\r\nexport const createDeleteDataSourceAction = (dataSourceKey: string): IDeleteDataSourceAction => ({\r\n type: DELETE_DATASOURCE,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\nexport const createLoadAttributeInfoAction = (\r\n dataSourceKey: string,\r\n attributesNames: ReadonlyArray<string>,\r\n): ILoadAttributeInfoAction => ({\r\n type: LOAD_ATTRIBUTE_INFO,\r\n payload: {\r\n attributesNames,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\nexport const createLoadAttributeInfoSuccessAction = (\r\n dataSourceKey: string,\r\n attributeInfo: ReadonlyArray<IPublicAttributeInfo>,\r\n): ILoadAttributeInfoSuccessAction => ({\r\n type: LOAD_ATTRIBUTE_INFO_SUCCESS,\r\n payload: {\r\n attributeInfo,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\nexport const createLoadAttributeInfoErrorAction = (\r\n dataSourceKey: string,\r\n message?: string,\r\n): ILoadAttributeInfoErrorAction => ({\r\n type: LOAD_ATTRIBUTE_INFO_ERROR,\r\n payload: {\r\n message,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro načtení nových dat do předem nainicializovaného DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param fetchCount Počet nově načtených řádků.\r\n */\r\nexport const createLoadDataAction = (dataSourceKey: string, fetchCount: number = -1): ILoadDataAction => ({\r\n type: LOAD_DATA,\r\n payload: {\r\n fetchCount,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro potvrzení úspěšně provedeného načítání z MultiWebu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param data Načtená data.\r\n */\r\nexport const createLoadDataSuccessAction = (\r\n dataSourceKey: string,\r\n data: ReadonlyArray<RecordType>,\r\n): ILoadDataSuccessAction => ({\r\n type: LOAD_DATA_SUCCESS,\r\n payload: {\r\n data,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro oznámení chybného načtení dat.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param message Zpráva popisující chybu.\r\n */\r\nexport const createLoadDataErrorAction = (dataSourceKey: string, message?: string): ILoadDataErrorAction => ({\r\n type: LOAD_DATA_ERROR,\r\n payload: {\r\n message,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aktualizaci dat v DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createRefreshAction = (dataSourceKey: string): IRefreshDataAction => ({\r\n type: REFRESH_DATA,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro potvrzení úspěšně provedené aktualizace z MultiWebu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param data Načtená data.\r\n */\r\nexport const createRefreshSuccessAction = (\r\n dataSourceKey: string,\r\n data: ReadonlyArray<RecordType>,\r\n): IRefreshDataSuccessAction => ({\r\n type: REFRESH_DATA_SUCCESS,\r\n payload: {\r\n data,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro oznámení chybné aktualizace dat.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param message Zpráva popisující chybu.\r\n */\r\nexport const createRefreshErrorAction = (dataSourceKey: string, message?: string): IRefreshDataErrorAction => ({\r\n type: REFRESH_DATA_ERROR,\r\n payload: {\r\n message,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aktualizaci fulltextové podmínky DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param newCondition Nová podmínka pro vyhledávání.\r\n * @param refreshOnChange Určuje, zda se při změně mají aktualizovat data.\r\n */\r\nexport const createUpdateFulltextDataSourceConditionAction = (\r\n dataSourceKey: string,\r\n newCondition: IFulltextSearchCondition,\r\n refreshOnChange: boolean = true,\r\n): IUpdateFulltextDataSourceCondition => ({\r\n type: UPDATE_FULLTEXT_CONDITION,\r\n payload: {\r\n newCondition,\r\n refreshOnChange,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aktualizaci masterFrame podmínky DataSource\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param newCondition Nová podmínka pro vyhledávání.\r\n * @param conditionParams Parametry pro podmínku.\r\n * @param isMasterRecordSelected Určuje, zda je vybrán záznam.\r\n * @param refreshOnChange Určuje, zda se při změně mají aktualizovat data.\r\n */\r\nexport const createUpdateMasterFrameDataSourceConditionAction = (\r\n dataSourceKey: string,\r\n newCondition: string,\r\n conditionParams: ConditionParams = null,\r\n isMasterRecordSelected?: boolean,\r\n refreshOnChange: boolean = true,\r\n): IUpdateMasterFrameDataSourceCondition => ({\r\n type: UPDATE_MASTER_FRAME_CONDITION,\r\n payload: {\r\n newCondition,\r\n conditionParams,\r\n isMasterRecordSelected,\r\n refreshOnChange,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aktualizaci akcí pro záznam z MW.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createUpdateRecordActionsAction = (dataSourceKey: string): IUpdateRecordActionsAction => ({\r\n type: UPDATE_RECORD_ACTIONS,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro uložení aktualizovaných akcí pro záznam z MW.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param actions Nainicializované akce z MW.\r\n */\r\nexport const createUpdateRecordActionsSuccessAction = (\r\n dataSourceKey: string,\r\n actions: ReadonlyArray<ReactAction>,\r\n): IUpdateRecordActionsSuccessAction => ({\r\n type: UPDATE_RECORD_ACTIONS_SUCCESS,\r\n payload: {\r\n actions,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje attributy v DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param attributes Nové atributy DataSource.\r\n */\r\nexport const createSetAttributesAction = (\r\n dataSourceKey: string,\r\n attributes: ReadonlyArray<IDataSourceAttribute>,\r\n): ISetAttributesAction => ({\r\n type: SET_ATTRIBUTES,\r\n payload: {\r\n attributes,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení řazení.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param orderBy\r\n */\r\nexport const createSetOrderByAction = (dataSourceKey: string, orderBy: ReadonlyArray<IOrderBy>): ISetOrderByAction => ({\r\n type: SET_ORDER_BY,\r\n payload: {\r\n orderBy,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro přepnutí řazení u konkrétního atributu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param attributeName Atribut, na kterém se má změnit řazení.\r\n * @param clearOthers Značí, zda se ostatní řazení smažou.\r\n * @param attributeName\r\n */\r\nexport const createToggleOrderByAction = (\r\n dataSourceKey: string,\r\n attributeName: string,\r\n clearOthers: boolean,\r\n): IToggleOrderByAction => ({\r\n type: TOGGLE_ORDER_BY,\r\n payload: {\r\n attributeName,\r\n clearOthers,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení režimu výběru více záznamů na datasource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param multiselectMode\r\n */\r\nexport const createSetDatasourceMultiselectModeAction = (\r\n dataSourceKey: string,\r\n multiselectMode: boolean,\r\n): ISetDatasourceMultiselectModeAction => ({\r\n type: SET_DATASOURCE_MULTISELECT_MODE,\r\n payload: {\r\n multiselectMode,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro přepnutí označení(isChecked) na vybraných(isSelected) záznamech v DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createToggleCheckOnSelectedRecordsAction = (dataSourceKey: string): IToggleCheckOnSelectedRecordsAction => ({\r\n type: TOGGLE_CHECK_ON_SELECTED_RECORDS,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro označení / odznačení konkrétního záznamu v DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param recordId Identifikátor záznamu, který má být označen/odznačen.\r\n * @param ownerId Identifikátor nadřízeného záznamu, pokud je\r\n */\r\nexport const createToggleSelectedRecordCheckAction = (dataSourceKey: string, recordId: string, ownerId?: string): IToggleSelectedRecordCheckAction => ({\r\n type: TOGGLE_SELECTED_RECORD_CHECK,\r\n payload: {\r\n recordId,\r\n ownerId,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr všech načtených a přednačtených záznamu v DataSource.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param keepIncomingDataChecked Značí, zdali při načítání má zaškrtávat nová data\r\n */\r\nexport const createCheckAllRecordsAction = (dataSourceKey: string, keepIncomingDataChecked: boolean): ICheckAllRecordsAction => ({\r\n type: CHECK_ALL_RECORDS,\r\n payload: {\r\n keepIncomingDataChecked,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro zaškrtnutí či odškrtnutí všech záznamů z Datasource\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createToggleCheckAllRecordsAction = (dataSourceKey: string): IToggleCheckAllRecordsAction => ({\r\n type: TOGGLE_CHECK_ALL_RECORDS,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr dalšího záznamu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param clearOtherSelections Určuje, zda se při výběru dalšího záznamu smažou ostatní označení.\r\n */\r\nexport const createSelectNextRecord = (dataSourceKey: string, clearOtherSelections = false): ISelectNextRecord => ({\r\n type: SELECT_NEXT_RECORD,\r\n payload: {\r\n clearOtherSelections,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr předchozího záznamu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param clearOtherSelections Určuje, zda se při výběru dalšího záznamu smažou ostatní označení.\r\n */\r\nexport const createSelectPreviousRecord = (\r\n dataSourceKey: string,\r\n clearOtherSelections: boolean,\r\n): ISelectNextRecord => ({\r\n type: SELECT_PREVIOUS_RECORD,\r\n payload: {\r\n clearOtherSelections,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je na DataSource zakázáno načítání dat.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param value Značí, zda je zakázáno načítání dat.\r\n */\r\nexport const createSetDisableLoadingAction = (dataSourceKey: string, value: boolean): ISetDisableLoadingAction => ({\r\n type: SET_DISABLE_LOADING,\r\n payload: {\r\n value,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce, která nastavuje informaci o tom, zda je možné otevřít detail záznamu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param hasDetailForm Značí, zda je povoleno otevřít detail záznamu.\r\n */\r\nexport const createSetHasDetailFormAction = (dataSourceKey: string, hasDetailForm: boolean): ISetHasDetailFormAction => ({\r\n type: SET_HAS_DETAIL_FORM,\r\n payload: {\r\n hasDetailForm,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro zrušení výběrů všech záznamů.\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createDeselectAllRecordsAction = (dataSourceKey: string): IDeselectAllRecordsAction => ({\r\n type: DESELECT_ALL_RECORDS,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr záznamů daných identifikátory.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param selectedRecordsIds Pole identifikátorů.\r\n */\r\nexport const createSelectRecordsAction = (\r\n dataSourceKey: string,\r\n selectedRecordsIds: ReadonlyArray<string>,\r\n): ISelectRecordsAction => ({\r\n type: SELECT_RECORDS,\r\n payload: {\r\n selectedRecordsIds,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro výběr jednoho záznamu.\r\n *\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param recordId Identifikátor záznamu.\r\n */\r\nexport const createSelectRecordAction = (dataSourceKey: string, recordId: string): ISelectRecordAction => ({\r\n type: SELECT_RECORD,\r\n payload: {\r\n recordId,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro odznačení všech záznamů.\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n */\r\nexport const createUncheckAllRecordsAction = (dataSourceKey: string): IUncheckAllRecordsAction => ({\r\n type: UNCHECK_ALL_RECORDS,\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení identifikátoru naposledy označeného záznamu.\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @param recordId Identifikátor označeného záznamu.\r\n */\r\nexport const createSetLastSelectedRecordIdAction = (dataSourceKey: string, recordId: string): ISetLastSelectedRecordIdAction => ({\r\n type: SET_LAST_SELECTED_RECORD_ID,\r\n payload: {\r\n recordId,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce získání workflow akcí\r\n *\r\n * @param frameKey Klíč pro identifikaci framu zadaný při inicializaci.\r\n * @param recordId Identifikátor záznamu.\r\n */\r\nexport const createLoadWorkflowRequestAction = (dataSourceKey: string, recordId: string): ILoadWorkflowActionsAction => ({\r\n type: GET_WORKFLOW_ACTIONS_REQUEST,\r\n payload: {\r\n recordId,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro uložení workflow akcí do storu\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @param workflowActions Jednotlivé workflow akce\r\n */\r\nexport const createLoadWorkflowSuccessAction = (dataSourceKey: string, workflowActions: ReadonlyArray<IWorkflowMenuItem>): ILoadWorkflowActionsSuccessAction => ({\r\n type: GET_WORKFLOW_ACTIONS_SUCCESS,\r\n payload: { workflowActions },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro neúspěšné načtení workflow akcí ze serveru. Nasetuje isLoading na false a nastaví workflow akce na prázdný objekt.\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const createLoadWorkflowErrorAction = (dataSourceKey: string, message: string): ILoadWorkflowActionsErrorAction => ({\r\n type: GET_WORKFLOW_ACTIONS_ERROR,\r\n payload: {\r\n message,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro vyvolání workflow akce.\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @param workflowActionId Id vykonávané workflow akce.\r\n * @param recordId Id záznamu, pro který se má vykonat workflow akce.\r\n*/\r\nexport const createExecuteWorkflowAction = (\r\n dataSourceKey: string,\r\n workflowActionId: string,\r\n recordId: string,\r\n): IExecuteWorkflowAction => ({\r\n type: EXECUTE_WORKFLOW_ACTION,\r\n payload: {\r\n workflowActionId,\r\n recordId,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro přídání pomocných kořenových záznamů, pro výpočet zaškrtávání záznaml s vnořenými záznamy\r\n * @param dataSourceKey Klíč pro identifikaci DataSource zadaný při inicializaci.\r\n * @param nodes kořenové záznamy obsahující děti či informaci o tom, zda nejsou v jiných kořenových záznamnech (eg. WFDialog -> GridParticipants)\r\n */\r\nexport const createAddRootNodes = (dataSourceKey: string, nodes: RootNodeTypedObject): ISetRootNodes => ({\r\n type: SET_ROOT_NODES,\r\n payload: {\r\n nodes,\r\n },\r\n meta: {\r\n dataSourceKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_ARRAY, stringToFlagColorValue } from \"@multiweb/reactUtils\";\r\nimport { IconCode, IPublicAttributeInfo, OWDataType } from \"@multiweb/types/contracts\";\r\nimport {\r\n ConditionOperator,\r\n ExtendedPropertiesType,\r\n IOrderBy,\r\n IWorkflowMenuItem,\r\n OrderType,\r\n} from \"@multiweb/types/multiweb\";\r\nimport {\r\n FetchingState,\r\n FlagColor,\r\n IAppState,\r\n ReactAction,\r\n ReactActionId,\r\n RecordType,\r\n TypedObject,\r\n} from \"@multiweb/types/react\";\r\nimport { getDefaultCondition } from \"./constants\";\r\nimport {\r\n ActionSelectorParams,\r\n AttributeSelectorParams,\r\n IDataSourceAttribute,\r\n IDataSourceConfig,\r\n IDataSourceState,\r\n RecordAttributeSelectorParams,\r\n RecordSelectorParams,\r\n WorkflowActionSelectorParams,\r\n} from \"./types\";\r\n\r\nconst { combineConditionsArray } = bridge;\r\n\r\n/**\r\n * Získá z globálního stavu instanci patřící DataSource podle `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getDataSourceInstance: Selector<IAppState, Readonly<IDataSourceState> | undefined, string> = (\r\n state: IAppState,\r\n dataSourceKey: string,\r\n): IDataSourceState => state.core.dataSource[dataSourceKey];\r\n\r\n/**\r\n * Získá **recordIdKey** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getRecordIdKey: Selector<IAppState, Readonly<string> | undefined, string> = (state, dataSourceKey) =>\r\n getConfig(state, dataSourceKey)?.recordIdKey;\r\n\r\n/**\r\n * Získá **objekt naplněný daty z MultiWebu** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getRecords: Selector<IAppState, TypedObject<RecordType> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.data.records;\r\n\r\n/**\r\n * Získá **record** pro daný identifikátor z DataSource instance získané pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param recordSelectorParams Parametry určující instanci DataSource a idetifikátor pro record.\r\n */\r\nexport const getRecordById: Selector<IAppState, RecordType | undefined, RecordSelectorParams> = (\r\n state,\r\n { dataSourceKey, recordId },\r\n) => getRecords(state, dataSourceKey)?.[recordId];\r\n\r\n/**\r\n * Získá hodnotu ze záznamu.\r\n *\r\n * @param state\r\n * @param recordAttributeSelectorParams Identifikátory pro identifikaci záznamu a jeho atributu.\r\n */\r\nexport const getRecordValueById: Selector<IAppState, any, RecordAttributeSelectorParams> = (\r\n state,\r\n { dataSourceKey, recordId, attributeName },\r\n) => getRecordById(state, { dataSourceKey, recordId })?.[attributeName].value;\r\n\r\n/**\r\n * Získá informaci o tom, zda je daný záznam načten.\r\n *\r\n * @param state\r\n * @param recordSelectorParams Parametry určující instanci DataSource a idetifikátor pro record.\r\n */\r\nexport const getIsRecordLoaded: Selector<IAppState, boolean, RecordSelectorParams> = (\r\n state,\r\n recordSelectorParams,\r\n) => !!getRecordById(state, recordSelectorParams);\r\n\r\n/**\r\n * Získá seřazené pole identifikátorů načtených dat.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getRecordsIds: Selector<IAppState, ReadonlyArray<string> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.data.recordsIds;\r\n\r\n/**\r\n * Získá **objekt naplněný hodnotou označení pod identifikátory dat** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getSelectedRecords: Selector<IAppState, TypedObject<boolean> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.multiselect.selectedRecords;\r\n\r\n/**\r\n * Získá informaci o tom, zda je záznam daný identifikátorem označen v DataSource instanci dané pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param recordSelectorParams Parametry určující instanci DataSource a idetifikátor pro record.\r\n */\r\nexport const isRecordSelected: Selector<IAppState, boolean | undefined, RecordSelectorParams> = (\r\n state,\r\n { dataSourceKey, recordId },\r\n) => getSelectedRecords(state, dataSourceKey)?.[recordId];\r\n\r\n/**\r\n * Získá **objekt naplněný hodnotami vybrání pod identifikátory dat** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getCheckedRecords: Selector<IAppState, TypedObject<boolean> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.multiselect.checkedRecords;\r\n\r\n/**\r\n * Získá informaci o tom, zda je záznam daný identifikátorem vybrán v DataSource instanci dané pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param recordSelectorParams Parametry určující instanci DataSource a idetifikátor pro record.\r\n */\r\nexport const isRecordChecked: Selector<IAppState, boolean | undefined, RecordSelectorParams> = (\r\n state,\r\n { dataSourceKey, recordId },\r\n) => getCheckedRecords(state, dataSourceKey)?.[recordId];\r\n\r\n/**\r\n * Získá informaci o tom, zda je označený alespoň jeden záznam pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const createIsAtLeastOneRecordChecked = () =>\r\n createSelector<IAppState, string, ReturnType<typeof getCheckedRecords>, boolean | undefined>(\r\n (state, dataSourceKey) => getCheckedRecords(state, dataSourceKey),\r\n (checkedRecords) => {\r\n if (!checkedRecords) {\r\n return undefined;\r\n }\r\n return Object.values(checkedRecords).some(record => record);\r\n },\r\n );\r\n\r\n/**\r\n * Získá pole identifikátorů označených (checked) záznamů pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const createGetCheckedRecordsIds = () =>\r\n createSelector<IAppState, string, ReturnType<typeof getCheckedRecords>, ReadonlyArray<string> | undefined>(\r\n (state, dataSourceKey) => getCheckedRecords(state, dataSourceKey),\r\n (checkedRecords) => {\r\n if (!checkedRecords) {\r\n return undefined;\r\n }\r\n return Object.keys(checkedRecords).filter((recordKey) => checkedRecords[recordKey]);\r\n },\r\n );\r\n\r\n/**\r\n * Získá pole identifikátorů odoznačených (!checked) záznamů pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const createGetUncheckedRecordsIds = () =>\r\n createSelector<IAppState, string, ReturnType<typeof getCheckedRecords>, ReadonlyArray<string> | undefined>(\r\n (state, dataSourceKey) => getCheckedRecords(state, dataSourceKey),\r\n (checkedRecords) => {\r\n if (!checkedRecords) {\r\n return undefined;\r\n }\r\n return Object.keys(checkedRecords).filter((recordKey) => !checkedRecords[recordKey]);\r\n },\r\n );\r\n\r\n/**\r\n * Získá **stav načítání** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getFetchingState: Selector<IAppState, Readonly<FetchingState> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.loading.fetchingState;\r\n\r\n/**\r\n * Zjistí, zda se načítají data v DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const isFetching: Selector<IAppState, Readonly<boolean> | undefined, string> = (state, dataSourceKey) => {\r\n const fetchingState = getFetchingState(state, dataSourceKey);\r\n return fetchingState ? fetchingState === FetchingState.request : undefined;\r\n};\r\n\r\n/**\r\n * Zjistí, zda jsou další data pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const hasNextItems: Selector<IAppState, Readonly<boolean> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.loading.hasNextItems;\r\n\r\n/**\r\n * Zjistí, zda DataSource obsahuje data.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const isEmpty: Selector<IAppState, Readonly<boolean | undefined>, string> = (state, dataSourceKey) => {\r\n const recordIds = getRecordsIds(state, dataSourceKey);\r\n return recordIds ? recordIds.length === 0 : undefined;\r\n};\r\n\r\n/**\r\n * Získá **config** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getConfig: Selector<IAppState, Readonly<IDataSourceConfig> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.config;\r\n\r\n/**\r\n * Získá atributy z konfigurace DataSource.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getConfigAttributes: Selector<IAppState, IDataSourceConfig[\"attributes\"] | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getConfig(state, dataSourceKey)?.attributes;\r\n\r\n/**\r\n * Získá seřazená jména atributů z konfigurace DataSource.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getConfigAttributeNames: Selector<IAppState, IDataSourceConfig[\"attributeNames\"] | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getConfig(state, dataSourceKey)?.attributeNames;\r\n\r\n/**\r\n * Získá seznam atributů, jejichž hodnoty nechceme automaticky ořezávat.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getConfigFullLengthAttributes: Selector<IAppState, IDataSourceConfig[\"fullLengthAttributes\"] | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getConfig(state, dataSourceKey)?.fullLengthAttributes;\r\n\r\n/**\r\n * Získá konkrétní atribut z konfigurace.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Obsahuje klíč k instanci DataSource a název atributu.\r\n */\r\nexport const getConfigAttributeByName: Selector<IAppState, IDataSourceAttribute | undefined, AttributeSelectorParams> = (\r\n state,\r\n { dataSourceKey, attributeName },\r\n) => getConfigAttributes(state, dataSourceKey)?.[attributeName];\r\n\r\n/**\r\n * Získá displayFormat pro konkrétní atribut.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Obsahuje klíč k instanci DataSource a název atributu.\r\n */\r\nexport const getConfigAttributeDisplayFormat: Selector<IAppState, string | undefined, AttributeSelectorParams> = (\r\n state,\r\n attributeSelectorParams,\r\n) => getConfigAttributeByName(state, attributeSelectorParams)?.displayFormat || undefined;\r\n\r\n/**\r\n * Získá seřazené názvy atributů které jsou/nejsou ikony (podle vstupního parametru)\r\n *\r\n * @param isIcon Určuje, jestli hledané atributy mají být ikona.\r\n */\r\nexport const createGetAttributeNames = (isIcon: boolean) =>\r\n createSelector<IAppState, string, ReturnType<typeof getConfigAttributeNames>, ReturnType<typeof getConfigAttributes>, ReadonlyArray<string> | undefined>(\r\n (state, dataSourceKey) => getConfigAttributeNames(state, dataSourceKey),\r\n (state, dataSourceKey) => getConfigAttributes(state, dataSourceKey),\r\n (attributeNames, attributes) => {\r\n if (!attributeNames || !attributes)\r\n return EMPTY_ARRAY;\r\n return attributeNames\r\n .filter(attributeName => !attributes[attributeName]?.hidden) //odfiltruje skryté atributy\r\n .filter(attributeName => !!attributes[attributeName].isIcon === isIcon); //vyfiltruje podle isIcon\r\n },\r\n );\r\n\r\n/**\r\n * Získá index daného atributu.\r\n */\r\nexport const createGetAttributeNameIndex = () =>\r\n createSelector<IAppState, AttributeSelectorParams, ReturnType<typeof getConfigAttributeNames>, string, number | undefined>(\r\n (state, { dataSourceKey }) => getConfigAttributeNames(state, dataSourceKey),\r\n (_state, { attributeName }) => attributeName,\r\n (attributeNames, attributeName) =>\r\n attributeNames?.findIndex((attrName => attrName === attributeName)),\r\n );\r\n\r\n/**\r\n * Získá **ObjectName** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getObjectName: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) =>\r\n getConfig(state, dataSourceKey)?.objectName;\r\n\r\n/**\r\n * Získá **attributeInfo** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getAttributesInfo: Selector<IAppState, TypedObject<IPublicAttributeInfo> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.attributeInfo;\r\n\r\n/**\r\n * Získá **informace o atributu** (attributeInfo).\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource a název atributu.\r\n */\r\nexport const getAttributeInfoByName: Selector<IAppState, IPublicAttributeInfo | undefined, AttributeSelectorParams> = (\r\n state,\r\n { dataSourceKey, attributeName },\r\n) => getAttributesInfo(state, dataSourceKey)?.[attributeName];\r\n\r\n/**\r\n * Získá **typ atributu** podle jeho jména (typ získá z attributeInfo).\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource a název atributu.\r\n */\r\nexport const getAttributeTypeByAttributeName: Selector<IAppState, OWDataType | undefined, AttributeSelectorParams> = (\r\n state,\r\n attributeSelectorParams,\r\n) => getAttributeInfoByName(state, attributeSelectorParams)?.type;\r\n\r\n/**\r\n * Získá informaci o tom, zda je info a daném atributu načteno.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource a název atributu.\r\n */\r\nexport const getIsAttributeInfoLoaded: Selector<IAppState, boolean, AttributeSelectorParams> = (\r\n state,\r\n { dataSourceKey, attributeName },\r\n) => !!getAttributeInfoByName(state, { dataSourceKey, attributeName });\r\n\r\n/**\r\n * Získá jméno atributu na kterém je hodnota barvy pozadí.\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource a název atributu.\r\n */\r\nexport const getBackgroundAttributeName: Selector<IAppState, string | undefined, AttributeSelectorParams> = (\r\n state,\r\n { dataSourceKey, attributeName },\r\n) => getConfigAttributeByName(state, { dataSourceKey, attributeName })?.backgroundAttrName || undefined;\r\n\r\n/**\r\n * Získá **barvu pozadí** atributu (podle jeho `backgroundAttributeName`).\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource, identifikátor záznamu a název atributu.\r\n */\r\nexport const createGetBackgroundAttributeColor = () =>\r\n createSelector<\r\n IAppState,\r\n RecordAttributeSelectorParams,\r\n ReturnType<typeof getBackgroundAttributeName>,\r\n ReturnType<typeof getAttributesInfo>,\r\n ReturnType<typeof getRecordById>,\r\n FlagColor | undefined\r\n >(\r\n (state, params) => getBackgroundAttributeName(state, params),\r\n (state, { dataSourceKey }) => getAttributesInfo(state, dataSourceKey),\r\n (state, params) => getRecordById(state, params),\r\n (backgroundAttributeName, dataSourceAttributesInfo, record) => {\r\n if (\r\n backgroundAttributeName &&\r\n record &&\r\n dataSourceAttributesInfo?.[backgroundAttributeName]?.type === OWDataType.flags\r\n ) {\r\n return stringToFlagColorValue(record[backgroundAttributeName]?.value?.toString());\r\n }\r\n\r\n return undefined;\r\n },\r\n );\r\n\r\n/**\r\n * Získá původní název atributu ze záznamu - začíná velkým písmenem\r\n *\r\n * @param state\r\n * @param attributeSelectorParams Parametry určující instanci DataSource a název atributu.\r\n */\r\nexport const getOriginalAttributeName: Selector<\r\n IAppState,\r\n string | undefined,\r\n AttributeSelectorParams\r\n> = (\r\n state,\r\n { dataSourceKey, attributeName },\r\n) => getAttributesInfo(state, dataSourceKey)?.[attributeName]?.attributeName;\r\n\r\n/**\r\n * Získá **fetchingCount** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getFetchingCount: Selector<IAppState, Readonly<number> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.loading.fetchingCount;\r\n\r\n/**\r\n * Získá **startIndex** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getStartIndex: Selector<IAppState, Readonly<number> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.loading.startIndex;\r\n\r\n/**\r\n * Získá **akce** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getActions: Selector<IAppState, TypedObject<ReactAction> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.actions.actions;\r\n\r\n/**\r\n * Získá **akci** danou `actionSelectorParams`.\r\n *\r\n * @param state\r\n * @param actionSelectorParams Obsahuje klíč k instanci DataSource a identifikátor akce.\r\n */\r\nexport const getActionById: Selector<IAppState, Readonly<ReactAction> | undefined, ActionSelectorParams> = (\r\n state,\r\n { dataSourceKey, actionId },\r\n) => getActions(state, dataSourceKey)?.[actionId];\r\n\r\n/**\r\n * Získá **identifikátory akcí, které lze provést nad všemi záznamy** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getRecordActionsIds: Selector<IAppState, ReadonlyArray<ReactActionId> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.actions.recordActionsIds;\r\n\r\n/**\r\n * Získá **hasDetailForm** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const hasDetailForm: Selector<IAppState, Readonly<boolean> | undefined, string> = (\r\n state,\r\n dataSourceKey,\r\n) => getDataSourceInstance(state, dataSourceKey)?.actions.hasDetailForm;\r\n\r\n/**\r\n * Získá **IconCode** pro akci danou `actionSelectorParams`.\r\n *\r\n * @param state\r\n * @param actionSelectorParams Obsahuje klíč k instanci DataSource a identifikátor akce.\r\n */\r\nexport const getActionIconCode: Selector<IAppState, Readonly<IconCode> | undefined, ActionSelectorParams> = (\r\n state,\r\n actionSelectorParams,\r\n) => getActionById(state, actionSelectorParams)?.iconCode;\r\n\r\n/**\r\n * Získá **visible** pro akci danou `actionSelectorParams`.\r\n *\r\n * @param state\r\n * @param actionSelectorParams Obsahuje klíč k instanci DataSource a identifikátor akce.\r\n */\r\nexport const getActionVisibility: Selector<IAppState, Readonly<boolean> | undefined, ActionSelectorParams> = (\r\n state,\r\n actionSelectorParams,\r\n) => getActionById(state, actionSelectorParams)?.visible;\r\n\r\n/**\r\n * Získá **locKey** pro akci danou `actionSelectorParams`.\r\n *\r\n * @param state\r\n * @param actionSelectorParams Obsahuje klíč k instanci DataSource a identifikátor akce.\r\n */\r\nexport const getActionLocKey: Selector<IAppState, Readonly<string> | undefined, ActionSelectorParams> = (\r\n state,\r\n actionSelectorParams,\r\n) => getActionById(state, actionSelectorParams)?.locKey;\r\n\r\n/**\r\n * Získá **ExtendedProperties** pro danou 'actionSelectorParams'\r\n * @param state\r\n * @param actionSelectorParams Obsahuje klíč k instanci DataSource a identifikátor akce\r\n * @returns extendedProperties dané akce\r\n */\r\nexport const getActionExtendedProperties: Selector<IAppState, Readonly<ExtendedPropertiesType> | undefined, ActionSelectorParams> = (\r\n state,\r\n actionSelectorParams,\r\n) => getActionById(state, actionSelectorParams)?.extendedProperties;\r\n\r\n/**\r\n * Získá **condition** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getCondition: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.conditions?.condition;\r\n\r\n/**\r\n * Získá **fulltextCondition** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getFulltextCondition: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.conditions?.fulltextCondition?.condition;\r\n\r\n/**\r\n * Získá **fulltextSearchString** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getFulltextSearchString: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.conditions?.fulltextCondition?.searchString;\r\n\r\n/**\r\n * Získá **fulltextCondition** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud **fulltextCondition** existuje a neobsahuje prázdný text, vrací pravdu.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const isFulltextConditionActive: Selector<IAppState, boolean | undefined, string> = (state, dataSourceKey) => {\r\n const condition = getFulltextCondition(state, dataSourceKey);\r\n return !condition ? undefined : condition !== \"\";\r\n};\r\n\r\n/**\r\n * Získá **masterFrameCondition** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getMasterFrameCondition: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.conditions?.masterFrameCondition;\r\n\r\n/**\r\n * Získá **conditionParams** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getConditionParams: Selector<IAppState, ConditionParams | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.conditions?.conditionParams;\r\n\r\n/**\r\n * Získá podmínku načtení záznamů pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * Vyžívá se pouze v sáze a connectoru, proto není třeba vytvářet pomocí reselectu.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getLoadingCondition: Selector<IAppState, string | undefined, string> = (state, dataSourceKey) => {\r\n const recordIdKey = getRecordIdKey(state, dataSourceKey);\r\n if (!recordIdKey) {\r\n return undefined;\r\n }\r\n const condition = getCondition(state, dataSourceKey);\r\n const fulltextCondition = getFulltextCondition(state, dataSourceKey);\r\n const masterFrameCondition = getMasterFrameCondition(state, dataSourceKey);\r\n\r\n const conditionArray = [getDefaultCondition(recordIdKey)];\r\n if (condition) {\r\n conditionArray.push(condition);\r\n }\r\n if (fulltextCondition) {\r\n conditionArray.push(fulltextCondition);\r\n }\r\n if (masterFrameCondition) {\r\n conditionArray.push(masterFrameCondition);\r\n }\r\n return combineConditionsArray(ConditionOperator.and, conditionArray);\r\n};\r\n\r\n/**\r\n * Získá pole řazení ze store pro zvolený DataSource pomocí instancKey.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getOrderBy: Selector<IAppState, ReadonlyArray<IOrderBy> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.orderBy;\r\n\r\n/**\r\n * Získá druh řazení pro určitý attribut ve zvoleném DataSource pomocí dataSourceKey.\r\n *\r\n * @param attributeName\r\n */\r\nexport const createGetAttributeOrderBySelector = (attributeName: string) =>\r\n createSelector<IAppState, string, ReturnType<typeof getOrderBy>, Readonly<OrderType> | undefined>(\r\n (state, dataSourceKey) => getOrderBy(state, dataSourceKey),\r\n (orderBy) => {\r\n return orderBy?.find((orderBy) => orderBy.attributeName === attributeName)?.order;\r\n },\r\n );\r\n\r\n/**\r\n * Získá **multiselectMode** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const getMultiselectMode: Selector<IAppState, boolean | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.multiselect.multiselectMode;\r\n\r\n/**\r\n * Získá **disabledLoading** pro DataSource instanci získanou pomocí `instanceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param instanceKey Klíč k instanci DataSource.\r\n */\r\nexport const getDisabledLoading: Selector<IAppState, boolean | undefined, string> = (state, instanceKey) =>\r\n getDataSourceInstance(state, instanceKey)?.loading.disabledLoading;\r\n\r\n/**\r\n * Získá **isCheckedAll** pro DataSource instanci získanou pomocí `instanceKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const isCheckedAll: Selector<IAppState, boolean | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.multiselect.isCheckedAll;\r\n\r\n/**\r\n * Získá informaci, zda má záznam workflow.\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const hasWorkflow: Selector<IAppState, boolean | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.config.hasWorkflow;\r\n\r\n/**\r\n * Získá workflow akce pro daný záznamy\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @returns workflow akce\r\n */\r\nexport const getWorkflowActions = () =>\r\n createSelector<IAppState, string, TypedObject<IWorkflowMenuItem> | undefined, ReadonlyArray<string> | undefined, IWorkflowMenuItem[] | undefined>(\r\n (state, dataSourceKey) => getDataSourceInstance(state, dataSourceKey)?.workflowActions.actions,\r\n (state, dataSourceKey) => getDataSourceInstance(state, dataSourceKey)?.workflowActions.actionsOrder,\r\n (actions, actionsOrder) => {\r\n if (actionsOrder && actions) {\r\n return actionsOrder.map(actionOrder => actions?.[actionOrder]);\r\n }\r\n return undefined;\r\n },\r\n );\r\n\r\n/**\r\n * Získá workflow akce pro daný záznam dle workflow action id\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @param workflowActionId Id vyžadované workflow akce.\r\n * @returns požadovaná workflow akce.\r\n */\r\nexport const getWorkflowActionById: Selector<IAppState, IWorkflowMenuItem | undefined, WorkflowActionSelectorParams> = (state, { dataSourceKey, workflowActionId }) =>\r\n getDataSourceInstance(state, dataSourceKey)?.workflowActions.actions?.[workflowActionId];\r\n\r\n/**\r\n * Získá řadící parametr pro workflow akci daného záznamu\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @returns řadící parametr\r\n */\r\nexport const getWorkflowActionsOrder: Selector<IAppState, ReadonlyArray<string> | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.workflowActions.actionsOrder;\r\n\r\n/**\r\n * Získá informaci, zda jsou workflow akce načítány se serveru\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n * @returns příznak, zda jsou workflow akce stále načítány\r\n */\r\nexport const isWorkflowLoading: Selector<IAppState, boolean, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.workflowActions.fetchingState === FetchingState.request;\r\n\r\n/**\r\n * Získá **keepCheckedIncomingData** pro DataSource instanci získanou pomocí `dataSourceKey`.\r\n * @param state\r\n * @param dataSourceKey Klíč k instanci DataSource.\r\n */\r\nexport const keepCheckedIncomingData: Selector<IAppState, boolean | undefined, string> = (state, dataSourceKey) =>\r\n getDataSourceInstance(state, dataSourceKey)?.multiselect.keepCheckedIncomingData;\r\n","import { call, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { getCustomization } from \"@multiweb/customization\";\r\nimport {\r\n bridge,\r\n createSetReactConnectorMultiselectModeAction,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { createLoadLocalizationKeysAction } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { CancelError, CancellationToken, CancellationTokenSource, IWorkflowMenuItem } from \"@multiweb/types/multiweb\";\r\nimport { MutableTypedObject, RecordType, SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport {\r\n createLoadAttributeInfoErrorAction,\r\n createLoadAttributeInfoSuccessAction,\r\n createLoadDataErrorAction,\r\n createLoadDataSuccessAction,\r\n createLoadWorkflowErrorAction,\r\n createLoadWorkflowSuccessAction,\r\n createRefreshAction,\r\n createRefreshErrorAction,\r\n createRefreshSuccessAction,\r\n createUpdateRecordActionsAction,\r\n createUpdateRecordActionsSuccessAction,\r\n} from \"./actions\";\r\nimport {\r\n createFetchActionsLocalizationsKey,\r\n createFetchAttributesLocalizationsKey,\r\n EXECUTE_WORKFLOW_ACTION,\r\n GET_WORKFLOW_ACTIONS_REQUEST,\r\n INIT_DATASOURCE,\r\n LOAD_DATA,\r\n REFRESH_DATA,\r\n SET_DATASOURCE_MULTISELECT_MODE,\r\n SET_ORDER_BY,\r\n TOGGLE_ORDER_BY,\r\n UPDATE_FULLTEXT_CONDITION,\r\n UPDATE_MASTER_FRAME_CONDITION,\r\n UPDATE_RECORD_ACTIONS,\r\n UPDATE_RECORD_ACTIONS_SUCCESS,\r\n} from \"./constants\";\r\nimport { getDataSourceInstance, getLoadingCondition, getWorkflowActionById } from \"./selectors\";\r\nimport {\r\n DisabledLoadingError,\r\n IDataSourceMappedAction,\r\n IDataSourceState,\r\n IExecuteWorkflowAction,\r\n IInitDataSourceAction,\r\n ILoadDataAction,\r\n ILoadWorkflowActionsAction,\r\n IRefreshDataAction,\r\n ISetDatasourceMultiselectModeAction,\r\n ISetOrderByAction,\r\n IToggleOrderByAction,\r\n IUpdateFulltextDataSourceCondition,\r\n IUpdateMasterFrameDataSourceCondition,\r\n IUpdateRecordActionsAction,\r\n IUpdateRecordActionsSuccessAction,\r\n} from \"./types\";\r\nimport { getParameters, mapApiDataToStateData } from \"./utils\";\r\n\r\nconst {\r\n createObjectList,\r\n errorHandler,\r\n getAttributeInfo,\r\n getDataReaderClient,\r\n getReactConnectorRowActions,\r\n objectsWFMenu,\r\n objectWFActionExecuteWithoutInstance,\r\n resetRefreshTimeout,\r\n} = bridge;\r\n\r\nconst cancellationTokens: MutableTypedObject<CancellationTokenSource[]> = {};\r\n\r\nexport const saga: SagaWithReturnType = function* dataSourceSaga() {\r\n yield takeEvery(INIT_DATASOURCE, initDataSourceSaga);\r\n yield takeEvery(LOAD_DATA, loadSaga);\r\n yield takeEvery(REFRESH_DATA, refreshSaga);\r\n yield takeEvery([SET_ORDER_BY, TOGGLE_ORDER_BY], orderBySaga);\r\n yield takeEvery([UPDATE_FULLTEXT_CONDITION, UPDATE_MASTER_FRAME_CONDITION], updateDataSourceConditionSaga);\r\n yield takeEvery(UPDATE_RECORD_ACTIONS, updateRecordActionsSaga);\r\n yield takeEvery(UPDATE_RECORD_ACTIONS_SUCCESS, updateRecordActionsSuccessSaga);\r\n yield takeEvery(SET_DATASOURCE_MULTISELECT_MODE, setDatasourceMultiselectSaga);\r\n yield takeEvery(GET_WORKFLOW_ACTIONS_REQUEST, getWorkflowActionsSaga);\r\n yield takeEvery(EXECUTE_WORKFLOW_ACTION, executeWorkflowActionSaga);\r\n};\r\n\r\nexport const initDataSourceSaga: SagaWithReturnType<[IInitDataSourceAction]> = function* initDataSourceSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n const { objectName, attributes } = action.payload.config;\r\n const isPersistent = action.payload.config.isPersistent;\r\n const attributeInfo = action.payload.attributeInfo;\r\n\r\n const locKeys: string[] = attributes.map((attribute) => attribute.locKey || \"\");\r\n yield put(createLoadLocalizationKeysAction(locKeys, createFetchAttributesLocalizationsKey(dataSourceKey), true));\r\n\r\n if (isPersistent) {\r\n try {\r\n const attributeInfoArray: SagaYieldReturn<typeof getAttributeInfo> = yield call(\r\n getAttributeInfo,\r\n objectName,\r\n attributes.map((attribute) => attribute.attributeName),\r\n );\r\n yield put(createLoadAttributeInfoSuccessAction(dataSourceKey, attributeInfoArray));\r\n } catch (error) {\r\n yield call(errorHandler, error);\r\n yield put(createLoadAttributeInfoErrorAction(dataSourceKey, error instanceof Error ? error.message : undefined));\r\n }\r\n } else {\r\n yield put(createLoadAttributeInfoSuccessAction(dataSourceKey, attributeInfo));\r\n }\r\n};\r\n\r\nexport const updateDataSourceConditionSaga: SagaWithReturnType<\r\n [IUpdateFulltextDataSourceCondition | IUpdateMasterFrameDataSourceCondition]\r\n> = function* updateDataSourceConditionSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n const { refreshOnChange } = action.payload;\r\n if (refreshOnChange) {\r\n yield put(createRefreshAction(dataSourceKey));\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří nový cancellation token a uloží jej do mapy pod indexem dataSourceKey.\r\n * Ostatní tokeny pro daný dataSourceKey jsou stornovány.\r\n * @param action\r\n */\r\nexport const createCancellationTokenSaga: SagaWithReturnType<\r\n [IDataSourceMappedAction],\r\n CancellationToken\r\n// eslint-disable-next-line require-yield\r\n> = function* createCancellationTokenSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n const tokenSource = new CancellationTokenSource();\r\n if (!cancellationTokens[dataSourceKey]) {\r\n cancellationTokens[dataSourceKey] = [];\r\n }\r\n cancellationTokens[dataSourceKey].forEach((tokenSource) => {\r\n if (!tokenSource.token.cancellationRequested) {\r\n tokenSource.cancel();\r\n }\r\n });\r\n cancellationTokens[dataSourceKey].push(tokenSource);\r\n\r\n return tokenSource.token;\r\n};\r\n\r\n/**\r\n * Smaže cancellation tokeny pro daný dataSourceKey.\r\n * @param action\r\n */\r\nexport const clearCancellationTokenSaga: SagaWithReturnType<\r\n [IDataSourceMappedAction]\r\n// eslint-disable-next-line require-yield\r\n> = function* clearCancellationTokenSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n cancellationTokens[dataSourceKey] = [];\r\n};\r\n\r\n/**\r\n * Vrací dataSource instanci podle dataSourceKey z akce.\r\n * @param action\r\n */\r\nexport const getDataSourceSaga: SagaWithReturnType<\r\n [IDataSourceMappedAction],\r\n IDataSourceState\r\n> = function* getDataSourceSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n const dataSourceInstance: ReturnType<typeof getDataSourceInstance> = yield select(\r\n getDataSourceInstance,\r\n dataSourceKey,\r\n );\r\n if (!dataSourceInstance) {\r\n throw new Error(`[DataSource] DataSource is not initialized: dataSourceKey=${dataSourceKey}`);\r\n }\r\n const { config }: IDataSourceState = dataSourceInstance;\r\n if (!config) {\r\n throw new Error(\"[DataSource] DataSource does not have configuration.\");\r\n }\r\n\r\n return dataSourceInstance;\r\n};\r\n\r\n/**\r\n * Vrací načtená data.\r\n * @param action\r\n * @param startIndex Index, od kterého se mají data načítat.\r\n * @param fetchCount Požadovaný počet načítaných dat.\r\n */\r\nexport const loadDataSaga: SagaWithReturnType<\r\n [string, IDataSourceMappedAction, number, number],\r\n RecordType[]\r\n> = function* loadDataSaga(dataSourceKey, action, startIndex, fetchCount) {\r\n const cancellationToken: SagaYieldReturn<typeof createCancellationTokenSaga> = yield call(\r\n createCancellationTokenSaga,\r\n action,\r\n );\r\n\r\n const { config, orderBy, conditions: { conditionParams }, loading: { disabledLoading } }: SagaYieldReturn<typeof getDataSourceSaga> = yield call(\r\n getDataSourceSaga,\r\n action,\r\n );\r\n if (!config) {\r\n return EMPTY_ARRAY as RecordType[];\r\n }\r\n if (disabledLoading) {\r\n throw new DisabledLoadingError(dataSourceKey);\r\n }\r\n\r\n //@ts-ignore // TODO: zrušit ignore v #33783\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n const { objectName, attributeNames, fullLengthAttributes, recordIdKey, formContext } = config;\r\n\r\n const loadingConditions: ReturnType<typeof getLoadingCondition> = yield select(getLoadingCondition, dataSourceKey);\r\n\r\n const parameters: ReturnType<typeof getParameters> = yield call(\r\n getParameters,\r\n startIndex,\r\n fetchCount,\r\n recordIdKey,\r\n orderBy,\r\n conditionParams,\r\n );\r\n const dataReaderClient: SagaYieldReturn<typeof getDataReaderClient> = yield call(getDataReaderClient);\r\n\r\n const apiData: SagaYieldReturn<typeof dataReaderClient.getDataRowsWithParams> = yield call(\r\n //@ts-ignore // TODO: zrušit ignore v #33783\r\n dataReaderClient.getDataRowsWithParams.bind(dataReaderClient),\r\n objectName,\r\n attributeNames,\r\n loadingConditions ?? \"\",\r\n parameters,\r\n fullLengthAttributes,\r\n undefined, // TODO: doplnit requestContext v #33783\r\n cancellationToken,\r\n );\r\n const records: SagaYieldReturn<typeof mapApiDataToStateData> = yield call(mapApiDataToStateData, apiData);\r\n return records;\r\n};\r\n\r\n/**\r\n * Sága obstarávající načítání nových dat.\r\n * @param action\r\n */\r\nexport const loadSaga: SagaWithReturnType<[ILoadDataAction]> = function* loadSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n try {\r\n const { fetchCount } = action.payload;\r\n const { config, loading: { startIndex } }: SagaYieldReturn<typeof getDataSourceSaga> = yield call(getDataSourceSaga, action);\r\n\r\n const callMethod = getCustomization().core.datasource.getMethodByDataSource(LOAD_DATA, config?.customDataSourceId, true);\r\n\r\n if (callMethod) {\r\n const callMethodArgs = config?.customMethodsData?.[LOAD_DATA]?.data ?? [];\r\n\r\n const data: RecordType[] = yield call(callMethod, ...callMethodArgs);\r\n\r\n yield put(createLoadDataSuccessAction(dataSourceKey, data));\r\n } else {\r\n const data: ReturnType<typeof mapApiDataToStateData> = yield call(\r\n loadDataSaga,\r\n dataSourceKey,\r\n action,\r\n startIndex,\r\n fetchCount,\r\n );\r\n\r\n yield put(createLoadDataSuccessAction(dataSourceKey, data));\r\n }\r\n yield call(resetRefreshTimeout, dataSourceKey);\r\n } catch (error) {\r\n if (error instanceof CancelError) {\r\n return;\r\n } else if (!(error instanceof DisabledLoadingError)) {\r\n yield call(errorHandler, error);\r\n }\r\n yield put(createLoadDataErrorAction(dataSourceKey, error instanceof Error ? error.message : undefined));\r\n } finally {\r\n yield call(clearCancellationTokenSaga, action);\r\n }\r\n};\r\n\r\n/**\r\n * Sága obstarávající aktualizaci dat. Tato sága by se neměla volat přímo, ale vždy jen přes refresh akci.\r\n * Refresh akce totiž zajišťuje správné vyčištění stavu a nastavení načítacích příznaků.\r\n * @param action\r\n */\r\nexport const refreshSaga: SagaWithReturnType<[IRefreshDataAction]> = function* refreshSaga(action) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n try {\r\n const { config, loading: { fetchingCount } }: SagaYieldReturn<typeof getDataSourceSaga> = yield call(getDataSourceSaga, action);\r\n\r\n const callMethod = getCustomization().core.datasource.getMethodByDataSource(REFRESH_DATA, config?.customDataSourceId, true);\r\n\r\n if (callMethod) {\r\n const callMethodArgs = config?.customMethodsData?.[REFRESH_DATA]?.data ?? [];\r\n const data: RecordType[] = yield call(callMethod, ...callMethodArgs);\r\n\r\n yield put(createLoadDataSuccessAction(dataSourceKey, data));\r\n } else {\r\n const refreshedData: ReturnType<typeof mapApiDataToStateData> = yield call(\r\n loadDataSaga,\r\n dataSourceKey,\r\n action,\r\n 0,\r\n fetchingCount,\r\n );\r\n yield put(createRefreshSuccessAction(dataSourceKey, refreshedData));\r\n }\r\n yield call(resetRefreshTimeout, dataSourceKey);\r\n } catch (error) {\r\n if (error instanceof CancelError) {\r\n return;\r\n } else if (!(error instanceof DisabledLoadingError)) {\r\n yield call(errorHandler, error);\r\n }\r\n yield put(createRefreshErrorAction(dataSourceKey, error instanceof Error ? error.message : undefined));\r\n } finally {\r\n yield call(clearCancellationTokenSaga, action);\r\n }\r\n};\r\n\r\n/**\r\n * Sága obstarávající změnu v řazení dat.\r\n * @param action\r\n */\r\nexport const orderBySaga: SagaWithReturnType<[ISetOrderByAction | IToggleOrderByAction]> = function* orderBySaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n yield put(createRefreshAction(dataSourceKey));\r\n};\r\n\r\n/**\r\n * Aktualizuje akce pro záznam z toolbaru v connectoru.\r\n */\r\nexport const updateRecordActionsSaga: SagaWithReturnType<[IUpdateRecordActionsAction]> = function* updateRecordActionsSaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n const actionsArray: SagaYieldReturn<typeof getReactConnectorRowActions> = yield call(\r\n getReactConnectorRowActions,\r\n dataSourceKey,\r\n );\r\n yield put(createUpdateRecordActionsSuccessAction(dataSourceKey, actionsArray));\r\n};\r\n\r\n/**\r\n * Aktualizuje akce pro záznam z toolbaru v connectoru.\r\n */\r\nexport const updateRecordActionsSuccessSaga: SagaWithReturnType<[IUpdateRecordActionsSuccessAction]> = function* updateRecordActionsSaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n const actions = action.payload.actions;\r\n const actionsLocKeys = actions.map((action) => action.locKey).filter((locKey): locKey is string => !!locKey); // přetypování nutné, protože TS neodvodí správný typ.\r\n if (actionsLocKeys.length > 0) {\r\n yield put(createLoadLocalizationKeysAction(actionsLocKeys, createFetchActionsLocalizationsKey(dataSourceKey), true));\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví korektní multiselect mode connectoru v MultiWebu a aktualizuje record akce (mění se jejich viditelnost).\r\n */\r\nexport const setDatasourceMultiselectSaga: SagaWithReturnType<[ISetDatasourceMultiselectModeAction]> = function* setDatasourceMultiselectSaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n yield put(createSetReactConnectorMultiselectModeAction(dataSourceKey, action.payload.multiselectMode));\r\n yield put(createUpdateRecordActionsAction(dataSourceKey));\r\n};\r\n\r\n/**\r\n * Získá Workflow akce záznamu a následné uložení do redux store.\r\n */\r\nexport const getWorkflowActionsSaga: SagaWithReturnType<[ILoadWorkflowActionsAction]> = function* getWorkflowActionsSaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n try {\r\n const { config }: SagaYieldReturn<typeof getDataSourceSaga> = yield call(\r\n getDataSourceSaga,\r\n action,\r\n );\r\n const { objectName } = config;\r\n const objectList = yield call(createObjectList);\r\n objectList.className = objectName;\r\n objectList?.add({ className: objectName, id: action.payload.recordId });\r\n const result: SagaYieldReturn<typeof objectsWFMenu> = yield call(objectsWFMenu, objectList);\r\n yield put(createLoadWorkflowSuccessAction(dataSourceKey, result));\r\n } catch (error) {\r\n const err = error as Error;\r\n yield call(errorHandler, err);\r\n yield put(createLoadWorkflowErrorAction(dataSourceKey, err.message));\r\n }\r\n};\r\n\r\n/**\r\n * Provedení workflow akce.\r\n */\r\nexport const executeWorkflowActionSaga: SagaWithReturnType<[IExecuteWorkflowAction]> = function* executeWorkflowActionSaga(\r\n action,\r\n) {\r\n const { dataSourceKey } = action.meta;\r\n\r\n try {\r\n const { config }: SagaYieldReturn<typeof getDataSourceSaga> = yield call(\r\n getDataSourceSaga,\r\n action,\r\n );\r\n\r\n const workflowAction: IWorkflowMenuItem = yield select(getWorkflowActionById, { dataSourceKey, workflowActionId: action.payload.workflowActionId });\r\n yield call(\r\n objectWFActionExecuteWithoutInstance,\r\n [action.payload.recordId],\r\n config.objectName,\r\n workflowAction.ID,\r\n [],\r\n );\r\n } catch (error) {\r\n const err = error as Error;\r\n yield call(errorHandler, err);\r\n }\r\n yield put(createRefreshAction(dataSourceKey));\r\n};\r\n","import \"./customization/registration\";\r\n\r\nimport { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducers\";\r\nimport { saga } from \"./saga\";\r\nimport { DataSourceMapState } from \"./types\";\r\n\r\nexport {\r\n createAddRootNodes,\r\n createCheckAllRecordsAction,\r\n createDeleteDataSourceAction,\r\n createDeselectAllRecordsAction,\r\n createExecuteWorkflowAction,\r\n createInitDataSourceAction,\r\n createLoadDataAction,\r\n createLoadWorkflowRequestAction,\r\n createRefreshAction,\r\n createSelectNextRecord,\r\n createSelectPreviousRecord,\r\n createSelectRecordAction,\r\n createSelectRecordsAction,\r\n createSetDatasourceMultiselectModeAction,\r\n createSetDisableLoadingAction,\r\n createSetHasDetailFormAction,\r\n createSetLastSelectedRecordIdAction,\r\n createSetOrderByAction,\r\n createToggleCheckAllRecordsAction,\r\n createToggleCheckOnSelectedRecordsAction,\r\n createToggleOrderByAction,\r\n createToggleSelectedRecordCheckAction,\r\n createUncheckAllRecordsAction,\r\n createUpdateFulltextDataSourceConditionAction,\r\n createUpdateMasterFrameDataSourceConditionAction,\r\n createUpdateRecordActionsAction,\r\n createUpdateRecordActionsSuccessAction,\r\n} from \"./actions\";\r\nexport {\r\n LOAD_DATA,\r\n REFRESH_DATA,\r\n} from \"./constants\";\r\nexport { createFetchActionsLocalizationsKey, createFetchAttributesLocalizationsKey } from \"./constants\";\r\nexport {\r\n createGetAttributeNameIndex,\r\n createGetAttributeNames,\r\n createGetAttributeOrderBySelector,\r\n createGetBackgroundAttributeColor,\r\n createGetCheckedRecordsIds,\r\n createGetUncheckedRecordsIds,\r\n createIsAtLeastOneRecordChecked,\r\n getActionById,\r\n getActionExtendedProperties,\r\n getActionIconCode,\r\n getActionLocKey,\r\n getActions,\r\n getActionVisibility,\r\n getAttributeInfoByName,\r\n getAttributesInfo,\r\n getAttributeTypeByAttributeName,\r\n getBackgroundAttributeName,\r\n getCheckedRecords,\r\n getConditionParams,\r\n getConfig,\r\n getConfigAttributeByName,\r\n getConfigAttributeDisplayFormat,\r\n getConfigAttributeNames,\r\n getConfigAttributes,\r\n getDataSourceInstance,\r\n getFetchingCount,\r\n getFetchingState,\r\n getFulltextCondition,\r\n getFulltextSearchString,\r\n getIsRecordLoaded,\r\n getLoadingCondition,\r\n getMultiselectMode,\r\n getObjectName,\r\n getOrderBy,\r\n getOriginalAttributeName,\r\n getRecordActionsIds,\r\n getRecordById,\r\n getRecordIdKey,\r\n getRecords,\r\n getRecordsIds,\r\n getRecordValueById,\r\n getSelectedRecords,\r\n getStartIndex,\r\n getWorkflowActions,\r\n hasDetailForm,\r\n hasNextItems,\r\n hasWorkflow,\r\n isCheckedAll,\r\n isEmpty,\r\n isFetching,\r\n isFulltextConditionActive,\r\n isRecordChecked,\r\n isRecordSelected,\r\n isWorkflowLoading,\r\n} from \"./selectors\";\r\nexport {\r\n ActionSelectorParams,\r\n AttributeSelectorParams,\r\n CustomMethodDataType,\r\n ICheckAllRecordsAction,\r\n IDataSourceAttribute,\r\n IDataSourceConditions,\r\n IDataSourceConfig,\r\n IDataSourceInitConfig,\r\n IDataSourceState,\r\n IRefreshDataSuccessAction,\r\n ISetDatasourceMultiselectModeAction,\r\n IToggleCheckOnSelectedRecordsAction,\r\n IToggleSelectedRecordCheckAction,\r\n IUncheckAllRecordsAction,\r\n RecordAttributeSelectorParams,\r\n} from \"./types\";\r\nexport { getRecordId, toggleOrderType } from \"./utils\";\r\n\r\nexport const dataSourceModule: ApplicationStatefulModule<typeof NAME, Reducer<DataSourceMapState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { Action, AnyAction, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IDataSourceAttribute } from \"@multiweb/reactCore/datasource\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { EMPTY_OBJECT } from \"./constants\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\n/** Vytvoří pole zadané délky a naplní jej indexy */\r\nexport const createSequenceArray = (length: number): number[] => {\r\n const sequenceArray = [];\r\n for (let i = 0; i < length; i++) {\r\n sequenceArray.push(i);\r\n }\r\n return sequenceArray;\r\n};\r\n\r\n/** Vytvoří pole zadané délky a naplní jej zadaným textovým řetězcem doplněným o index. */\r\nexport const createSequenceArrayString = (length: number, text: string): string[] => {\r\n const sequenceArray: string[] = [];\r\n for (let i = 0; i < length; i++) {\r\n sequenceArray.push(text + i);\r\n }\r\n return sequenceArray;\r\n};\r\n\r\n/** Vytvoří pole zadané délky a naplní jej prázdnými textovými řetězcemi. */\r\nexport const createArrayWithEmptyStrings = (count: number) => {\r\n const array: string[] = [];\r\n for (let i = 0; i < count; i++) {\r\n array.push(\"\");\r\n }\r\n return array;\r\n};\r\n\r\n/**\r\n * Vytvoří náhodné pole čísel v zadaném rosahu a převede je na textové řetězce.\r\n * @param count Požadovaná velikost pole.\r\n * @param from Rozsah - generovat od tohoto čísla.\r\n * @param to Rozsah - generovat do tohoto čísla.\r\n */\r\nexport const createRandomStringArray = (count: number, from: number, to: number): string[] => {\r\n const randomArray = [];\r\n for (let i = 0; i < count; i++) {\r\n randomArray.push((Math.floor(Math.random() * (to - from + 1)) + from).toString());\r\n }\r\n return randomArray;\r\n};\r\n\r\n/**\r\n * Vytvoří pole klíčů.\r\n * @param keyCount Počet klíčů k vytvoření.\r\n * @param prefix Případná předpona pro klíče.\r\n * @param sufix Případná přípona pro klíče.\r\n * @param random Pokud bude false, použijí se jako klíče indexy. Výchozí hodnota je true a v takovém případě použije náhodné čísla klíčů.\r\n */\r\nexport const createKeys = (keyCount: number, prefix = \"\", sufix = \"\", random = true) => createSequenceArray(keyCount)\r\n .map(index => `${prefix}_${random ? generateUUID() : index}_${sufix}`);\r\n\r\n/** Vytvoří pole klíčů pro skeletony o zadané délce s náhodnými ID, které mají předponu *row-skeleton*. */\r\n/**\r\n *\r\n * @param skeletonCount Počet skeletonů k vytvoření.\r\n * @param random Pokud bude false, použijí se jako klíče indexy. Výchozí hodnota je true a v takovém případě použije náhodné čísla klíčů.\r\n */\r\nexport const createSkeletonRowsKeys = (skeletonCount: number, random = true): string[] =>\r\n createKeys(skeletonCount, \"row-skeleton\", undefined, random);\r\n\r\n/**\r\n * Vytvoří obecný datasource atribut se zadaným názvem, případně i s dalšími předanými vlastnostmi. Do ostatních vlastností doplní null.\r\n * @param attributeName Název atributu\r\n * @param otherParams Další vlastnosti atributu\r\n */\r\nexport const createDataSourceAttribute = (attributeName: string, otherParams?: Partial<Omit<IDataSourceAttribute, \"attributeName\">>): IDataSourceAttribute => ({\r\n attributeName,\r\n locKey: otherParams?.locKey ?? null,\r\n hidden: otherParams?.hidden ?? null,\r\n isIcon: otherParams?.isIcon ?? null,\r\n iconName: otherParams?.iconName ?? null,\r\n backgroundAttrName: otherParams?.backgroundAttrName ?? null,\r\n displayFormat: otherParams?.displayFormat ?? null,\r\n attributeRendererKey: otherParams?.attributeRendererKey ?? null,\r\n trimValue: otherParams?.trimValue === undefined ? true : otherParams?.trimValue,\r\n extendedProperties: otherParams?.extendedProperties ?? EMPTY_OBJECT,\r\n});\r\n\r\n/**\r\n * Vytvoří datasource atribut se zadaným názvem, případně i s dalšími předanými vlastnostmi. Do ostatních vlastností doplní null.\r\n * @param attributeName Název atributu\r\n * @param otherParams Další vlastnosti atributu\r\n */\r\nexport const createDataSourceAttributeFromType = <T>(name: keyof T, otherParams?: Partial<Omit<IDataSourceAttribute, \"attributeName\">>) => createDataSourceAttribute(name.toString(), otherParams);\r\n\r\n/**\r\n * Funkce pro vytvoření reduceru, který mapuje instance podle klíče. Vložený reducer je použit pro každou instanci zvlášť.\r\n * Pokud klíč neexistuje, akce je ignorována.\r\n *\r\n * @param reducer Reducer, který se používá pro každou instanci.\r\n * @param instanceKeyResolver Selector funkce, která z akce vrátí klíč.\r\n */\r\nexport const createInstanceMapReducer = <S, A extends Action = AnyAction>(\r\n reducer: Reducer<S, A>,\r\n instanceKeyResolver: (action: A) => string | undefined,\r\n) => (state: TypedObject<S>, action: A) => {\r\n const instanceKey = instanceKeyResolver(action);\r\n if (instanceKey) {\r\n const instanceState = reducer(state[instanceKey], action);\r\n return produce(state, (draft: any) => {\r\n draft[instanceKey] = instanceState;\r\n });\r\n } else {\r\n return state;\r\n }\r\n };\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IPublicAttributeInfo, OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IOrderBy, OrderType } from \"@multiweb/types/multiweb\";\r\nimport { EncryptedRecordType, ReactAction, RecordType, TypedObject } from \"@multiweb/types/react\";\r\nimport { CLICKABLE_ROW_ACTION_MOCK } from \"./constants\";\r\n\r\nconst { dateToString } = bridge;\r\n\r\n/**\r\n * Slouží k zobrazení akcí.\r\n * @param actions Zobrazí zadané akce.\r\n * @param clickableRow Pokud je pravda, přidá akci sloužící ke kliknutí na řádek.\r\n */\r\nexport const displayActions = (actions: ReactAction[], clickableRow: boolean) =>\r\n clickableRow ? actions.concat(CLICKABLE_ROW_ACTION_MOCK) : actions;\r\n\r\n/**\r\n * Vrací n-tý prvek z pole. Pokud je index větší než délka pole jako index bere zbytek po dělení délkou pole.\r\n *\r\n * @example\r\n * const names = [\"John\", \"Mike\", \"Monica\", \"Jane\"];\r\n * getNth(3, names); // \"Jane\"\r\n * getNth(4, names); // \"John\"\r\n * getNth(40, names); // \"John\"\r\n *\r\n * @param array Pole, ze kterého bereme prvek.\r\n * @param index Index prvku.\r\n */\r\nexport const getNthItem = <T>(array: ReadonlyArray<T>, index: number): T | undefined => {\r\n if (array.length === 0) {\r\n return undefined;\r\n }\r\n const realIndex = index % array.length;\r\n return array[realIndex];\r\n};\r\n\r\n/**\r\n * Vrátí pole vyfiltrovaných dat.\r\n * @param data Data pro filtrování.\r\n * @param attributesInfo Informace o atributech.\r\n * @param filterAttributesNames Pole názvů atributů, podle kterých se má filtrovat.\r\n * @param condition Podmínka pro filtrování.\r\n */\r\nexport const filterData = (\r\n data: RecordType[],\r\n attributesInfo: TypedObject<IPublicAttributeInfo>,\r\n filterAttributesNames: ReadonlyArray<string>,\r\n condition: string,\r\n): RecordType[] => {\r\n const fulltextAttributesInfo: IPublicAttributeInfo[] = filterAttributesNames.map(\r\n (attributeName) => attributesInfo[attributeName],\r\n );\r\n\r\n return data.filter((obj) => {\r\n for (const { attributeName, type } of fulltextAttributesInfo) {\r\n let found = false;\r\n switch (type) {\r\n case OWDataType.date: {\r\n if (!(obj[attributeName].value instanceof Date)) {\r\n continue;\r\n }\r\n found = dateToString(obj[attributeName].value).split(\" \")[0].includes(condition);\r\n break;\r\n }\r\n case OWDataType.time: {\r\n if (!(obj[attributeName].value instanceof Date)) {\r\n continue;\r\n }\r\n found = dateToString(obj[attributeName].value).split(\" \")[1].includes(condition);\r\n break;\r\n }\r\n case OWDataType.dateTime: {\r\n if (!(obj[attributeName].value instanceof Date)) {\r\n continue;\r\n }\r\n found = dateToString(obj[attributeName].value).includes(condition);\r\n break;\r\n }\r\n default: {\r\n found = obj[attributeName].value?.toString().toLowerCase().includes(condition);\r\n }\r\n }\r\n if (found) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n};\r\n\r\n/**\r\n * Vrátí pole seřazených dat.\r\n *\r\n * @param data Data pro seřazení (funkce vstupní pole neovlivní - vrací pole nové).\r\n * @param orderBy Pole atributů pro seřazení a druhů řazení.\r\n */\r\nexport const orderData = (data: RecordType[], orderBy: ReadonlyArray<IOrderBy>) =>\r\n [...data].sort((a, b) => {\r\n for (const { attributeName, order } of orderBy) {\r\n const first = a[attributeName]?.value;\r\n const second = b[attributeName]?.value;\r\n if (first === second) {\r\n continue;\r\n } else {\r\n const result = first && second ? (first < second ? -1 : 1) : first ? -1 : 1;\r\n return order === OrderType.ascending ? result : -result;\r\n }\r\n }\r\n return 0;\r\n });\r\n\r\n/**\r\n * Převede pole na TypedObject, identifikátory získá pomocí funkce getId.\r\n *\r\n * @param reducedArray Pole, které převede na TypedObject.\r\n * @param getId Funkce, která získá identifikátor z objektu.\r\n * @returns TypedObject s namapovanými prvky z pole pod indentifikátory získaných pomocí funkce getId.\r\n */\r\nexport const reduceArrayToTypedObject = <T>(\r\n reducedArray: ReadonlyArray<T>,\r\n getId: (value: T) => string,\r\n): TypedObject<T> => reducedArray.reduce(\r\n (acc, value) => ({\r\n ...acc,\r\n [getId(value).toLowerCase()]: value,\r\n }),\r\n {},\r\n );\r\n\r\n/**\r\n * Vytvoří nový typovaný objekt, kde je pod zadanými identifikátory zadaná hodnota.\r\n *\r\n * @param idsArray Pole indentifikátorů pro které se má nastavit zadaná hodnota.\r\n * @param value Hodnota přiřazená pod identifikátory.\r\n */\r\nexport const setAllObjectPropertiesFromIdsArray = <T>(idsArray: ReadonlyArray<string>, value: T): TypedObject<T> =>\r\n idsArray.reduce((acc, id) => ({ ...acc, [id]: value }), {});\r\n\r\n/**\r\n * Vytvoří záznam pro data grid\r\n * @param properties objekt typu klíč:hodnota, který definuje atributy a hodnoty vytvářeného záznamu.\r\n * @param isRecordEncrypted Informace, zda je záznam zašifrovaný.\r\n */\r\nexport const createRecord = (properties: Record<string, unknown>, isRecordEncrypted?: boolean): RecordType | EncryptedRecordType => {\r\n const keyValuesTempObject = {};\r\n Object.keys(properties).forEach(k => Reflect.set(keyValuesTempObject, k, { value: properties[k] }));\r\n if (isRecordEncrypted) {\r\n return { ...keyValuesTempObject, encrypted: { value: true } } as EncryptedRecordType;\r\n } else {\r\n return { ...keyValuesTempObject } as RecordType;\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří objekt, který popisuje vlastnosti atributu Např. jeho název, datový typ, atd.\r\n * @param attributeName Název atributu\r\n * @param type Datový typ atributu\r\n * @param encryptingAlowed Určuje, jestli podporuje šifrování.\r\n */\r\nexport const createPublicAttributeInfo = (attributeName: string, type: OWDataType = OWDataType.string, encryptingAlowed?: boolean): IPublicAttributeInfo => {\r\n return {\r\n attributeName,\r\n type,\r\n encryptingAlowed,\r\n };\r\n};\r\n","import { GridItemsHeight } from \"@multiweb/reactComponents\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\n\r\n/** Výčtový typ sloužící k výběru typů atributů pro stories. */\r\nexport enum StoryAttributeTypes {\r\n date = OWDataType.date,\r\n time = OWDataType.time,\r\n dateTime = OWDataType.dateTime,\r\n string = OWDataType.string,\r\n boolean = OWDataType.boolean,\r\n icon = OWDataType.icon,\r\n document = OWDataType.document,\r\n}\r\n\r\nexport const dateTypes = new Set<OWDataType>([\r\n OWDataType.date,\r\n OWDataType.time,\r\n OWDataType.dateTime,\r\n]);\r\n\r\nexport const moneyNumberTypes = new Set<OWDataType>([\r\n OWDataType.decimal,\r\n OWDataType.money,\r\n]);\r\n\r\nexport const realNumberTypes = new Set<OWDataType>([\r\n OWDataType.bcd,\r\n OWDataType.double,\r\n OWDataType.single,\r\n]);\r\n\r\nexport const wholeNumberTypes = new Set<OWDataType>([\r\n OWDataType.byte,\r\n OWDataType.short,\r\n OWDataType.integer,\r\n OWDataType.int64,\r\n]);\r\n\r\nexport const numberTypes = new Set<OWDataType>([\r\n ...moneyNumberTypes,\r\n ...realNumberTypes,\r\n ...wholeNumberTypes,\r\n]);\r\n\r\n/** Výčtový typ sloužící k výběru typu seznamu. */\r\nexport enum CommonListsTypes {\r\n infiniteVirtualizedList,\r\n responsiveList,\r\n}\r\n\r\n/**\r\n * Nastavení položky (MockGridLayoutItem) pro vygenerování pomocí funkce *generateGridItemsFromDivClassNames*.\r\n * @param divClassNames Pole CSS tříd pro položku.\r\n * @param height Výška generované položky.\r\n * @param gridItemsHeight Určuje, zdali si položky GridLayoutu zachovají výšku z definice (keepHeight), nebo se roztáhnou na výšku řádku.\r\n * @param order Určuje pozici položky v gridu\r\n */\r\nexport type GridItemOptions = {\r\n readonly divClassNames?: string[];\r\n readonly height?: number | string;\r\n readonly gridItemsHeight?: GridItemsHeight;\r\n readonly order?: number;\r\n};\r\n","import { GridItemsHeight } from \"@multiweb/reactComponents\";\r\nimport { LocalizationItem } from \"@multiweb/reactCore/i18n/dev\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ActionType, IOrderBy, OrderType } from \"@multiweb/types/multiweb\";\r\nimport { ReactAction, TypedObject } from \"@multiweb/types/react\";\r\nimport { EMPTY_ARRAY } from \"../constants\";\r\nimport { createSequenceArray } from \"../create\";\r\nimport { getNthItem } from \"./methods\";\r\nimport { GridItemOptions } from \"./types\";\r\n\r\n/**\r\n * Vytvoří akce na základě zadaných počtů.\r\n * @param actionsCount Počet akcí s klasickým tlačítkem.\r\n * @param iconActionsCount Počet akcí s ikonovým tlačítkem.\r\n * @param locItems Mapa lokalizací k akcím.\r\n */\r\nexport const createMockReactActionArray = (\r\n actionsCount: number,\r\n iconActionsCount: number,\r\n locItems?: TypedObject<LocalizationItem>,\r\n): ReactAction[] => {\r\n const locKeys = locItems ? Object.keys(locItems) : EMPTY_ARRAY;\r\n return createSequenceArray(actionsCount + iconActionsCount).map((index) => ({\r\n id: index.toString(),\r\n locKey: getNthItem(locKeys, index),\r\n text: \"TextButton\",\r\n iconCode: index >= actionsCount ? IconCode.editorialPencil : undefined,\r\n actionType: ActionType.method,\r\n enabled: true,\r\n enabledVisual: true,\r\n order: index + 1,\r\n priority: actionsCount + iconActionsCount - index,\r\n visible: true,\r\n isActive: true,\r\n }));\r\n};\r\n\r\n/**\r\n * Vytvoří pole typu *GridItemOptions* o zadané délce.\r\n * @param length Požadovaná velikost pole.\r\n * @param gridItemsHeight Určuje, zdali si položky GridLayoutu zachovají výšku z definice (keepHeight), nebo se roztáhnou na výšku řádku.\r\n */\r\nexport const createGridItemOptionsArray = (length: number, gridItemsHeight?: GridItemsHeight): GridItemOptions[] => {\r\n const gridItemOptions: GridItemOptions[] = [];\r\n for (let i = 0; i < length; i++) {\r\n gridItemOptions.push({ gridItemsHeight, order: i });\r\n }\r\n return gridItemOptions;\r\n};\r\n\r\n/**\r\n * Vytvoří typ pro řazení podle zadaných atributů.\r\n * @param attributes Atributy pro řazení oddělené středníkem (např.: attr0;DESC attr1;attr2).\r\n */\r\nexport const createOrderBy = (attributes: string): ReadonlyArray<IOrderBy> =>\r\n attributes\r\n .split(\";\")\r\n .filter((att) => att !== \"\")\r\n .map((attr) => {\r\n let order: OrderType = OrderType.ascending;\r\n let attributeName = attr;\r\n const splitedOrder = attr.split(\" \");\r\n if (splitedOrder.length === 2) {\r\n attributeName = splitedOrder[1];\r\n if (splitedOrder[0].toUpperCase() === \"DESC\") {\r\n order = OrderType.descending;\r\n }\r\n }\r\n return {\r\n attributeName,\r\n order,\r\n };\r\n });\r\n","import { ILocalizationItem } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Vytvoří lokalizační položku se zadanými daty.\r\n * @param locKey Lokalizační klíč.\r\n * @param primaryText Text překladu.\r\n * @param secondaryText Podrobný text překladu.\r\n */\r\nconst createLocalizationItem = (locKey: string, primaryText: string, secondaryText?: string): ILocalizationItem => ({\r\n language: \"MOCK_LANG\",\r\n locKey,\r\n primaryText,\r\n secondaryText,\r\n});\r\n\r\n/**\r\n * Vytvoří lokalizační mapu na základě zadaných dat. Tu je pak možné použít pro naplnění stavu i18n modulu\r\n * pomocí akce z bridge modulu createLocalizationLoadedAction.\r\n *\r\n * Slouží primárně pro testy v i18n a bridge modulu. Pro ostatní případy by měly být dostačující prostředky popsané\r\n * ve Storybooku (https://teaf.tescosw.cz/mw/storybook/?path=/story/dokumentace-moduly-core-i18n--použití).\r\n *\r\n * @param localizationDefinition Objekt s definicí překladů. Například:\r\n * {\r\n * \"GUI-123\": {primaryText: \"Přeložený text\", secondaryText: \"Detailní popis\"},\r\n * \"GUI-345\": {primaryText: \"Jiný přeložený text\"},\r\n * }\r\n */\r\nexport const createLocalizationMap = (localizationDefinition: {[key: string]: {primaryText: string; secondaryText?: string}}): ReadonlyMap<string, ILocalizationItem> => {\r\n return new Map(\r\n Object.keys(localizationDefinition).map((locKey) => [\r\n locKey,\r\n createLocalizationItem(\r\n locKey,\r\n localizationDefinition[locKey].primaryText,\r\n localizationDefinition[locKey].secondaryText,\r\n ),\r\n ]),\r\n );\r\n};\r\n","export * from \"./constants\";\r\nexport * from \"./create\";\r\nexport * from \"./i18n\";\r\nexport * from \"./methods\";\r\nexport * from \"./types\";\r\n","/** Pole povolených znaků */\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\n\r\n/** Datové typy, které se mají formátovat jako BigNumber. */\r\nexport const BIG_NUMBER_DATA_TYPES: readonly (OWDataType | string)[] = [\r\n OWDataType.bcd,\r\n OWDataType.money,\r\n OWDataType.decimal,\r\n OWDataType.int64,\r\n];\r\n\r\n/** Klasická mezera */\r\nexport const CLASSIC_SPACE = \" \";\r\n\r\n/** Nedělitelná mezera (ASCII znak 160,  ) */\r\nexport const NON_BREAKING_SPACE = \"\\u00a0\";\r\n\r\n/** Regulární výraz pro nalezení klasické mezery v řetězci */\r\nexport const CLASSIC_SPACE_REGEX = new RegExp(CLASSIC_SPACE, \"g\");\r\n\r\n/** Znak pro minus, využívá se hlavně v arabštině. */\r\nexport const ARABIC_MINUS = String.fromCharCode(8722);\r\n\r\n/**\r\n * Znak indikující, že řetězec v arabštině je zapsán ve směru RTL.\r\n * @see https://www.fontspace.com/unicode/char/061C-arabic-letter-mark\r\n */\r\nexport const ARABIC_LETTER_MARK = String.fromCharCode(1564);\r\n","/** Zpracované props na základě datového typu. */\r\nexport type DataTypeSpecificProps = {\r\n displayFormat: string | undefined;\r\n isBigNumber: boolean;\r\n isWholeNumber: boolean;\r\n minValue: number | undefined;\r\n maxValue: number | undefined;\r\n};\r\n","import { useMemo } from \"react\";\r\n\r\nimport { NumEditComponentProps } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n ARABIC_LETTER_MARK,\r\n ARABIC_MINUS,\r\n BIG_NUMBER_DATA_TYPES,\r\n CLASSIC_SPACE_REGEX,\r\n NON_BREAKING_SPACE,\r\n} from \"./constants\";\r\nimport { DataTypeSpecificProps } from \"./types\";\r\n\r\nconst { groupSeparator, decimalSeparator, isWholeNumberType, getDefaultFormat, getTypeMinMax, removeFormatting } = bridge;\r\n\r\n/**\r\n * Odstraní oddělovače v naformátovaném čísle.\r\n * Před odstraněním se nahradí mezery za nedělitelné mezery - groupSeparator je obvykle uveden jako nedělitelná mezera.\r\n * @param value\r\n */\r\nexport const removeGroupSeparator = (value: string): string => (\r\n value\r\n .replace(CLASSIC_SPACE_REGEX, NON_BREAKING_SPACE)\r\n .replace(new RegExp(groupSeparator, \"g\"), \"\")\r\n);\r\n\r\n/**\r\n * Nahradí desetinnou tečku za desetinný oddělovač podle aktuální kultury.\r\n * @param value Řetězec reprezentující číslo v neutrální kultuře.\r\n */\r\nexport const addDecimalSeparator = (value: string): string => (\r\n value.replace(\".\", decimalSeparator)\r\n);\r\n\r\n/**\r\n * Mapuje číslice a znaky jiné kultury na standardní číslice.\r\n * @param value Řetězec reprezentující číselnou hodnotu v jiné kultuře. Jedná se především o hodnoty zadané do NumEditu.\r\n * @param numbers Pole znaků dané kultury, kde každý znak čísla je umístěn na příslušném indexu. Více info - {@link INumberFormatInfo.numbers}.\r\n */\r\nexport const remapNumbers = (value: string, numbers: readonly string[]): string => {\r\n const characterMap = new Map(numbers.map((d, i) => [d, String(i)]));\r\n characterMap.set(ARABIC_MINUS, \"-\");\r\n characterMap.set(ARABIC_LETTER_MARK, \"\");\r\n const regex = new RegExp(`[${[...numbers, ARABIC_MINUS, ARABIC_LETTER_MARK].join(\"\")}]`, \"g\");\r\n return value.replace(regex, char => characterMap.get(char) ?? \"\");\r\n};\r\n\r\n/**\r\n * Zpracuje props a atributy z elementu na základě datového typu.\r\n * @param minValueAttribute Atribut reprezentující dolní limit číselné hodnoty.\r\n * @param maxValueAttribute Atribut reprezentující horní limit číselné hodnoty.\r\n * @param displayFormatAttribute Formát, v jakém má být hodnota zobrazena.\r\n * @param dataType Datový typ.\r\n */\r\nexport const useDataTypeSpecificProps = (\r\n {\r\n minValue: minValueAttribute,\r\n maxValue: maxValueAttribute,\r\n displayFormat: displayFormatAttribute,\r\n dataType,\r\n }: Pick<NumEditComponentProps, \"maxValue\" | \"minValue\" | \"displayFormat\" | \"dataType\">,\r\n): DataTypeSpecificProps => {\r\n return useMemo(() => {\r\n if (!dataType) {\r\n return {\r\n isWholeNumber: false,\r\n isBigNumber: false,\r\n minValue: undefined,\r\n maxValue: undefined,\r\n displayFormat: undefined,\r\n };\r\n }\r\n const isBigNumber = BIG_NUMBER_DATA_TYPES.includes(dataType);\r\n const isWholeNumber = isWholeNumberType(dataType); // nastaví, zda má pracovat pouze s celými čísly\r\n // nebyl nastaven specifický displayFormat, tak se nastaví podle datového typu\r\n const displayFormat = displayFormatAttribute ?? getDefaultFormat(dataType);\r\n const bounds = getTypeMinMax(dataType);\r\n\r\n let minValue = minValueAttribute;\r\n let maxValue = maxValueAttribute;\r\n\r\n if (bounds) {\r\n if (!minValue || minValue < bounds.min) {\r\n minValue = bounds.min;\r\n }\r\n\r\n if (!maxValue || maxValue > bounds.max) {\r\n maxValue = bounds.max;\r\n }\r\n }\r\n return {\r\n isBigNumber,\r\n isWholeNumber,\r\n displayFormat,\r\n minValue,\r\n maxValue,\r\n };\r\n }, [dataType, displayFormatAttribute, maxValueAttribute, minValueAttribute]);\r\n};\r\n\r\n/**\r\n * Odstraní oddělovače tisíců a desetin.\r\n * V případě že je oddělovač tisíců mezera (dělitelná / nedělitelná), odstraní oba typy mezer.\r\n * @param value\r\n */\r\nexport const removeNumberFormatting = (value: string) => removeFormatting(value, groupSeparator, decimalSeparator);\r\n","import React, { forwardRef, useCallback, useEffect, useMemo, useState } from \"react\";\r\n\r\nimport {\r\n ExplicitValidation,\r\n IExplicitValidationFnDescription,\r\n IInstantValidationFnDescription,\r\n InstantValidation,\r\n} from \"@multiweb/reactControls\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { combineRefs, invariant, TOOLTIP_ID_PREFIX } from \"@multiweb/reactUtils\";\r\nimport { moneyNumberTypes, realNumberTypes } from \"@multiweb/reactUtils/shared\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { ForwardRefType, TextAlign, TextDirectionality } from \"@multiweb/types/react\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { EditComponent } from \"../EditComponent\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport { InputFake } from \"../InputFake\";\r\nimport { MultiEditWrapper, MultiEditWrapperFakeComponentRendererProps } from \"../MultiEditWrapper\";\r\nimport { NumberFormatter } from \"../NumberFormatter\";\r\nimport { ControlValue, EditableControlComponentProps, FormComponentProps, NumEditComponentProps } from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\nimport {\r\n addDecimalSeparator,\r\n remapNumbers,\r\n removeGroupSeparator,\r\n removeNumberFormatting,\r\n useDataTypeSpecificProps,\r\n} from \"./utils\";\r\n\r\nconst {\r\n createBigNumberProxy,\r\n getFormattedNumberString,\r\n getNumberFormat,\r\n} = bridge;\r\n\r\n/** Display format pro 2 desetinná místa. */\r\nconst DISPLAY_FORMAT_TWO_DECIMALS = \"0.00\";\r\n\r\nexport type NumEditProps = Omit<EditableControlComponentProps, \"ref\">\r\n & NumEditComponentProps\r\n & Pick<FormComponentProps, \"transparent\">;\r\n\r\nexport const NumEdit: ForwardRefType<HTMLInputElement, NumEditProps> = forwardRef<HTMLInputElement, NumEditProps>(({\r\n id,\r\n dataKey,\r\n displayFormat: displayFormatOriginal,\r\n dataType,\r\n onMount,\r\n onValidationCallback,\r\n postponedRequired,\r\n required,\r\n recommended,\r\n enabledVisual,\r\n triggerValueChange,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n encrypted,\r\n onMouseLeave,\r\n onMouseEnter,\r\n onMouseOver,\r\n onBlur,\r\n onFocus,\r\n transparent,\r\n onValidityChanged,\r\n onChange: onChangeExternal,\r\n minValue: minValueOriginal,\r\n maxValue: maxValueOriginal,\r\n locKey,\r\n isEditing,\r\n touched,\r\n multiEditActive,\r\n onKeyDown,\r\n onClick,\r\n}, ref) => {\r\n // Příznak, zda uživatel změnil hodnotu\r\n const [isTouched, setIsTouched] = useState(false);\r\n const [isFocused, setIsFocused] = useState(false);\r\n\r\n const { minValue, maxValue, displayFormat, isBigNumber, isWholeNumber } = useDataTypeSpecificProps({\r\n minValue: minValueOriginal,\r\n maxValue: maxValueOriginal,\r\n dataType,\r\n displayFormat: displayFormatOriginal,\r\n });\r\n const { numbers, useArabicNumbers } = getNumberFormat();\r\n\r\n const numberCharactersOnlyDescription: IInstantValidationFnDescription = useMemo(() => (\r\n InstantValidation.createNumberCharactersOnlyDescription(isWholeNumber)\r\n ), [isWholeNumber]);\r\n\r\n const minValueDescription: IExplicitValidationFnDescription | null = useMemo(() => (\r\n minValue ? ExplicitValidation.createMinValueDescription(minValue, isBigNumber) : null\r\n ), [isBigNumber, minValue]);\r\n\r\n const maxValueDescription: IExplicitValidationFnDescription | null = useMemo(() => (\r\n maxValue ? ExplicitValidation.createMaxValueDescription(maxValue, isBigNumber) : null\r\n ), [isBigNumber, maxValue]);\r\n\r\n const instantValidationFnDescriptions: IInstantValidationFnDescription[] = useMemo(() => (\r\n [numberCharactersOnlyDescription]\r\n ), [numberCharactersOnlyDescription]);\r\n\r\n const explicitValidationFnDescriptions: IExplicitValidationFnDescription[] = useMemo(() => {\r\n const descriptions: IExplicitValidationFnDescription[] = [];\r\n [minValueDescription, maxValueDescription].forEach(description => description && descriptions.push(description));\r\n return descriptions;\r\n }, [minValueDescription, maxValueDescription]);\r\n\r\n useEffect(() => {\r\n onMount && onMount({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n /**\r\n * Zpracuje hodnotu uloženou v reduxu a převede ji do podoby kompatibilní s Multiwebem.\r\n * @param rawValue Hodnota v reduxu.\r\n */\r\n getControlValue: (rawValue) => {\r\n if (!rawValue || Number.isNaN(+rawValue))\r\n return \"\";\r\n\r\n // Hodnota typu decimal nebo money se odešle na službu zaokrouhlená, viz 29790\r\n if (dataType && (moneyNumberTypes.has(dataType as OWDataType) || realNumberTypes.has(dataType as OWDataType))) {\r\n const valueToFormat = isBigNumber ? createBigNumberProxy(rawValue) : rawValue;\r\n // Naformátuje se na dvě desetinná místa a odstraní specifické oddělovače\r\n const formattedValue = getFormattedNumberString(valueToFormat, { displayFormat: displayFormat ?? DISPLAY_FORMAT_TWO_DECIMALS, dataType });\r\n const cleanedValue = useArabicNumbers ? formattedValue : remapNumbers(formattedValue, numbers);\r\n return removeNumberFormatting(cleanedValue);\r\n }\r\n\r\n return rawValue;\r\n },\r\n /**\r\n * Převede hodnotu ze záznamu na hodnotu kterou lze uložit v reduxu.\r\n * Hodnota BigNumber se v reduxu uloží jako řetězec. Zároveň se nastaví příznak {@link isBigNumber},\r\n * podle kterého NumEdit předá hodnotu formatteru jako BigNumber nebo jako klasický řetězec.\r\n *\r\n * @param controlValue Hodnota ze záznamu.\r\n * @returns string Výsledná hodnota je řetězec.\r\n */\r\n convertControlValueToRawValue: (controlValue: ControlValue): string => {\r\n if (controlValue == null) {\r\n return \"\";\r\n }\r\n\r\n if (typeof controlValue === \"number\") {\r\n const formattedValue = getFormattedNumberString(controlValue, { displayFormat, dataType });\r\n return removeNumberFormatting(formattedValue);\r\n }\r\n\r\n // Případ, že hodnota je BigNumber.\r\n if (typeof controlValue === \"object\") {\r\n invariant(controlValue.toString, \"[NumEdit] Object is not a BigNumber.\");\r\n return controlValue.toString();\r\n }\r\n\r\n return removeNumberFormatting(controlValue);\r\n },\r\n });\r\n }, [onMount, dataType, displayFormat, isBigNumber, useArabicNumbers, numbers]);\r\n\r\n const fakeComponentRenderer = useCallback(({ disabled }: MultiEditWrapperFakeComponentRendererProps) => (\r\n <InputFake { ...{ disabled, isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired } } />\r\n ), [isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired]);\r\n\r\n const tooltipId = TOOLTIP_ID_PREFIX + dataKey;\r\n\r\n return (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => (\r\n <ValidationErrorWrapper\r\n {...{\r\n dataKey,\r\n tooltipId,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n onValidityChanged,\r\n instantValidationFnDescriptions,\r\n explicitValidationFnDescriptions,\r\n }}\r\n >\r\n {({ validate, invalid }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }}>\r\n {({ disabled, backgroundColor, readOnly }) => (\r\n <MultiEditWrapper fakeComponentRenderer={fakeComponentRenderer} {...{ multiEditActive, disabled, isEditing, touched }}>\r\n {({ ref: checkBoxRef }) => {\r\n const joinedRefs = combineRefs<HTMLInputElement>(checkBoxRef, ref);\r\n const isSign = rawValue === \"+\" || rawValue === \"-\";\r\n const valueToFormat = isBigNumber && !isSign ? createBigNumberProxy(rawValue) : rawValue;\r\n\r\n return (\r\n <NumberFormatter\r\n value={valueToFormat}\r\n {...{ displayFormat, dataType }}\r\n >\r\n {(formattedValue) => {\r\n // Pokud uživatel píše, viditelná hodnota není formátována (docházelo by k zaokrouhlování a ořezávání řetězce)\r\n let value = isTouched && useArabicNumbers ? addDecimalSeparator(rawValue) : formattedValue;\r\n value = isFocused && !readOnly && isEditing ? removeGroupSeparator(value) : value;\r\n\r\n const valueChangeTrigger = () => {\r\n const cleanedValue = useArabicNumbers ? formattedValue : remapNumbers(formattedValue, numbers);\r\n const cultureNeutralValue = removeNumberFormatting(cleanedValue);\r\n /*\r\n Po opuštění pole se naformátovaná hodnota vyčistí a uloží do reduxu\r\n - děje se tak kvůli možnému zaokrouhlení hodnoty ve formátovači, kvůli kterému neprochází explicitní validace.\r\n */\r\n onChange(cultureNeutralValue);\r\n triggerValueChange && triggerValueChange();\r\n };\r\n\r\n return (\r\n <EditComponent\r\n ref={joinedRefs}\r\n onFocus={(event) => {\r\n setIsFocused(true);\r\n onFocus && onFocus(event);\r\n }}\r\n onBlur={(event) => {\r\n if (isTouched) {\r\n valueChangeTrigger();\r\n }\r\n\r\n setIsFocused(false);\r\n setIsTouched(false);\r\n validate(onValidationCallback);\r\n onBlur && onBlur(event);\r\n }}\r\n onChange={(value = \"\") => {\r\n setIsTouched(true);\r\n const cleanedValue = useArabicNumbers ? value : remapNumbers(value, numbers);\r\n const cultureNeutralValue = removeNumberFormatting(cleanedValue);\r\n onChange(cultureNeutralValue);\r\n onChangeExternal && onChangeExternal(value);\r\n }}\r\n onJavaScriptChange={(_e) => {\r\n valueChangeTrigger();\r\n }}\r\n dir={useArabicNumbers ? TextDirectionality.ltr : TextDirectionality.rtl}\r\n textAlign={TextAlign.end}\r\n ariaDescribedBy={tooltipId}\r\n fixCaretPosition={false}\r\n {...{\r\n id,\r\n encrypted,\r\n onMouseLeave,\r\n onMouseEnter,\r\n onMouseOver,\r\n onClick,\r\n backgroundColor,\r\n readOnly,\r\n invalid,\r\n value,\r\n transparent,\r\n }}\r\n />\r\n );\r\n }}\r\n </NumberFormatter>\r\n );\r\n }}\r\n </MultiEditWrapper>\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ValidationErrorWrapper>\r\n )}\r\n </ControlValueWrapper>\r\n );\r\n});\r\n","export { NumEdit, NumEditProps } from \"./NumEdit\";\r\n","import React, { forwardRef, Fragment, MouseEvent, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Cursor } from \"@multiweb/types/multiweb\";\r\nimport { ForwardRefType, MouseButton } from \"@multiweb/types/react\";\r\nimport { ButtonBackgroundColor, ButtonThemeVariant } from \"../ButtonProvider\";\r\nimport { EditComponent, EditComponentProps } from \"../EditComponent\";\r\nimport { IconColor } from \"../Icon/IconEnums\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { InputType } from \"../Input\";\r\nimport { SpacingSize } from \"../Layout\";\r\nimport { FormComponentEventHandlersProps, FormComponentProps } from \"../types\";\r\nimport { generateFormComponentClasses } from \"../utils\";\r\n\r\nconst classNames = bemClassNames(\"password-edit-component\");\r\n\r\nexport type PasswordEditComponentProps = {\r\n /** Příznak, zda-li se má zobrazit tlačítko pro odkrytí hesla */\r\n showUnhideButton?: boolean;\r\n /** Hodnota kurzoru předávaná níže do tlačítka */\r\n cursor?: Cursor;\r\n} & EditComponentProps\r\n& FormComponentProps\r\n& FormComponentEventHandlersProps;\r\n\r\nexport const PasswordEditComponent: ForwardRefType<HTMLInputElement, PasswordEditComponentProps> = forwardRef<HTMLInputElement, PasswordEditComponentProps>(({\r\n id,\r\n onBlur,\r\n onChange,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onClick,\r\n encrypted = false,\r\n required = false,\r\n showUnhideButton = true,\r\n disabled = false,\r\n invalid = false,\r\n backgroundColor,\r\n readOnly = true,\r\n onJavaScriptChange,\r\n value,\r\n cursor,\r\n}, ref) => {\r\n const classes = generateFormComponentClasses(classNames, {\r\n disabled,\r\n encrypted,\r\n invalid,\r\n required,\r\n backgroundColor,\r\n readOnly,\r\n }, [classNames()]);\r\n\r\n const [maskCharacters, setMaskCharacters] = useState<boolean>(true);\r\n const onIconClick = (e: MouseEvent<HTMLButtonElement>) => {\r\n onClick && onClick(e);\r\n };\r\n\r\n const onMouseOut = (_e: MouseEvent) => {\r\n if (!maskCharacters) {\r\n setMaskCharacters(true);\r\n }\r\n };\r\n const onMouseUp = (e: MouseEvent) => {\r\n if (e.button === MouseButton.leftButton) {\r\n setMaskCharacters(true);\r\n }\r\n };\r\n const onMouseDown = (e: MouseEvent) => {\r\n if (e.button === MouseButton.leftButton) {\r\n setMaskCharacters(false);\r\n }\r\n };\r\n\r\n const editComponentType = maskCharacters ? InputType.password : InputType.text;\r\n\r\n const edit = <EditComponent {...{\r\n id,\r\n encrypted,\r\n invalid,\r\n onClick,\r\n onMouseLeave,\r\n onMouseEnter,\r\n onMouseOver,\r\n onFocus,\r\n ref,\r\n backgroundColor,\r\n readOnly,\r\n type: editComponentType,\r\n transparent: true,\r\n value,\r\n onChange,\r\n onBlur,\r\n onJavaScriptChange,\r\n }}\r\n />;\r\n\r\n return showUnhideButton ? (\r\n <div className={classes}>\r\n <div className={classNames(\"password\")}>\r\n {edit}\r\n </div>\r\n <IconButton iconCode={IconCode.uiEye} onClick={onIconClick} {...{ onMouseOut, onMouseUp, onMouseDown, disabled, invalid, cursor }} spacingSize={SpacingSize.none}\r\n variant={ButtonThemeVariant.valuePicker} backgroundColor={ButtonBackgroundColor.inherit} color={IconColor.inherit} />\r\n </div>\r\n ) : (\r\n <Fragment>\r\n {edit}\r\n </Fragment>\r\n );\r\n});\r\n","export { PasswordEditComponent } from \"./PasswordEditComponent\";\r\n","import React, { forwardRef, useCallback, useEffect, useMemo } from \"react\";\r\nimport { defaultMemoize } from \"reselect\";\r\n\r\nimport { ControlReduxRawValue, ExplicitValidation, InstantValidation } from \"@multiweb/reactControls\";\r\nimport { combineRefs, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { Cursor } from \"@multiweb/types/multiweb\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport { InputFake } from \"../InputFake\";\r\nimport { MultiEditWrapper, MultiEditWrapperFakeComponentRendererProps } from \"../MultiEditWrapper\";\r\nimport { PasswordEditComponent } from \"../PasswordEditComponent\";\r\nimport { DataAttributesProps, EditableControlComponentProps } from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\n\r\nexport type PasswordEditProps = {\r\n /** Příznak, zda-li se má zobrazit tlačítko pro odkrytí hesla */\r\n showUnhideButton?: boolean;\r\n /** Hodnota kurzoru předávaná níže do tlačítka */\r\n cursor?: Cursor;\r\n}\r\n& Omit<EditableControlComponentProps, \"ref\">\r\n& Pick<DataAttributesProps, \"maxLength\" | \"validationRegex\">;\r\n\r\nexport const PasswordEdit: ForwardRefType<HTMLInputElement, PasswordEditProps> = forwardRef<HTMLInputElement, PasswordEditProps>(({\r\n id,\r\n dataKey,\r\n maxLength,\r\n validationRegex,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n onValidationCallback,\r\n onValidityChanged,\r\n onBlur,\r\n onChange: onChangeExternal,\r\n onMount,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onKeyDown,\r\n onClick,\r\n triggerValueChange,\r\n locKey,\r\n encrypted = false,\r\n multiEditActive,\r\n touched,\r\n enabledVisual,\r\n recommended,\r\n required = false,\r\n postponedRequired,\r\n isEditing,\r\n showUnhideButton = true,\r\n cursor = Cursor.initial,\r\n}, ref) => {\r\n // useMemo vrací memoizovanou funkci, která je přepočítána jenom v případě, kdy se mění parametr maxLength nebo rawValue.\r\n // Pokud jsou obě hodnoty stejné jako při posledním volání, nic nepřepočítává a vrací předchozí funkci.\r\n const createInstantDesc = useMemo(() => defaultMemoize((maxLength: number | undefined, rawValue: ControlReduxRawValue | undefined) =>\r\n maxLength ? [InstantValidation.createLengthDescription(rawValue, maxLength)] : EMPTY_ARRAY,\r\n ), []);\r\n\r\n const explicitValidationFnDescriptions = useMemo(() => validationRegex ? [ExplicitValidation.createRegexDescription(validationRegex)] : EMPTY_ARRAY, [validationRegex]);\r\n\r\n useEffect(() => {\r\n onMount && onMount({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n getControlValue: (rawValue) => rawValue,\r\n convertControlValueToRawValue: (controlValue) => controlValue,\r\n });\r\n // viz koment dole, bude opraveno v ramci 30853\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const fakeComponentRenderer = useCallback(({ disabled }: MultiEditWrapperFakeComponentRendererProps) => (\r\n <InputFake { ...{ disabled, isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired } } />\r\n ), [isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired]);\r\n\r\n return (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => {\r\n const instantValidationFnDescriptions = createInstantDesc(maxLength, rawValue);\r\n return (\r\n <ValidationErrorWrapper {...{ dataKey, instantValidationFnDescriptions, explicitValidationFnDescriptions, externalErrors, isInRequiredInvalidState, onValidityChanged }}>\r\n {({ invalid, validate }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }}>\r\n {({ disabled, backgroundColor, readOnly }) => (\r\n <MultiEditWrapper fakeComponentRenderer={fakeComponentRenderer} {...{ multiEditActive, disabled, isEditing, touched }}>\r\n {({ ref: editRef }) => {\r\n const joinedRefs = combineRefs<HTMLInputElement>(editRef, ref);\r\n return (\r\n <PasswordEditComponent\r\n {...{\r\n id,\r\n onFocus,\r\n onMouseEnter,\r\n onMouseLeave,\r\n onMouseOver,\r\n onClick,\r\n encrypted,\r\n required,\r\n showUnhideButton,\r\n disabled,\r\n invalid,\r\n backgroundColor,\r\n readOnly,\r\n cursor,\r\n value: rawValue,\r\n ref: joinedRefs,\r\n }}\r\n onBlur={(e) => {\r\n validate(onValidationCallback);\r\n onBlur && onBlur(e);\r\n }}\r\n onChange={(e) => {\r\n onChange(e);\r\n onChangeExternal && onChangeExternal(e);\r\n }}\r\n onJavaScriptChange={(_e) => {\r\n triggerValueChange && triggerValueChange();\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n </MultiEditWrapper>\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ValidationErrorWrapper>\r\n );\r\n }\r\n }\r\n </ControlValueWrapper>\r\n );\r\n});\r\n","export { PasswordEdit } from \"./PasswordEdit\";\r\n","import { createCreateActionType } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu reportingScalar. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"reportingScalar\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\nexport const SET_RESULT = createActionType(\"SET_RESULT\");\r\nexport const INIT = createActionType(\"INIT\");\r\nexport const CLEAR = createActionType(\"CLEAR\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { AggregationFunction, ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { CLEAR, SET_RESULT } from \"./constants\";\r\n\r\n/**\r\n * Struktura stavu modulu ReportingScalar.\r\n */\r\nexport type IReportingScalarState = TypedObject<ReportingScalar>;\r\n\r\ninterface IMappedAction extends Action<string> {\r\n readonly meta: {\r\n readonly dataKey: string;\r\n };\r\n}\r\n\r\nclass IMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.instanceId;\r\n }\r\n}\r\n\r\nexport interface IResultAction extends IMappedAction {\r\n readonly payload: {\r\n readonly result: string | undefined;\r\n };\r\n}\r\n\r\nexport class IResultAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_RESULT;\r\n }\r\n}\r\n\r\nexport interface IClearAction extends IMappedAction { }\r\n\r\nexport class IClearAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR;\r\n }\r\n}\r\n\r\nexport interface IInitAction extends IMappedAction {\r\n readonly payload: {\r\n readonly aggregationFunction?: AggregationFunction;\r\n readonly attrName?: string;\r\n readonly className: string;\r\n readonly condition: string;\r\n readonly conditionParams?: ConditionParams;\r\n readonly displayFormat: string;\r\n readonly formatProviderKey: string;\r\n readonly instanceId?: string;\r\n readonly methodName?: string;\r\n };\r\n}\r\n\r\nexport interface IResultFromDataReaderParams {\r\n readonly aggregationFunction: AggregationFunction;\r\n readonly attrName: string;\r\n readonly className: string;\r\n readonly condition: string;\r\n readonly conditionParams?: ConditionParams;\r\n}\r\n\r\nexport type ReportingScalar = Readonly<{\r\n value: string | undefined;\r\n}>;\r\n","import { AnyAction, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IClearAction, IReportingScalarState, IResultAction, ReportingScalar } from \"./types\";\r\n\r\nexport const reportingScalar: Reducer<ReportingScalar> = (state = { value: \"\" }, action) => {\r\n if (action instanceof IResultAction)\r\n return { value: action.payload.result };\r\n\r\n return state;\r\n};\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n if (action instanceof IResultAction)\r\n return action.meta.dataKey;\r\n\r\n return undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(reportingScalar, instanceKeyResolver);\r\n\r\nexport const reducer: Reducer<IReportingScalarState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IClearAction)\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.dataKey];\r\n });\r\n if (action instanceof IResultAction)\r\n return instanceMapReducer(state, action);\r\n\r\n return state;\r\n};\r\n","import { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport { CLEAR, INIT, SET_RESULT } from \"./constants\";\r\nimport { IClearAction, IInitAction, IResultAction } from \"./types\";\r\n\r\n/**\r\n * Inicializuje reportovací komponentu se zadaným klíčem\r\n * @param dataKey Klíč reportovací komponenty sloužící k její jednoznačné identifikaci\r\n * @param className Jméno třídy, nad kterou se provádí zjištění agregované hodnoty\r\n * @param attrName Jméno atributu, ze kterého se bude zjišťovat hodnota\r\n * @param aggregationFunction Agregační funkce\r\n * @param condition Podmínka pro omezení dat\r\n * @param conditionParams Parametry podmínky\r\n * @param displayFormat Formátovací řetězec pro zformátování načtené hodnoty\r\n * @param formatProviderKey Název funkce provádějící formátování výsledné hodnoty\r\n * @param interactive Příznak, zda je komponenta interactivní\r\n * @param instanceId Id instance aktuálního objektu\r\n * @param methodName Statická metoda pro načtení dat\r\n * @returns\r\n */\r\nexport const createInitAction = (\r\n aggregationFunction: AggregationFunction,\r\n attrName: string,\r\n className: string,\r\n condition: string,\r\n dataKey: string,\r\n displayFormat: string,\r\n formatProviderKey: string,\r\n conditionParams?: string[],\r\n instanceId?: string,\r\n methodName?: string,\r\n): IInitAction => ({\r\n type: INIT,\r\n payload: {\r\n aggregationFunction,\r\n attrName,\r\n className,\r\n condition,\r\n conditionParams,\r\n displayFormat,\r\n formatProviderKey,\r\n instanceId,\r\n methodName,\r\n },\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce volaná po načtení hodnoty\r\n * @param dataKey Klíč záznamu\r\n * @param result Načtená hodnota\r\n */\r\nexport const createSetResultAction = (dataKey: string, result: string | undefined): IResultAction => ({\r\n type: SET_RESULT,\r\n payload: {\r\n result,\r\n },\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n\r\n/** Akce starající se o smazání instance Reporting Scalaru ze storu.\r\n * @param dataKey Klíč záznamu\r\n */\r\nexport const createClearAction = (dataKey: string): IClearAction => ({\r\n type: CLEAR,\r\n meta: {\r\n dataKey,\r\n },\r\n});\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const reportingScalarLogger = LazyLoadingSectionLogger.create(LoggingSection.dataSource);\r\n","import { call, put, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { ConditionParam, ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IRunMethodResult } from \"@multiweb/types/contracts\";\r\nimport { CancellationToken, IOWObject } from \"@multiweb/types/multiweb\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport { ConditionOperator, StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { createClearAction, createSetResultAction } from \"./action\";\r\nimport { INIT } from \"./constants\";\r\nimport { reportingScalarLogger } from \"./logger\";\r\nimport { IInitAction, IResultFromDataReaderParams } from \"./types\";\r\n\r\nconst { getDataReaderClient, getFormattedNumberString, runStaticMethodWithParams, getInstance } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* reportingScalarSaga() {\r\n yield takeEvery([INIT], loadReportingScalarResultSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení dat\r\n */\r\nexport const loadReportingScalarResultSaga: SagaWithReturnType<[IInitAction]> = function* loadReportingScalarResultSaga(action) {\r\n const { aggregationFunction, className, attrName, condition, conditionParams, displayFormat, formatProviderKey, methodName, instanceId } = action.payload;\r\n const { dataKey } = action.meta;\r\n\r\n try {\r\n let result: string = \"\";\r\n let actualObject: IOWObject | undefined;\r\n\r\n if (instanceId)\r\n actualObject = yield call(getInstance, instanceId);\r\n\r\n //komponenta na detailFramu, načítá hodnotu z actualObjectu\r\n if (actualObject && attrName && !aggregationFunction) {\r\n const getValue = actualObject.getValue.bind(actualObject);\r\n result = yield call(getValue, attrName);\r\n } else {\r\n if (attrName && aggregationFunction) {\r\n const condParamsAttr = yield call(createReaderConditionParams, actualObject, conditionParams);\r\n const finalCondition = StringUtils.combineConditions(ConditionOperator.and, \"ID <> 0\", condition);\r\n result = yield call(loadResultFromDataReaderSaga, { aggregationFunction, className, attrName, condition: finalCondition, conditionParams: condParamsAttr });\r\n } else if (methodName) {\r\n result = yield call(loadResultFromStaticMethod, className, methodName, conditionParams);\r\n }\r\n }\r\n\r\n //pokud je výsledkem dotazu null, nechci nechat prázdné pole\r\n if (!result)\r\n result = \"0\";\r\n\r\n const formattedResults = getFormattedNumberString(result, { displayFormat: displayFormat }, formatProviderKey);\r\n\r\n yield put(createSetResultAction(dataKey, formattedResults));\r\n } catch (error: any) {\r\n yield call(reportingScalarLogger.error, \"Loading of aggregations failed: %s. Input parameters: %O\", error.message, {\r\n instanceId,\r\n className,\r\n condition,\r\n conditionParams,\r\n });\r\n // při chybě vymažeme předchozí výsledek, protože již není aktuální\r\n yield put(createClearAction(dataKey));\r\n }\r\n};\r\n\r\n/**\r\n * Načítá data pomocí dataReaderClienta\r\n * @param params parametry pro načtení dat z dataReaderClienta\r\n * @returns agregovaná hodnota\r\n */\r\nconst loadResultFromDataReaderSaga: SagaWithReturnType<[IResultFromDataReaderParams], string> = function* loadReportingScalarResultSaga(params) {\r\n const { aggregationFunction, className, attrName, condition, conditionParams } = params;\r\n\r\n const dataReaderClient: ReturnType<typeof getDataReaderClient> = yield call(getDataReaderClient);\r\n return yield call(dataReaderClient.getAggregation.bind(dataReaderClient), aggregationFunction, className, attrName, condition, conditionParams);\r\n};\r\n\r\n/**\r\n * Načtení dat ze statické metody\r\n * @param className třída na které je statická metoda\r\n * @param methodName statická metoda vracející hodnotu\r\n * @param params parametry statické metody\r\n * @returns hodnota vrácená statickou metodou\r\n */\r\nconst loadResultFromStaticMethod: SagaWithReturnType<[string, string, ConditionParams], IRunMethodResult> = function* loadResultFromStaticMethod(className, methodName, params) {\r\n const result: SagaYieldReturn<typeof runStaticMethodWithParams> = yield call(runStaticMethodWithParams, { className, methodName, params: params?.map(x => x) }, new CancellationToken());\r\n\r\n return result.resultValue;\r\n};\r\n\r\n/** Vytvoří kolekci parametrů\r\n * @param actualObject objekt ze kterého se má načíst hodnota pro parametr\r\n * @param conditionParamsAttrs vstupní atributy\r\n * @returns seznam hodnot parametrů pro podmínky\r\n */\r\nconst createReaderConditionParams: SagaWithReturnType<[any, ConditionParams], ConditionParams> = function* createReaderConditionParams(actualObject, conditionParamsAttrs) {\r\n if (actualObject && conditionParamsAttrs) {\r\n const condParam: ConditionParam[] = [];\r\n for (const param of conditionParamsAttrs) {\r\n const getValue = actualObject.getValue.bind(actualObject);\r\n condParam.push(yield call(getValue, param));\r\n }\r\n\r\n return condParam;\r\n } else\r\n return conditionParamsAttrs;\r\n};\r\n","import React, { FunctionComponent, useRef } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames, transformKeysToParamCase, useFitText } from \"@multiweb/reactUtils\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\nimport { Skeleton } from \"../Skeleton\";\r\n\r\nconst { flagToCss } = bridge;\r\n\r\nconst classNames = bemClassNames(\"reporting-scalar\");\r\n\r\nexport enum ColorIntensity {\r\n none = \"none\",\r\n default = \"default\",\r\n vibrant = \"vibrant\",\r\n inverted = \"inverted\",\r\n}\r\n\r\nexport type ReportingScalarComponentProps = {\r\n\r\n /** Barva pozadí */\r\n readonly backgroundColor: FlagColor;\r\n /** Nadpis */\r\n readonly caption?: string;\r\n /** intenzita barvy */\r\n readonly colorIntensity: ColorIntensity;\r\n /** Formulář otevřený při kliku */\r\n readonly formName?: string;\r\n /** jestli je interaktivní */\r\n readonly interactive: boolean;\r\n /** Hlavní údaj získaný z dotazu */\r\n readonly value?: string;\r\n /** Popis */\r\n readonly description?: string;\r\n /** Funkce pro otevření formmuláře */\r\n readonly onClick: () => void;\r\n};\r\n\r\nexport const ReportingScalarComponent: FunctionComponent<ReportingScalarComponentProps> = ({\r\n backgroundColor,\r\n caption,\r\n value,\r\n description,\r\n colorIntensity,\r\n interactive,\r\n formName,\r\n onClick,\r\n}) => {\r\n const refValue = useRef<HTMLElement>(null);\r\n const refParent = useRef<HTMLElement>(null);\r\n\r\n const fontSize = useFitText(refValue, refParent, 100, value);\r\n\r\n return (\r\n <div\r\n className={classNames(transformKeysToParamCase({ withForm: !!formName, disabled: !interactive }))}\r\n data-bg-type={colorIntensity}\r\n data-flag={flagToCss(backgroundColor)}\r\n onClick={onClick}\r\n >\r\n <span className={classNames(\"caption\")} title={caption}>{caption}</span>\r\n <span className={classNames(\"description\")} title={description}>{description}</span>\r\n <span ref={refParent} className={classNames(\"value\")}>\r\n <span ref={refValue} style={{ fontSize }} title={value}>{value ?? <Skeleton height={\"50%\"} />}</span>\r\n </span>\r\n </div>\r\n );\r\n};\r\n","export * from \"./ReportingScalarComponent\";\r\n","import React, { FunctionComponent, useCallback, useEffect } from \"react\";\r\n\r\nimport { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport { bridge, createOpenFormModalAction } from \"@multiweb/reactCore/bridge\";\r\nimport { IOWObject } from \"@multiweb/types/multiweb\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\nimport { createClearAction, createInitAction } from \"../ReportingScalar/action\";\r\nimport { ColorIntensity, ReportingScalarComponent } from \"../ReportingScalarComponent\";\r\n\r\nconst { getDataEventsManager, getInstance } = bridge;\r\n\r\nexport type ReportingScalarProviderProps = Readonly<{\r\n /** Background Color */\r\n backgroundColor: FlagColor;\r\n /** Caption */\r\n caption?: string;\r\n /** Color Intensity */\r\n colorIntensity: ColorIntensity;\r\n /** Form thats opened on click */\r\n formName?: string;\r\n /** If its interactive */\r\n interactive: boolean;\r\n /** Main value from fetched data */\r\n value?: string;\r\n /** Description */\r\n description?: string;\r\n /** Type of dataEvent */\r\n eventName?: string;\r\n /** Name of class from dataEvents */\r\n subEventName?: string;\r\n /** Source of dataEvent */\r\n eventSource?: string;\r\n /** Function for component value loading */\r\n loadData: (...args: Parameters<typeof createInitAction>) => void;\r\n /** Function for opening a form */\r\n createOpenFormModalAction: (...args: Parameters<typeof createOpenFormModalAction>) => void;\r\n /** Function for deleting a data from datKey */\r\n clearData: (...args: Parameters<typeof createClearAction>) => void;\r\n /** Name of attribute for loading aggregation value */\r\n attrName: string;\r\n /** Aggregation function */\r\n aggregationFunc: AggregationFunction;\r\n /** Class name */\r\n className: string;\r\n /** Condition for loading data */\r\n condition: string;\r\n /** Condition parameters */\r\n conditionParams?: string[];\r\n /** Format in which to display resulting value */\r\n displayFormat: string;\r\n /** Name of function for formatting aggregation value */\r\n formatProviderKey: string;\r\n /** Static method for loading data */\r\n methodName?: string;\r\n /** Instance of actualObject */\r\n instanceId?: string;\r\n /** Unique id linking to fetched data */\r\n dataKey: string;\r\n /** Name of a link to a master object */\r\n masterLinkToAttr?: string;\r\n}>;\r\n\r\n/** Stará se o načítání dat pro komponentu {@link ReportingScalarComponent}*/\r\nexport const ReportingScalarProvider: FunctionComponent<ReportingScalarProviderProps> = ({\r\n backgroundColor,\r\n colorIntensity,\r\n interactive,\r\n createOpenFormModalAction,\r\n loadData,\r\n caption,\r\n description,\r\n eventName,\r\n eventSource,\r\n formName,\r\n subEventName,\r\n value,\r\n attrName,\r\n aggregationFunc,\r\n className,\r\n condition,\r\n conditionParams,\r\n displayFormat,\r\n formatProviderKey,\r\n methodName,\r\n dataKey,\r\n instanceId,\r\n masterLinkToAttr,\r\n clearData,\r\n}) => {\r\n const loadDataCallback = useCallback(() => {\r\n loadData(\r\n aggregationFunc,\r\n attrName,\r\n className,\r\n condition,\r\n dataKey,\r\n displayFormat,\r\n formatProviderKey,\r\n conditionParams,\r\n instanceId,\r\n methodName,\r\n );\r\n }, [\r\n loadData,\r\n aggregationFunc,\r\n attrName,\r\n className,\r\n condition,\r\n displayFormat,\r\n formatProviderKey,\r\n conditionParams,\r\n instanceId,\r\n methodName,\r\n dataKey,\r\n ]);\r\n\r\n // Loads data after mount, or after any of the arguments used for data fetching changes\r\n useEffect(() => {\r\n loadDataCallback();\r\n }, [loadDataCallback]);\r\n\r\n // Deletes data after unmount, or after dataKey changes\r\n useEffect(() => {\r\n return () => clearData(dataKey);\r\n }, [clearData, dataKey]);\r\n\r\n // Watches for data changes and on change re-fetches them\r\n useEffect(() => {\r\n //TODO: This will be needing a change according to concept, thats supposed to be created on the basis of 37576 Architektura react komponent s oddělenou logikou (POC)\r\n const dataEventsManager = getDataEventsManager();\r\n const dataEventListener = loadDataCallback;\r\n\r\n if (eventSource && eventName && subEventName && dataEventsManager) {\r\n dataEventsManager.subscribeDataEvent(eventSource, eventName, subEventName, dataEventListener);\r\n }\r\n return () => {\r\n if (eventSource && eventName && subEventName && dataEventsManager) {\r\n dataEventsManager.unsubscribeDataEvent(eventSource, eventName, subEventName, dataEventListener);\r\n }\r\n };\r\n }, [\r\n loadDataCallback,\r\n eventName,\r\n eventSource,\r\n subEventName,\r\n ]);\r\n\r\n const onClick = () => {\r\n if (interactive && formName) {\r\n let actualObject: IOWObject | undefined | null;\r\n if (instanceId)\r\n actualObject = getInstance(instanceId);\r\n\r\n createOpenFormModalAction({\r\n formName,\r\n condition,\r\n conditionParamsAttrs: conditionParams,\r\n conditionParamsObject: actualObject,\r\n masterLinkToAttr,\r\n masterObject: actualObject,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <ReportingScalarComponent\r\n {...{\r\n backgroundColor,\r\n colorIntensity,\r\n interactive,\r\n onClick,\r\n caption,\r\n description,\r\n formName,\r\n value,\r\n }}\r\n />\r\n );\r\n};\r\n","export * from \"./ReportingScalarProvider\";\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Vrací agregovanou hodnotu na základě instance.\r\n * @param state\r\n * @param dataKey ID instance komponenty\r\n */\r\nexport const getAggregationValue: Selector<IAppState, string | undefined, string> = (state, dataKey) => state.reportingScalar[dataKey]?.value;\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createOpenFormModalAction } from \"@multiweb/reactCore/bridge\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ReportingScalarProvider, ReportingScalarProviderProps } from \"../ReportingScalarProvider\";\r\nimport { ControlComponentProps } from \"../types\";\r\nimport { createClearAction, createInitAction } from \"./action\";\r\nimport { getAggregationValue } from \"./selectors\";\r\n\r\nexport type ReportingScalarProps = {\r\n /** Localization key of description */\r\n readonly secondaryLC?: string;\r\n} & Omit<ReportingScalarProviderProps, \"value\" | \"loadData\" | \"clearData\" | \"createOpenFormModalAction\"> & ControlComponentProps;\r\n\r\ntype StateProps = Pick<ReportingScalarProviderProps, \"value\" | \"caption\" | \"description\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ReportingScalarProps, IAppState> = (state, { dataKey, locKey, caption, secondaryLC, description }) => ({\r\n value: getAggregationValue(state, dataKey),\r\n caption: locKey ? getPrimaryText(state, locKey) : caption,\r\n description: secondaryLC ? getPrimaryText(state, secondaryLC) : description,\r\n});\r\n\r\ntype DispatchProps = Pick<ReportingScalarProviderProps, \"loadData\" | \"createOpenFormModalAction\" | \"clearData\">;\r\n\r\nconst mapDispatchToProps: DispatchProps = {\r\n loadData: createInitAction,\r\n createOpenFormModalAction,\r\n clearData: createClearAction,\r\n};\r\n\r\nexport const ReportingScalar = connect(mapStateToProps, mapDispatchToProps)(ReportingScalarProvider);\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IReportingScalarState } from \"./types\";\r\n\r\nexport * from \"./ReportingScalar\";\r\n\r\nexport const reportingScalarModule: ApplicationStatefulModule<typeof NAME, Reducer<IReportingScalarState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { AppStorageItemType } from \"@multiweb/types/multiweb\";\r\n\r\n/**\r\n * Jméno modulu theme. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"theme\";\r\n\r\n/**\r\n * Klíč tématu aplikace v local storage.\r\n */\r\nexport const LOCAL_STORAGE_THEME_KEY = AppStorageItemType.userTheme;\r\n\r\n/**\r\n * Typ akce pro změnu tématu.\r\n * @see createToggleThemeAction\r\n */\r\nexport const TOGGLE_THEME = `${NAME}/TOGGLE_THEME`;\r\n\r\n/**\r\n * Typ akce pro nastavení tématu.\r\n * @see createSetThemeAction\r\n */\r\nexport const SET_THEME = `${NAME}/SET_THEME`;\r\n","import { Action } from \"redux\";\r\n\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport { SET_THEME, TOGGLE_THEME } from \"./constants\";\r\n\r\n/**\r\n * Definice stavu pro téma aplikace.\r\n * Obsahuje informaci o barevném tématu aplikace.\r\n */\r\nexport type ThemeState = ApplicationTheme;\r\n\r\nexport interface IToggleThemeAction extends Action<typeof TOGGLE_THEME> {}\r\n\r\nexport class IToggleThemeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === TOGGLE_THEME;\r\n }\r\n}\r\n\r\nexport interface ISetThemeAction extends Action<typeof SET_THEME> {\r\n readonly payload: {\r\n readonly theme: ApplicationTheme;\r\n };\r\n}\r\n\r\nexport class ISetThemeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_THEME;\r\n }\r\n}\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport { ISetThemeAction, ThemeState } from \"./types\";\r\n\r\nexport const theme: Reducer<ApplicationTheme> = (state = ApplicationTheme.light, action) => {\r\n if (action instanceof ISetThemeAction) {\r\n return action.payload.theme;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<ThemeState> = theme;\r\n","import { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport { SET_THEME, TOGGLE_THEME } from \"./constants\";\r\nimport { ISetThemeAction, IToggleThemeAction } from \"./types\";\r\n\r\n/**\r\n * Akce pro přepnutí tématu aplikace.\r\n */\r\nexport const createToggleThemeAction = (): IToggleThemeAction => ({\r\n type: TOGGLE_THEME,\r\n});\r\n\r\n/**\r\n * Akce pro nastavení tématu aplikace.\r\n * @param theme Název tématu které se má nastavit.\r\n */\r\nexport const createSetThemeAction = (theme: ApplicationTheme): ISetThemeAction => ({\r\n type: SET_THEME,\r\n payload: {\r\n theme,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport { ThemeState } from \"./types\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící theme modulu.\r\n * @param state\r\n */\r\nconst getModel: Selector<IAppState, ThemeState> = (state) => state.core.theme;\r\n\r\n/**\r\n * Získá název aktuálně nastaveného tématu aplikace.\r\n */\r\nexport const getTheme: Selector<IAppState, ApplicationTheme> = (state) => getModel(state);\r\n\r\n/**\r\n * Vrátí příznak, jestli je aktuální téma aplikace nastavené na tmavé.\r\n */\r\nexport const isDarkTheme: Selector<IAppState, boolean> = (state) => getTheme(state) === ApplicationTheme.dark;\r\n\r\n/**\r\n * Získá název druhého dostupného téma.\r\n */\r\nexport const getOtherTheme: Selector<IAppState, ApplicationTheme> = (state) => (\r\n isDarkTheme(state) ? ApplicationTheme.light : ApplicationTheme.dark\r\n);\r\n","import { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\n\r\n/**\r\n * Ověří, zda je téma validním tématem aplikace.\r\n * @param theme Název tématu který se má ověřit.\r\n */\r\nexport const isApplicationThemeValid = (theme: string): theme is ApplicationTheme => Object.values(ApplicationTheme).includes(theme as ApplicationTheme);\r\n","import { call, fork, put, select, take, takeLatest } from \"redux-saga/effects\";\r\n\r\nimport { bridge, createApplyThemeAction, createLoadLocalStorageKeyAction, createSetLocalStorageKeyAction, ILocalStorageKeyLoadedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { ApplicationTheme } from \"@multiweb/uiShared/ApplicationTheme\";\r\nimport { createSetThemeAction } from \"./actions\";\r\nimport { LOCAL_STORAGE_THEME_KEY, TOGGLE_THEME } from \"./constants\";\r\nimport { getOtherTheme } from \"./selectors\";\r\nimport { isApplicationThemeValid } from \"./utils\";\r\n\r\nconst { createIsLocalStorageKeyLoadedActionPattern } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* themeSaga() {\r\n yield takeLatest(TOGGLE_THEME, toggleThemeSaga);\r\n yield fork(loadThemeSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení tématu aplikace a jeho uložení do stavu.\r\n */\r\nexport const loadThemeSaga: SagaWithReturnType = function* loadThemeSaga() {\r\n yield put(createLoadLocalStorageKeyAction(LOCAL_STORAGE_THEME_KEY));\r\n const action: ILocalStorageKeyLoadedAction = yield take(createIsLocalStorageKeyLoadedActionPattern(LOCAL_STORAGE_THEME_KEY));\r\n const { value } = action.payload;\r\n if (yield call(isApplicationThemeValid, value)) {\r\n yield put(createSetThemeAction(value as ApplicationTheme));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje přepnutí tématu aplikace a jeho uložení do stavu.\r\n * Změnu projeví do původní části aplikace a nastaví hodnotu tématu v local storage.\r\n */\r\nexport const toggleThemeSaga: SagaWithReturnType = function* toggleThemeSaga() {\r\n const otherTheme: ReturnType<typeof getOtherTheme> = yield select(getOtherTheme);\r\n yield put(createSetLocalStorageKeyAction(LOCAL_STORAGE_THEME_KEY, otherTheme));\r\n yield put(createApplyThemeAction(otherTheme));\r\n yield put(createSetThemeAction(otherTheme));\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { ThemeState } from \"./types\";\r\n\r\nexport { createToggleThemeAction } from \"./actions\";\r\nexport { isDarkTheme } from \"./selectors\";\r\n\r\nexport const themeModule: ApplicationStatefulModule<typeof NAME, Reducer<ThemeState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","export const NAME = \"customization\";\r\n","import { ComponentType } from \"react\";\r\nimport { Reducer } from \"redux\";\r\n\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\n\r\n/** Informace o reduceru potřebné pro jeho zaregistrování */\r\nexport type ReducerInfo = {\r\n readonly name: string;\r\n readonly reducer: Reducer;\r\n};\r\n\r\n/** Podstrom se stavem custom modulů (lze rozšířit ve vlastním projektu o typy vlastních modulů)\r\n *\r\n * @example\r\n * Příklad rozšíření interface o vlastní moduly ve vlastním projektu\r\n * ```\r\n * declare module \"UI/UI.React/customization/types\" {\r\n * interface ICustomizationState {\r\n * tiles: ITilesState;\r\n * auctions: IAuctionsState;\r\n * }\r\n * }\r\n * ```\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ICustomizationState {}\r\n\r\n/** Definice custom modulu určeného k zapojení do stávající aplikace */\r\nexport type CustomizationModule = {\r\n readonly getSaga: () => SagaWithReturnType;\r\n readonly getReducer: () => Reducer;\r\n readonly NAME: typeof NAME;\r\n};\r\n\r\n/**\r\n * Typ pro mapu komponent omezenou definovanými názvy komponent a jejich prop typy z generika.\r\n * @template T Klíče jsou názvy komponenty, hodnoty jejich props\r\n */\r\nexport type ComponentMap<T> = {[key in keyof T]: ComponentType<T[key]>};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ISectionLogger } from \"@multiweb/logging\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { ReducerInfo } from \"./types\";\r\n\r\nconst { getDIContainer } = bridge;\r\n\r\n/** Identifikátory Redux položek pro registraci do DIContainer */\r\nexport enum ReduxModuleName {\r\n reducerInfoArray = \"reducerInfoArray\",\r\n sagaArray = \"sagaArray\",\r\n}\r\n\r\n/** Třída umožňující zapojit více custom reducerů a ság. */\r\nexport class ReduxRegistrator {\r\n private static reducerInfoArray: ReducerInfo[] = [];\r\n private static sagaArray: SagaWithReturnType[] = [];\r\n\r\n private static _logger: ISectionLogger | undefined;\r\n\r\n /** Inicializační funkce. Musí být zavolána před voláním ostatních funkcí z {@link ReduxRegistrator}. */\r\n public static init(logger: ISectionLogger): void {\r\n ReduxRegistrator._logger = logger;\r\n }\r\n\r\n /** Zapojí další custom reducer */\r\n public static addReducer(name: string, reducer: Reducer): void {\r\n if (this.reducerInfoArray.map((reducerInfo) => reducerInfo.name).includes(name)) {\r\n ReduxRegistrator._logger!.warn(\"Custom reducer with the name %s was already registered! The original one will be overwritten.\", name);\r\n this.reducerInfoArray = this.reducerInfoArray.filter((reducerInfo) => reducerInfo.name !== name);\r\n }\r\n this.reducerInfoArray.push({ name, reducer });\r\n getDIContainer().registerFactory(ReduxModuleName.reducerInfoArray, () => this.reducerInfoArray);\r\n }\r\n\r\n /** Zapojí další custom ságu */\r\n public static addSaga(saga: SagaWithReturnType): void {\r\n this.sagaArray.push(saga);\r\n getDIContainer().registerFactory(ReduxModuleName.sagaArray, () => this.sagaArray);\r\n }\r\n}\r\n","import { ISectionLogger, LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const logger: ISectionLogger = LazyLoadingSectionLogger.create(LoggingSection.coreReact);\r\n","import { ComponentType, createElement, FunctionComponent } from \"react\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { logger } from \"./logger\";\r\nimport { ComponentMap } from \"./types\";\r\n\r\nconst { getDIContainer } = bridge;\r\n\r\n/**\r\n * Vrací závislost podle jejího jména. V případě neexistující závislosti vrací undefined.\r\n * @param dependencyName Jméno požadované závislosti\r\n */\r\nexport const getDependencyIfExists = <T>(dependencyName: string) => {\r\n const DIContainer = getDIContainer();\r\n if (!DIContainer.has(dependencyName)) {\r\n return undefined;\r\n }\r\n return DIContainer.create(dependencyName) as T;\r\n};\r\n\r\n/**\r\n * Vytvoří funkci pro získání komponenty zapojené v DIContainer\r\n * @param defaultComponentMap Výchozí mapování jmen komponent na komponenty. Použije se v případě, kdy komponenta s požadovaným jménem není zaregistrovaná v DIContaineru.\r\n * Používá se primárně pro účely storybooku, kde je DIContainer mockovaný.\r\n * @template T Klíče jsou názvy komponenty, hodnoty jejich props\r\n */\r\nexport const createGetInjectedComponent = <T>(defaultComponentMap?: ComponentMap<T>) => (\r\n /**\r\n * Vrací komponentu zapojenou v DIContainer\r\n * @param componentName Název získávané komponenty\r\n * @throws Vyhodí chybu v případě, že komponenta s požadovaným jménem nebyla nalezena.\r\n */\r\n <K extends keyof T>(componentName: K): ComponentType<T[K]> => {\r\n const injectedComponent = getDIContainer().create(componentName.toString()) as ComponentType<T[K]>;\r\n const nonNullInjectedComponent = injectedComponent || !defaultComponentMap ? injectedComponent : defaultComponentMap[componentName];\r\n\r\n if (!nonNullInjectedComponent) {\r\n throw new Error(`[Customization] Component with name ${String(componentName)} is not registered in DIContainer, neither in defaultComponentMap parameter.`);\r\n } else if (!injectedComponent) {\r\n logger.info(\"Component with name %s is not registered in DIContainer. Component from defaultComponentMap parameter is used as fallback.\", componentName);\r\n }\r\n\r\n return nonNullInjectedComponent;\r\n }\r\n);\r\n\r\n/**\r\n * Vytvoří funkci pro získání komponenty zapojené v DIContainer – komponentu získává až v okamžiku potřeby jejího vykreslení.\r\n * @param defaultComponentMap Výchozí mapování jmen komponent na komponenty. Použije se v případě, kdy komponenta s požadovaným jménem není zaregistrovaná v DIContaineru.\r\n * Používá se primárně pro účely storybooku, kde je DIContainer mockovaný.\r\n * @template T Klíče jsou názvy komponenty, hodnoty jejich props\r\n */\r\nexport const createGetInjectedComponentOnRender = <T>(defaultComponentMap?: ComponentMap<T>) => {\r\n const getInjectedComponent = createGetInjectedComponent<T>(defaultComponentMap);\r\n\r\n /**\r\n * Vrací komponentu zapojenou v DIContainer – komponentu získává až v okamžiku potřeby jejího vykreslení.\r\n * Funkce je využívaná při používání _High Order Component_, například `connect` balíčku `react-redux`.\r\n * @param componentName Název získávané komponenty\r\n */\r\n const getInjectedComponentOnRender = <K extends keyof T>(componentName: K) => {\r\n // TODO 27863 Název proměnné definuje název zobrazovaný ve snapshot testech\r\n const InjectedComponent: FunctionComponent<T[K]> = (props) => {\r\n const injectedComponent = getInjectedComponent(componentName);\r\n return createElement(injectedComponent, props);\r\n };\r\n return InjectedComponent;\r\n };\r\n\r\n return getInjectedComponentOnRender;\r\n};\r\n\r\n/**\r\n * Vrací podstrom pro custom modul.\r\n * @param state Stav celé aplikace\r\n * @param subtreeRootName Název kořene stavu custom modulu\r\n */\r\nexport const getCustomStateSubtree = <T>(state: IAppState, subtreeRootName: string): T => (\r\n // @ts-ignore Problém je v *unknown* typu *state[NAME]*, předem není známá struktura custom podstromu\r\n state[NAME][subtreeRootName]\r\n);\r\n\r\n/**\r\n * Vrací funkci pro registraci přepisovatelných komponent do DIContainer.\r\n * @param replaceableComponents Údaje pro registraci přepisovatelných komponent\r\n */\r\nexport const createRegisterReplaceableComponents = (replaceableComponents: {[componentName: string]: ComponentType<any>}) => (\r\n /**\r\n * Registruje přepisovatelné komponenty do DIContainer.\r\n */\r\n () => {\r\n const di = getDIContainer();\r\n Object.entries(replaceableComponents).forEach(([componentName, component]) => {\r\n di.registerFactory(componentName, () => component);\r\n });\r\n }\r\n);\r\n","import { combineReducers } from \"redux\";\r\nimport { all, fork } from \"redux-saga/effects\";\r\n\r\nimport { emptyReducer, emptySaga } from \"@multiweb/reactUtils\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { ReduxModuleName } from \"./ReduxRegistrator\";\r\nimport { ReducerInfo } from \"./types\";\r\nimport { getDependencyIfExists } from \"./utils\";\r\n\r\n/** Vrací reducer složený ze zapojených custom reducerů */\r\nexport const getCustomReducer = () => {\r\n const reducerInfoArray = getDependencyIfExists<ReducerInfo[]>(ReduxModuleName.reducerInfoArray);\r\n\r\n if (!reducerInfoArray) {\r\n return emptyReducer;\r\n }\r\n\r\n return combineReducers(reducerInfoArray.reduce((acc, { name, reducer }) => ({\r\n ...acc,\r\n [name]: reducer,\r\n }), {}));\r\n};\r\n\r\n/** Vrací ságu složenou ze zapojených custom ság */\r\nexport const getCustomSaga = () => {\r\n const sagaArray = getDependencyIfExists<SagaWithReturnType[]>(ReduxModuleName.sagaArray);\r\n if (!sagaArray) {\r\n return emptySaga;\r\n }\r\n\r\n return function* customSaga() {\r\n yield all(sagaArray.map((customSaga) => fork(customSaga)));\r\n };\r\n};\r\n","import { NAME } from \"./constants\";\r\nimport { getCustomReducer, getCustomSaga } from \"./redux\";\r\nimport { CustomizationModule } from \"./types\";\r\n\r\nexport { ReduxModuleName, ReduxRegistrator } from \"./ReduxRegistrator\";\r\nexport { ICustomizationState } from \"./types\";\r\nexport { createGetInjectedComponent, createGetInjectedComponentOnRender, createRegisterReplaceableComponents, getCustomStateSubtree } from \"./utils\";\r\n\r\nexport const customizationModule: CustomizationModule = {\r\n getSaga: getCustomSaga,\r\n getReducer: getCustomReducer,\r\n NAME,\r\n};\r\n","import { createCreateActionType } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu menu. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"forms\";\r\n\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/**\r\n * Typ akce pro inicializaci framu.\r\n */\r\nexport const INIT_FORM = createActionType(\"INIT_FORM\");\r\n\r\n/**\r\n * Typ akce pro smazání formu.\r\n */\r\nexport const DELETE_FORM = createActionType(\"DELETE_FORM\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { ExtendedPropertiesType, TagsType } from \"@multiweb/types/multiweb\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { DELETE_FORM, INIT_FORM } from \"./constants\";\r\n\r\n/**\r\n * Obsahuje informace o formuláři potřebné v react části aplikace.\r\n */\r\nexport interface IFormState {\r\n /** ExtendedProperties daného formuláře. */\r\n readonly extendedProperties: ExtendedPropertiesType;\r\n /** Tags daného formuláře. */\r\n readonly tags: TagsType;\r\n}\r\n\r\n/**\r\n * Definice stavu pro mapu formulářů.\r\n */\r\nexport type FormsMapState = TypedObject<IFormState>;\r\n\r\n/**\r\n * Pomocná akce, kterou musí rozšiřovat akce, které jsou mapovány\r\n * na jednotlivé instance `ReactFrame`.\r\n */\r\nexport interface IFormMappedAction<A = string> extends Action<A> {\r\n readonly meta: {\r\n readonly formKey: string;\r\n };\r\n}\r\n\r\nexport class IFormMappedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.formKey;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro smazání formu.\r\n */\r\nexport interface IDeleteFormAction extends IFormMappedAction<typeof DELETE_FORM> { }\r\n\r\nexport class IDeleteFormAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFormMappedAction && instance.type === DELETE_FORM;\r\n }\r\n}\r\n\r\n/**\r\n * Akce pro inicializaci formu.\r\n */\r\nexport interface IInitFormAction extends IFormMappedAction<typeof INIT_FORM> {\r\n readonly payload: {\r\n readonly extendedProperties: ExtendedPropertiesType;\r\n readonly tags: TagsType;\r\n };\r\n}\r\n\r\nexport class IInitFormAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance instanceof IFormMappedAction && instance.type === INIT_FORM;\r\n }\r\n}\r\n","import { createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\n/**\r\n * Jméno modulu menu. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"menu\";\r\n\r\nconst createFetchingKey = createCreateFetchingKey(NAME);\r\n\r\n/**\r\n * Klíč pro indikaci načítání položek menu v fetching modulu.\r\n */\r\nexport const FETCHING_KEY_MENU_ITEMS = createFetchingKey(\"MENU_ITEMS\");\r\n\r\n/**\r\n * Klíč pro indikaci načítání notifikačních položek pro fetching modul.\r\n */\r\nexport const FETCHING_KEY_NOTIFICATION_ITEMS = createFetchingKey(\"FETCHING_KEY_NOTIFICATION_ITEMS\");\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizace pro formulářové položky menu ve fetching modulu.\r\n */\r\nexport const FETCHING_KEY_FORM_ITEMS_LOCALIZATION = createFetchingKey(\"FETCHING_KEY_FORM_ITEMS_LOCALIZATION\");\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizace pro notifikační skupiny ve fetching modulu.\r\n */\r\nexport const FETCHING_KEY_NOTIFICATION_GROUPS_LOCALIZATION = createFetchingKey(\"FETCHING_KEY_NOTIFICATION_GROUPS_LOCALIZATION\");\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizace pro statické položky menu ve fetching modulu.\r\n */\r\nexport const FETCHING_KEY_STATIC_MENU_ITEMS_LOCALIZATION = createFetchingKey(\"FETCHING_KEY_STATIC_MENU_ITEMS_LOCALIZATION\");\r\n\r\n/**\r\n * Ikona zobrazovaná v případě, že formulář se zadaným id neexistuje.\r\n */\r\nexport const UNKNOWN_FORM_ICON_CODE = IconCode.uiHelp;\r\n\r\n/**\r\n * Id rodiče pro kořenové položky formulářů.\r\n */\r\nexport const ROOT_ITEM_PARENT_ID = 0;\r\n\r\n/**\r\n * Barva použitá pro neznámou (není ve stavu) notifikační položku.\r\n */\r\nexport const NO_NOTIFICATION_ITEM_ACTIVE_COLOR = \"#BDBDBD\";\r\n\r\n/**\r\n * Kód ikony použitý pro neznámou (není ve stavu) notifikační položku.\r\n */\r\nexport const NO_NOTIFICATION_ITEM_ICON_CODE = IconCode.comMail;\r\n\r\n/**\r\n * Nadpis použitý pro neznámou (není ve stavu) notifikační položku.\r\n */\r\nexport const NO_NOTIFICATION_ITEM_TITLE = \"\";\r\n\r\n/**\r\n * Datum použité pro neznámou (není ve stavu) notifikační položku.\r\n */\r\nexport const NO_NOTIFICATION_ITEM_CREATED_DATE = new Date();\r\n\r\n/**\r\n * Obsah zprávy použitý pro neznámou (není ve stavu) notifikační položku.\r\n */\r\nexport const NO_NOTIFICATION_ITEM_TEXT = \"\";\r\n\r\n/**\r\n * Šířka menu v pixelech.\r\n */\r\nexport const MENU_WIDTH = 256;\r\n\r\n/**\r\n * Šířka panelu menu v pixelech.\r\n */\r\nexport const MENU_PANEL_WIDTH = 64;\r\n\r\n/**\r\n * Šířka rozšířeného panelu menu v pixelech.\r\n */\r\nexport const MENU_PANEL_WIDTH_EXTENDED = 80;\r\n\r\n/**\r\n * Výška hlavičky menu notifikací, včetně paddingu.\r\n */\r\nexport const NOTIFICATIONS_HEADER_HEIGHT = 62;\r\n\r\n/**\r\n * Výška hlavičky menu formulářů, včetně paddingu.\r\n */\r\nexport const FORMS_HEADER_HEIGHT = 110;\r\n\r\n/**\r\n * Výška nadpisu skupiny v sekci Rychlý přístup.\r\n */\r\nexport const GROUP_HEADER_HEIGHT = 35;\r\n\r\n/**\r\n * Výška patičky menu panelu, včetně paddingu.\r\n */\r\nexport const MENU_PANEL_FOOTER_HEIGHT = 104;\r\n\r\n/** Výchozí výška položky formuláře */\r\nexport const DEFAULT_FORM_ITEM_HEIGHT = 35;\r\n\r\n/**\r\n * Počet položek notifikačních položek načítaných v jedné dávce.\r\n * Počet není možné snížit kvůli správnému opětovnému volání algoritmu pro nekonečné scrollování.\r\n */\r\nexport const NOTIFICATIONS_PAGE_SIZE = 50;\r\n\r\n/**\r\n * Id pole pro vyhledávané formuláře.\r\n */\r\nexport const FORM_SEARCH_INPUT_ID = \"FORM_SEARCH_INPUT\";\r\n\r\n/**\r\n * Id tlačítka pro zobrazení všech notifikací.\r\n */\r\nexport const SHOW_ALL_NOTIFICATIONS_BUTTON_ID = \"SHOW_ALL_NOTIFICATIONS_BUTTON\";\r\n\r\n/**\r\n * Id tlačítka pro označení všech notifikací skupiny za přečtené.\r\n */\r\nexport const SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID = \"SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID\";\r\n\r\n/**\r\n * Id položky \"Nastavení\" v menu uživatele.\r\n */\r\nexport const USER_MENU_SETTINGS_ITEM_ID = \"SETTINGS\";\r\n\r\n/**\r\n * Id položky \"Odhlásit\" v menu uživatele.\r\n */\r\nexport const USER_MENU_LOGOUT_ITEM_ID = \"LOGOUT\";\r\n\r\n/**\r\n * Id položky pro přepnutí tématu v menu uživatele.\r\n */\r\nexport const USER_MENU_TOGGLE_THEME_ITEM_ID = \"TOGGLE_THEME\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = (actionType: string) => `${NAME}/${actionType}`;\r\n\r\n/** Konstanty typů akcí */\r\nexport const SET_MENU_ITEMS = createActionType(\"SET_MENU_ITEMS\");\r\nexport const SET_ACTIVE_SUBMENU = createActionType(\"SET_ACTIVE_SUBMENU\");\r\nexport const CLOSE_SUBMENUS = createActionType(\"CLOSE_SUBMENUS\");\r\nexport const CLEAR_LAST_SUBMENU = createActionType(\"CLEAR_LAST_SUBMENU\");\r\nexport const SET_ACTIVE_SECTION = createActionType(\"SET_ACTIVE_SECTION\");\r\nexport const TOGGLE_SUBMENU = createActionType(\"TOGGLE_SUBMENU\");\r\nexport const RESET_NOTIFICATION_ITEMS = createActionType(\"RESET_NOTIFICATION_ITEMS\");\r\nexport const CONCAT_NOTIFICATION_ITEMS = createActionType(\"CONCAT_NOTIFICATION_ITEMS\");\r\nexport const SET_ALLOWED_MENU_ITEM_CODES = createActionType(\"SET_ALLOWED_MENU_ITEM_CODES\");\r\nexport const SET_FORM_ITEM_ACTION_RESTRICTIONS = createActionType(\"SET_FORM_ITEM_ACTION_RESTRICTIONS\");\r\nexport const SET_PROFILE_ACTION_RESTRICTIONS = createActionType(\"SET_PROFILE_ACTION_RESTRICTIONS\");\r\nexport const SET_NOTIFICATION_GROUPS = createActionType(\"SET_NOTIFICATION_GROUPS\");\r\nexport const RESET_NOTIFICATIONS_PAGE_COUNT = createActionType(\"RESET_NOTIFICATIONS_PAGE_COUNT\");\r\nexport const INCREASE_NOTIFICATIONS_PAGE_COUNT = createActionType(\"INCREASE_NOTIFICATIONS_PAGE_COUNT\");\r\nexport const LOAD_NEXT_NOTIFICATION_ITEMS_PAGE = createActionType(\"LOAD_NEXT_NOTIFICATION_ITEMS_PAGE\");\r\nexport const SHOW_GROUP_NOTIFICATIONS = createActionType(\"SHOW_GROUP_NOTIFICATIONS\");\r\nexport const SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ = createActionType(\"SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ\");\r\nexport const SET_MENU_VISIBILITY = createActionType(\"SET_MENU_VISIBILITY\");\r\nexport const CONCAT_PANEL_ITEMS = createActionType(\"CONCAT_PANEL_ITEMS\");\r\nexport const SET_NOTIFICATION_GROUPS_PANEL_ITEMS = createActionType(\"SET_NOTIFICATION_GROUPS_PANEL_ITEMS\");\r\nexport const FETCHING_KEY_FORM_INSTANCE_TITLE = createActionType(\"FETCHING_KEY_FORM_INSTANCE_TITLE\");\r\nexport const SET_MENU_PANEL_CAPTIONS_VISIBILITY = createActionType(\"SET_MENU_PANEL_CAPTIONS_VISIBILITY\");\r\nexport const MENU_ITEM_ACTIVATED = createActionType(\"MENU_ITEM_ACTIVATED\");\r\nexport const MENU_ITEM_DEFAULT_ACTION_ALLOWED = createActionType(\"MENU_ITEM_DEFAULT_ACTION_ALLOWED\");\r\nexport const VISUAL_AUTOMAT_PROCESSED = createActionType(\"VISUAL_AUTOMAT_PROCESSED\");\r\nexport const SET_VISUAL_AUTOMAT_STATE = createActionType(\"SET_VISUAL_AUTOMAT_STATE\");\r\nexport const SET_MENU_FLOAT_TRANSITION_ACTIVE = createActionType(\"SET_MENU_FLOAT_TRANSITION_ACTIVE\");\r\nexport const REMOVE_PROFILE_FROM_FORMS = createActionType(\"REMOVE_PROFILE_FROM_FORMS\");\r\nexport const REMOVE_PROFILE_FORM_RELATIONSHIPS = createActionType(\"REMOVE_PROFILE_FORM_RELATIONSHIPS\");\r\nexport const ADD_PROFILE_TO_RELATIONSHIPS = createActionType(\"ADD_PROFILE_TO_RELATIONSHIPS\");\r\nexport const RELOAD_MENU = createActionType(\"RELOAD_MENU\");\r\n","/**\r\n * Položka oblíbeného formuláře s nepovinným profilem\r\n */\r\nexport type FavoriteMenuItem = {\r\n readonly formId: number;\r\n readonly profileId: number | undefined;\r\n};\r\n\r\n/**\r\n * Pole oblíbených položek.\r\n */\r\nexport type FavoriteMenuItems = readonly FavoriteMenuItem[];\r\n\r\n/**\r\n * Reprezentuje část stavu menu uchovávající data o oblíbených položkách.\r\n */\r\nexport interface IFavoriteItemsState {\r\n readonly favoriteForms: FavoriteMenuItems;\r\n}\r\n","export const NAME = \"navigation\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionTypeName Typ akce\r\n */\r\nconst createActionType = (actionTypeName: string) => `${NAME}/${actionTypeName}`;\r\n\r\nexport const SET_FOCUSED_ITEM = createActionType(\"SET_FOCUSED_ITEM\");\r\nexport const FOCUS_DEFAULT_ITEM = createActionType(\"FOCUS_DEFAULT_ITEM\");\r\nexport const CLEAR_FOCUSED_ITEM = createActionType(\"CLEAR_FOCUSED_ITEM\");\r\nexport const SET_NAVIGATION_NODES = createActionType(\"SET_NAVIGATION_NODES\");\r\nexport const CLEAR_NAVIGATION_SECTION = createActionType(\"CLEAR_NAVIGATION_SECTION\");\r\nexport const NAVIGATION_NODES_UPDATED = createActionType(\"NAVIGATION_NODES_UPDATED\");\r\nexport const KEY_PRESSED = createActionType(\"KEY_PRESSED\");\r\nexport const MENU_FOCUS_LOST = createActionType(\"MENU_FOCUS_LOST\");\r\nexport const ACTION_ITEM_FOCUSED = createActionType(\"ACTION_ITEM_FOCUSED\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { IMenuNavigationConfig, NodeDefinitions } from \"@multiweb/types/multiweb\";\r\nimport { ConstrainedDeepRequired, SerializableKeyEvent, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n ACTION_ITEM_FOCUSED,\r\n CLEAR_FOCUSED_ITEM,\r\n CLEAR_NAVIGATION_SECTION,\r\n FOCUS_DEFAULT_ITEM,\r\n KEY_PRESSED,\r\n MENU_FOCUS_LOST,\r\n NAVIGATION_NODES_UPDATED,\r\n SET_FOCUSED_ITEM,\r\n SET_NAVIGATION_NODES,\r\n} from \"./constants\";\r\n\r\n/**\r\n * Obsahuje staticky definované sekce pro navigaci.\r\n * @see NavigationSection\r\n */\r\nexport enum MenuNavigationSectionType {\r\n /** Statické prvky navigace, jako levý panel menu nebo menu uživatele. */\r\n static = \"static\",\r\n forms = \"forms\",\r\n /** Položky první úrovně formulářů, které se zobrazují v panelu menu. */\r\n panelForms = \"panelForms\",\r\n quickAccess = \"quickAccess\",\r\n quickAccessOpened = \"quickAccessOpened\",\r\n quickAccessHistoric = \"quickAccessHistoric\",\r\n quickAccessFavorite = \"quickAccessFavorite\",\r\n searchResults = \"searchResults\",\r\n searchResultsOpened = \"searchResultsOpened\",\r\n searchResultsHistoric = \"searchResultsHistoric\",\r\n searchResultsFavorite = \"searchResultsFavorite\",\r\n notificationGroups = \"notificationGroups\",\r\n notifications = \"notifications\",\r\n}\r\n\r\n/**\r\n * Typy zaměřitelných položek v menu.\r\n */\r\nexport enum MenuFocusableItemType {\r\n /** Typ libovolné položky v menu panelu, zahrnuje statické položky, kořenové položky formulářů a jejich složek, notifikační skupiny. */\r\n panelItem = \"panelItem\",\r\n searchInput = \"searchInput\",\r\n showAllNotificationsButton = \"showAllNotificationsButton\",\r\n setGroupNotificationsAsReadButton = \"setGroupNotificationsAsReadButton\",\r\n formItem = \"formItem\",\r\n folderItem = \"folderItem\",\r\n profile = \"profile\",\r\n openedItem = \"openedItem\",\r\n notificationItem = \"notificationItem\",\r\n userMenuItem = \"userMenuItem\",\r\n favoriteActionItem = \"favoriteActionItem\",\r\n openActionItem = \"openActionItem\",\r\n openInTabActionItem = \"openInTabActionItem\",\r\n closeActionItem = \"closeActionItem\",\r\n}\r\n\r\n/**\r\n * Typy zaměřitelné položky. Rozšiřuje základní typ {@link MenuFocusableItemType} o obecný řetězec. To umožňuje vytváření\r\n * vlastních typů položek při customizaci menu a navigace.\r\n */\r\nexport type FocusableItemType = MenuFocusableItemType | string;\r\n\r\n/**\r\n * Typy zaměřitelných akčních položek používaných v kontextových menu.\r\n */\r\nexport const FocusableActionItemTypes: readonly FocusableItemType[] = [\r\n MenuFocusableItemType.favoriteActionItem,\r\n MenuFocusableItemType.openActionItem,\r\n MenuFocusableItemType.openInTabActionItem,\r\n MenuFocusableItemType.closeActionItem,\r\n];\r\n\r\n/**\r\n * Sekce z hlediska navigace klávesnicí. Rozdělení umožňuje rozlišit stejné prvky s jinou topologií. Např. položka formuláře může být přítomna\r\n * zároveň v sekci formulářů, tak v sekci oblíbených formulářů, bude však mít odlišné sousedy. Takové položky se z hlediska navigace rozliší pomocí sekce, do které patří.\r\n * Může to být staticky definovaná sekce nebo dynamická sekce. Dynamické sekce jsou nutné pro případy, kdy se sekce vytvářejí dynamicky na základě dat a zároveň tyto\r\n * sekce mohou obsahovat stejnou položku.\r\n *\r\n * Tento případ nastává například při vyhledávání v sekci Rychlý přístup, kde se seskupují záznamy podle kořenového formuláře. Kořenové formuláře tak vytváří dynamické\r\n * sekce. Zároveň může nastat případ, kdy je jeden profil odkazovaný z položek patřících k různým kořenovým formulářům.\r\n *\r\n * Rozdělení na sekce také umožňuje efektivnější správu stavu při aktualizaci navigační sekce.\r\n */\r\nexport type NavigationSection = MenuNavigationSectionType | string;\r\n\r\n/**\r\n * Reprezentuje zaměřitelnou položku v menu pro účel navigace pomocí klávesnice.\r\n */\r\nexport type FocusableItem = {\r\n /** Id unikátní v rámci všech uzlů menu. Složeno z itemId, type a section. */\r\n readonly id: FocusableItemId;\r\n /** Id unikátní v rámci typu. Např. pro typ profilu se jedná o id profilu. */\r\n readonly itemId: number | string;\r\n /** Typ zaměřitelné položky. */\r\n readonly type: FocusableItemType;\r\n /** Navigační sekce, do které zaměřitelná položka patří. */\r\n readonly section: NavigationSection;\r\n};\r\n\r\n/**\r\n * Typ parametru pro selector isItemFocused.\r\n */\r\nexport type IsItemFocusedSelectorParams = Pick<FocusableItem, \"itemId\" | \"type\" | \"section\">;\r\n\r\n/**\r\n * Uzel navigace, který není ve stavu a je možné u něj upravovat odkazy na sousední uzly.\r\n */\r\nexport type MutableNavigationNode = {\r\n /** Zaměřitelná položka, kterou reprezentuje tento uzel. */\r\n readonly self: FocusableItem;\r\n /** Id zaměřitelné položky nacházející se nad touto položkou. */\r\n upId?: FocusableItemId;\r\n /** Id zaměřitelné položky nacházející se pod touto položkou. */\r\n downId?: FocusableItemId;\r\n /** Id zaměřitelné položky nacházející se vpravo od této položky. */\r\n rightId?: FocusableItemId;\r\n /** Id zaměřitelné položky nacházející se vlevo od této položky. */\r\n leftId?: FocusableItemId;\r\n /** Id zaměřitelné položky na kterou se přechází při zrušení zaměření této položky. */\r\n escId?: FocusableItemId;\r\n};\r\n\r\n/**\r\n * Reprezentuje uzel v topologii navigace pomocí kláves v menu.\r\n */\r\nexport type NavigationNode = Readonly<MutableNavigationNode>;\r\n\r\n/**\r\n * Obsahuje navigační uzly klíčované podle id.\r\n */\r\nexport type NavigationSectionNodes = TypedObject<NavigationNode>;\r\n\r\n/**\r\n * Reprezentuje topologii pro navigaci pomocí klávesnice v menu.\r\n */\r\nexport type NavigationNodes = TypedObject<NavigationSectionNodes>;\r\n\r\n/**\r\n * Id zaměřitelné položky. Složené z typu položky a id položky.\r\n */\r\nexport type FocusableItemId = string;\r\n\r\n/**\r\n * Reprezentuje část stavu menu uchovávající data o navigaci pomocí klávesnice.\r\n */\r\nexport interface IMenuNavigationState {\r\n /** Id aktuálně zaměřené položky. */\r\n readonly focusedItemId: FocusableItemId | null;\r\n /** Id první zaměřitelné položky ze sekce Rychlý přístup. Slouží k rychlému přepojení uzlů při zrušení vyhledávání. */\r\n readonly firstQuickAccessFocusableItemId: FocusableItemId | null;\r\n /** Id poslední zaměřitelné položky ze sekce Rychlý přístup. Slouží k rychlému přepojení uzlů při zrušení vyhledávání. */\r\n readonly lastQuickAccessFocusableItemId: FocusableItemId | null;\r\n /**\r\n * Indikátor, zda se má při zaměření vyhledávacího pole označit celý text.\r\n * Řeší případ, kdy se po napsání prvního písmene vymění komponenty a tím se nechtěně označí text.\r\n */\r\n readonly searchInputSelectAllText: boolean;\r\n /** Navigační uzly všech zaměřitelných položek v menu. */\r\n readonly navigationNodes: NavigationNodes;\r\n}\r\n\r\n/**\r\n * Typ pro nastavení navigace obsahující všechna nastavení.\r\n */\r\nexport type CompleteNavigationConfig = ConstrainedDeepRequired<IMenuNavigationConfig, NodeDefinitions>;\r\n\r\nexport interface ISetFocusedItemAction extends Action<typeof SET_FOCUSED_ITEM> {\r\n readonly payload: {\r\n readonly focusedItemId: FocusableItemId;\r\n };\r\n}\r\n\r\nexport class ISetFocusedItemAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_FOCUSED_ITEM;\r\n }\r\n}\r\n\r\nexport interface ISetNavigationNodesAction extends Action<typeof SET_NAVIGATION_NODES> {\r\n readonly payload: {\r\n readonly section: NavigationSection;\r\n readonly navigationNodes: NavigationNode[];\r\n };\r\n}\r\n\r\nexport class ISetNavigationNodesAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_NAVIGATION_NODES;\r\n }\r\n}\r\n\r\nexport interface IClearFocusedItemAction extends Action<typeof CLEAR_FOCUSED_ITEM> {}\r\n\r\nexport class IClearFocusedItemAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_FOCUSED_ITEM;\r\n }\r\n}\r\n\r\nexport interface IFocusDefaultItemAction extends Action<typeof FOCUS_DEFAULT_ITEM> {}\r\n\r\nexport class IFocusDefaultItemAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === FOCUS_DEFAULT_ITEM;\r\n }\r\n}\r\n\r\nexport interface IClearNavigationSectionAction extends Action<typeof CLEAR_NAVIGATION_SECTION> {\r\n readonly payload: {\r\n readonly section: NavigationSection;\r\n };\r\n}\r\n\r\nexport class IClearNavigationSectionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_NAVIGATION_SECTION;\r\n }\r\n}\r\n\r\nexport interface INavigationNodesUpdatedAction extends Action<typeof NAVIGATION_NODES_UPDATED> {\r\n readonly payload: {\r\n readonly sectionType: NavigationSection;\r\n };\r\n}\r\n\r\nexport class INavigationNodesUpdatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === NAVIGATION_NODES_UPDATED;\r\n }\r\n}\r\n\r\nexport interface IKeyPressedAction extends Action<typeof KEY_PRESSED> {\r\n readonly payload: {\r\n event: SerializableKeyEvent;\r\n };\r\n}\r\n\r\nexport class IKeyPressedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === KEY_PRESSED;\r\n }\r\n}\r\n\r\nexport interface IMenuFocusLostAction extends Action<typeof MENU_FOCUS_LOST> {\r\n readonly payload: {\r\n readonly documentHidden: boolean;\r\n };\r\n}\r\n\r\nexport class IMenuFocusLostAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === MENU_FOCUS_LOST;\r\n }\r\n}\r\n\r\nexport interface IActionItemFocusedAction extends Action<typeof ACTION_ITEM_FOCUSED> {\r\n readonly payload: {\r\n readonly focusableItemId: FocusableItemId;\r\n };\r\n}\r\n\r\nexport class IActionItemFocusedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === ACTION_ITEM_FOCUSED;\r\n }\r\n}\r\n","export const NAME = \"openedItems\";\r\n\r\n/**\r\n * Text použitý pro otevřené položky, jejichž formuláře nemají položku menu a nemají načtený\r\n * text z custom title.\r\n */\r\nexport const NO_MENU_ITEM_LABEL = \"...\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionTypeName Typ akce\r\n */\r\nconst createActionType = (actionTypeName: string) => `${NAME}/${actionTypeName}`;\r\n\r\nexport const SET_LABEL_INFO = createActionType(\"SET_LABEL_INFO\");\r\nexport const REMOVE_LABEL_INFO = createActionType(\"REMOVE_LABEL_INFO\");\r\nexport const SET_GROUP_MAP_ITEM = createActionType(\"SET_GROUP_MAP_ITEM\");\r\nexport const REMOVE_GROUP_MAP_ITEM = createActionType(\"REMOVE_GROUP_MAP_ITEM\");\r\nexport const SET_OPENED_ITEM_NUMBER = createActionType(\"SET_OPENED_ITEM_NUMBER\");\r\nexport const REMOVE_OPENED_ITEM_NUMBER = createActionType(\"REMOVE_OPENED_ITEM_NUMBER\");\r\nexport const SET_NUMBERING_GROUP = createActionType(\"SET_NUMBERING_GROUP\");\r\nexport const REMOVE_NUMBERING_GROUP = createActionType(\"REMOVE_NUMBERING_GROUP\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { IOpenedFormInfo } from \"@multiweb/types/multiweb\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n REMOVE_GROUP_MAP_ITEM,\r\n REMOVE_LABEL_INFO,\r\n REMOVE_NUMBERING_GROUP,\r\n REMOVE_OPENED_ITEM_NUMBER,\r\n SET_GROUP_MAP_ITEM,\r\n SET_LABEL_INFO,\r\n SET_NUMBERING_GROUP,\r\n SET_OPENED_ITEM_NUMBER,\r\n} from \"./constants\";\r\n\r\nexport type CustomTitles = TypedObject<string>;\r\n\r\n/**\r\n * Reprezentuje část stavu menu uchovávající data o otevřených položkách v menu.\r\n */\r\nexport interface IMenuOpenedItemsState {\r\n /** Identifikátor instance aktivní položky */\r\n readonly openedFormInstanceId: string | null;\r\n /** Pole ids otevřených položek v pořadí vykreslování (poslední otevřená položka je první) */\r\n readonly openedFormsIds: readonly string[];\r\n /** Informace o otevřených položkách indexované podle jejich id */\r\n readonly openedFormsInfo: TypedObject<IOpenedFormInfo>;\r\n /** Obsahuje hodnoty custom titles pro otevřené položky */\r\n readonly customTitles: CustomTitles;\r\n /** Hodnoty popisků pro otevřené položky. Zohledňují prioritu zdroje popisku. */\r\n readonly labelValues: LabelValues;\r\n /** Uchovává údaje o číslování otevřených položek */\r\n readonly numbering: INumbering;\r\n}\r\n\r\nexport interface INumbering {\r\n /** Skupiny číslování */\r\n readonly groups: NumberingGroups;\r\n /** Obsahuje pořadová čísla pro otevřené položky */\r\n readonly numbers: InstanceNumberMap;\r\n /** Mapuje otevřené instance na klíč skupiny. */\r\n readonly groupMap: FormInstanceGroupMap;\r\n}\r\n\r\nexport type InstanceNumberMap = TypedObject<number>;\r\n\r\nexport type NumberingGroupInfo = {\r\n /** Čítač otevřených položek v rámci skupiny */\r\n readonly counter: number;\r\n /** Indikátor, zda skupina někdy měla více než jednu položku */\r\n readonly hadMoreMembers: boolean;\r\n};\r\n\r\nexport type NumberingGroups = TypedObject<NumberingGroupInfo>;\r\n\r\nexport type LabelInfo = {\r\n /** Název otevřené instance. Může být již přeložený název, nebo lokalizační klíč.*/\r\n readonly labelValue: string | undefined;\r\n /** Indikátor, zda je labelValue lokalizační klíč, nebo výsledný název. */\r\n readonly isLocKey: boolean;\r\n};\r\n\r\n/**\r\n * Hodnoty popisků pro otevřené položky. Zohledňují prioritu zdroje popisku.\r\n */\r\nexport type LabelValues = TypedObject<LabelInfo>;\r\n\r\n/**\r\n * Mapuje otevřené položky na klíč skupiny.\r\n */\r\nexport type FormInstanceGroupMap = TypedObject<string>;\r\n\r\n/**\r\n * Reprezentuje otevřenou menu položku formuláře. Narozdíl od informací o otevřeném formuláři (IOpenedFormInfo), ze kterého\r\n * vychází, má povinné menuItemId. Obecně otevřený formulář totiž nemusí mít položku v menu. Tento typ však reprezentuje\r\n * otevřenou položku z menu, proto menuItemId bude vždy mít.\r\n */\r\nexport type OpenedFormItemInfo = Required<Pick<IOpenedFormInfo, \"formInstanceId\" | \"menuItemId\" | \"formCode\">>;\r\n\r\n/**\r\n * Reprezentuje otevřenou menu položku profilu. Narozdíl od informací o otevřeném formuláři (IOpenedFormInfo), ze kterého\r\n * vychází, má všechna pole povinná, protože musí obsahovat id profilu i položky menu.\r\n */\r\nexport type OpenedProfileInfo = Required<IOpenedFormInfo>;\r\n\r\nexport interface ISetLabelInfoAction extends Action<typeof SET_LABEL_INFO> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly labelValue: string | undefined;\r\n readonly isLocKey: boolean;\r\n };\r\n}\r\n\r\nexport class ISetLabelInfoAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_LABEL_INFO;\r\n }\r\n}\r\n\r\nexport interface IRemoveLabelInfoAction extends Action<typeof REMOVE_LABEL_INFO> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n };\r\n}\r\n\r\nexport class IRemoveLabelInfoAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_LABEL_INFO;\r\n }\r\n}\r\n\r\nexport interface ISetGroupMapItemAction extends Action<typeof SET_GROUP_MAP_ITEM> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly groupKey: string;\r\n };\r\n}\r\n\r\nexport class ISetGroupMapItemAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_GROUP_MAP_ITEM;\r\n }\r\n}\r\n\r\nexport interface IRemoveGroupMapItemAction extends Action<typeof REMOVE_GROUP_MAP_ITEM> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n };\r\n}\r\n\r\nexport class IRemoveGroupMapItemAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_GROUP_MAP_ITEM;\r\n }\r\n}\r\n\r\nexport interface ISetOpenedItemNumberAction extends Action<typeof SET_OPENED_ITEM_NUMBER> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n readonly number: number;\r\n };\r\n}\r\n\r\nexport class ISetOpenedItemNumberAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_OPENED_ITEM_NUMBER;\r\n }\r\n}\r\n\r\nexport interface IRemoveOpenedItemNumberAction extends Action<typeof REMOVE_OPENED_ITEM_NUMBER> {\r\n readonly payload: {\r\n readonly formInstanceId: string;\r\n };\r\n}\r\n\r\nexport class IRemoveOpenedItemNumberAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_OPENED_ITEM_NUMBER;\r\n }\r\n}\r\n\r\nexport interface ISetNumberingGroupAction extends Action<typeof SET_NUMBERING_GROUP> {\r\n readonly payload: {\r\n readonly groupKey: string;\r\n readonly groupData: NumberingGroupInfo;\r\n };\r\n}\r\n\r\nexport class ISetNumberingGroupAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_NUMBERING_GROUP;\r\n }\r\n}\r\n\r\nexport interface IRemoveNumberingGroupAction extends Action<typeof REMOVE_NUMBERING_GROUP> {\r\n readonly payload: {\r\n readonly groupKey: string;\r\n };\r\n}\r\n\r\nexport class IRemoveNumberingGroupAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_NUMBERING_GROUP;\r\n }\r\n}\r\n","/**\r\n * Domů :: Zobrazit úvodní stránku\r\n */\r\nexport const LOC_KEY_MENU_PANEL_HOME = \"GUI-301352\";\r\nexport const LOC_KEY_MENU_PANEL_QUICK_ACCESS = \"GUI-702937\"; // Rychlý přístup :: Rychlý přístup\r\nexport const LOC_KEY_MENU_PANEL_USER = \"GUI-171048\"; // Uživatel :: Uživatel aplikace - menu\r\n\r\nexport const LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS = \"GUI-618614\"; // Otevřené formuláře :: Otevřené formuláře\r\nexport const LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS = \"GUI-703195\"; // Historie formulářů :: Historie formulářů\r\nexport const LOC_KEY_QUICK_ACCESS_MENU_FAVORITES = \"GUI-103\"; // Oblíbené :: Oblíbené\r\n\r\nexport const LOC_KEY_EXPAND_MENU = \"GUI-618613\"; // Rozbalit menu :: Rozbalit menu\r\nexport const LOC_KEY_COLLAPSE_MENU = \"GUI-618612\"; // Sbalit menu :: Sbalit menu\r\n\r\nexport const LOC_KEY_USER_MENU_LOGOUT = \"GUI-151646\"; // Odhlásit :: Odhlásit\r\nexport const LOC_KEY_USER_MENU_SETTINGS = \"GUI-101\"; // Nastavení :: Nastavení\r\nexport const LOC_KEY_THEME_DARK = \"GUI-652509\"; // Tmavé téma :: Tmavé téma\r\nexport const LOC_KEY_THEME_LIGHT = \"GUI-652510\"; // Světlé téma :: Světlé téma\r\n\r\nexport const LOC_KEY_ACTION_ITEM_OPEN_FORM = \"GUI-618615\"; // Otevřít v nové záložce menu :: Otevře formulář do nové záložky menu\r\nexport const LOC_KEY_ACTION_ITEM_OPEN_FORM_IN_TAB = \"GUI-653847\"; // Otevřít v nové záložce prohlížeče :: Otevře formulář v nové záložce prohlížeče\r\nexport const LOC_KEY_ACTION_ITEM_FAVORITES_ADD = \"GUI-1006\"; // Přidat do oblíbených :: Přidat do oblíbených\r\nexport const LOC_KEY_ACTION_ITEM_FAVORITES_REMOVE = \"GUI-508345\"; // Odebrat z oblíbených :: Odebrat z oblíbených\r\nexport const LOC_KEY_ACTION_ITEM_CLOSE = \"GUI-4447\"; // Zavřít :: Zavřít\r\n\r\nexport const LOC_KEY_SEARCH_FIELD_PLACEHOLDER = \"GUI-651767\"; // Hledat :: Fulltextové hledání ve vybraných atributech\r\n\r\nexport const LOC_KEY_NO_NOTIFICATION_ITEMS = \"GUI-489002\"; // Žádné záznamy. V tomto seznamu nemáme co zobrazit. :: Žádné záznamy. V tomto seznamu nemáme co zobrazit.\r\nexport const LOC_KEY_SHOW_GROUP_NOTIFICATIONS = \"GUI-602236\"; // Zobrazit vše :: Zobrazit všechny přijaté oznámení\r\nexport const LOC_KEY_SET_ALL_NOTIFICATION_AS_READ = \"GUI-792167\"; // Označit vše jako přečtené :: Označit všechny notifikace jako přečtené\r\nexport const LOC_KEY_LOADING = \"GUI-580532\"; // Načítám :: Načítám\r\n\r\n/**\r\n * Obsahuje staticky definované lokalizační klíče pro menu.\r\n */\r\nexport const STATIC_LOC_KEYS = [\r\n LOC_KEY_MENU_PANEL_HOME,\r\n LOC_KEY_MENU_PANEL_QUICK_ACCESS,\r\n LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS,\r\n LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS,\r\n LOC_KEY_QUICK_ACCESS_MENU_FAVORITES,\r\n LOC_KEY_MENU_PANEL_USER,\r\n LOC_KEY_EXPAND_MENU,\r\n LOC_KEY_COLLAPSE_MENU,\r\n LOC_KEY_USER_MENU_LOGOUT,\r\n LOC_KEY_USER_MENU_SETTINGS,\r\n LOC_KEY_THEME_DARK,\r\n LOC_KEY_THEME_LIGHT,\r\n LOC_KEY_ACTION_ITEM_OPEN_FORM,\r\n LOC_KEY_ACTION_ITEM_OPEN_FORM_IN_TAB,\r\n LOC_KEY_ACTION_ITEM_FAVORITES_ADD,\r\n LOC_KEY_ACTION_ITEM_FAVORITES_REMOVE,\r\n LOC_KEY_SEARCH_FIELD_PLACEHOLDER,\r\n LOC_KEY_ACTION_ITEM_CLOSE,\r\n LOC_KEY_NO_NOTIFICATION_ITEMS,\r\n LOC_KEY_SHOW_GROUP_NOTIFICATIONS,\r\n LOC_KEY_SET_ALL_NOTIFICATION_AS_READ,\r\n LOC_KEY_LOADING,\r\n];\r\n","export const NAME = \"search\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = (actionType: string) => `${NAME}/${actionType}`;\r\n\r\nexport const SEARCHED_TEXT_CHANGED = createActionType(\"SEARCHED_TEXT_CHANGED\");\r\nexport const SET_SEARCH_RESULTS = createActionType(\"SET_SEARCH_RESULTS\");\r\n","import { Action } from \"redux\";\r\n\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES, LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS, LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS } from \"../locKeys\";\r\nimport { SEARCHED_TEXT_CHANGED, SET_SEARCH_RESULTS } from \"./constants\";\r\n\r\n/**\r\n * Reprezentuje stav menu sub modulu pro vyhledávání.\r\n */\r\nexport interface ISearchState {\r\n /** Text vyhledávacího pole. */\r\n readonly searchedText: string;\r\n /** Výsledky vyhledávání. */\r\n readonly searchResults: ReadonlyArray<SearchResult>;\r\n}\r\n\r\n/**\r\n * Typ výsledku vyhledávání. Rozlišuje formuláře a profily.\r\n * Slouží k vybrání správné komponenty pro zobrazení výsledků vyhledávání.\r\n */\r\nexport enum SearchResultType {\r\n /** Vyhledaná položka je formulář. */\r\n form = \"form\",\r\n /** Vyhledaná položka je profil. */\r\n profile = \"profile\",\r\n /** Otevřený formulář. */\r\n formInstance = \"formInstance\",\r\n /** Nadpis skupiny výsledků. */\r\n groupHeader = \"groupHeader\",\r\n}\r\n\r\n/**\r\n * Skupina vyhledávání. Pro rozlišení skupin se využívají lokalizační klíče. Pro statické sekce jsou použity konkrétní lokalizační klíče.\r\n * Pro dynamické sekce se používají lokalizační klíče získané z dat. Dynamické sekce se používají např. při vyhledávání ve formulářích, které\r\n * jsou seskupeny podle toho, ke kterému kořenovému formuláři patří.\r\n */\r\nexport type SearchGroup =\r\n typeof LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS |\r\n typeof LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS |\r\n typeof LOC_KEY_QUICK_ACCESS_MENU_FAVORITES |\r\n string;\r\n\r\n/**\r\n * Výsledek vyhledávání. Slouží ke sjednocení výsledků vyhledávání pro účely zobrazení pomocí virtualizovaného listu.\r\n */\r\nexport type SearchResult = {\r\n /** Id formuláře nebo profilu nebo otevřené formuláře. Pro typ nadpis skupiny se jedná o lokalizační klíč. */\r\n readonly id: number | string;\r\n /** Text vyhledané položky. Slouží pro řazení výsledků. */\r\n readonly text: string;\r\n /** Typ výsledku vyhledávání. Rozlišuje formuláře, profily, otevřené formuláře a nadpisy skupin. */\r\n readonly type: SearchResultType;\r\n /** Určuje skupinu vyhledávání, do které položka patří. Jedna položka může být vyhledána ve více skupinách, skupina je proto třeba k sestavení unikátního klíče. */\r\n readonly searchGroup: SearchGroup;\r\n};\r\n\r\n/**\r\n * Struktura dat pro vyhledávání a řazení vyhledaných výsledků.\r\n */\r\nexport type SearchData = {\r\n id: number | string;\r\n text: string;\r\n upperCaseAccentsFreeText: string;\r\n upperCaseAccentsFreeFormCode: string;\r\n sourceType: SearchResultType;\r\n};\r\n\r\n/**\r\n * Reprezentuje množinu ids profilů a formulářů nacházejících se v podstormě formulářů.\r\n */\r\nexport type SubtreeIds = {\r\n readonly formItemIds: readonly number[];\r\n readonly profileIds: readonly number[];\r\n};\r\n\r\nexport interface ISearchedTextChangedAction extends Action<typeof SEARCHED_TEXT_CHANGED> {\r\n readonly payload: {\r\n searchedText: string;\r\n };\r\n}\r\n\r\nexport class ISearchedTextChangedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SEARCHED_TEXT_CHANGED;\r\n }\r\n}\r\n\r\nexport interface ISetSearchResultsAction extends Action<typeof SET_SEARCH_RESULTS> {\r\n readonly payload: {\r\n readonly searchResults: ReadonlyArray<SearchResult>;\r\n };\r\n}\r\n\r\nexport class ISetSearchResultsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_SEARCH_RESULTS;\r\n }\r\n}\r\n","import { Action } from \"redux\";\r\n\r\nimport {\r\n AllowedMenuItemCodes,\r\n IconCode,\r\n IFormProfile,\r\n IMenuData,\r\n IMenuItemData,\r\n INotificationItem,\r\n IOpenedFormHistoryInfo,\r\n NotificationGroupId,\r\n} from \"@multiweb/types/contracts\";\r\nimport { MutableTypedObject, SerializableKeyEvent, SerializableMouseEvent, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n ADD_PROFILE_TO_RELATIONSHIPS,\r\n CLEAR_LAST_SUBMENU,\r\n CLOSE_SUBMENUS,\r\n CONCAT_NOTIFICATION_ITEMS,\r\n CONCAT_PANEL_ITEMS,\r\n INCREASE_NOTIFICATIONS_PAGE_COUNT,\r\n LOAD_NEXT_NOTIFICATION_ITEMS_PAGE,\r\n MENU_ITEM_ACTIVATED,\r\n MENU_ITEM_DEFAULT_ACTION_ALLOWED,\r\n RELOAD_MENU,\r\n REMOVE_PROFILE_FORM_RELATIONSHIPS,\r\n REMOVE_PROFILE_FROM_FORMS,\r\n RESET_NOTIFICATION_ITEMS,\r\n RESET_NOTIFICATIONS_PAGE_COUNT,\r\n SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ,\r\n SET_ACTIVE_SECTION,\r\n SET_ACTIVE_SUBMENU,\r\n SET_ALLOWED_MENU_ITEM_CODES,\r\n SET_FORM_ITEM_ACTION_RESTRICTIONS,\r\n SET_MENU_FLOAT_TRANSITION_ACTIVE,\r\n SET_MENU_ITEMS,\r\n SET_MENU_PANEL_CAPTIONS_VISIBILITY,\r\n SET_MENU_VISIBILITY,\r\n SET_NOTIFICATION_GROUPS,\r\n SET_NOTIFICATION_GROUPS_PANEL_ITEMS,\r\n SET_PROFILE_ACTION_RESTRICTIONS,\r\n SET_VISUAL_AUTOMAT_STATE,\r\n SHOW_GROUP_NOTIFICATIONS,\r\n TOGGLE_SUBMENU,\r\n VISUAL_AUTOMAT_PROCESSED,\r\n} from \"./constants\";\r\nimport { IFavoriteItemsState } from \"./favoriteItems/types\";\r\nimport { IMenuNavigationState, NavigationSection } from \"./navigation/types\";\r\nimport { IMenuOpenedItemsState } from \"./openedItems/types\";\r\nimport { ISearchState } from \"./search/types\";\r\n\r\n/**\r\n * Definice stavu pro hlavní menu\r\n */\r\nexport interface IMenuState {\r\n /** Část stavu menu obsahující položky menu */\r\n readonly items: IMenuItems;\r\n /** Viditelnost menu */\r\n readonly menuVisibility: MenuVisibility;\r\n /** Indikátor určující, zda mají být zobrazeny popisky položek v menu panelu. */\r\n readonly menuPanelCaptionsVisible: boolean;\r\n /** Příznak, zda je viditelná překryvná vrstva formulářové oblasti */\r\n readonly formOverlayVisible: boolean;\r\n /** Obsahuje klíč aktivní sekce v levém panelu menu */\r\n readonly activeSectionId: SectionId;\r\n /** Obsahuje id nejzanořenější rozbalené submenu položky */\r\n readonly activeSubmenuId: ActiveSubmenuId;\r\n /** Obsahuje statické položky z levého panelu menu */\r\n readonly panelItems: MenuPanelItems;\r\n /**\r\n * Příznak, zda je aktivní float přechod menu. Tento příznak je nutné uložit pro případ přechodu menu z překrývajícího režimu\r\n * do skrytého a naopak. V opačném případě by se překrývající menu při skrývání chovalo jako nepřekrývající a podle toho by se animovalo.\r\n */\r\n readonly menuFloatTransitionActive: boolean;\r\n /** Obsahuje data potřebná pro navigaci pomocí klávesnice */\r\n readonly navigation: IMenuNavigationState;\r\n /** Obsahuje data o otevřených položkách. */\r\n readonly openedItems: IMenuOpenedItemsState;\r\n /** Obsahuje data související s vyhledáváním */\r\n readonly search: ISearchState;\r\n /** Obsahuje data související s oblíbenými položkami */\r\n readonly favoriteItems: IFavoriteItemsState;\r\n}\r\n\r\nexport type FormItemIdArray = ReadonlyArray<number>;\r\nexport type Forms = Readonly<{ [id: number]: IMenuItemData}>;\r\nexport type Profiles = Readonly<{ [id: number]: IFormProfile}>;\r\nexport type SectionId = string;\r\nexport type ActiveSubmenuId = number | null;\r\nexport type FavoriteFormIds = FormItemIdArray;\r\n\r\n/**\r\n * Mapuje kód formuláře na položky menu. Jeden formulář může mít v menu více položek.\r\n */\r\nexport type FormCodeMap = TypedObject<readonly number[]>;\r\n\r\n/**\r\n * Modifikovatelná varianta {@link FormCodeMap} pro použití při sestavování finálního objektu.\r\n */\r\nexport type MutableFormCodeMap = MutableTypedObject<number[]>;\r\n\r\n/**\r\n * Část stavu uchovávající informace o notifikacích.\r\n */\r\nexport type Notifications = {\r\n /** Notifikační položky. */\r\n readonly items: Readonly<NotificationItems>;\r\n /** Notifikační skupiny. */\r\n readonly groups: Readonly<FlatNotificationGroups>;\r\n /** Počet načtených stránek notifikačních položek. */\r\n readonly pageCount: Readonly<number>;\r\n};\r\n\r\nexport type OpenedFormHistoryInfoArray = ReadonlyArray<IOpenedFormHistoryInfo>;\r\n\r\n/**\r\n * Část stavu uchovávající položky pro menu.\r\n */\r\nexport interface IMenuItems {\r\n /** Aliasy povolených kořenových uzlů hlavního navigačního menu. */\r\n readonly allowedMenuItemCodes: AllowedMenuItemCodes;\r\n /** Položky formulářů indexované přes identifikátory. */\r\n readonly forms: Forms;\r\n /** Položky formulářových profilů indexované přes identifikátory. */\r\n readonly profiles: Profiles;\r\n /** Pole identifikátorů formulářových položek, které se zobrazují v první úrovni formulářového menu. */\r\n readonly rootFormItemIds: FormItemIdArray;\r\n /** Pomocné mapování z kódu formuláře na jeho id. Předchází opakovanému vyhledávání pro vazby využívající formCode (profily, oblíbené). */\r\n readonly formCodeMap: FormCodeMap;\r\n /** Podstrom notifikací. */\r\n readonly notifications: Notifications;\r\n /** Pole objektů s informacemi o formulářích otevřených v minulosti. Nejnovější záznam v historii je na začátku pole. */\r\n readonly historyFormsInfo: OpenedFormHistoryInfoArray;\r\n /** Obsahuje informace o omezeních pro položky menu. */\r\n readonly restrictions: Restrictions;\r\n /** Obsahuje propojení mezi profily a položky formulářů */\r\n readonly profileFormRelationships: ProfileFormRelationships;\r\n}\r\n\r\nexport type Restrictions = {\r\n /** Omezení pro formulářové položky zakazující zobrazení akčních položek pro otevření nových instancí. */\r\n readonly formItemHideWindowActions: WindowActionsRestrictions;\r\n /** Omezení pro profilové položky zakazující zobrazení akčních položek pro otevření nových instancí. */\r\n readonly profileHideWindowActions: WindowActionsRestrictions;\r\n /** Omezení pro instance formulářových položky zakazující zobrazení akční položky pro zavření instance. */\r\n readonly formItemInstanceHideCloseAction: FormItemInstanceCloseRestrictions;\r\n};\r\n\r\n/**\r\n * Objekt mapující id formulářové nebo profilové položky na hodnotu indikující omezení zobrazení akcí pro otevření nové instance.\r\n * Pokud položka nemá v objektu své id, potom není omezená.\r\n */\r\nexport type WindowActionsRestrictions = Readonly<{[id: number]: boolean}>;\r\n\r\n/**\r\n * Objekt mapující id formulářové položky na hodnotu indikující omezení zobrazení akce pro zavření instance.\r\n * Pokud položka nemá v objektu své id, potom není omezená.\r\n */\r\nexport type FormItemInstanceCloseRestrictions = Readonly<TypedObject<boolean>>;\r\n\r\n/**\r\n * Typ položky levého panelu menu\r\n */\r\nexport enum MenuPanelItemType {\r\n static = \"static\",\r\n notificationGroup = \"notificationGroup\",\r\n form = \"form\",\r\n}\r\n\r\n/**\r\n * Struktura dat pro položku levého panelu menu.\r\n */\r\nexport interface IMenuPanelItem {\r\n readonly id: string;\r\n readonly iconCode: IconCode;\r\n readonly locKey: string;\r\n readonly itemId?: string | number;\r\n readonly highlighted?: boolean;\r\n readonly type: MenuPanelItemType;\r\n readonly activationType: MenuItemActivatedType;\r\n /**\r\n * Id podmenu, které bylo naposledy otevřené.\r\n * Slouží k reaktivaci tohoto podmenu spolu s aktivací položky hlavního panelu menu.\r\n */\r\n readonly lastSubmenuId?: number;\r\n}\r\n\r\n/**\r\n * Typ pro normalizovaný stav uchovávající položky levého panelu menu.\r\n */\r\nexport type MenuPanelItems = Readonly<TypedObject<IMenuPanelItem>>;\r\n\r\n/**\r\n * Část stavu uchovávající propojení mezi profilem a položkou formuláře.\r\n */\r\nexport type ProfileFormRelationships = TypedObject<ProfileFormRelationship>;\r\n\r\n/**\r\n * Upřesňuje propojení mezi profilem a položkou formuláře. Umožňuje jednoznačnou identifikaci pro profil, i když je vykreslený vícekrát, pod různými položkami formulářů.\r\n * Profily mají i své samostatné záznamy, kvůli jednotné práci s případy, kdy je profil vykreslený samostatně, bez rodičovského formuláře. To nastává například v sekci\r\n * vyhledávání.\r\n */\r\nexport type ProfileFormRelationship = {\r\n /** Id složené z id profilu a položky formuláře, u které je vedený jako potomek, pomocí funkce createItemIdForProfile z navigation sub modulu. */\r\n readonly id: string;\r\n readonly formItemId?: number;\r\n readonly profileId: number;\r\n};\r\n\r\n/**\r\n * Akce pro nastavení položek menu do stavu.\r\n */\r\nexport interface ISetMenuItemsAction extends Action<typeof SET_MENU_ITEMS> {\r\n readonly payload: {\r\n readonly menuItems: Readonly<IMenuData>;\r\n };\r\n}\r\n\r\nexport class ISetMenuItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_MENU_ITEMS;\r\n }\r\n}\r\n\r\n/** Typ tlačítka ovlivňuje barvu pozadí po najetí myši */\r\nexport enum ActionItemHoverType {\r\n /** Výchozí typ */\r\n primary = \"primary\",\r\n /** Typ destruktvivní akce */\r\n danger = \"danger\",\r\n}\r\n\r\n/** Notifikační položky jsou ve stavu ukládány v objektu klíčovaném přes jejich identifikátory. */\r\nexport type NotificationItems = Readonly<TypedObject<INotificationItem>>;\r\n\r\n/** Plochá reprezentace notifikační skupiny. */\r\nexport interface IFlatNotificationGroup {\r\n /** Identifikátor skupiny notifikací */\r\n readonly id: NotificationGroupId;\r\n /** Zda je skupina nepřečtená */\r\n readonly unread: boolean;\r\n /** Kód formuláře, který se používá pro zobrazení všech notifikací skupiny */\r\n readonly formCode: string;\r\n /** Kód ikony pro skupinu */\r\n readonly iconCode: IconCode;\r\n /** Lokalizační klíč titulku v hlavičce skupiny notifikací */\r\n readonly titleLocKey: string;\r\n}\r\n\r\n/** Notifikační skupiny jsou ve stavu pro snažší práci ukládány v plochém formátu. */\r\nexport type FlatNotificationGroups = {[notificationGroupId: string]: IFlatNotificationGroup};\r\n\r\n/**\r\n * Viditelnost menu\r\n */\r\nexport enum MenuVisibility {\r\n /* Menu je skryté */\r\n hidden = \"hidden\",\r\n /* Menu je viditelné a nepřekrývající */\r\n expanded = \"expanded\",\r\n /* Menu je viditelné a překrývající */\r\n floated = \"floated\",\r\n}\r\n\r\n/**\r\n * Možné stavy automatu viditelnosti překryvné vrstvy, menu a submenu\r\n * První číslo názvu stavu představuje viditelnost překryvné vrstvy (skrytá, viditelná), další číslo viditelnost menu (skryté, překrývající,\r\n * nepřekrývající) a poslední číslo viditelnost submenu (skryté, viditelné).\r\n */\r\nexport type VisualAutomatState = \"000\" | \"020\" | \"121\" | \"110\" | \"111\";\r\n\r\n/**\r\n * Typy položek, které se nachází v menu. Slouží k identifikaci typu zdrojové položky v obecných akcích vyvolaných interakcí uživatele s těmito položkami.\r\n * Nemusí zahrnovat všechny typy položek, pokud některé nevyužívají obecné akce.\r\n */\r\nexport enum MenuItemActivatedType {\r\n profile = \"profile\",\r\n form = \"form\",\r\n formFolder = \"formFolder\",\r\n panelItemForm = \"panelItemForm\",\r\n panelItemFormFolder = \"panelItemFormFolder\",\r\n panelItemCombinedItemForm = \"panelItemCombinedItemForm\",\r\n panelItemCombinedItemFolder = \"panelItemCombinedItemFolder\",\r\n settingsButton = \"settingsButton\",\r\n toggleThemeButton = \"toggleThemeButton\",\r\n logoutButton = \"logoutButton\",\r\n notificationGroup = \"notificationGroup\",\r\n notificationItem = \"notificationItem\",\r\n staticPanelItem = \"staticPanelItem\",\r\n expandButton = \"expandButton\",\r\n formFavoriteActionItem = \"formFavoriteActionItem\",\r\n openedInstanceFavoriteActionItem = \"openedInstanceFavoriteActionItem\",\r\n openFormActionItem = \"openFormActionItem\",\r\n openProfileActionItem = \"openProfileActionItem\",\r\n openFormInstanceActionItem = \"openFormInstanceActionItem\",\r\n openFormInTabActionItem = \"openFormInTabActionItem\",\r\n openProfileInTabActionItem = \"openProfileInTabActionItem\",\r\n openFormInstanceInTabActionItem = \"openFormInstanceInTabActionItem\",\r\n closeActionItem = \"closeActionItem\",\r\n logoButton = \"logoButton\",\r\n openedForm = \"openedForm\",\r\n}\r\n\r\n/**\r\n * Typy aktivovatelných položek reprezentovány akční položkou pro nastavení oblíbenosti.\r\n */\r\nexport type FavoriteActionItemActivatableTypes = MenuItemActivatedType.formFavoriteActionItem | MenuItemActivatedType.openedInstanceFavoriteActionItem;\r\n\r\n/**\r\n * Typ parametru pro selector isFormItemOrInstanceFavorite.\r\n */\r\nexport type IsFormItemOrInstanceFavoriteSelectorParams = {\r\n readonly formId: string | number;\r\n readonly type: FavoriteActionItemActivatableTypes;\r\n readonly profileId: number | undefined;\r\n};\r\n\r\nexport interface ISetMenuVisibilityAction extends Action<typeof SET_MENU_VISIBILITY> {\r\n readonly payload: {\r\n readonly menuVisibility: MenuVisibility;\r\n };\r\n}\r\n\r\nexport class ISetMenuVisibilityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_MENU_VISIBILITY;\r\n }\r\n}\r\n\r\nexport interface ISetActiveSubmenuAction extends Action<typeof SET_ACTIVE_SUBMENU> {\r\n readonly payload: {\r\n submenuId: number;\r\n /** Id položky na hlavním panelu, v rámci které má být aktivováno dané podmenu. */\r\n sectionId: SectionId;\r\n };\r\n}\r\n\r\nexport class ISetActiveSubmenuAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_ACTIVE_SUBMENU;\r\n }\r\n}\r\n\r\nexport interface ICloseSubmenusAction extends Action<typeof CLOSE_SUBMENUS> {}\r\n\r\nexport class ICloseSubmenusAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLOSE_SUBMENUS;\r\n }\r\n}\r\n\r\nexport interface IClearLastSubmenuAction extends Action<typeof CLEAR_LAST_SUBMENU> {\r\n readonly payload: {\r\n sectionId: SectionId;\r\n };\r\n}\r\n\r\nexport class IClearLastSubmenuAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_LAST_SUBMENU;\r\n }\r\n}\r\n\r\nexport interface ISetActiveSectionAction extends Action<typeof SET_ACTIVE_SECTION> {\r\n readonly payload: {\r\n readonly activeSectionId: SectionId;\r\n };\r\n}\r\n\r\nexport class ISetActiveSectionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_ACTIVE_SECTION;\r\n }\r\n}\r\n\r\nexport interface IToggleSubmenuAction extends Action<typeof TOGGLE_SUBMENU> {\r\n readonly payload: {\r\n readonly submenuId: number;\r\n };\r\n}\r\n\r\nexport class IToggleSubmenuAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === TOGGLE_SUBMENU;\r\n }\r\n}\r\n\r\nexport interface ISetAllowedMenuItemCodesAction extends Action<typeof SET_ALLOWED_MENU_ITEM_CODES> {\r\n readonly payload: {\r\n readonly allowedMenuItemCodes: AllowedMenuItemCodes;\r\n };\r\n}\r\n\r\nexport class ISetAllowedMenuItemCodesAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_ALLOWED_MENU_ITEM_CODES;\r\n }\r\n}\r\n\r\nexport interface IResetNotificationItemsAction extends Action<typeof RESET_NOTIFICATION_ITEMS> {}\r\n\r\nexport class IResetNotificationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === RESET_NOTIFICATION_ITEMS;\r\n }\r\n}\r\n\r\nexport interface IConcatNotificationItemsAction extends Action<typeof CONCAT_NOTIFICATION_ITEMS> {\r\n readonly payload: {\r\n readonly notificationItems: NotificationItems;\r\n };\r\n}\r\n\r\nexport class IConcatNotificationItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CONCAT_NOTIFICATION_ITEMS;\r\n }\r\n}\r\n\r\nexport interface ISetNotificationGroupsAction extends Action<typeof SET_NOTIFICATION_GROUPS> {\r\n readonly payload: {\r\n readonly notificationGroups: FlatNotificationGroups;\r\n };\r\n}\r\n\r\nexport class ISetNotificationGroupsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_NOTIFICATION_GROUPS;\r\n }\r\n}\r\n\r\nexport interface IResetNotificationsPageCountAction extends Action<typeof RESET_NOTIFICATIONS_PAGE_COUNT> {}\r\n\r\nexport class IResetNotificationsPageCountAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === RESET_NOTIFICATIONS_PAGE_COUNT;\r\n }\r\n}\r\n\r\nexport interface IIncreaseNotificationsPageCountAction extends Action<typeof INCREASE_NOTIFICATIONS_PAGE_COUNT> {}\r\n\r\nexport class IIncreaseNotificationsPageCountAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === INCREASE_NOTIFICATIONS_PAGE_COUNT;\r\n }\r\n}\r\n\r\nexport interface ILoadNextNotificationItemsPageAction extends Action<typeof LOAD_NEXT_NOTIFICATION_ITEMS_PAGE> {}\r\n\r\nexport class ILoadNextNotificationItemsPageAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_NEXT_NOTIFICATION_ITEMS_PAGE;\r\n }\r\n}\r\n\r\nexport interface IShowGroupNotificationsAction extends Action<typeof SHOW_GROUP_NOTIFICATIONS> {}\r\n\r\nexport class IShowGroupNotificationsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SHOW_GROUP_NOTIFICATIONS;\r\n }\r\n}\r\n\r\nexport interface ISetActiveGroupNotificationsAsReadAction extends Action<typeof SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ> {}\r\n\r\nexport class ISetActiveGroupNotificationsAsReadAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ;\r\n }\r\n}\r\n\r\nexport interface ISetFormItemActionRestrictionsAction extends Action<typeof SET_FORM_ITEM_ACTION_RESTRICTIONS> {\r\n readonly payload: {\r\n readonly formItemId: number;\r\n readonly hideWindowActions: boolean;\r\n };\r\n}\r\n\r\nexport class ISetFormItemActionRestrictionsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_FORM_ITEM_ACTION_RESTRICTIONS;\r\n }\r\n}\r\n\r\nexport interface ISetProfileActionRestrictionsAction extends Action<typeof SET_PROFILE_ACTION_RESTRICTIONS> {\r\n readonly payload: {\r\n readonly profileId: number;\r\n readonly hideWindowActions: boolean;\r\n };\r\n}\r\n\r\nexport class ISetProfileActionRestrictionsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_PROFILE_ACTION_RESTRICTIONS;\r\n }\r\n}\r\n\r\nexport interface IConcatPanelItemsAction extends Action<typeof CONCAT_PANEL_ITEMS> {\r\n readonly payload: {\r\n readonly panelItems: MenuPanelItems;\r\n };\r\n}\r\n\r\nexport class IConcatPanelItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CONCAT_PANEL_ITEMS;\r\n }\r\n}\r\n\r\nexport interface ISetNotificationGroupsPanelItemsAction extends Action<typeof SET_NOTIFICATION_GROUPS_PANEL_ITEMS> {\r\n readonly payload: {\r\n readonly notificationGroupsPanelItems: MenuPanelItems;\r\n };\r\n}\r\n\r\nexport class ISetNotificationGroupsPanelItemsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_NOTIFICATION_GROUPS_PANEL_ITEMS;\r\n }\r\n}\r\n\r\nexport interface ISetMenuPanelCaptionsVisibilityAction extends Action<typeof SET_MENU_PANEL_CAPTIONS_VISIBILITY> {\r\n readonly payload: {\r\n readonly visible: boolean;\r\n };\r\n}\r\n\r\nexport class ISetMenuPanelCaptionsVisibilityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.type === SET_MENU_PANEL_CAPTIONS_VISIBILITY;\r\n }\r\n}\r\n\r\ntype MenuItemActivatedPayload = {\r\n readonly itemId: string | number;\r\n readonly profileId?: number;\r\n readonly itemType: MenuItemActivatedType;\r\n readonly section: NavigationSection;\r\n readonly mouseEvent?: SerializableMouseEvent;\r\n readonly keyEvent?: SerializableKeyEvent;\r\n readonly preventFormDefault?: boolean;\r\n};\r\n\r\nexport interface IMenuItemActivatedAction extends Action<typeof MENU_ITEM_ACTIVATED> {\r\n readonly payload: MenuItemActivatedPayload;\r\n}\r\n\r\nexport class IMenuItemActivatedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === MENU_ITEM_ACTIVATED;\r\n }\r\n}\r\n\r\nexport interface IMenuItemDefaultActionAllowedAction extends Action<typeof MENU_ITEM_DEFAULT_ACTION_ALLOWED> {\r\n readonly payload: MenuItemActivatedPayload;\r\n}\r\n\r\nexport class IMenuItemDefaultActionAllowedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === MENU_ITEM_DEFAULT_ACTION_ALLOWED;\r\n }\r\n}\r\n\r\nexport interface IVisualAutomatProcessedAction extends Action<typeof VISUAL_AUTOMAT_PROCESSED> {}\r\n\r\nexport class IVisualAutomatProcessedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === VISUAL_AUTOMAT_PROCESSED;\r\n }\r\n}\r\n\r\nexport interface ISetVisualAutomatStateAction extends Action<typeof SET_VISUAL_AUTOMAT_STATE> {\r\n readonly payload: {\r\n readonly state: VisualAutomatState;\r\n };\r\n}\r\n\r\nexport class ISetVisualAutomatStateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_VISUAL_AUTOMAT_STATE;\r\n }\r\n}\r\n\r\nexport interface ISetMenuFloatTransitionActive extends Action<typeof SET_MENU_FLOAT_TRANSITION_ACTIVE> {\r\n readonly payload: {\r\n readonly menuFloatTransitionActive: boolean;\r\n };\r\n}\r\n\r\nexport class ISetMenuFloatTransitionActive {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_MENU_FLOAT_TRANSITION_ACTIVE;\r\n }\r\n}\r\n\r\nexport interface IRemoveProfileFromFormsAction extends Action<typeof REMOVE_PROFILE_FROM_FORMS> {\r\n readonly payload: {\r\n readonly profileId: number;\r\n readonly formItemIds: readonly number[];\r\n };\r\n}\r\n\r\nexport class IRemoveProfileFromFormsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_PROFILE_FROM_FORMS;\r\n }\r\n}\r\n\r\nexport interface IRemoveProfileFormRelationshipsAction extends Action<typeof REMOVE_PROFILE_FORM_RELATIONSHIPS> {\r\n readonly payload: {\r\n readonly ids: readonly string[];\r\n };\r\n}\r\n\r\nexport class IRemoveProfileFormRelationshipsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REMOVE_PROFILE_FORM_RELATIONSHIPS;\r\n }\r\n}\r\n\r\nexport interface IAddProfileToRelationshipsAction extends Action<typeof ADD_PROFILE_TO_RELATIONSHIPS> {\r\n readonly payload: {\r\n readonly profileId: number;\r\n };\r\n}\r\n\r\nexport class IAddProfileToRelationshipsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === ADD_PROFILE_TO_RELATIONSHIPS;\r\n }\r\n}\r\n\r\nexport interface IReloadMenuAction extends Action<typeof RELOAD_MENU> {\r\n}\r\n\r\nexport class IReloadMenuAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === RELOAD_MENU;\r\n }\r\n}\r\n","import { createCreateActionType } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu pro práci s oprávněními komponent. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"rights\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/**\r\n * Typ akce pro hromadné nastavení práv komponentám.\r\n */\r\nexport const SET_RIGHTS_FOR_COMPONENTS = createActionType(\"SET_RIGHTS_FOR_COMPONENTS\");\r\n/**\r\n * Typ interní akce pro nastavení práv jedné komponentě.\r\n */\r\nexport const SET_RIGHTS_INTERNAL = createActionType(\"SET_RIGHTS_INTERNAL\");\r\n/**\r\n * Typ akce pro hromadné odstranění práv komponent.\r\n */\r\nexport const REMOVE_RIGHTS_FOR_COMPONENTS = createActionType(\"REMOVE_RIGHTS_FOR_COMPONENTS\");\r\n","import { Action } from \"redux\";\r\n\r\nimport type { TypedObject } from \"@multiweb/types/react\";\r\nimport { REMOVE_RIGHTS_FOR_COMPONENTS, SET_RIGHTS_FOR_COMPONENTS, SET_RIGHTS_INTERNAL } from \"./constants\";\r\n\r\n/**\r\n * Definice stavu kolekci vyhodnocených práv komponent.\r\n */\r\nexport type RightsState = TypedObject<IComponentRightsState>;\r\n\r\n/**\r\n * Typ stavu obsahujcí práva pro jednu komponentu.\r\n */\r\nexport interface IComponentRightsState {\r\n readonly visible: boolean;\r\n readonly enabled: boolean;\r\n readonly required: boolean;\r\n readonly postponedRequired: boolean;\r\n readonly recommended: boolean;\r\n}\r\n\r\n/**\r\n * Typ obsahu pro akci hromadného nastavení práv komponentám.\r\n */\r\nexport type SetRightsForComponentsPayload = ReadonlyArray<{\r\n /** Id komponenty, pro kterou se nastavují práva. */\r\n readonly id: string;\r\n /** Práva komponenty. */\r\n readonly rights: Partial<IComponentRightsState>;\r\n}>;\r\n\r\n/**\r\n * Typ akce pro hromadné nastavení práv komponentám.\r\n */\r\nexport interface ISetRightsForComponentsAction extends Action<typeof SET_RIGHTS_FOR_COMPONENTS> {\r\n readonly payload: SetRightsForComponentsPayload;\r\n}\r\n\r\nexport class ISetRightsForComponentsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.type === SET_RIGHTS_FOR_COMPONENTS;\r\n }\r\n}\r\n\r\n/**\r\n * Typ interní akce pro nastavení práv jedné komponentě.\r\n */\r\nexport interface ISetRightsInternal extends Action<typeof SET_RIGHTS_INTERNAL> {\r\n readonly payload: Partial<IComponentRightsState>;\r\n}\r\n\r\nexport class ISetRightsInternal {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.type === SET_RIGHTS_INTERNAL;\r\n }\r\n}\r\n\r\n/**\r\n * Typ obsahu akce pro odstraňování práv komponent. Pole identifikátorů komponent, jejichž práva se odstraňují.\r\n */\r\nexport type RemoveRightsForComponentsPayload = ReadonlyArray<string>;\r\n\r\n/**\r\n * Typ akce pro hromadné odstranění práv komponent.\r\n */\r\nexport interface IRemoveRightsForComponents extends Action<typeof REMOVE_RIGHTS_FOR_COMPONENTS> {\r\n readonly payload: RemoveRightsForComponentsPayload;\r\n}\r\n\r\nexport class IRemoveRightsForComponents {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.type === REMOVE_RIGHTS_FOR_COMPONENTS;\r\n }\r\n}\r\n","/** Směry kotev pro resizování (např. SE = Southeast) */\r\nexport const enum AnchorPoint {\r\n N = \"N\",\r\n NE = \"NE\",\r\n E = \"E\",\r\n SE = \"SE\",\r\n S = \"S\",\r\n SW = \"SW\",\r\n W = \"W\",\r\n NW = \"NW\",\r\n}\r\n\r\n/** Určuje, jakými směry lze měnit velikost picasso komponenty. */\r\nexport enum ResizeOptions {\r\n none = 0b00,\r\n horizontal = 0b01,\r\n vertical = 0b10,\r\n both = 0b11,\r\n}\r\n\r\n/** Popisuje, jakého typu je entity (Je to tu v podstatě jen proto, že Typescript neumí instanceof pro interfacy... jakmile to bude umět, tak klidně smazat!) */\r\nexport const enum EntityType {\r\n component = \"component\",\r\n link = \"link\",\r\n}\r\n\r\n/** Popisuje zakotvení komponenty vůči své rodičovské komponentě. */\r\nexport const enum AlignType {\r\n top = \"top\",\r\n bottom = \"bottom\",\r\n left = \"left\",\r\n right = \"right\",\r\n none = \"none\",\r\n client = \"client\",\r\n}\r\n","import { AlignType, EntityType, ResizeOptions } from \"./enums\";\r\n\r\nexport interface IEntity {\r\n /** Index of the entity within the array of components/links. */\r\n readonly index: number;\r\n /** Identifier of Picasso entity. */\r\n readonly id: string;\r\n readonly type: EntityType;\r\n}\r\n\r\nexport interface IComponent extends IEntity {\r\n readonly isVisible: boolean;\r\n readonly children: readonly number[];\r\n readonly linkIndexes: readonly number[];\r\n readonly parent: number | null;\r\n readonly name: string;\r\n readonly width: number;\r\n readonly minWidth: number;\r\n readonly height: number;\r\n readonly resizeOption: ResizeOptions;\r\n readonly noCssHeight?: boolean;\r\n readonly noCssWidth?: boolean;\r\n readonly minHeight: number;\r\n readonly align: AlignType;\r\n readonly relativeTop: number;\r\n readonly relativeLeft: number;\r\n}\r\n\r\nexport interface ILink extends IEntity {\r\n readonly name: string;\r\n readonly ownerIndex: number;\r\n readonly startComponentIndex: number;\r\n readonly endComponentIndex: number;\r\n readonly points: readonly IPoint[];\r\n}\r\n\r\nexport interface IPoint {\r\n readonly x: number;\r\n readonly y: number;\r\n}\r\n","import { MouseEvent } from \"react\";\r\nimport { MapStateToProps } from \"react-redux\";\r\nimport { Action } from \"redux\";\r\n\r\nimport { CHANGE_SCALE_INDEX, DELETE_COMPONENTS, LOAD_PICASSO_STATE, REQUEST_PAINTING_SCROLL_POSITION, SELECT_ALL_COMPONENTS, SELECT_COMPONENT, SELECT_LINK, SELECT_POINT, UNSELECT_ALL, UNSELECT_COMPONENT, UNSELECT_LINK, UNSELECT_POINT, UPDATE_COMPONENT_VISIBILITY, UPDATE_COMPONENTS, UPDATE_COMPONENTS_ALIGNMENT, UPDATE_COMPONENTS_RESIZE_OPTION, UPDATE_LINKS } from \"./constants\";\r\nimport { AlignType, ResizeOptions } from \"./enums\";\r\nimport { IComponent, ILink, IPoint } from \"./interfaces\";\r\n\r\n/** Props sloužící pro předání implementace Moveable komponenty. */\r\nexport type MoveablePassableProps = {\r\n readonly uiComponent: IComponent;\r\n readonly isSelected: boolean;\r\n /** Hodnota pro CSS vlastnost grid template. Určuje rozložení gridu picasso komponenty. Je využívána pro korektní zobrazení align-ů. */\r\n readonly gridTemplate: string;\r\n /**\r\n * Vrací JSX komponentu daného @param componentName reprezentující vzhled Moveable komponenty\r\n * @param componentName Jméno komponenty\r\n * @param passableProps Props, které jsou poskytnuty Moveable komponentou\r\n * @returns JSX komponenta daného @param componentName\r\n */\r\n readonly renderComponent: (componentName: string, passableProps: MoveablePassableProps) => JSX.Element;\r\n /**\r\n * Vrací JSX komponentu daného @param linkName reprezentující vzhled Link komponenty\r\n * @param linkName Jméno komponenty\r\n * @param passableProps Props, které jsou poskytnuty Link komponentou\r\n * @returns JSX komponenta daného @param linkName\r\n */\r\n readonly renderLink?: (readonlylinkName: string, passableProps: LinkPassableProps) => JSX.Element;\r\n readonly onResizePointDown: (e: MouseEvent, selectedAnchors: SelectedAnchorsType) => void;\r\n readonly onMouseUp: (e: MouseEvent, component: IComponent) => void;\r\n readonly onMouseClick: (e: MouseEvent, component: IComponent, isSelected: boolean, isSelectable: boolean) => void;\r\n readonly onMouseLeave: (e: MouseEvent) => void;\r\n readonly onComponentMouseDown: (e: MouseEvent, isSelected: boolean, isDraggable: boolean, isSelectable: boolean, component: IComponent) => void;\r\n readonly onMouseMove: (e: MouseEvent, uiComponent: IComponent, isSelected: boolean) => void;\r\n readonly onLinkChange?: (changedLinkIndex: number, newPoints: readonly IPoint[]) => void;\r\n readonly wrapMapStateToProps: WrapMapStateToProps<any>;\r\n readonly clickSelectComponent: (e: MouseEvent) => void;\r\n readonly mouseDownComponentSelect: (e: MouseEvent) => void;\r\n} & PicassoEditorProps;\r\n\r\n/** Props sloužící pro předání implementace Link komponenty. */\r\nexport type LinkPassableProps = {\r\n readonly link: ILink;\r\n readonly isSelected: boolean;\r\n readonly isAnyPointSelected: boolean;\r\n readonly onLinkClick: (e: MouseEvent) => void;\r\n readonly updatePoints: (newPoints: readonly IPoint[]) => void;\r\n readonly selectPoint: (pointIndex: number, point: IPoint, lastPosition: IPoint) => void;\r\n} & PicassoEditorProps;\r\n\r\nexport type ComponentChangeType = {\r\n readonly componentIndex: number;\r\n readonly x: number;\r\n readonly y: number;\r\n readonly width: number;\r\n readonly height: number;\r\n readonly deltaX: number;\r\n readonly deltaY: number;\r\n};\r\n\r\nexport type LinkChangeType = {\r\n readonly index: number;\r\n readonly newPoints: readonly IPoint[];\r\n};\r\n\r\nexport type SelectablePoint = {\r\n readonly pointIndex: number;\r\n readonly originCursorCoordinates: IPoint;\r\n readonly linkIndex: number;\r\n readonly lastPosition: IPoint;\r\n};\r\n\r\nexport type AnchorType = {\r\n readonly element: HTMLElement;\r\n readonly isSelected: boolean;\r\n};\r\n\r\nexport type ScrollPosition = Readonly<Required<Pick<ScrollToOptions, \"left\" | \"top\">>>;\r\n\r\nexport type SelectedAnchorsProperties = \"nAnchor\" | \"neAnchor\" | \"eAnchor\" | \"seAnchor\" | \"sAnchor\" | \"swAnchor\" | \"wAnchor\" | \"nwAnchor\";\r\n\r\nexport type SelectedAnchorsType = Record<SelectedAnchorsProperties, AnchorType>;\r\n\r\nexport interface IPicassoState {\r\n readonly components: readonly IComponent[];\r\n readonly selectedComponentsIndexes: readonly number[];\r\n readonly links: readonly ILink[];\r\n readonly selectedLinksIndexes: readonly number[];\r\n readonly selectedPoint: SelectablePoint | null;\r\n readonly scaleIndex: number;\r\n readonly requestedScrollPosition: ScrollPosition;\r\n}\r\n\r\nexport type PicassoEditorProps = {\r\n /** Klíč instance Picassa pro přístup k reduxímu storu. */\r\n readonly picassoInstanceKey: string;\r\n};\r\n\r\n/** Obalovací funkce pro MapStateToProps pro extrakci podstromu se stavem Picassa. */\r\nexport type WrapMapStateToProps<S extends ObjectType> = <SP, OP>(mapStateToProps: MapStateToProps<SP, OP, IPicassoState>) => MapStateToProps<SP, OP, S>;\r\n\r\n/**\r\n * Typ pro prázdný objekt.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport type EmptyObjectType = {};\r\n\r\n/**\r\n * Typ pro objekt. Typ `object` by se nedoporučuje používat.\r\n * @see {@link https://github.com/microsoft/TypeScript/issues/21732}\r\n */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport type ObjectType = object;\r\n\r\n/**\r\n * Helper type that makes all properties of given type {@link T} mutable (a.k.a. removes readonly modifier).\r\n * @template T The type that has readonly properties.\r\n */\r\nexport type Mutable<T> = {\r\n -readonly [Key in keyof T]: T[Key];\r\n};\r\n\r\n//#region Action types\r\nexport interface IPicassoAction extends Action<string> {\r\n readonly meta: {\r\n readonly picassoInstanceKey: string;\r\n };\r\n}\r\n\r\nexport class IPicassoAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.picassoInstanceKey;\r\n }\r\n}\r\n\r\nexport interface ILoadStateAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly components: readonly IComponent[];\r\n readonly links: readonly ILink[];\r\n readonly selectedComponentIndex?: number;\r\n readonly selectedLinkIndex?: number;\r\n };\r\n}\r\n\r\nexport class ILoadStateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_PICASSO_STATE;\r\n }\r\n}\r\n\r\nexport interface ISelectComponentAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly component: IComponent;\r\n readonly reselect: boolean;\r\n };\r\n}\r\n\r\nexport class ISelectComponentAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SELECT_COMPONENT;\r\n }\r\n}\r\n\r\nexport interface IUnselectComponentAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly componentIndex: number;\r\n };\r\n}\r\n\r\nexport class IUnselectComponentAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UNSELECT_COMPONENT;\r\n }\r\n}\r\n\r\nexport interface ISelectLinkAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly link: ILink;\r\n readonly reselect: boolean;\r\n };\r\n}\r\n\r\nexport class ISelectLinkAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SELECT_LINK;\r\n }\r\n}\r\n\r\nexport interface IUnselectLinkAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly linkIndex: number;\r\n };\r\n}\r\n\r\nexport class IUnselectLinkAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UNSELECT_LINK;\r\n }\r\n}\r\n\r\nexport interface IUpdateComponentsAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly changedComps: readonly ComponentChangeType[];\r\n };\r\n}\r\n\r\nexport class IUpdateComponentsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_COMPONENTS;\r\n }\r\n}\r\n\r\nexport interface IDeleteComponentsAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly componentsToDelete: readonly number[];\r\n };\r\n}\r\n\r\nexport class IDeleteComponentsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === DELETE_COMPONENTS;\r\n }\r\n}\r\n\r\nexport interface IUpdateLinksAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly changedLinks: readonly LinkChangeType[];\r\n };\r\n}\r\n\r\nexport class IUpdateLinksAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_LINKS;\r\n }\r\n}\r\n\r\nexport interface ISelectPointAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly selectedPoint: SelectablePoint | null;\r\n };\r\n}\r\n\r\nexport class ISelectPointAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SELECT_POINT;\r\n }\r\n}\r\n\r\nexport interface IUnselectPointAction extends IPicassoAction { }\r\n\r\nexport class IUnselectPointAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UNSELECT_POINT;\r\n }\r\n}\r\n\r\nexport interface IChangeScaleIndexAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly newScaleIndex: number;\r\n };\r\n}\r\n\r\nexport class IChangeScaleIndexAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CHANGE_SCALE_INDEX;\r\n }\r\n}\r\n\r\nexport interface ISelectAllComponentsAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly parentIndex: number;\r\n };\r\n}\r\n\r\nexport class ISelectAllComponentsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SELECT_ALL_COMPONENTS;\r\n }\r\n}\r\n\r\nexport interface IUnselectAllAction extends IPicassoAction { }\r\n\r\nexport class IUnselectAllAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UNSELECT_ALL;\r\n }\r\n}\r\n\r\nexport interface IRequestPaintingScrollPositionAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly requestedScrollPosition: ScrollPosition;\r\n };\r\n}\r\n\r\nexport class IRequestPaintingScrollPositionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === REQUEST_PAINTING_SCROLL_POSITION;\r\n }\r\n}\r\n\r\nexport interface IUpdateComponentVisibilityAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly componentIndex: number;\r\n readonly isVisible: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateComponentVisibilityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_COMPONENT_VISIBILITY;\r\n }\r\n}\r\n\r\nexport interface IUpdateComponentsAlignmentAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly componentIndex: number;\r\n readonly align: AlignType;\r\n };\r\n}\r\n\r\nexport class IUpdateComponentsAlignmentAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_COMPONENTS_ALIGNMENT;\r\n }\r\n}\r\n\r\nexport interface IUpdateComponentsResizeOptionAction extends IPicassoAction {\r\n readonly payload: {\r\n readonly componentIndex: number;\r\n readonly resizeOption: ResizeOptions;\r\n readonly noCssHeight: boolean;\r\n readonly noCssWidth: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateComponentsResizeOptionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_COMPONENTS_RESIZE_OPTION;\r\n }\r\n}\r\n\r\n//#endregion\r\n","import { ScrollPosition } from \"./types\";\r\n\r\n/**\r\n * Jméno modulu picasso. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"PICASSO\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce.\r\n * @param actionType Název typu akce.\r\n */\r\nconst createActionType = <N extends string>(actionType: N) => `${NAME}/${actionType}` as const;\r\n\r\n/** Konstanty typů akcí */\r\nexport const LOAD_PICASSO_STATE = createActionType(\"LOAD_PICASSO_STATE\");\r\nexport const SELECT_COMPONENT = createActionType(\"SELECT_COMPONENT\");\r\nexport const UNSELECT_COMPONENT = createActionType(\"UNSELECT_COMPONENT\");\r\nexport const UPDATE_COMPONENTS = createActionType(\"UPDATE_COMPONENTS\");\r\nexport const DELETE_COMPONENTS = createActionType(\"DELETE_COMPONENTS\");\r\nexport const SELECT_LINK = createActionType(\"SELECT_LINK\");\r\nexport const UNSELECT_LINK = createActionType(\"UNSELECT_LINK\");\r\nexport const UPDATE_LINKS = createActionType(\"UPDATE_LINKS\");\r\nexport const SELECT_POINT = createActionType(\"SELECT_POINT\");\r\nexport const UNSELECT_POINT = createActionType(\"UNSELECT_POINT\");\r\nexport const CHANGE_SCALE_INDEX = createActionType(\"CHANGE_SCALE_INDEX\");\r\nexport const UNSELECT_ALL = createActionType(\"UNSELECT_ALL\");\r\nexport const SELECT_ALL_COMPONENTS = createActionType(\"SELECT_ALL_COMPONENTS\");\r\nexport const REQUEST_PAINTING_SCROLL_POSITION = createActionType(\"REQUEST_PAINTING_SCROLL_POSITION\");\r\nexport const UPDATE_COMPONENT_VISIBILITY = createActionType(\"UPDATE_COMPONENT_VISIBILITY\");\r\nexport const UPDATE_COMPONENTS_ALIGNMENT = createActionType(\"UPDATE_COMPONENTS_ALIGNMENT\");\r\nexport const UPDATE_COMPONENTS_RESIZE_OPTION = createActionType(\"UPDATE_COMPONENTS_RESIZE_OPTION\");\r\n\r\nexport const PICASSO_PAINTING_CSS_CLASS = \"picasso-painting\";\r\nexport const PICASSO_PAINTING_BOX_CSS_CLASS = \"picasso-painting-box\";\r\nexport const PICASSO_PAINTING_WRAPPER_CSS_CLASS = \"picasso-painting-wrapper\";\r\n\r\n/** Konstanta pro prázdné pole. Umožňuje porovnávání referencí. */\r\nexport const EMPTY_ARRAY: ReadonlyArray<any> = [];\r\n\r\n/** Konstanta pro defaultní offset plátna picassa. */\r\nexport const DEFAULT_SCROLL_POSITION: ScrollPosition = { left: 0, top: 0 };\r\n\r\n// Konstanty čísel tlačítek myši\r\nexport const CONST_NO_MOUSE_BTN = 0;\r\nexport const CONST_LEFT_MOUSE_BTN = 1;\r\nexport const CONST_RIGHT_MOUSE_BTN = 2;\r\nexport const CONST_MIDDLE_MOUSE_BTN = 4;\r\n\r\n// Konstanty pro klávesy\r\nexport const CONST_ARROW_UP = \"ArrowUp\";\r\nexport const CONST_ARROW_DOWN = \"ArrowDown\";\r\nexport const CONST_ARROW_RIGHT = \"ArrowRight\";\r\nexport const CONST_ARROW_LEFT = \"ArrowLeft\";\r\nexport const CONST_F12_KEY = \"F12\";\r\nexport const CONST_F5_KEY = \"F5\";\r\nexport const CONST_TAB_KEY = \"Tab\";\r\nexport const CONST_SPACE_KEY = \" \";\r\n\r\n/** Seznam kláves, pro které v Picasso plátně preventujeme defaultní chování. */\r\nexport const PAINTINGS_PREVENTED_KEYS = [CONST_ARROW_LEFT, CONST_ARROW_RIGHT, CONST_ARROW_UP, CONST_ARROW_DOWN, CONST_SPACE_KEY];\r\n\r\n// Konstanty maximálního/minimálního přiblížení\r\nexport const CONST_MAX_SCALE_INDEX = 2.0;\r\nexport const CONST_MIN_SCALE_INDEX = 0.3;\r\nexport const CONST_DEFAULT_SCALE_INDEX = 1.0;\r\n\r\n/** Konstanta velikosti kroku přiblížení */\r\nexport const CONST_SCALE_STEP = 0.1;\r\n\r\n/** Index pro kořenovou komponentu picassa */\r\nexport const CONST_ROOT_COMPONENT_INDEX = 0;\r\n\r\n/** Konstanta pro nastavení tabindex. Nastaví element jako zaměřitelný a přidá ho do tab sequence. */\r\nexport const TAB_INDEX_FOCUSABLE_TAB_SEQUENCE = 0;\r\n","import { CHANGE_SCALE_INDEX, DELETE_COMPONENTS, LOAD_PICASSO_STATE, REQUEST_PAINTING_SCROLL_POSITION, SELECT_ALL_COMPONENTS, SELECT_COMPONENT, SELECT_LINK, SELECT_POINT, UNSELECT_ALL, UNSELECT_COMPONENT, UNSELECT_LINK, UNSELECT_POINT, UPDATE_COMPONENT_VISIBILITY, UPDATE_COMPONENTS, UPDATE_COMPONENTS_ALIGNMENT, UPDATE_COMPONENTS_RESIZE_OPTION, UPDATE_LINKS } from \"./constants\";\r\nimport { AlignType, ResizeOptions } from \"./enums\";\r\nimport { IComponent, ILink } from \"./interfaces\";\r\nimport { ComponentChangeType, IChangeScaleIndexAction, IDeleteComponentsAction, ILoadStateAction, IRequestPaintingScrollPositionAction, ISelectAllComponentsAction, ISelectComponentAction, ISelectLinkAction, ISelectPointAction, IUnselectAllAction, IUnselectComponentAction, IUnselectLinkAction, IUnselectPointAction, IUpdateComponentsAction, IUpdateComponentsAlignmentAction, IUpdateComponentsResizeOptionAction, IUpdateComponentVisibilityAction, IUpdateLinksAction, LinkChangeType, ScrollPosition, SelectablePoint } from \"./types\";\r\n\r\n/**\r\n * Načte stav Picassa.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param components Seznam komponent k vykreslení.\r\n * @param links Seznam spojení k vykreslení.\r\n * @param selectedComponentIndex Index komponenty, která má být označena.\r\n * @param selectedLinkIndex Index linku, který má být označen.\r\n */\r\nexport const createLoadPicassoStateAction = (picassoInstanceKey: string, components: readonly IComponent[], links: readonly ILink[], selectedComponentIndex?: number, selectedLinkIndex?: number): ILoadStateAction => ({\r\n type: LOAD_PICASSO_STATE,\r\n payload: {\r\n components,\r\n links,\r\n selectedComponentIndex,\r\n selectedLinkIndex,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce označí danou komponentu.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param component Komponenta k označení.\r\n * @param reselect Hodnota určuje, zdali se má označená komponenta přidat do pole již označených komponent (false) či jestli má vytvořit nové pole (true).\r\n */\r\nexport const createSelectComponentAction = (picassoInstanceKey: string, component: IComponent, reselect: boolean): ISelectComponentAction => ({\r\n type: SELECT_COMPONENT,\r\n payload: {\r\n component,\r\n reselect,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce odoznačí vybranou komponentu\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param componentIndex Index komponenty k odoznačení.\r\n */\r\nexport const createUnselectComponentAction = (picassoInstanceKey: string, componentIndex: number): IUnselectComponentAction => ({\r\n type: UNSELECT_COMPONENT,\r\n payload: {\r\n componentIndex,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce označí vybrané spojení.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param link Spojení k označení.\r\n * @param reselect Hodnota určuje, zdali se má označené spojení přidat do pole již označených spojení (false) či jestli má vytvořit nové pole (true).\r\n */\r\nexport const createSelectLinkAction = (picassoInstanceKey: string, link: ILink, reselect: boolean): ISelectLinkAction => ({\r\n type: SELECT_LINK,\r\n payload: {\r\n link,\r\n reselect,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce odoznačí vybrané spojení.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param linkIndex Index spojení pro odoznačení.\r\n */\r\nexport const createUnselectLinkAction = (picassoInstanceKey: string, linkIndex: number): IUnselectLinkAction => ({\r\n type: UNSELECT_LINK,\r\n payload: {\r\n linkIndex,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Upraví pozici/rozměry komponenty.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param changedComps Seznam komponent k upravení a jejich nové hodnoty.\r\n */\r\nexport const createUpdateComponentsAction = (picassoInstanceKey: string, changedComps: readonly ComponentChangeType[]): IUpdateComponentsAction => ({\r\n type: UPDATE_COMPONENTS,\r\n payload: {\r\n changedComps,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní komponenty.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param componentsToDelete Seznam všech kompoent k odstranění.\r\n */\r\nexport const createDeleteComponentsAction = (picassoInstanceKey: string, componentsToDelete: readonly number[]): IDeleteComponentsAction => ({\r\n type: DELETE_COMPONENTS,\r\n payload: {\r\n componentsToDelete,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Upraví tvar spojení.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param changedLinks Seznam spojení k upravení a jejich nové množiny bodů.\r\n */\r\nexport const createUpdateLinksAction = (picassoInstanceKey: string, changedLinks: readonly LinkChangeType[]): IUpdateLinksAction => ({\r\n type: UPDATE_LINKS,\r\n payload: {\r\n changedLinks,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Označí bod spojení.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param selectedPoint Bod k uložení, jakožto označený.\r\n */\r\nexport const createSelectPointAction = (picassoInstanceKey: string, selectedPoint: SelectablePoint | null): ISelectPointAction => ({\r\n type: SELECT_POINT,\r\n payload: {\r\n selectedPoint,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odoznačí bod spojení.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n */\r\nexport const createUnselectPointAction = (picassoInstanceKey: string): IUnselectPointAction => ({\r\n type: UNSELECT_POINT,\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Změní hodnotu přiblížení plátna Picassa\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param newScaleIndex Nová hodnota přiblížení.\r\n */\r\nexport const createChangeScaleIndexAction = (picassoInstanceKey: string, newScaleIndex: number): IChangeScaleIndexAction => ({\r\n type: CHANGE_SCALE_INDEX,\r\n payload: {\r\n newScaleIndex,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Označí všechny přímé potomky zvoleného rodiče.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param parentIndex Index předka\r\n */\r\nexport const createSelectAllComponentsAction = (picassoInstanceKey: string, parentIndex: number): ISelectAllComponentsAction => ({\r\n type: SELECT_ALL_COMPONENTS,\r\n payload: {\r\n parentIndex,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odoznačí všechny entity na plátně.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n */\r\nexport const createUnselectAllAction = (picassoInstanceKey: string): IUnselectAllAction => ({\r\n type: UNSELECT_ALL,\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Změní pozici scrollbarů plátna Picassa\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param requestedScrollPosition Nová pozice scrollbarů.\r\n */\r\nexport const createRequestPaintingScrollPositionAction = (picassoInstanceKey: string, requestedScrollPosition: ScrollPosition): IRequestPaintingScrollPositionAction => ({\r\n type: REQUEST_PAINTING_SCROLL_POSITION,\r\n payload: {\r\n requestedScrollPosition,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Změní viditelnost picasso komponenty.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param componentIndex Index komponenty ke změně viditelnosti.\r\n * @param isVisible Nová hodnota viditelnosti.\r\n */\r\nexport const createUpdateComponentVisibilityAction = (picassoInstanceKey: string, componentIndex: number, isVisible: boolean): IUpdateComponentVisibilityAction => ({\r\n type: UPDATE_COMPONENT_VISIBILITY,\r\n payload: {\r\n componentIndex,\r\n isVisible,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Vyvolá akci pro změnu zakotvení picasso komponenty.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param componentIndex Index komponenty ke změně zakotvení.\r\n * @param align Nová hodnota zakotvení.\r\n */\r\nexport const createUpdateComponentsAlignmentAction = (picassoInstanceKey: string, componentIndex: number, align: AlignType): IUpdateComponentsAlignmentAction => ({\r\n type: UPDATE_COMPONENTS_ALIGNMENT,\r\n payload: {\r\n componentIndex,\r\n align,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n\r\n/**\r\n * Vyvolá akci pro změnu možnosti resizování picasso komponenty.\r\n * @param picassoInstanceKey Klíč instance picassa pro přístup ke storu.\r\n * @param componentIndex Index komponenty ke změně možnosti resizu.\r\n * @param resizeOption Nová hodnota resizu.\r\n * @param noCssHeight Určuje, jestli se má nastavovat CSS výška picasso komponenty.\r\n * @param noCssWidth Určuje, jestli se má nastavovat CSS šířka picasso komponenty.\r\n */\r\nexport const createUpdateComponentsResizeOptionAction = (picassoInstanceKey: string, componentIndex: number, resizeOption: ResizeOptions, noCssHeight: boolean, noCssWidth: boolean): IUpdateComponentsResizeOptionAction => ({\r\n type: UPDATE_COMPONENTS_RESIZE_OPTION,\r\n payload: {\r\n componentIndex,\r\n resizeOption,\r\n noCssHeight,\r\n noCssWidth,\r\n },\r\n meta: {\r\n picassoInstanceKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { AlignType } from \"./enums\";\r\nimport { IComponent, ILink } from \"./interfaces\";\r\nimport { IPicassoState, ScrollPosition, SelectablePoint } from \"./types\";\r\n\r\n/**\r\n * Vrací informaci o tom, zdali je komponenta o daném {@link componentIndex} označená či nikoliv.\r\n * @param state\r\n * @param componentIndex Index komponenty\r\n */\r\nexport const isComponentSelected: Selector<IPicassoState, boolean, number> = (state, componentIndex) => state.selectedComponentsIndexes.includes(componentIndex);\r\n\r\n/**\r\n * Vrací informaci o tom, zdali je spojení dané {@link linkIndex} označená či nikoliv.\r\n * @param state\r\n * @param linkIndex Index spojení\r\n */\r\nexport const isLinkSelected: Selector<IPicassoState, boolean, number> = (state, linkIndex) => state.selectedLinksIndexes.includes(linkIndex);\r\n\r\n/**\r\n * Vrací informaci o tom, zdali je nějaký bod spojení označen či nikoliv.\r\n * @param state\r\n * @param linkIndex Index spojení\r\n */\r\nexport const isAnyPointSelected: Selector<IPicassoState, boolean, number> = (state, linkIndex) => state.selectedPoint != null && state.selectedPoint.linkIndex === linkIndex;\r\n\r\n/**\r\n * Vrací komponentu dle poskytnutého {@link componentIndex}.\r\n * @param state\r\n * @param componentIndex Index komponenty\r\n */\r\nexport const getComponent: Selector<IPicassoState, IComponent, number> = (state, componentIndex) => state.components[componentIndex];\r\n\r\n/**\r\n * Vrací komponentu dle poskytnutého {@link id}.\r\n * @param state\r\n * @param id ID komponenty.\r\n */\r\nexport const getComponentById: Selector<IPicassoState, IComponent | undefined, string> = (state, id) => state.components.find(x => x.id === id);\r\n\r\n/** Vrací pole všech komponent. */\r\nexport const getComponents: Selector<IPicassoState, readonly IComponent[]> = (state) => state.components;\r\n\r\n/**\r\n * Vrací spojení dle poskytnutého {@link linkIndex}\r\n * @param state\r\n * @param linkIndex Index spojení\r\n */\r\nexport const getLink: Selector<IPicassoState, ILink, number> = (state, linkIndex) => state.links[linkIndex];\r\n\r\n/** Vrací pole všech spojení. */\r\nexport const getLinks: Selector<IPicassoState, readonly ILink[]> = (state) => state.links;\r\n\r\n/** Vrací pole indexů všech označených komponent. */\r\nexport const getSelectedComponentsIndexes: Selector<IPicassoState, readonly number[]> = (state) => state.selectedComponentsIndexes;\r\n\r\n/** Vytvoří selector pro získání označených komponent. */\r\nexport const createGetSelectedComponents = () => createSelector(\r\n getSelectedComponentsIndexes,\r\n getComponents,\r\n (selectedComponentsIndexes, components) => selectedComponentsIndexes.map(index => components[index]),\r\n);\r\n\r\n/** Vrací pole indexů všech označených spojení. */\r\nexport const getSelectedLinksIndexes: Selector<IPicassoState, readonly number[]> = (state) => state.selectedLinksIndexes;\r\n\r\n/** Vytvoří selector pro získání označených spojení. */\r\nexport const createGetSelectedLinks = () => createSelector(\r\n getSelectedLinksIndexes,\r\n getLinks,\r\n (selectedLinksIndexes, links) => selectedLinksIndexes.map(index => links[index]),\r\n);\r\n\r\n/** Vrací označený bod spojení. */\r\nexport const getSelectedPoint: Selector<IPicassoState, SelectablePoint | null> = (state) => state.selectedPoint;\r\n\r\n/** Vrací aktuální úroveň přiblížení plátna picassa. */\r\nexport const getScaleIndex: Selector<IPicassoState, number> = (state) => state.scaleIndex;\r\n\r\n/** Vrací vyžadovanou pozici scrollbarů plátna picassa. */\r\nexport const getRequestedScrollPosition: Selector<IPicassoState, ScrollPosition> = (state) => state.requestedScrollPosition;\r\n\r\n/**\r\n * Vrací informaci o viditelnosti dané komponenty.\r\n * @param state Stav picassa.\r\n * @param componentIndex Index komponenty, pro kterou se má zjišťovat viditelnost.\r\n */\r\nexport const isComponentVisible: Selector<IPicassoState, boolean, number> = (state, componentIndex) => getComponent(state, componentIndex).isVisible;\r\n\r\n/**\r\n * Vytvoří cachovaný selector vracející šablonu gridu pro renderovanou komponentu picasso komponenty.\r\n * @param state Stav picassa.\r\n * @param picassoIndex Index komponenty.\r\n * @returns CSS šablonu gridu.\r\n */\r\nexport const createGetGridTemplate = () => createSelector(\r\n getComponents,\r\n (_state: IPicassoState, picassoIndex: number) => picassoIndex,\r\n (components, picassoIndex) => {\r\n const component = components[picassoIndex];\r\n const columns = { leftAutos: \"\", rightAutos: \"\", topAutos: \"\", bottomAutos: \"\" };\r\n\r\n for (const childIndex of component.children) {\r\n const childComponent = components[childIndex];\r\n\r\n if (childComponent.align === AlignType.left)\r\n columns.leftAutos += \"auto \";\r\n else if (childComponent.align === AlignType.right)\r\n columns.rightAutos += \" auto\";\r\n else if (childComponent.align === AlignType.top)\r\n columns.topAutos += \"auto \";\r\n else if (childComponent.align === AlignType.bottom)\r\n columns.bottomAutos += \" auto\";\r\n }\r\n\r\n return `${columns.topAutos}1fr${columns.bottomAutos} / ${columns.leftAutos}1fr${columns.rightAutos}`;\r\n },\r\n);\r\n\r\n/**\r\n * Vytvoří cachovaný selector vracející číslo sloupce gridu, ve kterém se má picasso komponenta zobrazit.\r\n * @param state Stav picassa.\r\n * @param picassoIndex Index komponenty.\r\n * @returns Číslo sloupce.\r\n */\r\nexport const createGetColumnNumber = () => createSelector(\r\n getComponents,\r\n (_state: IPicassoState, picassoIndex: number) => picassoIndex,\r\n (components, picassoIndex) => {\r\n const component = components[picassoIndex];\r\n\r\n if (component.parent === null || component.align === AlignType.none)\r\n return 0;\r\n\r\n const parentComponent = components[component.parent];\r\n const siblings = parentComponent.children.map(x => components[x]);\r\n\r\n if (component.align === AlignType.left)\r\n return siblings.filter(x => x.align === AlignType.left).indexOf(component) + 1; // +1 protože row začínají od jedničky\r\n\r\n if (component.align === AlignType.client)\r\n return siblings.filter(x => x.align === AlignType.left).length + 1; // +1 protože row začínají od jedničky\r\n\r\n if (component.align !== AlignType.right)\r\n return siblings.filter(x => x.align === AlignType.left || x.align === AlignType.right).length + 1 + 1; // +1 protože rows začínají od jedničky, + 1 protože alClient\r\n\r\n const numberOfLeftColumns = siblings.filter(x => x.align === AlignType.left).length + 1 + 1; // +1 protože rows začínají od jedničky, + 1 protože alClient\r\n return numberOfLeftColumns + siblings.filter(x => x.align === AlignType.right).indexOf(component);\r\n },\r\n);\r\n\r\n/**\r\n * Vytvoří cachovaný selector vracející číslo řádku gridu, ve kterém se má picasso komponenta zobrazit.\r\n * @param state Stav picassa.\r\n * @param picassoIndex Index komponenty.\r\n * @returns Číslo řádku.\r\n */\r\nexport const createGetRowNumber = () => createSelector(\r\n getComponents,\r\n (_state: IPicassoState, picassoIndex: number) => picassoIndex,\r\n (components, picassoIndex) => {\r\n const component = components[picassoIndex];\r\n\r\n if (component.parent === null || component.align === AlignType.none)\r\n return 0;\r\n\r\n const parentComponent = components[component.parent];\r\n const siblings = parentComponent.children.map(x => components[x]);\r\n\r\n if (component.align === AlignType.top)\r\n return siblings.filter(x => x.align === AlignType.top).indexOf(component) + 1; // +1 protože rows začínají od jedničky\r\n\r\n if (component.align !== AlignType.bottom)\r\n return siblings.filter(x => x.align === AlignType.top).length + 1; // +1 protože rows začínají od jedničky\r\n\r\n const numberOfTopColumns = siblings.filter(x => x.align === AlignType.top).length + 1 + 1; // +1 protože rows začínají od jedničky, + 1 protože alClient\r\n return numberOfTopColumns + siblings.filter(x => x.align === AlignType.bottom).indexOf(component);\r\n },\r\n);\r\n","import { FunctionComponent, MouseEvent } from \"react\";\r\n\r\nimport { ILink, IPoint } from \"../interfaces\";\r\nimport { LinkChangeType, LinkPassableProps, PicassoEditorProps, SelectablePoint } from \"../types\";\r\n\r\nexport type LinkComponentProps = {\r\n readonly index: number;\r\n readonly link: ILink;\r\n readonly isSelected: boolean;\r\n readonly isAnyPointSelected: boolean;\r\n readonly renderLink: (linkName: string, passableProps: LinkPassableProps) => JSX.Element;\r\n readonly onLinkChange?: (changedLinkIndex: number, newPoints: readonly IPoint[]) => void;\r\n readonly updateLinks: (changedLinks: readonly LinkChangeType[]) => void;\r\n readonly selectLink: (link: ILink, reselect: boolean) => void;\r\n readonly unselectLink: (linkIndex: number) => void;\r\n readonly selectPoint: (selectedPoint: SelectablePoint | null) => void;\r\n} & PicassoEditorProps;\r\n\r\nexport const LinkComponent: FunctionComponent<LinkComponentProps> = ({ index, isSelected, link, isAnyPointSelected, picassoInstanceKey, renderLink, updateLinks, selectLink, unselectLink, selectPoint, onLinkChange }) => {\r\n const handleLinkClick = (e: MouseEvent) => {\r\n if (e.ctrlKey) {\r\n if (isSelected)\r\n unselectLink(index);\r\n else\r\n selectLink(link, false);\r\n } else\r\n selectLink(link, true);\r\n };\r\n\r\n const handleUpdateLinksPoints = (newPoints: readonly IPoint[]) => {\r\n if (onLinkChange)\r\n onLinkChange(index, newPoints);\r\n\r\n updateLinks([{ index, newPoints }]);\r\n };\r\n\r\n const handlePointSelection = (pointIndex: number, originCursorCoordinates: IPoint, lastPosition: IPoint) => {\r\n selectPoint({ pointIndex, originCursorCoordinates, linkIndex: index, lastPosition });\r\n };\r\n\r\n const concreteLink = renderLink(link.name, { isSelected, link, isAnyPointSelected, picassoInstanceKey, onLinkClick: handleLinkClick, updatePoints: handleUpdateLinksPoints, selectPoint: handlePointSelection });\r\n\r\n return (concreteLink);\r\n};\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createSelectLinkAction, createSelectPointAction, createUnselectLinkAction, createUpdateLinksAction } from \"../actions\";\r\nimport { getLink, isAnyPointSelected, isLinkSelected } from \"../selectors\";\r\nimport { IPicassoState, ObjectType, PicassoEditorProps, WrapMapStateToProps } from \"../types\";\r\nimport { LinkComponent, LinkComponentProps } from \"./LinkComponent\";\r\n\r\ntype MoveableProps = Pick<LinkComponentProps, \"index\"> & PicassoEditorProps;\r\n\r\ntype StateProps = Pick<LinkComponentProps, \"link\" | \"isSelected\" | \"isAnyPointSelected\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MoveableProps, IPicassoState> = (state, { index }) => ({\r\n link: getLink(state, index),\r\n isSelected: isLinkSelected(state, index),\r\n isAnyPointSelected: isAnyPointSelected(state, index),\r\n});\r\n\r\ntype DispatchProps = Pick<LinkComponentProps, \"updateLinks\" | \"selectLink\" | \"unselectLink\" | \"selectPoint\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MoveableProps> = (dispatch, { picassoInstanceKey }) => ({\r\n updateLinks: (changedLinks) => dispatch(createUpdateLinksAction(picassoInstanceKey, changedLinks)),\r\n selectLink: (link, reselect) => dispatch(createSelectLinkAction(picassoInstanceKey, link, reselect)),\r\n unselectLink: (linkIndex) => dispatch(createUnselectLinkAction(picassoInstanceKey, linkIndex)),\r\n selectPoint: (selectedPoint) => dispatch(createSelectPointAction(picassoInstanceKey, selectedPoint)),\r\n});\r\n\r\nexport const createLink = <S extends ObjectType>(wrapMapStateToProps: WrapMapStateToProps<S>) => connect(wrapMapStateToProps(mapStateToProps), mapDispatchToProps)(LinkComponent);\r\n","import { CSSProperties, WheelEvent } from \"react\";\r\nimport { MapStateToProps, Selector } from \"react-redux\";\r\n\r\nimport { CONST_ROOT_COMPONENT_INDEX, CONST_SCALE_STEP, PICASSO_PAINTING_CSS_CLASS } from \"./constants\";\r\nimport { AlignType, AnchorPoint, ResizeOptions } from \"./enums\";\r\nimport { IComponent, IPoint } from \"./interfaces\";\r\nimport { IPicassoState, ScrollPosition } from \"./types\";\r\n\r\n/**\r\n * Helper function that takes care of wrapping the external mapStateToProps function so that the condition that Picasso shouldn't be dependent to Multiweb is met.\r\n * @param picassoStateSelector Selector for getting the state of Picasso.\r\n * @param picassoInstanceKey Key of specific instance of Picasso in application.\r\n * @returns Wrap function that enables components of picasso to access it's redux state.\r\n */\r\nexport const createWrapPicassoMapStateToProps = <AS>(\r\n picassoStateSelector: Selector<AS, IPicassoState, string>,\r\n picassoInstanceKey: string,\r\n) => <SP, OP>(mapStateToProps: MapStateToProps<SP, OP, IPicassoState>): MapStateToProps<SP, OP, AS> =>\r\n (state: AS, ownProps: OP) => mapStateToProps(picassoStateSelector(state, picassoInstanceKey), ownProps);\r\n\r\n/**\r\n * Určuje, zdali je poskytnuté číslo v ostrém intervalu dvou čísel.\r\n * @param x Číslo k porovnání vůči minimu a maximu.\r\n * @param min Minimální možná hodnota čísla.\r\n * @param max Maximální možná hodnota čísla.\r\n */\r\nexport const isNumberBetween = (x: number, min: number, max: number): boolean => x >= min && x <= max;\r\n\r\n/**\r\n * Omezí číslo do zadaného uzavřeného intervalu.\r\n */\r\nexport const clamp = (value: number, lower: number, upper: number) => Math.max(lower, Math.min(value, upper));\r\n\r\n/**\r\n * Vrátí největší možné celé číslo, které je násobekem @param gridIndex a zároveň je menší než @param rawDelta\r\n * @param rawDelta Skutečná vzdálenost mezi dvěma body.\r\n * @param gridIndex Velikost mezer ve gridu.\r\n */\r\nexport const gridifyDelta = (rawDelta: number, gridIndex: number): number => {\r\n const roundedRawDelta = Math.round(rawDelta);\r\n\r\n if (gridIndex === 1 || !roundedRawDelta)\r\n return roundedRawDelta;\r\n\r\n const indexInNumberLeft = roundedRawDelta > 0 ? Math.floor(roundedRawDelta / gridIndex) : Math.ceil(roundedRawDelta / gridIndex);\r\n\r\n return indexInNumberLeft * gridIndex;\r\n};\r\n\r\nexport const checkNewWidthAndLeft = (newWidth: number, newLeft: number, deltaLeft: number, component: IComponent): { width: number; left: number } => {\r\n if (newWidth < component.minWidth) {\r\n if (deltaLeft === 0)\r\n return { width: component.minWidth, left: component.relativeLeft };\r\n\r\n return { width: component.minWidth, left: component.relativeLeft + (component.width - component.minWidth) };\r\n }\r\n\r\n return { width: newWidth, left: newLeft };\r\n};\r\n\r\nexport const checkNewHeightAndTop = (newHeight: number, newTop: number, deltaTop: number, component: IComponent): { height: number; top: number } => {\r\n if (newHeight < component.minHeight) {\r\n if (deltaTop === 0)\r\n return { height: component.minHeight, top: component.relativeTop };\r\n\r\n return { height: component.minHeight, top: component.relativeTop + (component.height - component.minHeight) };\r\n }\r\n\r\n return { height: newHeight, top: newTop };\r\n};\r\n\r\n/**\r\n * Vrací nové hodnoty pozice scrollů Picasso plátna pro případ, že došlo k zoomu.\r\n * @param e Parametry WheelEventu.\r\n * @param picassoPaintingEl Element plátna picassa.\r\n * @param scaleIndex Aktuální scaleIndex plátna.\r\n * @param newScaleIndex ScaleIndex, který bude nastaven po současném wheel eventu.\r\n */\r\nexport const getNewPaintingScrollPositionOnZoom = (e: WheelEvent, picassoPaintingEl: HTMLElement, scaleIndex: number, newScaleIndex: number): ScrollPosition => {\r\n const { left, top } = e.currentTarget.getBoundingClientRect();\r\n\r\n const { left: leftScrollPosition, top: topScrollPosititon } = getCenteredPaintingScrollPosition(picassoPaintingEl);\r\n const distanceX = e.clientX - leftScrollPosition - left;\r\n const distanceY = e.clientY - topScrollPosititon - top;\r\n\r\n const xs = (distanceX + Math.round(picassoPaintingEl.scrollLeft)) / scaleIndex; // vzdálenost kurzoru od levé hrany root komponenty\r\n const ys = (distanceY + Math.round(picassoPaintingEl.scrollTop)) / scaleIndex; // vzdálenost kurzoru od horní hrany root komponenty\r\n\r\n const newScrollLeft = (xs * newScaleIndex) - distanceX;\r\n const newScrollTop = (ys * newScaleIndex) - distanceY;\r\n\r\n return { left: Math.round(newScrollLeft), top: Math.round(newScrollTop) };\r\n};\r\n\r\n/**\r\n * Vrací nové hodnoty pozice scrollů Picasso plátna pro případ, že došlo pouze k posunu plátna, ne zoomu.\r\n * @param param0 Iniciální bod, od kterého se pan-uje.\r\n * @param e Událost mouse move.\r\n * @returns Novou pozici scroll barů.\r\n */\r\nexport const getNewPaintingScrollPrositionOnPan = ({ x, y }: IPoint, e: React.MouseEvent): ScrollPosition => ({ left: x - e.clientX, top: y - e.clientY });\r\n\r\n/**\r\n * Vrací novou hodnotu scale indexu (přiblížení).\r\n * @param e Parametry události kolečka myši.\r\n * @param scaleIndex Současný scale index.\r\n */\r\nexport const getNewScaleIndex = (e: WheelEvent, scaleIndex: number) => {\r\n if (e.deltaY === 0) {\r\n return scaleIndex;\r\n }\r\n\r\n return Math.round((e.deltaY < 0 ? scaleIndex + CONST_SCALE_STEP : scaleIndex - CONST_SCALE_STEP) * 10) / 10;\r\n};\r\n\r\n/**\r\n * Vrací styl určující viditelnost kotev pro resizování picasso komponenty.\r\n * @param anchorPoint Směr/pozice kotvy.\r\n * @param uiComponent Komponenta picassa.\r\n * @returns Objekt CSSProperties.\r\n */\r\nexport const getAnchorStyle = (anchorPoint: AnchorPoint, uiComponent: IComponent): CSSProperties => {\r\n const { resizeOption, align } = uiComponent;\r\n const isVertical = () => (resizeOption & ResizeOptions.vertical) === ResizeOptions.vertical;\r\n const isHorizontal = () => (resizeOption & ResizeOptions.horizontal) === ResizeOptions.horizontal;\r\n\r\n if (anchorPoint === AnchorPoint.N)\r\n return { visibility: isVertical() && (align === AlignType.bottom || align === AlignType.none) ? undefined : \"hidden\" };\r\n\r\n if (anchorPoint === AnchorPoint.E)\r\n return { visibility: isHorizontal() && (align === AlignType.left || align === AlignType.none) ? undefined : \"hidden\" };\r\n\r\n if (anchorPoint === AnchorPoint.S)\r\n return { visibility: isVertical() && (align === AlignType.top || align === AlignType.none) ? undefined : \"hidden\" };\r\n\r\n if (anchorPoint === AnchorPoint.W)\r\n return { visibility: isHorizontal() && (align === AlignType.right || align === AlignType.none) ? undefined : \"hidden\" };\r\n\r\n if (anchorPoint === AnchorPoint.NE || anchorPoint === AnchorPoint.SE || anchorPoint === AnchorPoint.SW || anchorPoint === AnchorPoint.NW)\r\n return { display: resizeOption === ResizeOptions.both && (align === AlignType.none) ? undefined : \"none\" };\r\n\r\n throw new Error(`[PICASSO] - Anchor point of type '${anchorPoint}' is not implemented!`);\r\n};\r\n\r\n/**\r\n * Vrácí aktualizované CSS vlastnosti nastavující poziční a rozměrové vlastnosti komponenty vůči zakotvení.\r\n * @param uiComponent Konkrétní komponenta picassa.\r\n * @returns Objekt aktualizovaných CSS vlastností.\r\n */\r\nexport const getDimensionsOfComponent = (fillsParent: boolean, uiComponent: IComponent, rowNumber: number, columnNumber: number): CSSProperties => {\r\n if (fillsParent)\r\n return { position: \"relative\", height: \"100%\", width: \"100%\" };\r\n\r\n if (uiComponent.align === AlignType.none)\r\n return {\r\n left: uiComponent.relativeLeft,\r\n top: uiComponent.relativeTop,\r\n height: uiComponent.noCssHeight ? undefined : uiComponent.height,\r\n width: uiComponent.noCssWidth ? undefined : uiComponent.width,\r\n };\r\n\r\n if (uiComponent.align === AlignType.left || uiComponent.align === AlignType.right)\r\n return {\r\n position: \"relative\",\r\n gridArea: `${rowNumber}/${columnNumber}/${rowNumber + 1}/${columnNumber + 1}`,\r\n width: uiComponent.width,\r\n };\r\n\r\n if (uiComponent.align === AlignType.top || uiComponent.align === AlignType.bottom)\r\n return {\r\n position: \"relative\",\r\n gridArea: `${rowNumber}/1/${rowNumber + 1}/${columnNumber}`,\r\n height: uiComponent.noCssHeight ? undefined : uiComponent.height,\r\n };\r\n\r\n return {\r\n position: \"relative\",\r\n gridArea: `${rowNumber}/${columnNumber}/${rowNumber + 1}/${columnNumber + 1}`,\r\n };\r\n};\r\n\r\n/**\r\n * Smaže vybrané komponenty z pole komponent picassa a zbylým komponentám aktualizuje reference a indexy.\r\n * @param mutablePicassoComponents Mutovatelné pole komponent picassa.\r\n * @param componentIndexesToDelete Seznam indexů komponent ke smazání.\r\n * @returns Updatovaný readonly seznam komponent.\r\n */\r\nexport const deletePicassoComponents = (mutablePicassoComponents: IComponent[], componentIndexesToDelete: readonly number[]): readonly IComponent[] => {\r\n const orderedComponentsToDelete = [...componentIndexesToDelete].sort((a, b) => a - b);\r\n const parentId = mutablePicassoComponents[orderedComponentsToDelete[0]].parent;\r\n let offset = 0;\r\n\r\n for (const componentIndex of orderedComponentsToDelete) {\r\n const actualIndex = componentIndex + offset; // Když odebírám prvky z pole, tak předchozí index ztrácí smyls, proto vyrovnávám pomocí offsetu.\r\n\r\n for (let i = 0; i < mutablePicassoComponents.length; i++) {\r\n const picassoComponent = mutablePicassoComponents[i];\r\n const parentIndex = picassoComponent.parent ?? CONST_ROOT_COMPONENT_INDEX;\r\n\r\n mutablePicassoComponents[i] = {\r\n ...picassoComponent,\r\n index: (i > actualIndex) ? picassoComponent.index - 1 : picassoComponent.index,\r\n parent: (parentIndex > actualIndex) ? parentIndex - 1 : picassoComponent.parent,\r\n children: picassoComponent.children.filter(child => child !== actualIndex).map(child => child > actualIndex ? child - 1 : child),\r\n };\r\n }\r\n\r\n offset--;\r\n\r\n const deletedComponent: IComponent = { ...mutablePicassoComponents[actualIndex], index: Number.MAX_VALUE }; // Musím nastavit neexistující index.\r\n mutablePicassoComponents.splice(actualIndex, 1);\r\n\r\n if (parentId === deletedComponent.parent && deletedComponent.align !== AlignType.none)\r\n updateSiblings(deletedComponent, mutablePicassoComponents, -deletedComponent.width, -deletedComponent.height);\r\n }\r\n\r\n return mutablePicassoComponents;\r\n};\r\n\r\n/**\r\n * Vrací nové relativní souřadnice komponenty, podle nového zakotvení.\r\n * @param align Nové zakotvení picasso komponenty.\r\n * @param selectedComp Zvolená komponenta.\r\n * @param parentComp Rodičovská komponenta zvolené komponenty.\r\n * @returns Objekt obsaující nové souřadnice.\r\n */\r\nexport const getNewCoordinates = (align: AlignType, selectedComp: IComponent, parentComp: IComponent, siblingComps: readonly IComponent[]): Pick<IComponent, \"relativeLeft\" | \"relativeTop\" | \"height\" | \"width\"> => {\r\n const siblingsWithSameAlign = siblingComps.filter(x => x.align === align);\r\n const siblingsWithoutMe = siblingComps.filter(x => x.index !== selectedComp.index);\r\n\r\n if (align === AlignType.client)\r\n return {\r\n relativeLeft: siblingsWithoutMe.filter(x => x.align === AlignType.left).reduce((x, y) => x + y.width, 0),\r\n relativeTop: siblingsWithoutMe.filter(x => x.align === AlignType.top).reduce((x, y) => x + y.height, 0),\r\n height: parentComp.height - (siblingsWithoutMe.filter(x => x.align === AlignType.top || x.align === AlignType.bottom).reduce((x, y) => x + y.height, 0)),\r\n width: parentComp.width - (siblingsWithoutMe.filter(x => x.align === AlignType.left || x.align === AlignType.right).reduce((x, y) => x + y.width, 0)),\r\n };\r\n\r\n if (align === AlignType.right)\r\n return {\r\n relativeLeft: parentComp.width - (selectedComp.width + siblingsWithSameAlign.reduce((x, y) => x + y.width, 0)),\r\n relativeTop: siblingsWithoutMe.filter(x => x.align === AlignType.top).reduce((x, y) => x + y.height, 0),\r\n height: parentComp.height - (siblingsWithoutMe.filter(x => x.align === AlignType.top || x.align === AlignType.bottom).reduce((x, y) => x + y.height, 0)),\r\n width: selectedComp.width,\r\n };\r\n\r\n if (align === AlignType.left)\r\n return {\r\n relativeLeft: siblingsWithSameAlign.reduce((x, y) => x + y.width, 0),\r\n relativeTop: siblingsWithoutMe.filter(x => x.align === AlignType.top).reduce((x, y) => x + y.height, 0),\r\n height: parentComp.height - (siblingsWithoutMe.filter(x => x.align === AlignType.top || x.align === AlignType.bottom).reduce((x, y) => x + y.height, 0)),\r\n width: selectedComp.width,\r\n };\r\n\r\n if (align === AlignType.bottom)\r\n return {\r\n relativeLeft: 0,\r\n relativeTop: parentComp.height - (selectedComp.height + siblingsWithSameAlign.reduce((x, y) => x + y.height, 0)),\r\n height: selectedComp.height,\r\n width: parentComp.width,\r\n };\r\n\r\n if (align === AlignType.top)\r\n return {\r\n relativeLeft: 0,\r\n relativeTop: siblingsWithSameAlign.reduce((x, y) => x + y.height, 0),\r\n height: selectedComp.height,\r\n width: parentComp.width,\r\n };\r\n\r\n return { // AKA AlNone\r\n relativeLeft: selectedComp.relativeLeft,\r\n relativeTop: selectedComp.relativeTop,\r\n height: selectedComp.height,\r\n width: selectedComp.width,\r\n };\r\n};\r\n\r\n/**\r\n * Rekurzivně updatuje rozměry a pozice stromu komponent, které mají align různo od none.\r\n * @param children Seznam indexů uzlů aktuální úrovně rekurze.\r\n * @param mutableComponents Mutable seznam picasso komponent.\r\n * @param deltaWidth Rozdíl šířky kořenové komponenty.\r\n * @param deltaHeight Rozdíl výšky kořenové komponenty.\r\n */\r\nexport const updateSubtreeRecursively = (children: readonly number[], mutableComponents: IComponent[], deltaWidth: number, deltaHeight: number): void => {\r\n if (children.length === 0 || (deltaWidth === 0 && deltaHeight === 0))\r\n return;\r\n\r\n for (const childIndex of children) {\r\n const child = mutableComponents[childIndex];\r\n\r\n if (child.align === AlignType.none) {\r\n continue;\r\n } else if (child.align === AlignType.top && deltaWidth !== 0) {\r\n mutableComponents[child.index] = { ...child, width: child.width + deltaWidth };\r\n updateSubtreeRecursively(child.children, mutableComponents, deltaWidth, 0);\r\n } else if (child.align === AlignType.left && deltaHeight !== 0) {\r\n mutableComponents[child.index] = { ...child, height: child.height + deltaHeight };\r\n updateSubtreeRecursively(child.children, mutableComponents, 0, deltaHeight);\r\n } else if (child.align === AlignType.right) {\r\n mutableComponents[child.index] = { ...child, height: child.height + deltaHeight, relativeLeft: child.relativeLeft + deltaWidth };\r\n if (deltaHeight !== 0)\r\n updateSubtreeRecursively(child.children, mutableComponents, 0, deltaHeight);\r\n } else if (child.align === AlignType.bottom) {\r\n mutableComponents[child.index] = { ...child, width: child.width + deltaWidth, relativeTop: child.relativeTop + deltaHeight };\r\n if (deltaWidth !== 0)\r\n updateSubtreeRecursively(child.children, mutableComponents, deltaWidth, 0);\r\n } else if (child.align === AlignType.client) {\r\n mutableComponents[child.index] = { ...child, width: child.width + deltaWidth, height: child.height + deltaHeight };\r\n updateSubtreeRecursively(child.children, mutableComponents, deltaWidth, deltaHeight);\r\n }\r\n }\r\n};\r\n\r\nexport const updateSiblings = (component: IComponent, mutableComponents: IComponent[], deltaWidth: number, deltaHeight: number): void => {\r\n const parentComp = mutableComponents[component.parent ?? CONST_ROOT_COMPONENT_INDEX];\r\n const siblings = parentComp.children.map(x => mutableComponents[x]);\r\n\r\n if (component.align !== AlignType.none)\r\n updateRelativeDistances(component, siblings, mutableComponents, deltaWidth, deltaHeight);\r\n\r\n const newHeight = parentComp.height - siblings.filter(x => x.align === AlignType.top || x.align === AlignType.bottom).reduce((x, y) => x + y.height, 0);\r\n const newRelativeTop = siblings.filter(x => x.align === AlignType.top).reduce((x, y) => x + y.height, 0);\r\n const alClientNewWidth = parentComp.width - siblings.filter(x => x.align === AlignType.left || x.align === AlignType.right).reduce((x, y) => x + y.width, 0);\r\n const alClientNewRelativeLeft = siblings.filter(x => x.align === AlignType.left).reduce((x, y) => x + y.width, 0);\r\n\r\n for (const sibling of siblings.filter(x => (x.align === AlignType.left || x.align === AlignType.right || x.align === AlignType.client) && component.index !== x.index)) {\r\n const updatedComp = mutableComponents[sibling.index];\r\n mutableComponents[sibling.index] = {\r\n ...updatedComp,\r\n height: newHeight,\r\n relativeTop: newRelativeTop,\r\n width: updatedComp.align === AlignType.client ? alClientNewWidth : updatedComp.width,\r\n relativeLeft: updatedComp.align === AlignType.client ? alClientNewRelativeLeft : updatedComp.relativeLeft,\r\n };\r\n\r\n updateSubtreeRecursively(updatedComp.children, mutableComponents, mutableComponents[sibling.index].width - updatedComp.width, mutableComponents[sibling.index].height - updatedComp.height);\r\n }\r\n\r\n if (component.index !== Number.MAX_VALUE) // Když mažu komponentu, tak nemá cenu updatovat její potomky\r\n updateSubtreeRecursively(component.children, mutableComponents, mutableComponents[component.index].width - component.width, mutableComponents[component.index].height - component.height);\r\n};\r\n\r\n/**\r\n * Updatuje relativní vzdálenost komponent, které mají stejný align, jako právě resizovaná komponenta. Je to potřeba například v situaci,\r\n * kdy mám 3 komponenty vedle sebe s align=\"alLeft\" a zvětšuji prostřední. První zůstané netknutá a poslední musím zvětšit relativní vzdálenost od levého kraje.\r\n * @param component Komponenta se kterou hýbu.\r\n * @param siblings Sourozenci resizované komponenty.\r\n * @param updatedComponents Mutable kolekce všech komponent picassa.\r\n * @param deltaWidth Rozdíl šířky resizované komponenty oproti poslednímu stavu.\r\n * @param deltaHeight Rozdíl výšky resizované komponenty oproti poslednímu stavu.\r\n */\r\nconst updateRelativeDistances = (component: IComponent, siblings: readonly IComponent[], updatedComponents: IComponent[], deltaWidth: number, deltaHeight: number): void => {\r\n for (const sibling of siblings.filter(x => x.align === component.align && component.index !== x.index)) {\r\n if (component.align === AlignType.top && (component.relativeTop + component.height) <= sibling.relativeTop)\r\n updatedComponents[sibling.index] = { ...sibling, relativeTop: sibling.relativeTop + deltaHeight };\r\n else if (component.align === AlignType.left && (component.relativeLeft + component.width) <= sibling.relativeLeft)\r\n updatedComponents[sibling.index] = { ...sibling, relativeLeft: sibling.relativeLeft + deltaWidth };\r\n else if (component.align === AlignType.right && (sibling.relativeLeft + sibling.width) <= component.relativeLeft)\r\n updatedComponents[sibling.index] = { ...sibling, relativeLeft: sibling.relativeLeft - deltaWidth };\r\n else if (component.align === AlignType.bottom && (sibling.relativeTop + sibling.height) <= component.relativeTop)\r\n updatedComponents[sibling.index] = { ...sibling, relativeTop: sibling.relativeTop - deltaHeight };\r\n }\r\n};\r\n\r\nexport const getCenteredPaintingScrollPosition = (picassoPaintingEl: HTMLElement | undefined | null): ScrollPosition => ({\r\n left: (picassoPaintingEl?.clientWidth ?? window.innerWidth) - 100,\r\n top: (picassoPaintingEl?.clientHeight ?? window.innerHeight) - 100,\r\n});\r\n\r\nexport const getPaintingDimensions = (picassoPaintingEl: HTMLElement | undefined | null, rootComponent: IComponent | undefined, scaleIndex: number) => {\r\n const rootComponentWidth = rootComponent ? (rootComponent.width + rootComponent.relativeLeft) : 0;\r\n const rootComponentHeight = rootComponent ? (rootComponent.height + rootComponent.relativeTop) : 0;\r\n\r\n const { left, top } = getCenteredPaintingScrollPosition(picassoPaintingEl);\r\n const width = (left * 2 + rootComponentWidth) + (((rootComponentWidth * scaleIndex) - rootComponentWidth));\r\n const height = (top * 2 + rootComponentHeight) + (((rootComponentHeight * scaleIndex) - rootComponentHeight));\r\n\r\n return { width: `${width}px`, height: `${height}px` };\r\n};\r\n\r\n/**\r\n * Vrací aktuální hodnotu pozice scrollbarů plítna Picasa. Hodnota má od sebe odečten margin,\r\n * takže nula odpovídá vycentrované pozici rootovské komponenty a ne skutečné nule na scrollbaru.\r\n * @param parentElement Element jehož potomkem má být plátno Picassa.\r\n * @returns Relativní pozici scrollu.\r\n */\r\nexport const getCurrentPaintingScrollPosition = (parentElement: HTMLElement): ScrollPosition => {\r\n const picassoPaintingEl = parentElement.querySelector(`.${PICASSO_PAINTING_CSS_CLASS}`);\r\n\r\n if (!picassoPaintingEl) {\r\n throw new Error(\"[PICASSO] - No instance of Picasso painting was found!\");\r\n }\r\n\r\n const { left, top } = getCenteredPaintingScrollPosition(picassoPaintingEl as HTMLElement);\r\n\r\n return { left: picassoPaintingEl.scrollLeft - left, top: picassoPaintingEl.scrollTop - top };\r\n};\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\nimport React, { Fragment, FunctionComponent, MouseEvent, useRef } from \"react\";\r\n\r\nimport { CONST_LEFT_MOUSE_BTN } from \"../constants\";\r\nimport { AlignType, AnchorPoint, ResizeOptions } from \"../enums\";\r\nimport { IComponent, IPoint } from \"../interfaces\";\r\nimport { LinkPassableProps, MoveablePassableProps, PicassoEditorProps, SelectedAnchorsType, WrapMapStateToProps } from \"../types\";\r\nimport { getAnchorStyle, getDimensionsOfComponent } from \"../utils\";\r\nimport { createLink } from \"./Link\";\r\n\r\nexport type MoveableComponentProps = {\r\n readonly index: number;\r\n readonly uiComponent: IComponent;\r\n readonly isSelected: boolean;\r\n readonly gridTemplate: string;\r\n readonly rowNumber: number;\r\n readonly columnNumber: number;\r\n readonly isSelectable?: boolean;\r\n readonly isResizable?: boolean;\r\n readonly isDraggable?: boolean;\r\n readonly fillsParent?: boolean;\r\n readonly renderComponent: (componentName: string, passableProps: MoveablePassableProps) => JSX.Element;\r\n readonly renderLink?: (linkName: string, passableProps: LinkPassableProps) => JSX.Element;\r\n readonly wrapMapStateToProps: WrapMapStateToProps<any>;\r\n readonly onResizePointDown: (e: MouseEvent, selectedAnchors: SelectedAnchorsType) => void;\r\n readonly onMouseUp: (e: MouseEvent, uiComponent: IComponent) => void;\r\n readonly onMouseClick: (e: MouseEvent, component: IComponent, isSelected: boolean, isSelectable: boolean) => void;\r\n readonly onMouseLeave: (e: MouseEvent) => void;\r\n readonly onMouseDown: (e: MouseEvent, isSelected: boolean, isDraggable: boolean, isSelectable: boolean, component: IComponent) => void;\r\n readonly onMouseMove: (e: MouseEvent, uiComponent: IComponent, isSelected: boolean) => void;\r\n readonly onLinkChange?: (changedLinkIndexes: number, newPoints: readonly IPoint[]) => void;\r\n} & PicassoEditorProps;\r\n\r\nexport const MoveableComponent: FunctionComponent<MoveableComponentProps> = ({ picassoInstanceKey, index, uiComponent, isSelected, gridTemplate, rowNumber, columnNumber, renderComponent, renderLink, onMouseUp, onResizePointDown, onMouseDown, onMouseClick, onMouseMove, onMouseLeave, onLinkChange, wrapMapStateToProps, isSelectable = true, isResizable = true, isDraggable = true, fillsParent = false }) => {\r\n const nAnchor = useRef<HTMLDivElement>(null);\r\n const neAnchor = useRef<HTMLDivElement>(null);\r\n const eAnchor = useRef<HTMLDivElement>(null);\r\n const seAnchor = useRef<HTMLDivElement>(null);\r\n const sAnchor = useRef<HTMLDivElement>(null);\r\n const swAnchor = useRef<HTMLDivElement>(null);\r\n const wAnchor = useRef<HTMLDivElement>(null);\r\n const nwAnchor = useRef<HTMLDivElement>(null);\r\n\r\n if (!uiComponent.isVisible)\r\n return null;\r\n\r\n const handleDragOverResizePoint = (e: MouseEvent) => {\r\n e.stopPropagation();\r\n };\r\n\r\n const handleMouseUp = (e: MouseEvent) => {\r\n onMouseUp(e, uiComponent);\r\n };\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n onMouseMove(e, uiComponent, isSelected);\r\n };\r\n\r\n const handleResizePointDown = (e: MouseEvent) => {\r\n if (e.buttons !== CONST_LEFT_MOUSE_BTN)\r\n return;\r\n\r\n if (!nAnchor.current || !neAnchor.current || !eAnchor.current || !seAnchor.current || !sAnchor.current || !swAnchor.current || !wAnchor.current || !nwAnchor.current)\r\n throw new Error(\"One or more anchor points not found in DOM object!\");\r\n\r\n const selectedAnchors: SelectedAnchorsType = {\r\n nAnchor: { element: nAnchor.current, isSelected: e.currentTarget.id === nAnchor.current.id },\r\n neAnchor: { element: neAnchor.current, isSelected: e.currentTarget.id === neAnchor.current.id },\r\n eAnchor: { element: eAnchor.current, isSelected: e.currentTarget.id === eAnchor.current.id },\r\n seAnchor: { element: seAnchor.current, isSelected: e.currentTarget.id === seAnchor.current.id },\r\n sAnchor: { element: sAnchor.current, isSelected: e.currentTarget.id === sAnchor.current.id },\r\n swAnchor: { element: swAnchor.current, isSelected: e.currentTarget.id === swAnchor.current.id },\r\n wAnchor: { element: wAnchor.current, isSelected: e.currentTarget.id === wAnchor.current.id },\r\n nwAnchor: { element: nwAnchor.current, isSelected: e.currentTarget.id === nwAnchor.current.id },\r\n };\r\n\r\n onResizePointDown(e, selectedAnchors);\r\n };\r\n\r\n const handleComponentClick = (e: MouseEvent) => {\r\n onMouseClick(e, uiComponent, isSelected, isSelectable);\r\n };\r\n\r\n const handleComponentMouseDown = (e: MouseEvent) => {\r\n onMouseDown(e, isSelected, isDraggable && uiComponent.align === AlignType.none, isSelectable, uiComponent);\r\n };\r\n\r\n const innerComponent = renderComponent(uiComponent.name, {\r\n uiComponent,\r\n picassoInstanceKey,\r\n isSelected,\r\n gridTemplate,\r\n renderComponent,\r\n renderLink,\r\n onResizePointDown,\r\n onMouseUp,\r\n onMouseClick,\r\n onComponentMouseDown: onMouseDown,\r\n onMouseMove,\r\n onMouseLeave,\r\n clickSelectComponent: handleComponentClick,\r\n wrapMapStateToProps,\r\n mouseDownComponentSelect: handleComponentMouseDown,\r\n onLinkChange,\r\n });\r\n\r\n const linksSvg = uiComponent.linkIndexes.length > 0 && (\r\n <svg className=\"picasso-moveable-svg-box\">\r\n {renderLink != null && uiComponent.linkIndexes.map((index) => {\r\n const Link = createLink(wrapMapStateToProps);\r\n return (<Link key={`${index}link`} {...{ index, onLinkChange, picassoInstanceKey, renderLink }} />);\r\n })}\r\n </svg>\r\n );\r\n\r\n const resizePoints = (isResizable && uiComponent.resizeOption !== ResizeOptions.none && isSelected) && (\r\n <Fragment>\r\n <div id={index + AnchorPoint.N} ref={nAnchor} style={getAnchorStyle(AnchorPoint.N, uiComponent)} className=\"picasso-moveable-anchor n\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.NE} ref={neAnchor} style={getAnchorStyle(AnchorPoint.NE, uiComponent)} className=\"picasso-moveable-anchor ne\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.E} ref={eAnchor} style={getAnchorStyle(AnchorPoint.E, uiComponent)} className=\"picasso-moveable-anchor e\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.SE} ref={seAnchor} style={getAnchorStyle(AnchorPoint.SE, uiComponent)} className=\"picasso-moveable-anchor se\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.S} ref={sAnchor} style={getAnchorStyle(AnchorPoint.S, uiComponent)} className=\"picasso-moveable-anchor s\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.SW} ref={swAnchor} style={getAnchorStyle(AnchorPoint.SW, uiComponent)} className=\"picasso-moveable-anchor sw\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.W} ref={wAnchor} style={getAnchorStyle(AnchorPoint.W, uiComponent)} className=\"picasso-moveable-anchor w\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n <div id={index + AnchorPoint.NW} ref={nwAnchor} style={getAnchorStyle(AnchorPoint.NW, uiComponent)} className=\"picasso-moveable-anchor nw\" onMouseDown={handleResizePointDown} onDragOver={handleDragOverResizePoint} />\r\n </Fragment>\r\n );\r\n\r\n const style = getDimensionsOfComponent(fillsParent, uiComponent, rowNumber, columnNumber);\r\n\r\n return (\r\n <div id={`${uiComponent.index}_component`} className=\"picasso-moveable\" onMouseMove={handleMouseMove} onMouseUp={handleMouseUp} {...{ style, onMouseLeave }}>\r\n {resizePoints}\r\n {innerComponent}\r\n {linksSvg}\r\n </div>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createGetColumnNumber, createGetGridTemplate, createGetRowNumber, getComponent, isComponentSelected } from \"../selectors\";\r\nimport { IPicassoState, ObjectType, WrapMapStateToProps } from \"../types\";\r\nimport { MoveableComponent, MoveableComponentProps } from \"./MoveableComponent\";\r\n\r\ntype MoveableProps = Pick<MoveableComponentProps, \"index\">;\r\n\r\ntype StateProps = Pick<MoveableComponentProps, \"uiComponent\" | \"isSelected\" | \"gridTemplate\" | \"rowNumber\" | \"columnNumber\">;\r\n\r\nconst createMapStateToProps = <S extends ObjectType>(wrapMapStateToProps: WrapMapStateToProps<S>) => () => {\r\n const getGridTemplate = createGetGridTemplate();\r\n const getRowNumber = createGetRowNumber();\r\n const getColumnNumber = createGetColumnNumber();\r\n\r\n const mapStateToProps: MapStateToProps<StateProps, MoveableProps, IPicassoState> = (state, { index }) => ({\r\n uiComponent: getComponent(state, index),\r\n isSelected: isComponentSelected(state, index),\r\n gridTemplate: getGridTemplate(state, index),\r\n rowNumber: getRowNumber(state, index),\r\n columnNumber: getColumnNumber(state, index),\r\n });\r\n\r\n return wrapMapStateToProps(mapStateToProps);\r\n};\r\n\r\nexport const createMoveable = <S extends ObjectType>(wrapMapStateToProps: WrapMapStateToProps<S>) => connect(createMapStateToProps(wrapMapStateToProps))(MoveableComponent);\r\n","import React, { Component, KeyboardEvent, MouseEvent, WheelEvent } from \"react\";\r\n\r\nimport { CONST_ARROW_DOWN, CONST_ARROW_LEFT, CONST_ARROW_RIGHT, CONST_ARROW_UP, CONST_LEFT_MOUSE_BTN, CONST_MAX_SCALE_INDEX, CONST_MIDDLE_MOUSE_BTN, CONST_MIN_SCALE_INDEX, CONST_NO_MOUSE_BTN, CONST_RIGHT_MOUSE_BTN, CONST_ROOT_COMPONENT_INDEX, PAINTINGS_PREVENTED_KEYS, PICASSO_PAINTING_BOX_CSS_CLASS, PICASSO_PAINTING_CSS_CLASS, PICASSO_PAINTING_WRAPPER_CSS_CLASS, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"../constants\";\r\nimport { AlignType } from \"../enums\";\r\nimport { IComponent, ILink, IPoint } from \"../interfaces\";\r\nimport { ComponentChangeType, EmptyObjectType, LinkChangeType, LinkPassableProps, MoveablePassableProps, PicassoEditorProps, ScrollPosition, SelectablePoint, SelectedAnchorsType, WrapMapStateToProps } from \"../types\";\r\nimport { checkNewHeightAndTop, checkNewWidthAndLeft, getCenteredPaintingScrollPosition, getNewPaintingScrollPositionOnZoom, getNewPaintingScrollPrositionOnPan, getNewScaleIndex, getPaintingDimensions, gridifyDelta, isNumberBetween } from \"../utils\";\r\nimport { createMoveable } from \"./Moveable\";\r\n\r\nexport type PicassoPaintingComponentProps = {\r\n /** Určuje hustotu mřížky, v jaké se mají vykreslovat komponenty. Musí být celým kladným číslem. */\r\n readonly gridIndex: number;\r\n /** Přepínač určující, zdali lze označit kořenovou komponentu. */\r\n readonly isRootComponentSelectable: boolean;\r\n /** Přepínač určující, zdali je formulář designeru zobrazen jen pro čtení (např. v náhledu). */\r\n readonly isReadonly: boolean;\r\n /** Seznam komponent k vykreslení. */\r\n readonly components: readonly IComponent[];\r\n /** Označené komponenty. */\r\n readonly selectedComponents: readonly IComponent[];\r\n /** Seznam spojení k vykreslení. */\r\n readonly links: readonly ILink[];\r\n /** Označená spojení. */\r\n readonly selectedLinksIndexes: readonly number[];\r\n /** Označený bod spojení. */\r\n readonly selectedPoint: SelectablePoint | null;\r\n /** Hodnota přiblížení plátna. */\r\n readonly scaleIndex: number;\r\n /** Požadovaná pozice scrollbarů plátna picassa (k hodnotám je přičteno odsazení kořenové komponenty). */\r\n readonly requestedScrollPosition: ScrollPosition;\r\n /** Callback funkce volaná při eventu onKeyUp. */\r\n readonly onKeyUp: (e: KeyboardEvent<HTMLDivElement>) => void;\r\n /** Callback funkce volaná při eventu onKeyDown. */\r\n readonly onKeyDown?: (e: KeyboardEvent<HTMLDivElement>) => void;\r\n /** Callback funkce volaná při změně komponenty. */\r\n readonly onComponentChange: (changedComponentIndex: number, newX: number, newY: number, newWidth: number, newHeight: number) => void;\r\n readonly wrapMapStateToProps: WrapMapStateToProps<any>;\r\n readonly renderComponent: (componentName: string, passableProps: MoveablePassableProps) => JSX.Element;\r\n readonly renderLink?: (linkName: string, passableProps: LinkPassableProps) => JSX.Element;\r\n /** Callback funkce volaná při změně spojení. */\r\n readonly onLinkChange?: (changedLinkIndex: number, newPoints: readonly IPoint[]) => void;\r\n readonly selectComponent: (component: IComponent, reselect: boolean) => void;\r\n readonly unselectComponent: (componentIndex: number) => void;\r\n readonly updateComponents: (changedComps: readonly ComponentChangeType[]) => void;\r\n readonly updateLinks: (changedLinks: readonly LinkChangeType[]) => void;\r\n readonly changeScaleIndex: (newScaleIndex: number) => void;\r\n readonly unselectPoint: () => void;\r\n} & PicassoEditorProps;\r\n\r\nexport class PicassoPaintingComponent extends Component<PicassoPaintingComponentProps> {\r\n public static defaultProps = {\r\n isRootComponentSelectable: false,\r\n isReadonly: false,\r\n };\r\n\r\n private isPanning = false;\r\n private isDragging = false;\r\n private ctrlKeyWhenMouseDown = false;\r\n private canDrag = false;\r\n private canResize = false;\r\n private initialPoint = { x: 0, y: 0 };\r\n private Moveable = createMoveable(this.props.wrapMapStateToProps);\r\n private selectedAnchors: SelectedAnchorsType | null = null;\r\n private picassoPaintingRef: React.RefObject<HTMLDivElement> = React.createRef();\r\n private picassoPaintingBoxRef: React.RefObject<HTMLDivElement> = React.createRef();\r\n /** Timeout for re-setting the value of 'will-change' CSS property that enables smooth scrolling on large picasso painting. */\r\n private willChangeAutoTimeout: number | undefined = undefined;\r\n /** Timeout for re-caltulating width and scroll position of picasso paintg when resize happens. */\r\n private resizeObserverTimeout: number | undefined = undefined;\r\n\r\n private resizeObserver = new ResizeObserver((e) => {\r\n if (e.every(x => x.contentRect.width !== 0 && x.contentRect.height !== 0)) {\r\n window.clearTimeout(this.resizeObserverTimeout);\r\n this.resizeObserverTimeout = window.setTimeout(() => {\r\n if (this.picassoPaintingBoxRef?.current?.parentElement == null) {\r\n return;\r\n }\r\n\r\n const { width: currentWidth, height: currentHeight } = this.picassoPaintingBoxRef.current.parentElement.style;\r\n const { width, height } = getPaintingDimensions(this.picassoPaintingRef.current, this.props.components[0], this.props.scaleIndex);\r\n\r\n const [scrollByLeft, scrollByTop]: [number, number] = [\r\n Number(currentWidth.replace(\"px\", \"\")) - Number(width.replace(\"px\", \"\")),\r\n Number(currentHeight.replace(\"px\", \"\")) - Number(height.replace(\"px\", \"\")),\r\n ];\r\n\r\n this.picassoPaintingBoxRef.current.parentElement.style.width = width;\r\n this.picassoPaintingBoxRef.current.parentElement.style.height = height;\r\n\r\n this.picassoPaintingRef.current?.scrollBy({ left: (-scrollByLeft) / 2, top: (-scrollByTop) / 2 });\r\n }, 100);\r\n }\r\n });\r\n\r\n // Použito kvůli nefungující metodě componentDidMount, kdy MW zobrazuje formuláře v DOM-u až mnohem později,\r\n // než kdy se provolá componentDidMount. Proto je potřeba tohoto \"hacku\" v podobě IntersectionObserver-u.\r\n private intersectionObserver = new IntersectionObserver((e, observer) => {\r\n if (e.some(x => x.isIntersecting) && this.picassoPaintingRef.current && this.picassoPaintingBoxRef?.current?.parentElement) {\r\n const { width, height } = getPaintingDimensions(this.picassoPaintingRef.current, this.props.components[0], this.props.scaleIndex);\r\n this.picassoPaintingBoxRef.current.parentElement.style.width = width;\r\n this.picassoPaintingBoxRef.current.parentElement.style.height = height;\r\n this.picassoPaintingRef.current.scrollTo(getCenteredPaintingScrollPosition(this.picassoPaintingRef.current));\r\n this.resizeObserver.observe(this.picassoPaintingRef.current);\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n constructor(props: PicassoPaintingComponentProps) {\r\n super(props);\r\n\r\n if (props.gridIndex < 1 || !Number.isInteger(props.gridIndex))\r\n throw new Error(\"Error, gridIndex must be a positive integer!\");\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const { picassoInstanceKey, isRootComponentSelectable, scaleIndex, renderComponent, renderLink, onLinkChange, wrapMapStateToProps, onKeyUp } = this.props;\r\n const { width, height } = getPaintingDimensions(this.picassoPaintingRef.current, this.props.components[0], this.props.scaleIndex);\r\n\r\n return (\r\n <div ref={this.picassoPaintingRef} className={PICASSO_PAINTING_CSS_CLASS} onKeyUp={onKeyUp} onKeyDown={this.handleKeyDown} onWheel={this.handleWheel} onMouseOver={this.handleMouseOver} onMouseLeave={this.handleMouseLeave} onMouseUp={this.handleMouseUp} onMouseDown={this.handleMouseDown} onMouseMove={this.handleMouseMove} onContextMenu={this.handleContextMenu} tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}>\r\n <div className={PICASSO_PAINTING_WRAPPER_CSS_CLASS} style={{ width, height }}>\r\n <div ref={this.picassoPaintingBoxRef} className={PICASSO_PAINTING_BOX_CSS_CLASS} style={{\r\n scale: scaleIndex.toString(), // toString() because of bug in our version of React https://github.com/facebook/react/pull/25601\r\n width: this.props.components[0] ? (this.props.components[0].width + this.props.components[0].relativeLeft) : 0,\r\n height: this.props.components[0] ? (this.props.components[0].height + this.props.components[0].relativeTop) : 0,\r\n }}>\r\n {this.props.components.length && <this.Moveable\r\n index={CONST_ROOT_COMPONENT_INDEX}\r\n isSelectable={isRootComponentSelectable}\r\n isResizable={false}\r\n isDraggable={false}\r\n onResizePointDown={this.handleComponentsResizePointDown}\r\n onMouseUp={this.handleComponentMouseUp}\r\n onMouseClick={this.handleComponentClick}\r\n onMouseLeave={this.handleComponentMouseLeave}\r\n onMouseDown={this.handleComponentMouseDown}\r\n onMouseMove={this.handleComponentMouseMove}\r\n {...{ renderComponent, renderLink, onLinkChange, wrapMapStateToProps, picassoInstanceKey }} />}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidUpdate(prevProps: Readonly<PicassoPaintingComponentProps>, _prevState: Readonly<EmptyObjectType>, _snapshot?: any): void {\r\n if (prevProps.requestedScrollPosition !== this.props.requestedScrollPosition && this.picassoPaintingRef.current) {\r\n const { left, top } = getCenteredPaintingScrollPosition(this.picassoPaintingRef.current);\r\n this.picassoPaintingRef.current.scrollTo({ left: this.props.requestedScrollPosition.left + left, top: this.props.requestedScrollPosition.top + top, behavior: \"smooth\" });\r\n }\r\n }\r\n\r\n public override componentDidMount(): void {\r\n if (this.picassoPaintingRef.current) {\r\n this.intersectionObserver.observe(this.picassoPaintingRef.current);\r\n }\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n this.intersectionObserver.disconnect();\r\n this.resizeObserver.disconnect();\r\n clearTimeout(this.resizeObserverTimeout);\r\n }\r\n\r\n //#region Handlování eventů na Picasso Painting\r\n\r\n /** Zabraňuje vyskočení kontextového menu po right-clicku */\r\n private handleContextMenu = (e: MouseEvent) => {\r\n e.preventDefault();\r\n };\r\n\r\n /** Po mouse-upu se musí vypnout pannování plátna */\r\n private handleMouseUp = () => {\r\n this.isPanning = false;\r\n };\r\n\r\n private preventBrowserZoom = (e: globalThis.WheelEvent) => {\r\n if (e.ctrlKey) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n private preventMouseMiddleButtonScroll = (e: globalThis.MouseEvent) => {\r\n if (e.button === 1) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n /** Pokud se na plátno klikne pravým myšítkem (nebo scrollwheelem) zapne se pannování plátna a nastaví se počáteční bod pannování */\r\n private handleMouseDown = (e: MouseEvent) => {\r\n if (e.buttons !== CONST_RIGHT_MOUSE_BTN && e.buttons !== CONST_MIDDLE_MOUSE_BTN || !this.picassoPaintingRef.current) {\r\n return;\r\n }\r\n\r\n this.initialPoint = { x: e.clientX + this.picassoPaintingRef.current.scrollLeft, y: e.clientY + this.picassoPaintingRef.current.scrollTop };\r\n this.isPanning = true;\r\n };\r\n\r\n /** Pokud je pannování zapnuto, tak se při pohybu kurzoru nad plátnem vyvolává pannování */\r\n private handleMouseMove = (e: MouseEvent) => {\r\n if (!this.isPanning || (e.buttons !== CONST_RIGHT_MOUSE_BTN && e.buttons !== CONST_MIDDLE_MOUSE_BTN))\r\n return;\r\n\r\n const newScrollPosition = getNewPaintingScrollPrositionOnPan(this.initialPoint, e);\r\n this.picassoPaintingRef.current?.scrollTo(newScrollPosition);\r\n };\r\n\r\n /** Při protočení kolečka myši dochází k oddálení/přblížení plátna */\r\n private handleWheel = (e: WheelEvent) => {\r\n if (e.buttons !== CONST_NO_MOUSE_BTN || !e.ctrlKey || !this.picassoPaintingRef.current || !this.picassoPaintingBoxRef?.current?.parentElement) {\r\n return;\r\n }\r\n\r\n const { scaleIndex, changeScaleIndex } = this.props;\r\n const newScaleIndex = getNewScaleIndex(e, scaleIndex);\r\n\r\n if (newScaleIndex > CONST_MAX_SCALE_INDEX || newScaleIndex < CONST_MIN_SCALE_INDEX)\r\n return;\r\n\r\n window.clearTimeout(this.willChangeAutoTimeout);\r\n this.picassoPaintingBoxRef.current.style.willChange = \"scale\";\r\n\r\n // Kromě změny scale indexu je i nutné vypočítat i nový scroll position plátna, aby se posunulo tam, kam míří kurzor.\r\n\r\n const newPaintingPosition = getNewPaintingScrollPositionOnZoom(e, this.picassoPaintingRef.current, scaleIndex, newScaleIndex);\r\n const { width, height } = getPaintingDimensions(this.picassoPaintingRef.current, this.props.components[0], newScaleIndex);\r\n this.picassoPaintingBoxRef.current.style.scale = newScaleIndex.toString();\r\n this.picassoPaintingBoxRef.current.parentElement.style.height = height;\r\n this.picassoPaintingBoxRef.current.parentElement.style.width = width;\r\n this.picassoPaintingRef.current.scrollTo(newPaintingPosition);\r\n changeScaleIndex(newScaleIndex);\r\n\r\n this.willChangeAutoTimeout = window.setTimeout(() => {\r\n if (this.picassoPaintingBoxRef.current) {\r\n this.picassoPaintingBoxRef.current.style.willChange = \"auto\";\r\n }\r\n }, 100);\r\n };\r\n\r\n private handleMouseOver = () => {\r\n window.addEventListener(\"wheel\", this.preventBrowserZoom, { passive: false });\r\n window.addEventListener(\"mousedown\", this.preventMouseMiddleButtonScroll, { passive: false });\r\n };\r\n\r\n private handleMouseLeave = () => {\r\n window.removeEventListener(\"wheel\", this.preventBrowserZoom, false);\r\n window.removeEventListener(\"mousedown\", this.preventMouseMiddleButtonScroll, false);\r\n };\r\n\r\n /** Obstarává posun picasso komponent pomocí směrových šipek na klávesnici. */\r\n private handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n const { isReadonly, selectedComponents, gridIndex, onKeyDown } = this.props;\r\n\r\n onKeyDown && onKeyDown(e);\r\n\r\n if (PAINTINGS_PREVENTED_KEYS.includes(e.key)) {\r\n e.preventDefault();\r\n }\r\n\r\n if (isReadonly || selectedComponents.length === 0 || selectedComponents.some(x => x.align !== AlignType.none))\r\n return;\r\n\r\n const stepSize = e.shiftKey ? 1 : gridIndex;\r\n\r\n if (e.key === CONST_ARROW_UP) {\r\n this.updateComponentsAndLinks(0, -stepSize);\r\n } else if (e.key === CONST_ARROW_DOWN) {\r\n this.updateComponentsAndLinks(0, stepSize);\r\n } else if (e.key === CONST_ARROW_LEFT) {\r\n this.updateComponentsAndLinks(-stepSize, 0);\r\n } else if (e.key === CONST_ARROW_RIGHT) {\r\n this.updateComponentsAndLinks(stepSize, 0);\r\n }\r\n };\r\n\r\n ////#endregion\r\n\r\n //#region Handlování eventů na Moveable componentách\r\n\r\n /** Při Mouse leave dojde k vypnutí dragování a resizování */\r\n private handleComponentMouseLeave = (e: MouseEvent) => {\r\n if (e.buttons === CONST_NO_MOUSE_BTN) {\r\n this.canDrag = false;\r\n this.canResize = false;\r\n }\r\n };\r\n\r\n private handleComponentMouseUp = (e: MouseEvent, _uiComponent: IComponent) => {\r\n const { selectedPoint, links, components } = this.props;\r\n\r\n if (selectedPoint == null)\r\n return;\r\n\r\n const linkToChange = links[selectedPoint.linkIndex];\r\n\r\n /* PROSÍM NEMAZAT! PŘIPRAVENO PRO PODPORU CHANGOVÁNÍ COMPONENT LINKU\r\n if (uiComponent.id !== linkToChange.ownerId) {\r\n if (uiComponent.id === linkToChange.endComponentId || uiComponent.id === linkToChange.startComponentId) //todo nebude fungovat, když budu chtít dát link na komponentu, která bude linkovat sama sebe\r\n return;\r\n\r\n if (selectedPoint.pointIndex === linkToChange.points.length - 1) {\r\n Tady je prostor pro callback onLinksComponentChange, kdysi tu byla celá složitá logika, ale asi to nemá moc smysl\r\n e.stopPropagation();\r\n return;\r\n }\r\n\r\n if (selectedPoint.pointIndex === 0) {\r\n Tady je prostor pro callback onLinksComponentChange, kdysi tu byla celá složitá logika, ale asi to nemá moc smysl\r\n e.stopPropagation();\r\n return;\r\n }\r\n }*/\r\n\r\n let relatedComponentId: number;\r\n\r\n if (selectedPoint.pointIndex === linkToChange.points.length - 1)\r\n relatedComponentId = linkToChange.endComponentIndex;\r\n else if (selectedPoint.pointIndex === 0)\r\n relatedComponentId = linkToChange.startComponentIndex;\r\n else\r\n return;\r\n\r\n const relatedComponent = components[relatedComponentId];\r\n const point = linkToChange.points[selectedPoint.pointIndex];\r\n const isPointWithinComponent = isNumberBetween(point.x, relatedComponent.relativeLeft, relatedComponent.relativeLeft + relatedComponent.width)\r\n && isNumberBetween(point.y, relatedComponent.relativeTop, relatedComponent.relativeTop + relatedComponent.height);\r\n\r\n if (isPointWithinComponent)\r\n return;\r\n\r\n const deltaLeft = selectedPoint.lastPosition.x - point.x;\r\n const deltaTop = selectedPoint.lastPosition.y - point.y;\r\n const newPoints = this.changePointPosition(linkToChange, selectedPoint.pointIndex, deltaLeft, deltaTop);\r\n\r\n this.props.updateLinks([{ index: selectedPoint.linkIndex, newPoints }]);\r\n\r\n if (this.props.onLinkChange)\r\n this.props.onLinkChange(linkToChange.index, newPoints);\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n private handleComponentMouseMove = (e: MouseEvent, uiComponent: IComponent, isSelected: boolean) => {\r\n const { isReadonly, selectedPoint, selectedComponents, links } = this.props;\r\n\r\n if (isReadonly)\r\n return;\r\n\r\n if (selectedPoint != null) {\r\n this.dragPoint(e, selectedPoint, links[selectedPoint.linkIndex], uiComponent.index);\r\n return;\r\n }\r\n\r\n if (isSelected || (selectedComponents.length < 0 || selectedComponents.some(selComp => selComp.parent !== uiComponent.index)))\r\n return;\r\n\r\n if (this.canResize) {\r\n this.resizeComponent(e);\r\n return;\r\n } else if (this.canDrag) {\r\n this.dragComponent(e);\r\n return;\r\n }\r\n };\r\n\r\n /** Dojde k označení/odznačení komponenty */\r\n private handleComponentClick = (e: MouseEvent, component: IComponent, isSelected: boolean, isSelectable: boolean) => {\r\n if (isSelectable && this.ctrlKeyWhenMouseDown === e.ctrlKey) {\r\n if (isSelected && !e.ctrlKey && !this.isDragging)\r\n this.props.selectComponent(component, true);\r\n else if (!isSelected && e.ctrlKey && !this.isDragging)\r\n this.props.selectComponent(component, false);\r\n else if (isSelected && e.ctrlKey && !this.isDragging)\r\n this.props.unselectComponent(component.index);\r\n }\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n private handleComponentMouseDown = (e: MouseEvent, isSelected: boolean, isDraggable: boolean, isSelectable: boolean, component: IComponent) => {\r\n this.ctrlKeyWhenMouseDown = e.ctrlKey;\r\n\r\n if (e.buttons !== CONST_LEFT_MOUSE_BTN || !this.picassoPaintingBoxRef.current) {\r\n return;\r\n }\r\n\r\n this.isDragging = false;\r\n\r\n if (!isSelected && !e.ctrlKey && isSelectable)\r\n this.props.selectComponent(component, true);\r\n\r\n e.stopPropagation();\r\n\r\n if (!isDraggable) {\r\n this.canResize = false;\r\n this.canDrag = false;\r\n return;\r\n }\r\n\r\n const { left, top } = this.picassoPaintingBoxRef.current.getBoundingClientRect();\r\n\r\n this.canResize = false;\r\n this.canDrag = isSelectable;\r\n this.initialPoint.x = e.clientX - left;\r\n this.initialPoint.y = e.clientY - top;\r\n };\r\n\r\n private handleComponentsResizePointDown = (e: MouseEvent, selectedAnchors: SelectedAnchorsType) => {\r\n this.canResize = true;\r\n this.canDrag = false;\r\n this.selectedAnchors = selectedAnchors;\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n //#endregion\r\n\r\n private dragPoint = (e: MouseEvent, selectedPoint: SelectablePoint, linkToChange: ILink, componentId: number) => {\r\n if (linkToChange.ownerIndex !== componentId)\r\n return;\r\n\r\n if (linkToChange.ownerIndex !== componentId || e.buttons !== CONST_LEFT_MOUSE_BTN) {\r\n this.props.unselectPoint();\r\n return;\r\n }\r\n\r\n const { scaleIndex, updateLinks, onLinkChange } = this.props;\r\n const newPoints = [...linkToChange.points];\r\n\r\n newPoints[selectedPoint.pointIndex] = {\r\n x: ((e.clientX - selectedPoint.originCursorCoordinates.x) / scaleIndex) + selectedPoint.lastPosition.x,\r\n y: ((e.clientY - selectedPoint.originCursorCoordinates.y) / scaleIndex) + selectedPoint.lastPosition.y,\r\n };\r\n\r\n updateLinks([{ index: selectedPoint.linkIndex, newPoints }]);\r\n\r\n if (onLinkChange)\r\n onLinkChange(linkToChange.index, newPoints);\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n private dragComponent = (e: MouseEvent) => {\r\n if (e.buttons !== CONST_LEFT_MOUSE_BTN || e.ctrlKey || !this.picassoPaintingBoxRef.current) {\r\n return;\r\n }\r\n\r\n this.isDragging = true;\r\n const { scaleIndex, gridIndex } = this.props;\r\n\r\n const { left, top } = this.picassoPaintingBoxRef.current.getBoundingClientRect();\r\n const x = e.clientX - left;\r\n const y = e.clientY - top;\r\n\r\n const rawDeltaLeft = (x - this.initialPoint.x) / scaleIndex;\r\n const deltaLeft = gridifyDelta(rawDeltaLeft, gridIndex);\r\n\r\n const rawDeltaTop = (y - this.initialPoint.y) / scaleIndex;\r\n const deltaTop = gridifyDelta(rawDeltaTop, gridIndex);\r\n\r\n if (deltaLeft !== 0 || deltaTop !== 0) {\r\n if (deltaLeft !== 0) {\r\n this.initialPoint.x = x - (rawDeltaLeft - deltaLeft) * scaleIndex;\r\n }\r\n\r\n if (deltaTop !== 0) {\r\n this.initialPoint.y = y - (rawDeltaTop - deltaTop) * scaleIndex;\r\n }\r\n\r\n this.updateComponentsAndLinks(deltaLeft, deltaTop);\r\n }\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n private resizeComponent = (e: MouseEvent) => {\r\n if (e.buttons !== CONST_LEFT_MOUSE_BTN || this.selectedAnchors === null)\r\n return;\r\n\r\n const gridIndex = this.props.gridIndex;\r\n\r\n let deltaWidth, deltaHeight, deltaLeft, deltaTop = 0;\r\n\r\n const nRect = this.selectedAnchors.nAnchor.element.getBoundingClientRect();\r\n const neRect = this.selectedAnchors.neAnchor.element.getBoundingClientRect();\r\n const eRect = this.selectedAnchors.eAnchor.element.getBoundingClientRect();\r\n const seRect = this.selectedAnchors.seAnchor.element.getBoundingClientRect();\r\n const sRect = this.selectedAnchors.sAnchor.element.getBoundingClientRect();\r\n const swRect = this.selectedAnchors.swAnchor.element.getBoundingClientRect();\r\n const wRect = this.selectedAnchors.wAnchor.element.getBoundingClientRect();\r\n const nwRect = this.selectedAnchors.nwAnchor.element.getBoundingClientRect();\r\n\r\n if (this.selectedAnchors.nAnchor.isSelected) {\r\n if (e.clientY <= sRect.top) {\r\n deltaHeight = gridifyDelta(nRect.top - e.clientY, gridIndex);\r\n deltaTop = gridifyDelta(-deltaHeight, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.neAnchor.isSelected) {\r\n if (e.clientX >= swRect.left && e.clientY <= swRect.bottom) {\r\n deltaWidth = gridifyDelta(e.clientX - neRect.left, gridIndex);\r\n deltaHeight = gridifyDelta(neRect.top - e.clientY, gridIndex);\r\n deltaTop = gridifyDelta(-deltaHeight, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.eAnchor.isSelected) {\r\n if (e.clientX >= wRect.left) {\r\n deltaWidth = gridifyDelta(e.clientX - eRect.left, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.seAnchor.isSelected) {\r\n if (e.clientX >= nwRect.left && e.clientY >= nwRect.top) {\r\n deltaWidth = gridifyDelta(e.clientX - seRect.left, gridIndex);\r\n deltaHeight = gridifyDelta(e.clientY - seRect.bottom, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.sAnchor.isSelected) {\r\n if (e.clientY >= nRect.top) {\r\n deltaHeight = gridifyDelta(e.clientY - sRect.top, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.swAnchor.isSelected) {\r\n if (e.clientX <= neRect.right && e.clientY >= neRect.bottom) {\r\n deltaWidth = gridifyDelta(swRect.right - e.clientX, gridIndex);\r\n deltaHeight = gridifyDelta(e.clientY - swRect.top, gridIndex);\r\n deltaLeft = gridifyDelta(-deltaWidth, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.wAnchor.isSelected) {\r\n if (e.clientX <= eRect.left) {\r\n deltaWidth = gridifyDelta(wRect.left - e.clientX, gridIndex);\r\n deltaLeft = gridifyDelta(-deltaWidth, gridIndex);\r\n }\r\n } else if (this.selectedAnchors.nwAnchor.isSelected) {\r\n if (e.clientX <= seRect.right && e.clientY <= seRect.bottom) {\r\n deltaWidth = gridifyDelta(nwRect.right - e.clientX, gridIndex);\r\n deltaHeight = gridifyDelta(nwRect.bottom - e.clientY, gridIndex);\r\n deltaLeft = gridifyDelta(-deltaWidth, gridIndex);\r\n deltaTop = gridifyDelta(-deltaHeight, gridIndex);\r\n }\r\n }\r\n\r\n if (deltaWidth || deltaHeight || deltaLeft || deltaTop)\r\n this.updateComponentsAndLinks(deltaLeft, deltaTop, deltaWidth, deltaHeight);\r\n\r\n e.stopPropagation();\r\n };\r\n\r\n private changePointPosition = (link: ILink, pointIndex: number, deltaLeft: number, deltaTop: number): IPoint[] => {\r\n const newX = link.points[pointIndex].x + deltaLeft;\r\n const newY = link.points[pointIndex].y + deltaTop;\r\n\r\n const newPoints = [...link.points];\r\n newPoints[pointIndex] = { x: newX, y: newY };\r\n\r\n return newPoints;\r\n };\r\n\r\n private updateComponentsAndLinks = (deltaLeft = 0, deltaTop = 0, deltaWidth = 0, deltaHeight = 0) => {\r\n const { selectedComponents, selectedLinksIndexes, links, onComponentChange, onLinkChange } = this.props;\r\n const changedComps: ComponentChangeType[] = [];\r\n const changedLinks: LinkChangeType[] = [];\r\n\r\n for (let i = 0; i < selectedComponents.length; i++) {\r\n const selectedComponent = selectedComponents[i];\r\n\r\n // change of comp\r\n const widthAndLeft = checkNewWidthAndLeft(selectedComponent.width + deltaWidth, selectedComponent.relativeLeft + deltaLeft, deltaLeft, selectedComponent);\r\n const heightAndTop = checkNewHeightAndTop(selectedComponent.height + deltaHeight, selectedComponent.relativeTop + deltaTop, deltaTop, selectedComponent);\r\n\r\n if (widthAndLeft.left < 0 || heightAndTop.top < 0)\r\n return;\r\n\r\n changedComps.push({\r\n componentIndex: selectedComponent.index,\r\n x: widthAndLeft.left,\r\n y: heightAndTop.top,\r\n width: widthAndLeft.width,\r\n height: heightAndTop.height,\r\n deltaX: widthAndLeft.left - selectedComponent.relativeLeft,\r\n deltaY: heightAndTop.top - selectedComponent.relativeTop,\r\n });\r\n\r\n // change of link\r\n for (let j = 0; j < links.length; j++) {\r\n const { index, startComponentIndex, points, endComponentIndex } = links[j];\r\n\r\n const isLinkSelected = selectedLinksIndexes.includes(index);\r\n const isStartComponentAlsoSelected = selectedComponents.some(selectedComp => selectedComp.index === startComponentIndex);\r\n\r\n const alreadyChangedLink = changedLinks.find(changedLink => changedLink.index === j);\r\n const newPoints = alreadyChangedLink == null ? [...points] : [...alreadyChangedLink.newPoints];\r\n\r\n if (selectedComponent.index === startComponentIndex) {\r\n const isEndComponentAlsoSelected = selectedComponents.some(selectedComp => selectedComp.index === endComponentIndex);\r\n\r\n if (isEndComponentAlsoSelected && isLinkSelected) {\r\n for (let k = 0; k < newPoints.length; k++) {\r\n newPoints[k] = { x: newPoints[k].x + deltaLeft, y: newPoints[k].y + deltaTop };\r\n }\r\n } else\r\n newPoints[0] = { x: newPoints[0].x + deltaLeft, y: newPoints[0].y + deltaTop };\r\n\r\n changedLinks.push({ index: j, newPoints });\r\n }\r\n\r\n if (selectedComponent.index === endComponentIndex && (!isLinkSelected || isLinkSelected && !isStartComponentAlsoSelected)) {\r\n newPoints[newPoints.length - 1] = {\r\n x: newPoints[newPoints.length - 1].x + deltaLeft,\r\n y: newPoints[newPoints.length - 1].y + deltaTop,\r\n };\r\n\r\n changedLinks.push({ index: j, newPoints });\r\n }\r\n }\r\n }\r\n\r\n if (changedComps.length > 0) {\r\n this.props.updateComponents(changedComps);\r\n changedComps.forEach(changedComponent => onComponentChange(changedComponent.componentIndex, changedComponent.x, changedComponent.y, changedComponent.width, changedComponent.height));\r\n }\r\n\r\n if (changedLinks.length > 0) {\r\n this.props.updateLinks(changedLinks);\r\n\r\n if (onLinkChange)\r\n changedLinks.forEach(changedLink => onLinkChange(changedLink.index, changedLink.newPoints));\r\n }\r\n };\r\n}\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createChangeScaleIndexAction, createSelectComponentAction, createUnselectComponentAction, createUnselectPointAction, createUpdateComponentsAction, createUpdateLinksAction } from \"../actions\";\r\nimport { createGetSelectedComponents, getComponents, getLinks, getRequestedScrollPosition, getScaleIndex, getSelectedLinksIndexes, getSelectedPoint } from \"../selectors\";\r\nimport { EmptyObjectType, IPicassoState, ObjectType, PicassoEditorProps, WrapMapStateToProps } from \"../types\";\r\nimport { PicassoPaintingComponent, PicassoPaintingComponentProps } from \"./PicassoPaintingComponent\";\r\n\r\ntype StateProps = Pick<PicassoPaintingComponentProps, \"components\" | \"links\" | \"selectedComponents\" | \"selectedLinksIndexes\" | \"selectedPoint\" | \"scaleIndex\" | \"requestedScrollPosition\">;\r\n\r\n/**\r\n * Vytvoří createMapStateToProps, pro které obalí mapStateToProps zadanou obalovací funkcí.\r\n * @param wrapMapStateToProps Funkce pro obalení mapStateToProps.\r\n */\r\nconst wrapCreateMapStateToProps = <S extends ObjectType>(wrapMapStateToProps: WrapMapStateToProps<S>) => () => {\r\n const getSelectedComponents = createGetSelectedComponents();\r\n\r\n const mapStateToProps: MapStateToProps<StateProps, EmptyObjectType, IPicassoState> = (state) => ({\r\n components: getComponents(state),\r\n links: getLinks(state),\r\n selectedComponents: getSelectedComponents(state),\r\n selectedLinksIndexes: getSelectedLinksIndexes(state),\r\n selectedPoint: getSelectedPoint(state),\r\n scaleIndex: getScaleIndex(state),\r\n requestedScrollPosition: getRequestedScrollPosition(state),\r\n });\r\n\r\n return wrapMapStateToProps(mapStateToProps);\r\n};\r\n\r\ntype DispatchProps = Pick<PicassoPaintingComponentProps, \"selectComponent\" | \"unselectComponent\" | \"updateComponents\" | \"updateLinks\" | \"changeScaleIndex\" | \"unselectPoint\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, PicassoEditorProps> = (dispatch, { picassoInstanceKey }) => ({\r\n selectComponent: (component, reselect) => dispatch(createSelectComponentAction(picassoInstanceKey, component, reselect)),\r\n unselectComponent: (componentIndex) => dispatch(createUnselectComponentAction(picassoInstanceKey, componentIndex)),\r\n updateComponents: (changedComps) => dispatch(createUpdateComponentsAction(picassoInstanceKey, changedComps)),\r\n updateLinks: (changedLinks) => dispatch(createUpdateLinksAction(picassoInstanceKey, changedLinks)),\r\n changeScaleIndex: (newScaleIndex) => dispatch(createChangeScaleIndexAction(picassoInstanceKey, newScaleIndex)),\r\n unselectPoint: () => dispatch(createUnselectPointAction(picassoInstanceKey)),\r\n});\r\n\r\nexport const createPicassoPainting = <S extends ObjectType>(wrapMapStateToProps: WrapMapStateToProps<S>) => connect(wrapCreateMapStateToProps(wrapMapStateToProps), mapDispatchToProps)(PicassoPaintingComponent);\r\n","export * from \"./Link\";\r\nexport * from \"./Moveable\";\r\nexport * from \"./PicassoPainting\";\r\n","import { AnyAction, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { CONST_DEFAULT_SCALE_INDEX, CONST_MAX_SCALE_INDEX, CONST_MIN_SCALE_INDEX, CONST_ROOT_COMPONENT_INDEX, DEFAULT_SCROLL_POSITION, EMPTY_ARRAY } from \"./constants\";\r\nimport { AlignType } from \"./enums\";\r\nimport { IComponent, ILink } from \"./interfaces\";\r\nimport {\r\n IChangeScaleIndexAction,\r\n IDeleteComponentsAction,\r\n ILoadStateAction,\r\n IPicassoAction,\r\n IPicassoState,\r\n IRequestPaintingScrollPositionAction,\r\n ISelectAllComponentsAction,\r\n ISelectComponentAction,\r\n ISelectLinkAction,\r\n ISelectPointAction,\r\n IUnselectAllAction,\r\n IUnselectComponentAction,\r\n IUnselectLinkAction,\r\n IUnselectPointAction,\r\n IUpdateComponentsAction,\r\n IUpdateComponentsAlignmentAction,\r\n IUpdateComponentsResizeOptionAction,\r\n IUpdateComponentVisibilityAction,\r\n IUpdateLinksAction,\r\n Mutable,\r\n ScrollPosition,\r\n SelectablePoint,\r\n} from \"./types\";\r\nimport { deletePicassoComponents, getNewCoordinates, updateSiblings } from \"./utils\";\r\n\r\nexport const reducer: Reducer<IPicassoState> = (state = INITIAL_STATE, action) => {\r\n if (!(action instanceof IPicassoAction)) { // We don't need to react on actions that aren't from Picasso.\r\n return state;\r\n }\r\n\r\n return produce(state, (draft: Mutable<IPicassoState>): void => {\r\n draft.components = components(state.components, action);\r\n draft.selectedComponentsIndexes = selectedComponentsIndexes(state.selectedComponentsIndexes, action, draft.components);\r\n draft.links = links(state.links, action);\r\n draft.selectedLinksIndexes = selectedLinksIndexes(state.selectedLinksIndexes, action);\r\n draft.selectedPoint = selectedPoint(state.selectedPoint, action);\r\n draft.scaleIndex = scaleIndex(state.scaleIndex, action);\r\n draft.requestedScrollPosition = requestedScrollPosition(state.requestedScrollPosition, action);\r\n });\r\n};\r\n\r\nconst components: Reducer<readonly IComponent[]> = (state = INITIAL_STATE.components, action) => {\r\n if (action instanceof ILoadStateAction)\r\n return action.payload.components;\r\n else if (action instanceof IUpdateComponentsAction) {\r\n const { changedComps } = action.payload;\r\n\r\n if (changedComps.length > 1 && changedComps.some(x => state[x.componentIndex].align !== AlignType.none))\r\n return state;\r\n\r\n const components = [...state];\r\n changedComps.forEach(changedCompValues => {\r\n const originalComp = components[changedCompValues.componentIndex];\r\n components[changedCompValues.componentIndex] = {\r\n ...components[changedCompValues.componentIndex],\r\n width: changedCompValues.width,\r\n height: changedCompValues.height,\r\n relativeLeft: changedCompValues.x,\r\n relativeTop: changedCompValues.y,\r\n };\r\n\r\n const deltaWidth = changedCompValues.width - originalComp.width;\r\n const deltaHeight = changedCompValues.height - originalComp.height;\r\n\r\n if (deltaHeight !== 0 || deltaWidth !== 0) // pouze při resizování\r\n updateSiblings(originalComp, components, deltaWidth, deltaHeight);\r\n });\r\n\r\n return components;\r\n } else if (action instanceof IDeleteComponentsAction) {\r\n return deletePicassoComponents([...state], action.payload.componentsToDelete);\r\n } else if (action instanceof IUpdateComponentVisibilityAction) {\r\n const { componentIndex, isVisible } = action.payload;\r\n const components = [...state];\r\n components[componentIndex] = { ...components[componentIndex], isVisible };\r\n\r\n return components;\r\n } else if (action instanceof IUpdateComponentsAlignmentAction) {\r\n const { componentIndex, align } = action.payload;\r\n\r\n if (componentIndex === CONST_ROOT_COMPONENT_INDEX)\r\n return state;\r\n\r\n const components = [...state];\r\n const selectedComp = components[componentIndex];\r\n const parentComp = components[selectedComp.parent ?? CONST_ROOT_COMPONENT_INDEX];\r\n const siblingComps = parentComp.children.map(x => components[x]);\r\n components[componentIndex] = { ...selectedComp, align, ...getNewCoordinates(align, selectedComp, parentComp, siblingComps) };\r\n updateSiblings(selectedComp, components, -selectedComp.width, -selectedComp.height);\r\n\r\n return components;\r\n } else if (action instanceof IUpdateComponentsResizeOptionAction) {\r\n const { componentIndex, resizeOption, noCssHeight, noCssWidth } = action.payload;\r\n const component = state[componentIndex];\r\n\r\n if (component.resizeOption === resizeOption && component.noCssHeight === noCssHeight && component.noCssWidth === noCssWidth)\r\n return state;\r\n\r\n const components = [...state];\r\n components[componentIndex] = { ...component, resizeOption, noCssHeight, noCssWidth };\r\n\r\n return components;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst links: Reducer<readonly ILink[]> = (state = INITIAL_STATE.links, action) => {\r\n if (action instanceof ILoadStateAction)\r\n return action.payload.links;\r\n else if (action instanceof IUpdateLinksAction) {\r\n const links = [...state];\r\n\r\n action.payload.changedLinks.forEach(changedLink =>\r\n links[changedLink.index] = { ...links[changedLink.index], points: changedLink.newPoints },\r\n );\r\n\r\n return links;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst selectedComponentsIndexes = (state = INITIAL_STATE.selectedComponentsIndexes, action: AnyAction, components: readonly IComponent[]): readonly number[] => {\r\n if (action instanceof ILoadStateAction) {\r\n if (action.payload.selectedComponentIndex !== undefined)\r\n return [action.payload.selectedComponentIndex];\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof ISelectComponentAction) {\r\n if (action.payload.reselect)\r\n return [action.payload.component.index];\r\n\r\n const isComponentAlreadySelected = state.includes(action.payload.component.index);\r\n const isComponentNotSibling = () => state.some(selectedCompId => components[selectedCompId].parent !== action.payload.component.parent);\r\n\r\n return !isComponentAlreadySelected && !isComponentNotSibling() ? state.concat([action.payload.component.index]) : state;\r\n } else if (action instanceof ISelectLinkAction)\r\n return action.payload.reselect ? EMPTY_ARRAY : state;\r\n else if (action instanceof ISelectAllComponentsAction)\r\n return components.filter(x => x.parent === action.payload.parentIndex).map(x => x.index);\r\n else if (action instanceof IUnselectComponentAction)\r\n return state.filter(comp => comp !== action.payload.componentIndex);\r\n else if (action instanceof IUnselectAllAction)\r\n return EMPTY_ARRAY;\r\n else if (action instanceof IDeleteComponentsAction)\r\n return EMPTY_ARRAY;\r\n\r\n return state;\r\n};\r\n\r\nconst selectedLinksIndexes: Reducer<readonly number[]> = (state = INITIAL_STATE.selectedLinksIndexes, action) => {\r\n if (action instanceof ILoadStateAction) {\r\n if (action.payload.selectedLinkIndex !== undefined)\r\n return [action.payload.selectedLinkIndex];\r\n return EMPTY_ARRAY;\r\n } else if (action instanceof ISelectComponentAction)\r\n return action.payload.reselect ? EMPTY_ARRAY : state;\r\n else if (action instanceof ISelectLinkAction) {\r\n if (action.payload.reselect)\r\n return [action.payload.link.index];\r\n else if (state.every(linkId => linkId !== action.payload.link.index))\r\n return state.concat([action.payload.link.index]);\r\n\r\n return state;\r\n } else if (action instanceof IUnselectLinkAction)\r\n return state.filter(link => link !== action.payload.linkIndex);\r\n else if (action instanceof IUnselectAllAction)\r\n return EMPTY_ARRAY;\r\n\r\n return state;\r\n};\r\n\r\nconst selectedPoint: Reducer<SelectablePoint | null> = (state = INITIAL_STATE.selectedPoint, action) => {\r\n if (action instanceof ILoadStateAction)\r\n return null;\r\n else if (action instanceof ISelectPointAction)\r\n return action.payload.selectedPoint;\r\n else if (action instanceof IUnselectPointAction)\r\n return null;\r\n else if (action instanceof IUnselectAllAction)\r\n return null;\r\n\r\n return state;\r\n};\r\n\r\nconst scaleIndex: Reducer<number> = (state = INITIAL_STATE.scaleIndex, action) => {\r\n if (action instanceof IChangeScaleIndexAction) {\r\n const newScaleIndex = Math.round(action.payload.newScaleIndex * 10) / 10;\r\n\r\n if (newScaleIndex > CONST_MAX_SCALE_INDEX || newScaleIndex < CONST_MIN_SCALE_INDEX)\r\n return state;\r\n\r\n return newScaleIndex;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst requestedScrollPosition: Reducer<ScrollPosition> = (state = INITIAL_STATE.requestedScrollPosition, action) => {\r\n if (action instanceof IRequestPaintingScrollPositionAction) {\r\n return action.payload.requestedScrollPosition;\r\n }\r\n\r\n return state;\r\n};\r\n\r\n/** Počáteční stav picassa. */\r\nconst INITIAL_STATE: IPicassoState = {\r\n components: EMPTY_ARRAY,\r\n selectedComponentsIndexes: EMPTY_ARRAY,\r\n links: EMPTY_ARRAY,\r\n selectedLinksIndexes: EMPTY_ARRAY,\r\n selectedPoint: null,\r\n scaleIndex: CONST_DEFAULT_SCALE_INDEX,\r\n requestedScrollPosition: DEFAULT_SCROLL_POSITION,\r\n};\r\n","export {\r\n createChangeScaleIndexAction,\r\n createDeleteComponentsAction,\r\n createLoadPicassoStateAction,\r\n createRequestPaintingScrollPositionAction,\r\n createSelectAllComponentsAction,\r\n createSelectComponentAction,\r\n createSelectLinkAction,\r\n createUnselectAllAction,\r\n createUpdateComponentsAlignmentAction,\r\n createUpdateComponentsResizeOptionAction,\r\n createUpdateComponentVisibilityAction,\r\n} from \"./actions\";\r\nexport { createMoveable, createPicassoPainting } from \"./components\";\r\nexport {\r\n CONST_LEFT_MOUSE_BTN,\r\n CONST_MAX_SCALE_INDEX,\r\n CONST_MIN_SCALE_INDEX,\r\n CONST_RIGHT_MOUSE_BTN,\r\n CONST_ROOT_COMPONENT_INDEX,\r\n CONST_SCALE_STEP,\r\n LOAD_PICASSO_STATE,\r\n PICASSO_PAINTING_BOX_CSS_CLASS,\r\n PICASSO_PAINTING_CSS_CLASS,\r\n PICASSO_PAINTING_WRAPPER_CSS_CLASS,\r\n} from \"./constants\";\r\nexport { AlignType, EntityType, ResizeOptions } from \"./enums\";\r\nexport { IComponent, IEntity, ILink, IPoint } from \"./interfaces\";\r\nexport { reducer } from \"./reducer\";\r\nexport {\r\n createGetSelectedComponents,\r\n createGetSelectedLinks,\r\n getComponent,\r\n getComponentById,\r\n getComponents,\r\n getLink,\r\n getLinks,\r\n getRequestedScrollPosition,\r\n getScaleIndex,\r\n getSelectedComponentsIndexes,\r\n getSelectedLinksIndexes,\r\n getSelectedPoint,\r\n isComponentSelected,\r\n isComponentVisible,\r\n} from \"./selectors\";\r\nexport {\r\n ILoadStateAction,\r\n IPicassoAction,\r\n IPicassoState,\r\n ISelectAllComponentsAction,\r\n LinkPassableProps,\r\n MoveablePassableProps,\r\n PicassoEditorProps,\r\n ScrollPosition,\r\n WrapMapStateToProps,\r\n} from \"./types\";\r\nexport { createWrapPicassoMapStateToProps, getCurrentPaintingScrollPosition } from \"./utils\";\r\n","import { createCreateActionType, createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\nexport const NAME = \"workflowEditor\";\r\n\r\n/**\r\n * Pomocná funkce pro vytvoření typu akce\r\n * @param actionType Typ akce\r\n */\r\nconst createActionType = createCreateActionType(NAME);\r\n\r\n/** Pomocná funkce pro vytvoření fetching key pro načtení lokalizací */\r\nconst createFetchingKey = createCreateFetchingKey(NAME);\r\n\r\n/**\r\n * Klíč pro indikaci načítání lokalizací pro WFEditor\r\n */\r\nexport const FETCHING_KEY_WFEDITOR = createFetchingKey(\"WFEDITOR\");\r\n\r\n/**\r\n * Konstanta seznamu atributů pro čtení ze třídy WFStav (slouží pro)\r\n */\r\nexport const WFSTAV_ATTRIBUTES = [\"Stav_dokladu\"];\r\n\r\n/**\r\n * Konstanty názvů akcí\r\n */\r\nexport const INIT_PICASSO_HOST = createActionType(\"INIT_PICASSO_HOST\");\r\nexport const CLEAR_PICASSO_HOST = createActionType(\"CLEAR_PICASSO_HOST\");\r\nexport const ENABLE_STATUS_VIEW = createActionType(\"ENABLE_STATUS_VIEW\");\r\nexport const ENABLE_VIEWER_MODE = createActionType(\"ENABLE_VIEWER_MODE\");\r\nexport const TOGGLE_GRID = createActionType(\"TOGGLE_GRID\");\r\nexport const TOGGLE_EDIT_DIALOGS_VISIBILITY = createActionType(\"TOGGLE_EDIT_DIALOGS_VISIBILITY\");\r\nexport const SET_TOUCHED = createActionType(\"SET_TOUCHED\");\r\nexport const UPDATE_SETS = createActionType(\"UPDATE_SETS\");\r\nexport const UPDATE_ACTIVITY = createActionType(\"UPDATE_ACTIVITY\");\r\nexport const UPDATE_TRANSITION = createActionType(\"UPDATE_TRANSITION\");\r\nexport const UPDATE_ACTIVITY_PROPERTY_PANEL_STATE = createActionType(\"UPDATE_ACTIVITY_PROPERTY_PANEL_STATE\");\r\nexport const UPDATE_TRANSITION_PROPERTY_PANEL_STATE = createActionType(\"UPDATE_TRANSITION_PROPERTY_PANEL_STATE\");\r\nexport const UPDATE_GENERAL_PROPERTY_PANEL_STATE = createActionType(\"UPDATE_GENERAL_PROPERTY_PANEL_STATE\");\r\nexport const UPDATE_DEFINITION_PARTICIPANTS = createActionType(\"UPDATE_DEFINITION_PARTICIPANTS\");\r\nexport const UPDATE_WORKFLOW_VIEW = createActionType(\"UPDATE_WORKFLOW_VIEW\");\r\nexport const CREATE_TRANSITION = createActionType(\"CREATE_TRANSITION\");\r\nexport const DELETE_SELECTED_WF_ENTITIES = createActionType(\"DELETE_SELECTED_WF_ENTITIES\");\r\nexport const DELETE_SET = createActionType(\"DELETE_SET\");\r\nexport const LOAD_ACTIVITY_HEADER = createActionType(\"LOAD_ACTIVITY_HEADER\");\r\nexport const LOAD_TRANSITION_HEADER = createActionType(\"LOAD_TRANSITION_HEADER\");\r\nexport const SHOW_MESSAGE_WINDOW = createActionType(\"SHOW_MESSAGE_WINDOW\");\r\nexport const HIDE_MESSAGE_WINDOW = createActionType(\"HIDE_MESSAGE_WINDOW\");\r\nexport const DIALOG_CONFIRMED = createActionType(\"DIALOG_CONFIRMED\");\r\nexport const DIALOG_CANCELED = createActionType(\"DIALOG_CANCELED\");\r\n","export enum ActionType {\r\n CallMethod = \"CallMethod\",\r\n CallScript = \"CallScript\",\r\n IncrementValue = \"IncrementValue\",\r\n SendMail = \"SendMail\",\r\n SendSMS = \"SendSMS\",\r\n SendWFMessage = \"SendWFMessage\",\r\n SetAttribute = \"SetAttribute\",\r\n SetObjectAttribute = \"SetObjectAttribute\",\r\n SetValue = \"SetValue\",\r\n OpenForm = \"OpenForm\",\r\n}\r\n\r\nexport enum TriggerType {\r\n AttributeDataChange = \"AttributeDataChange\",\r\n Menu = \"Menu\",\r\n NewObject = \"NewObject\",\r\n WfMessage = \"WfMessage\",\r\n}\r\n\r\nexport enum ParticipantType {\r\n Role = \"Role\",\r\n User = \"User\",\r\n System = \"System\",\r\n DefinitionParticipant = \"DefinitionParticipant\",\r\n Owner = \"Owner\",\r\n}\r\n\r\nexport enum EditDialogType {\r\n Set = \"Set\",\r\n Activity = \"Activity\",\r\n Transition = \"Transition\",\r\n DefinitionParticipants = \"DefinitionParticipants\",\r\n}\r\n\r\n/** Mód, ve kterém se editor WF spouští. */\r\nexport enum WorkflowEditorMode {\r\n Editor = 0,\r\n Viewer = 1 << 0,\r\n StatusViewer = Viewer | 1 << 1,\r\n}\r\n\r\n/** Indexy tabů pro editační dialog aktivity. */\r\nexport enum ActivityEditDialogTabsIndex {\r\n Properties = 0,\r\n FromTo = 1,\r\n Actions = 2,\r\n Triggers = 3,\r\n Participants = 4,\r\n}\r\n\r\n/** Indexy tabů pro editační dialog propojení. */\r\nexport enum TransitionEditDialogTabsIndex {\r\n Properties = 0,\r\n Actions = 1,\r\n}\r\n","/** Lokalizace */\r\n\r\n/** Uložit */\r\nexport const LOC_SAVE = \"GUI-6\";\r\n/** Zavřít */\r\nexport const LOC_CLOSE = \"GUI-4447\";\r\n\r\n/** Vlastnosti */\r\nexport const LOC_PROPERTIES = \"WFL-716071\";\r\n/** Akce */\r\nexport const LOC_ACTIONS = \"WFL-716072\";\r\n/** Hráči */\r\nexport const LOC_PARTICIPANTS = \"WFL-716077\";\r\n/** Spouštěče */\r\nexport const LOC_TRIGGERS = \"WFL-716075\";\r\n/** Propojení z/do */\r\nexport const LOC_TRANSITION_FROM_TO = \"WFL-731668\";\r\n/** Příslušnost k sadám */\r\nexport const LOC_PERTINENCE_TO_SETS = \"WFL-716078\";\r\n/** ID */\r\nexport const LOC_ID = \"WFL-716130\";\r\n/** Název */\r\nexport const LOC_NAME = \"WFL-716132\";\r\n/** Pořadí */\r\nexport const LOC_ORDER = \"WFL-716133\";\r\n/** Podmínka */\r\nexport const LOC_CONDITION = \"WFL-716134\";\r\n/** Typ větvení */\r\nexport const LOC_OPERATOR = \"WFL-716136\";\r\n/** Popis */\r\nexport const LOC_DESCRIPTION = \"WFL-716135\";\r\n/** Historie WF */\r\nexport const LOC_WF_HISTORY = \"WFL-716153\";\r\n/** Dědit hráče */\r\nexport const LOC_INHERIT_PARTICIPANTS = \"WFL-716154\";\r\n/** Spravovat */\r\nexport const LOC_MANAGE = \"WFL-716613\";\r\n/** Typ větvení */\r\nexport const LOC_INPUT_TRANS_TYPE = \"WFL-716606\";\r\n/** Zavření paralelních aktivit */\r\nexport const LOC_KILL_CHILDREN = \"WFL-716607\";\r\n/** Název aktivity */\r\nexport const LOC_ACTIVITY_NAME = \"WFL-717597\";\r\n/** Zobrazit v historii WF */\r\nexport const LOC_SHOW_IN_WF_HISTORY = \"WFL-717598\";\r\n/** Dědí hráče z předešlé aktivity */\r\nexport const LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY = \"WFL-717599\";\r\n/** Základní podmínka */\r\nexport const LOC_BASIC_CONDITION = \"WFL-717606\";\r\n/** On-line vyhodnocená podmínka (pro podmínky typu ObjectExists nebo $username=,..) */\r\nexport const LOC_ONLINE_EVALUATED_CONDITION = \"WFL-717607\";\r\n/** Typ pro spojení */\r\nexport const LOC_TYPE_FOR_JOIN = \"WFL-717622\";\r\n/** Typ pro větvení */\r\nexport const LOC_TYPE_FOR_SPLIT = \"WFL-717623\";\r\n/** Menu */\r\nexport const LOC_MENU = \"WFL-717677\";\r\n/** Zpráva Workflow */\r\nexport const LOC_WORKFLOW_MESSAGE = \"WFL-717679\";\r\n/** Vznik dokladu */\r\nexport const LOC_CREATION_OF_DOCUMENT = \"WFL-717681\";\r\n/** Změna hodnoty atributu */\r\nexport const LOC_ATTRIBUTE_VALUE_CHANGE = \"WFL-717682\";\r\n/** Změna atributu */\r\nexport const LOC_ATTRIBUTE_CHANGE = \"WFL-717696\";\r\n/** Změna vazebního atributu */\r\nexport const LOC_CHANGE_OF_BINDING_ATTRIBUTE = \"WFL-717697\";\r\n/** Inkrementace hodnoty */\r\nexport const LOC_INCREMENTING_VALUE = \"WFL-717698\";\r\n/** Nastavení hodnoty */\r\nexport const LOC_SETTING_VALUE = \"WFL-717699\";\r\n/** Provedení metody */\r\nexport const LOC_EXECUTING_METHOD = \"WFL-717701\";\r\n/** Odeslání WF zprávy */\r\nexport const LOC_SENDING_OF_WF_MESSAGE = \"WFL-717702\";\r\n/** E-mail */\r\nexport const LOC_EMAIL = \"WFL-717704\";\r\n/** SMS */\r\nexport const LOC_SMS = \"WFL-717705\";\r\n/** Spuštění skriptu */\r\nexport const LOC_START_OF_SCRIPT = \"WFL-717706\";\r\n/** Otevření formuláře */\r\nexport const LOC_FORM_OPENING = \"WFL-717707\";\r\n/** Uživatel */\r\nexport const LOC_USER = \"WFL-717801\";\r\n/** Vlastník */\r\nexport const LOC_OWNER = \"WFL-717802\";\r\n/** Systém */\r\nexport const LOC_SYSTEM = \"WFL-717804\";\r\n/** Role */\r\nexport const LOC_ROLE = \"WFL-717803\";\r\n/** Definiční hráč */\r\nexport const LOC_DEFINITION_PARTICIPANT = \"WFL-717805\";\r\n/** Přiblížit */\r\nexport const LOC_ZOOM_IN = \"WFL-717840\";\r\n/** Oddálit */\r\nexport const LOC_ZOOM_OUT = \"WFL-717841\";\r\n/** Název propojení */\r\nexport const LOC_TRANSITION_NAME = \"WFL-717926\";\r\n/** Spoušťěná funkce */\r\nexport const LOC_CALLED_FUNCTION = \"WFL-718278\";\r\n/** Statická */\r\nexport const LOC_STATIC = \"WFL-718279\";\r\n/** Textový parametr */\r\nexport const LOC_TEXT_PARAMETER = \"WFL-718280\";\r\n/** Použít objekt parametrického formuláře */\r\nexport const LOC_USE_PARAMETRIC_FORM_OBJECT = \"WFL-718281\";\r\n/** Použít aktuální objekt */\r\nexport const LOC_USE_CURRENT_OBJECT = \"WFL-718284\";\r\n/** Komentář */\r\nexport const LOC_COMMENT = \"WFL-718285\";\r\n/** Nová hodnota */\r\nexport const LOC_NEW_VALUE = \"WFL-718292\";\r\n/** Měněný atribut */\r\nexport const LOC_CHANGED_ATTRIBUTE = \"WFL-718299\";\r\n/** Atribut hodnoty */\r\nexport const LOC_VALUE_ATTRIBUTE = \"WFL-718300\";\r\n/** Nadřízená třída */\r\nexport const LOC_SUPERIOR_CLASS = \"WFL-718301\";\r\n/** Nový WF Stav */\r\nexport const LOC_NEW_WF_STATE = \"WFL-718302\";\r\n/** Hodnota */\r\nexport const LOC_VALUE = \"WFL-718303\";\r\n/** Krok změny */\r\nexport const LOC_STEP_CHANGE = \"WFL-718305\";\r\n/** Typ inkrementace */\r\nexport const LOC_INCREMENT_TYPE = \"WFL-718307\";\r\n/** Měněný údaj */\r\nexport const LOC_CHANGED_DATA = \"WFL-718310\";\r\n/** Odesílaná zpráva WfMsg */\r\nexport const LOC_OUTGOING_MESSAGE_WF = \"WFL-718311\";\r\n/** Podmínka pro WfMsg */\r\nexport const LOC_CONDITION_FOR_WF_MESSAGE = \"WFL-718312\";\r\n/** Třída objektů */\r\nexport const LOC_CLASS_OBJECTS = \"WFL-718313\";\r\n/** Podmínka pro objekty */\r\nexport const LOC_CONDITION_FOR_OBJECTS = \"WFL-718314\";\r\n/** Parametry podmínky */\r\nexport const LOC_CONDITION_PARAMETERS = \"WFL-718315\";\r\n/** Zpracovat pro uložení objektu */\r\nexport const LOC_PROCESS_TO_SAVE_OBJECT = \"WFL-718316\";\r\n/** Skript */\r\nexport const LOC_SCRIPT = \"WFL-718317\";\r\n/** Text */\r\nexport const LOC_TEXT = \"WFL-718394\";\r\n/** Typ adresy */\r\nexport const LOC_ADDRESS_TYPE = \"WFL-718397\";\r\n/** Adresát */\r\nexport const LOC_ADDRESSEE = \"WFL-718398\";\r\n/** Předmět zprávy */\r\nexport const LOC_MESSAGE_SUBJECT = \"WFL-718401\";\r\n/** Formát zprávy */\r\nexport const LOC_MESSAGE_FORMAT = \"WFL-718402\";\r\n/** Sumární email */\r\nexport const LOC_SUMMARY_EMAIL = \"WFL-718406\";\r\n/** Odložené odeslání */\r\nexport const LOC_DELAYED_SENDING = \"WFL-718407\";\r\n/** Šablona sestavy */\r\nexport const LOC_REPORT_TEMPLATE = \"WFL-718419\";\r\n/** Třída dokumentů */\r\nexport const LOC_DOCUMENT_CLASS = \"WFL-718420\";\r\n/** Atribut */\r\nexport const LOC_ATTRIBUTE = \"WFL-718421\";\r\n/** Podmínka výběru dokumentů */\r\nexport const LOC_CONDTION_SELECTION_DOCUMENTS = \"WFL-718422\";\r\n/** Typ akce */\r\nexport const LOC_ACTION_TYPE = \"WFL-718454\";\r\n/** Atribut události */\r\nexport const LOC_EVENT_ATTRIBUTE = \"WFL-718624\";\r\n/** Očekáváná hodnota atributu */\r\nexport const LOC_EXPECTED_ATTRIBUTE_VALUE = \"WFL-718625\";\r\n/** Název zprávy WFMsg */\r\nexport const LOC_WFMSG_MESSAGE_NAME = \"WFL-718630\";\r\n/** Zavířá aktivitu */\r\nexport const LOC_CLOSES_ACTIVITY = \"WFL-718631\";\r\n/** Typ spouštěče */\r\nexport const LOC_TRIGGER_TYPE = \"WFL-718632\";\r\n/** Ikona */\r\nexport const LOC_ICON = \"WFL-811544\";\r\n/** Zobrazení */\r\nexport const LOC_DISPLAY = \"WFL-812418\";\r\n/** Ostatní */\r\nexport const LOC_OTHER = \"WFL-812419\";\r\n/** Přidat sadu */\r\nexport const LOC_ADD_SET = \"WFL-719063\";\r\n/** Průběžná aktivita */\r\nexport const LOC_ONGOING_ACTIVITY = \"WFL-719104\";\r\n/** Poznámka */\r\nexport const LOC_NOTE = \"WFL-719105\";\r\n/** Vybírat z hráčů */\r\nexport const LOC_CHOOSE_FROM_PARTICIPANTS = \"WFL-719178\";\r\n/** Provést validaci odloženě povinných polí */\r\nexport const LOC_VALIDATE_DEFERRED_REQUIRED_FIELDS = \"WFL-719179\";\r\n/** Vhodné pro hromadné spuštění */\r\nexport const LOC_SUITABLE_FOR_MASS_LAUNCH = \"WFL-719180\";\r\n/** Provést validaci doporučených polí */\r\nexport const LOC_VALIDATE_THE_RECOMMENDED_FIELDS = \"WFL-719181\";\r\n/** Nadřízená položka menu (uzel) */\r\nexport const LOC_PARENT_MENU_ITEM = \"WFL-719182\";\r\n/** Vybírat konkrétní uživatele */\r\nexport const LOC_CHOOSE_FROM_USERS_DEFAULT = \"WFL-779990\";\r\n/** Parametrický formulář */\r\nexport const LOC_PARAMETRIC_FORM = \"WFL-719183\";\r\n/** Vazba na objekt */\r\nexport const LOC_OBJECT_BINDING = \"WFL-719184\";\r\n/** Nastavení hodnot pro parametrický formulář */\r\nexport const LOC_SETTING_A_VALUE_FOR_THE_PARAMETRIC_FORM = \"WFL-719185\";\r\n/** Ukázka: Nazev_Hodnoty1=hodnota1;Nazev_Hodnoty2=hodnota2;... */\r\nexport const LOC_EXAMPLE = \"WFL-719186\";\r\n/** Editovat definiční hráče */\r\nexport const LOC_EDIT_DEFINITION_PARTICIPANTS = \"WFL-720769\";\r\n/** Aktualizovat */\r\nexport const LOC_REFRESH = \"WFL-720773\";\r\n/** Není potřeba žádných parametrů */\r\nexport const LOC_NO_PARAMETERS_NEEDED = \"WFL-720847\";\r\n/** Přidat */\r\nexport const LOC_ADD = \"WFL-721870\";\r\n/** Zrušit */\r\nexport const LOC_CANCEL = \"WFL-721871\";\r\n/** Nejsou dostupné žádné existující aktivity... */\r\nexport const LOC_NO_EXISTING_ACTIVITIES_MESSAGE = \"WFL-722585\";\r\n/** Duplikovat */\r\nexport const LOC_DUPLICATE = \"WFL-737115\";\r\n/** Nejsou dostupné žádné sady... */\r\nexport const LOC_NO_SETS_MESSAGE = \"WFL-737075\";\r\n/** Vyberte aktivity, které se přidají do sady */\r\nexport const LOC_CHOOSE_ACTIVITIES_TO_ADD = \"WFL-737128\";\r\n/** Vyberte sadu, do které se má duplikovat */\r\nexport const LOC_CHOOSE_SET_TO_DUPLICATE_TO = \"WFL-737123\";\r\n/** Žádná akce zatím nebyla vytvořena... */\r\nexport const LOC_NO_ACTION_CREATED = \"WFL-722681\";\r\n/** Žádný spouštěč zatím nebyl vytvořen... */\r\nexport const LOC_NO_TRIGGER_CREATED = \"WFL-722746\";\r\n/** Třída */\r\nexport const LOC_CLASS = \"WFL-722993\";\r\n/** Název atributu */\r\nexport const LOC_ATTRIBUTE_NAME = \"WFL-722994\";\r\n/** Podmínka pro data */\r\nexport const LOC_DATA_CONDITION = \"WFL-722995\";\r\n/** Žádný definiční hráč zatím nebyl vytvořen... */\r\nexport const LOC_NO_DEFINITION_PARTICIPANT_CREATED = \"WFL-723464\";\r\n/** Typ formuláře */\r\nexport const LOC_FORM_TYPE = \"WFL-723841\";\r\n/** Formulář */\r\nexport const LOC_FORM = \"WFL-723842\";\r\n/** Podmínka formuláře */\r\nexport const LOC_FORM_CONDITION = \"WFL-723843\";\r\n/** Název sestavy */\r\nexport const LOC_REPORT_NAME = \"WFL-723877\";\r\n/** Proměnné */\r\nexport const LOC_VARIABLES = \"WFL-725240\";\r\n/** Sestava */\r\nexport const LOC_REPORT = \"WFL-726585\";\r\n/** Parametrický formulář sestavy */\r\nexport const LOC_PRINT_FORM = \"WFL-726588\";\r\n/** Parametrický formulář funkce */\r\nexport const LOC_ACTION_FORM = \"WFL-726589\";\r\n/** Ano */\r\nexport const LOC_YES = \"WFL-725468\";\r\n/** Ne */\r\nexport const LOC_NO = \"WFL-725469\";\r\n/** Opravdu chcete smazat vybranou akci? */\r\nexport const LOC_DELETE_SELECTED_ACTION = \"WFL-725725\";\r\n/** Opravdu chcete smazat vybraný spouštěč? */\r\nexport const LOC_DELETE_SELECTED_TRIGGER = \"WFL-725726\";\r\n/** Opravdu chcete smazat vybraného hráče? */\r\nexport const LOC_DELETE_SELECTED_PARTICIPANT = \"WFL-725727\";\r\n/** Opravdu chcete smazat vybrané prvky? */\r\nexport const LOC_DELETE_SELECTED_ELEMENTS = \"WFL-731542\";\r\n/** Opravdu chcete přenačíst instanci workflow? Přijdete o všechny neuložené změny. */\r\nexport const LOC_RELOAD_WORKFLOW_DIALOG = \"WFL-725734\";\r\n/** Opravdu chcete smazat sadu? */\r\nexport const LOC_DELETE_SET = \"WFL-725739\";\r\n/** Smazat */\r\nexport const LOC_DELETE = \"WFL-726642\";\r\n/** OK */\r\nexport const LOC_OK = \"WFL-727061\";\r\n/** Obnovit */\r\nexport const LOC_RESTORE = \"WFL-727084\";\r\n/** Prozkoumat */\r\nexport const LOC_EXPLORE = \"WFL-728036\";\r\n/** Legenda */\r\nexport const LOC_LEGEND = \"WFL-728264\";\r\n/** On-line vyhodnocená podmínka */\r\nexport const LOC_ONLINE_EVAL_CONDITION = \"WFL-728364\";\r\n/** Značí, jestli se aktivita objevuje i v jiných sadách. */\r\nexport const LOC_LEGEND_PERTIENCE_DESCRIPTION = \"WFL-728366\";\r\n/** Volba pro zajištění jediné cesty pro pokračování WF (více v PA řešení WF). */\r\nexport const LOC_LEGEND_KILL_CHILDREN_DESCRIPTION = \"WFL-728367\";\r\n/** Needitačně. Pokud není definován spouštěč, pak je to automaticky průběžná aktivita. */\r\nexport const LOC_LEGEND_ONGOING_DESCRIPTION = \"WFL-728377\";\r\n/** Přebírání aktivních hráčů z předcházejících aktivit (použití v adresném přidělení, zapamatování hráčů apod., více v PA řešení WF). */\r\nexport const LOC_LEGEND_INHERIT_PARTICIPANTS_DESCRIPTION = \"WFL-728378\";\r\n/** Možnost volby XOR nebo AND (více v PA řešení WF). */\r\nexport const LOC_LEGEND_TYPE_FOR_JOIN_DESCRIPTION = \"WFL-728381\";\r\n/** Indikuje, zda aktivita obsahuje on-line vyhodnocenou podmínku. */\r\nexport const LOC_LEGEND_ONLINE_EVAL_CONDITION_DESCRIPTION = \"WFL-728387\";\r\n/** Indikuje, zda propojení obsahuje základní podmínku. */\r\nexport const LOC_LEGEND_BASIC_CONDITION_DESCRIPTION = \"WFL-728394\";\r\n/** Aktivní hráči */\r\nexport const LOC_ACTIVE_PARTICIPANTS = \"WFL-729344\";\r\n/** Obsahuje akce */\r\nexport const LOC_CONTAINS_ACTIONS = \"WFL-729371\";\r\n/** Indikuje, zda propojení obsahuje akce. */\r\nexport const LOC_LEGEND_CONTAINS_ACTIONS_DESCRIPTION = \"WFL-729368\";\r\n/** Indikuje, zda aktivita obsahuje základní podmínku. */\r\nexport const LOC_LEGEND_CONTAINS_BASIC_CONDITION_DESCRIPTION = \"WFL-729372\";\r\n/** Nový hráč */\r\nexport const LOC_NEW_PARTICIPANT = \"WFL-729612\";\r\n/** Text v menu */\r\nexport const LOC_MENU_TEXT = \"WFL-730678\";\r\n/** Potvrzovací hláška */\r\nexport const LOC_CONFIRMATION_MESSAGE = \"WFL-730679\";\r\n/** Jazyk */\r\nexport const LOC_LANGUAGE = \"WFL-730680\";\r\n/** Zahodit */\r\nexport const LOC_DISCARD = \"WFL-730602\";\r\n/** Načíst (přenačíst) */\r\nexport const LOC_RELOAD = \"WFL-730800\";\r\n/** Vede do aktivity */\r\nexport const LOC_LEADS_TO_ACTIVITY = \"WFL-731751\";\r\n/** Vede z aktivity */\r\nexport const LOC_LEADS_FROM_ACTIVITY = \"WFL-731752\";\r\n/** Propojení vedoucí do aktivity */\r\nexport const LOC_TRANSITIONS_LEADING_TO_ACTIVITY = \"WFL-731812\";\r\n/** Propojení vedoucí z aktivity */\r\nexport const LOC_TRANSITIONS_LEADING_FROM_ACTIVITY = \"WFL-731813\";\r\n/** Neexistuje žádné propojení vedoucí do aktivity... */\r\nexport const LOC_TRANSITION_TO_ACTIVITY_NOT_EXISTS = \"WFL-731814\";\r\n/** Neexistuje žádné propojení vedoucí z aktivity... */\r\nexport const LOC_TRANSITION_FROM_ACTIVITY_NOT_EXISTS = \"WFL-731815\";\r\n/** Kód (vlastnost spouštěče menu) */\r\nexport const LOC_CODE_NAME = \"WFL-731889\";\r\n/** Nelze smazat zobrazenou sadu! */\r\nexport const LOC_CANNOT_DELETE_DISPLAYED_SET = \"WFL-736158\";\r\n/** Opravdu chcete smazat zvolenou sadu? */\r\nexport const LOC_REALLY_DELETE_SET = \"WFL-736165\";\r\n/** Nová sada */\r\nexport const LOC_NEW_SET = \"WFL-736651\";\r\n/** Vyhledat aktivitu... */\r\nexport const LOC_SEARCH_ACTIVITY = \"WFL-736986\";\r\n/** Propojit */\r\nexport const LOC_CONNECT = \"WFL-738501\";\r\n/** Aktivita '{0}': Povinný atribut '{1}' nebyl vyplněn! Nelze vytvořit akci '{2}'. */\r\nexport const LOC_ACTION_VALIDATION_ERROR = \"WFL-737173\";\r\n/** Aktivita '{0}': Povinný atribut '{1}' nebyl vyplněn! Nelze vytvořit spouštěč '{2}'. */\r\nexport const LOC_TRIGGER_VALIDATION_ERROR = \"WFL-737174\";\r\n/** Vyhledat... */\r\nexport const LOC_SEARCH = \"WFL-740282\";\r\n/** Startovací */\r\nexport const LOC_STARTING = \"WFL-740402\";\r\n/** Existující do sady */\r\nexport const LOC_EXISTING_INTO_THE_SET = \"WFL-740403\";\r\n/** Běžná */\r\nexport const LOC_COMMON = \"WFL-740404\";\r\n/** Konečná */\r\nexport const LOC_FINAL = \"WFL-740405\";\r\n/** Upravit */\r\nexport const LOC_EDIT = \"WFL-738500\";\r\n/** Tisk */\r\nexport const LOC_PRINT = \"WFL-740412\";\r\n/** SADA */\r\nexport const LOC_SET = \"WFL-740413\";\r\n/** Nastavení sady */\r\nexport const LOC_SET_SETTINGS = \"WFL-740414\";\r\n/** Aktualizuje obsah */\r\nexport const LOC_UPDATES_THE_CONTENT = \"WFL-740417\";\r\n/** Přepnout mřížku */\r\nexport const LOC_TOGGLE_GRID = \"WFL-740422\";\r\n/** Resetovat */\r\nexport const LOC_RESET = \"WFL-740423\";\r\n/** Odebrat */\r\nexport const LOC_REMOVE = \"WFL-740424\";\r\n/** Kopírovat */\r\nexport const LOC_COPY = \"WFL-740425\";\r\n/** Posunout nahoru */\r\nexport const LOC_MOVE_UP = \"WFL-740426\";\r\n/** Posunout dolů */\r\nexport const LOC_MOVE_DOWN = \"WFL-740427\";\r\n/** Zadána přímo */\r\nexport const LOC_ENTERED_DIRECTLY = \"WFL-740529\";\r\n/** Hodnota atributu */\r\nexport const LOC_ATTRIBUTE_VALUE = \"WFL-740537\";\r\n/** Aktuální uživatel */\r\nexport const LOC_CURRENT_USER = \"WFL-740540\";\r\n/** Aktuální hráči */\r\nexport const LOC_CURRENT_PARTICIPANTS = \"WFL-740541\";\r\n/** Následující hráči */\r\nexport const LOC_FOLLOWING_PARTICIPANTS = \"WFL-740542\";\r\n/** Okruh kompetence */\r\nexport const LOC_AREA_OF_COMPETENCE = \"WFL-740543\";\r\n/** Z jiných záznamů */\r\nexport const LOC_FROM_OTHER_RECORDS = \"WFL-740544\";\r\n/** Zpráva */\r\nexport const LOC_MESSAGE = \"WFL-740545\";\r\n/** Přílohy */\r\nexport const LOC_ATTACHMENTS = \"WFL-740546\";\r\n/** Číslo */\r\nexport const LOC_NUMBER = \"WFL-740810\";\r\n/** Vteřina */\r\nexport const LOC_SECOND = \"WFL-740812\";\r\n/** Minuta */\r\nexport const LOC_MINUTE = \"WFL-740817\";\r\n/** Hodina */\r\nexport const LOC_HOUR = \"WFL-740818\";\r\n/** Den */\r\nexport const LOC_DAY = \"WFL-740819\";\r\n/** Týden */\r\nexport const LOC_WEEK = \"WFL-740820\";\r\n/** Měsíc */\r\nexport const LOC_MONTH = \"WFL-740821\";\r\n/** Rok */\r\nexport const LOC_YEAR = \"WFL-740828\";\r\n/** Smazat (Delete) */\r\nexport const LOC_DELETE_KEY_DELETE = \"WFL-744133\";\r\n/** Propojit (Mezerník) */\r\nexport const LOC_CONNECT_KEY_SPACEBAR = \"WFL-744134\";\r\n/** Opravdu chcete zahodit všechny provedené změny? */\r\nexport const LOC_DISCARD_CHANGES = \"WFL-744298\";\r\n/** K použitému filtru se nepodařilo najít žádný záznam. */\r\nexport const LOC_NO_ITEMS_FOUND = \"WFL-793079\";\r\n\r\nexport const LOC_KEYS_WF_EDITOR: readonly string[] = [\r\n LOC_SAVE,\r\n LOC_CLOSE,\r\n LOC_PROPERTIES,\r\n LOC_ACTIONS,\r\n LOC_PARTICIPANTS,\r\n LOC_TRIGGERS,\r\n LOC_PERTINENCE_TO_SETS,\r\n LOC_ID,\r\n LOC_NAME,\r\n LOC_ORDER,\r\n LOC_CONDITION,\r\n LOC_OPERATOR,\r\n LOC_DESCRIPTION,\r\n LOC_WF_HISTORY,\r\n LOC_INHERIT_PARTICIPANTS,\r\n LOC_MANAGE,\r\n LOC_INPUT_TRANS_TYPE,\r\n LOC_KILL_CHILDREN,\r\n LOC_ACTIVITY_NAME,\r\n LOC_SHOW_IN_WF_HISTORY,\r\n LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY,\r\n LOC_BASIC_CONDITION,\r\n LOC_ONLINE_EVALUATED_CONDITION,\r\n LOC_TYPE_FOR_JOIN,\r\n LOC_TYPE_FOR_SPLIT,\r\n LOC_MENU,\r\n LOC_WORKFLOW_MESSAGE,\r\n LOC_CREATION_OF_DOCUMENT,\r\n LOC_ATTRIBUTE_VALUE_CHANGE,\r\n LOC_ATTRIBUTE_CHANGE,\r\n LOC_CHANGE_OF_BINDING_ATTRIBUTE,\r\n LOC_INCREMENTING_VALUE,\r\n LOC_SETTING_VALUE,\r\n LOC_EXECUTING_METHOD,\r\n LOC_SENDING_OF_WF_MESSAGE,\r\n LOC_EMAIL,\r\n LOC_SMS,\r\n LOC_START_OF_SCRIPT,\r\n LOC_FORM_OPENING,\r\n LOC_USER,\r\n LOC_OWNER,\r\n LOC_SYSTEM,\r\n LOC_ROLE,\r\n LOC_DEFINITION_PARTICIPANT,\r\n LOC_ZOOM_IN,\r\n LOC_ZOOM_OUT,\r\n LOC_TRANSITION_NAME,\r\n LOC_CALLED_FUNCTION,\r\n LOC_STATIC,\r\n LOC_TEXT_PARAMETER,\r\n LOC_USE_PARAMETRIC_FORM_OBJECT,\r\n LOC_USE_CURRENT_OBJECT,\r\n LOC_COMMENT,\r\n LOC_NEW_VALUE,\r\n LOC_CHANGED_ATTRIBUTE,\r\n LOC_VALUE_ATTRIBUTE,\r\n LOC_SUPERIOR_CLASS,\r\n LOC_NEW_WF_STATE,\r\n LOC_VALUE,\r\n LOC_STEP_CHANGE,\r\n LOC_INCREMENT_TYPE,\r\n LOC_CHANGED_DATA,\r\n LOC_OUTGOING_MESSAGE_WF,\r\n LOC_CONDITION_FOR_WF_MESSAGE,\r\n LOC_CLASS_OBJECTS,\r\n LOC_CONDITION_FOR_OBJECTS,\r\n LOC_CONDITION_PARAMETERS,\r\n LOC_PROCESS_TO_SAVE_OBJECT,\r\n LOC_SCRIPT,\r\n LOC_TEXT,\r\n LOC_ADDRESS_TYPE,\r\n LOC_ADDRESSEE,\r\n LOC_MESSAGE_SUBJECT,\r\n LOC_MESSAGE_FORMAT,\r\n LOC_SUMMARY_EMAIL,\r\n LOC_DELAYED_SENDING,\r\n LOC_REPORT_TEMPLATE,\r\n LOC_DOCUMENT_CLASS,\r\n LOC_ATTRIBUTE,\r\n LOC_CONDTION_SELECTION_DOCUMENTS,\r\n LOC_ACTION_TYPE,\r\n LOC_EVENT_ATTRIBUTE,\r\n LOC_EXPECTED_ATTRIBUTE_VALUE,\r\n LOC_WFMSG_MESSAGE_NAME,\r\n LOC_CLOSES_ACTIVITY,\r\n LOC_TRIGGER_TYPE,\r\n LOC_ICON,\r\n LOC_DISPLAY,\r\n LOC_OTHER,\r\n LOC_ADD_SET,\r\n LOC_ONGOING_ACTIVITY,\r\n LOC_NOTE,\r\n LOC_CHOOSE_FROM_PARTICIPANTS,\r\n LOC_VALIDATE_DEFERRED_REQUIRED_FIELDS,\r\n LOC_SUITABLE_FOR_MASS_LAUNCH,\r\n LOC_VALIDATE_THE_RECOMMENDED_FIELDS,\r\n LOC_PARENT_MENU_ITEM,\r\n LOC_PARAMETRIC_FORM,\r\n LOC_OBJECT_BINDING,\r\n LOC_SETTING_A_VALUE_FOR_THE_PARAMETRIC_FORM,\r\n LOC_EXAMPLE,\r\n LOC_EDIT_DEFINITION_PARTICIPANTS,\r\n LOC_REFRESH,\r\n LOC_NO_PARAMETERS_NEEDED,\r\n LOC_ADD,\r\n LOC_CANCEL,\r\n LOC_NO_EXISTING_ACTIVITIES_MESSAGE,\r\n LOC_NO_ACTION_CREATED,\r\n LOC_NO_TRIGGER_CREATED,\r\n LOC_CLASS,\r\n LOC_ATTRIBUTE_NAME,\r\n LOC_DATA_CONDITION,\r\n LOC_NO_DEFINITION_PARTICIPANT_CREATED,\r\n LOC_FORM_TYPE,\r\n LOC_FORM,\r\n LOC_FORM_CONDITION,\r\n LOC_REPORT_NAME,\r\n LOC_VARIABLES,\r\n LOC_REPORT,\r\n LOC_PRINT_FORM,\r\n LOC_ACTION_FORM,\r\n LOC_YES,\r\n LOC_NO,\r\n LOC_DELETE_SELECTED_ACTION,\r\n LOC_DELETE_SELECTED_TRIGGER,\r\n LOC_DELETE_SELECTED_PARTICIPANT,\r\n LOC_RELOAD_WORKFLOW_DIALOG,\r\n LOC_DELETE_SET,\r\n LOC_DELETE,\r\n LOC_OK,\r\n LOC_RESTORE,\r\n LOC_EXPLORE,\r\n LOC_LEGEND,\r\n LOC_ONLINE_EVAL_CONDITION,\r\n LOC_LEGEND_PERTIENCE_DESCRIPTION,\r\n LOC_LEGEND_KILL_CHILDREN_DESCRIPTION,\r\n LOC_LEGEND_ONGOING_DESCRIPTION,\r\n LOC_LEGEND_INHERIT_PARTICIPANTS_DESCRIPTION,\r\n LOC_LEGEND_TYPE_FOR_JOIN_DESCRIPTION,\r\n LOC_LEGEND_ONLINE_EVAL_CONDITION_DESCRIPTION,\r\n LOC_LEGEND_BASIC_CONDITION_DESCRIPTION,\r\n LOC_ACTIVE_PARTICIPANTS,\r\n LOC_CONTAINS_ACTIONS,\r\n LOC_LEGEND_CONTAINS_ACTIONS_DESCRIPTION,\r\n LOC_LEGEND_CONTAINS_BASIC_CONDITION_DESCRIPTION,\r\n LOC_NEW_PARTICIPANT,\r\n LOC_MENU,\r\n LOC_CONFIRMATION_MESSAGE,\r\n LOC_LANGUAGE,\r\n LOC_DISCARD,\r\n LOC_RELOAD,\r\n LOC_TRANSITION_FROM_TO,\r\n LOC_LEADS_FROM_ACTIVITY,\r\n LOC_LEADS_TO_ACTIVITY,\r\n LOC_TRANSITIONS_LEADING_TO_ACTIVITY,\r\n LOC_TRANSITIONS_LEADING_FROM_ACTIVITY,\r\n LOC_TRANSITION_TO_ACTIVITY_NOT_EXISTS,\r\n LOC_TRANSITION_FROM_ACTIVITY_NOT_EXISTS,\r\n LOC_DELETE_SELECTED_ELEMENTS,\r\n LOC_CODE_NAME,\r\n LOC_CANNOT_DELETE_DISPLAYED_SET,\r\n LOC_REALLY_DELETE_SET,\r\n LOC_NEW_SET,\r\n LOC_NO_SETS_MESSAGE,\r\n LOC_DUPLICATE,\r\n LOC_CHOOSE_SET_TO_DUPLICATE_TO,\r\n LOC_CHOOSE_ACTIVITIES_TO_ADD,\r\n LOC_SEARCH_ACTIVITY,\r\n LOC_EDIT,\r\n LOC_CONNECT,\r\n LOC_ACTION_VALIDATION_ERROR,\r\n LOC_TRIGGER_VALIDATION_ERROR,\r\n LOC_SEARCH,\r\n LOC_STARTING,\r\n LOC_EXISTING_INTO_THE_SET,\r\n LOC_COMMON,\r\n LOC_FINAL,\r\n LOC_SET,\r\n LOC_SET_SETTINGS,\r\n LOC_PRINT,\r\n LOC_UPDATES_THE_CONTENT,\r\n LOC_TOGGLE_GRID,\r\n LOC_RESET,\r\n LOC_MENU_TEXT,\r\n LOC_REMOVE,\r\n LOC_COPY,\r\n LOC_MOVE_UP,\r\n LOC_MOVE_DOWN,\r\n LOC_ENTERED_DIRECTLY,\r\n LOC_ATTRIBUTE_VALUE,\r\n LOC_CURRENT_USER,\r\n LOC_CURRENT_PARTICIPANTS,\r\n LOC_FOLLOWING_PARTICIPANTS,\r\n LOC_AREA_OF_COMPETENCE,\r\n LOC_FROM_OTHER_RECORDS,\r\n LOC_MESSAGE,\r\n LOC_ATTACHMENTS,\r\n LOC_NUMBER,\r\n LOC_SECOND,\r\n LOC_MINUTE,\r\n LOC_HOUR,\r\n LOC_DAY,\r\n LOC_WEEK,\r\n LOC_MONTH,\r\n LOC_YEAR,\r\n LOC_DELETE_KEY_DELETE,\r\n LOC_CONNECT_KEY_SPACEBAR,\r\n LOC_DISCARD_CHANGES,\r\n LOC_CHOOSE_FROM_USERS_DEFAULT,\r\n LOC_NO_ITEMS_FOUND,\r\n];\r\n","/** Výška sady workflow */\r\nexport const WIDTH_OF_WF_SET = 6000;\r\n/** Šířka sady workflow */\r\nexport const HEIGHT_OF_WF_SET = 3300;\r\n/** Defaultní x-ová hodnota pozice aktivity na sadě */\r\nexport const DEFAULT_ACTIVITY_LEFT = 10;\r\n/** Defaultní y-ová hodnota pozice aktivity na sadě */\r\nexport const DEFAULT_ACTIVITY_TOP = 10;\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { DEFAULT_ACTIVITY_LEFT, DEFAULT_ACTIVITY_TOP, HEIGHT_OF_WF_SET, WIDTH_OF_WF_SET } from \"./constants\";\r\n\r\nconst { loadLocalizationItems } = bridge;\r\n\r\n/**\r\n * Vrací umístění nově přidané aktivity v závislosti na stavu plátna picassa.\r\n * Stará se o to, aby souřadnice aktivity byly takové, aby se aktivita přidala ve viditelné části plátna.\r\n * Tedy že nebude schovaná nebo že nebude mimo hranici sady.\r\n */\r\nexport const getActivityNewPosition = (xOffset: number, yOffset: number, scaleIndex: number) => {\r\n let newX = (DEFAULT_ACTIVITY_LEFT + xOffset) / scaleIndex;\r\n let newY = (DEFAULT_ACTIVITY_TOP + yOffset) / scaleIndex;\r\n\r\n if (newX < DEFAULT_ACTIVITY_LEFT)\r\n newX = DEFAULT_ACTIVITY_LEFT;\r\n\r\n if (newY < DEFAULT_ACTIVITY_TOP)\r\n newY = DEFAULT_ACTIVITY_TOP;\r\n\r\n if (newX > WIDTH_OF_WF_SET)\r\n newX = WIDTH_OF_WF_SET - 100;\r\n\r\n if (newY > HEIGHT_OF_WF_SET)\r\n newY = HEIGHT_OF_WF_SET - 100;\r\n\r\n return {\r\n x: Math.round(newX / 10) * 10,\r\n y: Math.round(newY / 10) * 10,\r\n };\r\n};\r\n\r\n/**\r\n * Sestavuje error zprávu na základě poskytnuté šablony, názvu třídy a názvu atributu.\r\n * @param attrNameLocKey Název nevyplněného povinného atributu.\r\n * @param instanceNameLocKey Název třídy, kde došlo k nevalidnosti.\r\n * @param templateLocKey Lokalizovaná šablona zprávy.\r\n */\r\nexport const getErrorMessage = async (attrNameLocKey: string, instanceNameLocKey: string, templateLocKey: string) => {\r\n const locItems = await loadLocalizationItems([attrNameLocKey, instanceNameLocKey, templateLocKey]);\r\n\r\n const messageTemplate = locItems.get(templateLocKey)?.primaryText ?? \"\";\r\n const attrName = locItems.get(attrNameLocKey)?.primaryText ?? \"\";\r\n const instanceName = locItems.get(instanceNameLocKey)?.primaryText ?? \"\";\r\n\r\n return stringFormat(messageTemplate, attrName, instanceName);\r\n};\r\n\r\n/** Funkce funguje identicky jako C# string.Format */\r\nexport const stringFormat = (str: string, ...args: string[]) => str.replace(/{(\\d+)}/g, (_match, index) => args[index] || \"\");\r\n","import { LOC_ACTION_VALIDATION_ERROR } from \"../../locKeys\";\r\nimport { getErrorMessage } from \"../utils\";\r\n\r\nexport abstract class Action {\r\n public readonly comment: string;\r\n public readonly condition: string;\r\n\r\n constructor(condition: string, comment: string) {\r\n this.condition = condition;\r\n this.comment = comment;\r\n }\r\n\r\n /**\r\n * Validuje akce. V případě problému vyhodí výjimku.\r\n */\r\n public abstract validate(): Promise<void>;\r\n\r\n /**\r\n * Sestavuje lokalizovanou error zprávu o nevyplněných atriutech.\r\n * @param attrNameLocKey Název nevyplněného povinného atributu.\r\n * @param actionNameLocKey Název akce.\r\n */\r\n public async getActionErrorMessage(attrNameLocKey: string, actionNameLocKey: string): Promise<string> {\r\n return getErrorMessage(attrNameLocKey, actionNameLocKey, LOC_ACTION_VALIDATION_ERROR);\r\n }\r\n}\r\n","import { AlignType, EntityType, IComponent, ResizeOptions } from \"@multiweb/picasso\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { Activity } from \"./workflowModel\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport class UiActivity implements IComponent {\r\n public readonly id: string;\r\n public readonly index: number;\r\n public readonly type: EntityType = EntityType.component;\r\n public readonly relativeLeft: number;\r\n public readonly relativeTop: number;\r\n public readonly width: number;\r\n public readonly height: number;\r\n public readonly linkIndexes: readonly number[] = [];\r\n public readonly parent: number;\r\n public readonly children: readonly number[] = [];\r\n public readonly name: string = \"activity\";\r\n public readonly minWidth: number = 50;\r\n public readonly minHeight: number = 50;\r\n public readonly activity: Activity;\r\n public readonly setId: string;\r\n public readonly isVisible: boolean = true;\r\n public readonly align: AlignType = AlignType.none;\r\n public readonly resizeOption: ResizeOptions = ResizeOptions.none;\r\n public readonly noCssHeight?: boolean | undefined;\r\n\r\n constructor(index: number, left: number, top: number, width: number, height: number, setId: string, parentIndex: number, activity: Activity) {\r\n this.id = generateUUID();\r\n this.index = index;\r\n this.relativeLeft = left;\r\n this.relativeTop = top;\r\n this.width = width;\r\n this.height = height;\r\n this.setId = setId;\r\n this.parent = parentIndex;\r\n this.activity = activity;\r\n\r\n this._changeActivityPosition(left, top, width, height);\r\n }\r\n\r\n private _changeActivityPosition(relativeLeft: number, relativeTop: number, width: number, height: number): void {\r\n const activitiesPosition = this.activity.positions.find(position => position.set.id === this.setId);\r\n\r\n if (!activitiesPosition)\r\n throw new Error(`Could not find position with set id of '${this.setId}'`);\r\n\r\n activitiesPosition.x = relativeLeft;\r\n activitiesPosition.y = relativeTop;\r\n activitiesPosition.width = width;\r\n activitiesPosition.height = height;\r\n }\r\n}\r\n","import { AlignType, EntityType, IComponent, ResizeOptions } from \"@multiweb/picasso\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { Set, Workflow } from \"./workflowModel\";\r\nimport { HEIGHT_OF_WF_SET, WIDTH_OF_WF_SET } from \"./workflowModel/constants\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport class UiSet implements IComponent {\r\n public readonly id: string;\r\n public readonly index: number;\r\n public readonly type: EntityType = EntityType.component;\r\n public readonly linkIndexes: readonly number[];\r\n public readonly parent: number | null = null;\r\n public readonly children: readonly number[];\r\n public readonly name: string = \"set\";\r\n public readonly width: number = WIDTH_OF_WF_SET;\r\n public readonly minWidth: number = 100;\r\n public readonly height: number = HEIGHT_OF_WF_SET;\r\n public readonly minHeight: number = 100;\r\n public readonly relativeTop: number = 0;\r\n public readonly relativeLeft: number = 0;\r\n public readonly set: Set;\r\n public readonly workflow: Workflow;\r\n public readonly isVisible: boolean = true;\r\n public readonly align: AlignType = AlignType.none;\r\n public readonly resizeOption: ResizeOptions = ResizeOptions.none;\r\n public readonly noCssHeight?: boolean | undefined;\r\n\r\n constructor(index: number, childrenIndexes: number[], linkIndexes: number[], set: Set, workflow: Workflow) {\r\n this.id = generateUUID();\r\n this.index = index;\r\n this.children = childrenIndexes;\r\n this.set = set;\r\n this.linkIndexes = linkIndexes;\r\n this.workflow = workflow;\r\n }\r\n}\r\n","import { EntityType, ILink, IPoint } from \"@multiweb/picasso\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { Transition } from \"./workflowModel\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport class UiTransition implements ILink {\r\n public readonly id: string;\r\n public readonly index: number;\r\n public readonly type: EntityType;\r\n public readonly name: string;\r\n public readonly ownerIndex: number;\r\n public readonly startComponentIndex: number;\r\n public readonly endComponentIndex: number;\r\n public readonly transition: Transition;\r\n public readonly points: readonly IPoint[];\r\n\r\n constructor(index: number, points: readonly IPoint[], startComponentIndex: number, endComponentIndex: number, transition: Transition) {\r\n this.id = generateUUID();\r\n this.index = index;\r\n this.type = EntityType.link;\r\n this.name = \"Transition\";\r\n this.ownerIndex = 0;\r\n this.startComponentIndex = startComponentIndex;\r\n this.endComponentIndex = endComponentIndex;\r\n this.transition = transition;\r\n this.points = points;\r\n\r\n this.transition.points = [];\r\n points.forEach(point => {\r\n this.transition.points.push({ x: point.x, y: point.y });\r\n });\r\n }\r\n}\r\n","export abstract class Participant {\r\n\r\n}\r\n","import { Participant } from \"./Participant\";\r\n\r\nexport class DefinitionParticipant extends Participant {\r\n private _name: string;\r\n private _identifier: string;\r\n\r\n public condition: string;\r\n public roleName: string;\r\n\r\n constructor(identifier: string, name: string, condition: string, roleName: string) {\r\n super();\r\n\r\n if (!name)\r\n throw new Error(\"Required property 'name' not provided. Could not create DefinitionParticipant.\");\r\n\r\n this._identifier = identifier;\r\n this._name = name;\r\n this.condition = condition;\r\n this.roleName = roleName;\r\n }\r\n\r\n public get name(): string {\r\n return this._name;\r\n }\r\n\r\n public set name(newName: string) {\r\n this._name = newName;\r\n }\r\n\r\n public get identifier(): string {\r\n return this._identifier;\r\n }\r\n}\r\n","import { Participant } from \"./Participant\";\r\n\r\nexport class Owner extends Participant {\r\n\r\n}\r\n","import { Participant } from \"./Participant\";\r\n\r\nexport class Role extends Participant {\r\n public dbID: number;\r\n public name: string;\r\n\r\n constructor(dbID: string, name: string) {\r\n super();\r\n\r\n const parsedDbId = Number(dbID);\r\n\r\n if (isNaN(parsedDbId))\r\n throw new Error(`Could not parse dbID of Role participant '${name}'!\\nUnparsed value is '${dbID}'...`);\r\n\r\n this.dbID = parsedDbId;\r\n this.name = name;\r\n }\r\n}\r\n","import { Participant } from \"./Participant\";\r\n\r\nexport class System extends Participant {\r\n\r\n}\r\n","import { Participant } from \"./Participant\";\r\n\r\nexport class User extends Participant {\r\n public dbID: number;\r\n public name: string;\r\n\r\n constructor(dbID: string, name: string) {\r\n super();\r\n\r\n const parsedDbId = Number(dbID);\r\n\r\n if (isNaN(parsedDbId))\r\n throw new Error(`Could not parse dbID of User participant '${name}'!\\nUnparsed value is '${dbID}'...`);\r\n\r\n this.dbID = parsedDbId;\r\n this.name = name;\r\n }\r\n}\r\n","export * from \"./DefinitionParticipant\";\r\nexport * from \"./Owner\";\r\nexport * from \"./Participant\";\r\nexport * from \"./Role\";\r\nexport * from \"./System\";\r\nexport * from \"./User\";\r\n","import { LOC_TRIGGER_VALIDATION_ERROR } from \"../../locKeys\";\r\nimport { getErrorMessage } from \"../utils\";\r\n\r\nexport abstract class Trigger {\r\n /**\r\n * Validuje spouštěč. V případě problému vyhodí výjimku.\r\n */\r\n public abstract validate(): Promise<void>;\r\n\r\n /**\r\n * Sestavuje lokalizovanou error zprávu o nevyplněných atriutech.\r\n * @param attrNameLocKey Název nevyplněného povinného atributu.\r\n * @param triggerNameLocKey Název spouštěče.\r\n */\r\n public async getTriggerErrorMessage(attrNameLocKey: string, triggerNameLocKey: string): Promise<string> {\r\n return getErrorMessage(attrNameLocKey, triggerNameLocKey, LOC_TRIGGER_VALIDATION_ERROR);\r\n }\r\n}\r\n","import { LOC_ATTRIBUTE_VALUE_CHANGE, LOC_EVENT_ATTRIBUTE } from \"../../locKeys\";\r\nimport { Trigger } from \"./Trigger\";\r\n\r\nexport class AttributeDataChange extends Trigger {\r\n public attrName: string;\r\n public condition: string;\r\n\r\n constructor(attrName: string, condition: string) {\r\n super();\r\n\r\n this.attrName = attrName;\r\n this.condition = condition;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.attrName)\r\n throw new Error(await this.getTriggerErrorMessage(LOC_EVENT_ATTRIBUTE, LOC_ATTRIBUTE_VALUE_CHANGE));\r\n }\r\n}\r\n","import { LOC_CONFIRMATION_MESSAGE, LOC_MENU, LOC_MENU_TEXT } from \"../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../utils\";\r\nimport { Trigger } from \"./Trigger\";\r\n\r\nexport class Menu extends Trigger {\r\n public identifier: string;\r\n public codename: string;\r\n public iconName: string;\r\n public participantsSelecting: boolean;\r\n public multiActionEnable: boolean;\r\n public validatePostReq: boolean;\r\n public validateRecommended: boolean;\r\n public chooseFromUsersDefault: boolean;\r\n public masterNode: string;\r\n public paramFormName: string;\r\n public linkAttrForSelObj: string;\r\n public setValues: string;\r\n public captions: Text[];\r\n public confirmMessages: Text[];\r\n\r\n constructor(identifier: string, codename: string, iconName: string, participantsSelecting: string, multiActionEnable: string, validatePostReq: string, validateRecommended: string, chooseFromUsersDefault: string, masterNode: string, paramFormName: string, linkAttrForSelObj: string, setValues: string, captions: Text[], confirmMessages: Text[]) {\r\n super();\r\n\r\n this.identifier = identifier;\r\n this.codename = codename;\r\n this.iconName = iconName;\r\n this.participantsSelecting = parseStringToBoolean(participantsSelecting, false);\r\n this.multiActionEnable = parseStringToBoolean(multiActionEnable, true);\r\n this.validatePostReq = parseStringToBoolean(validatePostReq, false);\r\n this.validateRecommended = parseStringToBoolean(validateRecommended, false);\r\n this.chooseFromUsersDefault = parseStringToBoolean(chooseFromUsersDefault, false);\r\n this.masterNode = masterNode;\r\n this.paramFormName = paramFormName;\r\n this.linkAttrForSelObj = linkAttrForSelObj;\r\n this.setValues = setValues;\r\n this.captions = captions;\r\n this.confirmMessages = confirmMessages;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.captions?.length || !this.captions[0].text)\r\n throw new Error(await this.getTriggerErrorMessage(LOC_MENU_TEXT, LOC_MENU));\r\n\r\n if (!this.confirmMessages?.length)\r\n throw new Error(await this.getTriggerErrorMessage(LOC_CONFIRMATION_MESSAGE, LOC_MENU));\r\n }\r\n}\r\n\r\nexport class Text {\r\n public lang: string;\r\n public text: string;\r\n\r\n constructor(lang: string, text: string) {\r\n this.lang = lang;\r\n this.text = text;\r\n }\r\n}\r\n","import { Trigger } from \"./Trigger\";\r\n\r\nexport class NewObject extends Trigger {\r\n public override async validate(): Promise<void> {\r\n // Prázdná metoda\r\n }\r\n}\r\n","import { LOC_WFMSG_MESSAGE_NAME, LOC_WORKFLOW_MESSAGE } from \"../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../utils\";\r\nimport { Trigger } from \"./Trigger\";\r\n\r\nexport class WfMessage extends Trigger {\r\n public messageName: string;\r\n public deactivating: boolean;\r\n\r\n constructor(messageName: string, deactivating: string) {\r\n super();\r\n\r\n this.messageName = messageName;\r\n this.deactivating = parseStringToBoolean(deactivating, false);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.messageName)\r\n throw new Error(await this.getTriggerErrorMessage(LOC_WFMSG_MESSAGE_NAME, LOC_WORKFLOW_MESSAGE));\r\n }\r\n}\r\n","export * from \"./AttributeDataChange\";\r\nexport * from \"./Menu\";\r\nexport * from \"./NewObject\";\r\nexport * from \"./Trigger\";\r\nexport * from \"./WfMessage\";\r\n","/** Workflow konstanty */\r\nexport const CONST_WORKFLOW_EL = \"Workflow\";\r\nexport const CONST_WORKFLOW_DEFINITION_VERSION_AT = \"DefinitionVersion\";\r\nexport const CONST_WORKFLOW_VERSION_AT = \"version\";\r\nexport const CONST_WORKFLOW_CLASS_NAME_AT = \"className\";\r\nexport const CONST_WORKFLOW_IDENTIFIER_AT = \"identifier\";\r\n\r\n/** Set konstanty */\r\nexport const CONST_SET_EL = \"Set\";\r\nexport const CONST_SET_DEFINITIONS_EL = \"SetDefinitions\";\r\nexport const CONST_SET_NAME_AT = \"name\";\r\nexport const CONST_SET_DESCRIPTION_AT = \"description\";\r\n\r\n/** Activity konstanty */\r\nexport const CONST_ACTIVITY_EL = \"Activity\";\r\nexport const CONST_ACTIVITY_ID_AT = \"id\";\r\nexport const CONST_ACTIVITY_CONDITION_AT = \"condition\";\r\nexport const CONST_ACTIVITY_RUN_CONDITION_AT = \"runCondition\";\r\nexport const CONST_ACTIVITY_NAME_AT = \"name\";\r\nexport const CONST_ACTIVITY_TYPE_AT = \"type\";\r\nexport const CONST_ACTIVITY_ORDER_AT = \"order\";\r\nexport const CONST_ACTIVITY_KILL_CHILDREN_AT = \"killChildren\";\r\nexport const CONST_ACTIVITY_SHOW_IN_WF_HISTORY_AT = \"showInWFHistory\";\r\nexport const CONST_ACTIVITY_INHERIT_PARTICIPANTS_AT = \"inheritParticipants\";\r\nexport const CONST_ACTIVITY_INPUT_TRANS_TYPE_AT = \"inputTransType\";\r\nexport const CONST_ACTIVITY_DESCRIPTION_AT = \"description\";\r\nexport const CONST_START_ACTIVITY_EL = \"StartActivity\";\r\nexport const CONST_END_ACTIVITY_EL = \"EndActivity\";\r\n\r\n/** Transition konstanty */\r\nexport const CONST_TRANSITIONS_EL = \"Transitions\";\r\nexport const CONST_TRANSITION_EL = \"Transition\";\r\nexport const CONST_TRANSITION_ID_AT = \"id\";\r\nexport const CONST_TRANSITION_NAME_AT = \"name\";\r\nexport const CONST_TRANSITION_TO_AT = \"to\";\r\nexport const CONST_TRANSITION_CONDITION_AT = \"condition\";\r\nexport const CONST_DRAW_EL = \"Draw\";\r\nexport const CONST_DRAW_SET_AT = \"set\";\r\nexport const CONST_POINT_EL = \"Point\";\r\nexport const CONST_POINT_X_AT = \"x\";\r\nexport const CONST_POINT_Y_AT = \"y\";\r\n\r\n/** Actions konstanty */\r\nexport const CONST_ACTIONS_EL = \"Actions\";\r\nexport const CONST_ACTION_COMMENT_AT = \"comment\";\r\nexport const CONST_ACTION_CONDITION_AT = \"condition\";\r\nexport const CONST_CALL_METHOD_EL = \"CallMethod\";\r\nexport const CONST_CALL_METHOD_METHOD_NAME_AT = \"methodName\";\r\nexport const CONST_CALL_METHOD_STATIC_AT = \"static\";\r\nexport const CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT = \"insertActualObject\";\r\nexport const CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT = \"insertParamFormObject\";\r\nexport const CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT = \"defaultParamValue\";\r\nexport const CONST_CALL_SCRIPT_EL = \"CallScript\";\r\nexport const CONST_CALL_SCRIPT_SCRIPT_AT = \"script\";\r\nexport const CONST_INCREMENT_DATE_TIME_EL = \"IncrementDateTime\";\r\nexport const CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_INCREMENT_DATE_TIME_VALUE_AT = \"value\";\r\nexport const CONST_INCREMENT_DATE_TIME_PRECISION_AT = \"precision\";\r\nexport const CONST_INCREMENT_NUMBER_EL = \"IncrementNumber\";\r\nexport const CONST_INCREMENT_NUMBER_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_INCREMENT_NUMBER_VALUE_AT = \"value\";\r\nexport const CONST_MESSAGE_RECIPIENT_EL = \"MessageRecipient\";\r\nexport const CONST_SEND_CALENDAR_EL = \"SendCalendar\";\r\nexport const CONST_SEND_MAIL_EL = \"SendMail\";\r\nexport const CONST_SEND_MAIL_RECIPIENT_AT = \"recipient\";\r\nexport const CONST_SEND_MAIL_SUBJECT_AT = \"subject\";\r\nexport const CONST_SEND_MAIL_TEXT_AT = \"text\";\r\nexport const CONST_SEND_MAIL_CLASS_NAME_AT = \"className\";\r\nexport const CONST_SEND_MAIL_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_SEND_MAIL_DATA_CONDITION_AT = \"dataCondition\";\r\nexport const CONST_SEND_MAIL_REPORT_TEMPLATE_AT = \"reportTemplate\";\r\nexport const CONST_SEND_MAIL_SUMMARY_MAIL_AT = \"summaryMail\";\r\nexport const CONST_SEND_MAIL_FORMAT_AT = \"format\";\r\nexport const CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT = \"documentClassName\";\r\nexport const CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT = \"documentAttribute\";\r\nexport const CONST_SEND_MAIL_DOCUMENT_CONDITION_AT = \"documentCondition\";\r\nexport const CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT = \"documentConditionParams\";\r\nexport const CONST_SEND_MAIL_SEND_POSTPONE_AT = \"sendPostpone\";\r\nexport const CONST_SEND_MAIL_RECIPIENT_TYPE_AT = \"recipientType\";\r\nexport const CONST_SEND_SMS_EL = \"SendSMS\";\r\nexport const CONST_SEND_SMS_RECIPIENT_TYPE_AT = \"recipientType\";\r\nexport const CONST_SEND_SMS_RECIPIENT_AT = \"recipient\";\r\nexport const CONST_SEND_SMS_TEXT_AT = \"text\";\r\nexport const CONST_SEND_SMS_CLASS_NAME_AT = \"className\";\r\nexport const CONST_SEND_SMS_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_SEND_SMS_DATA_CONDITION_AT = \"dataCondition\";\r\nexport const CONST_SEND_WF_MESSAGE_EL = \"SendWFMessage\";\r\nexport const CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT = \"messageName\";\r\nexport const CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT = \"targetObjectName\";\r\nexport const CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT = \"objectsCondition\";\r\nexport const CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT = \"objectsConditionParams\";\r\nexport const CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT = \"afterSave\";\r\nexport const CONST_SET_ATTRIBUTE_EL = \"SetAttribute\";\r\nexport const CONST_SET_ATTRIBUTE_VALUE_EL = \"Value\";\r\nexport const CONST_SET_ATTRIBUTE_VALUE_TYPE = \"valueType\";\r\nexport const CONST_SET_ATTRIBUTE_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_SET_OBJECT_ATTRIBUTE_EL = \"SetObjectAttribute\";\r\nexport const CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL = \"Value\";\r\nexport const CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT = \"masterClassName\";\r\nexport const CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT = \"masterAttrName\";\r\nexport const CONST_SET_VALUE_EL = \"SetValue\";\r\nexport const CONST_SET_VALUE_VALUE_EL = \"Value\";\r\nexport const CONST_SET_VALUE_NAME_AT = \"name\";\r\nexport const CONST_OPEN_FORM_FORM_TYPE_AT = \"formType\";\r\nexport const CONST_OPEN_FORM_FORM_CLASS_AT = \"formClass\";\r\nexport const CONST_OPEN_FORM_FORM_CONDITION_AT = \"formCondition\";\r\nexport const CONST_OPEN_FORM_REPORT_NAME_AT = \"reportName\";\r\nexport const CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT = \"masterLinkToAttr\";\r\n\r\n/** Participants konstanty */\r\nexport const CONST_PARTICIPANTS_EL = \"Participants\";\r\nexport const CONST_PARTICIPANT_EL = \"Participant\";\r\nexport const CONST_DEFINITION_PARTICIPANTS_EL = \"DefinitionParticipants\";\r\nexport const CONST_ROLE_EL = \"Role\";\r\nexport const CONST_ROLE_NAME_AT = \"name\";\r\nexport const CONST_ROLE_DB_ID_AT = \"dbID\";\r\nexport const CONST_DEFINITION_PARTICIPANT_EL = \"DefinitionParticipant\";\r\nexport const CONST_DEFINITION_PARTICIPANT_NAME_AT = \"name\";\r\nexport const CONST_DEFINITION_PARTICIPANT_CONDITION_AT = \"condition\";\r\nexport const CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT = \"roleName\";\r\nexport const CONST_SYSTEM_EL = \"System\";\r\nexport const CONST_USER_EL = \"User\";\r\nexport const CONST_USER_NAME_AT = \"name\";\r\nexport const CONST_USER_DB_ID_AT = \"dbID\";\r\nexport const CONST_OWNER_EL = \"Owner\";\r\n\r\n/** Position konstanty */\r\nexport const CONST_POSITION_EL = \"Position\";\r\nexport const CONST_POSITION_X_AT = \"x\";\r\nexport const CONST_POSITION_Y_AT = \"y\";\r\nexport const CONST_POSITION_WIDTH_AT = \"width\";\r\nexport const CONST_POSITION_HEIGHT_AT = \"height\";\r\nexport const CONST_POSITION_SET_AT = \"set\";\r\n\r\n/** Triggers konstanty */\r\nexport const CONST_TRIGGERS_EL = \"Triggers\";\r\nexport const CONST_TRIGGER_EL = \"Trigger\";\r\nexport const CONST_ATTRIBUTE_DATA_CHANGE_EL = \"AttributeDataChange\";\r\nexport const CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT = \"attrName\";\r\nexport const CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT = \"condition\";\r\nexport const CONST_MENU_EL = \"Menu\";\r\nexport const CONST_MENU_TEXT_EL = \"Text\";\r\nexport const CONST_MENU_IDENTIFIER_AT = \"identifier\";\r\nexport const CONST_MENU_LANG_AT = \"lang\";\r\nexport const CONST_MENU_TEXT_AT = \"text\";\r\nexport const CONST_MENU_CODE_NAME = \"codename\";\r\nexport const CONST_MENU_ICON_NAME = \"iconName\";\r\nexport const CONST_MENU_PARTICIPANTS_SELECTING_AT = \"participantsSelecting\";\r\nexport const CONST_MENU_MULTI_ACTION_ENABLE_AT = \"multiActionEnable\";\r\nexport const CONST_MENU_VALIDATE_POST_REQ_AT = \"validatePostReq\";\r\nexport const CONST_MENU_VALIDATE_RECOMMENDED_AT = \"validateRecommended\";\r\nexport const CONST_MENU_CHOOSE_FROM_USERS_DEFAULT = \"chooseFromUsersDefault\";\r\nexport const CONST_MENU_MASTER_NODE_AT = \"masterNode\";\r\nexport const CONST_MENU_PARAM_FORM_NAME_AT = \"paramFormName\";\r\nexport const CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT = \"linkAttrForSelObj\";\r\nexport const CONST_MENU_SET_VALUES_AT = \"setValues\";\r\nexport const CONST_MENU_CAPTIONS_EL = \"Captions\";\r\nexport const CONST_MENU_CONFIRM_MESSAGES_EL = \"ConfirmMessages\";\r\nexport const CONST_NEW_OBJECT_EL = \"NewObject\";\r\nexport const CONST_WFMESSAGE_EL = \"WFMessage\";\r\nexport const CONST_WFMESSAGE_MESSAGE_NAME_AT = \"messageName\";\r\nexport const CONST_WFMESSAGE_DEACTIVATING_AT = \"deactivating\";\r\n","import { CONST_ROOT_COMPONENT_INDEX, IComponent, ILink } from \"@multiweb/picasso\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ActionType, ParticipantType, TriggerType } from \"./enums\";\r\nimport { LOC_ATTRIBUTE_CHANGE, LOC_ATTRIBUTE_VALUE_CHANGE, LOC_CHANGE_OF_BINDING_ATTRIBUTE, LOC_CREATION_OF_DOCUMENT, LOC_DEFINITION_PARTICIPANT, LOC_EMAIL, LOC_EXECUTING_METHOD, LOC_FORM_OPENING, LOC_INCREMENTING_VALUE, LOC_MENU, LOC_OWNER, LOC_ROLE, LOC_SENDING_OF_WF_MESSAGE, LOC_SETTING_VALUE, LOC_SMS, LOC_START_OF_SCRIPT, LOC_SYSTEM, LOC_USER, LOC_WORKFLOW_MESSAGE } from \"./locKeys\";\r\nimport { IAction, IActivity, IParticipant, IPosition, ISet, ITransition, ITrigger } from \"./types\";\r\nimport { UiActivity } from \"./UiActivity\";\r\nimport { UiSet } from \"./UiSet\";\r\nimport { UiTransition } from \"./UiTransition\";\r\nimport { UiWorkflow } from \"./UiWorkflow\";\r\nimport { Workflow } from \"./workflowModel\";\r\nimport { Action, CallMethod, CallScript, DateTimePrecision, FormType, IncrementDateTime, IncrementNumber, MessageFormat, OpenForm, SendMail, SendMessageRecipientType, SendSMS, SendSmsRecipientType, SendWFMessage, SetAttribute, SetObjectAttribute, SetValue } from \"./workflowModel/Actions\";\r\nimport { DefinitionParticipant, Owner, Role, System, User } from \"./workflowModel/Participants\";\r\nimport { AttributeDataChange, Menu, NewObject, WfMessage } from \"./workflowModel/Triggers\";\r\nimport {\r\n CONST_ACTION_COMMENT_AT,\r\n CONST_ACTION_CONDITION_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT,\r\n CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT,\r\n CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT,\r\n CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT,\r\n CONST_CALL_METHOD_METHOD_NAME_AT,\r\n CONST_CALL_METHOD_STATIC_AT,\r\n CONST_CALL_SCRIPT_SCRIPT_AT,\r\n CONST_DEFINITION_PARTICIPANT_CONDITION_AT,\r\n CONST_DEFINITION_PARTICIPANT_NAME_AT,\r\n CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT,\r\n CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT,\r\n CONST_INCREMENT_DATE_TIME_PRECISION_AT,\r\n CONST_INCREMENT_DATE_TIME_VALUE_AT,\r\n CONST_INCREMENT_NUMBER_ATTR_NAME_AT,\r\n CONST_INCREMENT_NUMBER_VALUE_AT,\r\n CONST_MENU_CAPTIONS_EL,\r\n CONST_MENU_CHOOSE_FROM_USERS_DEFAULT,\r\n CONST_MENU_CODE_NAME,\r\n CONST_MENU_CONFIRM_MESSAGES_EL,\r\n CONST_MENU_ICON_NAME,\r\n CONST_MENU_IDENTIFIER_AT,\r\n CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT,\r\n CONST_MENU_MASTER_NODE_AT,\r\n CONST_MENU_MULTI_ACTION_ENABLE_AT,\r\n CONST_MENU_PARAM_FORM_NAME_AT,\r\n CONST_MENU_PARTICIPANTS_SELECTING_AT,\r\n CONST_MENU_SET_VALUES_AT,\r\n CONST_MENU_VALIDATE_POST_REQ_AT,\r\n CONST_MENU_VALIDATE_RECOMMENDED_AT,\r\n CONST_OPEN_FORM_FORM_CLASS_AT,\r\n CONST_OPEN_FORM_FORM_CONDITION_AT,\r\n CONST_OPEN_FORM_FORM_TYPE_AT,\r\n CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT,\r\n CONST_OPEN_FORM_REPORT_NAME_AT,\r\n CONST_SEND_MAIL_ATTR_NAME_AT,\r\n CONST_SEND_MAIL_CLASS_NAME_AT,\r\n CONST_SEND_MAIL_DATA_CONDITION_AT,\r\n CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CONDITION_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT,\r\n CONST_SEND_MAIL_FORMAT_AT,\r\n CONST_SEND_MAIL_RECIPIENT_AT,\r\n CONST_SEND_MAIL_RECIPIENT_TYPE_AT,\r\n CONST_SEND_MAIL_REPORT_TEMPLATE_AT,\r\n CONST_SEND_MAIL_SEND_POSTPONE_AT,\r\n CONST_SEND_MAIL_SUBJECT_AT,\r\n CONST_SEND_MAIL_SUMMARY_MAIL_AT,\r\n CONST_SEND_MAIL_TEXT_AT,\r\n CONST_SEND_SMS_ATTR_NAME_AT,\r\n CONST_SEND_SMS_CLASS_NAME_AT,\r\n CONST_SEND_SMS_DATA_CONDITION_AT,\r\n CONST_SEND_SMS_RECIPIENT_AT,\r\n CONST_SEND_SMS_RECIPIENT_TYPE_AT,\r\n CONST_SEND_SMS_TEXT_AT,\r\n CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT,\r\n CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT,\r\n CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT,\r\n CONST_SET_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_ATTRIBUTE_VALUE_TYPE,\r\n CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_VALUE_NAME_AT,\r\n CONST_SET_VALUE_VALUE_EL,\r\n CONST_WFMESSAGE_DEACTIVATING_AT,\r\n CONST_WFMESSAGE_MESSAGE_NAME_AT,\r\n} from \"./workflowParser/constants\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport class UiModelCreator {\r\n public static getUiModel(workflow: Workflow, selectedSetId?: string): { components: IComponent[]; links: ILink[] } {\r\n const components: IComponent[] = [];\r\n const links: ILink[] = [];\r\n\r\n const set = workflow.sets.find(s => s.id === selectedSetId) ?? workflow.sets[0];\r\n const setsActivities = workflow.activities.filter(activity => activity.positions.some(position => position.set.id === set.id));\r\n const uiActivitiesIds: number[] = [];\r\n\r\n for (let i = 1; i <= setsActivities.length; i++) {\r\n uiActivitiesIds.push(i);\r\n }\r\n\r\n for (let i = 0; i < setsActivities.length; i++) {\r\n const activitiesPosition = setsActivities[i].positions.find(position => position.set.id === set.id);\r\n const uiActivity = new UiActivity((i + 1), activitiesPosition!.x, activitiesPosition!.y, activitiesPosition!.width, activitiesPosition!.height, set.id, CONST_ROOT_COMPONENT_INDEX, setsActivities[i]);\r\n components[i + 1] = uiActivity;\r\n }\r\n\r\n let linkIndex = 0;\r\n const linksIndexes = [];\r\n\r\n for (let i = 1; i < components.length; i++) {\r\n const startComponent = components[i] as UiActivity;\r\n\r\n for (let j = 0; j < startComponent.activity.transitions.length; j++) {\r\n const transition = startComponent.activity.transitions[j];\r\n\r\n if (transition.setId !== set.id)\r\n continue;\r\n\r\n const endComponent = components.find(comp => {\r\n if (comp instanceof UiActivity)\r\n return comp.activity.id === transition.to;\r\n return false;\r\n });\r\n\r\n if (endComponent == null)\r\n throw new Error(`Component of id \"${endComponent}\" could not be found!`);\r\n\r\n linksIndexes.push(linkIndex);\r\n links.push(new UiTransition(linkIndex, transition.points, startComponent.index, endComponent.index, transition));\r\n linkIndex++;\r\n }\r\n }\r\n\r\n components[CONST_ROOT_COMPONENT_INDEX] = new UiSet(CONST_ROOT_COMPONENT_INDEX, uiActivitiesIds, linksIndexes, set, workflow);\r\n\r\n return { components, links };\r\n }\r\n\r\n public static getWorkflowEntities(uiWorkflow: UiWorkflow): { sets: ISet[]; activities: IActivity[]; transitions: ITransition[]; definitionParticipants: IParticipant[] } {\r\n const activities: IActivity[] = [];\r\n const transitions: ITransition[] = [];\r\n const sets: ISet[] = [];\r\n const definitionParticipants: IParticipant[] = [];\r\n\r\n uiWorkflow.picassoModel.components.forEach(element => {\r\n if (element.index === CONST_ROOT_COMPONENT_INDEX) {\r\n const uiSet = element as UiSet;\r\n\r\n uiSet.workflow.sets.forEach(({ id, name, description }) => {\r\n sets.push({ id, name, description });\r\n });\r\n\r\n uiSet.workflow.definitionParticipants.forEach(({ identifier, name, condition, roleName }) => {\r\n definitionParticipants.push({\r\n locKey: LOC_DEFINITION_PARTICIPANT,\r\n identifier,\r\n participantType: ParticipantType.DefinitionParticipant,\r\n name,\r\n properties: { identifier, name, condition, roleName },\r\n });\r\n });\r\n\r\n return;\r\n }\r\n\r\n const uiActivity = element as UiActivity;\r\n const actions: IAction[] = [];\r\n const participants: IParticipant[] = [];\r\n const activeParticipants: IParticipant[] = [];\r\n const triggers: ITrigger[] = [];\r\n const positions: IPosition[] = [];\r\n\r\n uiActivity.activity.actions.forEach((elmnt) => {\r\n this.getActionType(elmnt, actions);\r\n });\r\n\r\n uiActivity.activity.participants.forEach((participant) => {\r\n if (participant instanceof DefinitionParticipant)\r\n participants.push(UiModelCreator.createDefinitionParticipant(participant));\r\n else if (participant instanceof Owner)\r\n participants.push(UiModelCreator.createOwnerParticipant());\r\n else if (participant instanceof System)\r\n participants.push(UiModelCreator.createSystemParticipant());\r\n else if (participant instanceof Role)\r\n participants.push(UiModelCreator.createRoleParticipant(participant.name, participant.dbID.toString()));\r\n else if (participant instanceof User)\r\n participants.push(UiModelCreator.createUserParticipant(participant.name, participant.dbID.toString()));\r\n else\r\n throw new Error(\"Participant type not implemented!\");\r\n });\r\n\r\n uiActivity.activity.activeParticipants.forEach((activeParticipant) => {\r\n if (activeParticipant.type === ParticipantType.DefinitionParticipant)\r\n activeParticipants.push({ identifier: ParticipantType.DefinitionParticipant, participantType: ParticipantType.DefinitionParticipant, locKey: LOC_DEFINITION_PARTICIPANT, name: activeParticipant.name, properties: {} });\r\n else if (activeParticipant.type === ParticipantType.Owner)\r\n activeParticipants.push(UiModelCreator.createOwnerParticipant());\r\n else if (activeParticipant.type === ParticipantType.System)\r\n activeParticipants.push(UiModelCreator.createSystemParticipant());\r\n else if (activeParticipant.type === ParticipantType.Role)\r\n activeParticipants.push(UiModelCreator.createRoleParticipant(activeParticipant.name, activeParticipant.id));\r\n else if (activeParticipant.type === ParticipantType.User)\r\n activeParticipants.push(UiModelCreator.createUserParticipant(activeParticipant.name, activeParticipant.id));\r\n else\r\n throw new Error(`Active participant type '${activeParticipant.type}' not implemented!`);\r\n });\r\n\r\n uiActivity.activity.triggers.forEach((trigger) => {\r\n if (trigger instanceof AttributeDataChange)\r\n triggers.push(UiModelCreator.createAttributeDataChange(trigger));\r\n else if (trigger instanceof Menu)\r\n triggers.push(UiModelCreator.createMenu(trigger));\r\n else if (trigger instanceof NewObject)\r\n triggers.push(UiModelCreator.createNewObject());\r\n else if (trigger instanceof WfMessage)\r\n triggers.push(UiModelCreator.createWfMessage(trigger));\r\n else\r\n throw new Error(\"Trigger type not implemented!\");\r\n });\r\n\r\n uiActivity.activity.positions.forEach((position) => {\r\n positions.push({\r\n setId: position.set.id,\r\n setName: position.set.name,\r\n });\r\n });\r\n\r\n activities.push({\r\n picassoIndex: element.index,\r\n id: uiActivity.activity.id,\r\n condition: uiActivity.activity.condition,\r\n runCondition: uiActivity.activity.runCondition,\r\n type: uiActivity.activity.type,\r\n description: uiActivity.activity.description,\r\n inheritParticipants: uiActivity.activity.inheritParticipants,\r\n killChildren: uiActivity.activity.killChildren,\r\n name: uiActivity.activity.name,\r\n order: uiActivity.activity.order,\r\n inputTransType: uiActivity.activity.inputTransType,\r\n outputTransType: uiActivity.activity.outputTransType,\r\n showInWfHistory: uiActivity.activity.showInWfHistory,\r\n isActive: uiActivity.activity.isActive,\r\n actions: actions,\r\n participants: participants,\r\n activeParticipants: activeParticipants,\r\n triggers: triggers,\r\n positions: positions,\r\n });\r\n });\r\n\r\n uiWorkflow.picassoModel.links.forEach(element => {\r\n const { transition, index, startComponentIndex, endComponentIndex } = element as UiTransition;\r\n const actions: IAction[] = [];\r\n\r\n transition.actions.forEach((act) => {\r\n this.getActionType(act, actions);\r\n });\r\n\r\n transitions.push({\r\n id: transition.id,\r\n picassoIndex: index,\r\n condition: transition.condition,\r\n name: transition.name,\r\n setId: transition.setId,\r\n toIndex: endComponentIndex,\r\n fromIndex: startComponentIndex,\r\n isActive: transition.isActive,\r\n actions,\r\n });\r\n });\r\n\r\n return { sets, activities, transitions, definitionParticipants };\r\n }\r\n\r\n private static getActionType(action: Action, actions: IAction[]): void {\r\n if (action instanceof CallMethod)\r\n actions.push(UiModelCreator.createCallMethodAction(action));\r\n else if (action instanceof CallScript)\r\n actions.push(UiModelCreator.createCallScriptAction(action));\r\n else if (action instanceof IncrementDateTime)\r\n actions.push(UiModelCreator.createIncrementDateTimeAction(action));\r\n else if (action instanceof IncrementNumber)\r\n actions.push(UiModelCreator.createIncrementNumberAction(action));\r\n else if (action instanceof SendMail)\r\n actions.push(UiModelCreator.createSendMailAction(action));\r\n else if (action instanceof SendSMS)\r\n actions.push(UiModelCreator.createSendSmsAction(action));\r\n else if (action instanceof SendWFMessage)\r\n actions.push(UiModelCreator.createSendWfMessageAction(action));\r\n else if (action instanceof SetAttribute)\r\n actions.push(UiModelCreator.createSetAttributeAction(action));\r\n else if (action instanceof SetObjectAttribute)\r\n actions.push(UiModelCreator.createSetObjectAttributeAction(action));\r\n else if (action instanceof SetValue)\r\n actions.push(UiModelCreator.createSetValueAction(action));\r\n else if (action instanceof OpenForm)\r\n actions.push(UiModelCreator.createOpenFormAction(action));\r\n else\r\n throw new Error(\"Action type not implemented!\");\r\n }\r\n\r\n public static createSystemParticipant(): IParticipant {\r\n return {\r\n identifier: ParticipantType.System,\r\n locKey: LOC_SYSTEM,\r\n participantType: ParticipantType.System,\r\n name: \"\",\r\n properties: EMPTY_OBJECT,\r\n };\r\n }\r\n\r\n public static createOwnerParticipant(): IParticipant {\r\n return {\r\n identifier: ParticipantType.Owner,\r\n locKey: LOC_OWNER,\r\n participantType: ParticipantType.Owner,\r\n name: \"\",\r\n properties: EMPTY_OBJECT,\r\n };\r\n }\r\n\r\n private static createDefinitionParticipant(participant: DefinitionParticipant): IParticipant {\r\n return {\r\n participantType: ParticipantType.DefinitionParticipant,\r\n locKey: LOC_DEFINITION_PARTICIPANT,\r\n identifier: participant.identifier,\r\n name: participant.name,\r\n properties: {\r\n [CONST_DEFINITION_PARTICIPANT_NAME_AT]: participant.name,\r\n [CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT]: participant.roleName,\r\n [CONST_DEFINITION_PARTICIPANT_CONDITION_AT]: participant.condition,\r\n },\r\n };\r\n }\r\n\r\n public static createRoleParticipant(name: string, dbID: string): IParticipant {\r\n return {\r\n participantType: ParticipantType.Role,\r\n locKey: LOC_ROLE,\r\n identifier: ParticipantType.Role + dbID,\r\n name,\r\n properties: {\r\n name,\r\n dbID,\r\n },\r\n };\r\n }\r\n\r\n public static createUserParticipant(name: string, dbID: string): IParticipant {\r\n return {\r\n participantType: ParticipantType.User,\r\n locKey: LOC_USER,\r\n identifier: ParticipantType.User + dbID,\r\n name,\r\n properties: {\r\n name,\r\n dbID,\r\n },\r\n };\r\n }\r\n\r\n public static createCallMethodAction(action?: CallMethod): IAction {\r\n return {\r\n actionType: ActionType.CallMethod,\r\n locKey: LOC_EXECUTING_METHOD,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_CALL_METHOD_METHOD_NAME_AT]: action?.methodName ?? \"\",\r\n [CONST_CALL_METHOD_STATIC_AT]: action?.static.toString() ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT]: action?.defaultParamValue ?? \"\",\r\n [CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT]: action?.insertActualObject.toString() ?? \"\",\r\n [CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT]: action?.insertParamFormObject.toString() ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createCallScriptAction(action?: CallScript): IAction {\r\n return {\r\n actionType: ActionType.CallScript,\r\n locKey: LOC_START_OF_SCRIPT,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_CALL_SCRIPT_SCRIPT_AT]: action?.script ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createIncrementDateTimeAction(action?: IncrementDateTime): IAction {\r\n return {\r\n actionType: ActionType.IncrementValue,\r\n locKey: LOC_INCREMENTING_VALUE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_INCREMENT_DATE_TIME_PRECISION_AT]: action?.precision ?? DateTimePrecision.day,\r\n [CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n [CONST_INCREMENT_DATE_TIME_VALUE_AT]: action?.value.toString() ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createIncrementNumberAction(action?: IncrementNumber): IAction {\r\n return {\r\n actionType: ActionType.IncrementValue,\r\n locKey: LOC_INCREMENTING_VALUE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_INCREMENT_DATE_TIME_PRECISION_AT]: action?.precision ?? DateTimePrecision.number, // todo, je to potřeba? nšlo by jinak?\r\n [CONST_INCREMENT_NUMBER_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n [CONST_INCREMENT_NUMBER_VALUE_AT]: action?.value.toString() ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSendMailAction(action?: SendMail): IAction {\r\n return {\r\n actionType: ActionType.SendMail,\r\n locKey: LOC_EMAIL,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SEND_MAIL_RECIPIENT_TYPE_AT]: action?.recipientType ?? SendMessageRecipientType.value,\r\n [CONST_SEND_MAIL_RECIPIENT_AT]: action?.recipient ?? \"\",\r\n [CONST_SEND_MAIL_CLASS_NAME_AT]: action?.className ?? \"\",\r\n [CONST_SEND_MAIL_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n [CONST_SEND_MAIL_DATA_CONDITION_AT]: action?.dataCondition ?? \"\",\r\n [CONST_SEND_MAIL_SUBJECT_AT]: action?.subject ?? \"\",\r\n [CONST_SEND_MAIL_TEXT_AT]: action?.text ?? \"\",\r\n [CONST_SEND_MAIL_REPORT_TEMPLATE_AT]: action?.reportTemplate ?? \"\",\r\n [CONST_SEND_MAIL_SUMMARY_MAIL_AT]: action?.summaryMail.toString() ?? \"\",\r\n [CONST_SEND_MAIL_FORMAT_AT]: action?.format ?? MessageFormat.text,\r\n [CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT]: action?.documentClassName ?? \"\",\r\n [CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT]: action?.documentAttribute ?? \"\",\r\n [CONST_SEND_MAIL_DOCUMENT_CONDITION_AT]: action?.documentCondition ?? \"\",\r\n [CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT]: action?.documentConditionParams ?? \"\",\r\n [CONST_SEND_MAIL_SEND_POSTPONE_AT]: action?.sendPostpone.toString() ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSendSmsAction(action?: SendSMS): IAction {\r\n return {\r\n actionType: ActionType.SendSMS,\r\n locKey: LOC_SMS,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SEND_SMS_CLASS_NAME_AT]: action?.className ?? \"\",\r\n [CONST_SEND_SMS_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n [CONST_SEND_SMS_DATA_CONDITION_AT]: action?.dataCondition ?? \"\",\r\n [CONST_SEND_SMS_RECIPIENT_TYPE_AT]: action?.recipientType ?? SendSmsRecipientType.value,\r\n [CONST_SEND_SMS_TEXT_AT]: action?.text ?? \"\",\r\n [CONST_SEND_SMS_RECIPIENT_AT]: action?.recipient ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSendWfMessageAction(action?: SendWFMessage): IAction {\r\n return {\r\n actionType: ActionType.SendWFMessage,\r\n locKey: LOC_SENDING_OF_WF_MESSAGE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT]: action?.afterSave.toString() ?? \"\",\r\n [CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT]: action?.messageName ?? \"\",\r\n [CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT]: action?.objectsCondition ?? \"\",\r\n [CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT]: action?.objectsConditionParams ?? \"\",\r\n [CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT]: action?.targetObjectName ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSetAttributeAction(action?: SetAttribute): IAction {\r\n return {\r\n actionType: ActionType.SetAttribute,\r\n locKey: LOC_ATTRIBUTE_CHANGE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SET_ATTRIBUTE_VALUE_TYPE]: action?.valueType ?? \"\",\r\n [CONST_SET_ATTRIBUTE_VALUE_EL]: action?.value ?? \"\",\r\n [CONST_SET_ATTRIBUTE_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSetObjectAttributeAction(action?: SetObjectAttribute): IAction {\r\n return {\r\n actionType: ActionType.SetObjectAttribute,\r\n locKey: LOC_CHANGE_OF_BINDING_ATTRIBUTE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL]: action?.value ?? \"\",\r\n [CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT]: action?.attrName ?? \"\",\r\n [CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT]: action?.masterClassName ?? \"\",\r\n [CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT]: action?.masterAttrName ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createSetValueAction(action?: SetValue): IAction {\r\n return {\r\n actionType: ActionType.SetValue,\r\n locKey: LOC_SETTING_VALUE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_SET_VALUE_VALUE_EL]: action?.value ?? \"\",\r\n [CONST_SET_VALUE_NAME_AT]: action?.name ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createOpenFormAction(action?: OpenForm): IAction {\r\n return {\r\n actionType: ActionType.OpenForm,\r\n locKey: LOC_FORM_OPENING,\r\n name: \"\",\r\n properties: {\r\n [CONST_ACTION_COMMENT_AT]: action?.comment ?? \"\",\r\n [CONST_ACTION_CONDITION_AT]: action?.condition ?? \"\",\r\n [CONST_OPEN_FORM_FORM_CLASS_AT]: action?.formClass ?? \"\",\r\n [CONST_OPEN_FORM_FORM_CONDITION_AT]: action?.formCondition ?? \"\",\r\n [CONST_OPEN_FORM_FORM_TYPE_AT]: action?.formType ?? FormType.form,\r\n [CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT]: action?.masterLinkToAttr ?? \"\",\r\n [CONST_OPEN_FORM_REPORT_NAME_AT]: action?.reportName ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createAttributeDataChange(trigger?: AttributeDataChange): ITrigger {\r\n return {\r\n triggerType: TriggerType.AttributeDataChange,\r\n locKey: LOC_ATTRIBUTE_VALUE_CHANGE,\r\n name: \"\",\r\n properties: {\r\n [CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT]: trigger?.attrName ?? \"\",\r\n [CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT]: trigger?.condition ?? \"\",\r\n },\r\n };\r\n }\r\n\r\n public static createMenu(trigger?: Menu): ITrigger {\r\n return {\r\n triggerType: TriggerType.Menu,\r\n locKey: LOC_MENU,\r\n name: \"\",\r\n properties: {\r\n [CONST_MENU_IDENTIFIER_AT]: trigger?.identifier ?? generateUUID(),\r\n [CONST_MENU_CODE_NAME]: trigger?.codename ?? \"\",\r\n [CONST_MENU_ICON_NAME]: trigger?.iconName ?? \"\",\r\n [CONST_MENU_MASTER_NODE_AT]: trigger?.masterNode ?? \"\",\r\n [CONST_MENU_PARAM_FORM_NAME_AT]: trigger?.paramFormName ?? \"\",\r\n [CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT]: trigger?.linkAttrForSelObj ?? \"\",\r\n [CONST_MENU_SET_VALUES_AT]: trigger?.setValues ?? \"\",\r\n [CONST_MENU_MULTI_ACTION_ENABLE_AT]: trigger?.multiActionEnable.toString() ?? \"\",\r\n [CONST_MENU_CHOOSE_FROM_USERS_DEFAULT]: trigger?.chooseFromUsersDefault.toString() ?? \"\",\r\n [CONST_MENU_PARTICIPANTS_SELECTING_AT]: trigger?.participantsSelecting.toString() ?? \"\",\r\n [CONST_MENU_VALIDATE_POST_REQ_AT]: trigger?.validatePostReq.toString() ?? \"\",\r\n [CONST_MENU_VALIDATE_RECOMMENDED_AT]: trigger?.validateRecommended.toString() ?? \"\",\r\n [CONST_MENU_CAPTIONS_EL]: JSON.stringify(trigger?.captions ?? []),\r\n [CONST_MENU_CONFIRM_MESSAGES_EL]: JSON.stringify(trigger?.confirmMessages ?? []),\r\n },\r\n };\r\n }\r\n\r\n public static createNewObject(): ITrigger {\r\n return {\r\n triggerType: TriggerType.NewObject,\r\n locKey: LOC_CREATION_OF_DOCUMENT,\r\n name: \"\",\r\n properties: EMPTY_OBJECT,\r\n };\r\n }\r\n\r\n public static createWfMessage(trigger?: WfMessage): ITrigger {\r\n return {\r\n triggerType: TriggerType.WfMessage,\r\n locKey: LOC_WORKFLOW_MESSAGE,\r\n name: \"\",\r\n properties: {\r\n [CONST_WFMESSAGE_MESSAGE_NAME_AT]: trigger?.messageName ?? \"\",\r\n [CONST_WFMESSAGE_DEACTIVATING_AT]: trigger?.deactivating.toString() ?? \"\",\r\n },\r\n };\r\n }\r\n}\r\n","import { RefObject } from \"react\";\r\n\r\nimport { IComponent, ILink } from \"@multiweb/picasso\";\r\nimport { IActivity, IParticipant, ISet, ITransition } from \"./types\";\r\nimport { UiModelCreator } from \"./UiModelCreator\";\r\nimport { UiSet } from \"./UiSet\";\r\nimport { Workflow } from \"./workflowModel\";\r\n\r\nexport class UiWorkflow {\r\n private _editorElementRef: RefObject<HTMLDivElement>;\r\n\r\n public workflow: Workflow;\r\n public picassoModel: { components: IComponent[]; links: ILink[] };\r\n public setIsWfEdited: (isEdited: boolean) => Promise<void>;\r\n\r\n constructor(workflow: Workflow, selectedSetId: string | undefined, editorElementRef: RefObject<HTMLDivElement>, setIsWfEdited: (isEdited: boolean) => Promise<void>) {\r\n this.workflow = workflow;\r\n this.picassoModel = UiModelCreator.getUiModel(this.workflow, selectedSetId);\r\n this._editorElementRef = editorElementRef;\r\n this.setIsWfEdited = setIsWfEdited;\r\n }\r\n\r\n public get uiSet(): UiSet {\r\n return this.picassoModel.components[0] as UiSet;\r\n }\r\n\r\n public get workflowModel(): { sets: ISet[]; activities: IActivity[]; transitions: ITransition[]; definitionParticipants: IParticipant[] } {\r\n return UiModelCreator.getWorkflowEntities(this);\r\n }\r\n\r\n public get editorElement(): HTMLDivElement {\r\n if (this._editorElementRef.current) {\r\n return this._editorElementRef.current;\r\n }\r\n throw new Error(\"Reference to workflow editor element not found!\");\r\n }\r\n\r\n public updatePicassoModel(activeSetId: string): void {\r\n this.picassoModel = UiModelCreator.getUiModel(this.workflow, activeSetId);\r\n }\r\n}\r\n","import { MutableTypedObject } from \"@multiweb/types/react\";\r\nimport { UiWorkflow } from \"./UiWorkflow\";\r\n\r\nexport class WorkflowManager {\r\n /** Slouží k ukládání workflow objektů pro všechny instance editoru workflow */\r\n public static uiWorkflows: MutableTypedObject<UiWorkflow> = {};\r\n}\r\n","import { Action } from \"redux\";\r\n\r\nimport { ActionType, TriggerType } from \"./enums\";\r\nimport { IAction, IDialogCanceledAction, IDialogConfirmedAction, ITrigger } from \"./types\";\r\nimport { UiWorkflow } from \"./UiWorkflow\";\r\nimport { WorkflowManager } from \"./WorkflowManager\";\r\nimport { Text } from \"./workflowModel/Triggers\";\r\nimport {\r\n CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT,\r\n CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT,\r\n CONST_CALL_METHOD_METHOD_NAME_AT,\r\n CONST_CALL_SCRIPT_SCRIPT_AT,\r\n CONST_INCREMENT_NUMBER_ATTR_NAME_AT,\r\n CONST_INCREMENT_NUMBER_VALUE_AT,\r\n CONST_MENU_CAPTIONS_EL,\r\n CONST_MENU_CODE_NAME,\r\n CONST_MENU_IDENTIFIER_AT,\r\n CONST_OPEN_FORM_FORM_TYPE_AT,\r\n CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT,\r\n CONST_SEND_MAIL_RECIPIENT_AT,\r\n CONST_SEND_MAIL_RECIPIENT_TYPE_AT,\r\n CONST_SEND_MAIL_SUBJECT_AT,\r\n CONST_SEND_SMS_RECIPIENT_AT,\r\n CONST_SEND_SMS_RECIPIENT_TYPE_AT,\r\n CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT,\r\n CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT,\r\n CONST_SET_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_VALUE_NAME_AT,\r\n CONST_SET_VALUE_VALUE_EL,\r\n CONST_WFMESSAGE_MESSAGE_NAME_AT,\r\n} from \"./workflowParser/constants\";\r\n\r\n/**\r\n * Funkce přeparsuje string na number.\r\n * @example \"\" => defaultReturnValue\r\n * @example \"a\" => defaultReturnValue\r\n * @example \"1\" => 1\r\n * @example \"0a\" => defaultReturnValue\r\n * @param value Textový řetězec k parsování.\r\n * @param defaultReturnValue defaultní návratová hodnota, která se má vrátit, pokud parsování neprojde.\r\n */\r\nexport const string2number = (value: string, defaultReturnValue: number) => {\r\n if (value === \"\")\r\n return defaultReturnValue;\r\n\r\n const number = Number(value);\r\n\r\n return isNaN(number) ? defaultReturnValue : number;\r\n};\r\n\r\n/**\r\n * Funkce přeparsuje textový řetězec na boolean. Pokud se parsování nezdaří, vrátí false.\r\n * @param input Textový řetězec k přeparsování na boolean.\r\n * @param defaultBoolean Defaultní návratová hodnota, pokud input se nerovná true.\r\n */\r\nexport const parseStringToBoolean = (input: string | null, defaultBoolean: boolean): boolean => {\r\n return input ? input.toLowerCase() === \"true\" : defaultBoolean;\r\n};\r\n\r\n/**\r\n * Funkce vytváří název pro daný typ akce.\r\n * @param action Akce, pro kterou se má vytvořit jméno.\r\n */\r\nconst getActionName = (action: IAction) => {\r\n const { actionType, properties } = action;\r\n\r\n switch (actionType) {\r\n case ActionType.CallMethod:\r\n return concatenateParameters([properties[CONST_CALL_METHOD_METHOD_NAME_AT], properties[CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT]]);\r\n case ActionType.CallScript:\r\n return properties[CONST_CALL_SCRIPT_SCRIPT_AT];\r\n case ActionType.IncrementValue:\r\n return concatenateParameters([properties[CONST_INCREMENT_NUMBER_ATTR_NAME_AT], properties[CONST_INCREMENT_NUMBER_VALUE_AT]]);\r\n case ActionType.SendMail:\r\n return concatenateParameters([properties[CONST_SEND_MAIL_RECIPIENT_TYPE_AT], properties[CONST_SEND_MAIL_RECIPIENT_AT], properties[CONST_SEND_MAIL_SUBJECT_AT]]);\r\n case ActionType.SendSMS:\r\n return concatenateParameters([properties[CONST_SEND_SMS_RECIPIENT_TYPE_AT], properties[CONST_SEND_SMS_RECIPIENT_AT]]);\r\n case ActionType.SendWFMessage:\r\n return concatenateParameters([properties[CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT], properties[CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT]]);\r\n case ActionType.SetAttribute:\r\n return concatenateParameters([properties[CONST_SET_ATTRIBUTE_ATTR_NAME_AT], properties[CONST_SET_ATTRIBUTE_VALUE_EL]], \"=\");\r\n case ActionType.SetObjectAttribute:\r\n return concatenateParameters([properties[CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT], properties[CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL]]);\r\n case ActionType.SetValue:\r\n return concatenateParameters([properties[CONST_SET_VALUE_NAME_AT], properties[CONST_SET_VALUE_VALUE_EL]]);\r\n case ActionType.OpenForm:\r\n return concatenateParameters([properties[CONST_OPEN_FORM_FORM_TYPE_AT], properties[CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT]]);\r\n default:\r\n throw new Error(`Action type '${actionType}' is not supported, please check the implementation.`);\r\n }\r\n};\r\n\r\n/**\r\n * Funkce vytváří název pro daný typ spouštěče.\r\n * @param trigger Spouštěč, pro který se má vytvořit jméno.\r\n */\r\nconst getTriggerName = (trigger: ITrigger) => {\r\n const { triggerType, properties } = trigger;\r\n\r\n switch (triggerType) {\r\n case TriggerType.AttributeDataChange:\r\n return concatenateParameters([properties[CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT], properties[CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT]]);\r\n case TriggerType.Menu:\r\n return getMenuName(properties);\r\n case TriggerType.NewObject:\r\n return \"\";\r\n case TriggerType.WfMessage:\r\n return properties[CONST_WFMESSAGE_MESSAGE_NAME_AT];\r\n default:\r\n throw new Error(`Trigger type '${triggerType}' is not supported, please check the implementation.`);\r\n }\r\n};\r\n\r\n/**\r\n * Vrací jméno triggeru Menu.\r\n * @param properties Properties pro trigger.\r\n */\r\nconst getMenuName = (properties: ITrigger[\"properties\"]) => {\r\n const unparsedCaptions = properties[CONST_MENU_CAPTIONS_EL];\r\n const codename = properties[CONST_MENU_CODE_NAME];\r\n const captions: Text[] = unparsedCaptions == null ? [] : JSON.parse(unparsedCaptions);\r\n const czCaption = captions.find(cap => cap.lang === \"CZ\"); // Do budoucna bude potřeba zjišťovat aktuální jazyk aplikace a podle něho zobrazit caption\r\n\r\n let caption = czCaption?.text ?? captions[0]?.text ?? \"\";\r\n\r\n if (codename !== \"\")\r\n caption = `${caption} - ${codename}`;\r\n\r\n return `${caption} ${properties[CONST_MENU_IDENTIFIER_AT]}`;\r\n};\r\n\r\n/**\r\n * Funkce sloužící pro zřetězení hodnot parametrů do stringu ve tvaru {param1} / {param2} / ... / {paramN}\r\n * @param parameters\r\n * @param delimiter\r\n */\r\nconst concatenateParameters = (parameters: string[], delimiter: string = \" / \") => {\r\n let concatenatedString = \"\";\r\n\r\n parameters.forEach((parameter, index) => {\r\n if (index === 0)\r\n concatenatedString = parameter;\r\n else if (parameter)\r\n concatenatedString += `${concatenatedString ? delimiter : \"\"}${parameter}`;\r\n });\r\n\r\n return concatenatedString;\r\n};\r\n\r\nexport const updateActions = (newActions: readonly IAction[], oldActions: readonly IAction[] = []) => {\r\n const updatedActions = [...newActions];\r\n\r\n for (let i = 0; i < newActions.length; i++) {\r\n const newAction = newActions[i];\r\n\r\n if (newAction !== oldActions[i])\r\n updatedActions[i] = { ...newAction, name: getActionName(newAction) };\r\n }\r\n\r\n return updatedActions;\r\n};\r\n\r\nexport const updateTriggers = (newTriggers: readonly ITrigger[], oldTriggers: readonly ITrigger[] = []) => {\r\n const updatedTriggers = [...newTriggers];\r\n\r\n for (let i = 0; i < newTriggers.length; i++) {\r\n const newTrigger = newTriggers[i];\r\n\r\n if (newTrigger !== oldTriggers[i])\r\n updatedTriggers[i] = { ...newTrigger, name: getTriggerName(newTrigger) };\r\n }\r\n\r\n return updatedTriggers;\r\n};\r\n\r\n/**\r\n * Vrací mutable objekt reprezentující aktuální workflow.\r\n * @param hostKey Klíč instance editoru WF.\r\n */\r\nexport const getUiWorkflowMutableObject = (hostKey: string): UiWorkflow => {\r\n return WorkflowManager.uiWorkflows[hostKey];\r\n};\r\n\r\n/**\r\n * Určuje, jestli se jedná o správnou akci z dialogového okna se správným ID akce.\r\n * @param action redux akce\r\n * @param actionId ID akce na kterou dal uživatel odpověď.\r\n */\r\nexport const createDialogUserResponsePattern = (actionId: string) => (action: Action) => {\r\n if (action instanceof IDialogCanceledAction)\r\n return actionId === action.payload.actionId;\r\n\r\n if (action instanceof IDialogConfirmedAction)\r\n return actionId === action.payload.actionId;\r\n\r\n return false;\r\n};\r\n","import { LOC_CALLED_FUNCTION, LOC_EXECUTING_METHOD } from \"../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../utils\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class CallMethod extends Action {\r\n public methodName: string;\r\n public static: boolean;\r\n public insertActualObject: boolean;\r\n public insertParamFormObject: boolean;\r\n public defaultParamValue: string;\r\n\r\n constructor(methodName: string, $static: string, insertActualObject: string, insertParamFormObject: string, defaultParamValue: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.methodName = methodName;\r\n this.static = parseStringToBoolean($static, false);\r\n this.insertActualObject = parseStringToBoolean(insertActualObject, true);\r\n this.insertParamFormObject = parseStringToBoolean(insertParamFormObject, false);\r\n this.defaultParamValue = defaultParamValue;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.methodName)\r\n throw new Error(await this.getActionErrorMessage(LOC_CALLED_FUNCTION, LOC_EXECUTING_METHOD));\r\n }\r\n}\r\n","import { LOC_SCRIPT, LOC_START_OF_SCRIPT } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class CallScript extends Action {\r\n public script: string;\r\n\r\n constructor(script: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.script = script;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.script)\r\n throw new Error(await this.getActionErrorMessage(LOC_SCRIPT, LOC_START_OF_SCRIPT));\r\n }\r\n}\r\n","import { LOC_INCREMENTING_VALUE, LOC_VALUE } from \"../../locKeys\";\r\nimport { string2number } from \"../../utils\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class IncrementDateTime extends Action {\r\n public attrName: string;\r\n public precision: DateTimePrecision;\r\n public value: number;\r\n\r\n constructor(attrName: string, precision: string, value: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.attrName = attrName;\r\n this.precision = (DateTimePrecision as any)[precision];\r\n this.value = string2number(value, 1);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_VALUE, LOC_INCREMENTING_VALUE));\r\n }\r\n}\r\n\r\nexport enum DateTimePrecision {\r\n second = \"second\",\r\n minute = \"minute\",\r\n hour = \"hour\",\r\n day = \"day\",\r\n week = \"week\",\r\n month = \"month\",\r\n year = \"year\",\r\n number = \"number\",\r\n}\r\n","import { LOC_INCREMENTING_VALUE, LOC_VALUE } from \"../../locKeys\";\r\nimport { string2number } from \"../../utils\";\r\nimport { Action } from \"./Action\";\r\nimport { DateTimePrecision } from \"./IncrementDateTime\";\r\n\r\nexport class IncrementNumber extends Action {\r\n public attrName: string;\r\n public value: number;\r\n public readonly precision: DateTimePrecision = DateTimePrecision.number;\r\n\r\n constructor(attrName: string, value: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.attrName = attrName;\r\n this.value = string2number(value, 1);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_VALUE, LOC_INCREMENTING_VALUE));\r\n }\r\n}\r\n","import { LOC_FORM, LOC_FORM_OPENING, LOC_REPORT_NAME } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class OpenForm extends Action {\r\n public formType: FormType;\r\n public formClass: string;\r\n public reportName: string;\r\n public masterLinkToAttr: string;\r\n public formCondition: string;\r\n\r\n constructor(formType: string, formClass: string, reportName: string, masterLinkToAttr: string, formCondition: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.formType = OpenForm.getFormType(formType);\r\n this.formClass = this.formType !== FormType.report ? formClass : \"\";\r\n this.reportName = this.formType === FormType.report ? reportName : \"\";\r\n this.masterLinkToAttr = this.formType !== FormType.report ? masterLinkToAttr : \"\";\r\n this.formCondition = this.formType !== FormType.report ? formCondition : \"\";\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (this.formType !== FormType.report) {\r\n if (!this.formClass)\r\n throw new Error(await this.getActionErrorMessage(LOC_FORM, LOC_FORM_OPENING));\r\n } else {\r\n if (!this.reportName)\r\n throw new Error(await this.getActionErrorMessage(LOC_REPORT_NAME, LOC_FORM_OPENING));\r\n }\r\n }\r\n\r\n private static getFormType(stringFormType: string): FormType {\r\n const type = (FormType as any)[stringFormType];\r\n\r\n if (type != null)\r\n return type;\r\n if (stringFormType === \"-1\")\r\n return FormType.report;\r\n if (stringFormType === \"0\")\r\n return FormType.form;\r\n if (stringFormType === \"1\")\r\n return FormType.printForm;\r\n if (stringFormType === \"2\")\r\n return FormType.actionForm;\r\n return FormType.form;\r\n }\r\n}\r\n\r\nexport enum FormType {\r\n report = \"report\",\r\n form = \"form\",\r\n printForm = \"printForm\",\r\n actionForm = \"actionForm\",\r\n}\r\n","import { LOC_ADDRESS_TYPE, LOC_ADDRESSEE, LOC_ATTRIBUTE_NAME, LOC_CLASS, LOC_EMAIL, LOC_TEXT } from \"../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../utils\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class SendMail extends Action {\r\n public recipientType: SendMessageRecipientType;\r\n public recipient: string;\r\n public className: string;\r\n public attrName: string;\r\n public dataCondition: string;\r\n public subject: string;\r\n public text: string;\r\n public reportTemplate: string;\r\n public summaryMail: boolean;\r\n public format: MessageFormat;\r\n public documentClassName: string;\r\n public documentAttribute: string;\r\n public documentCondition: string;\r\n public documentConditionParams: string;\r\n public sendPostpone: boolean;\r\n\r\n constructor(recipientType: string, recipient: string, className: string, attrName: string, dataCondition: string, subject: string, text: string, reportTemplate: string, summaryMail: string, format: string, documentClassName: string, documentAttribute: string, documentCondition: string, documentConditionParams: string, sendPostpone: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.recipientType = (SendMessageRecipientType as any)[recipientType];\r\n this.recipient = SendMail.isRecipientRequired(this.recipientType) ? recipient : \"\";\r\n this.className = className.trim();\r\n this.attrName = attrName.trim();\r\n this.dataCondition = dataCondition.trim();\r\n this.subject = subject;\r\n this.text = text;\r\n this.reportTemplate = reportTemplate;\r\n this.summaryMail = parseStringToBoolean(summaryMail, false);\r\n this.format = (MessageFormat as any)[format];\r\n this.documentClassName = documentClassName;\r\n this.documentAttribute = documentAttribute;\r\n this.documentCondition = documentCondition;\r\n this.documentConditionParams = documentConditionParams;\r\n this.sendPostpone = parseStringToBoolean(sendPostpone, false);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.recipientType)\r\n throw new Error(await this.getActionErrorMessage(LOC_ADDRESS_TYPE, LOC_EMAIL));\r\n\r\n if (this.recipientType === SendMessageRecipientType.condition) {\r\n if (!this.className)\r\n throw new Error(await this.getActionErrorMessage(LOC_CLASS, LOC_EMAIL));\r\n\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_ATTRIBUTE_NAME, LOC_EMAIL));\r\n }\r\n\r\n if (SendMail.isRecipientRequired(this.recipientType) && !this.recipient)\r\n throw new Error(await this.getActionErrorMessage(LOC_ADDRESSEE, LOC_EMAIL));\r\n\r\n if (!this.text)\r\n throw new Error(await this.getActionErrorMessage(LOC_TEXT, LOC_EMAIL));\r\n }\r\n\r\n private static isRecipientRequired(recipientType: SendMessageRecipientType): boolean {\r\n return recipientType !== SendMessageRecipientType.actualUser\r\n && recipientType !== SendMessageRecipientType.owner\r\n && recipientType !== SendMessageRecipientType.participants\r\n && recipientType !== SendMessageRecipientType.nextParticipants\r\n && recipientType !== SendMessageRecipientType.condition;\r\n }\r\n}\r\n\r\nexport enum MessageFormat {\r\n text = \"text\",\r\n HTML = \"HTML\",\r\n}\r\n\r\nexport enum SendMessageRecipientType {\r\n value = \"value\",\r\n attributeValue = \"attributeValue\",\r\n actualUser = \"actualUser\",\r\n owner = \"owner\",\r\n participants = \"participants\",\r\n nextParticipants = \"nextParticipants\",\r\n role = \"role\",\r\n okruh = \"okruh\",\r\n condition = \"condition\",\r\n}\r\n","import { LOC_ADDRESS_TYPE, LOC_ADDRESSEE, LOC_ATTRIBUTE_NAME, LOC_CLASS, LOC_SMS, LOC_TEXT } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class SendSMS extends Action {\r\n public recipient: string;\r\n public className: string;\r\n public attrName: string;\r\n public dataCondition: string;\r\n public text: string;\r\n public recipientType: SendSmsRecipientType;\r\n\r\n constructor(recipient: string, className: string, attrName: string, dataCondition: string, text: string, recipientType: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.recipientType = (SendSmsRecipientType as any)[recipientType];\r\n this.recipient = SendSMS.isRecipientRequired(this.recipientType) ? recipient : \"\";\r\n this.className = className.trim();\r\n this.attrName = attrName.trim();\r\n this.dataCondition = dataCondition.trim();\r\n this.text = text;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.recipientType)\r\n throw new Error(await this.getActionErrorMessage(LOC_ADDRESS_TYPE, LOC_SMS));\r\n\r\n if (this.recipientType === SendSmsRecipientType.condition) {\r\n if (!this.className)\r\n throw new Error(await this.getActionErrorMessage(LOC_CLASS, LOC_SMS));\r\n\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_ATTRIBUTE_NAME, LOC_SMS));\r\n }\r\n\r\n if (SendSMS.isRecipientRequired(this.recipientType) && !this.recipient)\r\n throw new Error(await this.getActionErrorMessage(LOC_ADDRESSEE, LOC_SMS));\r\n\r\n if (!this.text)\r\n throw new Error(await this.getActionErrorMessage(LOC_TEXT, LOC_SMS));\r\n }\r\n\r\n private static isRecipientRequired(recipientType: SendSmsRecipientType): boolean {\r\n return recipientType !== SendSmsRecipientType.actualUser\r\n && recipientType !== SendSmsRecipientType.owner\r\n && recipientType !== SendSmsRecipientType.participants\r\n && recipientType !== SendSmsRecipientType.nextParticipants\r\n && recipientType !== SendSmsRecipientType.condition;\r\n }\r\n}\r\n\r\n/**\r\n * Enum popisující typ adresáta (byl rozdělen od emailového recipientType, narozdíl od Silverlightu, kde by společný)\r\n */\r\nexport enum SendSmsRecipientType {\r\n value = \"value\",\r\n attributeValue = \"attributeValue\",\r\n actualUser = \"actualUser\",\r\n owner = \"owner\",\r\n participants = \"participants\",\r\n nextParticipants = \"nextParticipants\",\r\n role = \"role\",\r\n okruh = \"okruh\",\r\n condition = \"condition\",\r\n}\r\n","import { LOC_OUTGOING_MESSAGE_WF, LOC_SENDING_OF_WF_MESSAGE } from \"../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../utils\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class SendWFMessage extends Action {\r\n public messageName: string;\r\n public targetObjectName: string;\r\n public objectsCondition: string;\r\n public objectsConditionParams: string;\r\n public afterSave: boolean;\r\n\r\n constructor(messageName: string, targetObjectName: string, objectsCondition: string, objectsConditionParams: string, afterSave: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.messageName = messageName;\r\n this.targetObjectName = targetObjectName;\r\n this.objectsCondition = objectsCondition;\r\n this.objectsConditionParams = objectsConditionParams;\r\n this.afterSave = parseStringToBoolean(afterSave, false);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.messageName)\r\n throw new Error(await this.getActionErrorMessage(LOC_OUTGOING_MESSAGE_WF, LOC_SENDING_OF_WF_MESSAGE));\r\n }\r\n}\r\n","import { LOC_ATTRIBUTE_CHANGE, LOC_CHANGED_ATTRIBUTE } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nconst SYSDATE_WILDCARD = \"#SYSDATE\";\r\nconst SYSDATETIME_WILDCARD = \"#SYSDATETIME\";\r\nconst SYSTIME_WILDCARD = \"#SYSTIME\";\r\n\r\nexport class SetAttribute extends Action {\r\n public attrName: string;\r\n public value: string | null;\r\n public valueType: SetAttributeValueType;\r\n\r\n constructor(attrName: string, value: string | null, valueType: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.attrName = attrName;\r\n this.valueType = SetAttribute._getValueType(value, valueType);\r\n this.value = SetAttribute._getValue(value, this.valueType);\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_CHANGED_ATTRIBUTE, LOC_ATTRIBUTE_CHANGE));\r\n }\r\n\r\n private static _getValueType(valueFromXml: string | null, stringValueType: string): SetAttributeValueType {\r\n const upperCaseValue = valueFromXml?.toUpperCase();\r\n const valueType = (SetAttributeValueType as any)[stringValueType];\r\n\r\n if (valueType === SetAttributeValueType.sysDate || upperCaseValue === SYSDATE_WILDCARD)\r\n return SetAttributeValueType.sysDate;\r\n\r\n if (valueType === SetAttributeValueType.sysDateTime || upperCaseValue === SYSDATETIME_WILDCARD)\r\n return SetAttributeValueType.sysDateTime;\r\n\r\n if (valueType === SetAttributeValueType.sysTime || upperCaseValue === SYSTIME_WILDCARD)\r\n return SetAttributeValueType.sysTime;\r\n\r\n if (valueFromXml === null || valueFromXml === \"\")\r\n return SetAttributeValueType.typedValue;\r\n\r\n return SetAttributeValueType.untypedValue;\r\n }\r\n\r\n private static _getValue(valueFromXml: string | null, valueType: SetAttributeValueType): string | null {\r\n if (valueType === SetAttributeValueType.sysDate)\r\n return SYSDATE_WILDCARD;\r\n if (valueType === SetAttributeValueType.sysDateTime)\r\n return SYSDATETIME_WILDCARD;\r\n if (valueType === SetAttributeValueType.sysTime)\r\n return SYSTIME_WILDCARD;\r\n\r\n return valueFromXml;\r\n }\r\n}\r\n\r\n// Typ nové hodnoty, musí lowerCase!\r\nexport enum SetAttributeValueType {\r\n sysDate = \"sysDate\",\r\n sysDateTime = \"sysDateTime\",\r\n sysTime = \"sysTime\",\r\n typedValue = \"typedValue\",\r\n untypedValue = \"untypedValue\",\r\n}\r\n","import { LOC_CHANGE_OF_BINDING_ATTRIBUTE, LOC_CHANGED_ATTRIBUTE } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class SetObjectAttribute extends Action {\r\n public attrName: string;\r\n public value: string;\r\n public masterClassName: string;\r\n public masterAttrName: string;\r\n\r\n constructor(attrName: string, value: string, masterClassName: string, masterAttrName: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.attrName = attrName;\r\n this.value = value;\r\n this.masterClassName = masterClassName;\r\n this.masterAttrName = masterAttrName;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.attrName)\r\n throw new Error(await this.getActionErrorMessage(LOC_CHANGED_ATTRIBUTE, LOC_CHANGE_OF_BINDING_ATTRIBUTE));\r\n }\r\n}\r\n","import { LOC_CHANGED_DATA, LOC_SETTING_VALUE } from \"../../locKeys\";\r\nimport { Action } from \"./Action\";\r\n\r\nexport class SetValue extends Action {\r\n public name: string;\r\n public value: string;\r\n\r\n constructor(name: string, value: string, condition: string, comment: string) {\r\n super(condition, comment);\r\n\r\n this.name = name;\r\n this.value = value;\r\n }\r\n\r\n public override async validate(): Promise<void> {\r\n if (!this.name)\r\n throw new Error(await this.getActionErrorMessage(LOC_CHANGED_DATA, LOC_SETTING_VALUE));\r\n }\r\n}\r\n","export * from \"./Action\";\r\nexport * from \"./CallMethod\";\r\nexport * from \"./CallScript\";\r\nexport * from \"./IncrementDateTime\";\r\nexport * from \"./IncrementNumber\";\r\nexport * from \"./OpenForm\";\r\nexport * from \"./SendMail\";\r\nexport * from \"./SendSMS\";\r\nexport * from \"./SendWFMessage\";\r\nexport * from \"./SetAttribute\";\r\nexport * from \"./SetObjectAttribute\";\r\nexport * from \"./SetValue\";\r\n","export class Set {\r\n public id: string;\r\n public name: string;\r\n public description: string;\r\n\r\n constructor(name: string, description: string, index: number, id?: string) {\r\n this.id = id ?? index.toString(); // V budoucnu by bylo dobré zavést id sady i v xml-ku\r\n this.name = name;\r\n this.description = description;\r\n }\r\n}\r\n","import { Set } from \"./Set\";\r\n\r\nexport class Position {\r\n public x: number;\r\n public y: number;\r\n public width: number;\r\n public height: number;\r\n public set: Set;\r\n\r\n constructor(x: number, y: number, width: number, height: number, set: Set) {\r\n if (x < 0)\r\n throw new Error(`Relative left position of activity in the set '${set.name}' cannot be less then zero!`);\r\n\r\n if (y < 0)\r\n throw new Error(`Relative top position of activity in the set '${set.name}' cannot be less then zero!`);\r\n\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n this.set = set;\r\n }\r\n}\r\n","export class Point {\r\n public x: number;\r\n public y: number;\r\n\r\n constructor(x: number, y: number) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n}\r\n","import { Action } from \"./Actions\";\r\nimport { Point } from \"./Point\";\r\n\r\nexport class Transition {\r\n public id: string;\r\n public name = \"\";\r\n public to: string;\r\n public condition: string = \"\";\r\n public isActive = false;\r\n public points: Point[];\r\n public setId: string;\r\n public actions: Action[];\r\n\r\n constructor(id: string, to: string, points: Point[], setId: string, actions: Action[]) {\r\n this.id = id;\r\n this.to = to;\r\n this.points = points;\r\n this.setId = setId;\r\n this.actions = actions;\r\n }\r\n}\r\n","import { ParticipantType } from \"../enums\";\r\nimport { IVariable } from \"../types\";\r\n\r\nexport class WorkflowStatus {\r\n public activeActivities: ActiveActivity[];\r\n public variables: IVariable[];\r\n public isWfEnded: boolean;\r\n\r\n constructor(activeActivities: ActiveActivity[], variables: IVariable[], isWfEnded: boolean) {\r\n this.activeActivities = activeActivities;\r\n this.variables = variables;\r\n this.isWfEnded = isWfEnded;\r\n }\r\n}\r\n\r\n/** Typ reprezentující aktivní aktivitu. Používá se při zobrazení stavu WF. */\r\nexport type ActiveActivity = {\r\n parentActivityId: string;\r\n activityId: string;\r\n order: number;\r\n activatedInputTransitionIds: string[];\r\n /** Zdědění \"aktivní\" hráči */\r\n activeParticipants: ActualizedParticipant[];\r\n};\r\n\r\n/** Typ reprezentující aktivního hráče. Pro jednoduchost uvádíme jen tyto základní vlsatnosti. Pokud bude v budoucnu potřeba, může být nahrazen abstraktní třídou Participant.*/\r\nexport type ActualizedParticipant = {\r\n type: ParticipantType;\r\n id: string;\r\n name: string;\r\n};\r\n","import { Action } from \"./Actions\";\r\nimport { Participant } from \"./Participants\";\r\nimport { Position } from \"./Position\";\r\nimport { Transition } from \"./Transition\";\r\nimport { Trigger } from \"./Triggers\";\r\nimport { ActualizedParticipant } from \"./WorkflowStatus\";\r\n\r\nexport class Activity {\r\n public id: string;\r\n public type: ActivityType;\r\n public condition: string = \"\";\r\n public runCondition: string = \"\";\r\n public order = 0;\r\n public killChildren = true;\r\n public showInWfHistory = true;\r\n public inheritParticipants = false;\r\n public inputTransType: IOTransitionType = IOTransitionType.xor;\r\n public outputTransType: IOTransitionType = IOTransitionType.and;\r\n public description = \"\";\r\n public name = \"\";\r\n public isActive = false;\r\n\r\n public actions: Action[];\r\n public participants: Participant[];\r\n public activeParticipants: ActualizedParticipant[] = [];\r\n public triggers: Trigger[];\r\n public transitions: Transition[];\r\n public positions: Position[];\r\n\r\n constructor(id: string, type: ActivityType, actions: Action[], participants: Participant[], triggers: Trigger[], transitions: Transition[], positions: Position[]) {\r\n if (!id)\r\n throw new Error(\"Activitty ID cannot be null or empty!\");\r\n\r\n this.id = id;\r\n this.type = type;\r\n this.actions = actions;\r\n this.participants = participants;\r\n this.triggers = triggers;\r\n this.transitions = transitions;\r\n this.positions = positions;\r\n }\r\n}\r\n\r\nexport enum ActivityType {\r\n start = \"start\",\r\n normal = \"normal\",\r\n end = \"end\",\r\n}\r\n\r\nexport enum IOTransitionType {\r\n xor = \"xor\",\r\n and = \"and\",\r\n}\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { Activity, ActivityType } from \"./Activity\";\r\nimport { DefinitionParticipant } from \"./Participants\";\r\nimport { Point } from \"./Point\";\r\nimport { Position } from \"./Position\";\r\nimport { Set } from \"./Set\";\r\nimport { Transition } from \"./Transition\";\r\nimport { Menu, Trigger } from \"./Triggers\";\r\nimport { WorkflowStatus } from \"./WorkflowStatus\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\n/** Udává aktuální verzi WorkflowDefinition. */\r\nconst ACTUAL_DEFINITION_VERSION = 9.03; //9.0f;// 8.03f;// 3.01f;\r\n/** Šířka normální aktivity. */\r\nconst NOMRAL_ACTIVITY_WIDTH = 100;\r\n/** Šířka startovací/konečné aktivity. */\r\nconst START_END_ACTIVITY_WIDTH = 60;\r\n/** Výška aktivity. */\r\nconst ACTIVITY_HEIGHT = 60;\r\n/** Poziční offset prvků workflow, pokud dochází k duplikaci v rámci téže sady. */\r\nconst DUPLICATION_OFFSET = 20;\r\n\r\n/** Pomocný typ, který propojení přidává navíc i ID počáteční aktivity. */\r\ntype FromTransition = {\r\n fromId: string;\r\n transition: Transition;\r\n};\r\n\r\nexport class Workflow {\r\n public version: string;\r\n public definitionVersion: string;\r\n public identifier: string;\r\n public className: string;\r\n\r\n public sets: Set[];\r\n public activities: Activity[];\r\n public definitionParticipants: DefinitionParticipant[];\r\n\r\n constructor(version: string, definitionVersion: string, identifier: string, className: string, sets: Set[], activities: Activity[], definitionParticipants: DefinitionParticipant[]) {\r\n this.version = version;\r\n this.definitionVersion = definitionVersion === \"\" ? ACTUAL_DEFINITION_VERSION.toString() : definitionVersion;\r\n this.identifier = identifier;\r\n this.className = className;\r\n this.sets = sets;\r\n this.activities = activities;\r\n this.definitionParticipants = definitionParticipants;\r\n }\r\n\r\n public get isAnyActivtyOfStartType(): boolean {\r\n return this.activities.some(activity => activity.type === ActivityType.start);\r\n }\r\n\r\n public get isAnyActivtyOfEndType(): boolean {\r\n return this.activities.some(activity => activity.type === ActivityType.end);\r\n }\r\n\r\n /** Vrací seznam akttivit, které se nenacházejí na aktuálně zvolené sadě. */\r\n public getExistingActivities(setId: string): Activity[] {\r\n return this.activities.filter(activity => activity.positions.every(position => position.set.id !== setId));\r\n }\r\n\r\n public addSet(name: string, description: string, id?: string): void {\r\n this.sets.push(new Set(name, description, this.sets.length, id));\r\n }\r\n\r\n public removeSet(setId: string): void {\r\n if (this.sets.length === 1) // Měla by být dostupná aspoň jedna sada vždy\r\n return;\r\n\r\n this.sets = this.sets.filter(set => set.id !== setId);\r\n\r\n const activitiesIndexesToRemove: number[] = [];\r\n\r\n // Z každé aktivity musíme odebrat referenci na sadu, kterou mažeme\r\n for (let i = 0; i < this.activities.length; i++) {\r\n const filteredTransitions = this.activities[i].transitions.filter(transition => transition.setId !== setId);\r\n this.activities[i].transitions = filteredTransitions;\r\n\r\n const filteredPositions = this.activities[i].positions.filter(position => position.set.id !== setId);\r\n this.activities[i].positions = filteredPositions;\r\n\r\n if (filteredPositions.length === 0)\r\n activitiesIndexesToRemove.push(i);\r\n }\r\n\r\n // Odebíráme aktivity, které by už nebyly v žádné sadě\r\n this.activities = this.activities.filter((_activity, index) => !activitiesIndexesToRemove.includes(index));\r\n }\r\n\r\n public addActivity(activityType: ActivityType, setId: string, left: number, top: number): string {\r\n const newActivityId = this._getNewId();\r\n const width = activityType === ActivityType.normal ? NOMRAL_ACTIVITY_WIDTH : START_END_ACTIVITY_WIDTH;\r\n const position = new Position(left, top, width, ACTIVITY_HEIGHT, this.sets.find(set => set.id === setId)!);\r\n\r\n const newActivity = new Activity(newActivityId, activityType, [], [], [], [], [position]);\r\n newActivity.name = newActivityId.toString();\r\n this.activities.push(newActivity);\r\n\r\n return newActivityId;\r\n }\r\n\r\n public addTransition(from: string, to: string, setId: string): string {\r\n if (from === to)\r\n return this._createSelfReferencingTransition(from, setId);\r\n\r\n const fromActivity = this.activities.find(activity => activity.id === from);\r\n const toActivity = this.activities.find(activity => activity.id === to);\r\n\r\n if (fromActivity == null || toActivity == null)\r\n throw new Error(\"Activity does not exist!\");\r\n\r\n const fromPosition = fromActivity.positions.find(position => position.set.id === setId);\r\n const toPosition = toActivity.positions.find(position => position.set.id === setId);\r\n\r\n if (fromPosition == null || toPosition == null)\r\n throw new Error(\"Activity does not have position in given set!\");\r\n\r\n const points: Point[] = [\r\n { x: fromPosition.x + fromPosition.width / 2, y: fromPosition.y + fromPosition.height / 2 },\r\n { x: toPosition.x + toPosition.width / 2, y: toPosition.y + toPosition.height / 2 },\r\n ];\r\n\r\n const newId = this._getNewId();\r\n const newTransition = new Transition(newId, to, points, setId, []);\r\n\r\n fromActivity.transitions.push(newTransition);\r\n\r\n return newTransition.id;\r\n }\r\n\r\n /**\r\n * Funkce vymaže aktivitu. Pokud bude aktivita pouze v jedné sadě nebo se neuvede parametr @param setId,\r\n * tak se provede smazání z celého workflow. Jinak se smaže pouze reference v dané sadě.\r\n * @param activityId Id aktivity ke smazání.\r\n * @param setId Id sady, ze které se má aktivita smazat (smaže se z celého workflow, pokud parametr nebude uveden).\r\n */\r\n public deleteActivity(activityId: string, setId?: string): void {\r\n const activity = this.activities.find(act => act.id === activityId);\r\n\r\n if (activity == null)\r\n throw new Error(`Activity with id '${activityId}' does not exist! Could not delete it.`);\r\n\r\n if (setId === undefined || activity.positions.length <= 1) {\r\n this._deleteActivityFromWorkflow(activityId);\r\n return;\r\n }\r\n\r\n this._deleteActivityFromSet(activity, setId);\r\n }\r\n\r\n public deleteTransition(activityId: string, transitionId: string): void {\r\n const activity = this.activities.find(act => act.id === activityId);\r\n\r\n if (activity == null)\r\n throw new Error(\"Activity does not exist!\");\r\n\r\n activity.transitions = activity.transitions.filter(transition => transition.id !== transitionId);\r\n }\r\n\r\n /**\r\n * Duplikuje seznam aktivit včetně propojení, která jsou mezi nimi.\r\n * @param activitiesIds Seznam aktivit ke zduplikování.\r\n * @param destinationSetId ID cílové sady, do které se mají objekty zduplikovat.\r\n * @param originalSetId ID sady ze které se duplikuje.\r\n * @returns ID první zduplikované aktivity.\r\n */\r\n public duplicateActivities(activitiesIds: readonly string[], destinationSetId: string, originalSetId: string): string {\r\n const destinationSet = this.sets.find(set => set.id === destinationSetId);\r\n const activitiesToDuplicate = this.activities.filter(act => activitiesIds.includes(act.id) && act.type !== ActivityType.start);\r\n const transitionsToDuplicate: FromTransition[] = [];\r\n\r\n if (destinationSet == null)\r\n throw new Error(`Set \"${destinationSetId}\" does not exist!`);\r\n\r\n for (const activity of activitiesToDuplicate) {\r\n for (const transition of activity.transitions) {\r\n if (activitiesToDuplicate.some(act => act.id === transition.to))\r\n transitionsToDuplicate.push({ fromId: activity.id, transition });\r\n }\r\n }\r\n\r\n const duplicatedActivities = activitiesToDuplicate.map(\r\n activityToDuplicate => this._duplicateActivity(activityToDuplicate, destinationSet, originalSetId),\r\n );\r\n\r\n this._duplicateTransitions(transitionsToDuplicate, activitiesToDuplicate, duplicatedActivities, destinationSetId);\r\n\r\n return duplicatedActivities[0].id;\r\n }\r\n\r\n public removeDefinitionParticipant(defParticipantIdentifier: string): void {\r\n // odebrání referencí na definičního hráče z aktivit\r\n this.activities.forEach(activity => {\r\n activity.participants = activity.participants.filter(participant => {\r\n if (participant.constructor !== DefinitionParticipant)\r\n return true;\r\n\r\n return (participant as DefinitionParticipant).identifier !== defParticipantIdentifier;\r\n });\r\n });\r\n\r\n // odebrání samotného definičního hráče\r\n this.definitionParticipants = this.definitionParticipants.filter(defParticipant => defParticipant.identifier !== defParticipantIdentifier);\r\n }\r\n\r\n public applyWorkflowStatus(wfStatus: WorkflowStatus): void {\r\n const isWfEnded = wfStatus.isWfEnded;\r\n\r\n if (isWfEnded) {\r\n this.activities.forEach(activity => {\r\n if (activity.type === ActivityType.end)\r\n activity.isActive = true;\r\n });\r\n return;\r\n }\r\n\r\n this.activities.forEach(activity => {\r\n const foundActiveActivity = wfStatus.activeActivities.find(aa => aa.activityId === activity.id);\r\n\r\n if (foundActiveActivity) {\r\n activity.isActive = true;\r\n activity.activeParticipants = foundActiveActivity.activeParticipants;\r\n }\r\n\r\n activity.transitions.forEach(transition => {\r\n wfStatus.activeActivities.forEach(aa => {\r\n if (aa.activityId === transition.to && aa.parentActivityId === activity.id)\r\n transition.isActive = true;\r\n\r\n if (aa.activatedInputTransitionIds.includes(transition.id))\r\n transition.isActive = true;\r\n });\r\n });\r\n });\r\n }\r\n\r\n private _duplicateActivity(activity: Activity, set: Set, originalSetId: string): Activity {\r\n const width = activity.type === ActivityType.normal ? NOMRAL_ACTIVITY_WIDTH : START_END_ACTIVITY_WIDTH;\r\n const oldPosition = activity.positions.find(position => position.set.id === originalSetId);\r\n\r\n if (!oldPosition)\r\n throw new Error(\"No old position of activity found!\");\r\n\r\n const newX = set.id === originalSetId ? oldPosition.x + DUPLICATION_OFFSET : oldPosition.x;\r\n const newY = set.id === originalSetId ? oldPosition.y + DUPLICATION_OFFSET : oldPosition.y;\r\n const newPosition = new Position(newX, newY, width, ACTIVITY_HEIGHT, set);\r\n const duplicatedTriggers = this._duplicateTriggers(activity.triggers);\r\n const newDuplicatedActivity = new Activity(this._getNewId(), activity.type, activity.actions, activity.participants, duplicatedTriggers, [], [newPosition]);\r\n\r\n const { name, showInWfHistory, killChildren, description, inheritParticipants, condition, runCondition, order, inputTransType, outputTransType } = activity;\r\n newDuplicatedActivity.name = name;\r\n newDuplicatedActivity.showInWfHistory = showInWfHistory;\r\n newDuplicatedActivity.killChildren = killChildren;\r\n newDuplicatedActivity.description = description;\r\n newDuplicatedActivity.inheritParticipants = inheritParticipants;\r\n newDuplicatedActivity.condition = condition;\r\n newDuplicatedActivity.runCondition = runCondition;\r\n newDuplicatedActivity.order = order;\r\n newDuplicatedActivity.inputTransType = inputTransType;\r\n newDuplicatedActivity.outputTransType = outputTransType;\r\n this.activities.push(newDuplicatedActivity);\r\n\r\n return newDuplicatedActivity;\r\n }\r\n\r\n private _duplicateTransitions(transToDuplicate: FromTransition[], activitiesToDuplicate: Activity[], duplicatedActivities: Activity[], destSetId: string): void {\r\n if (transToDuplicate.length === 0)\r\n return;\r\n\r\n for (let i = 0; i < activitiesToDuplicate.length; i++) {\r\n const duplicableTransitions = transToDuplicate.filter(tran => tran.fromId === activitiesToDuplicate[i].id);\r\n\r\n if (duplicableTransitions.length === 0)\r\n continue;\r\n\r\n duplicatedActivities[i].transitions = duplicableTransitions.map(({ transition }) => {\r\n const adequateIndex = activitiesToDuplicate.findIndex(act => act.id === transition.to);\r\n return this._duplicateTransition(transition, destSetId, duplicatedActivities[adequateIndex].id);\r\n });\r\n }\r\n }\r\n\r\n private _duplicateTransition(transition: Transition, destSetId: string, to: string): Transition {\r\n const newPoints = destSetId === transition.setId\r\n ? transition.points.map(point => new Point(point.x + DUPLICATION_OFFSET, point.y + DUPLICATION_OFFSET)) : transition.points;\r\n const duplicatedTransition = new Transition(this._getNewId(), to, newPoints, destSetId, transition.actions);\r\n const { name, condition } = transition;\r\n duplicatedTransition.name = name;\r\n duplicatedTransition.condition = condition;\r\n\r\n return duplicatedTransition;\r\n }\r\n\r\n private _duplicateTriggers(oldTriggers: readonly Trigger[]): Trigger[] {\r\n return oldTriggers.map(trigger => {\r\n if (trigger instanceof Menu)\r\n return new Menu(generateUUID(), trigger.codename, trigger.iconName, trigger.participantsSelecting.toString(), trigger.multiActionEnable.toString(), trigger.validatePostReq.toString(), trigger.validateRecommended.toString(), trigger.chooseFromUsersDefault.toString(), trigger.masterNode, trigger.paramFormName, trigger.linkAttrForSelObj, trigger.setValues, trigger.captions, trigger.confirmMessages);\r\n return trigger;\r\n });\r\n }\r\n\r\n private _deleteActivityFromSet(activity: Activity, setId: string): void {\r\n //musím smazat příslušnou Transition a Position\r\n const transitions = activity.transitions.filter(transition => transition.setId !== setId);\r\n activity.transitions = transitions;\r\n\r\n const positions = activity.positions.filter(position => position.set.id !== setId);\r\n activity.positions = positions;\r\n\r\n //musím vymazat i vazby jiných aktivit na danou aktivitu v dané sadě\r\n for (let i = 0; i < this.activities.length; i++) {\r\n const filteredTransitions = this.activities[i].transitions.filter(transition => transition.setId !== setId || transition.to !== activity.id);\r\n this.activities[i].transitions = filteredTransitions;\r\n }\r\n }\r\n\r\n private _deleteActivityFromWorkflow(activityId: string): void {\r\n //musím smazat příslušnou Activity\r\n this.activities = this.activities.filter(activity => activity.id !== activityId);\r\n\r\n //musím vymazat i vazby jiných aktivit na danou aktivitu ve všech sadách\r\n for (let i = 0; i < this.activities.length; i++) {\r\n const filteredTransitions = this.activities[i].transitions.filter(transition => transition.to !== activityId);\r\n this.activities[i].transitions = filteredTransitions;\r\n }\r\n }\r\n\r\n /** Vytvoří propojení, které vede do stejné aktivity, ze které bylo vytvořeno. */\r\n private _createSelfReferencingTransition = (activityId: string, setId: string): string => {\r\n const activity = this.activities.find(activity => activity.id === activityId);\r\n\r\n if (activity == null)\r\n throw new Error(\"Activity does not exist!\");\r\n\r\n const position = activity.positions.find(position => position.set.id === setId);\r\n\r\n if (position == null)\r\n throw new Error(\"Activity does not have poisition in given set!\");\r\n\r\n const points: Point[] = [\r\n { x: position.x + 20, y: position.y + 40 },\r\n { x: position.x + position.width - 20, y: position.y + 40 },\r\n ];\r\n\r\n const newId = this._getNewId();\r\n const newTransition = new Transition(newId, activity.id, points, setId, []);\r\n activity.transitions.push(newTransition);\r\n\r\n return newTransition.id;\r\n };\r\n\r\n /** Strašná metoda získávání id ze silverlightu, nutná kvůli zpětné kompatibilitě. Společné jak pro transition, tak pro activity */\r\n private _getNewId(): string {\r\n if (this.activities.length === 0)\r\n return \"ID_1\";\r\n\r\n let highestNumber = 1;\r\n\r\n this.activities.forEach(activity => {\r\n const idNumber = Number(activity.id.replace(\"ID_\", \"\"));\r\n if (idNumber > highestNumber)\r\n highestNumber = idNumber;\r\n\r\n activity.transitions.forEach(transition => {\r\n const idNumberTran = Number(transition.id.replace(\"ID_\", \"\"));\r\n if (idNumberTran > highestNumber)\r\n highestNumber = idNumberTran;\r\n });\r\n });\r\n\r\n return `ID_${highestNumber + 1}`;\r\n }\r\n}\r\n","export * from \"./Activity\";\r\nexport * from \"./constants\";\r\nexport * from \"./Point\";\r\nexport * from \"./Position\";\r\nexport * from \"./Set\";\r\nexport * from \"./Transition\";\r\nexport * from \"./utils\";\r\nexport * from \"./Workflow\";\r\n","import { Action } from \"redux\";\r\n\r\nimport { IComponent, ILink, ILoadStateAction, IPicassoState, LOAD_PICASSO_STATE as LOAD_WORKFLOW_ENTITIES } from \"@multiweb/picasso\";\r\nimport { MessageWindowComponentProps, MessageWindowProps } from \"@multiweb/reactComponents\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n CLEAR_PICASSO_HOST,\r\n CREATE_TRANSITION,\r\n DELETE_SELECTED_WF_ENTITIES,\r\n DELETE_SET,\r\n DIALOG_CANCELED,\r\n DIALOG_CONFIRMED,\r\n ENABLE_STATUS_VIEW,\r\n ENABLE_VIEWER_MODE,\r\n HIDE_MESSAGE_WINDOW,\r\n INIT_PICASSO_HOST,\r\n LOAD_ACTIVITY_HEADER,\r\n LOAD_TRANSITION_HEADER,\r\n SET_TOUCHED,\r\n SHOW_MESSAGE_WINDOW,\r\n TOGGLE_EDIT_DIALOGS_VISIBILITY,\r\n TOGGLE_GRID,\r\n UPDATE_ACTIVITY,\r\n UPDATE_ACTIVITY_PROPERTY_PANEL_STATE,\r\n UPDATE_DEFINITION_PARTICIPANTS,\r\n UPDATE_GENERAL_PROPERTY_PANEL_STATE,\r\n UPDATE_SETS,\r\n UPDATE_TRANSITION,\r\n UPDATE_TRANSITION_PROPERTY_PANEL_STATE,\r\n UPDATE_WORKFLOW_VIEW,\r\n} from \"./constants\";\r\nimport { ActionType, EditDialogType, ParticipantType, TriggerType, WorkflowEditorMode } from \"./enums\";\r\nimport { ActivityType, IOTransitionType } from \"./workflowModel\";\r\n\r\nexport type WorkflowEditorProps = {\r\n readonly hostKey: string;\r\n};\r\n\r\nexport interface IWorkflowEditorState {\r\n readonly instances: TypedObject<IHostInstanceState>;\r\n}\r\n\r\nexport interface IHostInstanceState {\r\n readonly picasso: IPicassoState;\r\n readonly wfEditorMode: WorkflowEditorMode;\r\n readonly isGridEnabled: boolean;\r\n readonly isEditDialogHidden: boolean;\r\n readonly touched: boolean;\r\n readonly selectedSetId: string;\r\n readonly orderedSetsIds: readonly string[];\r\n readonly sets: TypedObject<ISet>;\r\n readonly activities: readonly IActivity[];\r\n readonly transitions: readonly ITransition[];\r\n readonly activityPropertyPanelState: IActivityPropertyPanelState;\r\n readonly transitionPropertyPanelState: ITransitionPropertyPanelState;\r\n readonly generalPropertyPanelState: IGeneralPropertyPanelState;\r\n readonly definitionParticipants: readonly IParticipant[];\r\n readonly variables: readonly IVariable[];\r\n readonly wfMessageWindowState: WfMessageWindowState;\r\n}\r\n\r\nexport type WfMessageWindowState = {\r\n readonly isVisible: boolean;\r\n readonly actionId: string | null;\r\n readonly contentLocKey: string | null;\r\n readonly primaryButtonLocKey: string | null;\r\n readonly secondaryButtonLocKey: string | null;\r\n};\r\n\r\nexport type EditDialogState = {\r\n readonly isOpen: boolean;\r\n readonly type: EditDialogType | null;\r\n};\r\n\r\n/**\r\n * Stav používaný v komponentě ToolbarPanel.tsx sloužící pro redukci množství potřebných funkncí pro zobrazení MessageBoxu.\r\n */\r\nexport type MessageWindowState = {\r\n readonly isOpen: boolean;\r\n readonly properties: Pick<MessageWindowComponentProps, \"children\" | \"onPrimaryButtonClick\" | \"onCloseMessageWindow\"> & Pick<MessageWindowProps, \"primaryButtonLocKey\" | \"secondaryButtonLocKey\"> | null;\r\n};\r\n\r\nexport type ActivityPropertyContainers = \"PROPERTIES\" | \"ACTIONS\" | \"TRIGGERS\" | \"PARTICIPANTS\" | \"ACTIVE_PARTICIPANTS\" | \"SETS\";\r\n\r\nexport interface IActivityPropertyPanelState {\r\n readonly \"PROPERTIES\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"ACTIONS\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"TRIGGERS\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"PARTICIPANTS\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"ACTIVE_PARTICIPANTS\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"SETS\": {\r\n readonly isOpen: boolean;\r\n };\r\n}\r\n\r\nexport type TransitionPropertyContainers = \"PROPERTIES\" | \"ACTIONS\";\r\n\r\nexport interface ITransitionPropertyPanelState {\r\n readonly \"PROPERTIES\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"ACTIONS\": {\r\n readonly isOpen: boolean;\r\n };\r\n}\r\n\r\nexport type GeneralPropertyContainer = \"VARIABLES\" | \"LEGEND\" | \"SET\";\r\n\r\nexport interface IGeneralPropertyPanelState {\r\n readonly \"VARIABLES\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"LEGEND\": {\r\n readonly isOpen: boolean;\r\n };\r\n readonly \"SET\": {\r\n readonly isOpen: boolean;\r\n };\r\n}\r\n\r\nexport interface ISet {\r\n readonly id: string;\r\n readonly name: string;\r\n readonly description: string;\r\n}\r\n\r\nexport interface IActivity {\r\n readonly picassoIndex: number;\r\n readonly id: string;\r\n readonly condition: string;\r\n readonly runCondition: string;\r\n readonly type: ActivityType;\r\n readonly order: number;\r\n readonly killChildren: boolean;\r\n readonly showInWfHistory: boolean;\r\n readonly inheritParticipants: boolean;\r\n readonly inputTransType: IOTransitionType;\r\n readonly outputTransType: IOTransitionType;\r\n readonly description: string;\r\n readonly name: string;\r\n readonly isActive: boolean;\r\n readonly header?: string;\r\n\r\n readonly actions: readonly IAction[];\r\n readonly participants: readonly IParticipant[];\r\n readonly activeParticipants: readonly IParticipant[];\r\n readonly triggers: readonly ITrigger[];\r\n readonly positions: readonly IPosition[];\r\n}\r\n\r\nexport interface ITransition {\r\n readonly picassoIndex: number;\r\n readonly id: string;\r\n readonly name: string;\r\n readonly toIndex: number;\r\n readonly fromIndex: number;\r\n readonly condition: string;\r\n readonly setId: string;\r\n readonly isActive: boolean;\r\n readonly header?: string;\r\n readonly actions: readonly IAction[];\r\n}\r\n\r\nexport interface IAction {\r\n readonly actionType: ActionType;\r\n readonly locKey: string;\r\n readonly name: string;\r\n readonly properties: TypedObject<string>;\r\n}\r\n\r\nexport interface IParticipant {\r\n readonly identifier: string;\r\n readonly participantType: ParticipantType;\r\n readonly locKey: string;\r\n readonly name: string;\r\n readonly properties: TypedObject<string>;\r\n}\r\n\r\nexport interface ITrigger {\r\n readonly triggerType: TriggerType;\r\n readonly locKey: string;\r\n readonly name: string;\r\n readonly properties: TypedObject<string>;\r\n}\r\n\r\nexport interface IVariable {\r\n readonly name: string;\r\n readonly value: string;\r\n}\r\n\r\nexport interface IPosition {\r\n readonly setId: string;\r\n readonly setName: string;\r\n}\r\n\r\n/** Typ popisující propojení, které přísluší k aktivitě. */\r\nexport type ActivityTransition = {\r\n readonly transitionName: string;\r\n readonly transitionCondition: string;\r\n readonly otherActivityName: string;\r\n};\r\n\r\nexport interface IPicassoHostAction extends Action<string> {\r\n readonly meta: {\r\n readonly hostKey: string;\r\n };\r\n}\r\n\r\nexport class IPicassoHostAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance?.meta?.hostKey;\r\n }\r\n}\r\n\r\nexport interface IInitPicassoHostAction extends IPicassoHostAction {}\r\n\r\nexport class IInitPicassoHostAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === INIT_PICASSO_HOST;\r\n }\r\n}\r\n\r\nexport interface IClearPicassoHostAction extends IPicassoHostAction {}\r\n\r\nexport class IClearPicassoHostAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CLEAR_PICASSO_HOST;\r\n }\r\n}\r\n\r\nexport interface IEnableStatusViewAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly variables: readonly IVariable[];\r\n };\r\n}\r\n\r\nexport class IEnableStatusViewAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === ENABLE_STATUS_VIEW;\r\n }\r\n}\r\n\r\nexport interface IEnableViewerModeAction extends IPicassoHostAction { }\r\n\r\nexport class IEnableViewerModeAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === ENABLE_VIEWER_MODE;\r\n }\r\n}\r\n\r\nexport interface IToggleGridAction extends IPicassoHostAction {}\r\n\r\nexport class IToggleGridAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === TOGGLE_GRID;\r\n }\r\n}\r\n\r\nexport interface IToggleEditDialogsVisibilityAction extends IPicassoHostAction {}\r\n\r\nexport class IToggleEditDialogsVisibilityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === TOGGLE_EDIT_DIALOGS_VISIBILITY;\r\n }\r\n}\r\n\r\nexport interface ISetTouchedAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly touched: boolean;\r\n };\r\n}\r\n\r\nexport class ISetTouchedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SET_TOUCHED;\r\n }\r\n}\r\n\r\nexport interface ILoadWorkflowEntities extends ILoadStateAction, IPicassoHostAction {\r\n readonly meta: {\r\n readonly hostKey: string;\r\n readonly picassoInstanceKey: string;\r\n };\r\n readonly payload: {\r\n readonly selectedSetId?: string;\r\n readonly selectedComponentIndex?: number;\r\n readonly selectedLinkIndex?: number;\r\n readonly sets: readonly ISet[];\r\n readonly activities: readonly IActivity[];\r\n readonly transitions: readonly ITransition[];\r\n readonly components: readonly IComponent[];\r\n readonly links: readonly ILink[];\r\n readonly definitionParticipants: readonly IParticipant[];\r\n };\r\n}\r\n\r\nexport class ILoadWorkflowEntities {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && instance.type === LOAD_WORKFLOW_ENTITIES\r\n && instance.payload?.activities && instance.payload?.transitions\r\n && instance instanceof IPicassoHostAction;\r\n }\r\n}\r\n\r\nexport interface IUpdateSetsAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly newSets: readonly ISet[];\r\n };\r\n}\r\n\r\nexport class IUpdateSetsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_SETS;\r\n }\r\n}\r\n\r\nexport interface IUpdateActivityAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly picassoIndex: number;\r\n readonly newActivity: IActivity;\r\n };\r\n}\r\n\r\nexport class IUpdateActivityAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_ACTIVITY;\r\n }\r\n}\r\n\r\nexport interface IUpdateTransitionAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly index: number;\r\n readonly newTransition: ITransition;\r\n };\r\n}\r\n\r\nexport class IUpdateTransitionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_TRANSITION;\r\n }\r\n}\r\n\r\nexport interface IUpdateActivityPropertyPanelStateAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly containerName: ActivityPropertyContainers;\r\n readonly isExpanded: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateActivityPropertyPanelStateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_ACTIVITY_PROPERTY_PANEL_STATE;\r\n }\r\n}\r\n\r\nexport interface IUpdateTransitionPropertyPanelStateAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly containerName: TransitionPropertyContainers;\r\n readonly isExpanded: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateTransitionPropertyPanelStateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_TRANSITION_PROPERTY_PANEL_STATE;\r\n }\r\n}\r\n\r\nexport interface IUpdateGeneralPropertyPanelStateAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly containerName: GeneralPropertyContainer;\r\n readonly isExpanded: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateGeneralPropertyPanelStateAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_GENERAL_PROPERTY_PANEL_STATE;\r\n }\r\n}\r\n\r\nexport interface IUpdateDefinitionParticipantsAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly newParticipants: readonly IParticipant[];\r\n readonly newActivities?: readonly IActivity[];\r\n };\r\n}\r\n\r\nexport class IUpdateDefinitionParticipantsAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_DEFINITION_PARTICIPANTS;\r\n }\r\n}\r\n\r\nexport interface IUpdateWorkflowViewAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly setId: string;\r\n readonly selectedActivityId?: string;\r\n readonly selectedTransitionId?: string;\r\n readonly isNonEditChange: boolean;\r\n };\r\n}\r\n\r\nexport class IUpdateWorkflowViewAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === UPDATE_WORKFLOW_VIEW;\r\n }\r\n}\r\n\r\nexport interface ICreateTransitionAction extends IPicassoHostAction { }\r\n\r\nexport class ICreateTransitionAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === CREATE_TRANSITION;\r\n }\r\n}\r\n\r\nexport interface IDeleteSelectedWfEntitiesAction extends IPicassoHostAction { }\r\n\r\nexport class IDeleteSelectedWfEntitiesAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === DELETE_SELECTED_WF_ENTITIES;\r\n }\r\n}\r\n\r\nexport interface IDeleteSetAction extends IPicassoHostAction { }\r\n\r\nexport class IDeleteSetAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === DELETE_SET;\r\n }\r\n}\r\n\r\nexport interface ILoadActivityHeaderAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly picassoIndex: number;\r\n readonly wfStateCodes: readonly string[];\r\n };\r\n}\r\n\r\nexport class ILoadActivityHeaderAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_ACTIVITY_HEADER;\r\n }\r\n}\r\n\r\nexport interface ILoadTransitionHeaderAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly picassoIndex: number;\r\n readonly wfStateCodes: readonly string[];\r\n };\r\n}\r\n\r\nexport class ILoadTransitionHeaderAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === LOAD_TRANSITION_HEADER;\r\n }\r\n}\r\n\r\nexport interface IShowMessageWindowAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly actionId: string;\r\n readonly primaryButtonLocKey: string;\r\n readonly secondaryButtonLocKey: string;\r\n readonly contentLocKey: string;\r\n };\r\n}\r\n\r\nexport class IShowMessageWindowAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === SHOW_MESSAGE_WINDOW;\r\n }\r\n}\r\n\r\nexport interface IHideMessageWindowAction extends IPicassoHostAction { }\r\n\r\nexport class IHideMessageWindowAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === HIDE_MESSAGE_WINDOW;\r\n }\r\n}\r\n\r\nexport interface IDialogConfirmedAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly actionId: string;\r\n };\r\n}\r\n\r\nexport class IDialogConfirmedAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === DIALOG_CONFIRMED;\r\n }\r\n}\r\n\r\nexport interface IDialogCanceledAction extends IPicassoHostAction {\r\n readonly payload: {\r\n readonly actionId: string;\r\n };\r\n}\r\n\r\nexport class IDialogCanceledAction {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && instance.type === DIALOG_CANCELED;\r\n }\r\n}\r\n","import { ICustomizationState } from \"@multiweb/reactCustomization\";\r\nimport { IAggregationRowState } from \"../aggregationRow/types\";\r\nimport { LinkButtonMapState } from \"../components/LinkButton/types\";\r\nimport { IReportingScalarState } from \"../components/ReportingScalar/types\";\r\nimport { IControlsState } from \"../controls/types\";\r\nimport { ICoreState } from \"../core/types\";\r\nimport { FormsMapState } from \"../forms/types\";\r\nimport { FramesMapState } from \"../frames/types\";\r\nimport { IMenuState } from \"../menu/types\";\r\nimport { RightsState } from \"../rights/types\";\r\nimport { IWorkflowEditorState } from \"../workflowEditor/types\";\r\n\r\n/**\r\n * Reprezentuje strukturu reduxového stavu.\r\n */\r\nexport interface IAppState {\r\n readonly core: ICoreState;\r\n readonly customization: ICustomizationState;\r\n readonly menu: IMenuState;\r\n readonly aggregationRow: IAggregationRowState;\r\n readonly workflowEditor: IWorkflowEditorState;\r\n readonly controls: IControlsState;\r\n readonly frames: FramesMapState;\r\n readonly forms: FormsMapState;\r\n readonly rights: RightsState;\r\n readonly reportingScalar: IReportingScalarState;\r\n readonly linkButton: LinkButtonMapState;\r\n}\r\n","/**\r\n * Copyright (c) 2017-present, Ephox, Inc.\r\n *\r\n * This source code is licensed under the Apache 2 license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n */\r\n\r\nimport { Editor as TinyMCEEditor, EditorEvent, Events } from \"tinymce\";\r\n\r\nexport type EventHandler<A> = (a: EditorEvent<A>, editor: TinyMCEEditor) => unknown;\r\n\r\ntype EEventHandler<K extends keyof Events.EditorEventMap> = EventHandler<Events.EditorEventMap[K]>;\r\n\r\nexport interface INativeEvents {\r\n onBeforePaste: EEventHandler<\"beforepaste\">;\r\n onBlur: EEventHandler<\"blur\">;\r\n onClick: EEventHandler<\"click\">;\r\n onContextMenu: EEventHandler<\"contextmenu\">;\r\n onCopy: EEventHandler<\"copy\">;\r\n onCut: EEventHandler<\"cut\">;\r\n onDblclick: EEventHandler<\"dblclick\">;\r\n onDrag: EEventHandler<\"drag\">;\r\n onDragDrop: EEventHandler<\"dragdrop\">;\r\n onDragEnd: EEventHandler<\"dragend\">;\r\n onDragGesture: EEventHandler<\"draggesture\">;\r\n onDragOver: EEventHandler<\"dragover\">;\r\n onDrop: EEventHandler<\"drop\">;\r\n onFocus: EEventHandler<\"focus\">;\r\n onFocusIn: EEventHandler<\"focusin\">;\r\n onFocusOut: EEventHandler<\"focusout\">;\r\n onKeyDown: EEventHandler<\"keydown\">;\r\n onKeyPress: EEventHandler<\"keypress\">;\r\n onKeyUp: EEventHandler<\"keyup\">;\r\n onMouseDown: EEventHandler<\"mousedown\">;\r\n onMouseEnter: EEventHandler<\"mouseenter\">;\r\n onMouseLeave: EEventHandler<\"mouseleave\">;\r\n onMouseMove: EEventHandler<\"mousemove\">;\r\n onMouseOut: EEventHandler<\"mouseout\">;\r\n onMouseOver: EEventHandler<\"mouseover\">;\r\n onMouseUp: EEventHandler<\"mouseup\">;\r\n onPaste: EEventHandler<\"paste\">;\r\n onSelectionChange: EEventHandler<\"selectionchange\">;\r\n}\r\n\r\nexport interface ITinyEvents {\r\n onActivate: EEventHandler<\"activate\">;\r\n onAddUndo: EEventHandler<\"AddUndo\">;\r\n onBeforeAddUndo: EEventHandler<\"BeforeAddUndo\">;\r\n onBeforeExecCommand: EEventHandler<\"BeforeExecCommand\">;\r\n onBeforeGetContent: EEventHandler<\"BeforeGetContent\">;\r\n onBeforeRenderUI: EventHandler<unknown>;\r\n onBeforeSetContent: EEventHandler<\"BeforeSetContent\">;\r\n onChange: EventHandler<unknown>;\r\n onClearUndos: EEventHandler<\"ClearUndos\">;\r\n onDeactivate: EEventHandler<\"deactivate\">;\r\n onDirty: EventHandler<unknown>;\r\n onExecCommand: EEventHandler<\"ExecCommand\">;\r\n onGetContent: EEventHandler<\"GetContent\">;\r\n onHide: EventHandler<unknown>;\r\n onInit: EEventHandler<\"init\">;\r\n onLoadContent: EEventHandler<\"LoadContent\">;\r\n onNodeChange: EEventHandler<\"NodeChange\">;\r\n onPostProcess: EventHandler<unknown>;\r\n onPostRender: EEventHandler<\"PostRender\">;\r\n onPreProcess: EventHandler<unknown>;\r\n onProgressState: EEventHandler<\"ProgressState\">;\r\n onRedo: EEventHandler<\"Redo\">;\r\n onRemove: EEventHandler<\"remove\">;\r\n onReset: EventHandler<unknown>;\r\n onSaveContent: EventHandler<unknown>;\r\n onSetAttrib: EventHandler<unknown>;\r\n onObjectResizeStart: EEventHandler<\"ObjectResizeStart\">;\r\n onObjectResized: EEventHandler<\"ObjectResized\">;\r\n onObjectSelected: EEventHandler<\"ObjectSelected\">;\r\n onSetContent: EEventHandler<\"SetContent\">;\r\n onShow: EventHandler<unknown>;\r\n onSubmit: EventHandler<unknown>;\r\n onUndo: EEventHandler<\"Undo\">;\r\n onVisualAid: EventHandler<unknown>;\r\n}\r\n\r\nexport interface IEvents extends INativeEvents, ITinyEvents {}\r\n","import { Editor as TinyMCEEditor, RawEditorOptions } from \"tinymce\";\r\n\r\nimport { IEvents } from \"../Events\";\r\n\r\nexport interface IREditorBaseProps {\r\n apiKey: string;\r\n id: string;\r\n dataKey: string;\r\n inline: boolean;\r\n initialValue: string;\r\n onEditorChange: (a: string, editor: TinyMCEEditor) => void;\r\n value: string;\r\n init: RawEditorOptions & { selector?: undefined; target?: undefined };\r\n /** @deprecated use `editor.getContent({format: 'text' })` in `onEditorChange` prop instead */\r\n outputFormat: \"html\" | \"text\";\r\n tagName: string;\r\n cloudChannel: string;\r\n plugins: NonNullable<RawEditorOptions[\"plugins\"]>;\r\n toolbar: NonNullable<RawEditorOptions[\"toolbar\"]>;\r\n disabled: boolean;\r\n textareaName: string;\r\n tinymceScriptSrc: string;\r\n scriptLoading: {\r\n async?: boolean;\r\n defer?: boolean;\r\n delay?: number;\r\n };\r\n isValid?: boolean;\r\n darkTheme?: boolean;\r\n}\r\n\r\n/**\r\n * Enumerátory sloužící pro nastavení skinu a CSS RichTextEditoru pro světlý a tmavý motiv multiwebu.\r\n * Více na https://www.tiny.cloud/docs/general-configuration-guide/customize-ui/#skins\r\n */\r\nexport enum REditorSkin {\r\n light = \"oxide\",\r\n dark = \"oxide-dark\",\r\n}\r\n\r\nexport enum REditorCSS {\r\n light = \"default\",\r\n dark = \"dark\",\r\n}\r\n\r\nexport interface IRichTextEditorWrapperProps extends Partial<IREditorBaseProps>, Partial<IEvents> { }\r\n","/**\r\n * Copyright (c) 2017-present, Ephox, Inc.\r\n *\r\n * This source code is licensed under the Apache 2 license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n */\r\n\r\nimport * as PropTypes from \"prop-types\";\r\n\r\nimport { IEvents } from \"../Events\";\r\nimport { IREditorBaseProps } from \"./types\";\r\n\r\nexport type CopyProps<T> = { [P in keyof T]: PropTypes.Requireable<unknown> };\r\n\r\nexport type IEventPropTypes = CopyProps<IEvents>;\r\n\r\nexport interface IEditorPropTypes extends IEventPropTypes, CopyProps<IREditorBaseProps> {}\r\n\r\nexport const eventPropTypes: IEventPropTypes = {\r\n onActivate: PropTypes.func,\r\n onAddUndo: PropTypes.func,\r\n onBeforeAddUndo: PropTypes.func,\r\n onBeforeExecCommand: PropTypes.func,\r\n onBeforeGetContent: PropTypes.func,\r\n onBeforeRenderUI: PropTypes.func,\r\n onBeforeSetContent: PropTypes.func,\r\n onBeforePaste: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n onChange: PropTypes.func,\r\n onClearUndos: PropTypes.func,\r\n onClick: PropTypes.func,\r\n onContextMenu: PropTypes.func,\r\n onCopy: PropTypes.func,\r\n onCut: PropTypes.func,\r\n onDblclick: PropTypes.func,\r\n onDeactivate: PropTypes.func,\r\n onDirty: PropTypes.func,\r\n onDrag: PropTypes.func,\r\n onDragDrop: PropTypes.func,\r\n onDragEnd: PropTypes.func,\r\n onDragGesture: PropTypes.func,\r\n onDragOver: PropTypes.func,\r\n onDrop: PropTypes.func,\r\n onExecCommand: PropTypes.func,\r\n onFocus: PropTypes.func,\r\n onFocusIn: PropTypes.func,\r\n onFocusOut: PropTypes.func,\r\n onGetContent: PropTypes.func,\r\n onHide: PropTypes.func,\r\n onInit: PropTypes.func,\r\n onKeyDown: PropTypes.func,\r\n onKeyPress: PropTypes.func,\r\n onKeyUp: PropTypes.func,\r\n onLoadContent: PropTypes.func,\r\n onMouseDown: PropTypes.func,\r\n onMouseEnter: PropTypes.func,\r\n onMouseLeave: PropTypes.func,\r\n onMouseMove: PropTypes.func,\r\n onMouseOut: PropTypes.func,\r\n onMouseOver: PropTypes.func,\r\n onMouseUp: PropTypes.func,\r\n onNodeChange: PropTypes.func,\r\n onObjectResizeStart: PropTypes.func,\r\n onObjectResized: PropTypes.func,\r\n onObjectSelected: PropTypes.func,\r\n onPaste: PropTypes.func,\r\n onPostProcess: PropTypes.func,\r\n onPostRender: PropTypes.func,\r\n onPreProcess: PropTypes.func,\r\n onProgressState: PropTypes.func,\r\n onRedo: PropTypes.func,\r\n onRemove: PropTypes.func,\r\n onReset: PropTypes.func,\r\n onSaveContent: PropTypes.func,\r\n onSelectionChange: PropTypes.func,\r\n onSetAttrib: PropTypes.func,\r\n onSetContent: PropTypes.func,\r\n onShow: PropTypes.func,\r\n onSubmit: PropTypes.func,\r\n onUndo: PropTypes.func,\r\n onVisualAid: PropTypes.func,\r\n};\r\n\r\nexport const editorPropTypes: IEditorPropTypes = {\r\n apiKey: PropTypes.string,\r\n id: PropTypes.string,\r\n dataKey: PropTypes.string,\r\n inline: PropTypes.bool,\r\n init: PropTypes.object,\r\n initialValue: PropTypes.string,\r\n onEditorChange: PropTypes.func,\r\n outputFormat: PropTypes.oneOf([ \"html\", \"text\" ]),\r\n value: PropTypes.string,\r\n tagName: PropTypes.string,\r\n cloudChannel: PropTypes.string,\r\n plugins: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\r\n toolbar: PropTypes.oneOfType([ PropTypes.string, PropTypes.array ]),\r\n disabled: PropTypes.bool,\r\n textareaName: PropTypes.string,\r\n tinymceScriptSrc: PropTypes.string,\r\n scriptLoading: PropTypes.shape({\r\n async: PropTypes.bool,\r\n defer: PropTypes.bool,\r\n delay: PropTypes.number,\r\n }),\r\n ...eventPropTypes,\r\n};\r\n","/**\r\n * Copyright (c) 2017-present, Ephox, Inc.\r\n *\r\n * This source code is licensed under the Apache 2 license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n */\r\n\r\nimport { Editor as TinyMCEEditor, EditorEvent } from \"tinymce\";\r\n\r\nimport { eventPropTypes, IEventPropTypes } from \"./components/EditorPropTypes\";\r\nimport { IRichTextEditorWrapperProps } from \"./components/types\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport const isFunction = (x: unknown): x is Function => typeof x === \"function\";\r\n\r\nconst isEventProp = (name: string): name is keyof IEventPropTypes => name in eventPropTypes;\r\n\r\nconst eventAttrToEventName = <T extends string>(attrName: `on${T}`): T => attrName.substr(2) as T;\r\n\r\ntype PropLookup = <K extends keyof IRichTextEditorWrapperProps>(key: K) => IRichTextEditorWrapperProps[K] | undefined;\r\n\r\nexport const configHandlers2 = <H> (\r\n handlerLookup: PropLookup,\r\n on: (name: string, handler: H) => void,\r\n off: (name: string, handler: H) => void,\r\n adapter: <K extends keyof IEventPropTypes> (lookup: PropLookup, key: K) => H,\r\n prevProps: Partial<IRichTextEditorWrapperProps>,\r\n props: Partial<IRichTextEditorWrapperProps>,\r\n boundHandlers: Record<string, H>,\r\n): void => {\r\n const prevEventKeys = Object.keys(prevProps).filter(isEventProp);\r\n const currEventKeys = Object.keys(props).filter(isEventProp);\r\n\r\n const removedKeys = prevEventKeys.filter((key) => props[key] === undefined);\r\n const addedKeys = currEventKeys.filter((key) => prevProps[key] === undefined);\r\n\r\n removedKeys.forEach((key) => {\r\n // remove event handler\r\n const eventName = eventAttrToEventName(key);\r\n const wrappedHandler = boundHandlers[eventName];\r\n off(eventName, wrappedHandler);\r\n delete boundHandlers[eventName];\r\n });\r\n\r\n addedKeys.forEach((key) => {\r\n const wrappedHandler = adapter(handlerLookup, key);\r\n const eventName = eventAttrToEventName(key);\r\n boundHandlers[eventName] = wrappedHandler;\r\n on(eventName, wrappedHandler);\r\n });\r\n};\r\n\r\nexport const configHandlers = (\r\n editor: TinyMCEEditor,\r\n prevProps: Partial<IRichTextEditorWrapperProps>,\r\n props: Partial<IRichTextEditorWrapperProps>,\r\n boundHandlers: Record<string, (event: EditorEvent<any>) => unknown>,\r\n lookup: PropLookup,\r\n): void =>\r\n configHandlers2(\r\n lookup,\r\n editor.on.bind(editor),\r\n editor.off.bind(editor),\r\n (handlerLookup, key) => (e) => handlerLookup(key)?.(e, editor),\r\n prevProps,\r\n props,\r\n boundHandlers,\r\n );\r\n\r\nlet unique = 0;\r\n\r\nexport const uuid = (prefix: string): string => {\r\n const time = Date.now();\r\n const random = Math.floor(Math.random() * 1000000000);\r\n\r\n unique++;\r\n\r\n return prefix + \"_\" + random + unique + String(time);\r\n};\r\n\r\nexport const isTextareaOrInput = (element: Element | null): element is (HTMLTextAreaElement | HTMLInputElement) =>\r\n element !== null && (element.tagName.toLowerCase() === \"textarea\" || element.tagName.toLowerCase() === \"input\");\r\n\r\nconst normalizePluginArray = (plugins?: string | string[]): string[] => {\r\n if (typeof plugins === \"undefined\" || plugins === \"\") {\r\n return [];\r\n }\r\n\r\n return Array.isArray(plugins) ? plugins : plugins.split(\" \");\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nexport const mergePlugins = (initPlugins: string | string[] | undefined, inputPlugins: string | string[] | undefined): string[] => normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\r\n\r\nexport const isBeforeInputEventAvailable = () => window.InputEvent && typeof (InputEvent.prototype as any).getTargetRanges === \"function\";\r\n","/**\r\n * Copyright (c) 2017-present, Ephox, Inc.\r\n *\r\n * This source code is licensed under the Apache 2 license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n */\r\n\r\nimport { uuid } from \"./Utils\";\r\n\r\nexport type callbackFn = () => void;\r\nexport interface IStateObj {\r\n listeners: callbackFn[];\r\n scriptId: string;\r\n scriptLoading: boolean;\r\n scriptLoaded: boolean;\r\n}\r\n\r\nconst createState = (): IStateObj => ({\r\n listeners: [],\r\n scriptId: uuid(\"tiny-script\"),\r\n scriptLoading: false,\r\n scriptLoaded: false,\r\n});\r\n\r\ninterface ScriptLoader {\r\n load: (doc: Document, url: string, async: boolean, defer: boolean, delay: number, callback: callbackFn) => void;\r\n reinitialize: () => void;\r\n}\r\n\r\nconst CreateScriptLoader = (): ScriptLoader => {\r\n let state: IStateObj = createState();\r\n\r\n const injectScriptTag = (scriptId: string, doc: Document, url: string, async: boolean, defer: boolean, callback: callbackFn) => {\r\n const scriptTag = doc.createElement(\"script\");\r\n scriptTag.referrerPolicy = \"origin\";\r\n scriptTag.type = \"application/javascript\";\r\n scriptTag.id = scriptId;\r\n scriptTag.src = url;\r\n scriptTag.async = async;\r\n scriptTag.defer = defer;\r\n\r\n const handler = () => {\r\n scriptTag.removeEventListener(\"load\", handler);\r\n callback();\r\n };\r\n scriptTag.addEventListener(\"load\", handler);\r\n if (doc.head) {\r\n doc.head.appendChild(scriptTag);\r\n }\r\n };\r\n\r\n const load = (doc: Document, url: string, async: boolean, defer: boolean, delay: number, callback: callbackFn) => {\r\n const scriptTagInjection = () => injectScriptTag(\r\n state.scriptId, doc, url, async, defer,\r\n () => {\r\n state.listeners.forEach((fn) => fn());\r\n state.scriptLoaded = true;\r\n },\r\n );\r\n\r\n if (state.scriptLoaded) {\r\n callback();\r\n } else {\r\n state.listeners.push(callback);\r\n if (!state.scriptLoading) {\r\n state.scriptLoading = true;\r\n if (delay > 0) {\r\n setTimeout(scriptTagInjection, delay);\r\n } else {\r\n scriptTagInjection();\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Only to be used by tests.\r\n const reinitialize = () => {\r\n state = createState();\r\n };\r\n\r\n return {\r\n load,\r\n reinitialize,\r\n };\r\n};\r\n\r\nconst ScriptLoader = CreateScriptLoader();\r\n\r\nexport {\r\n ScriptLoader,\r\n};\r\n","/**\r\n * Copyright (c) 2017-present, Ephox, Inc.\r\n *\r\n * This source code is licensed under the Apache 2 license found in the\r\n * LICENSE file in the root directory of this source tree.\r\n *\r\n */\r\n\r\nimport { TinyMCE as TinyMCEGlobal } from \"tinymce\";\r\n\r\nconst getGlobal = (): any => (typeof window !== \"undefined\" ? window : global);\r\n\r\nconst getTinymce = (): TinyMCEGlobal | null => {\r\n const global = getGlobal();\r\n\r\n return global && global.tinymce ? global.tinymce : null;\r\n};\r\n\r\nexport { getTinymce };\r\n","import * as React from \"react\";\r\nimport { Editor as TinyMCEEditor, EditorEvent, RawEditorOptions, TinyMCE } from \"tinymce\";\r\n\r\nimport { ScriptLoader } from \"../ScriptLoader\";\r\nimport { getTinymce } from \"../TinyMCE\";\r\nimport { configHandlers, isFunction, isTextareaOrInput, mergePlugins, uuid } from \"../Utils\";\r\nimport { IRichTextEditorWrapperProps, REditorCSS, REditorSkin } from \"./types\";\r\n\r\nconst changeEvents = \"change input compositionend setcontent\";\r\n\r\n//hodnoty možných stavů nastavení výchozí hodnoty\r\nenum ValueResetState {\r\n ResetNeeded,\r\n DoneWithUndefinedValue,\r\n Done,\r\n}\r\n\r\nexport class RichTextEditorWrapperComponent extends React.Component<IRichTextEditorWrapperProps> {\r\n public static defaultProps: Partial<IRichTextEditorWrapperProps> = {\r\n // Tohle je cloudChannel pro richTextEdit a symbolizuje, ktera verze richTextEditu se bude stahovat, jestli\r\n // Stable nebo Dev. Pro nas to nema zadny vyznam, protoze my to mame hostovane u nas, ale bez toho\r\n // to tu v nekterych mistech padalo.\r\n cloudChannel: \"5\",\r\n };\r\n\r\n public editor?: TinyMCEEditor;\r\n\r\n private readonly _id: string;\r\n private readonly _elementRef: React.RefObject<HTMLElement>;\r\n private readonly _inline: boolean;\r\n private _currentContent?: string;\r\n private _boundHandlers: Record<string, (event: EditorEvent<unknown>) => unknown>;\r\n private _needValueReset: ValueResetState = ValueResetState.DoneWithUndefinedValue; //příznak identifikující stav nastavení výchozí hodnoty\r\n private _finalInit: RawEditorOptions;\r\n private _tinymce?: TinyMCE;\r\n private _darkTheme: boolean;\r\n private _editorWaitingForFocus: boolean;\r\n\r\n constructor(props: Partial<IRichTextEditorWrapperProps>) {\r\n super(props);\r\n this._id = this.props.id || uuid(\"tiny-react\");\r\n this._elementRef = React.createRef<HTMLElement>();\r\n this._inline = this.props.inline ?? this.props.init?.inline ?? false;\r\n this._boundHandlers = {};\r\n this._finalInit = {};\r\n this._darkTheme = !!this.props.darkTheme;\r\n this._editorWaitingForFocus = false;\r\n }\r\n\r\n public override componentDidUpdate(prevProps: Partial<IRichTextEditorWrapperProps>): void {\r\n if (this.editor) {\r\n this._bindHandlers(prevProps);\r\n if (this.editor.initialized) {\r\n if (this.props.isValid !== undefined) {\r\n this.editor?.getContainer().classList.toggle(\"invalid\", this.props.isValid);\r\n }\r\n this._currentContent = this._currentContent ?? this.editor.getContent();\r\n //console.log(`RTE Update ${this._id}-${this.props.dataKey}/${prevProps.dataKey} initialValue:${this.props.initialValue}/${prevProps.initialValue}, value:${this.props.value}/${prevProps.value}, needValueReset:${this._needValueReset}, isDirty:${this.editor.isDirty()}`);\r\n /*Nastavení výchozí hodnoty - princip inicializace výchozí hodnoty spočívá v tom, že při změně datakey se nastaví příznak,\r\n že je potřeba provést inicializaci. Inicializace se hned provede i když ještě není nastavena initialValue (při zakládání je to finální\r\n stav inicializace. Pokud dojde ještě později k změně initialValue a uživatel ještě neprovedl změnu, pak se provede inicializace\r\n ještě jednou ,už se skutečnou initialValue.*/\r\n let wasResetDone = false;//pomocný flag indikující, zda v tomto průchodu došlo k reset výchozí hodnoty\r\n if (this.props.dataKey !== prevProps.dataKey) {\r\n //pokud dojde ke změně dataKey je vyžadován reset vychozí hodnoty\r\n // console.log(`RTE ${this._id}-${this.props.dataKey} need value reset`);\r\n this._needValueReset = ValueResetState.ResetNeeded;\r\n } else if (this._needValueReset < ValueResetState.Done && this.editor.isDirty()) {\r\n //pokud je vyžadován reset výchozí hodnoty, ale již došlo k editaci tak se požadavek na reset zruší\r\n // console.log(`RTE ${this._id}-${this.props.dataKey} value reset cancel because dirty`);\r\n this._needValueReset = ValueResetState.Done;\r\n }\r\n //pokud je vyžadován provede se reset výchozí hodnoty a to buď hodnotou undefined nebo nějakou skutečnou hodnotou\r\n if (this._needValueReset < ValueResetState.DoneWithUndefinedValue || (this._needValueReset < ValueResetState.Done && this.props.initialValue)) {\r\n if (this.props.initialValue) {\r\n this._needValueReset = ValueResetState.Done;\r\n } else {\r\n //Byl proveden reset výchozí hodnoty, ale pouze na hodnotu undefined. Při zakládání záznamu je toto finální stav.\r\n this._needValueReset = ValueResetState.DoneWithUndefinedValue;\r\n }\r\n const initialValue = this._getInitialValue();\r\n // console.log(`RTE ${this._id}-${this.props.dataKey} reset with value ${initialValue}`);\r\n // same as resetContent in TinyMCE 5\r\n this.editor.setContent(initialValue, { no_events: true });\r\n this.editor.undoManager.clear();\r\n this.editor.undoManager.add();\r\n this.editor.setDirty(false);\r\n wasResetDone = true;\r\n }\r\n\r\n //tento kód je pro synchronizaci změn pokud mám více komponent RTE referencovaných na stejný atribut OWObject\r\n if (!wasResetDone && this.props.value !== prevProps.value && this.props.value !== this._currentContent) {\r\n // console.log(`RTE ${this._id}-${this.props.dataKey} sync content with value ${this.props.value}`);\r\n const newContentValue = this.props.value ?? \"\";\r\n this.editor.setContent(newContentValue.toString(), { no_events: true });\r\n this._currentContent = newContentValue;\r\n }\r\n\r\n if (this.props.disabled !== prevProps.disabled) {\r\n const disabled = this.props.disabled ?? false;\r\n this.editor.mode.set(disabled ? \"readonly\" : \"design\");\r\n\r\n // Odstranění stávajícího editoru a inicializace nového se správným zobrazením/skrytím menubaru a toolbaru na základě this.props.disabled\r\n this.editor.remove();\r\n this._initialize();\r\n }\r\n if (this.props.darkTheme !== this._darkTheme) {\r\n this._darkTheme = !this._darkTheme;\r\n this.editor?.remove();\r\n this._finalInit.skin = this.props.darkTheme ? REditorSkin.dark : REditorSkin.light;\r\n this._finalInit.content_css = this.props.darkTheme ? REditorCSS.dark : REditorCSS.light;\r\n this._tinymce?.init(this._finalInit);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public override componentDidMount(): void {\r\n if (getTinymce() !== null) {\r\n this._initialize();\r\n } else if (this._elementRef.current && this._elementRef.current.ownerDocument) {\r\n ScriptLoader.load(\r\n this._elementRef.current.ownerDocument,\r\n this._getScriptSrc(),\r\n this.props.scriptLoading?.async ?? false,\r\n this.props.scriptLoading?.defer ?? false,\r\n this.props.scriptLoading?.delay ?? 0,\r\n this._initialize,\r\n );\r\n }\r\n }\r\n\r\n public override componentWillUnmount(): void {\r\n try {\r\n const editor = this.editor;\r\n if (editor) {\r\n editor.off(changeEvents, this._handleEditorChange);\r\n editor.off(\"keypress\", this._handleEditorChangeSpecial);\r\n editor.off(\"NewBlock\", this._handleEditorChange);\r\n Object.keys(this._boundHandlers).forEach((eventName) => {\r\n editor.off(eventName, this._boundHandlers[eventName]);\r\n });\r\n this._boundHandlers = {};\r\n editor.remove();\r\n this.editor = undefined;\r\n }\r\n } catch (e) {\r\n // ignored\r\n }\r\n }\r\n\r\n public override render(): React.ReactElement<{ ref: React.RefObject<HTMLElement>;id: string }, string | React.JSXElementConstructor<any>> {\r\n return this._inline ? this._renderInline() : this._renderIframe();\r\n }\r\n\r\n private _renderInline(): React.ReactElement<{ ref: React.RefObject<HTMLElement>;id: string }, string | React.JSXElementConstructor<any>> {\r\n const { tagName = \"div\" } = this.props;\r\n\r\n return React.createElement(tagName, {\r\n ref: this._elementRef,\r\n id: this._id,\r\n });\r\n }\r\n\r\n private _renderIframe(): React.DetailedReactHTMLElement<{ ref: React.RefObject<HTMLElement>;style: { visibility: \"hidden\" };name: string | undefined;id: string }, HTMLElement> {\r\n return React.createElement(\"textarea\", {\r\n ref: this._elementRef,\r\n style: { visibility: \"hidden\" },\r\n name: this.props.textareaName,\r\n id: this._id,\r\n });\r\n }\r\n\r\n private _getScriptSrc(): string {\r\n if (typeof this.props.tinymceScriptSrc === \"string\") {\r\n return this.props.tinymceScriptSrc;\r\n } else {\r\n return \"modules/tinymce/tinymce.js\";\r\n }\r\n }\r\n\r\n private _getInitialValue(): string {\r\n /*Hodnota initialValue se v redux nenastavuje zcela konzistentě. Po uložení nového záznamu dojde k naplnění initialValue novou hodnotou.\r\n Po uložení již existujícího záznamu zůstavá v initalValue původní hodnota. Podle mého názoru je to chyba, ale řešení nebude úplně triviální\r\n a mělo by se to asi řešit samostatně.\r\n Tady jsem se s tímto faktem vyrovnal tak, že pokud je nastaveno initialValue i value tak má přednost value.\r\n Není to úplně čisté řešení je potřeba brát v podtaz v jakém kontextu se volání metody _getInitialValue provádí.*/\r\n const initialValue = this.props.value && this.props.initialValue !== this.props.value ? this.props.value : this.props.initialValue;\r\n return initialValue?.toString() ?? \"\";\r\n }\r\n\r\n private _bindHandlers(prevProps: Partial<IRichTextEditorWrapperProps>): void {\r\n if (this.editor !== undefined) {\r\n // typescript chokes trying to understand the type of the lookup function\r\n configHandlers(this.editor, prevProps, this.props, this._boundHandlers, (key) => this.props[key] as any);\r\n // check if we should monitor editor changes\r\n const isValueControlled = (p: Partial<IRichTextEditorWrapperProps>) => p.onEditorChange !== undefined || p.value !== undefined;\r\n const wasControlled = isValueControlled(prevProps);\r\n const nowControlled = isValueControlled(this.props);\r\n if (!wasControlled && nowControlled) {\r\n this.editor.on(changeEvents, this._handleEditorChange);\r\n this.editor.on(\"keyup\", this._handleEditorChangeSpecial);\r\n this.editor.on(\"NewBlock\", this._handleEditorChange);\r\n } else if (wasControlled && !nowControlled) {\r\n this.editor.off(changeEvents, this._handleEditorChange);\r\n this.editor.off(\"keyup\", this._handleEditorChangeSpecial);\r\n this.editor.off(\"NewBlock\", this._handleEditorChange);\r\n }\r\n }\r\n }\r\n\r\n private _handleEditorChange = (_evt: EditorEvent<unknown>) => {\r\n const editor = this.editor;\r\n if (editor && editor.initialized) {\r\n const newContent = editor.getContent();\r\n\r\n if (newContent !== this._currentContent) {\r\n this._currentContent = newContent;\r\n if (isFunction(this.props.onEditorChange)) {\r\n const format = this.props.outputFormat;\r\n const out = format === \"html\" ? newContent : editor.getContent({ format });\r\n this.props.onEditorChange(out, editor);\r\n }\r\n }\r\n }\r\n };\r\n\r\n private _handleEditorChangeSpecial = (evt: EditorEvent<KeyboardEvent>) => {\r\n if (evt.key === \"Backspace\" || evt.key === \"Delete\") {\r\n this._handleEditorChange(evt);\r\n }\r\n };\r\n\r\n private _initialize = () => {\r\n const target = this._elementRef.current;\r\n if (!target) {\r\n return; // Editor has been unmounted\r\n }\r\n\r\n const tinymce = getTinymce();\r\n if (!tinymce) {\r\n throw new Error(\"tinymce should have been loaded into global scope\");\r\n } else {\r\n this._tinymce = tinymce;\r\n }\r\n\r\n this._finalInit = {\r\n ...this.props.init,\r\n selector: undefined,\r\n target,\r\n readonly: this.props.disabled,\r\n inline: this._inline,\r\n plugins: mergePlugins(this.props.init && this.props.init.plugins, this.props.plugins),\r\n toolbar: this.props.disabled ? !this.props.disabled : (this.props.toolbar || (this.props.init && this.props.init.toolbar)),\r\n menubar: this.props.init?.menubar && !this.props.disabled,\r\n skin: this.props.darkTheme ? REditorSkin.dark : REditorSkin.light,\r\n content_css: this.props.darkTheme ? REditorCSS.dark : REditorCSS.light,\r\n setup: (editor) => {\r\n this.editor = editor;\r\n this._bindHandlers({});\r\n\r\n // When running in inline mode the editor gets the initial value\r\n // from the innerHTML of the element it is initialized on.\r\n // However, we don't want to take on the responsibility of sanitizing\r\n // to remove XSS in the React integration, so we have a chicken and egg\r\n // problem... We avoid it by sneaking in a set content before the first\r\n // \"official\" setContent and using TinyMCE to do the sanitization.\r\n if (this._inline && !isTextareaOrInput(target)) {\r\n editor.once(\"PostRender\", (_evt) => {\r\n const initialValue = this._getInitialValue();\r\n editor.setContent(initialValue, { no_events: true });\r\n });\r\n }\r\n\r\n if (this.props.init && isFunction(this.props.init.setup)) {\r\n this.props.init.setup(editor);\r\n }\r\n },\r\n init_instance_callback: (editor) => {\r\n // check for changes that happened since tinymce.init() was called\r\n const initialValue = this._getInitialValue();\r\n this._currentContent = this._currentContent ?? editor.getContent();\r\n if (this._currentContent !== initialValue) {\r\n this._currentContent = initialValue;\r\n // same as resetContent in TinyMCE 5\r\n editor.setContent(initialValue);\r\n editor.undoManager.clear();\r\n editor.undoManager.add();\r\n editor.setDirty(false);\r\n }\r\n const disabled = this.props.disabled ?? false;\r\n editor.mode.set(disabled ? \"readonly\" : \"design\");\r\n\r\n const innerDocRoot = editor.contentDocument.documentElement;\r\n innerDocRoot.style.height = \"100%\";\r\n innerDocRoot.onclick = () => target.click(); // ruční zpropagování eventu, klik do iframu totiž nezapne editaci\r\n target.onclick = () => {\r\n if (!editor.hasFocus()) {\r\n this._focusAndSetCursorToEnd(editor); // ruční fokus kvůli prokliku z labelu\r\n this._editorWaitingForFocus = true; // přechod do editace vytváří novou instanci editoru, ta dostane díky příznaku fokus v inicializaci\r\n }\r\n };\r\n if (!disabled && this._editorWaitingForFocus) {\r\n this._focusAndSetCursorToEnd(editor);\r\n this._editorWaitingForFocus = false;\r\n }\r\n\r\n // ensure existing init_instance_callback is called\r\n if (this.props.init && isFunction(this.props.init.init_instance_callback)) {\r\n this.props.init.init_instance_callback(editor);\r\n }\r\n },\r\n };\r\n if (!this._inline) {\r\n target.style.visibility = \"\";\r\n }\r\n if (isTextareaOrInput(target)) {\r\n target.value = this._getInitialValue();\r\n }\r\n\r\n this._tinymce.init(this._finalInit);\r\n };\r\n\r\n private _focusAndSetCursorToEnd = (editor: TinyMCEEditor) => {\r\n editor.focus();\r\n editor.selection.select(editor.getBody(), true);\r\n editor.selection.collapse(false);\r\n };\r\n}\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getInitialRawValue } from \"@multiweb/reactControls\";\r\nimport { isDarkTheme } from \"@multiweb/reactCore/theme\";\r\nimport { IAppState } from \"../../setup/types\";\r\nimport { RichTextEditorWrapperComponent } from \"./RichTextEditorWrapperComponent\";\r\nimport { IRichTextEditorWrapperProps } from \"./types\";\r\n\r\nconst mapStateToProps: MapStateToProps<Pick<IRichTextEditorWrapperProps, \"darkTheme\" | \"initialValue\">, IRichTextEditorWrapperProps, IAppState> = (state, { dataKey }) => ({\r\n darkTheme: isDarkTheme(state),\r\n initialValue: getInitialRawValue(state, dataKey ?? \"\"),\r\n});\r\n\r\nexport const RichTextEditorWrapper = connect(mapStateToProps)(RichTextEditorWrapperComponent);\r\n","import React, { forwardRef, useCallback, useEffect } from \"react\";\r\n\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { RichTextEditorWrapper } from \"UI/UI.React/richtextEditorWrapper/components/RichTextEditorWrapper\";\r\nimport { ControlValueWrapper } from \"../ControlValueWrapper\";\r\nimport { FormComponentPropsWrapper } from \"../FormComponentPropsWrapper\";\r\nimport { InputFake } from \"../InputFake\";\r\nimport { MultiEditWrapper, MultiEditWrapperFakeComponentRendererProps } from \"../MultiEditWrapper\";\r\nimport { Skeleton } from \"../Skeleton\";\r\nimport { LoadableEditableControlComponentProps } from \"../types\";\r\nimport { ValidationErrorWrapper } from \"../ValidationErrorWrapper\";\r\n\r\n/** API klic, pro self-hosted knihovny je v podstate k nicemu, ale tinyMCE bez nej v nekterych mistech padal */\r\nconst API_KEY = \"7lrux57ppwu9ztm451g9yb41idv9z4olsfctww3d48famduq\";\r\nconst PLUGINS = \"print preview paste importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount textpattern noneditable help charmap quickbars emoticons\";\r\nconst TOOLBAR = \"undo redo | bold italic underline strikethrough | fontfamily fontsize blocks | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl\";\r\n\r\n/**\r\n * @property {string | undefined} toolbar - toolbar funkce v tinyMCE\r\n * @property {string | undefined} plugins - extensions pro funkce v toolbaru, pokud nějaké mají\r\n * @property {string | undefined} language - jazyk názvů a popisků\r\n * @property {boolean | undefined} showMenuBar - zobrazení horní lišty (Soubor, Úpravy, ...)\r\n */\r\nexport type RichTextEditProps = {\r\n toolbar?: string;\r\n plugins?: string;\r\n language?: string;\r\n showMenuBar?: boolean;\r\n} & Omit<LoadableEditableControlComponentProps, \"ref\">;\r\n\r\nexport const RichTextEdit: ForwardRefType<HTMLTextAreaElement, RichTextEditProps> = forwardRef<HTMLTextAreaElement, RichTextEditProps>(\r\n function RichTextEdit({\r\n id,\r\n dataKey,\r\n externalErrors,\r\n isInRequiredInvalidState,\r\n onValidationCallback,\r\n onValidityChanged,\r\n onBlur,\r\n onChange: onChangeExternal,\r\n onMount,\r\n onKeyDown,\r\n onClick,\r\n triggerValueChange,\r\n locKey,\r\n multiEditActive,\r\n touched,\r\n enabledVisual,\r\n recommended,\r\n required,\r\n postponedRequired,\r\n isEditing,\r\n isLoading,\r\n toolbar,\r\n plugins,\r\n language,\r\n showMenuBar,\r\n // Reference je zde kvůli EditableControlConnectoru.\r\n // @ts-ignore\r\n // eslint-disable-next-line unused-imports/no-unused-vars\r\n }, ref) {\r\n useEffect(() => {\r\n onMount?.({\r\n getDisplayedValue: (rawValue) => rawValue,\r\n getControlValue: (rawValue) => rawValue,\r\n convertControlValueToRawValue: (controlValue) => controlValue,\r\n });\r\n }, [onMount]);\r\n\r\n const fakeComponentRenderer = useCallback(({ disabled }: MultiEditWrapperFakeComponentRendererProps) => (\r\n <InputFake { ...{ disabled, isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired } } />\r\n ), [isEditing, locKey, onKeyDown, onClick, required, recommended, postponedRequired]);\r\n\r\n return (\r\n <ControlValueWrapper dataKey={dataKey}>\r\n {({ rawValue, onChange }) => (\r\n <ValidationErrorWrapper\r\n {...{ dataKey, externalErrors, isInRequiredInvalidState, onValidityChanged }}\r\n instantValidationFnDescriptions={EMPTY_ARRAY}\r\n explicitValidationFnDescriptions={EMPTY_ARRAY}\r\n >\r\n {({ invalid, validate }) => (\r\n <FormComponentPropsWrapper {...{ postponedRequired, required, recommended, enabledVisual }}>\r\n {({ disabled, readOnly }) => (\r\n <MultiEditWrapper fakeComponentRenderer={fakeComponentRenderer} {...{ multiEditActive, disabled, isEditing, touched }}>\r\n {() => {\r\n if (isLoading) {\r\n return (<Skeleton />);\r\n }\r\n return (\r\n <RichTextEditorWrapper\r\n { ... { id, dataKey }}\r\n isValid={invalid}\r\n apiKey={API_KEY}\r\n disabled={disabled || readOnly}\r\n scriptLoading={{ async: true, defer: true }}\r\n onBlur={(e) => {\r\n validate(onValidationCallback);\r\n onBlur?.(e as any);\r\n triggerValueChange?.();\r\n }}\r\n onEditorChange={\r\n (_e, editor) => {\r\n onChange(editor.getContent());\r\n onChangeExternal?.(editor.getContent());\r\n }\r\n }\r\n value={rawValue}\r\n init={{\r\n toolbar_mode: \"sliding\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n menubar: showMenuBar ?? true,\r\n plugins: plugins ?? PLUGINS,\r\n toolbar: toolbar ?? TOOLBAR,\r\n language: language,\r\n resize: false,\r\n image_advtab: true,\r\n autosave_ask_before_unload: false,\r\n paste_data_images: true,\r\n promotion: false,\r\n license_key: \"gpl\",\r\n entity_encoding:\"raw\",\r\n }}\r\n />\r\n );\r\n }\r\n }\r\n </MultiEditWrapper>\r\n )}\r\n </FormComponentPropsWrapper>\r\n )}\r\n </ValidationErrorWrapper>\r\n )}\r\n </ControlValueWrapper>\r\n );\r\n },\r\n);\r\n","export { RichTextEdit, RichTextEditProps } from \"./RichTextEdit\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type ScrollLayoutProps = {\r\n /** Obalovaná komponenta */\r\n children: ReactNode;\r\n /** Fixní kladná výška rozložení v pixelech */\r\n height?: number;\r\n /** Příznak, zda je aktivní horizontální scrollování */\r\n horizontal?: boolean;\r\n /** Příznak, zda je aktivní vertikální scrollování */\r\n vertical?: boolean;\r\n /** Fixní kladná šířka rozložení v pixelech */\r\n width?: number;\r\n};\r\n\r\nconst classNames = bemClassNames(\"scroll-layout-component\");\r\n\r\n/** Rozložení umožňující scrollování obsahu a nastavení fixní velikosti */\r\nexport const ScrollLayout: FunctionComponent<ScrollLayoutProps> = ({\r\n children,\r\n height,\r\n horizontal = true,\r\n vertical = true,\r\n width,\r\n}) => (\r\n <div\r\n style={{ height, width }}\r\n className={classNames({ vertical, horizontal })}\r\n >\r\n {children}\r\n </div>\r\n);\r\n","export * from \"./ScrollLayout\";\r\n","import { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport const classNames = bemClassNames(\"section-panel\");\r\n","import React, { forwardRef, PropsWithChildren } from \"react\";\r\n\r\nimport { Key } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { classNames } from \"./constants\";\r\n\r\nexport type SectionPanelProps = PropsWithChildren<{\r\n /** Akce spouštěná po stisknutí klávesy Enter */\r\n onPrimaryAction?: () => void;\r\n /** Akce spouštěná po stisknutí klávesy ESC */\r\n onCancelAction?: () => void;\r\n /** Zda má být panel focusovatelný a případně jakým způsobem. */\r\n tabIndex?: number;\r\n}>;\r\n\r\nexport const SectionPanel: ForwardRefType<HTMLDivElement, SectionPanelProps> = forwardRef<HTMLDivElement, SectionPanelProps>(({\r\n onPrimaryAction,\r\n onCancelAction,\r\n tabIndex,\r\n children,\r\n}, forwardRef) => {\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === Key.Enter) {\r\n onPrimaryAction && onPrimaryAction();\r\n } else if (event.key === Key.Escape) {\r\n onCancelAction && onCancelAction();\r\n }\r\n };\r\n\r\n return (\r\n <div className={classNames()} ref={forwardRef} {...{ tabIndex }} onKeyDown={handleKeyDown}>\r\n { children }\r\n </div>\r\n );\r\n});\r\n","import React, { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nimport { NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { classNames } from \"../constants\";\r\n\r\ntype SectionPanelContentProps = PropsWithChildren<NoneOwnProps>;\r\n\r\nexport const SectionPanelContent: FunctionComponent<SectionPanelContentProps> = ({ children }) => {\r\n return (<section className={classNames(\"content\")}>\r\n { children }\r\n </section>);\r\n};\r\n","import React, { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nimport { NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { classNames } from \"../constants\";\r\n\r\ntype SectionPanelFooterProps = PropsWithChildren<NoneOwnProps>;\r\n\r\nexport const SectionPanelFooter: FunctionComponent<SectionPanelFooterProps> = ({ children }) => {\r\n return (<section className={classNames(\"footer\")}>\r\n { children }\r\n </section>);\r\n};\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { classNames } from \"../constants\";\r\n\r\nexport type SectionPanelHeaderProps = {\r\n /** Pří uvedení popisku se vyrenderuje h4 s vloženým textem */\r\n title?: string;\r\n /** ID pro DOM, vhodné například pro přístupnost. */\r\n id?: string;\r\n};\r\n\r\nexport const SectionPanelHeader: FunctionComponent<SectionPanelHeaderProps> = ({ title, id, children }) => {\r\n return (\r\n <section className={classNames(\"header\")} id={id}>\r\n { title && <h4>{ title }</h4>}\r\n { children }\r\n </section>\r\n );\r\n};\r\n","export * from \"./SectionPanel\";\r\nexport * from \"./SectionPanelContent/SectionPanelContent\";\r\nexport * from \"./SectionPanelFooter/SectionPanelFooter\";\r\nexport * from \"./SectionPanelHeader/SectionPanelHeader\";\r\n","import React, { createRef, FocusEvent, KeyboardEvent, MouseEvent as ReactMouseEvent, ReactNode, RefObject, useRef, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport { bemClassNames, invariant, Key, TAB_INDEX_FOCUSABLE_ONLY, usePopupFlip } from \"@multiweb/reactUtils\";\r\nimport { Option } from \"@multiweb/types/react\";\r\nimport { MODAL_ROOT_ID } from \"../../constants\";\r\nimport { FocusProvider } from \"../FocusProvider\";\r\n\r\n/** Hodnoty předávané části rozevíracího seznamu reprezentující vybranou položku */\r\nexport type SelectedOptionContentProps = {\r\n /** Příznak, zda je seznam otevřený */\r\n opened: boolean;\r\n /** Funkce pro otevírání/zavírání seznamu */\r\n setOpened: (opened: boolean) => void;\r\n /** Text vybrané položky */\r\n text: string | undefined;\r\n};\r\n\r\n/** Hodnoty předávané části rozevíracího seznamu reprezentující položky pro výběr */\r\nexport type OptionsContentProps<T> = {\r\n /** Příznak, zda je seznam otevřený */\r\n opened: boolean;\r\n /** Hodnota právě vybrané položky */\r\n value: T | undefined;\r\n /** Funkce volaná po výběru hodnoty */\r\n onSelect: (value: T) => void;\r\n /** Funkce předává objekt s referenci první a poslední položce seznamu. */\r\n assignRef: (index: number, optionsLength: number) => RefObject<HTMLButtonElement> | undefined;\r\n};\r\n\r\nexport type SelectProps<T> = {\r\n /** Hodnota vybrané položky */\r\n value: T | undefined;\r\n /** Položky pro výběr zobrazené v seznamu */\r\n options: ReadonlyArray<Option<T>>;\r\n /** Obsah části rozevíracího seznamu reprezentující vybranou položku */\r\n selectedOptionContent: (props: SelectedOptionContentProps) => ReactNode;\r\n /** Obsah části rozevíracího seznamu reprezentující položky pro výběr */\r\n optionsContent: (props: OptionsContentProps<T>) => ReactNode;\r\n /** Funkce volaná po výběru hodnoty */\r\n onChange: (value?: T) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"select-component\");\r\n\r\n/** Komponenta rozevíracího seznamu */\r\nexport const Select = <T,>({\r\n value,\r\n options,\r\n selectedOptionContent,\r\n optionsContent,\r\n onChange,\r\n}: SelectProps<T>) => {\r\n const modalRoot = document.getElementById(MODAL_ROOT_ID);\r\n invariant(modalRoot, `[Select] Cannot render select body because element with id ${MODAL_ROOT_ID} is undefined.`);\r\n const [opened, setOpened] = useState(false);\r\n const selectedOption = options.find((option) => option.value === value);\r\n const text = selectedOption?.text;\r\n const selectRef = useRef<HTMLDivElement>(null);\r\n const selectedOptionContentRef = useRef<HTMLDivElement>(null);\r\n const optionsContentRef = useRef<HTMLDivElement>(null);\r\n const { topOffset, leftOffset } = usePopupFlip({ triggerRef: selectedOptionContentRef, popupRef: optionsContentRef, opened, offset: 2 });\r\n const firstOptionRef = createRef<HTMLButtonElement>();\r\n const lastOptionRef = createRef<HTMLButtonElement>();\r\n\r\n /**\r\n * Volá `onChange` a přesouvá zaměření na Select.\r\n * @param value Vybraná hodnota.\r\n */\r\n const onSelect = (value: T) => {\r\n onChange(value);\r\n selectRef.current?.focus();\r\n setOpened(false);\r\n };\r\n\r\n /**\r\n * Funkce předá objekt s referencí první nebo poslední položce rozevíracího seznamu na základě indexu.\r\n * @param index Index položky.\r\n * @param optionsLength Počet položek.\r\n */\r\n const assignRef = (index: number, optionsLength: number) => {\r\n if (index === 0) {\r\n return firstOptionRef;\r\n }\r\n if (index === optionsLength - 1) {\r\n return lastOptionRef;\r\n }\r\n return undefined;\r\n };\r\n\r\n const handleBlur = (event: FocusEvent) => {\r\n if (event.relatedTarget instanceof Element) {\r\n // Zaměření se přesouvá v rámci rozevírací části, Select se nezavře.\r\n if (optionsContentRef.current?.contains(event.relatedTarget)) {\r\n return;\r\n }\r\n }\r\n setOpened(false);\r\n };\r\n\r\n const handleMouseDown = (event: ReactMouseEvent) => {\r\n // V Safari se rozevírací část zavře dříve než se zavolá onClick handler. Je to kvůli ztrátě focusu při mouseDown.\r\n event.preventDefault();\r\n };\r\n\r\n /**\r\n * Handler zachytí stisknutí kláves TAB nebo SHIFT + TAB a podle toho\r\n * přesouvá focus mezi rozvírací částí a tlačítkem pro výběr položky.\r\n * Je nutné manuální přesouvání focusu protože tab sequence se rozpojí při použití React Portal.\r\n * @param event\r\n */\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === Key.Tab && opened && event.target instanceof Element) {\r\n // První položka se zaměří pouze v případě, že je událost vyvolána mimo rozevírací část.\r\n if (!optionsContentRef.current?.contains(event.target)) {\r\n event.preventDefault();\r\n firstOptionRef.current?.focus();\r\n return;\r\n }\r\n\r\n // Na první položce byly stisknuty klávesy SHIFT + TAB, focus se vrátí na tlačítko pro výběr položky.\r\n const firstItemBlur = event.shiftKey && firstOptionRef.current?.contains(event.target);\r\n // Na poslední položce byla stisknuta klávesa TAB, focus se vrátí na tlačítko pro výběr položky.\r\n const lastItemBlur = !event.shiftKey && lastOptionRef.current?.contains(event.target);\r\n if (firstItemBlur || lastItemBlur) {\r\n event.preventDefault();\r\n selectRef.current?.focus();\r\n setOpened(false);\r\n }\r\n }\r\n };\r\n return (\r\n <FocusProvider onBlur={handleBlur} tabIndex={TAB_INDEX_FOCUSABLE_ONLY} >\r\n {() => (\r\n <div ref={selectRef} className={classNames()} onKeyDown={handleKeyDown} tabIndex={TAB_INDEX_FOCUSABLE_ONLY} >\r\n <div\r\n ref={selectedOptionContentRef}\r\n className={classNames(\"selected-option-content\")}\r\n >\r\n {selectedOptionContent({ opened, setOpened, text })}\r\n </div>\r\n {createPortal(\r\n opened && (\r\n <div\r\n className={classNames(\"options-content\")}\r\n ref={optionsContentRef}\r\n style={{ top: topOffset, left: leftOffset }}\r\n onMouseDown={handleMouseDown}\r\n >\r\n {optionsContent({ value, opened, onSelect, assignRef })}\r\n </div>\r\n ),\r\n modalRoot,\r\n )}\r\n </div>\r\n )}\r\n </FocusProvider>\r\n );\r\n};\r\n","export * from \"./Select\";\r\n","import React, { FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { EmptyObjectType } from \"@multiweb/types/react\";\r\nimport { FlexDirection, Layout, SpacingSize } from \"../Layout\";\r\n\r\nconst classNames = bemClassNames(\"select-body-component\");\r\n\r\nexport type SelectBodyProps = PropsWithChildren<EmptyObjectType>;\r\n\r\n/** Komponenta těla rozevíracího seznamu */\r\nexport const SelectBody: FunctionComponent<SelectBodyProps> = ({ children }) => (\r\n <div className={classNames()}>\r\n <Layout\r\n spacingSizeVertical={SpacingSize.xs}\r\n flexDirection={FlexDirection.column}\r\n >\r\n {children}\r\n </Layout>\r\n </div>\r\n);\r\n","export * from \"./SelectBody\";\r\n","import React, { forwardRef, KeyboardEvent } from \"react\";\r\n\r\nimport { bemClassNames, createQA, isActivatingKeyEvent } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ForwardRefType, QAProps } from \"@multiweb/types/react\";\r\nimport { BooleanSwitcher, BooleanSwitcherChildrenProps } from \"../BooleanSwitcher\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\nimport { Layout, SpacingSize } from \"../Layout\";\r\nimport { FontWeight, Text, TextColor } from \"../Text\";\r\nimport { AlignItems } from \"../types\";\r\n\r\nconst classNames = bemClassNames(\"select-item-component\");\r\n\r\nexport type SelectItemProps = {\r\n /** Text položky */\r\n text: string;\r\n /** Funkce volaná při výběru položky */\r\n onSelect: () => void;\r\n /** Příznak, zda je položka vybraná */\r\n isSelected?: boolean;\r\n /** Příznak, zda je položka zakázána */\r\n disabled?: boolean;\r\n} & QAProps;\r\n\r\n/** Komponenta položky těla rozevíracího seznamu */\r\nexport const SelectItem: ForwardRefType<HTMLButtonElement, SelectItemProps> = forwardRef<HTMLButtonElement, SelectItemProps>(({\r\n qa,\r\n text,\r\n onSelect,\r\n isSelected = false,\r\n disabled = false,\r\n}, ref) => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (isActivatingKeyEvent(event)) {\r\n event.preventDefault();\r\n onSelect();\r\n }\r\n };\r\n\r\n return (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => (\r\n <button\r\n className={classNames({ disabled, isSelected, hovered: isHovered })}\r\n onKeyDown={handleKeyDown}\r\n onClick={onSelect}\r\n {...createQA(qa)}\r\n {...{ disabled, onMouseEnter, onMouseLeave, ref }}\r\n >\r\n <Layout\r\n spacingSizeHorizontal={SpacingSize.xs}\r\n alignItems={AlignItems.center}\r\n >\r\n {isSelected ? (\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Icon\r\n iconCode={IconCode.uiCheckSmall}\r\n color={isHovered ? IconColor.whiteBlack : IconColor.grey1}\r\n {...{ disabled }}\r\n />\r\n </Layout>\r\n ) : (\r\n <Layout spacingSize={SpacingSize.m}/>\r\n )}\r\n <Layout spacingSize={SpacingSize.xs}>\r\n <Text\r\n fontWeight={FontWeight.bold}\r\n value={text}\r\n color={isHovered ? TextColor.whiteBlack : TextColor.blackWhite}\r\n isTextSelectable={!disabled}\r\n {...{ disabled }}\r\n />\r\n </Layout>\r\n </Layout>\r\n </button>\r\n )}\r\n </BooleanSwitcher>\r\n );\r\n});\r\n","export * from \"./SelectItem\";\r\n","import React, { FunctionComponent, MouseEventHandler } from \"react\";\r\n\r\nimport { QAProps, TabIndex } from \"@multiweb/types/react\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\nimport { ButtonBackgroundColor, ButtonProvider, ButtonProviderProps } from \"../ButtonProvider\";\r\nimport { Text, TextColor, WhiteSpace } from \"../Text\";\r\nimport { TextButtonSpacing } from \"../TextButtonSpacing\";\r\nimport { ComponentSize } from \"../types\";\r\n\r\nexport type SelectTextButtonProps = {\r\n /** Příznak, zda je tlačítko zakázané */\r\n disabled?: boolean;\r\n /** Callback volaný na kliknutí */\r\n onClick: MouseEventHandler<HTMLButtonElement>;\r\n /** Text zobrazený na tlačítku */\r\n text?: string;\r\n /** Popisek zobrazený po najetí myši */\r\n title?: string;\r\n /** Umožňuje nastavit tabindex - výchozí hodnota je undefined, chování tedy závisí na prohlížeči */\r\n tabIndex?: TabIndex;\r\n /** Příznak, zda je komponenta zaměřená */\r\n isFocused?: boolean;\r\n} & QAProps & Pick<ButtonProviderProps, \"shadow\" | \"outline\" | \"backgroundColor\">;\r\n\r\n/** Komponenta tlačítka pro otevírání rozevíracího seznamu */\r\nexport const SelectTextButton: FunctionComponent<SelectTextButtonProps> = ({\r\n disabled = false,\r\n onClick,\r\n text,\r\n backgroundColor = ButtonBackgroundColor.transparent,\r\n title,\r\n tabIndex,\r\n shadow,\r\n outline,\r\n isFocused = false,\r\n qa,\r\n}) => (\r\n <ButtonProvider\r\n theme={ComponentTheme.default}\r\n {...{ onClick, disabled, title, backgroundColor, tabIndex, isFocused, qa, shadow, outline }}\r\n >\r\n <TextButtonSpacing size={ComponentSize.large}>\r\n <Text\r\n isTextSelectable={false}\r\n whiteSpace={WhiteSpace.nowrap}\r\n value={text}\r\n theme={ComponentTheme.default}\r\n color={TextColor.textSecondary}\r\n {...{ disabled }}\r\n />\r\n </TextButtonSpacing>\r\n </ButtonProvider>\r\n);\r\n","export * from \"./SelectTextButton\";\r\n","import { ReactElement } from \"react\";\r\n\r\nexport type SplitPanelLightProps = {\r\n /** Určuje minimální hodnotu šířky kontejnerů v procentech. Celkový součet prvků nemůže být větší jak 100%. */\r\n readonly minSizePercentages: readonly number[];\r\n /** Určuje defaultní velikosti prvků split panelu v procentech. */\r\n readonly defaultPercentages?: readonly number[];\r\n readonly children: readonly ReactElement[];\r\n /* Určuje index prvku split panelu, který se má roztáhnout na maximální šířku/výšku kontejneru, ve kterém se nachází. */\r\n readonly fullDimensionIndex?: number | undefined;\r\n};\r\n","import { ReactElement } from \"react\";\r\n\r\nexport const getContainersRatio = (\r\n /** bcr = getBoundingClientRect */\r\n bcrDistance: number,\r\n bcrSize: number,\r\n cursorDistance: number,\r\n minSizeRatio: number,\r\n maxSizeRatio: number,\r\n) => {\r\n const distanceDelta = cursorDistance - bcrDistance;\r\n const containersRatio = distanceDelta / bcrSize;\r\n\r\n let firstContainerPercentage = containersRatio * 100;\r\n\r\n if (firstContainerPercentage > maxSizeRatio)\r\n firstContainerPercentage = maxSizeRatio;\r\n\r\n if (firstContainerPercentage < minSizeRatio)\r\n firstContainerPercentage = minSizeRatio;\r\n\r\n const secondContainerPercentage = 100 - firstContainerPercentage;\r\n\r\n return ({ firstContainerPercentage, secondContainerPercentage });\r\n};\r\n\r\nexport const getMinContainerPercentage = (\r\n currentPercentages: readonly number[],\r\n minLeftDraggedPercentage: number,\r\n draggerIndex: number,\r\n) => {\r\n let minLeftPercentage = minLeftDraggedPercentage;\r\n\r\n for (let i = 0; i < draggerIndex; i++) {\r\n minLeftPercentage += currentPercentages[i];\r\n }\r\n\r\n return minLeftPercentage;\r\n};\r\n\r\nexport const getMaxContainerPercentage = (\r\n currentPercentages: readonly number[],\r\n minRightDraggedPercentage: number,\r\n draggerIndex: number,\r\n) => {\r\n let minRightPercentage = minRightDraggedPercentage;\r\n\r\n for (let i = currentPercentages.length - 1; i > draggerIndex + 1; i--) {\r\n minRightPercentage += currentPercentages[i];\r\n }\r\n\r\n return 100 - minRightPercentage;\r\n};\r\n\r\nexport const getPreviousBlockPercentage = (currentBlocksPercentages: readonly number[], previousContainerPercentage: number, draggerIndex: number) => {\r\n let previousBlockPercentage = previousContainerPercentage;\r\n\r\n for (let i = 0; i < draggerIndex; i++) {\r\n previousBlockPercentage -= currentBlocksPercentages[i];\r\n }\r\n\r\n return previousBlockPercentage;\r\n};\r\n\r\nexport const getNextBlockPercentage = (currentBlocksPercentages: readonly number[], nextContainerPercentage: number, draggerIndex: number) => {\r\n let previousBlockPercentage = nextContainerPercentage;\r\n\r\n for (let i = currentBlocksPercentages.length - 1; i > draggerIndex + 1; i--) {\r\n previousBlockPercentage -= currentBlocksPercentages[i];\r\n }\r\n\r\n return previousBlockPercentage;\r\n};\r\n\r\nexport const validateSplitPanelProps = (children: readonly ReactElement[], minSizePercentages: readonly number[], defaultPercentages?: readonly number[]) => {\r\n if (defaultPercentages !== undefined) {\r\n if (defaultPercentages.length !== children.length)\r\n throw new Error(\"Number of defaultPercentages doesn't equal to the number of SplitPanel´s children.\");\r\n\r\n if (minSizePercentages.length !== children.length)\r\n throw new Error(\"Number of minSizePercentages doesn't equal to the number of SplitPanel´s children.\");\r\n\r\n for (let i = 0; i < minSizePercentages.length; i++) {\r\n if (minSizePercentages[i] > defaultPercentages[i]) {\r\n throw new Error(`Min percentage size cannot be greater than the container´s size.\r\n minSizePercentages has on position ${i} value ${minSizePercentages[i]}% while width/height of the container on position ${i} is ${defaultPercentages[i]}%.`);\r\n }\r\n }\r\n\r\n const sumOfDefaultPercentages = defaultPercentages.reduce((prevValue, nextValue) => prevValue + nextValue, 0);\r\n const sumOfMinPercentages = minSizePercentages.reduce((prevValue, nextValue) => prevValue + nextValue, 0);\r\n\r\n if (sumOfMinPercentages > 100 || sumOfDefaultPercentages > 100)\r\n throw new Error(`Sum of the items in the array of prop 'minSizePercentages' or 'defaultPercentages' cannot be greater than 100%. Your values are: ${sumOfMinPercentages}% and ${sumOfDefaultPercentages}%`);\r\n }\r\n};\r\n","import React, { Fragment, FunctionComponent, MouseEvent, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { MouseButtons } from \"@multiweb/types/react\";\r\nimport { SplitPanelLightProps } from \"../types\";\r\nimport { getContainersRatio, getMaxContainerPercentage, getMinContainerPercentage, getNextBlockPercentage, getPreviousBlockPercentage, validateSplitPanelProps } from \"../utils\";\r\n\r\nconst classNames = bemClassNames(\"split-horizontal-panel-light\");\r\nconst splitHorizontalPanelStyle = classNames();\r\nconst draggerClassName = classNames(\"dragger\");\r\n\r\nexport const SplitHorizontalPanelLight: FunctionComponent<SplitPanelLightProps> = ({ minSizePercentages, defaultPercentages, fullDimensionIndex, children }) => {\r\n validateSplitPanelProps(children, minSizePercentages, defaultPercentages);\r\n\r\n const [containersHeight, setContainersHeight] = useState<readonly number[]>(defaultPercentages ?? Array(children.length).fill(100 / children.length));\r\n const isResizing = useRef(false);\r\n const selectedDraggerIndexRef = useRef(0);\r\n const minSizePercentage = useRef(0);\r\n const maxSizePercentage = useRef(0);\r\n\r\n const handleResizeStart = (index: number) => {\r\n isResizing.current = true;\r\n selectedDraggerIndexRef.current = index;\r\n minSizePercentage.current = getMinContainerPercentage(containersHeight, minSizePercentages[index], index);\r\n maxSizePercentage.current = getMaxContainerPercentage(containersHeight, minSizePercentages[index + 1], index);\r\n };\r\n\r\n const handleResizeMove = (e: MouseEvent) => {\r\n if ((e.buttons !== MouseButtons.leftButton && isResizing.current) || !isResizing.current) {\r\n isResizing.current = false;\r\n return;\r\n }\r\n\r\n const { top, height } = e.currentTarget.getBoundingClientRect();\r\n const draggerIndex = selectedDraggerIndexRef.current;\r\n\r\n const { firstContainerPercentage, secondContainerPercentage } = getContainersRatio(top, height, e.pageY, minSizePercentage.current, maxSizePercentage.current);\r\n\r\n const newContainersHeights = [...containersHeight];\r\n newContainersHeights[draggerIndex] = getPreviousBlockPercentage(containersHeight, firstContainerPercentage, draggerIndex);\r\n newContainersHeights[draggerIndex + 1] = getNextBlockPercentage(containersHeight, secondContainerPercentage, draggerIndex);\r\n\r\n setContainersHeight(newContainersHeights);\r\n };\r\n\r\n const handleResizeStop = () => {\r\n isResizing.current = false;\r\n };\r\n\r\n return (\r\n <div className={splitHorizontalPanelStyle} onMouseMove={handleResizeMove}>\r\n {children.map((child, i) => (\r\n (fullDimensionIndex === undefined || fullDimensionIndex === i) && <Fragment key={i}>\r\n <div style={{ height: `${fullDimensionIndex !== undefined ? 100 : containersHeight[i]}%` }}>\r\n {child}\r\n </div>\r\n {(i < children.length - 1 && fullDimensionIndex === undefined) && <div className={draggerClassName} onMouseDown={() => handleResizeStart(i)} onMouseUp={handleResizeStop} />}\r\n </Fragment>\r\n ))}\r\n </div>\r\n );\r\n};\r\n","export * from \"./SplitHorizontalPanelLight\";\r\n","import React, { Fragment, FunctionComponent, MouseEvent, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { MouseButtons } from \"@multiweb/types/react\";\r\nimport { SplitPanelLightProps } from \"../types\";\r\nimport { getContainersRatio, getMaxContainerPercentage, getMinContainerPercentage, getNextBlockPercentage, getPreviousBlockPercentage, validateSplitPanelProps } from \"../utils\";\r\n\r\nconst classNames = bemClassNames(\"split-vertical-panel-light\");\r\nconst splitVerticalPanelStyle = classNames();\r\nconst draggerClassName = classNames(\"dragger\");\r\n\r\nexport const SplitVerticalPanelLight: FunctionComponent<SplitPanelLightProps> = ({ minSizePercentages, defaultPercentages, fullDimensionIndex, children }) => {\r\n validateSplitPanelProps(children, minSizePercentages, defaultPercentages);\r\n\r\n const [containersWidth, setContainersWidth] = useState<readonly number[]>(defaultPercentages ?? Array(children.length).fill(100 / children.length));\r\n const isResizing = useRef(false);\r\n const selectedDraggerIndexRef = useRef(0);\r\n const minSizePercentage = useRef(0);\r\n const maxSizePercentage = useRef(0);\r\n\r\n const handleResizeStart = (index: number) => {\r\n isResizing.current = true;\r\n selectedDraggerIndexRef.current = index;\r\n minSizePercentage.current = getMinContainerPercentage(containersWidth, minSizePercentages[index], index);\r\n maxSizePercentage.current = getMaxContainerPercentage(containersWidth, minSizePercentages[index + 1], index);\r\n };\r\n\r\n const handleResizeMove = (e: MouseEvent) => {\r\n if ((e.buttons !== MouseButtons.leftButton && isResizing.current) || !isResizing.current) {\r\n isResizing.current = false;\r\n return;\r\n }\r\n\r\n const { left, width } = e.currentTarget.getBoundingClientRect();\r\n const draggerIndex = selectedDraggerIndexRef.current;\r\n const { firstContainerPercentage, secondContainerPercentage } = getContainersRatio(left, width, e.pageX, minSizePercentage.current, maxSizePercentage.current);\r\n\r\n const newContainersWidths = [...containersWidth];\r\n newContainersWidths[draggerIndex] = getPreviousBlockPercentage(containersWidth, firstContainerPercentage, draggerIndex);\r\n newContainersWidths[draggerIndex + 1] = getNextBlockPercentage(containersWidth, secondContainerPercentage, draggerIndex);\r\n\r\n setContainersWidth(newContainersWidths);\r\n };\r\n\r\n const handleResizeStop = () => {\r\n isResizing.current = false;\r\n };\r\n\r\n return (\r\n <div className={splitVerticalPanelStyle} onMouseMove={handleResizeMove}>\r\n {children.map((child, i) => (\r\n (fullDimensionIndex === undefined || fullDimensionIndex === i) && <Fragment key={i}>\r\n <div style={{ width: `${fullDimensionIndex !== undefined ? 100 : containersWidth[i]}%` }}>\r\n {child}\r\n </div>\r\n {(i < children.length - 1 && fullDimensionIndex === undefined) && <div className={draggerClassName} onMouseDown={() => handleResizeStart(i)} onMouseUp={handleResizeStop} />}\r\n </Fragment>\r\n ))}\r\n </div>\r\n );\r\n};\r\n","export * from \"./SplitVerticalPanelLight\";\r\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nexport type TabProps = PropsWithChildren<{\r\n /** název záložky */\r\n // eslint-disable-next-line react-redux/no-unused-prop-types\r\n tabName: string;\r\n}>;\r\n\r\nexport const Tab: FunctionComponent<TabProps> = ({ children }) => <Fragment>{children}</Fragment>;\r\n","export * from \"./Tab\";\r\n","import React, { FunctionComponent, ReactElement, useState } from \"react\";\r\n\r\nimport { bemClassNames, createQA, EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { TabProps } from \"./Tab\";\r\n\r\nconst classNames = bemClassNames(\"tabs-component\");\r\nconst tabsContainer = classNames(\"tabsDivContainer\");\r\nconst tabsList = classNames(\"tabsList\");\r\n\r\nconst tabsComponentDataQA = createQA(\"tabs-component\");\r\nconst tabsContainerDataQA = createQA(\"tabs-container\");\r\nconst tabsContentDataQA = createQA(\"tabs-content\");\r\n\r\nexport type TabsProps = {\r\n children: ReactElement<TabProps>[];\r\n /** určuje výchozí záložku */\r\n defaultTabIndex?: number;\r\n /** callback funkce */\r\n onTabChange?: (activeTabIndex: number) => void;\r\n};\r\n\r\nexport const Tabs: FunctionComponent<TabsProps> = ({\r\n children = EMPTY_ARRAY as ReactElement<TabProps>[],\r\n defaultTabIndex = 0,\r\n onTabChange,\r\n}) => {\r\n const [activeTabIndex, setActiveTabIndex] = useState(defaultTabIndex);\r\n\r\n /** funkce ošetřující případ, kdy se změní počet children při odebírání záložek */\r\n const getActiveTabIndex = () => {\r\n if (children.length - 1 >= activeTabIndex)\r\n return activeTabIndex;\r\n\r\n return children.length - 1;\r\n };\r\n\r\n const handleClick = (tabIndex: number) => {\r\n setActiveTabIndex(tabIndex);\r\n\r\n if (onTabChange)\r\n onTabChange(tabIndex);\r\n };\r\n\r\n return (\r\n <div {...tabsComponentDataQA} className={classNames()}>\r\n <div {...tabsContainerDataQA} className={tabsContainer}>\r\n <ul className={tabsList}>\r\n {React.Children.map(children, (child: ReactElement<TabProps>, i) => {\r\n return (<li\r\n {...createQA(`tab-${child.props.tabName}`)}\r\n key={child.props.tabName}\r\n className={classNames(\"tab\", { \"active\": activeTabIndex === i })}\r\n onClick={() => handleClick(i)}\r\n >\r\n {child.props.tabName}\r\n </li>);\r\n })}\r\n </ul>\r\n </div>\r\n <div {...tabsContentDataQA} className={classNames(\"content\")}>\r\n {children[getActiveTabIndex()]}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./Tabs\";\r\n","/**\r\n * Určuje variantu stylů TemplateLayout.\r\n */\r\nexport enum TemplateLayoutVariant {\r\n default = \"default\",\r\n gridParticipants = \"grid-participants\",\r\n}\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { ExtendedPropertiesType } from \"@multiweb/types/multiweb\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { TemplateLayoutVariant } from \"./enums\";\r\n\r\nexport type TemplateLayoutItemProps = QAProps & {\r\n /**\r\n * Obsah k zasazení itemu.\r\n */\r\n content: ReactNode;\r\n /**\r\n * Výška položky. Běžně není tuto proměnnou potřeba používat, jelikož se výška počítá automaticky,\r\n * avšak někdy může být potřeba z nějakého důvodu určit výšku položky manuálně.\r\n */\r\n height?: string | number;\r\n /** Upravuje výchozí chování vzhledu. */\r\n variant?: TemplateLayoutVariant;\r\n /**\r\n * Role pro přístupnost.\r\n */\r\n role?: Role;\r\n /**\r\n * Dodatečné vlastnosti položky.\r\n */\r\n extendedProperties?: ExtendedPropertiesType;\r\n};\r\n\r\nconst classNames = bemClassNames(\"template-layout-item\");\r\n\r\n/**\r\n * Komponenta sloužící k vykreslení atributu.\r\n */\r\nexport const TemplateLayoutItem: FunctionComponent<TemplateLayoutItemProps> = ({\r\n content,\r\n height,\r\n qa,\r\n variant = TemplateLayoutVariant.default,\r\n role = Role.cell,\r\n extendedProperties,\r\n}) => (\r\n <div\r\n className={classNames({ variant })}\r\n style={{ height }}\r\n {...createQA(qa)}\r\n {...extendedProperties}\r\n {...{ role }}\r\n >\r\n {content}\r\n </div>\r\n);\r\n","export * from \"./enums\";\r\nexport * from \"./TemplateLayoutItem\";\r\n","import React from \"react\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { Option } from \"@multiweb/types/react\";\r\nimport { Select } from \"../Select\";\r\nimport { SelectBody } from \"../SelectBody\";\r\nimport { SelectItem } from \"../SelectItem\";\r\nimport { SelectTextButton } from \"../SelectTextButton\";\r\n\r\nexport type TextButtonSelectProps<T extends string> = {\r\n /** Hodnota vybrané položky */\r\n value: T | undefined;\r\n /** Položky pro výběr zobrazené v seznamu */\r\n options: ReadonlyArray<Option<T>>;\r\n /** Popisek pro rozevírací textové tlačítko */\r\n title?: string;\r\n /** Funkce volaná po výběru hodnoty */\r\n onChange: (value?: T) => void;\r\n /** Text rozevíracího tlačítka před vybráním hodnoty */\r\n defaultText?: string;\r\n};\r\n\r\n/** Komponenta rozevíracího seznamu otevíraného textovým tlačítkem */\r\nexport const TextButtonSelect = <T extends string>({\r\n value,\r\n options,\r\n title,\r\n defaultText,\r\n onChange,\r\n}: TextButtonSelectProps<T>) => (\r\n <Select<T>\r\n {...{ value, options, onChange }}\r\n selectedOptionContent={({ text, opened, setOpened }) => (\r\n <SelectTextButton\r\n onClick={() => setOpened(!opened)}\r\n text={text || defaultText}\r\n {...{ title }}\r\n qa={composeQA(\"select-text-button\")}\r\n />\r\n )}\r\n optionsContent={({ opened, value, onSelect, assignRef }) => (opened && (\r\n <SelectBody>\r\n {options.map((option, index) => (\r\n <SelectItem\r\n key={option.value}\r\n isSelected={option.value === value}\r\n text={option.text}\r\n qa={option.value}\r\n ref={assignRef(index, options.length)}\r\n onSelect={() => onSelect(option.value)}\r\n />\r\n ))}\r\n </SelectBody>\r\n ))}\r\n />\r\n );\r\n","export * from \"./TextButtonSelect\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { ComponentTheme } from \"@multiweb/uiShared/ComponentTheme\";\r\n\r\nexport type VerticalDividerProps = {\r\n /** Téma oddělovače */\r\n theme?: ComponentTheme;\r\n};\r\n\r\nconst classNames = bemClassNames(\"vertical-divider\");\r\n\r\n/** Komponenta slouží jako horizontální vizuální oddělovač. */\r\nexport const VerticalDivider: FunctionComponent<VerticalDividerProps> = ({\r\n theme = ComponentTheme.default,\r\n}) => (\r\n <span className={classNames({ theme })} />\r\n);\r\n","export * from \"./VerticalDivider\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, invariant } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ButtonBackgroundColor } from \"../ButtonProvider\";\r\nimport { Icon, IconColor } from \"../Icon\";\r\nimport { Layout } from \"../Layout\";\r\nimport { TextColor } from \"../Text\";\r\nimport { TextButton } from \"../TextButton\";\r\nimport { ComponentSize } from \"../types\";\r\n\r\nexport type WizardControlPanelProps = {\r\n /** Hodnota aktivního indexu */\r\n readonly activeIndex?: number;\r\n /** Příznak určující, zda jsou na stránce splněny všechny podmínky pro pokračování dále */\r\n readonly canProceed?: boolean;\r\n /** Počet stránek */\r\n readonly numberOfPages: number;\r\n /** Text pro tlačítko Zpět */\r\n readonly backButtonText: string;\r\n /** Text pro tlačítko Další */\r\n readonly nextButtonText: string;\r\n /** Text pro tlačítko Dokončit */\r\n readonly finishButtonText: string;\r\n /** Vlastní ikona progressu */\r\n readonly progressIcon?: IconCode;\r\n /** Callback funkce volána při kliku na tlačítko Další */\r\n readonly onNextButtonClick: () => void;\r\n /** Callback funkce volána při kliku na tlačítko Zpět */\r\n readonly onBackButtonClick: () => void;\r\n /** Callback funkce volána při kliku na tlačítko, které dokončuje průvodce */\r\n readonly onFinishButtonClick: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"wizard-control-panel\");\r\nconst wizardControlPanelClassName = classNames();\r\nconst backButtonClassName = classNames(\"back-button\");\r\nconst nextButtonClassName = classNames(\"next-button\");\r\nconst iconLayoutClassName = classNames(\"icon-layout\");\r\n\r\nexport const WizardControlPanel: FunctionComponent<WizardControlPanelProps> = ({\r\n activeIndex = 0,\r\n canProceed = true,\r\n numberOfPages,\r\n onNextButtonClick,\r\n onBackButtonClick,\r\n onFinishButtonClick,\r\n progressIcon,\r\n backButtonText,\r\n nextButtonText,\r\n finishButtonText,\r\n}) => {\r\n invariant(numberOfPages > 0, \"You have to have at least one page.\");\r\n invariant(activeIndex >= 0 && activeIndex <= numberOfPages - 1, \"Active index is smaller than 0 or greater than number of pages.\");\r\n\r\n return (\r\n <div className={wizardControlPanelClassName}>\r\n <div className={backButtonClassName}>\r\n <TextButton qa={\"backButton\"} size={ComponentSize.large} color={TextColor.colorPrimary} title={backButtonText} text={backButtonText} disabled={activeIndex === 0} onClick={onBackButtonClick} />\r\n </div>\r\n <Layout>\r\n {Array.from({ length: numberOfPages }, (_, i: number) => (\r\n <span key={i} className={iconLayoutClassName}>\r\n <Icon iconCode={progressIcon ?? IconCode.uiDotLargeFilled} color={activeIndex === i ? IconColor.colorPrimary : IconColor.grey1} />\r\n </span>\r\n ))}\r\n </Layout>\r\n <div className={nextButtonClassName}>\r\n {activeIndex === numberOfPages - 1 ? (\r\n <TextButton qa={\"finishButton\"} disabled={!canProceed} backgroundColor={ButtonBackgroundColor.buttonPrimary} color={TextColor.whiteBlack} title={finishButtonText} text={finishButtonText} size={ComponentSize.large} onClick={onFinishButtonClick} />\r\n ) : (\r\n <TextButton qa={\"nextButton\"} size={ComponentSize.large} color={TextColor.colorPrimary} disabled={!canProceed} title={nextButtonText} text={nextButtonText} onClick={onNextButtonClick} />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n","export * from \"./WizardControlPanel\";\r\n","import React, { Fragment, FunctionComponent, PropsWithChildren, useState } from \"react\";\r\n\r\nimport { bemClassNames, invariant, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { Role } from \"@multiweb/uiShared/Role\";\r\nimport { IconButton } from \"../IconButton\";\r\nimport { LocalizationMultiLoader } from \"../LocalizationLoader\";\r\nimport { LocalizationProvider } from \"../LocalizationProvider\";\r\nimport { CLOSE_LOC_KEY, CLOSE_WIZARD_LOC_KEY, NO_LOC_KEY, YES_LOC_KEY } from \"../locKeys\";\r\nimport { MessageWindow } from \"../MessageWindow\";\r\nimport { ModalWindow } from \"../ModalWindow\";\r\nimport { Text } from \"../Text\";\r\nimport { WizardControlPanel } from \"../WizardControlPanel\";\r\n\r\nexport type WizardWindowProps = PropsWithChildren<{\r\n /** Hodnota aktivního indexu */\r\n readonly activeIndex?: number;\r\n /** Příznak určující, zda jsou na stránce splněny všechny podmínky pro pokračování dále */\r\n readonly canProceed?: boolean;\r\n /** Počet stránek */\r\n readonly numberOfPages: number;\r\n /** Text pro tlačítko Zpět */\r\n readonly backButtonText: string;\r\n /** Text pro tlačítko Další */\r\n readonly nextButtonText: string;\r\n /** Text pro tlačítko Dokončit */\r\n readonly finishButtonText: string;\r\n /** Vlastní ikona progressu */\r\n readonly progressIcon?: IconCode;\r\n /** Šířka Wizard okna v px - defaultně je nastaveno na 800px */\r\n readonly width?: number;\r\n /** Výška Wizard okna v px - defaultně je nastaveno na 600px */\r\n readonly height?: number;\r\n /** Nastavení minimální výšky Wizard okna v px - defaultně je nastaveno na 400px */\r\n readonly minWidth?: number;\r\n /** Nastavení minimální šířky Wizard okna v px - defaultně je nastaveno na 400px */\r\n readonly minHeight?: number;\r\n /** Příznak určující, zda je možné s Wizard oknem pohybovat */\r\n readonly draggable?: boolean;\r\n /** Příznak určující, zda je možné Wizard okno zvětšovat/zmenšovat */\r\n readonly resizable?: boolean;\r\n /** Příznak určující, zda-li bude mít modal window průhledné pozadí nebo klasické MW (backdrop) */\r\n readonly hasTransparentBackdrop?: boolean;\r\n /** Příznak určující, zda má Wizard okno tlačítko pro zavření */\r\n readonly hasCloseButton?: boolean;\r\n /** Příznak určující, zdali je Wizard window viditelné */\r\n readonly isHidden?: boolean;\r\n /** Callback funkce volána při kliku na tlačítko Další */\r\n readonly onNextButtonClick: () => void;\r\n /** Callback funkce volána při kliku na tlačítko Zpět */\r\n readonly onBackButtonClick: () => void;\r\n /** Callback funkce volána při kliku na tlačítko Dokončit */\r\n readonly onFinishButtonClick: () => void;\r\n /** Callback volaný při zmáčknutí tlačítka na zavření Wizardu. */\r\n readonly onWizardCloseButtonClick: () => void;\r\n /** Callback volaný při dokončení animace okna. */\r\n readonly onAnimationEnd: () => void;\r\n}>;\r\n\r\nconst classNames = bemClassNames(\"wizard-window\");\r\nconst wizardWindowClassName = classNames();\r\nconst closeButtonAreaCls = classNames(\"close-button-area\");\r\n\r\nexport const WizardWindow: FunctionComponent<WizardWindowProps> = ({\r\n activeIndex = 0,\r\n canProceed = true,\r\n width = 800,\r\n height = 600,\r\n minWidth = 400,\r\n minHeight = 400,\r\n draggable = true,\r\n resizable = false,\r\n hasCloseButton = true,\r\n hasTransparentBackdrop,\r\n numberOfPages,\r\n isHidden,\r\n onNextButtonClick,\r\n onBackButtonClick,\r\n onFinishButtonClick,\r\n onWizardCloseButtonClick,\r\n onAnimationEnd,\r\n backButtonText,\r\n nextButtonText,\r\n finishButtonText,\r\n progressIcon,\r\n children,\r\n}) => {\r\n const [isDisplayed, setIsDisplayed] = useState(true);\r\n const [isMessageWindowShown, setIsMessageWindowShown] = useState<boolean>(false);\r\n\r\n invariant(numberOfPages > 0, \"You have to have at least one page.\");\r\n invariant(activeIndex >= 0 && activeIndex <= numberOfPages - 1, \"Active index is smaller than 0 or greater than number of pages.\");\r\n\r\n const onCloseButtonClick = () => {\r\n setIsMessageWindowShown(true);\r\n };\r\n\r\n const onCloseMessageWindow = () => {\r\n setIsMessageWindowShown(false);\r\n };\r\n\r\n const handleCloseButtonClick = () => {\r\n setIsDisplayed(false);\r\n onWizardCloseButtonClick();\r\n };\r\n\r\n const handleFinishButtonClick = () => {\r\n setIsDisplayed(false);\r\n onFinishButtonClick();\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <ModalWindow closeByOuterClick onOuterClick={onCloseButtonClick} onCloseChange={onAnimationEnd} {...{ hasTransparentBackdrop, draggable, resizable, isDisplayed, isHidden, defaultWidth: width, defaultHeight: height, minWidth, minHeight }}>\r\n <div className={wizardWindowClassName}>\r\n {hasCloseButton &&\r\n <LocalizationProvider locKey={CLOSE_LOC_KEY}>\r\n {({ title }) => (\r\n <div className={closeButtonAreaCls}>\r\n <IconButton role={Role.button} title={title} iconCode={IconCode.uiCross} tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE} onClick={onCloseButtonClick} />\r\n </div>\r\n )}\r\n </LocalizationProvider>\r\n }\r\n {children}\r\n <WizardControlPanel\r\n activeIndex={activeIndex}\r\n numberOfPages={numberOfPages}\r\n canProceed={canProceed}\r\n backButtonText={backButtonText}\r\n nextButtonText={nextButtonText}\r\n finishButtonText={finishButtonText}\r\n onBackButtonClick={onBackButtonClick}\r\n onNextButtonClick={onNextButtonClick}\r\n onFinishButtonClick={handleFinishButtonClick}\r\n progressIcon={progressIcon}\r\n />\r\n </div>\r\n </ModalWindow>\r\n {isMessageWindowShown &&\r\n <LocalizationMultiLoader locKeys={[YES_LOC_KEY, NO_LOC_KEY, CLOSE_WIZARD_LOC_KEY]}>\r\n <MessageWindow\r\n primaryButtonLocKey={YES_LOC_KEY}\r\n secondaryButtonLocKey={NO_LOC_KEY}\r\n onPrimaryButtonClick={handleCloseButtonClick}\r\n {...{ onCloseMessageWindow }}\r\n >\r\n <LocalizationProvider locKey={CLOSE_WIZARD_LOC_KEY}>\r\n {({ text }) => <Text value={text} />}\r\n </LocalizationProvider>\r\n </MessageWindow>\r\n </LocalizationMultiLoader>}\r\n </Fragment>\r\n );\r\n};\r\n","export * from \"./WizardWindow\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\n\r\nexport type MountHtmlElementProps = {\r\n /** Html element k vyrenderovnání do komponenty */\r\n htmlElement: HTMLElement;\r\n /** Výška vkládaného elementu. */\r\n height?: number | string;\r\n /** Šířka vkládaného elementu. */\r\n width?: number | string;\r\n /** Velikost prvku ve flex rozložení. */\r\n flexGrow?: number;\r\n} & QAProps;\r\n\r\nconst className = bemClassNames(\"mount-html-element-component\");\r\n\r\nexport const MountHtmlElement:FunctionComponent<MountHtmlElementProps> = ({\r\n htmlElement,\r\n height,\r\n width,\r\n flexGrow,\r\n qa,\r\n}) => (\r\n <div\r\n className={className()}\r\n ref={ref => {\r\n if (!ref) {\r\n return;\r\n }\r\n ref.appendChild(htmlElement);\r\n }}\r\n style={{\r\n height,\r\n width,\r\n flexGrow,\r\n }}\r\n {...createQA(qa)}\r\n />\r\n);\r\n","export * from \"./MountHtmlElement\";\r\n","export * from \"./AdvancedFilter\";\r\nexport * from \"./AnimatedMount\";\r\nexport * from \"./AnimatedOpacity\";\r\nexport * from \"./AnimatedWidth\";\r\nexport * from \"./Attribute\";\r\nexport * from \"./AvatarComponent\";\r\nexport * from \"./BackgroundColorWrapper\";\r\nexport * from \"./Badge\";\r\nexport * from \"./BooleanSwitcher\";\r\nexport * from \"./ButtonFake\";\r\nexport * from \"./ButtonProvider\";\r\nexport * from \"./Caption\";\r\nexport * from \"./CaptionComponent\";\r\nexport * from \"./CheckBox\";\r\nexport * from \"./CheckBoxComponent\";\r\nexport * from \"./CheckBoxFake\";\r\nexport * from \"./CheckBoxFakeComponent\";\r\nexport * from \"./CheckBoxIcon\";\r\nexport * from \"./Collapsible\";\r\nexport * from \"./ComboBox\";\r\nexport * from \"./ComboBoxComponent\";\r\nexport * from \"./ConditionalMount\";\r\nexport * from \"./DataGrid\";\r\nexport * from \"./DelayedUnmount\";\r\nexport * from \"./Divider\";\r\nexport * from \"./DocumentDownloadButtonComponent\";\r\nexport * from \"./DotCheckBox\";\r\nexport * from \"./DraggableTree\";\r\nexport * from \"./Edit\";\r\nexport * from \"./EmptyMessageComponent\";\r\nexport * from \"./EmptyText\";\r\nexport * from \"./FlagCircle\";\r\nexport * from \"./FlagGroup\";\r\nexport * from \"./FocusProvider\";\r\nexport * from \"./GridLayout\";\r\nexport * from \"./GridLayoutItem\";\r\nexport * from \"./Icon\";\r\nexport * from \"./IconButton\";\r\nexport * from \"./IconSelectItem\";\r\nexport * from \"./IconTextButton\";\r\nexport * from \"./IconWithBackgroundAttr\";\r\nexport * from \"./ImageEditFake\";\r\nexport * from \"./ImageEditFakeComponent\";\r\nexport * from \"./InfiniteVirtualizedList\";\r\nexport * from \"./InputFake\";\r\nexport * from \"./InputFakeComponent\";\r\nexport * from \"./Layout\";\r\nexport * from \"./Link\";\r\nexport * from \"./LinkButton\";\r\nexport * from \"./LinkButtonComponent\";\r\nexport * from \"./LinkEditFake\";\r\nexport * from \"./LinkEditFakeComponent\";\r\nexport * from \"./ListHeaderAttributeComponent\";\r\nexport * from \"./Loader\";\r\nexport * from \"./LocalizationLoader\";\r\nexport * from \"./LocalizationProvider\";\r\nexport * from \"./locKeys\";\r\nexport * from \"./Measurer\";\r\nexport * from \"./MemoFake\";\r\nexport * from \"./MemoFakeComponent\";\r\nexport * from \"./MessageWindow\";\r\nexport * from \"./MessageWindowComponent\";\r\nexport * from \"./ModalWindow\";\r\nexport * from \"./NumberFormatter\";\r\nexport * from \"./NumberValue\";\r\nexport * from \"./NumEdit\";\r\nexport * from \"./OptionProvider\";\r\nexport * from \"./PasswordEdit\";\r\nexport * from \"./ReportingScalar\";\r\nexport * from \"./ReportingScalarComponent\";\r\nexport * from \"./ResponsiveList\";\r\nexport * from \"./RichTextEdit\";\r\nexport * from \"./ScrollLayout\";\r\nexport * from \"./SectionPanel\";\r\nexport * from \"./Select\";\r\nexport * from \"./SelectBody\";\r\nexport * from \"./SelectItem\";\r\nexport * from \"./SelectProvider\";\r\nexport * from \"./SelectTextButton\";\r\nexport * from \"./Skeleton\";\r\nexport * from \"./SpinnerComponent\";\r\nexport * from \"./SplitPanelLight/SplitHorizontalPanelLight\";\r\nexport * from \"./SplitPanelLight/SplitVerticalPanelLight\";\r\nexport * from \"./Tabs\";\r\nexport * from \"./Tabs/Tab\";\r\nexport * from \"./TemplateLayoutItem\";\r\nexport * from \"./Text\";\r\nexport * from \"./TextButton\";\r\nexport * from \"./TextButtonSelect\";\r\nexport * from \"./types\";\r\nexport * from \"./VerticalDivider\";\r\nexport * from \"./VirtualizedList\";\r\nexport * from \"./WizardControlPanel\";\r\nexport * from \"./WizardWindow\";\r\nexport * from \"./workarounds/MountHtmlElement\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport { TextButtonSelect } from \"@multiweb/reactComponents\";\r\nimport { Option } from \"@multiweb/types/react\";\r\n\r\nexport type AggregationSelectComponentProps = {\r\n /** Vybraná hodnota */\r\n value?: AggregationFunction;\r\n /** Funkce volaná po výběru hodnoty */\r\n onChange: (value?: AggregationFunction) => void;\r\n /** Možnosti rozevíracího seznamu */\r\n options: ReadonlyArray<Option<AggregationFunction>>;\r\n /** Popisek pro rozevírací textové tlačítko */\r\n title?: string;\r\n /** Text rozevíracího tlačítka před vybráním hodnoty */\r\n defaultText?: string;\r\n};\r\n\r\n/** Komponenta slouží pro výběr agregační funkce pomocí rozevíracího seznamu. */\r\nexport const AggregationSelectComponent: FunctionComponent<AggregationSelectComponentProps> = ({\r\n value,\r\n onChange,\r\n options,\r\n defaultText,\r\n title,\r\n}) => (\r\n <TextButtonSelect<AggregationFunction>\r\n {...{ value, onChange, options, title, defaultText }}\r\n />\r\n);\r\n","export * from \"./AggregationSelectComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { AggregationFunction } from \"@multiweb/clients/dataReader\";\r\nimport { createGetLocalizedOptions, getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createAggregationFunctionSelectedAction } from \"../../actions\";\r\nimport { SELECT_OPTION_LOC_KEY } from \"../../locKeys\";\r\nimport { AGGREGATION_OPTIONS } from \"../../options\";\r\nimport { getColumnAggregationFunction } from \"../../selectors\";\r\nimport { AggregationRowKey, ColumnKey } from \"../../types\";\r\nimport { AggregationSelectComponent, AggregationSelectComponentProps } from \"../AggregationSelectComponent\";\r\n\r\nexport type AggregationSelectProps = {\r\n /** Klíč agregačního řádku */\r\n aggregationRowKey: AggregationRowKey;\r\n /** Klíč sloupce */\r\n columnKey: ColumnKey;\r\n};\r\n\r\ntype StateProps = Pick<AggregationSelectComponentProps, \"value\" | \"defaultText\" | \"title\" | \"options\">;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<StateProps, AggregationSelectProps, IAppState> = () => {\r\n const getLocalizedOptions = createGetLocalizedOptions<AggregationFunction>(AGGREGATION_OPTIONS);\r\n\r\n return (state, { aggregationRowKey, columnKey }) => ({\r\n value: getColumnAggregationFunction(state, { aggregationRowKey, columnKey }),\r\n options: getLocalizedOptions(state),\r\n defaultText: getPrimaryText(state, SELECT_OPTION_LOC_KEY),\r\n title: getSecondaryText(state, SELECT_OPTION_LOC_KEY),\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick<AggregationSelectComponentProps, \"onChange\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, AggregationSelectProps> = (dispatch, { aggregationRowKey, columnKey }) => ({\r\n onChange: (aggregationFunction) => dispatch(createAggregationFunctionSelectedAction(aggregationRowKey, columnKey, aggregationFunction)),\r\n});\r\n\r\nexport const AggregationSelect = connect(createMapStateToProps, mapDispatchToProps)(AggregationSelectComponent);\r\n","export * from \"./AggregationSelect\";\r\n","import { connect, MapDispatchToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, IconButton, IconButtonProps, IconColor } from \"@multiweb/reactComponents\";\r\nimport { createLeftClickHandler } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { createCloseButtonActivatedAction } from \"../../actions\";\r\n\r\ntype CloseButtonProps = {\r\n /** Klíč agregačního řádku */\r\n aggregationRowKey: string;\r\n} & Pick<IconButtonProps, \"title\" | \"speak\">;\r\n\r\ntype DispatchProps = {\r\n buttonActivated: () => void;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, CloseButtonProps> = (dispatch, { aggregationRowKey }) => ({\r\n buttonActivated: () => dispatch(createCloseButtonActivatedAction(aggregationRowKey)),\r\n});\r\n\r\nconst mergeProps: MergeProps<undefined, DispatchProps, CloseButtonProps, IconButtonProps> = (\r\n _stateProps,\r\n { buttonActivated },\r\n { ...restOwnProps },\r\n) => ({\r\n onClick: createLeftClickHandler(buttonActivated),\r\n iconCode: IconCode.uiCrossSmall,\r\n color: IconColor.textSecondary,\r\n backgroundColor: ButtonBackgroundColor.transparent,\r\n ...restOwnProps,\r\n});\r\n\r\nexport const CloseButton = connect(undefined, mapDispatchToProps, mergeProps)(IconButton);\r\n","export { CloseButton } from \"./CloseButton\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport {\r\n AlignItems,\r\n FlexGrow,\r\n FontWeight,\r\n JustifyContent,\r\n Layout,\r\n Skeleton,\r\n SpacingSize,\r\n Text,\r\n TextColor,\r\n} from \"@multiweb/reactComponents\";\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils/bemClassNames\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { AggregationResult, AggregationRowKey, ColumnKey, ColumnType } from \"../../types\";\r\nimport { AggregationSelect } from \"../AggregationSelect\";\r\nimport { CloseButton } from \"../CloseButton\";\r\n\r\nexport type ColumnComponentProps = {\r\n /** Šířka sloupce v pixelech. */\r\n width: number | undefined;\r\n /** Příznak, zda probíhá načítání výsledku agregační funkce. */\r\n isLoading: boolean;\r\n /** Typ sloupce. */\r\n columnType: ColumnType | undefined;\r\n /** Výsledek agregační funkce. */\r\n aggregationResult: AggregationResult | undefined;\r\n /** Klíč agregačního řádku. */\r\n aggregationRowKey: AggregationRowKey;\r\n /** Klíč sloupce. */\r\n columnKey: ColumnKey;\r\n} & QAProps;\r\n\r\nconst classNames = bemClassNames(\"aggregation-row-column-component\");\r\n\r\n/**\r\n * Komponenta vykreslí sloupec agregačního řádku podle jeho typu.\r\n */\r\nexport const ColumnComponent: FunctionComponent<ColumnComponentProps> = ({\r\n width = 0,\r\n isLoading,\r\n columnType,\r\n aggregationResult,\r\n aggregationRowKey,\r\n columnKey,\r\n qa,\r\n}) => (\r\n <div\r\n className={classNames()}\r\n style={{ width }}\r\n {...createQA(qa)}\r\n >\r\n {columnType === ColumnType.control && (\r\n <Layout flexGrow={FlexGrow.one} alignItems={AlignItems.center} justifyContent={JustifyContent.center} >\r\n <CloseButton {...{ aggregationRowKey }}/>\r\n </Layout>\r\n )}\r\n {columnType === ColumnType.numeric && (\r\n renderNumericColumn(aggregationRowKey, columnKey, aggregationResult, isLoading)\r\n )}\r\n </div>\r\n);\r\n\r\nconst renderNumericColumn = (\r\n aggregationRowKey: AggregationRowKey,\r\n columnKey: ColumnKey,\r\n aggregationResult: AggregationResult | undefined,\r\n isLoading: boolean,\r\n) => (\r\n <Layout flexGrow={FlexGrow.one} alignItems={AlignItems.center} justifyContent={JustifyContent.spaceBetween} spacingSizeRight={SpacingSize.xs} collapse={true}>\r\n <Layout flexGrow={FlexGrow.one}>\r\n <AggregationSelect {...{ aggregationRowKey, columnKey }} />\r\n </Layout>\r\n <Layout flexGrow={FlexGrow.one} collapse={true} justifyContent={JustifyContent.flexEnd}>\r\n {isLoading ? (\r\n <div className={classNames(\"loading\")}>\r\n <Skeleton/>\r\n </div>\r\n ) : (\r\n <div className={classNames(\"aggregation-result\")}>\r\n <Text\r\n value={aggregationResult ?? \"\"}\r\n title={aggregationResult ?? \"\"}\r\n color={TextColor.textPrimary}\r\n fontWeight={FontWeight.bold}\r\n />\r\n </div>\r\n )}\r\n </Layout>\r\n </Layout>\r\n);\r\n","export { ColumnComponent, ColumnComponentProps } from \"./ColumnComponent\";\r\n","import { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport {\r\n getColumnAggregationResult,\r\n getColumnAttributeName,\r\n getColumnType,\r\n getColumnWidth,\r\n isColumnResultLoading,\r\n} from \"../../selectors\";\r\nimport { Column as AggregationRowColumn, ColumnType } from \"../../types\";\r\nimport { ColumnComponent, ColumnComponentProps } from \"../ColumnComponent\";\r\n\r\ntype ColumnProps = {\r\n /** Klíč sloupce. */\r\n columnKey: string;\r\n /** Klíč agregačního řádku. */\r\n aggregationRowKey: string;\r\n};\r\n\r\ntype StateProps = Pick<ColumnComponentProps, \"width\" | \"isLoading\" | \"columnType\" | \"aggregationResult\"> & Pick<AggregationRowColumn, \"attributeName\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ColumnProps, IAppState> = (state, { columnKey, aggregationRowKey }) => {\r\n const columnType = getColumnType(state, { columnKey, aggregationRowKey });\r\n const width = getColumnWidth(state, { columnKey, aggregationRowKey });\r\n const attributeName = getColumnAttributeName(state, { columnKey, aggregationRowKey }) || null;\r\n const commonProps = { columnType, attributeName, width };\r\n return columnType === ColumnType.numeric ? {\r\n ...commonProps,\r\n isLoading: isColumnResultLoading(state, { columnKey, aggregationRowKey }),\r\n aggregationResult: getColumnAggregationResult(state, { columnKey, aggregationRowKey }),\r\n } : {\r\n ...commonProps,\r\n isLoading: false,\r\n aggregationResult: undefined,\r\n };\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, ColumnProps, ColumnComponentProps> = (\r\n { attributeName, ...restStateProps },\r\n _dispatchProps,\r\n { columnKey, aggregationRowKey },\r\n) => ({\r\n ...restStateProps,\r\n aggregationRowKey,\r\n columnKey,\r\n qa: composeQA(attributeName || columnKey),\r\n});\r\n\r\nexport const Column = connect(mapStateToProps, undefined, mergeProps)(ColumnComponent);\r\n","export { Column } from \"./Column\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Layout, VerticalDivider } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { Column } from \"../Column\";\r\n\r\nexport type AggregationRowComponentProps = {\r\n /** Klíč agregačního řádku. */\r\n aggregationRowKey: string;\r\n /** Pole klíčů sloupců se zmraženým horizontálním scrollováním. */\r\n frozenColumns: readonly string[];\r\n /** Pole klíčů sloupců, které nemají zmražené horizontální scrollování. */\r\n nonFrozenColumns: readonly string[];\r\n} & QAProps;\r\n\r\nconst classNames = bemClassNames(\"aggregation-row-component\");\r\n\r\n/**\r\n * Vykresluje jednotlivé sloupce agregačního řádku. Nejprve vykreslí uzamčené sloupce, pak ostatní sloupce.\r\n */\r\nexport const AggregationRowComponent: FunctionComponent<AggregationRowComponentProps> = ({\r\n aggregationRowKey,\r\n frozenColumns,\r\n nonFrozenColumns,\r\n qa,\r\n}) => (\r\n <div\r\n className={classNames()}\r\n {...createQA(qa)}\r\n >\r\n <Layout>\r\n <div className={classNames(\"background\")}>\r\n <div className={classNames(\"frozen-part\")} >\r\n {renderColumns(frozenColumns, aggregationRowKey)}\r\n <VerticalDivider />\r\n </div>\r\n {renderColumns(nonFrozenColumns, aggregationRowKey)}\r\n </div>\r\n </Layout>\r\n </div>\r\n);\r\n\r\n/**\r\n * Pomocná funkce pro vykreslení sloupců.\r\n * @param columns Pole klíčů sloupců.\r\n * @param aggregationRowKey Klíč agregačního řádku.\r\n */\r\nconst renderColumns = (columns: readonly string[], aggregationRowKey: string) => columns.map((columnKey, index) => (\r\n <Fragment key={columnKey}>\r\n {index !== 0 && <VerticalDivider />}\r\n <Column {...{ columnKey, aggregationRowKey }} />\r\n </Fragment>\r\n));\r\n","export * from \"./AggregationRowComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createGetOrderedFrozenColumnKeys, createGetOrderedNonFrozenColumnKeys } from \"../../selectors\";\r\nimport { AggregationRowComponent, AggregationRowComponentProps } from \"../AggregationRowComponent\";\r\n\r\nexport type AggregationRowProps = {\r\n /** Klíč agregačního řádku. Prop je statická a po vytvoření komponenty ji nelze měnit. Využívá se k vytvoření selectorů. */\r\n aggregationRowKey: string;\r\n} & QAProps;\r\n\r\ntype StateProps = Pick<AggregationRowComponentProps, \"frozenColumns\" | \"nonFrozenColumns\">;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: AggregationRowProps) => MapStateToProps<StateProps, AggregationRowProps, IAppState> = (_state, { aggregationRowKey }) => {\r\n const getFrozenColumns = createGetOrderedFrozenColumnKeys();\r\n const getNonFrozenColumns = createGetOrderedNonFrozenColumnKeys();\r\n return (state) => ({\r\n frozenColumns: getFrozenColumns(state, { aggregationRowKey }),\r\n nonFrozenColumns: getNonFrozenColumns(state, { aggregationRowKey }),\r\n });\r\n};\r\n\r\nexport const AggregationRow = connect(createMapStateToProps)(AggregationRowComponent);\r\n","export { AggregationRow } from \"./AggregationRow\";\r\n","export * from \"./AggregationRow\";\r\nexport * from \"./AggregationSelect\";\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IAggregationRowState } from \"./types\";\r\n\r\nexport {\r\n createClearAggregationRowAction,\r\n createColumnAddedAction,\r\n createColumnDefinitionsChangedAction,\r\n createColumnRemovedAction,\r\n createColumnWidthChangedAction,\r\n createFilterChangedAction,\r\n createInitAggregationRowAction,\r\n createNumberOfFrozenColumnsChangedAction,\r\n createOrderOfColumnsChangedAction,\r\n createReloadAggregationResultsAction,\r\n} from \"./actions\";\r\nexport { AggregationRow } from \"./components\";\r\nexport { CLOSE_BUTTON_ACTIVATED } from \"./constants\";\r\nexport { unsafeGetAllColumnsAggregationFunctions, unsafeGetColumnsAggregationFunctions } from \"./selectors\";\r\nexport { AggregationRowKey, ColumnAggregationFunctions, ColumnDefinition, ColumnKey, ColumnType, Filter, ICloseButtonActivatedAction } from \"./types\";\r\nexport { areFiltersEqual } from \"./utils\";\r\n\r\nexport const aggregationRowModule: ApplicationStatefulModule<typeof NAME, Reducer<IAggregationRowState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","/**\r\n * ID role v nastavení práv \"bez uvedení role\"\r\n * */\r\nexport const ROLELESS_ROLE_ID: string = \"0\";\r\n","import { LogicalOperations, LogicalOperator } from \"../LogicalOperations\";\r\nimport { ArrayUtils } from \"../Utils/ArrayUtils\";\r\nimport { ROLELESS_ROLE_ID } from \"./constants\";\r\nimport { IItemRights } from \"./RightTypes\";\r\n\r\n//TODO: dokumentace\r\nexport class StandardOperationRights {\r\n private _activeRoleIds: readonly string[] = [];\r\n private _strictlyDisabled: boolean = false;\r\n\r\n private _canNew: boolean;\r\n private _canEdit: boolean = false;\r\n private _canDelete: boolean = false;\r\n private _isEditDirty: boolean = false;\r\n private _isDeleteDirty: boolean = false;\r\n\r\n private _editItemRights: IItemRights[];\r\n private _deleteItemRights: IItemRights[];\r\n\r\n private _contextEditRoleIds: string[] | null;\r\n private _contextDeleteRoleIds: string[] | null;\r\n\r\n public get canNew(): boolean {\r\n return this._canNew;\r\n }\r\n\r\n public set canNew(value: boolean) {\r\n this._canNew = value;\r\n }\r\n public get canEdit(): boolean | null {\r\n if (this._canEdit != null && !this._isEditDirty) {\r\n return this._canEdit;\r\n }\r\n\r\n if (this.editItemRights?.length > 0) {\r\n this._canEdit = this._combineRoleResults(this.editItemRights, this.contextEditRoleIds, true);\r\n this._setRightsRoles(this.editItemRights, this.contextEditRoleIds);\r\n }\r\n\r\n this._isEditDirty = false;\r\n\r\n return this._canEdit;\r\n }\r\n\r\n public set canEdit(value: boolean) {\r\n this._canEdit = value;\r\n }\r\n\r\n public get canDelete(): boolean | null {\r\n if (this._canDelete != null && !this._isDeleteDirty) {\r\n return this._canDelete;\r\n }\r\n\r\n if (this.deleteItemRights && this.deleteItemRights.length > 0) {\r\n this._canDelete = this._combineRoleResults(this.deleteItemRights, this.contextDeleteRoleIds, true);\r\n this._setRightsRoles(this.deleteItemRights, this.contextDeleteRoleIds);\r\n }\r\n\r\n this._isDeleteDirty = false;\r\n\r\n return this._canDelete;\r\n }\r\n\r\n public set canDelete(value: boolean) {\r\n this._canDelete = value;\r\n }\r\n\r\n /**\r\n * Z předaného seznamu rolí vyřadí ty, které nemají povolené odpovídající formulářové právo\r\n * @param itemRights Form práva\r\n * @param contextRoleIds Role, které mají právo pro daný kontext\r\n */\r\n private _setRightsRoles(itemRights: IItemRights[], contextRoleIds: string[]): void {\r\n const relevantRoleIds = contextRoleIds ? ArrayUtils.intersect([...this._activeRoleIds], contextRoleIds).filter(roleId => roleId !== ROLELESS_ROLE_ID) : [];\r\n\r\n if (relevantRoleIds.length > 0) {\r\n itemRights.filter(itemRight => !itemRight.value).forEach(itemRight => {\r\n const i = contextRoleIds.indexOf(itemRight.roleID);\r\n if (i >= 0)\r\n contextRoleIds.splice(i, 1);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Vrací výsledek kombinace práv tříd na rozhraní a form práv\r\n * @param roleLessItemRight Form právo bez role\r\n * @param itemRights Form práva\r\n * @param contextRoleIds Role, které mají právo pro daný kontext\r\n * @param noItemRightDefaultValue Defaultní hodnota form práva pro role, které nemají form právo definované\r\n * @returns Výsledné právo\r\n */\r\n private _combineRoleResults(itemRights: IItemRights[], contextRoleIds: string[], noItemRightDefaultValue: boolean): boolean | null {\r\n const roleLessItemRight = itemRights.find(itemRight => itemRight.roleID === ROLELESS_ROLE_ID); //TODO-rites: #takhle implicitní role kontrolovat nejde; c2: takhle to bude ok, implicitní !== bez role\r\n\r\n //zbytek validItemsRights (bez toho pro uživatele bez role) může pokračovat ve vyhodnocení.\r\n //TODO-rites předtím tu tohle filtrování nebylo, ale to bylo asi špatně. V případě že by bez role bylo právo true a ostatní práva false, bylo by chybně povoleno.\r\n itemRights = itemRights.filter(itemRight => itemRight !== roleLessItemRight);\r\n\r\n // pokud je zakázáno právem bez role, tak už žádnou rolí povolit nejde\r\n if (roleLessItemRight?.value === false)\r\n return false;\r\n\r\n const relevantRoleIds = contextRoleIds ? ArrayUtils.intersect([...this._activeRoleIds], contextRoleIds).filter(roleId => roleId !== ROLELESS_ROLE_ID) : [];\r\n\r\n if (relevantRoleIds.length > 0) {\r\n const relevantItemRights = itemRights.filter(itemRight => relevantRoleIds.includes(itemRight.roleID));\r\n const relevantItemRightsValues = relevantItemRights.map(itemRight => itemRight.isNegative ? !itemRight.value : itemRight.value); //TODO: Zeptat se DT, jestli není potřeba uvažovat isNegative?\r\n const relevantItemRightsRoleIds = relevantItemRights.map(i => i.roleID);\r\n /* Pokud je více relevantních rolí z contextu, než kolik se našlo práv z formulářové úrovně pro tyto role\r\n Nebo existuje nějaká relavntní role, pro kterou nejsou definované itemRights,\r\n pak je jasné že nějaká role nemá nastavení na formulářové úrovni a je potřeba do vyhodnocení přidat defaultní hodnotu\r\n */\r\n if (relevantRoleIds.length > relevantItemRightsValues.length ||\r\n relevantRoleIds.some(roleId => !relevantItemRightsRoleIds?.includes(roleId)))\r\n relevantItemRightsValues.push(noItemRightDefaultValue);\r\n\r\n return LogicalOperations.binaryOperationOverRange(LogicalOperator.or, relevantItemRightsValues);\r\n }\r\n\r\n // Pokud nejsou žádné relevantní role, vracím null\r\n return null;\r\n }\r\n\r\n /**\r\n * Pokud je nastaveno na true, znamená že práva by měla být neměnná.\r\n */\r\n public get strictlyDisabled(): boolean {\r\n return this._strictlyDisabled;\r\n }\r\n public set strictlyDisabled(value: boolean) {\r\n this._strictlyDisabled = value;\r\n }\r\n\r\n public get editItemRights(): IItemRights[] {\r\n return this._editItemRights;\r\n }\r\n public set editItemRights(itemRights: IItemRights[]) {\r\n this._editItemRights = itemRights;\r\n }\r\n\r\n public get deleteItemRights(): IItemRights[] {\r\n return this._deleteItemRights;\r\n }\r\n public set deleteItemRights(itemRights: IItemRights[]) {\r\n this._deleteItemRights = itemRights;\r\n }\r\n\r\n public get contextEditRoleIds(): string[] | null {\r\n return this._contextEditRoleIds;\r\n }\r\n public set contextEditRoleIds(editRoleIds: string[] | null) {\r\n this._contextEditRoleIds = editRoleIds;\r\n }\r\n\r\n public get contextDeleteRoleIds(): string[] | null {\r\n return this._contextDeleteRoleIds;\r\n }\r\n public set contextDeleteRoleIds(deleteRoleIds: string[] | null) {\r\n this._contextDeleteRoleIds = deleteRoleIds;\r\n }\r\n\r\n /**\r\n * Vytvoří novou instanci.\r\n * @param activeRoleIds Aktivní role uživatele\r\n * @param canEdit Právo editovat\r\n * @param canDelete Právo mazat\r\n * @param canNew Právo zakládat nové záznamy\r\n * @param strictlyDisabled Pokud je nastaveno na true, znamená že práva by měla být neměnná.\r\n */\r\n constructor(activeRoleIds: readonly string[], canEdit: boolean = false, canDelete: boolean = false, canNew: boolean = false, strictlyDisabled: boolean = false) {\r\n this._activeRoleIds = activeRoleIds;\r\n this._canEdit = canEdit;\r\n this._canDelete = canDelete;\r\n this._canNew = canNew;\r\n this._strictlyDisabled = strictlyDisabled;\r\n }\r\n\r\n /*TODO: nešlo by nějaké jinak vyřešit isDirty? a setovat jen _edititemsRights?\r\n Takto tady máme 2 settery na stejný field bez nějakého vysvětlení kdy použít jaký.\r\n https://tfs.tescosw.loc/Jadro/Jadro%20.NET/_git/MultiWebClient/pullrequest/5212?_a=overview\r\n */\r\n public setEditRightsResults(editItemRights: IItemRights[], isDirty: boolean = true): void {\r\n this._editItemRights = editItemRights;\r\n this._isEditDirty = isDirty;\r\n }\r\n\r\n public setDeleteRightsResults(deleteItemRights: IItemRights[], isDirty: boolean = true): void {\r\n this._deleteItemRights = deleteItemRights;\r\n this._isDeleteDirty = isDirty;\r\n }\r\n}\r\n","import { RightType } from \"../../../Global/Base/Rights/RightTypes\";\r\n//TODO-rites: comment;\r\nexport interface IBasicRightResults {\r\n get(rightType: RightType): boolean | undefined;\r\n\r\n set(rightType: RightType, value: boolean): this;\r\n\r\n unset(rightType: RightType): this;\r\n\r\n getAdditionalResultInfo(infoType: AdditionalRightResultInfoType): boolean | null;\r\n setAdditionalResultInfo(infoType: AdditionalRightResultInfoType, value: boolean): this;\r\n}\r\n\r\nexport enum AdditionalRightResultInfoType {\r\n disabledFormParent = 1 << 0,\r\n disabledByItemRights = 1 << 1,\r\n invisibleFromParent = 1 << 2,\r\n itemRightsEvaluationSkipped = 1 << 3,\r\n}\r\n\r\nexport class BasicRightResults implements IBasicRightResults {\r\n private _rightResultsMap: Map<RightType, boolean> = new Map<RightType, boolean>();\r\n private _additionalResultInfoMap: Map<AdditionalRightResultInfoType, boolean> = new Map<AdditionalRightResultInfoType, boolean>();\r\n\r\n public get(rightType: RightType): boolean | undefined {\r\n return this._rightResultsMap.get(rightType);\r\n }\r\n\r\n public set(rightType: RightType, value: boolean): this {\r\n this._rightResultsMap.set(rightType, value);\r\n\r\n return this;\r\n }\r\n\r\n public unset(rightType: RightType): this {\r\n this._rightResultsMap.delete(rightType);\r\n\r\n return this;\r\n }\r\n\r\n public getAdditionalResultInfo(infoType: AdditionalRightResultInfoType): boolean | null {\r\n return this._additionalResultInfoMap.get(infoType) || null;\r\n }\r\n public setAdditionalResultInfo(infoType: AdditionalRightResultInfoType, value: boolean = true): this {\r\n this._additionalResultInfoMap.set(infoType, value);\r\n\r\n return this;\r\n }\r\n}\r\n","export interface ITree<T> {\r\n /**\r\n * Uložený element v uzlu\r\n */\r\n readonly element: T | null;\r\n\r\n /**\r\n * Podřízené uzly\r\n */\r\n children: Iterable<this>;\r\n\r\n /**\r\n * Vložení nového podřízeného uzlu do tohoto (pod)stromu\r\n * @param element Vkládaný element\r\n */\r\n add(element: T): this;\r\n /**\r\n * Vložení nových podřízených uzlů do tohoto (pod)stromu\r\n * @param element Vkládaný element\r\n * @returns Vrací uzel do kterého se vkládalo\r\n */\r\n addRange(elements: T[]): this;\r\n /**\r\n * Vložení nového již vytvořeného podřízeného uzlu do tohoto (pod)stromu\r\n * @param element Vkládaný element\r\n */\r\n addNode(node: this): this;\r\n /**\r\n * Vložení nových již vytvořených podřízených uzlu do tohoto (pod)stromu\r\n * @param element Vkládaný element\r\n * @returns Vrací uzel do kterého se vkládalo\r\n */\r\n addNodeRange(nodes: this[]): this;\r\n /**\r\n * Vložení nového podřízené uzlu do (pod)stromu reprezentovaného předaným elementem. Pokud není ve stromu nalezen, tak se vloží do současného (pod)stromu\r\n * @param element Vkládaný element\r\n * @param parent Rodičovský uzel, do kterého by se měl element vložit\r\n */\r\n addToNode(element: T, parent: T): this | null;\r\n /**\r\n * Pokusí se ve stromě najít hledaný uzel a pokud byl nalezen, odstraní jej.\r\n * @param node Uzel k odstranění\r\n * @returns Vrací true, pokud se podařilo uzel odstranit.\r\n */\r\n removeNode(node: this): boolean;\r\n /**\r\n * Odstraní uzel, který je přímým potmkem aktuálního uzlu\r\n * @param node Uzel k odstranění\r\n * @returns Vrací true, pokud se podařilo uzel odstranit.\r\n */\r\n removeChildNode(node: this): boolean;\r\n /**\r\n * Najde podstrom se zadaným elementem nebo null, pokud nebyl nalezen\r\n * @param element\r\n */\r\n findByElement(element: T): this | null;\r\n /**\r\n * Nahradí současný uzel za předaný uzel.\r\n * @param node Uzel, který má nahradit stávající uzel.\r\n * @returns Nový uzel\r\n */\r\n replaceNode(node: this): this;\r\n /**\r\n * Vrací, zda má aktuální uzel v přímých potomcích hledaný uzel\r\n * @param node Uzel ko kontrole potomků\r\n */\r\n hasChildNode(node: this): boolean;\r\n /**\r\n * Průchodem do hloubky navštíví všechny uzly\r\n * @param visitor Funkce spouštěná nad každým uzlem\r\n */\r\n traverseDFS(visitor: (data: T | null) => void): void;\r\n}\r\n","import { CancellationToken } from \"../Promises/CancellationTokenSource\";\r\nimport { ITree } from \"./ITree\";\r\n\r\nexport interface IAsyncTree<T> extends ITree<T> {\r\n /**\r\n * Průchodem do hloubky navštíví všechny uzly.\r\n * @param visitor Funkce spouštěná nad každým uzlem.\r\n */\r\n traverseDFS(visitor: (data: T | null) => void): void;\r\n /**\r\n * Projde asynchronně všechny uzly stromu a to tím způsobem, že potomci se navštěvují až když je dokončeno navštívení rodičovského uzlu.\r\n * Metoda vrací, až když se dokončí návštěvy všech uzlů.\r\n * @param visitor Asynchronní funkce spouštěná nad každým uzlem.\r\n * @param traverseProcessDetails Objekt obsahující informace o průběhu průchodu stromem nebo průběžné výsledky.\r\n * @param processChildrenPrecondition Funkce určující, zda se má pokračovat v průchodu na potomky. Pokud není uvedená, tak se prochází všichni potomci.\r\n * @param failedPreconditionAction Funkce vyvolaná při nesplnění processChildrenPrecondition.\r\n * @param afterChildrenMethod Funkce vyvolaná po dokončení procházení všech potomků.\r\n * @param finallyMethod Funkce vyvolaná vždy po dokončení celého procházení.\r\n * @param ct Token umožňující stornování průchodu.\r\n */\r\n traverseRootsFinishFirstAsync<TVisitResult = IBaseAsyncTreeVisitorResult, TTraverseProcessDetails = ITraverseProcessDetails>(\r\n visitor: (data: T | null, node?: IAsyncTree<T>, traverseProcessDetails?: TTraverseProcessDetails) => Promise<TVisitResult>,\r\n traverseProcessDetails?: TTraverseProcessDetails,\r\n processChildrenPrecondition?: (visitResult: TVisitResult) => boolean,\r\n failedPreconditionAction?: (sth: TVisitResult) => boolean,\r\n afterChildrenMethod?: (element: T | null, childrenResult: IBaseAsyncTreeChildrenResult, visitorResult: TVisitResult) => TVisitResult,\r\n finallyMethod?: (data: T | null) => void,\r\n ct?: CancellationToken,\r\n ): Promise<TVisitResult>;\r\n}\r\n\r\n/**\r\n * Průběžná data o průchodu stromem, se kterými může visitor dále pracovat.\r\n * Může sloužit například pro předání informací o výsledku vyhodnocení rodičovského uzlu jeho potomkům.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\r\nexport interface ITraverseProcessDetails {\r\n}\r\n\r\nexport interface IBaseAsyncTreeVisitorResult<TTraverseProcessDetails = ITraverseProcessDetails> {\r\n traverseDetails?: TTraverseProcessDetails;\r\n result?: any;\r\n cancel?: boolean;\r\n}\r\n\r\nexport class IBaseAsyncTreeVisitorResult {\r\n private static _properties: (keyof IBaseAsyncTreeVisitorResult)[] = [\"traverseDetails\", \"result\", \"cancel\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n // POZOR! Nestandardní definice. Protože má interface jen nepovinné property, nemůžeme je kontrolovat povinně. Aby to zase nebyla jen úplně obecná kontrola, jestli je to objekt bez dalších specifik,\r\n // tak se kontroluje, že pokud má nějaké property, tak by měl obsahovat alespoň některou z nepovinných. Pokud nemá žádné property, kontrolou projde.\r\n return instance != null && (Reflect.ownKeys(instance).length === 0 || this._properties.some(propertyKey => Reflect.has(instance, propertyKey)));\r\n }\r\n}\r\n\r\nexport interface IBaseAsyncTreeChildrenResult {\r\n results: (IBaseAsyncTreeVisitorResult | void)[];\r\n}\r\n\r\nexport class IBaseAsyncTreeChildrenResult {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && Reflect.has(instance, \"results\");\r\n }\r\n}\r\n","import { IBasicRightResults } from \"../../../UI/UI/Rights/BasicRightsResults\";\r\nimport { IAsyncTree, IBaseAsyncTreeVisitorResult } from \"../DataTypes/IAsyncTree\";\r\nimport { IItemRightsCollection } from \"./RightTypes\";\r\n\r\n/**\r\n * Obecný interface stromu komponent používaného pro vyhodnocování práv nebo validnosti\r\n */\r\nexport interface IComponentTree<TComponent, TComponentType> extends IAsyncTree<TComponent> {\r\n /**\r\n * Nadřízený uzel stromu\r\n */\r\n readonly parentNode: IComponentTree<TComponent, TComponentType> | null;\r\n\r\n /**\r\n * Komponenta stromu\r\n */\r\n readonly component: TComponent;\r\n\r\n /**\r\n * Název atributu komponenty\r\n */\r\n readonly attrName: string;\r\n /**\r\n * Typ komponenty (atribut/metoda)\r\n */\r\n readonly componentType: TComponentType | null;\r\n /**\r\n * Podmínka komponenty\r\n */\r\n readonly condition: string;\r\n /**\r\n * Kolekce práv na komponentě\r\n */\r\n readonly componentRightsCollection: IItemRightsCollection;\r\n /**\r\n * Pokud jde o statickou komponentu\r\n */\r\n readonly isStatic: boolean | null;\r\n\r\n /**\r\n * Příznak, že byl uzel stromu zatím pouze před-inicializován\r\n */\r\n isPreinitializedOnly?: boolean;\r\n}\r\n\r\n/**\r\n * @generateInstanceClass\r\n */\r\nexport interface IComponentTreeVisitorResult extends IBaseAsyncTreeVisitorResult {\r\n visible?: boolean;\r\n basicRightResults?: IBasicRightResults;\r\n}\r\n\r\nexport class IComponentTreeVisitorResult {\r\n private static _properties: (keyof IComponentTreeVisitorResult)[] = [\"visible\", \"basicRightResults\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n // POZOR! Nestandardní definice. Protože má interface jen nepovinné property, nemůžeme je kontrolovat povinně. Aby to zase nebyla jen úplně obecná kontrola, jestli je to objekt bez dalších specifik,\r\n // tak se kontroluje, že pokud má nějaké property, tak by měl obsahovat alespoň některou z nepovinných. Pokud nemá žádné property, kontrolou projde.\r\n return instance != null && (Reflect.ownKeys(instance).length === 0 || this._properties.some(propertyKey => Reflect.has(instance, propertyKey))) && instance instanceof IBaseAsyncTreeVisitorResult;\r\n }\r\n}\r\n\r\nexport interface IComponentTreeVisitorVisibleResult extends IComponentTreeVisitorResult {\r\n visible: boolean;\r\n}\r\n\r\nexport class IComponentTreeVisitorVisibleResult {\r\n private static _properties: (keyof IComponentTreeVisitorVisibleResult)[] = [\"visible\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some(property => !Reflect.has(instance, property));\r\n }\r\n}\r\n\r\nexport interface IComponentTreeVisitorBasicRightResult extends IComponentTreeVisitorResult {\r\n basicRightResults: IBasicRightResults;\r\n}\r\n\r\nexport class IComponentTreeVisitorBasicRightResult {\r\n private static _properties: (keyof IComponentTreeVisitorBasicRightResult)[] = [\"basicRightResults\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some(property => !Reflect.has(instance, property));\r\n }\r\n}\r\n","import { CancellationToken } from \"../Promises/CancellationTokenSource\";\r\nimport { IAsyncTree, IBaseAsyncTreeChildrenResult, IBaseAsyncTreeVisitorResult, ITraverseProcessDetails } from \"./IAsyncTree\";\r\n\r\n/**\r\n * Jednoduchá generická stromová struktura umožňující synchronní a asynchronní procházení jednotlivých uzlů\r\n */\r\nexport class AsyncTree<T> implements IAsyncTree<T> {\r\n public readonly element: T | null;\r\n protected readonly _children: this[];\r\n\r\n public get children(): Iterable<this> {\r\n return this._getIterator();\r\n }\r\n\r\n public getChildren(ct?: CancellationToken): Iterable<this> {\r\n return this._getIterator(ct);\r\n }\r\n\r\n constructor(element: T | null = null) {\r\n this.element = element;\r\n this._children = [];\r\n }\r\n\r\n protected *_getIterator(_ct?: CancellationToken): IterableIterator<this> {\r\n for (const a of this._children)\r\n yield a;\r\n }\r\n\r\n public add(element: T): this {\r\n const node = new AsyncTree<T>(element) as this;\r\n return this.addNode(node);\r\n }\r\n\r\n public addRange(elements: T[]): this {\r\n for (const element of elements) {\r\n const node = new AsyncTree<T>(element) as this;\r\n this.addNode(node);\r\n }\r\n return this;\r\n }\r\n\r\n public addNode(node: this): this {\r\n this._children.push(node);\r\n return node;\r\n }\r\n\r\n public addNodeRange(nodes: this[]): this {\r\n for (const node of nodes) {\r\n this.addNode(node);\r\n }\r\n return this;\r\n }\r\n\r\n public addToNode(element: T, parent: T): this | null {\r\n const parentNode: this = this.findByElement(parent);\r\n if (parentNode)\r\n return parentNode.add(element);\r\n else\r\n return this.add(element);\r\n }\r\n\r\n public hasChildNode(node: this): boolean {\r\n return this._children.includes(node);\r\n }\r\n\r\n public removeChildNode(node: this): boolean {\r\n const index = this._children.indexOf(node);\r\n if (index < 0)\r\n return false;\r\n\r\n if (this._children.splice(index, 1).length > 0)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n public findByElement(element: T): this | null {\r\n return AsyncTree._findDFS<T, this>(this, (el) => el === element);\r\n }\r\n\r\n public removeNode(nodeToRemove: this): boolean {\r\n const parentNode = AsyncTree._findNodeDFS<T, this>(this, (parent) => parent.hasChildNode(nodeToRemove));\r\n if (parentNode) {\r\n return parentNode.removeChildNode(nodeToRemove);\r\n }\r\n return false;\r\n }\r\n\r\n public replaceNode(nodeToAdd: this): this {\r\n const parentNode = AsyncTree._findNodeDFS<T, this>(this, (parent) => parent.hasChildNode(this));\r\n if (parentNode) {\r\n parentNode.removeChildNode(this);\r\n return parentNode.addNode(nodeToAdd);\r\n }\r\n return nodeToAdd;\r\n }\r\n\r\n public traverseDFS(visitor: (data: T | null) => void): void {\r\n visitor(this.element);\r\n for (const child of this.children)\r\n child.traverseDFS(visitor);\r\n }\r\n\r\n private static _findDFS<TI, TT extends AsyncTree<TI>>(node: TT, predicate: (data: TI | null) => boolean): TT | null {\r\n return AsyncTree._findNodeDFS(node, (node: TT) => {\r\n return predicate(node.element);\r\n });\r\n }\r\n\r\n protected static _findNodeDFS<TI, TT extends AsyncTree<TI>>(node: TT, predicate: (searchedNode: TT | null) => boolean): TT | null {\r\n if (predicate(node))\r\n return node;\r\n\r\n for (const c of node.children) {\r\n const found = AsyncTree._findNodeDFS<TI, TT>(c, predicate);\r\n if (found)\r\n return found;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public async traverseRootsFinishFirstAsync<TVisitResult = IBaseAsyncTreeVisitorResult, TTraverseProcessDetails = ITraverseProcessDetails>(\r\n visitor: (data: T | null, node: IAsyncTree<T>, traverseProcessDetails?: TTraverseProcessDetails) => Promise<TVisitResult>,\r\n traverseProcessDetails?: TTraverseProcessDetails,\r\n processChildrenPrecondition?: (visitResult: TVisitResult) => boolean,\r\n failedPreconditionAction?: (visitResult: TVisitResult) => boolean,\r\n afterChildrenMethod?: (element: T | null, childrenResult: IBaseAsyncTreeChildrenResult, visitorResult: TVisitResult) => TVisitResult /*TODO-rites: volitelná funkce, která se provede po zpracování potomků a umožní třeba skrytí kontejneru při neviditelnosti všech potomků; c2: přijímá i výsledek rodiče a může jej upravit*/,\r\n finallyMethod?: (data: T | null) => void,\r\n ct?: CancellationToken,\r\n ): Promise<TVisitResult> {\r\n let visitResult: TVisitResult | void = {} as TVisitResult;\r\n const childrenResult: IBaseAsyncTreeChildrenResult = { results: [] };\r\n let processChildren: boolean = true;\r\n\r\n try {\r\n if (this.element !== null)\r\n visitResult = await visitor(this.element, this, traverseProcessDetails);\r\n if (processChildrenPrecondition && !processChildrenPrecondition(visitResult))\r\n if (!failedPreconditionAction || !failedPreconditionAction(visitResult)) // Pokud je nastavena akce při neúspěchu prekondice a vrátí true, pokračuje vyhodnocování, jinak se skončí\r\n processChildren = false;\r\n\r\n if (processChildren) {\r\n childrenResult.results = await Promise.all(\r\n Array.from(this.getChildren(ct)).map(child => child.traverseRootsFinishFirstAsync(\r\n visitor,\r\n (visitResult instanceof IBaseAsyncTreeVisitorResult) ? visitResult.traverseDetails : undefined,\r\n processChildrenPrecondition,\r\n failedPreconditionAction,\r\n afterChildrenMethod,\r\n finallyMethod,\r\n ct,\r\n )),\r\n );\r\n\r\n if (afterChildrenMethod)\r\n visitResult = afterChildrenMethod(this.element, childrenResult, visitResult);\r\n }\r\n } finally {\r\n if (finallyMethod)\r\n finallyMethod(this.element);\r\n }\r\n\r\n return visitResult;\r\n }\r\n}\r\n","import { IAction } from \"../../../UI.Controls/Actions/IAction\";\r\nimport { GenericControl } from \"../Controls/Control\";\r\nimport { GenericControlParams } from \"../Controls/ControlInterfaces\";\r\n/**Predek pro ovladaci prvky stranky menu (zalozka, skupina, action)*/\r\nexport class ToolbarControl extends GenericControl {\r\n //#region Constructors\r\n constructor(params: GenericControlParams) {\r\n super(params);\r\n }\r\n\r\n //#region Constructors\r\n}\r\n\r\n/**\r\n * Interface pro prvky toolbaru, ktere muzou obsahovat Akce.\r\n */\r\nexport interface ContainerToolbarControl {\r\n addAction(action: IAction): void;\r\n removeAction(action: IAction): void;\r\n}\r\n","import { Event } from \"../../../Global/Base/Events\";\r\nimport { ContainerToolbarControl } from \"../../UI/UI/Toolbar/ToolbarControl\";\r\nimport { IAction } from \"./IAction\";\r\n\r\nexport interface INodeAction extends IAction {\r\n //#region Fields\r\n actions: Array<IAction>;\r\n parentAction: ContainerToolbarControl;\r\n readonly ctrlID: string;\r\n\r\n //#endregion Fields\r\n\r\n //#region Events\r\n itemAdded: Event<INodeAction, IAction>;\r\n itemRemoved: Event<INodeAction, IAction>;\r\n //#endregion Events\r\n\r\n addAction(action: IAction): void;\r\n removeAction(action: IAction): void;\r\n}\r\n\r\nexport class INodeAction {\r\n private static _properties = [\"actions\", \"parentAction\", \"itemAdded\", \"itemRemoved\"];\r\n private static _methods = [\"addAction\", \"removeAction\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IRightsContext } from \"./IRightsContext\";\r\n\r\n/**\r\n * Rozhraní uchovávající aktuální a předchozí kontext, vzhledem ke kterému se vyhodnocují práva\r\n */\r\nexport interface IRightsContexts {\r\n /**\r\n * Aktuální kontext\r\n */\r\n context: IRightsContext;\r\n\r\n /**\r\n * Předchozí kontext\r\n */\r\n previousContext: IRightsContext;\r\n}\r\n","/** Možnost určit, že se komponenta vztahuje k masterObjectu a spouští se nad ním */\r\nexport interface IUseMasterObject {\r\n /** Příznak, že se komponenta vztahuje k masterObjectu a spouští se nad ním */\r\n useMasterObject: boolean;\r\n}\r\n\r\nexport class IUseMasterObject {\r\n private static _properties: (keyof IUseMasterObject)[] = [\"useMasterObject\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && IUseMasterObject._properties.every((property) => Reflect.has(instance, property));\r\n }\r\n}\r\n","import { IBasicRightResults } from \"UI/UI/Rights/BasicRightsResults\";\r\nimport { IClassItemRights } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { IRightTypeEvaluationFunction } from \"./IRightsEvaluationOverrides\";\r\nimport { IUseMasterObject } from \"./IUseMasterObject\";\r\nimport { IItemRightsCollection } from \"./RightTypes\";\r\n\r\nexport interface ILogicalComponentBase<TRightType, TInnerComponent, TComponentType> extends IUseMasterObject {\r\n /**\r\n * Element komponenta\r\n */\r\n readonly control: TInnerComponent;\r\n /**\r\n * Nadřízený wrapper komponenty\r\n */\r\n readonly parentControlWrapper: ILogicalComponentBase<TRightType, TInnerComponent, TComponentType>;\r\n\r\n /**\r\n * Název atributu komponenty\r\n */\r\n readonly attrName: string;\r\n /**\r\n * Název metody\r\n */\r\n readonly methodName: string;\r\n /**\r\n * Typ komponenty (atribut/metoda)\r\n */\r\n readonly componentType: TComponentType | null;\r\n /**\r\n * Zda se nad touto komponentou nemají vyhodnocovat práva\r\n */\r\n readonly rightsIgnored: boolean;\r\n /**\r\n * Podmínka komponenty\r\n */\r\n readonly condition: string;\r\n\r\n /**\r\n * Pokud jde o statickou kompoentu\r\n */\r\n readonly isStatic: boolean | null;\r\n\r\n /**\r\n * Zda již nevyhodnocovat práva na potomcích\r\n */\r\n readonly stopRightsEvaluatingOnChildren?: boolean;\r\n\r\n readonly rightsCollection: IItemRightsCollection;\r\n /**\r\n * Uchovaná serverová práva položky z posledního vyhodnocení\r\n */\r\n classItemRights: IClassItemRights | null;\r\n\r\n /**\r\n * Příznak, že nejde o skutečnou komponentu, ale jen o pomocnou (např. pro účely hierarchie stromu)\r\n */\r\n readonly isVirtualControl?: boolean;\r\n\r\n rightsEvaluationOverrides: IRightTypeEvaluationFunction<TRightType, ILogicalComponentBase<TRightType, TInnerComponent, TComponentType>, boolean | null, IBasicRightResults>[];\r\n\r\n getRight(rightType: TRightType): boolean | null;\r\n\r\n setRight(rightType: TRightType, value: boolean): boolean;\r\n}\r\n","import { ComponentTree } from \"UI/UI/LogicalTree/ComponentTree\";\r\nimport { Event } from \"../Events\";\r\nimport { IDisposable } from \"../IDisposable\";\r\nimport { IComponentTree, IComponentTreeVisitorResult } from \"./IComponentTree\";\r\nimport { ILogicalComponentBase } from \"./ILogicalComponentBase\";\r\nimport { IRightsContext } from \"./IRightsContext\";\r\nimport { IHasRights, IItemRightsCollection } from \"./RightTypes\";\r\n\r\n/**\r\n * TODO-rites\r\n *\r\n * @generateInstanceClass\r\n */\r\nexport interface IRightsManager<TRightType, TComponent, TComponentType> extends IDisposable {\r\n\r\n /**\r\n * Nastaví manageru strom komponent, nad kterým má pracovat\r\n * @param componentTreeGetter Funkce vracející strom komponent\r\n */\r\n setComponentTree(componentTreeGetter: () => IComponentTree<ILogicalComponentBase<TRightType, TComponent, TComponentType>, TComponentType>): void;\r\n\r\n /**\r\n * Vstupní metoda vyhodnocení daných typů práv\r\n * @param rightTypes Typy práv, které se mají vyhodnotit\r\n * @param context Kontext, vzhledem ke kterému se vyhodnocují práva\r\n * @param usesFormRights Formulářová práva by se měla aplikovat, pokud je frame hlavním framem nebo pokud je to detail k hlavnímu seznamu\r\n * @param priorityRightTypes Typy práv, které se mají prioritně vyhodnotit\r\n * @param foreignContextEvaluation Zda probíhá vyhodnocení práv v nestandardním kontextu\r\n */\r\n evaluateRights(rightTypes: TRightType[], context: IRightsContext | null, usesFormRights?: boolean, priorityRightTypes?: TRightType[], foreignContextEvaluation?: boolean): Promise<void>;\r\n\r\n /**\r\n * Vrací vyhodnocovač práv framu této implementace IRightsManageru\r\n * TODO-rites skrýt, mělo by být vnitřní záležitostí\r\n */\r\n getFrameRightsEvaluator(): (...params: any[]) => Promise<IComponentTreeVisitorResult>;\r\n\r\n /**\r\n * Hledá kolekci práv daného uzlu v ComponentTree\r\n * @param predicate Predikát, podle kterého se má hledat\r\n */\r\n findRightsCollectionForControl(predicate: (node: ComponentTree) => boolean): { evaluatedRights: IHasRights; rights: IItemRightsCollection } | undefined;\r\n\r\n /**\r\n * Událost vyvolána před spuštěním vyhodnocením práv\r\n */\r\n readonly rightsEvaluating: Event<IRightsManager<TRightType, TComponent, TComponentType>, IRightsContext>;\r\n /**\r\n * Událost vyvolaná po vyhodnocení práv\r\n */\r\n readonly rightsEvaluated: Event<IRightsManager<TRightType, TComponent, TComponentType>, IRightsContext>;\r\n /** Čítač probíhajících vyhodnocování práv */\r\n readonly runningEvaluationsCount: number;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport class IRightsManager<TRightType, TComponent, TComponentType> {\r\n private static _properties: string[] = [];\r\n private static _methods: (keyof IRightsManager<any, any, any>)[] = [\"setComponentTree\", \"evaluateRights\", \"getFrameRightsEvaluator\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") &&\r\n instance instanceof IDisposable;\r\n }\r\n}\r\n","import { ILogicalComponentBase } from \"../../../Global/Base/Rights/ILogicalComponentBase\";\r\nimport { RightType } from \"../../../Global/Base/Rights/RightTypes\";\r\nimport { IGenericControl } from \"../UI/Controls/ControlInterfaces\";\r\nimport { ComponentType } from \"./ComponentTree\";\r\n\r\nexport interface ILogicalComponent extends ILogicalComponentBase<RightType, IGenericControl, ComponentType> {\r\n readonly parentControlWrapper: ILogicalComponent;\r\n\r\n /**\r\n * Zjistí, jestli má smysl vyhodnocovat zadané právo pro obalenou komponentu.\r\n */\r\n isEvaluableForRight(rightType: RightType): boolean;\r\n}\r\n","/**\r\n * Třída reprezentující generickou dvojici\r\n */\r\nexport class Tuple<TOne, TTwo> {\r\n constructor(one?: TOne, two?: TTwo) {\r\n this._one = one;\r\n this._two = two;\r\n }\r\n\r\n private _one?: TOne;\r\n public get one(): TOne | undefined {\r\n return this._one;\r\n }\r\n public set one(v: TOne | undefined) {\r\n this._one = v;\r\n }\r\n\r\n private _two?: TTwo;\r\n public get two(): TTwo | undefined {\r\n return this._two;\r\n }\r\n public set two(v: TTwo | undefined) {\r\n this._two = v;\r\n }\r\n}\r\n\r\n/**\r\n * Třída reprezentující generickou trojici\r\n */\r\nexport class Triplet<TOne, TTwo, TThree> extends Tuple<TOne, TTwo> {\r\n constructor(one?: TOne, two?: TTwo, three?: TThree) {\r\n super(one, two);\r\n\r\n this._three = three;\r\n }\r\n\r\n private _three?: TThree;\r\n public get three(): TThree | undefined {\r\n return this._three;\r\n }\r\n public set three(v: TThree | undefined) {\r\n this._three = v;\r\n }\r\n}\r\n","import { DataConverter } from \"Global/Base/Converters/DataConverter\";\r\nimport { ROLELESS_ROLE_ID } from \"Global/Base/Rights/constants\";\r\nimport { IItemRights, RightLevel, RightType } from \"../../../Global/Base/Rights/RightTypes\";\r\nimport { IRoleImplicitRights, IRolesDefaultRightsResult } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { parseRequiredRightElementAttribute, parseRightElementAttribute } from \"./Utils\";\r\n/**\r\n * Práva nadefinována pro formulář\r\n */\r\nexport interface IFormRight {\r\n /**\r\n * Úroveň práv, ze kterého se nastavena podmínka\r\n */\r\n readonly level: number;\r\n readonly roleID: string | undefined;\r\n\r\n readonly read: boolean;\r\n readonly insert: boolean;\r\n readonly edit: boolean;\r\n readonly delete: boolean;\r\n\r\n readonly readConditionID: string | undefined;\r\n readonly insertConditionID: string | undefined;\r\n readonly editConditionID: string | undefined;\r\n readonly deleteConditionID: string | undefined;\r\n\r\n readonly isReadConditionNegative: boolean;\r\n readonly isInsertConditionNegative: boolean;\r\n readonly isEditConditionNegative: boolean;\r\n readonly isDeleteConditionNegative: boolean;\r\n\r\n /**\r\n * Vrací definici práva vkládání\r\n */\r\n getInsertRight(): IItemRights;\r\n\r\n /**\r\n * Vrací definici práva čtení\r\n */\r\n getReadRight(): IItemRights;\r\n\r\n /**\r\n * Vrací definici práva editace\r\n */\r\n getEditRight(): IItemRights;\r\n\r\n /**\r\n * Vrací definici práva mazání\r\n */\r\n getDeleteRight(): IItemRights;\r\n\r\n /**\r\n * Vrací implicitní hodnotu práva prvků\r\n * @param rightType zjišťované právo\r\n */\r\n getItemImplicitRight(rightType: RightType): IItemRights;\r\n}\r\ntype ItemRightElementKeys = \"deleteconditionid\" |\r\n \"delete\" |\r\n \"editconditionid\" |\r\n \"isdeleteconditionnegative\" |\r\n \"edit\" |\r\n \"isinsertconditionnegative\" |\r\n \"iseditconditionnegative\" |\r\n \"insertconditionid\" |\r\n \"insert\" |\r\n \"isreadconditionnegative\" |\r\n \"read\" |\r\n \"readconditionid\" |\r\n \"level\" |\r\n \"roleid\";\r\n/**\r\n * Práva nadefinována na komponentě z XGenu\r\n */\r\nclass FormRight implements IFormRight {\r\n /**\r\n * Úroveň aplikace, ze kterého se nastavena podmínka\r\n */\r\n public readonly level: number;\r\n public readonly roleID: string | undefined;\r\n\r\n public readonly read: boolean;\r\n public readonly insert: boolean;\r\n public readonly edit: boolean;\r\n public readonly delete: boolean;\r\n\r\n public readonly readConditionID: string | undefined;\r\n public readonly insertConditionID: string | undefined;\r\n public readonly editConditionID: string | undefined;\r\n public readonly deleteConditionID: string | undefined;\r\n\r\n public readonly isReadConditionNegative: boolean;\r\n public readonly isInsertConditionNegative: boolean;\r\n public readonly isEditConditionNegative: boolean;\r\n public readonly isDeleteConditionNegative: boolean;\r\n\r\n private _readRight: IItemRights | undefined = undefined;\r\n private _insertRight: IItemRights | undefined = undefined;\r\n private _editRight: IItemRights | undefined = undefined;\r\n private _deleteRight: IItemRights | undefined = undefined;\r\n\r\n constructor(newRight: HTMLElement, implicitItemsRolesRights: IRolesDefaultRightsResult) {\r\n this.level = DataConverter.toNumber(parseRequiredRightElementAttribute<ItemRightElementKeys>(newRight, \"level\"));\r\n this.roleID = parseRightElementAttribute<ItemRightElementKeys>(newRight, \"roleid\");\r\n\r\n //Read\r\n this.read = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"read\"));\r\n this.readConditionID = parseRightElementAttribute<ItemRightElementKeys>(newRight, \"readconditionid\");\r\n this.isReadConditionNegative = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"isreadconditionnegative\"));\r\n\r\n //Insert\r\n this.insert = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"insert\"));\r\n this.insertConditionID = parseRightElementAttribute<ItemRightElementKeys>(newRight, \"insertconditionid\");\r\n this.isInsertConditionNegative = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"isinsertconditionnegative\"));\r\n\r\n //Edit\r\n this.edit = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"edit\"));\r\n this.editConditionID = parseRightElementAttribute<ItemRightElementKeys>(newRight, \"editconditionid\");\r\n this.isEditConditionNegative = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"iseditconditionnegative\"));\r\n\r\n //Delete\r\n this.delete = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"delete\"));\r\n this.deleteConditionID = parseRightElementAttribute<ItemRightElementKeys>(newRight, \"deleteconditionid\");\r\n this.isDeleteConditionNegative = DataConverter.toBoolean(parseRightElementAttribute<ItemRightElementKeys>(newRight, \"isdeleteconditionnegative\"));\r\n\r\n this.itemsImplicitRights = implicitItemsRolesRights.rights.find(item => item.id === this.roleID);\r\n }\r\n\r\n /*\r\n Implicitní práva prvků role, které patří daná definice práv\r\n */\r\n public readonly itemsImplicitRights: IRoleImplicitRights | undefined = undefined;\r\n\r\n private _createRight(roleID: string | undefined, firmRight: boolean, conditionID: string | undefined, isConditionNegative: boolean, level: number): IItemRights {\r\n return {\r\n roleID: roleID,\r\n value: firmRight,\r\n conditionID: conditionID,\r\n isNegative: isConditionNegative,\r\n level: level,\r\n };\r\n }\r\n\r\n /**\r\n * Vrací implicitní hodnotu práva prvků\r\n * @param rightType zjišťované právo\r\n */\r\n public getItemImplicitRight(rightType: RightType): IItemRights {\r\n let implicitValue;\r\n switch (rightType) {\r\n case RightType.visible:\r\n implicitValue = this.itemsImplicitRights?.visible;\r\n break;\r\n case RightType.enabled:\r\n implicitValue = this.itemsImplicitRights?.enabled;\r\n break;\r\n case RightType.required:\r\n implicitValue = this.itemsImplicitRights?.required;\r\n break;\r\n case RightType.postponedRequired:\r\n implicitValue = this.itemsImplicitRights?.postponedRequired;\r\n break;\r\n case RightType.recommended:\r\n implicitValue = this.itemsImplicitRights?.recommended;\r\n break;\r\n default:\r\n implicitValue = false;\r\n }\r\n return {\r\n roleID: this.roleID,\r\n value: implicitValue,\r\n conditionID: undefined,\r\n isNegative: false,\r\n level: this.roleID === ROLELESS_ROLE_ID ? RightLevel.allRolesFormLevel : RightLevel.formLevel,\r\n };\r\n }\r\n\r\n /**\r\n * Vrací definici práva vkládání\r\n */\r\n public getInsertRight(): IItemRights {\r\n if (!this._insertRight)\r\n this._insertRight = this._createRight(this.roleID, this.insert, this.insertConditionID, this.isInsertConditionNegative, this.level);\r\n return this._insertRight;\r\n }\r\n\r\n /**\r\n * Vrací definici práva čtení\r\n */\r\n public getReadRight(): IItemRights {\r\n if (!this._readRight)\r\n this._readRight = this._createRight(this.roleID, this.read, this.readConditionID, this.isReadConditionNegative, this.level);\r\n return this._readRight;\r\n }\r\n\r\n /**\r\n * Vrací definici práva editace\r\n */\r\n public getEditRight(): IItemRights {\r\n if (!this._editRight)\r\n this._editRight = this._createRight(this.roleID, this.edit, this.editConditionID, this.isEditConditionNegative, this.level);\r\n return this._editRight;\r\n }\r\n\r\n /**\r\n * Vrací definici práva mazání\r\n */\r\n public getDeleteRight(): IItemRights {\r\n if (!this._deleteRight)\r\n this._deleteRight = this._createRight(this.roleID, this.delete, this.deleteConditionID, this.isDeleteConditionNegative, this.level);\r\n return this._deleteRight;\r\n }\r\n}\r\n\r\nexport class FormRightsExtractor {\r\n public static extractRightsFromElement(elementWithRightDefinition: HTMLElement, implicitItemsRolesRights: IRolesDefaultRightsResult): IFormRight {\r\n return new FormRight(elementWithRightDefinition, implicitItemsRolesRights);\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IDisposable } from \"Global/Base/IDisposable\";\r\nimport { EventsController } from \"Global/Dom/EventsController\";\r\nimport { ErrorHandler } from \"UI/Errors\";\r\nimport { EnumUtils } from \"../../../../Global/Base/Utils/EnumUtils\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"../DataBuilders/IContentBuilder\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.sidePanel);\r\n\r\nexport class SidePanel extends HTMLElement implements IDisposable {\r\n private _topPanel: HTMLElement;\r\n private _topContentPanel: HTMLElement;\r\n private _btnPanel: HTMLElement;\r\n private _closeBtn: HTMLButtonElement;\r\n private _contentPanel: HTMLElement;\r\n private _align: SidePanelAlign;\r\n private _hasCloseBtn: boolean = true;\r\n private _eventsController: EventsController = new EventsController();\r\n\r\n private _titleBuilder: IContentBuilder;\r\n private _contentBuilder: IContentBuilder;\r\n private _btnPanelBuilder: IContentBuilder;\r\n\r\n public get align(): SidePanelAlign | string {\r\n return this._align;\r\n }\r\n\r\n /**\r\n * Nastavuje zarovnání\r\n */\r\n public set align(value: SidePanelAlign | string) {\r\n this.classList.remove(SidePanelAlign[this._align]);\r\n if (typeof value === \"string\")\r\n this._align = EnumUtils.getEnumValueFromName(SidePanelAlign, value);\r\n else\r\n this._align = value;\r\n this.classList.add(SidePanelAlign[this._align]);\r\n }\r\n\r\n /**\r\n * Nastavuje builder pro tlačitka v horním panelu, při vložení builderu je automaticky přepnuto ze zavíracího tlačítka na obsah builderu\r\n * @param v Builder\r\n */\r\n public set btnPanelBuilder(v: IContentBuilder) {\r\n this._btnPanelBuilder = v;\r\n this.toggleCloseBtn(false);\r\n }\r\n\r\n public get btnPanelBuilder(): IContentBuilder {\r\n return this._btnPanelBuilder;\r\n }\r\n\r\n public get contentBuilder(): IContentBuilder {\r\n return this._contentBuilder;\r\n }\r\n\r\n /**\r\n * Obsah panelu\r\n * @param v DataBuilder\r\n */\r\n public set contentBuilder(v: IContentBuilder) {\r\n this._contentBuilder = v;\r\n this._setContentByBuilder(this._contentPanel, v);\r\n }\r\n\r\n public get titleBuilder(): IContentBuilder {\r\n return this._titleBuilder;\r\n }\r\n\r\n /**\r\n * Obsah hlavičky\r\n * @param v\r\n */\r\n public set titleBuilder(v: IContentBuilder) {\r\n this._titleBuilder = v;\r\n this._setContentByBuilder(this._topContentPanel, v);\r\n }\r\n\r\n public get visible(): boolean {\r\n return this.classList.contains(\"visible\");\r\n }\r\n\r\n public set visible(v: boolean) {\r\n this.classList.toggle(\"visible\", v);\r\n //this.callEvent(\"visibility\", { value: v });\r\n }\r\n\r\n private async _setContentByBuilder(element: HTMLElement, value: IContentBuilder): Promise<void> {\r\n element.innerHTML = \"\";\r\n if (value == null) {\r\n logger.error(\"builder not set\");\r\n return;\r\n }\r\n\r\n try {\r\n element.appendChild(await value.build());\r\n } catch (err) {\r\n logger.error(err);\r\n ErrorHandler.instance.handleError(err);\r\n }\r\n }\r\n\r\n protected static get observedAttributes(): string[] {\r\n return [\"align\", \"flow\"];\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this.classList.add(\"side-panel\");\r\n\r\n this._topPanel = createElement({ classes: \"top-panel\" });\r\n this._topContentPanel = createElement({ classes: \"top-content-panel\" });\r\n this._btnPanel = createElement({ classes: \"top-btn-panel\" });\r\n this._closeBtn = createElement({ classes: \"icon close ui-cross-small\" }) as HTMLButtonElement;\r\n Localization.addLocDescData(this._closeBtn, \"GUI-668877\", \"title\");//Zavřít panel\r\n this._contentPanel = createElement({ classes: \"content-panel\" });\r\n\r\n this.appendChild(this._topPanel);\r\n this.appendChild(this._contentPanel);\r\n this._topPanel.appendChild(this._topContentPanel);\r\n this._topPanel.appendChild(this._btnPanel);\r\n this._btnPanel.appendChild(this._closeBtn);\r\n\r\n this._eventsController.addListener(this._closeBtn, \"click\", () => {\r\n this.visible = false;\r\n });\r\n\r\n this.align = SidePanelAlign.right;\r\n this.setAttribute(\"aria-hidden\", \"true\");\r\n }\r\n\r\n public show(): void {\r\n this.visible = true;\r\n this.setAttribute(\"aria-hidden\", \"true\");\r\n }\r\n\r\n public hide(): void {\r\n this.visible = false;\r\n this.removeAttribute(\"aria-hidden\");\r\n }\r\n\r\n /**\r\n * Přepne mezi zobrazení tlačítka na zavření a hodnotou builderu\r\n * @param value\r\n */\r\n public toggleCloseBtn(value: boolean): void {\r\n if (value === this._hasCloseBtn)\r\n return;\r\n\r\n if (value === false) {\r\n this._hasCloseBtn = false;\r\n this._setContentByBuilder(this._btnPanel, this._btnPanelBuilder);\r\n } else if (value === true) {\r\n this._hasCloseBtn = true;\r\n this._btnPanel.innerHTML = \"\";\r\n this._btnPanel.appendChild(this._closeBtn);\r\n } else {\r\n this.toggleCloseBtn(!this._hasCloseBtn);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n this._eventsController.dispose();\r\n }\r\n}\r\n\r\nexport enum SidePanelAlign {\r\n left,\r\n right,\r\n top,\r\n bottom,\r\n}\r\n\r\nregisterCustomElement(\"tsc-SidePanel\", SidePanel);\r\n","import { IDisposable } from \"../../../../Global/Base/IDisposable\";\r\nimport { ActionContext, ActionType, IAction } from \"../../../UI.Controls/Actions/IAction\";\r\nimport { IFrame } from \"../XGControls/IFrame\";\r\n\r\n/**\r\n * Reprezentuje uživatelské rozhraní celého formuláře, které umí vytvářet menu pro formulář a pro jednotlivé framy\r\n * Je možné vytvářet vlastní implementace\r\n * @includeToDoc\r\n */\r\nexport interface IFormUI extends IDisposable {\r\n /**\r\n * Obsahuje odkaz na menu spolecne pro celou skupinu formularu\r\n */\r\n formGroupMenu: IFormGroupMenu;\r\n /**\r\n * Vrací odkaz na menu formuláře\r\n */\r\n readonly formMenu: IFormMenu;\r\n /**\r\n * Vytvoří formulářové menu s ovládacími prvky týkajícími se formuláře jako celku\r\n */\r\n createFormMenu(): IFormMenu;\r\n\r\n /**\r\n * Vytvoří framové menu s ovládacími prvky týkajícími se jednoho konkrétního framu\r\n * @param sourceInfo Frame, ke kterému je menu vytvářeno nebo lokalizační klíč určující název framu\r\n */\r\n createFrameMenu(sourceInfo: IFrame): IMenu;\r\n\r\n /**\r\n * Umožňuje nastavit vlastní specifické property, na které mohou různé implementace reagovat\r\n * @param propertyName Název property - buď enum FormUICustomProperty nebo vlastní libovolný string\r\n * @param newValue Nastavovaná hodnota\r\n */\r\n setProperty(propertyName: FormUICustomProperty | string, newValue: any): void;\r\n\r\n /**\r\n * Jednoslovný název/kódové označení pro formUI.\r\n */\r\n formUIName: string;\r\n}\r\n\r\nexport class IFormUI {\r\n private static _properties = [\"createFormMenu\", \"createFrameMenu\", \"setProperty\", \"formGroupMenu\", \"formMenu\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !IFormUI._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\n/**\r\n * Reprezentuje uživatelské rozhraní umožňující ovládat obecně formulář\r\n * Je možné vytvářet vlastní implementace\r\n * @includeToDoc\r\n */\r\nexport interface IFormMenu extends IDisposable {\r\n /** Pokud je nastaveno na true, skryje formulářové menu */\r\n hideFormMenu?: boolean;\r\n /**\r\n * Přidání akce do toolbaru\r\n * @param action Objekt reprezentující akci\r\n */\r\n addAction<T extends IAction>(action: T): T;\r\n\r\n /**\r\n * Umožňuje nastavit vlastní specifické property, na které mohou různé implementace reagovat\r\n * @param propertyName Název property - buď enum FormUICustomProperty nebo vlastní libovolný string\r\n * @param newValue Nastavovaná hodnota\r\n */\r\n setProperty(propertyName: FormUICustomProperty | string, newValue: any): void;\r\n}\r\n\r\n/**\r\n * Reprezentuje uživatelské rozhraní obsaujíci společné prvky pro všechny formuláře\r\n * Je možné vytvářet vlastní implementace\r\n * @includeToDoc\r\n */\r\nexport interface IFormGroupMenu extends IDisposable {\r\n /** Pokud je nastaveno na true, skryje menu stránky */\r\n hidePageMenu?: boolean;\r\n\r\n /**\r\n * Umožňuje nastavit vlastní specifické property, na které mohou různé implementace reagovat\r\n * @param propertyName Název property - buď enum FormUICustomProperty nebo vlastní libovolný string\r\n * @param newValue Nastavovaná hodnota\r\n */\r\n setProperty(propertyName: FormUICustomProperty | string, newValue: any): void;\r\n}\r\n\r\nexport class IFormGroupMenu {\r\n private static _properties: string[] = [];\r\n private static _methods: (keyof(IFormGroupMenu))[] = [\"setProperty\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Reprezentuje uživatelské rozhraní umožňující ovládat jeden frame\r\n * Je možné vytvářet vlastní implementace\r\n * @includeToDoc\r\n */\r\nexport interface IMenu extends IDisposable {\r\n\r\n /**\r\n * Přidání akce do toolbaru\r\n * @param icon Ikonka, která se zobrazuje na tlačítku akce\r\n * @param menuType Do jakého menu se má akce zařadit\r\n * @param action Objekt reprezentující akci\r\n */\r\n addAction<T extends IAction>(action: T): T;\r\n\r\n /**\r\n * Odstraní zaregistrovanou akci z menu\r\n * @param action Akce k odstranění\r\n */\r\n removeAction(action: IAction): void;\r\n\r\n /**\r\n * Vrací akci podle jejího typu, pokud jich je víc, tak vrátí první\r\n * @param actionType Typ akce\r\n */\r\n getAction<T extends IAction>(actionType: ActionType): T;\r\n\r\n /**\r\n * Vrací akce podle typu\r\n * @param actionType Typ akce\r\n */\r\n getActions<T extends IAction>(actionType?: ActionType): Iterable<T>;\r\n\r\n /**\r\n * Vrací akce podle použitého kontextu\r\n * @param actionContext Kontext akce\r\n */\r\n getActionsByContext<T extends IAction>(actionContext?: ActionContext): Iterable<T>;\r\n\r\n /**\r\n * Vytvoří element s ovládacími prvky, které se použijí v kontextu datového záznamu\r\n * @param dataKeyFetcher Funkce vracející aktuální identifikátor datového záznamu, pro který se generují ovládací prvky\r\n */\r\n renderRecordControls(dataKeyFetcher: () => string): HTMLElement;\r\n\r\n /**\r\n * Nastavuje viditelnost celého menu\r\n * @param visibility True pokud má být viditelný\r\n */\r\n setVisibility(visibility: boolean): void;\r\n\r\n /**\r\n * Umožňuje nastavit vlastní specifické property, na které mohou různé implementace reagovat\r\n * @param propertyName Název property - buď enum FormUICustomProperty nebo vlastní libovolný string\r\n * @param newValue Nastavovaná hodnota\r\n */\r\n setProperty(propertyName: FormUICustomProperty | string, newValue: any): void;\r\n\r\n /**\r\n * Vrací true, pokud UI podporuje pouze samostatný toolbar (např. Ribbon) nebo každý frame má vlastní toolbar.\r\n */\r\n usesSingleToolbar: boolean;\r\n\r\n showMenuLoader?(): void;\r\n hideMenuLoader?(): void;\r\n}\r\n\r\nexport enum Icon {\r\n none,\r\n delete,\r\n new,\r\n save,\r\n copy,\r\n refresh,\r\n settings,\r\n settingsEqualizer,\r\n settingsEqualizerB,\r\n back,\r\n prev,\r\n next,\r\n multi,\r\n edit,\r\n more,\r\n export,\r\n print,\r\n search,\r\n layoutChange,\r\n treeGridSwitch,\r\n defaultIcon,\r\n detailFormActionIcon,\r\n openDetail,\r\n cancelChanges,\r\n favorite,\r\n selectFromLov,\r\n execute,\r\n executeAndClose,\r\n selectAll,\r\n selectNone,\r\n info,\r\n arrowUp,\r\n arrowDown,\r\n userLockUnlocked,\r\n prevRecord,\r\n nextRecord,\r\n recordActions,\r\n moveLeft,\r\n moveRight,\r\n filter,\r\n filterFilled,\r\n triangleBottom,\r\n graph,\r\n openOnMainForm = \"ui-out-link\",\r\n glasses = \"doc-glasses\",\r\n recordInfo = \"doc-wboard-search\",\r\n wfHistory = \"ui-undo\",\r\n wfParticipants = \"user-group\",\r\n wfStatus = \"ui-pixel\",\r\n webTabs = \"web-tabs\",\r\n}\r\n\r\n/**\r\n * Typ menu - kontextové menu nebo toolbar, do kterého se má prvek vložit.\r\n */\r\nexport enum MenuTypes {\r\n toolBar = 1,\r\n contextMenu = 2,\r\n}\r\n\r\n/**\r\n * Definuje různé specifické stavy, které je možné nastavit FormUI nebo některému menu\r\n */\r\nexport enum FormUICustomProperty {\r\n pageColor = 1,\r\n selected = 2,\r\n selectedPageColor = 3,\r\n notificationDot = 4,\r\n breadcrumbsElement = 5,\r\n formMenu = 6,\r\n formMenuVisibility = 7,\r\n}\r\n","import { IItemRights, IItemRightsCollection } from \"../../../Global/Base/Rights/RightTypes\";\r\n\r\n/**\r\n * Mutable v tom, že do jednotlivých fieldů lze přiřadit (neměnná) hodnota.\r\n */\r\nexport class MutableItemRightsCollection implements IItemRightsCollection {\r\n public enabled: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public postponedRequired: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public recommended: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public required: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public visible: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public closeForm: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public validateIf: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public confirmIf: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public useDigitalSign: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public useEncryption: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public useDecryption: ReadonlyArray<IItemRights> | undefined = undefined;\r\n public openAsEnabled: ReadonlyArray<IItemRights> | undefined = undefined;\r\n\r\n public showIfDefault: boolean | undefined = undefined;\r\n}\r\n","import { ROLELESS_ROLE_ID } from \"Global/Base/Rights/constants\";\r\nimport { IBaseItemRightsCollection, IItemRights, IItemRightsCollection, ItemRightsForRightLevels, RightType } from \"../../../Global/Base/Rights/RightTypes\";\r\nimport { invariant } from \"../../../Global/Base/Utils/AssertUtils\";\r\nimport { IWithOriginalRightsDefinition } from \"../UI/Controls/ControlInterfaces\";\r\nimport { MutableItemRightsCollection } from \"./MutableItemRightsCollection\";\r\n\r\nexport class ComponentRightsExtractor {\r\n /**\r\n * Vrací kolekci práv pro zadané control - profiltrovanou dle `types`.\r\n * @param control Control, kterého se to týká. Práva se načítají z {@link IWithOriginalRightsDefinition.originalRightsDefinition}.\r\n * @param types (Volitelný) Bitová maska s typy, které budou to výsledku zohledněny. Pokud maska není uvedena, vrátí se všechny.\r\n */\r\n public static loadRightsForTypes(control: IWithOriginalRightsDefinition, types?: RightType): IItemRightsCollection {\r\n const { originalRightsDefinition } = control;\r\n invariant(!!originalRightsDefinition, \"[Rights] originalRightsDefinition must be defined\");\r\n\r\n const rights = new MutableItemRightsCollection();\r\n const loadAllRightTypes = types == null;\r\n\r\n /**\r\n * Pro relevantní `rightType` (s ohledem na `types`) promítne odpovídající právo z `originalRightsDefinition` do `rights`.\r\n * @param rightType Právo k případnému zkopírování\r\n * @param rightField Field odpovídající právu `rightType`.\r\n * @param extraHandler Pokud zadáno a `rightType` je relevantní, pak se provede.\r\n */\r\n const handleRight = (rightType: RightType, rightField: keyof IBaseItemRightsCollection, extraHandler?: () => void) => {\r\n if (loadAllRightTypes || (types & rightType)) {\r\n const originalRight = originalRightsDefinition[rightField];\r\n\r\n // Z historických důvodů je žádoucí, aby - v případě undefined - výsledný objekt daný rightField vůbec neobsahoval. (Např. kvůli ControlInfoMessageBuilder.)\r\n if (originalRight !== undefined) {\r\n rights[rightField] = originalRight;\r\n }\r\n extraHandler && extraHandler();\r\n }\r\n };\r\n\r\n handleRight(RightType.enabled, \"visible\", () => {\r\n rights.showIfDefault = originalRightsDefinition.showIfDefault;\r\n });\r\n handleRight(RightType.enabled, \"enabled\");\r\n handleRight(RightType.required, \"required\");\r\n handleRight(RightType.postponedRequired, \"postponedRequired\");\r\n handleRight(RightType.recommended, \"recommended\");\r\n handleRight(RightType.closeForm, \"closeForm\");\r\n handleRight(RightType.validateIf, \"validateIf\");\r\n handleRight(RightType.confirmIf, \"confirmIf\");\r\n handleRight(RightType.useDigitalSign, \"useDigitalSign\");\r\n handleRight(RightType.useEncryption, \"useEncryption\");\r\n handleRight(RightType.useDecryption, \"useDecryption\");\r\n handleRight(RightType.openAsEnabled, \"openAsEnabled\");\r\n\r\n return rights;\r\n }\r\n\r\n /**\r\n * Vrací ConditionID k jedné skupině práv (visible, enabled ..), které má smysl vyhodnocovat, protože mají stejné RoleID jako přihlášený uživatel nebo nemají RoleID\r\n */\r\n public static getValidConditionIDsForItemRights(rights: ReadonlyArray<IItemRights>, roleIDCollection: ReadonlyArray<string>): Array<string> {\r\n const IDs = new Array<string>();\r\n if (rights)\r\n for (let i = 0; i < rights.length; i++) {\r\n const aktRight = rights[i];\r\n if (aktRight.conditionID != null && (!aktRight.roleID || aktRight.roleID === ROLELESS_ROLE_ID || roleIDCollection.indexOf(aktRight.roleID) > -1)) {\r\n IDs.push(aktRight.conditionID);\r\n }\r\n }\r\n return IDs;\r\n }\r\n\r\n public static getValidItemRightsForItemRights(itemRights: ReadonlyArray<IItemRights>, roleIDCollection: ReadonlyArray<string>): ItemRightsForRightLevels {\r\n const itemRightsForLevels = new ItemRightsForRightLevels();\r\n\r\n if (itemRights)\r\n for (let i = 0; i < itemRights.length; i++) {\r\n const aktRight = itemRights[i];\r\n if (!aktRight.roleID || aktRight.roleID === ROLELESS_ROLE_ID) {\r\n itemRightsForLevels.addItemRights(aktRight);\r\n } else if (roleIDCollection.indexOf(aktRight.roleID) > -1) {\r\n itemRightsForLevels.addItemRights(aktRight);\r\n }\r\n }\r\n\r\n return itemRightsForLevels;\r\n }\r\n\r\n public static getValidItemRightsForRightType(itemRights: IItemRightsCollection, rightType: RightType, roleIDCollection: ReadonlyArray<string>): ItemRightsForRightLevels | null {\r\n switch (rightType) {\r\n case RightType.visible:\r\n return this.getValidItemRightsForItemRights(itemRights.visible, roleIDCollection);\r\n case RightType.enabled:\r\n return this.getValidItemRightsForItemRights(itemRights.enabled, roleIDCollection);\r\n case RightType.required:\r\n return this.getValidItemRightsForItemRights(itemRights.required, roleIDCollection);\r\n case RightType.postponedRequired:\r\n return this.getValidItemRightsForItemRights(itemRights.postponedRequired, roleIDCollection);\r\n case RightType.recommended:\r\n return this.getValidItemRightsForItemRights(itemRights.recommended, roleIDCollection);\r\n case RightType.closeForm:\r\n return this.getValidItemRightsForItemRights(itemRights.closeForm, roleIDCollection);\r\n case RightType.validateIf:\r\n return this.getValidItemRightsForItemRights(itemRights.validateIf, roleIDCollection);\r\n case RightType.confirmIf:\r\n return this.getValidItemRightsForItemRights(itemRights.confirmIf, roleIDCollection);\r\n case RightType.useDigitalSign:\r\n return this.getValidItemRightsForItemRights(itemRights.useDigitalSign, roleIDCollection);\r\n case RightType.useEncryption:\r\n return this.getValidItemRightsForItemRights(itemRights.useEncryption, roleIDCollection);\r\n case RightType.useDecryption:\r\n return this.getValidItemRightsForItemRights(itemRights.useDecryption, roleIDCollection);\r\n case RightType.openAsEnabled:\r\n return this.getValidItemRightsForItemRights(itemRights.openAsEnabled, roleIDCollection);\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n public static getValidItemRightsForRightTypesMap(itemRights: IItemRightsCollection, rightTypes: RightType[], roleIDCollection: ReadonlyArray<string>): Map<RightType, ItemRightsForRightLevels> {\r\n return ComponentRightsExtractor._getValidItemRightsForRightTypes(itemRights, rightTypes, roleIDCollection) as Map<RightType, ItemRightsForRightLevels>;\r\n }\r\n\r\n public static getValidItemRightsForRightTypesArray(itemRights: IItemRightsCollection, rightTypes: RightType[], roleIDCollection: ReadonlyArray<string>): ReadonlyArray<IItemRights> {\r\n return ComponentRightsExtractor._getValidItemRightsForRightTypes(itemRights, rightTypes, roleIDCollection, true) as ReadonlyArray<IItemRights>;\r\n }\r\n\r\n private static _getValidItemRightsForRightTypes(itemRights: IItemRightsCollection, rightTypes: RightType[], roleIDCollection: ReadonlyArray<string>, returnFlat: boolean = false): Map<RightType, ItemRightsForRightLevels/*Array<ItemRights>*/> | ReadonlyArray<IItemRights> {\r\n let resultArray: IItemRights[] = [];\r\n const resultMap = new Map<RightType, ItemRightsForRightLevels>();\r\n\r\n // Vyfiltruje položky práv pro prázdnou roli + pro aktivní role\r\n for (const rightType of rightTypes) {\r\n const validItemRights = ComponentRightsExtractor.getValidItemRightsForRightType(itemRights, rightType, roleIDCollection);\r\n if (!validItemRights)\r\n continue;\r\n\r\n if (returnFlat)\r\n resultArray = resultArray.concat(validItemRights.flatten());\r\n else\r\n resultMap.set(rightType, validItemRights);\r\n }\r\n\r\n if (returnFlat)\r\n return resultArray;\r\n else\r\n return resultMap;\r\n }\r\n\r\n /**\r\n * Zjisti jestli skupina prav (visible, enabled ..), ma nejake pravo, ktere je platne pro prihlaseneho uzivatele (odpovida RoleID nebo nejake pravo nema RoleID a plati tedy pro vsechny role)\r\n */\r\n public static hasSomeValidRightToEvaluate(rights: ReadonlyArray<IItemRights>, roleIDCollection: ReadonlyArray<string>): boolean {\r\n if (rights) {\r\n for (let i = 0; i < rights.length; i++) {\r\n const aktRight = rights[i];\r\n if (!aktRight.roleID || aktRight.roleID === ROLELESS_ROLE_ID || roleIDCollection.indexOf(aktRight.roleID) > -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n /**\r\n * Vrátí seznam ConditionID od jednotlivých práv, která se budou vyhodnocovat (podle toho jestli mají RoleID jako přihlášený uživatel)\r\n */\r\n\r\n public static getAllRightsIDs(itemRights: IItemRightsCollection, roleIDCollection: ReadonlyArray<string>): Array<string> {\r\n let IDList = new Array<string>();\r\n\r\n //var IDList2 = new Array<number>();\r\n //var IDs = new Array<number>();\r\n //IDs.push(1);\r\n\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.enabled, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.postponedRequired, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.recommended, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.required, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.visible, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.closeForm, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.validateIf, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.confirmIf, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.useDigitalSign, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.useEncryption, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.useDecryption, roleIDCollection));\r\n IDList = IDList.concat(ComponentRightsExtractor.getValidConditionIDsForItemRights(itemRights.openAsEnabled, roleIDCollection));\r\n return IDList;\r\n }\r\n}\r\n","import { CancellationToken } from \"@multiweb/types/multiweb\";\r\nimport { IClassItemRights } from \"../../../Global/Base/Rights/IClassItemRights\";\r\nimport { IItemRights, IItemRightsCollection } from \"../../../Global/Base/Rights/RightTypes\";\r\nimport { NullOWObject, OWObject } from \"../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../../OW.Remoting/Remoting/OWManager\";\r\nimport { RequestContext } from \"../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { ClassItemRightTypes, ClassItemType, IEvaluatedConditionResult } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { ComponentRightsExtractor } from \"./ComponentRightsExtractor\";\r\n\r\nexport class Rights {\r\n /**\r\n * Vyhodnocení všech práv na dané komponentě\r\n * @param applyConditionResults Příznak, zda se mají pro právo viditelnosti aplikovat vyhodnocené výsledky podmínek. Často odpovídá - pokud máme objekt, pak je true\r\n */\r\n // TODO-rites: old rights, deprecated\r\n public static evaluateControlRights(rightCollection: IItemRightsCollection, classItemsRightsResult: Map<string, IClassItemRights>, evaluatedConditions: IEvaluatedConditionResult[], attrName: string, userRoleID: any[], applyConditionResults: boolean): IClassItemRights {\r\n let cir: IClassItemRights = null;\r\n\r\n if (attrName) {\r\n const aktItemRight: IClassItemRights = classItemsRightsResult.get(attrName);\r\n if (aktItemRight)\r\n cir = {\r\n Enabled: aktItemRight.Enabled,\r\n PostponedRequired: aktItemRight.PostponedRequired,\r\n Recommended: aktItemRight.Recommended,\r\n Required: aktItemRight.Required,\r\n Visible: aktItemRight.Visible,\r\n OpenAsEnabled: aktItemRight.OpenAsEnabled,\r\n Name: aktItemRight.Name,\r\n Type: aktItemRight.Type,\r\n };\r\n }\r\n\r\n if (cir == null)\r\n cir = {\r\n Enabled: true,\r\n PostponedRequired: false,\r\n Recommended: false,\r\n Required: false,\r\n Visible: true,\r\n closeForm: false,\r\n validate: false,\r\n confirm: false,\r\n useDigitalSign: false,\r\n useEncryption: false,\r\n useDecryption: false,\r\n OpenAsEnabled: false,\r\n Name: \"\",\r\n Type: null,\r\n };\r\n\r\n cir.Enabled = Rights.evaulatePartOfCondition(rightCollection.enabled, rightCollection, cir.Enabled, evaluatedConditions, \"or\", userRoleID);\r\n cir.PostponedRequired = Rights.evaulatePartOfCondition(rightCollection.postponedRequired, rightCollection, cir.PostponedRequired, evaluatedConditions, \"or\", userRoleID);\r\n cir.Recommended = Rights.evaulatePartOfCondition(rightCollection.recommended, rightCollection, cir.Recommended, evaluatedConditions, \"or\", userRoleID);\r\n cir.Required = Rights.evaulatePartOfCondition(rightCollection.required, rightCollection, cir.Required, evaluatedConditions, \"or\", userRoleID);\r\n cir.closeForm = Rights.evaulatePartOfCondition(rightCollection.closeForm, rightCollection, cir.closeForm, evaluatedConditions, \"or\", userRoleID);\r\n cir.validate = Rights.evaulatePartOfCondition(rightCollection.validateIf, rightCollection, cir.validate, evaluatedConditions, \"or\", userRoleID);\r\n cir.confirm = Rights.evaulatePartOfCondition(rightCollection.confirmIf, rightCollection, cir.confirm, evaluatedConditions, \"or\", userRoleID);\r\n cir.useDigitalSign = Rights.evaulatePartOfCondition(rightCollection.useDigitalSign, rightCollection, cir.useDigitalSign, evaluatedConditions, \"or\", userRoleID);\r\n cir.useEncryption = Rights.evaulatePartOfCondition(rightCollection.useEncryption, rightCollection, cir.useEncryption, evaluatedConditions, \"or\", userRoleID);\r\n cir.useDecryption = Rights.evaulatePartOfCondition(rightCollection.useDecryption, rightCollection, cir.useDecryption, evaluatedConditions, \"or\", userRoleID);\r\n cir.OpenAsEnabled = Rights.evaulatePartOfCondition(rightCollection.openAsEnabled, rightCollection, cir.OpenAsEnabled, evaluatedConditions, \"or\", userRoleID);\r\n cir.Visible = Rights.evaluateVisibility(rightCollection.visible, rightCollection, cir.Visible == null ? true : cir.Visible, evaluatedConditions, \"and\", userRoleID, applyConditionResults);\r\n\r\n return cir;\r\n }\r\n\r\n /**\r\n * Vyhodnotí konkrétní předané právo\r\n * @param rightsDefinition definice všech práv komponenty\r\n * @param specificRight konkrétní právo, které se má vyhodnotit\r\n * @param contextObject objekt, nad kterým se má právo vyhodnotit, nebo null pro vyhodnocení statické\r\n * @param classItemName název atributu nebo metody, ke které se právo váže, nebo null, pokud požadované právo nevztahuje ani k jednomu, ale pouze ke komponentě\r\n * @param classItemType typ prvku třídy - metoda nebo atribut - nebo null\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n // TODO-rites: old rights, deprecated; c2: z některých míst se stále volá\r\n public static async evaluateSpecificControlRights(rightsDefinition: IItemRightsCollection, specificRight: ReadonlyArray<IItemRights>, contextObject: OWObject,\r\n classItemName: string = null, classItemType: ClassItemType = null, requestContext?: RequestContext): Promise<IClassItemRights> {\r\n const promises: Promise<IEvaluatedConditionResult>[] = [];\r\n const evaluateConditionFunc: (conditionId: string, requestContext?: RequestContext | CancellationToken) => Promise<boolean> = contextObject && !(contextObject instanceof NullOWObject) ? contextObject.evaluateCondition.bind(contextObject) : OWManager.evaluateConditionWithoutObject.bind(OWManager);\r\n\r\n for (const r of specificRight) {\r\n if (r.conditionID == null)\r\n continue;\r\n\r\n promises.push(evaluateConditionFunc(r.conditionID, requestContext).then((result: boolean) => ({ Result: result, ID: r.conditionID })));\r\n }\r\n const evaluatedConditions = await Promise.all(promises);\r\n\r\n // toto by často nemělo být potřeba - nemá cenu vyhodnocovat práva rozhraní pro typy práv, které jsou jen pro formulář\r\n if (classItemName && classItemType) {\r\n const itemsRightResult: Map<string, IClassItemRights> = new Map();\r\n const itemRight = await contextObject.itemRights(classItemName, classItemType, ClassItemRightTypes.all);\r\n itemsRightResult.set(classItemName, itemRight);\r\n //var itemsRightResult = await OWManager.$$$_MethodToDelete_$$$_GetClassItemsRights(this.Owner.ActualObject, this.classItemsRights);\r\n return Rights.evaluateControlRights(rightsDefinition, itemsRightResult, evaluatedConditions, classItemName, await OWManager.getUserRoleIDs(requestContext?.cancellationToken), true);\r\n }\r\n\r\n return Rights.evaluateControlRights(rightsDefinition, null, evaluatedConditions, null, await OWManager.getUserRoleIDs(requestContext?.cancellationToken), true);\r\n }\r\n\r\n // TODO-rites: old rights, deprecated\r\n public static evaluateVisibility(rights: ReadonlyArray<IItemRights>, rightCollection: IItemRightsCollection, itemsRightsResult: boolean, evaulatedConditions: IEvaluatedConditionResult[], _operator: string, userRoleID: any[], applyConditionResults: boolean): boolean {\r\n if (applyConditionResults)\r\n return Rights.evaulatePartOfCondition(rights, rightCollection, itemsRightsResult, evaulatedConditions, \"and\", userRoleID);\r\n else {\r\n if (rights == undefined)\r\n return true;\r\n\r\n for (let i = 0; i < rights.length; i++) {\r\n const aktRight = rights[i];\r\n if (aktRight && aktRight.conditionID) {\r\n return rightCollection.showIfDefault;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n //Vyhodnocení jedné skupiny práv (visible, enabled ...) na komponentě\r\n // TODO-rites: old rights, deprecated\r\n public static evaulatePartOfCondition(rights: ReadonlyArray<IItemRights>, _rightCollection: IItemRightsCollection, itemsRightsResult: boolean, evaulatedConditions: IEvaluatedConditionResult[], operator: string, userRoleID: any[]): boolean {\r\n if (!rights || !ComponentRightsExtractor.hasSomeValidRightToEvaluate(rights, userRoleID))\r\n return itemsRightsResult;\r\n\r\n let value: boolean = operator === \"and\";\r\n\r\n for (let i = 0; i < rights.length; i++) {\r\n const aktRight = rights[i];\r\n let newValue: boolean = null;\r\n\r\n if (aktRight && aktRight.conditionID) {\r\n if (!evaulatedConditions)\r\n newValue = false;\r\n else {\r\n for (let j = 0; j < evaulatedConditions.length; j++) {\r\n if (evaulatedConditions[j].ID === aktRight.conditionID) {\r\n newValue = evaulatedConditions[j].Result;\r\n break;\r\n }\r\n }\r\n //Pokud nebyla podminka spravne vyhodnocena, tak je automaticky false\r\n if (newValue == null)\r\n return false;\r\n }\r\n } else {\r\n if (aktRight && aktRight.value != null)\r\n newValue = aktRight.value;\r\n }\r\n if (newValue != null) {\r\n if (aktRight.isNegative)\r\n newValue = !newValue;\r\n value = operator === \"and\" ? value && newValue : value || newValue;\r\n\r\n if ((operator === \"and\" && !value) || (operator === \"or\" && value))\r\n break;\r\n }\r\n }\r\n\r\n if (operator === \"and\")\r\n return itemsRightsResult && value;\r\n else\r\n return itemsRightsResult || value;\r\n }\r\n}\r\n","import { ConditionOperator, StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\n//import {LazyLoadingSectionLogger, LoggingSection} from \"@multiweb/logging\";\r\n\r\n//const logger = LazyLoadingSectionLogger.create(LoggingSection.dataGrid); // logger pro konkrétní oblast\r\n\r\n/**\r\n * Třída pro usnadnění práce s výběrem záznamu\r\n */\r\nexport class SelectionHelper {\r\n /** Informace o tom, zda bylo vybrano vse uz pred aplikaci filtru */\r\n private _masterSelectAll: boolean;\r\n /** Informace o aktualnim vyberu vseho */\r\n private _isSelectAll: boolean;\r\n private _filterCondition: string;\r\n private _standardCondition: string;\r\n private _includedItems: Array<string> = [];\r\n private _excludedItems: Array<string> = [];\r\n /** Dodatecne vybrane zaznamy pomocí podmínky */\r\n private _selectedItemsByCond: string;\r\n\r\n private _currentCondition: string = \"\";\r\n private _finalConditions: Array<string> = [];\r\n public dataKey: string = \"ID\";\r\n\r\n private _log(_target: string): void {\r\n // logger.group(target);\r\n // {\r\n // logger.info(\"masterSelectAll\", this.masterSelectAll);\r\n // logger.info(\"isSelectAll\", this.isSelectAll);\r\n // logger.info(\"inc items\", this._includedItems);\r\n // logger.info(\"excl items\", this._excludedItems);\r\n // logger.group(\"Conditions\");\r\n // {\r\n // logger.info(\"BaseCondition\", this.baseCondition);\r\n // logger.info(\"CurrentCondition\", this._currentCondition);\r\n // logger.info(\"FilterCondition\", this._filterCondition);\r\n // logger.info(\"Final Condition List\", this._finalConditions);\r\n // logger.info(\"SelectedByCond\", this._selectedItemsByCond);\r\n\r\n // }\r\n // logger.info(\"this\", this);\r\n // logger.groupEnd();\r\n // }\r\n // logger.groupEnd();\r\n }\r\n\r\n public set isSelectAll(v: boolean) {\r\n if (StringUtils.isNullOrEmpty(this.filterCondition)) {\r\n this._masterSelectAll = v;\r\n if (v) this._basicAllSelecetedClear();\r\n }\r\n\r\n if (this._isSelectAll != v) this._selectAll(v);\r\n this._isSelectAll = v;\r\n this._log(\"isSelectAll\");\r\n }\r\n\r\n public get isSelectAll(): boolean {\r\n return this._isSelectAll;\r\n }\r\n\r\n /** Informace o tom, zda bylo vybrano vse uz pred aplikaci filtru */\r\n public get masterSelectAll(): boolean {\r\n return this._masterSelectAll;\r\n }\r\n\r\n public set filterCondition(v: string) {\r\n if (this._filterCondition == v) return;\r\n this._log(\"filterCondition\");\r\n\r\n const oldFilter = this._filterCondition;\r\n this._finalizeCurrentCondition();\r\n this._filterCondition = v;\r\n\r\n this._createNewCurrentCondition(oldFilter);\r\n }\r\n\r\n public get filterCondition(): string {\r\n return this._filterCondition;\r\n }\r\n\r\n /**\r\n * Vratí standarntí podmínku zkombinovanou s filtrovací pokud je\r\n */\r\n public get baseCondition(): string {\r\n return StringUtils.combineConditions(ConditionOperator.and, this._standardCondition, this._filterCondition);\r\n }\r\n\r\n constructor(standardCondition: string, dataKey?: string) {\r\n this._standardCondition = standardCondition;\r\n this.dataKey = dataKey;\r\n this._createNewCurrentCondition();\r\n }\r\n\r\n /**\r\n * Přidá do výjmutých ŕádků\r\n * @param rows ID řádků\r\n */\r\n public exclude(rows: string[]): void {\r\n for (const row of rows) {\r\n const index = this._includedItems.indexOf(row);\r\n if (index != -1) {\r\n this._includedItems.splice(index, 1);\r\n }\r\n if ((this.isSelectAll || this._finalConditions.length > 0) && !this._excludedItems.includes(row)) this._excludedItems.push(row);\r\n }\r\n this._log(\"exclude\");\r\n }\r\n\r\n /**\r\n * Přidá do zahrnutých řádků\r\n * @param rows ID řádků\r\n */\r\n public include(rows: string[]): void {\r\n for (const row of rows) {\r\n const index = this._excludedItems.indexOf(row);\r\n if (index != -1) {\r\n this._excludedItems.splice(index, 1);\r\n }\r\n if (!this.isSelectAll && !this._includedItems.includes(row)) this._includedItems.push(row);\r\n }\r\n this._log(\"include\");\r\n }\r\n\r\n /**\r\n * Zjistí zda obsahuje ve výběru předané ID. Nezjištuje v podmínkách, v takovém případě vrací null\r\n * @param dataKey ID řádku\r\n */\r\n public contains(dataKey: string): boolean | null {\r\n if (this.isSelectAll) {\r\n if (this._excludedItems.includes(dataKey)) return false;\r\n return true;\r\n }\r\n if (this._includedItems.includes(dataKey)) return true;\r\n if (this._excludedItems.includes(dataKey)) return false;\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Přepíše aktuální výběr předaným\r\n * @param rows ID řádků\r\n */\r\n public set(rows: string[]): void {\r\n this._basicAllSelecetedClear();\r\n this.add(rows);\r\n }\r\n\r\n /**\r\n * Přída nebo odebere z vybraných na základě nastavení isSelectedAlee\r\n * @param rows ID řádků\r\n */\r\n public add(rows: string[]): void {\r\n if (this.isSelectAll) {\r\n this.exclude(rows);\r\n } else {\r\n this.include(rows);\r\n }\r\n }\r\n\r\n /**\r\n * Odebere nebo přídá z vybraných na základě nastavení isSelectedAlee\r\n * @param rows ID řádků\r\n */\r\n public remove(rows: string[]): void {\r\n if (!this.isSelectAll) {\r\n this.exclude(rows);\r\n } else {\r\n this.include(rows);\r\n }\r\n }\r\n\r\n private _selectAll(newValue: boolean): void {\r\n if (!newValue) {\r\n this.clear();\r\n } else {\r\n if (StringUtils.isNullOrEmpty(this.filterCondition))\r\n this._clearIncEncItems();\r\n }\r\n }\r\n\r\n private _finalizeCurrentCondition(): void {\r\n let cond = \"\";\r\n if (!StringUtils.isNullOrEmpty(this._selectedItemsByCond)) cond = this._selectedItemsByCond;\r\n\r\n if (this.isSelectAll) {\r\n cond = StringUtils.combineConditions(ConditionOperator.and, this._currentCondition, cond);\r\n }\r\n\r\n this._selectedItemsByCond = \"\";\r\n this._currentCondition = \"\";\r\n //this._clearIncEncItems();\r\n this._createNewCurrentCondition();\r\n\r\n if (!StringUtils.isNullOrEmpty(cond)) this._finalConditions.push(cond);\r\n }\r\n\r\n /**\r\n * Vrátí finální podmínku\r\n */\r\n public buildCondition(): string {\r\n this._finalizeCurrentCondition();\r\n let cond = this._standardCondition;\r\n if (this._includedItems.length > 0) cond = `${this.dataKey} in { ${this._includedItems.join(\",\")} }`;\r\n if (this._excludedItems.length > 0) cond = StringUtils.combineConditions(ConditionOperator.and, cond, `not ( ${this.dataKey} in { ${this._excludedItems.join(\",\")} } )`);\r\n\r\n cond = StringUtils.combineConditionsArray(ConditionOperator.and, [cond, ...this._finalConditions]);\r\n\r\n return cond;\r\n }\r\n\r\n /**\r\n * Vrátí vybrané řádky, pokud je výběr složitější vrací je pomocí podmínky jinak vrátí pole dataKeys\r\n * @param forceCondition pokud je true, vždy vrací podmínku, výchozi false\r\n */\r\n public getSelectedData(forceCondition: boolean = false): string | Array<string> {\r\n if (forceCondition || (this.isSelectAll || this._finalConditions.length > 0 || !StringUtils.isNullOrEmpty(this._selectedItemsByCond))) {\r\n return this.buildCondition();\r\n } else {\r\n return Array.from(this._includedItems);\r\n }\r\n }\r\n\r\n private _createNewCurrentCondition(oldFilterCondition?: string): void {\r\n this._currentCondition = this.filterCondition; //this.baseCondition;\r\n if (this.isSelectAll) {\r\n if (this._masterSelectAll) {\r\n // Prázdné if\r\n } else { // pokud bylo vybrano vse, ale nebyl to globalni vyber vseho, musime pridat filtrovaci podminku do dalsiho vyberu\r\n this._isSelectAll = false;\r\n if (oldFilterCondition) this._selectedItemsByCond = oldFilterCondition;\r\n }\r\n }\r\n }\r\n\r\n private _clearIncEncItems(): void {\r\n this._excludedItems = [];\r\n this._includedItems = [];\r\n }\r\n\r\n private _basicAllSelecetedClear(): void {\r\n this._clearIncEncItems();\r\n this._selectedItemsByCond = null;\r\n this._finalConditions = [];\r\n }\r\n\r\n /**\r\n * Vyčistí veškeré výběry\r\n */\r\n public clear(): void {\r\n this._finalConditions = [];\r\n this._clearIncEncItems();\r\n this._filterCondition = \"\";\r\n this._currentCondition = \"\";\r\n this._selectedItemsByCond = \"\";\r\n\r\n this._createNewCurrentCondition();\r\n }\r\n}\r\n","/**\r\n * Rozhraní pro asynchronní události, na které je možné čekat a mohou vracet hodnotu\r\n */\r\nexport interface IAwaitableEvent<T> extends CustomEvent {\r\n /**\r\n * Vyvolávající má povinost počkat na výsledek tohoto promisu před pokračováním\r\n */\r\n readonly resultAwaiter: Promise<T | undefined>;\r\n\r\n /**\r\n * Zaregistruje promise, na který má volající čekat\r\n * @param resultPromise registovaný úkol, na který se má počkat\r\n */\r\n readonly enqueueResult: (resultPromise: (previousResult: T | undefined) => Promise<T | undefined>) => void;\r\n}\r\n\r\nexport class AwaitableEvent<T> extends CustomEvent<T> implements IAwaitableEvent<T> {\r\n public readonly resultAwaiter: Promise<T | undefined>;\r\n\r\n /**\r\n * Vytvoří data pro asynchronní událost\r\n * @param defaultResultValue defaultní hodnota výsledku, která je vrácena, pokud ji žádný konzument nezmění\r\n * @param detail další libovolná data události\r\n */\r\n constructor(eventName: string, defaultResultValue?: T, detail?: any) {\r\n super(eventName, detail);\r\n\r\n this.resultAwaiter = Promise.resolve(defaultResultValue);\r\n\r\n this.enqueueResult = (resultPromise: (previousResult: T | undefined) => Promise<T | undefined>) => {\r\n (this as any).resultAwaiter = this.resultAwaiter.then(resultPromise);\r\n };\r\n }\r\n\r\n public readonly enqueueResult: (resultPromise: (previousResult: T | undefined) => Promise<T | undefined>) => void;\r\n}\r\n","import { AwaitableEvent } from \"UI/UI.BaseControls/AwaitableEvent\";\r\nimport { IOrderBy } from \"../../Global/Base/DataSources/Interfaces\";\r\n\r\nexport class DataGridSharedMethods {\r\n /**\r\n * Vraci index polozky orderby s danym attrName nebo vraci -1\r\n * @param attrName\r\n */\r\n public static orderByIndexOf(orderBy: IOrderBy[], attrName: string): number {\r\n if (orderBy == null || attrName == null)\r\n return -1;\r\n\r\n for (let i: number = 0; i < orderBy.length; i++) {\r\n if (orderBy[i].attributeName.toLowerCase() == attrName.toLowerCase())\r\n return i;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n /**\r\n * Čeká na potvrzení od uživatele při rozeditovaném formu, zda je možné provést změnu řádku\r\n * @param element Element, který vyvolává událost, na kterou lze čekat\r\n * @param selectAll (Nepovinný) Příznak, zda je změna označení řádku na \"vybrat vše\"\r\n */\r\n public static async canChangeSelectedRow(element: HTMLElement, selectAll?: boolean): Promise<boolean> {\r\n const eventData = new AwaitableEvent(\"SelectionChangedPreview\", true, { bubbles: true, detail: { selectAll: selectAll } });\r\n\r\n element.dispatchEvent(eventData); // musí být dispatch místo vlastní helper metody callEvent\r\n\r\n return await eventData.resultAwaiter;\r\n }\r\n}\r\n","export interface ICustomElement {\r\n\r\n visible: boolean;\r\n enabled: boolean;\r\n readonly isAttached: boolean;\r\n\r\n //#region Zpracování metod z globální třídy GenericControl\r\n\r\n /**\r\n * Zaregistruje událost\r\n * @param event Název události\r\n * @param listener Akce při vyvolání události\r\n * @param customId Volitelný vlastní identifikátor listeneru\r\n */\r\n registerEventListener(event: string, listener: EventListener, customId?: string): void;\r\n\r\n /**\r\n * Odregistruje udalost. Pokud neni vyplnen zadny parametr, jsou odregistrovany vsechny udalosti. Pokud je vyplnen pouze event, odregistruje vsechny udalosti daneho typu\r\n * pokud je vyplnen event a action, odregistruje pouze konkretni akci\r\n * @param event Event, ktery chcete odregistrovat.\r\n * @param listener Akce, ktere se tyka event a chcete ji odregistrovat\r\n */\r\n unregisterEventListener(event?: string, listener?: EventListener): void;\r\n\r\n /**\r\n * Vyvolá událost na elementu\r\n * @param eventName Název události\r\n * @param detail Podrobnosti události\r\n * @param bubbles Zda má událost probublávat DOMem nebo ne\r\n * @param cancelable Zda může být událost zrušena a zda může být voláno preventDefault()\r\n * @return Vrátí CustomEvent\r\n */\r\n callEvent(eventName: string, detail?: any, bubbles?: boolean, cancelable?: boolean): CustomEvent;\r\n\r\n //#endregion Zpracování metod z globální třídy GenericControl\r\n}\r\n","import { IOrderBy } from \"../../../../Global/Base/DataSources/Interfaces\";\r\nimport { IDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { IDataRowElement } from \"./IDataRow\";\r\n/**\r\n * Základní rozhraní pro HeaderRow, který nepředpokládá nic o svém rozložení ani způsobu zobrazení dat\r\n * @includeToDoc\r\n */\r\nexport interface IHeaderRow<R extends IDataRowElement> {\r\n /**\r\n * Vytvoří hlavičku komponenty\r\n * @param owner Datagrid, kterému tyto hlavičky patří\r\n * @param columns Seznam sloupců\r\n * @param orderBy Řazení sloupců\r\n */\r\n render(owner: IDataGrid<R>, columns: Array<Column>, orderBy: IOrderBy[]): void;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport abstract class IHeaderRow<R extends IDataRowElement> {\r\n private static _properties: string[] = [];\r\n private static _methods = [\"render\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport interface IOpenFormMenuEvent extends CustomEvent {\r\n detail: MouseEvent;\r\n}\r\n","import { fork, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport {\r\n createHideLoadingIndicatorAction,\r\n createShowLoadingIndicatorAction,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport {\r\n createDeselectAllRecordsAction,\r\n createInitDataSourceAction,\r\n createSelectRecordAction,\r\n createSelectRecordsAction,\r\n createSetDatasourceMultiselectModeAction,\r\n createSetLastSelectedRecordIdAction,\r\n createToggleSelectedRecordCheckAction,\r\n createUncheckAllRecordsAction,\r\n getMultiselectMode,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { createLoadLocalizationKeysAction } from \"@multiweb/reactCore/i18n\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport { createTrySelectRecordAction } from \"./actions\";\r\nimport {\r\n FETCHING_KEY_FRAME_LOCALIZATIONS,\r\n FETCHING_KEY_STATIC_FRAMES_ITEMS_LOCALIZATION,\r\n HANDLE_RECORD_CLICK,\r\n INIT_FRAME,\r\n INIT_FRAME_WITH_DATASOURCE,\r\n SET_ALLOW_MULTISELECT,\r\n SET_MULTISELECT_MODE,\r\n SET_SELECTED_RECORDS,\r\n TRY_SELECT_RECORD,\r\n} from \"./constants\";\r\nimport { staticLocKeys } from \"./locKeys\";\r\nimport { getAllowMultiselectMode } from \"./selectors\";\r\nimport {\r\n IHandleRecordClickAction,\r\n IInitFrameAction,\r\n IInitFrameWithDataSourceAction,\r\n ISetAllowMultiselectAction,\r\n ISetMultiselectModeAction,\r\n ISetSelectedRecordsAction,\r\n ITrySelectRecordAction,\r\n} from \"./types\";\r\n\r\nexport const saga: SagaWithReturnType = function* framesSaga() {\r\n yield fork(loadFramesDataSaga);\r\n yield takeEvery(INIT_FRAME_WITH_DATASOURCE, initFrameWithDataSourceSaga);\r\n yield takeEvery([INIT_FRAME_WITH_DATASOURCE, INIT_FRAME], initFrameSaga);\r\n yield takeEvery(HANDLE_RECORD_CLICK, handleRecordClickSaga);\r\n yield takeEvery(SET_MULTISELECT_MODE, setMultiselectSaga);\r\n yield takeEvery(SET_SELECTED_RECORDS, setSelectedRecordsSaga);\r\n yield takeEvery(TRY_SELECT_RECORD, trySelectRecordSaga);\r\n yield takeEvery(SET_ALLOW_MULTISELECT, setAllowMultiSelectSaga);\r\n};\r\n\r\n/**\r\n * Sdružuje načítání potřebných dat pro framy a řeší zobrazení indikátoru načítání.\r\n */\r\nexport const loadFramesDataSaga: SagaWithReturnType = function* loadFramesDataSaga() {\r\n yield put(createShowLoadingIndicatorAction());\r\n yield fork(loadStaticFramesItemsLocalizationSaga);\r\n yield put(createHideLoadingIndicatorAction());\r\n};\r\n\r\n/** Obsluhuje načtení lokalizace pro statické položky framů. */\r\nexport const loadStaticFramesItemsLocalizationSaga: SagaWithReturnType = function* loadStaticFramesItemsLocalizationSaga() {\r\n yield put(createLoadLocalizationKeysAction(staticLocKeys, FETCHING_KEY_STATIC_FRAMES_ITEMS_LOCALIZATION));\r\n};\r\n\r\n/** Při inicializaci framu, který využívá DataSource, vyšle akci pro inicializaci datasource. */\r\nexport const initFrameWithDataSourceSaga: SagaWithReturnType<[IInitFrameWithDataSourceAction]> = function* initFrameWithDataSourceSaga(action) {\r\n const { dataSourceConfig, hasDetailForm, initialOrderBy, initialConditions } = action.payload;\r\n yield put(createInitDataSourceAction(action.meta.frameKey, dataSourceConfig, hasDetailForm, initialOrderBy, initialConditions));\r\n};\r\n\r\n/** Při inicializaci framu načte lokalizace, které jsou nastavené na daném frame. */\r\nexport const initFrameSaga: SagaWithReturnType<[IInitFrameAction]> = function* initFrameSaga(action) {\r\n const { noItemsLocKey, noItemsFilterLocKey, noItemsFulltextSearchLocKey } = action.payload.frameConfig.emptyMessageCustomization ?? {};\r\n const localizationKeys = [noItemsLocKey, noItemsFilterLocKey, noItemsFulltextSearchLocKey].filter(locKey => locKey) as string[];\r\n if (localizationKeys.length) {\r\n yield put(createLoadLocalizationKeysAction(localizationKeys, FETCHING_KEY_FRAME_LOCALIZATIONS));\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví režim výběru více záznamů v datasource pokud je výběr povolen na frame - {@link IReactFramesState.allowMultiselect}.\r\n * V případě vypnutí tohoto režimu se záznamy v datasource odznačí.\r\n * Nastaví korektní multiselect mode conectoru v MultiWebu a aktualizuje react akce (mění se jejich viditelnost).\r\n */\r\nexport const setMultiselectSaga: SagaWithReturnType<[ISetMultiselectModeAction]> = function* setMultiselectSaga(\r\n action,\r\n) {\r\n const { frameKey } = action.meta;\r\n const { multiselectMode } = action.payload;\r\n const allowMultiselect: SagaYieldReturn<typeof getAllowMultiselectMode> = yield select(getAllowMultiselectMode, frameKey);\r\n\r\n if (!allowMultiselect) {\r\n return;\r\n }\r\n\r\n yield put(createSetDatasourceMultiselectModeAction(frameKey, multiselectMode));\r\n if (!multiselectMode) {\r\n yield put(createDeselectAllRecordsAction(frameKey));\r\n yield put(createUncheckAllRecordsAction(frameKey));\r\n }\r\n};\r\n\r\n/**\r\n * Po zakázání režimu výběru více záznamů se zakáže i na datasource.\r\n */\r\nexport const setAllowMultiSelectSaga: SagaWithReturnType<[ISetAllowMultiselectAction]> = function* setAllowMultiSelectSaga(\r\n action,\r\n) {\r\n const { allowMultiselect } = action.payload;\r\n const { frameKey } = action.meta;\r\n if (!allowMultiselect) {\r\n yield put(createSetDatasourceMultiselectModeAction(frameKey, false));\r\n }\r\n};\r\n\r\n/**\r\n * Při kliku na záznam zapne režim výběru více záznamů.\r\n * Při zrušení režimu výběru více záznamů na framu se tento režim zakáže i na datasource.\r\n */\r\nexport const handleRecordClickSaga: SagaWithReturnType<[IHandleRecordClickAction]> = function* handleRecordClickSaga(action) {\r\n const { frameKey } = action.meta;\r\n const { recordId } = action.payload;\r\n const allowMultiselect: SagaYieldReturn<typeof getAllowMultiselectMode> = yield select(getAllowMultiselectMode, frameKey);\r\n if (!allowMultiselect) {\r\n yield put(createTrySelectRecordAction(frameKey, recordId));\r\n return;\r\n }\r\n\r\n const actualMultiselectMode: ReturnType<typeof getMultiselectMode> = yield select(\r\n getMultiselectMode,\r\n frameKey,\r\n );\r\n if (!actualMultiselectMode) {\r\n yield put(createSetDatasourceMultiselectModeAction(frameKey, true));\r\n }\r\n yield put(createSetLastSelectedRecordIdAction(frameKey, recordId));\r\n yield put(createSelectRecordsAction(frameKey, [recordId]));\r\n yield put(createToggleSelectedRecordCheckAction(frameKey, recordId));\r\n};\r\n\r\n/**\r\n * Pokud je na framu povolen režim výběru více záznamů, vyšle akci pro výběr více záznamů na datasource.\r\n */\r\nexport const setSelectedRecordsSaga: SagaWithReturnType<[ISetSelectedRecordsAction]> = function* setSelectedRecordsSaga(\r\n action,\r\n) {\r\n const { frameKey } = action.meta;\r\n const allowMultiselect: SagaYieldReturn<typeof getAllowMultiselectMode> = yield select(getAllowMultiselectMode, frameKey);\r\n if (allowMultiselect) {\r\n yield put(createSelectRecordsAction(frameKey, action.payload.selectedRecordsIds));\r\n }\r\n};\r\n\r\n/**\r\n * Pokud je na framu povolen režim výběru více záznamů, vyšle akci pro výběr záznamu na datasource.\r\n */\r\nexport const trySelectRecordSaga: SagaWithReturnType<[ITrySelectRecordAction]> = function* trySelectRecordSaga(\r\n action,\r\n) {\r\n const { recordId } = action.payload;\r\n const { frameKey } = action.meta;\r\n yield put(createSetLastSelectedRecordIdAction(frameKey, recordId));\r\n const allowMultiselect: SagaYieldReturn<typeof getAllowMultiselectMode> = yield select(getAllowMultiselectMode, frameKey);\r\n if (allowMultiselect) {\r\n yield put(createSelectRecordAction(frameKey, recordId));\r\n }\r\n};\r\n","import React, { FunctionComponent, useRef } from \"react\";\r\n\r\nimport { getCustomization } from \"@multiweb/customization\";\r\nimport { DataRowElementSiblings, getDataRowSibling, GetDataRowSiblingType, TAB_INDEX_FOCUSABLE_ONLY, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { DataRowVariant } from \"../../../components\";\r\nimport { DataRow } from \"../../../components/DataRow\";\r\nimport { GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY, ROLE_USERS_ATTRIBUTE_CLASS_NAME } from \"../../constants\";\r\nimport { GRID_PARTICIPANTS_ITEM_CLASS_NAME as classNames } from \"./constants\";\r\n\r\nexport type GridParticipantsItemProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Příznak, zda se zobrazuje Templeta pod DataRow komponentou */\r\n expandRoleUsers: boolean;\r\n /** Identifikace záznamu. */\r\n recordId: string;\r\n /** Zda je záznam první, využito ve stylech. */\r\n isFirst: boolean | undefined;\r\n /** Zda je záznam poslední, využito ve stylech. */\r\n isLast: boolean | undefined;\r\n /** Klíč pro templatu, která se zobrazí pod DataRow. */\r\n templateKey: string;\r\n};\r\n\r\nexport const GridParticipantsItem: FunctionComponent<GridParticipantsItemProps> = ({\r\n dataSourceKey,\r\n recordId,\r\n expandRoleUsers,\r\n isFirst,\r\n isLast,\r\n templateKey,\r\n},\r\n) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const Template = getCustomization().liteListFrame.templates.getRendererByKey(templateKey).component;\r\n\r\n const getNestedSibling: GetDataRowSiblingType = (siblingType: DataRowElementSiblings) => {\r\n if (expandRoleUsers) {\r\n if (siblingType === DataRowElementSiblings.nextElementSibling) {\r\n const firstUserRoleRow = containerRef.current?.querySelector(`.${ROLE_USERS_ATTRIBUTE_CLASS_NAME()}`)?.firstChild;\r\n\r\n if (firstUserRoleRow) {\r\n return firstUserRoleRow as HTMLElement;\r\n }\r\n } else if (siblingType === DataRowElementSiblings.previousElementSibling) {\r\n const lastUserRoleRow = getDataRowSibling(siblingType, containerRef.current)?.querySelector(`.${ROLE_USERS_ATTRIBUTE_CLASS_NAME()}`)?.lastChild;\r\n if (lastUserRoleRow) {\r\n return lastUserRoleRow as HTMLElement;\r\n }\r\n }\r\n }\r\n\r\n return getDataRowSibling(siblingType, containerRef.current)?.firstChild as HTMLElement;\r\n };\r\n\r\n return (\r\n <div className={classNames({ isFirst, isLast })} ref={containerRef}>\r\n <DataRow\r\n templateRendererKey={ GRID_PARTICIPANTS_TEMPLATE_RENDERER_KEY }\r\n explicitTabIndex={isFirst ? TAB_INDEX_FOCUSABLE_TAB_SEQUENCE : TAB_INDEX_FOCUSABLE_ONLY}\r\n variant={DataRowVariant.gridParticipants}\r\n disableShiftKey\r\n {... { dataSourceKey, recordId, getSibling: getNestedSibling }}\r\n />\r\n {expandRoleUsers &&\r\n <Template {...{ dataSourceKey, recordId }} />\r\n }\r\n </div>\r\n );\r\n};\r\n","export * from \"./GridParticipantsItem\";\r\n","import { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport const classNames = bemClassNames(\"grid-participants-component\");\r\n/**\r\n * Hodnota se použije pro zobrazení skeletonů.\r\n */\r\nexport const DEFAULT_DATA_COUNT_TO_LOAD = 8;\r\n\r\n/**\r\n * Odhad výšky řádku, používá se pro VirtualilizedList.\r\n */\r\nexport const ESTIMATED_ROW_HEIGHT = 50;\r\n","import { ESTIMATED_ROW_HEIGHT } from \"./constants\";\r\n\r\n/**\r\n * Výpočet odhadu výšky záznamu.\r\n * - Pomáhá VirtualizedListu správně vyrenderovat obsah.\r\n * - Je nutné započítat i děti, jinak dojde k rozhození velikosti scrollbaru či dokonce při automatickém zobrazení uživatelů komponenta zaskroluje až dolů.\r\n * - Jedná se jen opravdu o odhad. Sama knihovna si při renderu velikost přepočítá.\r\n *\r\n * @param recordsIdsCount Počet standardních záznamů.\r\n * @param rootNodesChildrenCount Počet dětí záznamů.\r\n * @returns Konstantu odhadu výšky záznamu nebo pokud dojde k výpočtu většímu než konstanty, tak navrátí výpočet.\r\n */\r\nexport const calculateEstimateOfRowHeight = (recordsIdsCount: number, rootNodesChildrenCount: number) => {\r\n if (recordsIdsCount <= 0) return 0;\r\n return Math.max(ESTIMATED_ROW_HEIGHT, (rootNodesChildrenCount / recordsIdsCount) * ESTIMATED_ROW_HEIGHT);\r\n};\r\n","import React, { FunctionComponent, useCallback, useEffect, useMemo } from \"react\";\r\n\r\nimport { DataGrid, DataGridProps, DataGridVariant } from \"@multiweb/reactComponents\";\r\nimport { createSkeletonRowsKeys, EMPTY_ARRAY, invariant, Key, keyGenerator } from \"@multiweb/reactUtils\";\r\nimport { FetchingState, RowRenderer } from \"@multiweb/types/react\";\r\nimport { EmptyMessage } from \"../../../components/EmptyMessage\";\r\nimport { GRID_PARTICIPANTS_ROLE_USERS_TEMPLATE_RENDERER_KEY } from \"../../constants\";\r\nimport { GridParticipantsItem } from \"../GridParticipantsItem\";\r\nimport { classNames, DEFAULT_DATA_COUNT_TO_LOAD } from \"./constants\";\r\nimport { calculateEstimateOfRowHeight } from \"./utils\";\r\n\r\nexport type GridParticipantsComponentProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n dataSourceKey: string;\r\n /** Funkce, která zajistí načtení dat. */\r\n loadData: () => void;\r\n /** Seřazené identifikátory dat z DataSource. */\r\n recordsIds?: ReadonlyArray<string>;\r\n /** Zobrazit \"podřádky\" uživatelů rolí? */\r\n expandRoleUsers: boolean;\r\n /** Uchovává informaci, v jakém stavu je načítání dat. */\r\n fetchingState?: FetchingState;\r\n /** Počet přichozích dat */\r\n fetchingCount?: number;\r\n /** Počet dětí záznamu, využívá se pro výpočet odhadu výšky záznamu. */\r\n rootNodesChildrenCount?: number;\r\n /** Zaskroluje na daný index. Použito ve VirtualizedListu. */\r\n scrollToIndex?: number;\r\n /** Akce spouštěná po stisknutí klávesy Enter */\r\n onEnterPress?: () => void;\r\n} & Pick<DataGridProps<string>, \"onScroll\">;\r\n\r\nexport const GridParticipantsComponent: FunctionComponent<GridParticipantsComponentProps> = ({\r\n dataSourceKey,\r\n recordsIds = EMPTY_ARRAY,\r\n expandRoleUsers,\r\n fetchingState = FetchingState.initialized,\r\n fetchingCount = 0,\r\n rootNodesChildrenCount = 0,\r\n scrollToIndex,\r\n loadData,\r\n onEnterPress,\r\n onScroll,\r\n}) => {\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (event.key === Key.Enter) {\r\n onEnterPress?.();\r\n }\r\n };\r\n\r\n const itemRenderer: RowRenderer<string> = useCallback(\r\n (recordId, index, items) => {\r\n invariant(recordId, \"[GridParticipantsComponent] At least one record has not correct id attribute.\");\r\n const isFirst = index === 0 || undefined;\r\n const isLast = (index === (items?.length ?? 0) - 1) || undefined;\r\n\r\n return (\r\n <GridParticipantsItem\r\n templateKey={GRID_PARTICIPANTS_ROLE_USERS_TEMPLATE_RENDERER_KEY}\r\n {...{ dataSourceKey, recordId, isFirst, isLast, expandRoleUsers }}\r\n />\r\n\r\n );\r\n },\r\n [expandRoleUsers, dataSourceKey],\r\n );\r\n\r\n const noRowsRenderer = useCallback(() => <EmptyMessage dataSourceKey={dataSourceKey} />, [dataSourceKey]);\r\n\r\n useEffect(() => {\r\n if (fetchingState === FetchingState.initialized) {\r\n loadData();\r\n }\r\n }, [ fetchingState, loadData ]);\r\n\r\n const estimatedRowSize = useMemo(() => calculateEstimateOfRowHeight(recordsIds.length, rootNodesChildrenCount), [recordsIds, rootNodesChildrenCount]);\r\n\r\n return (\r\n <div className={classNames()} onKeyDown={handleKeyDown}>\r\n <DataGrid\r\n items={recordsIds}\r\n loadOnScroll={true}\r\n canLoadData={false}\r\n dataCountToLoad={DEFAULT_DATA_COUNT_TO_LOAD}\r\n loadData={() => null}\r\n variant={DataGridVariant.gridParticipants}\r\n {...{ keyGenerator, fetchingState, createSkeletonRowsKeys, noRowsRenderer, itemRenderer, fetchingCount, estimatedRowSize, scrollToIndex, onScroll }}\r\n />\r\n </div>\r\n );\r\n};\r\n","export * from \"./GridParticipantsComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport {\r\n createLoadDataAction,\r\n getFetchingCount,\r\n getFetchingState,\r\n getRecordsIds,\r\n} from \"@multiweb/reactCore/datasource\";\r\nimport { createGetRootNodesChildrenCount } from \"@multiweb/reactCore/workflow\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { GridParticipantsComponent, GridParticipantsComponentProps } from \"../GridParticipantsComponent\";\r\n\r\nexport type GridParticipantsProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n readonly dataSourceKey: string;\r\n};\r\n\r\ntype StateProps = Pick<GridParticipantsComponentProps, \"recordsIds\" | \"fetchingState\" | \"fetchingCount\" | \"rootNodesChildrenCount\">;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: GridParticipantsProps) => MapStateToProps<StateProps, GridParticipantsProps, IAppState> = () => {\r\n const getRootNodesChildrenCount = createGetRootNodesChildrenCount();\r\n\r\n return (state, { dataSourceKey }) => ({\r\n recordsIds: getRecordsIds(state, dataSourceKey),\r\n fetchingState: getFetchingState(state, dataSourceKey),\r\n fetchingCount: getFetchingCount(state, dataSourceKey),\r\n rootNodesChildrenCount: getRootNodesChildrenCount(state, dataSourceKey),\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick<GridParticipantsComponentProps, \"loadData\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, GridParticipantsProps> = (\r\n dispatch,\r\n { dataSourceKey },\r\n) => ({\r\n loadData: () => dispatch(createLoadDataAction(dataSourceKey)),\r\n});\r\n\r\nexport const GridParticipants = connect(createMapStateToProps, mapDispatchToProps,\r\n)(GridParticipantsComponent);\r\n","export * from \"./GridParticipants\";\r\n","/** Vyberte hráče */\r\nexport const LOC_KEY_CHOOSE_PARTICIPANTS = \"GUI-776344\";\r\n/** Odznačit vše */\r\nexport const LOC_KEY_UNCHECK_ALL = \"GUI-776363\";\r\n/** Označit vše */\r\nexport const LOC_KEY_CHECK_ALL = \"GUI-771537\";\r\n/** Zobrazit uživatele role */\r\nexport const LOC_KEY_DISPLAY_USERS_OF_ROLE = \"GUI-771538\";\r\n/** Schovat uživatele rolí */\r\nexport const LOC_KEY_HIDE_USERS_ROLE = \"GUI-782122\";\r\n/** Zrušit */\r\nexport const LOC_KEY_CANCEL = \"GUI-33412\";\r\n/** Vybrat */\r\nexport const LOC_KEY_CHOOSE = \"GUI-311684\";\r\n\r\nexport const STATIC_LOC_KEYS = [\r\n LOC_KEY_CHOOSE_PARTICIPANTS,\r\n LOC_KEY_UNCHECK_ALL,\r\n LOC_KEY_CHECK_ALL,\r\n LOC_KEY_DISPLAY_USERS_OF_ROLE,\r\n LOC_KEY_HIDE_USERS_ROLE,\r\n LOC_KEY_CANCEL,\r\n LOC_KEY_CHOOSE,\r\n];\r\n","import React, { FunctionComponent, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { ButtonBackgroundColor, FlexGrow, FontWeight, Layout, LocalizationMultiLoader, LocalizationProvider, ModalWindow, SectionPanel, SectionPanelContent, SectionPanelFooter, SectionPanelHeader, TextButton, TextColor } from \"@multiweb/reactComponents\";\r\nimport { Key, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { Deferred, IParticipant } from \"@multiweb/types/multiweb\";\r\nimport { RecordType, RootNodeTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { GridParticipants } from \"../GridParticipants\";\r\nimport { WFParticipantsDialogProps } from \"../WFParticipantsDialog\";\r\nimport { LOC_KEY_CANCEL, LOC_KEY_CHECK_ALL, LOC_KEY_CHOOSE, LOC_KEY_CHOOSE_PARTICIPANTS, LOC_KEY_DISPLAY_USERS_OF_ROLE, LOC_KEY_HIDE_USERS_ROLE, LOC_KEY_UNCHECK_ALL, STATIC_LOC_KEYS } from \"./lockeys\";\r\n\r\nexport type WFParticipantsDialogComponentProps = WFParticipantsDialogProps & {\r\n /** Odložený promise, který po potvrzení výběru navrátí data, nebo při zavření okna se rejectne. */\r\n readonly dialogCompletedPromise: Deferred<IParticipant[]>;\r\n /** Zda jsou všechny záznamy zaškrtnuty. */\r\n readonly allRecordsChecked?: boolean;\r\n /** Zda se mají defaultně rozbalit uživatelé rolí. */\r\n readonly chooseFromUsersDefault: boolean;\r\n /** Zda dataSource obsahuje záznamy. */\r\n isEmpty: boolean;\r\n /** Metoda pro zaškrtnutí / odškrtnutí všech řádků. */\r\n toggleCheckAllRecords: () => void;\r\n /** Seznam kořenových uzlů */\r\n rootParticipants?: RootNodeTypedObject;\r\n /** Všechny záznamy hráčů se všemi informacemi, pozor, uživatelé rolí jsou zanoření */\r\n participantRecords?: TypedObject<RecordType>;\r\n /** Mapa výběru hráčů (seznam dvojic id + true/false podle toho, zda je hráč vybrán) */\r\n participantsSelection?: TypedObject<boolean>;\r\n};\r\n\r\n/** Idčko pro header, propojí se s ModalWindow pro přístupnost. */\r\nconst WF_PARTICIPANTS_HEADER_ID = \"WFParticipantsHeader\";\r\n\r\nexport const WFParticipantsDialogComponent: FunctionComponent<WFParticipantsDialogComponentProps> = ({\r\n dialogCompletedPromise,\r\n allRecordsChecked,\r\n toggleCheckAllRecords,\r\n dataSourceKey,\r\n rootParticipants,\r\n participantRecords,\r\n participantsSelection,\r\n isEmpty,\r\n chooseFromUsersDefault = false,\r\n}) => {\r\n const [expandRoleUsers, setExpandRoleUsers] = useState(chooseFromUsersDefault);\r\n const [scrollToIndex, setScrollToIndex] = useState<number | undefined>(undefined);\r\n\r\n const sectionPanelRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n\r\n const getFirstFocusableTabIndexedElement = () => sectionPanelRef.current?.querySelector(\"[tabindex='0']\");\r\n\r\n useEffect(() => {\r\n sectionPanelRef.current?.addEventListener(\"blur\", (e: FocusEvent) => {\r\n // Pokud focus přechází ze SectionPanelu na vnitřní element a nebyl nalezen první záznam v seznamu hráčů, tak se v seznamu vyvolá scroll a tím se první záznam zaměří.\r\n if (sectionPanelRef.current?.contains(e.relatedTarget as Node) && !getFirstFocusableTabIndexedElement()) {\r\n setScrollToIndex(0);\r\n }\r\n });\r\n }, []);\r\n\r\n /** Zaměří první element ze seznamu hráčů. Pokud úspěšně, tak vrací `true`. */\r\n const focusParticipantsSection = (): boolean | void => {\r\n const firstTabIndexedElement = getFirstFocusableTabIndexedElement();\r\n\r\n if (firstTabIndexedElement) {\r\n (firstTabIndexedElement as HTMLElement).focus();\r\n return true;\r\n }\r\n };\r\n\r\n const firstButtonKeyDownHandler = (e: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (e.key === Key.Tab && e.shiftKey) {\r\n e.preventDefault();\r\n if (!focusParticipantsSection()) {\r\n setScrollToIndex(0);\r\n }\r\n }\r\n };\r\n\r\n const onScrollParticipantsHandler = () => {\r\n if (scrollToIndex === 0) {\r\n focusParticipantsSection();\r\n setScrollToIndex(undefined);\r\n }\r\n };\r\n\r\n const focusDialog = () => {\r\n sectionPanelRef.current?.focus();\r\n };\r\n\r\n const cancelActionHandler = () => {\r\n dialogCompletedPromise.reject();\r\n };\r\n\r\n const confirmDialog = () => {\r\n const allParticipants = Object.values(participantRecords || {}); // Získáme všechny hráče.\r\n\r\n dialogCompletedPromise.resolve(\r\n allParticipants\r\n .concat( // Do pole přidáme i zanořené uživatele rolí.\r\n allParticipants.flatMap(participant => participant[\"roleusers\"]?.value ?? []),\r\n )\r\n .filter(\r\n (participant, index, self) => { // Předávat se ale budou jen hráči, kteří splňují 3 podmínky:\r\n const id: string = participant[\"id\"].value;\r\n return (\r\n participantsSelection?.[id] && // Filtrujeme jen vybrané hráče.\r\n (!rootParticipants ||\r\n Object.entries(rootParticipants).every(([rootParticipantId, rootParticipant]) => // Odstraníme uživatele, kteří jsou v některé z vybraných rolí.\r\n participantsSelection[rootParticipantId] ? !rootParticipant.children.includes(id.toString()) : true)\r\n ) && index === self.findIndex((obj) => ( // Hráč nesmí být duplicitní - elegantní mazání duplicit https://stackoverflow.com/a/36744732\r\n obj.id.value === participant.id.value\r\n ))\r\n );\r\n })\r\n .map(\r\n participant => ({\r\n id: participant[\"id\"].value,\r\n name: participant[\"name\"].value,\r\n participantType: participant[\"participanttype\"].value,\r\n }),\r\n ),\r\n );\r\n };\r\n\r\n const toggleAllUsersOfRoleActionHandler = () => {\r\n setExpandRoleUsers(previousState => !previousState);\r\n };\r\n\r\n return (\r\n <ModalWindow\r\n defaultWidth={400}\r\n defaultHeight={500}\r\n minHeight={400}\r\n minWidth={400}\r\n isDisplayed\r\n draggable\r\n resizable\r\n labelId={WF_PARTICIPANTS_HEADER_ID}\r\n onCloseChange={() => null}\r\n onContentFocus={focusDialog}\r\n >\r\n <SectionPanel onCancelAction={cancelActionHandler} ref={sectionPanelRef} tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}>\r\n <LocalizationMultiLoader locKeys={STATIC_LOC_KEYS}>\r\n <LocalizationProvider locKey={LOC_KEY_CHOOSE_PARTICIPANTS}>\r\n {({ text }) => <SectionPanelHeader id={WF_PARTICIPANTS_HEADER_ID} title={text} />}\r\n </LocalizationProvider>\r\n <SectionPanelContent>\r\n <GridParticipants\r\n onEnterPress={confirmDialog}\r\n onScroll={onScrollParticipantsHandler}\r\n {...{ dataSourceKey, expandRoleUsers, chooseFromUsersDefault, scrollToIndex }}\r\n />\r\n </SectionPanelContent>\r\n <SectionPanelFooter>\r\n <Layout>\r\n <LocalizationProvider locKey={allRecordsChecked ? LOC_KEY_UNCHECK_ALL : LOC_KEY_CHECK_ALL}>\r\n {({ text }) =>\r\n <TextButton\r\n onClick={toggleCheckAllRecords}\r\n onKeyDown={firstButtonKeyDownHandler}\r\n text={text}\r\n color={TextColor.blue}\r\n fontWeight={FontWeight.bold}\r\n disabled={isEmpty}\r\n ref={firstButtonRef}\r\n qa={\"ToggleCheckAllButton\"}\r\n />\r\n }\r\n </LocalizationProvider>\r\n <LocalizationProvider locKey={expandRoleUsers ? LOC_KEY_HIDE_USERS_ROLE : LOC_KEY_DISPLAY_USERS_OF_ROLE}>\r\n {({ text }) =>\r\n <TextButton\r\n onClick={toggleAllUsersOfRoleActionHandler}\r\n text={text}\r\n fontWeight={FontWeight.bold}\r\n color={TextColor.blue}\r\n disabled={isEmpty}\r\n qa={\"ToggleShowRoleUsersButton\"}\r\n />\r\n }\r\n </LocalizationProvider>\r\n <Layout flexGrow={FlexGrow.one} />\r\n <LocalizationProvider locKey={LOC_KEY_CANCEL}>\r\n {({ text }) =>\r\n <TextButton\r\n onClick={cancelActionHandler}\r\n text={text}\r\n fontWeight={FontWeight.bold}\r\n color={TextColor.blue}\r\n qa={\"NoButton\"}\r\n />\r\n }\r\n </LocalizationProvider>\r\n <LocalizationProvider locKey={LOC_KEY_CHOOSE}>\r\n {({ text }) =>\r\n <TextButton\r\n onClick={confirmDialog}\r\n text={text}\r\n backgroundColor={ButtonBackgroundColor.buttonPrimary}\r\n color={TextColor.textPrimaryInverted}\r\n qa={\"OKButton\"}\r\n onKeyDown={(e) => e.key === Key.Tab && !e.shiftKey ? e.preventDefault() : undefined} // Zablokování možnosti vyjet Tabulátorem z dialogu.\r\n />\r\n }\r\n </LocalizationProvider>\r\n </Layout>\r\n </SectionPanelFooter>\r\n </LocalizationMultiLoader>\r\n </SectionPanel>\r\n </ModalWindow>\r\n );\r\n};\r\n","export * from \"./WFParticipantsDialogComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createToggleCheckAllRecordsAction, getCheckedRecords, getRecords, isCheckedAll, isEmpty } from \"@multiweb/reactCore/datasource\";\r\nimport { getRootNodes } from \"@multiweb/reactCore/workflow\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { WFParticipantsDialogComponent, WFParticipantsDialogComponentProps } from \"../WFParticipantsDialogComponent\";\r\n\r\nexport type WFParticipantsDialogProps = {\r\n /** Unikátní klíč pro DataSource. */\r\n readonly dataSourceKey: string;\r\n};\r\n\r\ntype StateProps = Pick<WFParticipantsDialogComponentProps, \"allRecordsChecked\" | \"rootParticipants\" | \"participantRecords\" | \"participantsSelection\" | \"isEmpty\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WFParticipantsDialogProps, IAppState> = (state, { dataSourceKey }) => ({\r\n allRecordsChecked: isCheckedAll(state, dataSourceKey),\r\n rootParticipants: getRootNodes(state, dataSourceKey),\r\n participantRecords: getRecords(state, dataSourceKey),\r\n participantsSelection: getCheckedRecords(state, dataSourceKey),\r\n isEmpty: isEmpty(state, dataSourceKey) ?? true,\r\n});\r\n\r\ntype DispatchProps = Pick<WFParticipantsDialogComponentProps, \"toggleCheckAllRecords\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, WFParticipantsDialogProps> = (\r\n dispatch,\r\n { dataSourceKey },\r\n) => ({\r\n toggleCheckAllRecords: () => dispatch(createToggleCheckAllRecordsAction(dataSourceKey)),\r\n});\r\n\r\nexport const WFParticipantsDialog = connect(\r\n mapStateToProps, mapDispatchToProps,\r\n)(WFParticipantsDialogComponent);\r\n","export * from \"./WFParticipantsDialog\";\r\n","export * from \"./GridParticipants\";\r\nexport * from \"./GridParticipantsComponent\";\r\nexport * from \"./GridParticipantsItem\";\r\nexport * from \"./RoleUserRow\";\r\nexport * from \"./WFParticipantsDialog\";\r\n","export * from \"./ParticipantType\";\r\nexport * from \"./RoleUsers\";\r\n","export * from \"./GridParticipantsTemplate\";\r\nexport * from \"./RoleUsersTemplate\";\r\n","export * from \"./components\";\r\nexport * from \"./customization/attributes\";\r\nexport * from \"./customization/templates\";\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { FramesMapState } from \"./types\";\r\n\r\nexport {\r\n createInitFrameAction,\r\n createInitFrameWithDataSourceAction,\r\n createSetActionAreaAction,\r\n createSetAllowMultiselectAction,\r\n createSetCanValueLoadAction,\r\n createSetEmptyMessageCustomizationAction,\r\n createSetInteractiveAction,\r\n createSetLoadOnScrollAction,\r\n createSetMultiselectModeAction,\r\n createSetRowTemplateAction,\r\n createSetSelectedRecordsAction,\r\n createSetShowHeaderAction,\r\n createSetVisibilityAction,\r\n createTrySelectRecordAction,\r\n} from \"./actions\";\r\nexport { GridLayoutMultiwebItem, LiteListFrame } from \"./components\";\r\nexport * from \"./components/EmptyMessage\";\r\nexport {\r\n HANDLE_RECORD_CLICK,\r\n LLF_EMPTY_VALUE,\r\n PARTICIPANT_TYPE_ATTRIBUTE_RENDERER,\r\n ROLE_USERS_ATTRIBUTE_RENDERER,\r\n SET_ALLOW_MULTISELECT,\r\n SET_MULTISELECT_MODE,\r\n SET_SELECTED_RECORDS,\r\n TRY_SELECT_RECORD,\r\n} from \"./constants\";\r\nexport { WFParticipantsDialog } from \"./GridParticipants\";\r\nexport * from \"./locKeys\";\r\nexport {\r\n handleRecordClickSaga,\r\n setAllowMultiSelectSaga,\r\n setMultiselectSaga,\r\n setSelectedRecordsSaga,\r\n trySelectRecordSaga,\r\n} from \"./saga\";\r\nexport {\r\n createGetEmptyMessageSelector,\r\n createGetRowRerenderKey,\r\n getActionArea,\r\n getAllowMultiselectMode,\r\n getCanValueLoad,\r\n getEmptyMessageCustomization,\r\n getInteractive,\r\n getLoadOnScroll,\r\n getNoItemsFilterIcon,\r\n getNoItemsFilterText,\r\n getNoItemsFulltextSearchIcon,\r\n getNoItemsFulltextSearchText,\r\n getNoItemsIcon,\r\n getNoItemsText,\r\n getRowTemplate,\r\n getShowHeader,\r\n getVisibility,\r\n} from \"./selectors\";\r\nexport {\r\n ActionArea,\r\n DefaultRowTemplate,\r\n EmptyMessageCustomization,\r\n EmptyMessageSettings,\r\n IHandleRecordClickAction,\r\n InitFrameConfig,\r\n ISetActionAreaAction,\r\n ISetAllowMultiselectAction,\r\n ISetCanValueLoadAction,\r\n ISetEmptyMessageCustomizationAction,\r\n ISetInteractiveAction,\r\n ISetLoadOnScrollAction,\r\n ISetMultiselectModeAction,\r\n ISetRowTemplateAction,\r\n ISetShowHeaderAction,\r\n ParticipantsAttributes,\r\n RowTemplateType,\r\n} from \"./types\";\r\n\r\nexport const framesModule: ApplicationStatefulModule<typeof NAME, Reducer<FramesMapState>> = {\r\n NAME,\r\n saga,\r\n reducer,\r\n};\r\n","import { EmptyMessageCustomization } from \"@multiweb/frames\";\r\nimport { ICustomElement } from \"../../../UI.BaseControls/ICustomElement\";\r\n\r\n/**\r\n* Element s informacemi, který se zobrazuje v situaci, kdy Datagrid nemá žádne záznamy, které by zobrazil\r\n*/\r\nexport interface IEmptyDataGridMessage extends HTMLElement, ICustomElement {\r\n /**\r\n * Typ zprávy, podle které se může řídit zobrazený obsah\r\n */\r\n messageType: EmptyDatagridMessageType;\r\n\r\n /**\r\n * Vyhledávaný text ve fulltextovém vyhledávání\r\n */\r\n fulltextSearchString: string;\r\n\r\n /**\r\n * Nastaví element do režimu QueryMode, kdy se zobrazuje zpráva a tlačítko, umožňující načtení všech dat\r\n * @param dataLoad Funkce, spuštěná po kliku na tlačítko\r\n */\r\n setTypeToQueryMode(dataLoad: Function): void;\r\n\r\n /**\r\n * Umožňuje nastavit vlastní hlášky a ikony.\r\n */\r\n emptyMessageCustomization: EmptyMessageCustomization;\r\n}\r\n\r\nexport enum EmptyDatagridMessageType {\r\n /** Datagrid je prázdný před prvním načtením dat */\r\n initialEmpty,\r\n /** Datagrid je prázdný po filtrovani */\r\n filterEmpty,\r\n /** Datagrid je prázdný po fulltextovem vyhledávání */\r\n fulltextEmpty,\r\n /** Datagrid je prázdný z důvodu nastavení QueryMode na formu */\r\n queryModeEmpty,\r\n /** Datagrid je prázdný, ale načítá data */\r\n dataLoading,\r\n}\r\n","// Maťa:\r\n// Dočasné pomocné funkce pro pro vyhodnocení práv na prvcích\r\n// Použito jen zpětnou kompatibilitu\r\n// Až se vyhodnocování práv předelá tak tento soubor smazat\r\nimport { IOWObject } from \"OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { NullOWObject } from \"../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../../OW.Remoting/Remoting/OWManager\";\r\nimport { RequestContext } from \"../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { ClassItemRightTypes, IClassItem as ClassItem } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { IClassItemRights } from \"./IClassItemRights\";\r\n// TODO-rites: tato funkce by už neměla být potřeba - vyhodit\r\nexport async function getClassItemsRights(obj: IOWObject, classItems: ClassItem[], requestContext?: RequestContext, evaluateWithoutAO?: boolean): Promise<Map<string, IClassItemRights>> {\r\n const result: Map<string, IClassItemRights> = new Map();\r\n if (classItems && classItems.length > 0) {\r\n const promises: Promise<IClassItemRights>[] = [];\r\n if (!(!obj || obj instanceof NullOWObject) || evaluateWithoutAO) {\r\n for (const itemRightsReq of classItems)\r\n promises.push(obj ? obj.itemRights(itemRightsReq.name, itemRightsReq.type, ClassItemRightTypes.all, requestContext?.cancellationToken) : OWManager.staticMethodsRights(itemRightsReq.name, requestContext));\r\n }\r\n const items: IClassItemRights[] = await Promise.all(promises);\r\n for (const item of items)\r\n result.set(item.Name, item);\r\n }\r\n return result;\r\n}\r\n","/*\r\n * Konstanta symbolizující, že datasource načte všechna data v jedné dávce\r\n */\r\nexport const DATASOURCE_ALL_DATA = -1;\r\n","import { getDataReaderClient } from \"@multiweb/clients/util\";\r\nimport { IRowData } from \"@multiweb/types/contracts\";\r\nimport { EventsController } from \"Global/Dom/EventsController\";\r\nimport { IFulltextSearchCondition } from \"UI/UI/UI/XGControls/Frames/FrameInterfaces\";\r\nimport { ConditionParams, IDataSource, IDataSourceExtended, IDataSourceLoadInfo, IDataSourceLoadInfoBase, IDBDataSourceParams, IOrderBy, IUseDistinctDataSource, OrderType } from \"../../../Global/Base/DataSources/Interfaces\";\r\nimport { CaseInsensitiveMap } from \"../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { IEncAttrValue } from \"../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { InvalidOperationException } from \"../../../Global/Base/Exceptions\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { CancelError, CancellationToken, CancellationTokenSource } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { ConditionOperator, StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { AttrValueReader } from \"../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { IOWClassDescription } from \"../../../OW.Remoting/Remoting/Cache/ClassDescriptionCache/Interfaces\";\r\nimport { ModelDescriptionsManager } from \"../../../OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { PasswordManager } from \"../../../OW.Remoting/Remoting/PasswordManager\";\r\nimport { RequestContext } from \"../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { FrameContext } from \"../../UI/UI/UIManagerInterfaces\";\r\nimport { convertContextFromFrameToRequest } from \"../../UI/Utilities/SharedUIMethods\";\r\nimport { DATASOURCE_ALL_DATA } from \"./constants\";\r\nimport { IActualObjectChangeEventArgs } from \"./EditableDBDataSource\";\r\n\r\n/** Konfigurace pro data source */\r\nexport interface IDataSourceParams {\r\n /** Název třídy */\r\n className: string;\r\n /** Seznam atributů (nepovinně) */\r\n attributes?: string[];\r\n /** Podmínka (nepovinně). Pokud není uvedeno použije se [ID] */\r\n condition?: string;\r\n /** Parametry podmínky (nepovinně) */\r\n conditionParams?: any[];\r\n /** Třídění (nepovinně) */\r\n orderBy?: IOrderBy[];\r\n /** Příznak jestli číst verzovaná data */\r\n readVersioned?: boolean;\r\n /** Počet záznamů, které mají být načteny v jedné dávce. Výchozí hodnota 50*/\r\n fetchCount?: number;\r\n /**\r\n * Maximální délka dat jednotlivých atributů (ořežou se), defaultně 0 (ořežou se na nakonfigurovanou hodnotu TrimLength v konfiguraci služby), -1 pro neomezeně\r\n */\r\n dataLength?: number;\r\n /** Kontext framu */\r\n frameContext: FrameContext;\r\n}\r\n\r\n/**\r\n * Trida reprezentujici databazovy zdroj dat pro konzumenta dat\r\n */\r\nexport class DBDataSource implements IDataSourceExtended, IUseDistinctDataSource, IDisposable {\r\n //#region Events\r\n /**\r\n * Vraci startIndex pro cteni dat\r\n */\r\n public dataLoaded: Event<IDataSource, IDataSourceLoadInfo> = new Event<IDataSource, IDataSourceLoadInfo>();\r\n\r\n public error: Event<DBDataSource, any> = new Event<DBDataSource, any>();\r\n\r\n /**\r\n * Pokud je zrušeno načítání dat\r\n */\r\n public loadingCancelled: Event<DBDataSource, any> = new Event<DBDataSource, IDataSourceLoadInfoBase>();\r\n\r\n /**\r\n * Pokud je spuštěno načítání dat. Parametrem je hodnota startIndex.\r\n */\r\n public loadingStarted: Event<DBDataSource, any> = new Event<DBDataSource, number | undefined>();\r\n\r\n /**\r\n * Pokud je ukončeno načítání dat\r\n */\r\n public loadingEnded: Event<DBDataSource, IDataSourceLoadInfoBase> = new Event<DBDataSource, IDataSourceLoadInfoBase>();\r\n\r\n /**\r\n * Vraci radek a zmeneny atribut\r\n */\r\n public readonly attributesChanged: Event<DBDataSource, IActualObjectChangeEventArgs> = new Event<DBDataSource, IActualObjectChangeEventArgs>();\r\n\r\n //#endregion Events\r\n\r\n //#region Fields\r\n private __classDescription: IOWClassDescription | null = null;\r\n\r\n protected _initializeCondition: string;\r\n\r\n protected _events = new EventsController();\r\n\r\n private __startIndex: number = 0;\r\n private _maxRecordCount?: number;\r\n protected get _startIndex(): number {\r\n return this.__startIndex;\r\n }\r\n protected set _startIndex(value: number) {\r\n this.__startIndex = value;\r\n }\r\n\r\n protected _batchSize: number;\r\n protected _dataLength: number;\r\n protected _condition: string = \"\";\r\n protected _allDataRead: boolean = false;\r\n protected _groupBy: string[] = null;\r\n protected _fullLengthAttributes: string[] = [];\r\n\r\n private __internalRows: readonly IRowData[];\r\n protected get _internalRows(): readonly IRowData[] {\r\n return this.__internalRows;\r\n }\r\n protected set _internalRows(value: readonly IRowData[]) {\r\n this.__internalRows = value;\r\n }\r\n\r\n protected _internalOrderBy: string[];\r\n protected _orderBy: IOrderBy[];\r\n /**\r\n * Informace o tom, zda se pridal automaticky DataKey do orderBy\r\n */\r\n private _orderByDataKeyAddedInternal: boolean = false;\r\n\r\n protected _className: string;\r\n protected _conditionParams: ConditionParams;\r\n protected _originalCondition: string;\r\n protected _filterCondition: string;\r\n protected _fulltextCondition: IFulltextSearchCondition;\r\n protected _readVersioned: boolean;\r\n protected _attributes: string[];\r\n protected _runningDataLoad: Promise<any>;\r\n protected _runningDataLoadCTS: CancellationTokenSource;\r\n\r\n protected _additionalConditions: CaseInsensitiveMap<string> = new CaseInsensitiveMap<string>();\r\n protected _additionalConditionsParam: CaseInsensitiveMap<ConditionParams> = new CaseInsensitiveMap<ConditionParams>();\r\n\r\n private _specificRecordWaitList: string[] = [];\r\n protected _frameContext: FrameContext | undefined = undefined;\r\n\r\n /**\r\n * Nastaví podmínku potřebnou pro načtení dat\r\n */\r\n public set condition(value: string) {\r\n this._originalCondition = value;\r\n this._updateCondition();\r\n }\r\n\r\n /**\r\n * Vrací kompletní podmínku se všemi nutnými částmi, která byla použita pro načtení dat\r\n */\r\n public get condition(): string {\r\n const condition = [this._condition];\r\n\r\n return StringUtils.combineConditionsArray(ConditionOperator.and, condition.concat(Array.from(this._additionalConditions.values())));\r\n }\r\n\r\n /**\r\n * Vrací podmínku potřebnou pro načtení dat\r\n */\r\n public getOriginalCondition(): string {\r\n return this._originalCondition;\r\n }\r\n\r\n /***\r\n * Nastaví vstupy pro podmínku\r\n */\r\n public set conditionParams(value: ConditionParams) {\r\n this._conditionParams = value;\r\n }\r\n\r\n /**\r\n * Vrací kompletní vstupy do podmínky, která byla použita pro načtení dat\r\n */\r\n public get conditionParams(): ConditionParams {\r\n let condParam = Array.from(this._conditionParams || []);\r\n\r\n for (const cp of this._additionalConditionsParam.values()) {\r\n condParam = condParam.concat(cp);\r\n }\r\n\r\n return condParam;\r\n }\r\n\r\n private _useDistinct = false;\r\n\r\n public get useDistinct(): boolean {\r\n return this._useDistinct;\r\n }\r\n\r\n public set useDistinct(v: boolean) {\r\n if (this._useDistinct === v) return;\r\n this._useDistinct = v;\r\n\r\n if (this._useDistinct && this._orderByDataKeyAddedInternal) {\r\n this._orderByDataKeyAddedInternal = false;\r\n this._internalOrderBy.splice(this._internalOrderBy.findIndex(item => item === this.dataKey), 1);\r\n }\r\n }\r\n /**\r\n * Nazev atributu pouziteho jako ID\r\n */\r\n public dataKey: string = \"ID\";\r\n\r\n //#endregion Fields\r\n\r\n public [Symbol.iterator](): Iterator<IRowData> {\r\n if (!this._internalRows)\r\n this._internalRows = new Array<IRowData>();\r\n\r\n return this._internalRows[Symbol.iterator]();\r\n }\r\n\r\n public get className(): string {\r\n return this._className;\r\n }\r\n\r\n //#region orderBy\r\n public get orderBy(): IOrderBy[] {\r\n return this._orderBy;\r\n }\r\n\r\n public set orderBy(values: IOrderBy[]) {\r\n this._orderBy = values;\r\n if (values && values.length > 0) {\r\n const resultOrderBy: string[] = [];\r\n let dataKeyPresent: boolean = false;\r\n const upperDataKey = this.dataKey.toLocaleUpperCase();\r\n\r\n for (const orderByItem of values) {\r\n resultOrderBy.push(this._parseOrderBy(orderByItem));\r\n if (orderByItem.attributeName.toLocaleUpperCase() === upperDataKey)\r\n dataKeyPresent = true;\r\n }\r\n\r\n // Pokud není obsažen dataKey, přidá se. To zajistí stejné setřídění dat, pokud je v hodnotách nastavovaných atributů hodně opakujících se hodnot.\r\n if (!dataKeyPresent && !this.useDistinct) {\r\n resultOrderBy.push(this.dataKey);\r\n this._orderByDataKeyAddedInternal = true;\r\n }\r\n\r\n this._internalOrderBy = resultOrderBy;\r\n } else {\r\n if (!this.useDistinct) {\r\n this._internalOrderBy = [this.dataKey]; // při nezadaném sloupci pro třídění se defaultně použije sloupec ID\r\n this._orderByDataKeyAddedInternal = true;\r\n }\r\n }\r\n\r\n this.waitForReload().then(() => {\r\n if (this._internalRows && this._internalRows.length > 0)\r\n this.loadNewData(false);\r\n });\r\n }\r\n //#endregion orderBy\r\n\r\n //#region groupBy\r\n public get groupBy(): string[] {\r\n return this._groupBy;\r\n }\r\n\r\n public set groupBy(values: string[]) {\r\n this._groupBy = values;\r\n\r\n this.waitForReload().then(() => {\r\n if (this._internalRows && this._internalRows.length > 0)\r\n this.loadNewData();\r\n });\r\n }\r\n //#endregion groupBy\r\n\r\n //#region Constructors\r\n constructor({\r\n className,\r\n attributes,\r\n condition,\r\n conditionParams,\r\n orderBy,\r\n readVersioned = false,\r\n batchSize = 50,\r\n dataLength = 0,\r\n maxRecordCount,\r\n frameContext,\r\n }: IDBDataSourceParams) {\r\n this._className = className;\r\n this._attributes = attributes || [\"ID\"];\r\n this._initializeCondition = \"ID <> 0\";\r\n this._filterCondition = \"\";\r\n this._fulltextCondition = {};\r\n this.condition = condition;\r\n this._conditionParams = conditionParams;\r\n this.orderBy = orderBy;\r\n this._readVersioned = readVersioned;\r\n this._batchSize = batchSize;\r\n this._dataLength = dataLength;\r\n this._maxRecordCount = maxRecordCount;\r\n this._frameContext = frameContext;\r\n\r\n this._events.add(PasswordManager.addedPassword, async () => {\r\n this._decryptData(this._internalRows, await this._getClassDescription(), true);\r\n });\r\n }\r\n //#endregion Constructors\r\n\r\n /**\r\n * Převede IOrderBy do formátu vhodného pro DB dotaz\r\n * @param orderBy Data ke zpracování\r\n */\r\n protected _parseOrderBy(orderBy: IOrderBy): string {\r\n const order = orderBy.additionalOrdering ? `${orderBy.additionalOrdering} ${orderBy.attributeName}` : orderBy.attributeName; // `\r\n return orderBy.order === OrderType.descending ? `DESC ${order}` : order; // `\r\n }\r\n\r\n protected *_getIterator(startIndex: number, count?: number): IterableIterator<IRowData> {\r\n if (this._internalRows) {\r\n const maxIndex = count && count !== DATASOURCE_ALL_DATA ? Math.min(startIndex + count, this._internalRows.length) : this._internalRows.length;\r\n for (let i = startIndex; i < maxIndex; i++)\r\n yield this._internalRows[i];\r\n }\r\n }\r\n\r\n /**\r\n * Pokud zrovna probíhá načítání nebo reload dat, tak vrací promise, pomocí kterého jde na dočítání počkat, jinak vrací dokončený promise\r\n */\r\n public async waitForReload(_ct?: CancellationToken): Promise<void> {\r\n if (this._runningDataLoad != null)\r\n await this._runningDataLoad;\r\n }\r\n\r\n protected async _getClassDescription(): Promise<IOWClassDescription> {\r\n if (this.__classDescription === null)\r\n this.__classDescription = await ModelDescriptionsManager.instance.getClassInfo(this._className);\r\n return this.__classDescription;\r\n }\r\n\r\n /**\r\n *\r\n * @param params\r\n * @param cancellationToken\r\n */\r\n protected async _loadData(params: IDBDataSourceLoadParams, cancellationToken: CancellationToken): Promise<IRowData[]> {\r\n if (/@\\d+/.test(this.condition) && (this.conditionParams == null || this.conditionParams.length === 0))\r\n return Promise.reject(new InvalidOperationException(\"Condition contains params but no parameter value available\"));\r\n\r\n const startIndex = this._startIndex;\r\n\r\n if (startIndex === 0)\r\n this._allDataRead = false;\r\n else if (this._allDataRead)\r\n return Promise.resolve([]);\r\n\r\n const cdPromise = this._getClassDescription();\r\n const batchSize = params.batchSize !== undefined && params.batchSize > this._batchSize ? params.batchSize : this._batchSize;\r\n const count = this._maxRecordCount !== undefined ? this._maxRecordCount - this._startIndex : batchSize;\r\n\r\n const bcpStartIndex = this._startIndex;//uložíme start index pro případ kdy dočítání dat padne do výjimky\r\n this._startIndex += batchSize;\r\n\r\n this.loadingStarted.trigger(this, startIndex);\r\n\r\n this._runningDataLoadCTS = new CancellationTokenSource([cancellationToken]);\r\n this._runningDataLoad = getDataReaderClient().getDataRowsWithParams(this._className, this._attributes, this.condition, {\r\n params: this.conditionParams,\r\n orderBy: this._internalOrderBy,\r\n startIndex: startIndex,\r\n count,\r\n dataLength: this._dataLength,\r\n readVersioned: this._readVersioned,\r\n distinct: this.useDistinct,\r\n groupBy: this._groupBy,\r\n },\r\n this._fullLengthAttributes,\r\n this._getRequestContext(this._runningDataLoadCTS.token));\r\n\r\n let dsLoadInfo: IDataSourceLoadInfo;\r\n\r\n try {\r\n const rows = await this._runningDataLoad;\r\n\r\n if (batchSize === DATASOURCE_ALL_DATA)\r\n this._allDataRead = true;\r\n else\r\n this._allDataRead = (this._maxRecordCount !== undefined && this._startIndex + batchSize >= this._maxRecordCount) || rows.length < batchSize;\r\n\r\n params.startIndexForEvent = params.startIndexForEvent ?? startIndex;\r\n params.countForEvent = params.countForEvent ?? count;\r\n\r\n const cd = await cdPromise;\r\n if (cd.encryptingAllowed)\r\n await this._decryptData(rows, cd);\r\n\r\n dsLoadInfo = await this._processRows(params, cancellationToken, rows, startIndex);\r\n this._runningDataLoad = null;\r\n return rows;\r\n } catch (err) {\r\n this._runningDataLoad = null;\r\n this._startIndex = bcpStartIndex;//obnovíme původní start index, protože nedošlo k dočtení dat\r\n this.loadingCancelled.trigger(this, { isFiltered: false, emptyData: true, cancellationToken: cancellationToken });\r\n\r\n // zrušení nahrávání data je v pořádku\r\n if (!(err instanceof CancelError))\r\n this.error.trigger(this, err);\r\n\r\n return null;\r\n } finally {\r\n this.loadingEnded.trigger(this, dsLoadInfo ?? { isFiltered: false, fulltextSearchString: this.fulltextCondition?.searchString, emptyData: true, cancellationToken: cancellationToken });\r\n }\r\n }\r\n\r\n protected _isLastBatch(params: IDBDataSourceLoadParams): boolean {\r\n let isLastBatch = this._allDataRead;\r\n if (typeof params.countForEvent === \"number\") {\r\n if (params.countForEvent === DATASOURCE_ALL_DATA) {\r\n return true;\r\n }\r\n const startIndexForEvent = params.startIndexForEvent ?? 0;\r\n isLastBatch = isLastBatch && (startIndexForEvent + params.countForEvent) > this._internalRows.length;\r\n }\r\n\r\n return isLastBatch;\r\n }\r\n\r\n protected async _processRows(params: IDBDataSourceLoadParams, cancellationToken: CancellationToken, rows: IRowData[], startIndex: number): Promise<IDataSourceLoadInfo> {\r\n this._internalRows = startIndex === 0 ? rows : (this._internalRows || []).concat(rows);\r\n\r\n return this._afterProcessRow(params, cancellationToken);\r\n }\r\n\r\n protected _afterProcessRow(params: IDBDataSourceLoadParams, cancellationToken: CancellationToken): IDataSourceLoadInfo {\r\n const lastBatch = this._isLastBatch(params);\r\n const dsLoadInfo: IDataSourceLoadInfo = {\r\n startIndex: params.startIndexForEvent,\r\n dataGenerator: this._getIterator.bind(this, params.startIndexForEvent, params.countForEvent),\r\n lastBatch: lastBatch,\r\n isFiltered: this.hasFilterCondition,\r\n fulltextSearchString: this.fulltextCondition?.searchString,\r\n refreshedData: params.batchSize !== undefined,\r\n cancellationToken: cancellationToken,\r\n emptyData: false,\r\n };\r\n if (params.keepSelectedRecords != null)\r\n dsLoadInfo.keepSelectedRecords = params.keepSelectedRecords;\r\n\r\n this.dataLoaded.trigger(this, dsLoadInfo);\r\n\r\n return dsLoadInfo;\r\n }\r\n\r\n public async loadSpecificRecord(dataKey: string, selectLoaded: boolean = false, cancellationToken: CancellationToken = CancellationToken.none): Promise<IRowData> {\r\n const resultRows = await this.loadSpecificRecords([dataKey], selectLoaded, cancellationToken);\r\n return resultRows && resultRows[0] || null;\r\n }\r\n\r\n public async loadSpecificRecords(dataKeys: string[], selectLoaded: boolean = false, cancellationToken: CancellationToken = CancellationToken.none): Promise<IRowData[]> {\r\n if (!dataKeys || dataKeys.length === 0)\r\n return Promise.resolve([]);\r\n\r\n const newDataKeys = [];\r\n for (const dk of dataKeys) {\r\n const dataKey = dk.toString();\r\n if (this._specificRecordWaitList.includes(dataKey)) continue;\r\n else {\r\n this._specificRecordWaitList.push(dataKey);\r\n newDataKeys.push(dataKey);\r\n }\r\n }\r\n\r\n if (newDataKeys.length === 0) return Promise.resolve([]);\r\n dataKeys = newDataKeys;\r\n\r\n const loadedDataKeys: string[] = [];\r\n const loadedRows: IRowData[] = [];\r\n\r\n for (const row of this._internalRows) {\r\n const rowDataKeyRaw = AttrValueReader.read(row[this.dataKey]);\r\n const rowDataKey = rowDataKeyRaw && rowDataKeyRaw.toString();\r\n if (dataKeys.indexOf(rowDataKey) > -1) {\r\n loadedDataKeys.push(rowDataKey);\r\n loadedRows.push(row);\r\n }\r\n }\r\n\r\n const dataKeysToLoad = dataKeys.filter(dataKey => loadedDataKeys.indexOf(dataKey) === -1);\r\n\r\n if (dataKeysToLoad.length === 0) {\r\n this._specificRecordWaitList = []; //hledany zaznam je mezi doctenymi, ale nezobrazenymi radky. Musi se promazat, aby se v dalsim kole zjistilo, jestli je jiz zobrazeny\r\n return loadedRows;\r\n }\r\n\r\n const cdPromise = this._getClassDescription();\r\n\r\n this._runningDataLoadCTS = new CancellationTokenSource([cancellationToken]);\r\n this._runningDataLoad = getDataReaderClient().getDataRowsWithParams(this.className, this._attributes,\r\n StringUtils.combineConditions(ConditionOperator.and, this.condition, `${this.dataKey}=`.concat(dataKeysToLoad.join(` OR ${this.dataKey}=`))),\r\n { params: this.conditionParams },\r\n this._fullLengthAttributes,\r\n this._getRequestContext(this._runningDataLoadCTS.token))\r\n .then(async (rows) => {\r\n this._internalRows = [...rows, ...(this._internalRows || [])];\r\n\r\n for (const row of rows) {\r\n if (this._specificRecordWaitList.includes(row[this.dataKey].toString())) {\r\n this._specificRecordWaitList.splice(this._specificRecordWaitList.indexOf(row[this.dataKey].toString()), 1);\r\n }\r\n }\r\n\r\n const cd = await cdPromise;\r\n if (cd.encryptingAllowed)\r\n await this._decryptData(rows, cd);\r\n\r\n function* rowIterator(): Iterable<IRowData> {\r\n for (const row of rows) {\r\n yield row;\r\n }\r\n }\r\n\r\n const eventArgs: IDataSourceLoadInfo = {\r\n startIndex: 0,\r\n dataGenerator: rowIterator,\r\n lastBatch: false,\r\n isFiltered: false,\r\n fulltextSearchString: this.fulltextCondition?.searchString,\r\n refreshedData: true,\r\n keepExisting: true,\r\n cancellationToken: cancellationToken,\r\n emptyData: false,\r\n };\r\n if (selectLoaded)\r\n eventArgs.selectLoaded = true;\r\n\r\n this._runningDataLoad = null;\r\n this._specificRecordWaitList = [];\r\n\r\n this.dataLoaded.trigger(this, eventArgs);\r\n this.loadingEnded.trigger(this, eventArgs);\r\n return rows;\r\n }).catch((err) => {\r\n this._runningDataLoad = null;\r\n this._specificRecordWaitList = [];\r\n this.loadingEnded.trigger(this, { isFiltered: false, fulltextSearchString: this.fulltextCondition?.searchString, emptyData: true, cancellationToken: cancellationToken });\r\n // zrušení nahrávání data je v pořádku\r\n if (!(err instanceof CancelError))\r\n this.error.trigger(this, err);\r\n });\r\n\r\n return this._runningDataLoad;\r\n }\r\n /*\r\n * Vrací počet zadaných záznamů pro aktuálně nastavený filtr\r\n */\r\n public async count(cancellationToken: CancellationToken = CancellationToken.none): Promise<{ isFiltered: false; totalCount: number } | { filteredCount: number; isFiltered: true; totalCount: number }> {\r\n if (this.hasFilterCondition || this.hasFulltextCondition) {\r\n const baseCondition = StringUtils.combineConditions(ConditionOperator.and, this._initializeCondition, this._originalCondition);\r\n return {\r\n isFiltered: true,\r\n totalCount: await getDataReaderClient().getCount(this.className, baseCondition, this.conditionParams, this._readVersioned, this._getRequestContext(cancellationToken)),\r\n filteredCount: await getDataReaderClient().getCount(this.className, this.condition, this.conditionParams, this._readVersioned, this._getRequestContext(cancellationToken)),\r\n };\r\n } else {\r\n return {\r\n isFiltered: false,\r\n totalCount: await getDataReaderClient().getCount(this.className, this.condition, this.conditionParams, this._readVersioned, this._getRequestContext(cancellationToken)),\r\n };\r\n }\r\n }\r\n\r\n private async _decryptData(rows: readonly IRowData[], cd: IOWClassDescription, updateDisplayedData: boolean = false): Promise<void> {\r\n if (!rows || !cd.encryptingAllowed)\r\n return;\r\n\r\n for (const rowData of rows) {\r\n if (AttrValueReader.readRow(rowData, \"Encrypted\") !== true || AttrValueReader.readRow(rowData, \"IsFinallyEncrypted\") === true)\r\n continue;\r\n\r\n const pml = cd.passwordMasterLink;\r\n const id = pml && AttrValueReader.readRow(rowData, pml + \".ID\") !== 0 ? AttrValueReader.readRow(rowData, pml + \".ID\") : AttrValueReader.readRow(rowData, \"ID\");\r\n const className = pml && AttrValueReader.readRow(rowData, pml + \".ClassName\") ? AttrValueReader.readRow(rowData, pml + \".ClassName\") : AttrValueReader.readRow(rowData, \"ClassName\");\r\n\r\n if (PasswordManager.hasPassword(className, id)) {\r\n /*const encryptionKeyBase = PasswordManager.getPassword(className, id);\r\n const encryptionKey = await SecurityUtils.derivePasswordToAES256Key(encryptionKeyBase, rowData.ObjectID.toString());*/\r\n const encryptionKey = PasswordManager.getPassword(className, id);\r\n\r\n let promises: Promise<void>[] = [];\r\n const changedAttributes = new Map<string, any>();\r\n let decryptionSuccessful = false;\r\n for (const attr of this._attributes) {\r\n const val = rowData[attr];\r\n if (val instanceof IEncAttrValue && val.hasEncryptedValue) {\r\n const prom = val.decrypt(encryptionKey).then((decryptionResult) => {\r\n if (!decryptionResult)\r\n return;\r\n\r\n decryptionSuccessful = true;\r\n if (updateDisplayedData)\r\n changedAttributes.set(attr, val);\r\n });\r\n promises.push(prom);\r\n }\r\n }\r\n\r\n await Promise.all(promises);\r\n\r\n if (!decryptionSuccessful)\r\n return;\r\n\r\n promises = [];\r\n for (const attr of this._attributes) {\r\n const val = rowData[attr];\r\n if (val instanceof IEncAttrValue && !val.hasEncryptedValue) {\r\n const prom = val.decrypt(encryptionKey).then((decryptionResult) => {\r\n if (decryptionResult && updateDisplayedData)\r\n changedAttributes.set(attr, val);\r\n });\r\n promises.push(prom);\r\n }\r\n }\r\n\r\n await Promise.all(promises);\r\n\r\n if (changedAttributes.size > 0)\r\n this.attributesChanged.trigger(this, {\r\n key: rowData.ID,\r\n isChanged: false,\r\n values: changedAttributes,\r\n isDecrypted: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Smaže dočtené záznamy v datasource\r\n * */\r\n public clearData(): void {\r\n this._internalRows = [];\r\n const dsLoadInfo: IDataSourceLoadInfo = {\r\n startIndex: 0,\r\n dataGenerator: this._getIterator.bind(this, 0, 0),\r\n lastBatch: false,\r\n isFiltered: false,\r\n fulltextSearchString: this.fulltextCondition?.searchString,\r\n refreshedData: false,\r\n emptyData: true,\r\n };\r\n this.dataLoaded.trigger(this, dsLoadInfo);\r\n }\r\n\r\n /**\r\n * Nahraje data od zacatku\r\n */\r\n public loadNewData(keepSelectedRecords?: boolean, cancellationToken: CancellationToken = CancellationToken.none): Promise<IRowData[]> {\r\n return this._loadNewData(undefined, keepSelectedRecords, cancellationToken);\r\n }\r\n\r\n protected _loadNewData(batchSize: number | undefined, keepSelectedRecords: boolean, cancellationToken: CancellationToken): Promise<IRowData[]> {\r\n cancellationToken.throwIfCancellationRequested();\r\n\r\n this._startIndex = 0;\r\n\r\n this._cancelLoading();\r\n\r\n const params: IDBDataSourceLoadParams = {};\r\n if (batchSize != null)\r\n params.batchSize = batchSize;\r\n if (keepSelectedRecords != null)\r\n params.keepSelectedRecords = keepSelectedRecords;\r\n\r\n return this._loadData(params, cancellationToken);\r\n }\r\n\r\n protected _cancelLoading(): void {\r\n // pokud se spustí nové dočítání dat a nějaké dočítání ještě běží, tak se to staré zruší a zahodí\r\n if (this._runningDataLoad && this._runningDataLoadCTS) {\r\n this._runningDataLoadCTS.cancel();\r\n this.loadingCancelled.trigger(this, { isFiltered: false });\r\n }\r\n }\r\n\r\n /**\r\n * Vyvola dotaz na dalsi varku dat\r\n */\r\n public getNextData(startIndex?: number, count?: number, keepSelectedRecords?: boolean, cancellationToken: CancellationToken = CancellationToken.none): Promise<Iterable<IRowData>> {\r\n const inRange: boolean = (this._internalRows || []).length > (startIndex + count);\r\n const batchLoading = startIndex !== undefined && (inRange || this._allDataRead);\r\n\r\n if (!batchLoading && this._allDataRead && this.__internalRows.length <= startIndex) {\r\n return Promise.resolve([]);\r\n }\r\n\r\n if (!batchLoading && startIndex && startIndex > 0) {\r\n const params: IDBDataSourceLoadParams = { startIndexForEvent: startIndex, countForEvent: count };\r\n if (keepSelectedRecords != null)\r\n params.keepSelectedRecords = keepSelectedRecords;\r\n return this._loadData(params, cancellationToken);\r\n }\r\n\r\n let dsLoadInfo: IDataSourceLoadInfo;\r\n this.loadingStarted.trigger(this, undefined);\r\n try {\r\n if (batchLoading) {\r\n dsLoadInfo = {\r\n startIndex: startIndex,\r\n dataGenerator: this._getIterator.bind(this, startIndex, count),\r\n lastBatch: !inRange,\r\n isFiltered: this.hasFilterCondition,\r\n fulltextSearchString: this.fulltextCondition?.searchString,\r\n refreshedData: false,\r\n cancellationToken: cancellationToken,\r\n emptyData: false,\r\n };\r\n if (keepSelectedRecords != null)\r\n dsLoadInfo.keepSelectedRecords = keepSelectedRecords;\r\n this.dataLoaded.trigger(this, dsLoadInfo);\r\n return Promise.resolve(this._getIterator.bind(this, startIndex, count)());\r\n } else {\r\n return Promise.resolve([]);\r\n }\r\n } finally {\r\n this.loadingEnded.trigger(this, dsLoadInfo ?? { isFiltered: this.hasFilterCondition, fulltextSearchString: this.fulltextCondition?.searchString, emptyData: true, cancellationToken: cancellationToken });\r\n }\r\n }\r\n\r\n /**\r\n * Vrací pole atributů, které datasource čte\r\n */\r\n public getAttrs(): string[] {\r\n return this._attributes;\r\n }\r\n /** Vrací pole atributů, jejichž hodnoty se nemají ořezávat */\r\n public getFullLengthAttrs(): string[] {\r\n return this._fullLengthAttributes;\r\n }\r\n\r\n /**\r\n * Nastavi atributy, ktere chci docist\r\n * @param attrs seznam atributu\r\n * @param fullLengthAttributes Seznam atributu, jejichž hodnoty se nemají ořezávat\r\n */\r\n public setAttrs(attrs: string[], fullLengthAttributes?: string[]): void {\r\n this._attributes = attrs;\r\n this._fullLengthAttributes = fullLengthAttributes || [];\r\n }\r\n\r\n /**\r\n * Nastaví atributy, ktere chci dočíst a dočte data, pokud přibyl nějaký nový atribut. Používat opatrně, pozor na vícenásobné načítání.\r\n * @param attrs seznam atributu\r\n * @param cancellationToken\r\n */\r\n public async setAttrsAndLoad(attrs: string[], cancellationToken: CancellationToken = CancellationToken.none): Promise<Iterable<IRowData>> {\r\n const oldAttr = this._attributes;\r\n this._attributes = attrs;\r\n\r\n if (!attrs.every((v) => oldAttr.indexOf(v) > -1))\r\n return await this.loadNewData(false, cancellationToken);\r\n\r\n return null;\r\n }\r\n\r\n public refreshData(fetchCount?: number, manualRefresh?: boolean, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n return this._loadNewData(fetchCount, manualRefresh, cancellationToken);\r\n }\r\n\r\n public setFilterCondition(condition: string): void {\r\n this._filterCondition = condition;\r\n this._updateCondition();\r\n }\r\n\r\n public getFilterCondition(): string {\r\n return this._filterCondition;\r\n }\r\n\r\n /**\r\n * Vrací true, pokud je datasource filtrován.\r\n */\r\n public get hasFilterCondition(): boolean {\r\n return !StringUtils.isNullOrEmpty(this._filterCondition);\r\n }\r\n\r\n /** Text a podmínka pro fulltextové vyhledávání */\r\n public get fulltextCondition(): IFulltextSearchCondition {\r\n return this._fulltextCondition;\r\n }\r\n\r\n public set fulltextCondition(value: IFulltextSearchCondition) {\r\n this._fulltextCondition = value;\r\n this._updateCondition();\r\n }\r\n\r\n /** Vrací true, pokud je datasource fulltextově filtrován. */\r\n public get hasFulltextCondition(): boolean {\r\n return !StringUtils.isNullOrEmpty(this.fulltextCondition?.condition);\r\n }\r\n\r\n /**\r\n * Nastaví dodatečnou podmínku\r\n * @param conditionId Identifikátor dodatečné podmínky\r\n * @param condition Podmínka\r\n * @param params Parametry podmínky\r\n */\r\n public setAdditionalCondition(conditionId: string, condition: string, params?: ConditionParams): void {\r\n this._additionalConditions.set(conditionId, condition);\r\n\r\n if (/@\\d+/.test(condition)) { // Můžeme jako vstup chtít i null, proto nekontrolujeme \"params\"\r\n this._additionalConditionsParam.set(conditionId, params);\r\n }\r\n }\r\n\r\n /**\r\n * Nastaví parametry pro dodatečnou podmínku\r\n * @param conditionId Identifikátor dodatečné podmínky\r\n * @param params Parametry podmínky\r\n */\r\n public setAdditionalConditionParams(conditionId: string, params: any[]): void {\r\n this._additionalConditionsParam.set(conditionId, params);\r\n }\r\n\r\n /**\r\n * Vrátí zda podmínka existuje, případně zda existuje alespoň jedna libovolná podmínka při prázdném vstupu\r\n * @param conditionId Identifikátor dodatečné podmínky\r\n */\r\n public hasAdditionalCondition(conditionId?: string): boolean {\r\n if (conditionId) {\r\n return this._additionalConditions.has(conditionId);\r\n }\r\n\r\n return this._additionalConditions.size > 0;\r\n }\r\n\r\n /**\r\n * Odebere dodatečnou podmínku\r\n * @param conditionId Identifikátor dodatečné podmínky\r\n */\r\n public removeAdditionalCondition(conditionId: string): void {\r\n if (this._additionalConditions.has(conditionId))\r\n this._additionalConditions.delete(conditionId);\r\n if (this._additionalConditionsParam.has(conditionId))\r\n this._additionalConditionsParam.delete(conditionId);\r\n }\r\n\r\n /** Zruší všechny dodatečné podmínky */\r\n public clearAdditionalConditions(): void {\r\n this._additionalConditions.clear();\r\n this._additionalConditionsParam.clear();\r\n }\r\n\r\n /**\r\n * Zkombinuje vsechny dostupne casti podminky a vytvori finalni podminku pro data reader\r\n */\r\n protected _updateCondition(): void {\r\n this._condition = StringUtils.combineConditions(ConditionOperator.and, this._initializeCondition, this._originalCondition, this._filterCondition, this.fulltextCondition?.condition ?? \"\");\r\n }\r\n\r\n protected _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContext {\r\n return convertContextFromFrameToRequest(this._frameContext, cancellationToken);\r\n }\r\n\r\n //#region dispose\r\n /**\r\n * Destruktor\r\n */\r\n public dispose(): void {\r\n this._events?.dispose();\r\n this.dataLoaded.removeAll();\r\n this.error.removeAll();\r\n this.loadingCancelled.removeAll();\r\n this.loadingStarted.removeAll();\r\n this.loadingEnded.removeAll();\r\n this.attributesChanged.removeAll();\r\n }\r\n //#endregion dispose\r\n}\r\n\r\n/**\r\n * Parametry pro metodu _loadData\r\n */\r\nexport interface IDBDataSourceLoadParams {\r\n startIndexForEvent?: number;\r\n countForEvent?: number;\r\n batchSize?: number;\r\n keepSelectedRecords?: boolean;\r\n}\r\n","import { IDataSource } from \"../../../Global/Base/DataSources/Interfaces\";\r\nimport { CancellationToken } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { OWObject } from \"../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IExtendedObjectOperation } from \"../../../OW.Remoting/Remoting/OWManagerInterfaces\";\r\nimport { INewRow, SaveResultData } from \"./EditableDBDataSource\";\r\n\r\nexport interface IObjectDataSource extends IDataSource {\r\n /**\r\n * Volitelná funkce umožňující řídit, zda se má objekt uvolnit\r\n */\r\n objectDisposePredicate?: (objForDispose: OWObject) => boolean;\r\n /**\r\n * Vrátí objekt s daným id\r\n * @param id Id požadovaného objektu\r\n * @param extendedOperations Operace, které se mají provést ihned po založení nové instance aplikačního záznamu\r\n * @param forceLoad Zda se má vynutit znovunačtení objektu ze služby (přeskočí cache)\r\n * @param ct Token umožňující zrušení procesu\r\n */\r\n getObject(id: string, extendedOperations?: IExtendedObjectOperation[], forceLoad?: boolean, ct?: CancellationToken): Promise<OWObject>;\r\n /**\r\n * Uloží změněné objekty\r\n * @param saveOnlyKeys Pokud je vyplněno, uloží jen objekty v této kolekci\r\n * @param forceApplyUpdates Použije applyUpdates na objektu i pokud je nevalidní na klientské straně\r\n * @param ct Token umožňující zrušení procesu\r\n */\r\n saveObjects(saveOnlyKeys?: string[], forceApplyUpdates?: boolean, ct?: CancellationToken): Promise<SaveResultData[]>;\r\n /**\r\n * Vytvori nový řádek\r\n * @param extendedOperations Operace, které se mají provést ihned po založení nové instance aplikačního záznamu\r\n * @param objectName Název třídy, jejíž záznam se má založit, pokud není specifikovaný, tak se vezme třída nastavená na DataSource\r\n * @param attrNames Seznam atributů, které se mají z nového záznamu přečíst\r\n * @param ct Token umožňující zrušení procesu\r\n */\r\n newRow(extendedOperations?: IExtendedObjectOperation[], objectName?: string, attrNames?: string[], ct?: CancellationToken): Promise<INewRow>;\r\n\r\n /**\r\n * Smaže objekt podle klíče.\r\n * @param id Id požadovaného objektu\r\n * @param ct Token umožňující zrušení procesu\r\n */\r\n deleteObject(id: string, ct?: CancellationToken): Promise<any>;\r\n}\r\n\r\nexport class IObjectDataSource {\r\n private static _properties = [] as string[];\r\n private static _methods = [\"getObject\", \"saveObjects\", \"newRow\", \"deleteObject\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { getDataReaderClient } from \"@multiweb/clients/util\";\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IAttrValue, IResultMessage, IRowData } from \"@multiweb/types/contracts\";\r\nimport { ArrayUtils } from \"Global/Base/Utils/ArrayUtils\";\r\nimport { ObjectUtils } from \"Global/Base/Utils/ObjectUtils\";\r\nimport { IOWObject } from \"OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { IDBDataSourceParams, IEditableDataSource, IPermissionData, ISaveRowEventArgs } from \"../../../Global/Base/DataSources/Interfaces\";\r\nimport { AttrValue } from \"../../../Global/Base/DataTypes/AttrValue\";\r\nimport { AwaitableStandardEvent, Event } from \"../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { CancellationToken, CancellationTokenSource } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { DeferredStateful, PromiseUtils } from \"../../../Global/Base/Promises/PromiseUtils\";\r\nimport { getClassItemsRights } from \"../../../Global/Base/Rights/utils\";\r\nimport { ConditionOperator, StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { IValidationError } from \"../../../OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { EOWRecordPermissionException, EOWUserException, EOWValidateException } from \"../../../OW.Remoting/Basic/OWExceptions\";\r\nimport { OWObject } from \"../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../../OW.Remoting/Remoting/OWManager\";\r\nimport { IExtendedObjectOperation } from \"../../../OW.Remoting/Remoting/OWManagerInterfaces\";\r\nimport { ClassItemType } from \"../../../OW.Remoting/Remoting/Rights\";\r\nimport { DBDataSource } from \"./DBDataSource\";\r\nimport { IObjectDataSource } from \"./IObjectDataSource\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dataSource);\r\n\r\n/**\r\n * Třída reprezentující databázový zdroj dat pro konzumenta dat\r\n */\r\nexport class EditableDBDataSource extends DBDataSource implements IEditableDataSource, IObjectDataSource, IDisposable {\r\n /**\r\n * Vrací informaci o zrušení změn\r\n */\r\n public readonly changesCancelled: Event<EditableDBDataSource, any> = new Event<EditableDBDataSource, any>();\r\n /**\r\n * Vrací nový objekt T\r\n */\r\n public readonly newCreated: AwaitableStandardEvent<EditableDBDataSource, Readonly<IRowData>> = new AwaitableStandardEvent<EditableDBDataSource, Readonly<IRowData>>();\r\n\r\n /** Vrací záznamy, u kterých právě začalo ukládání. Umožňuje před uložením provést dodatečné změny/kontroly */\r\n public readonly beforeSave: AwaitableStandardEvent<IEditableDataSource, Readonly<{ objects: ReadonlyArray<OWObject> }>> = new AwaitableStandardEvent<IEditableDataSource, Readonly<{ objects: ReadonlyArray<OWObject> }>>();\r\n\r\n /**\r\n * Vrací nový objekt T\r\n */\r\n public readonly saved: Event<EditableDBDataSource, Readonly<ISaveRowEventArgs>> = new Event<EditableDBDataSource, Readonly<ISaveRowEventArgs>>();\r\n\r\n /**\r\n * Vrací uložené záznamy po skončení ukládání\r\n */\r\n public readonly afterSaved: Event<EditableDBDataSource, Readonly<{ saved: ReadonlyArray<string> }>> = new Event<EditableDBDataSource, Readonly<{ saved: ReadonlyArray<string> }>>();\r\n\r\n /**\r\n * Vrací mazaný řádek\r\n * Parametr je key\r\n */\r\n public readonly deleted: Event<EditableDBDataSource, { key: string; maintainSelection: boolean }> = new Event<EditableDBDataSource, { key: string; maintainSelection: boolean }>();\r\n\r\n /**\r\n * Vrací novou instanci objektu\r\n */\r\n public readonly onObjectInstanceChanged: Event<EditableDBDataSource, OWObject> = new Event<EditableDBDataSource, OWObject>();\r\n\r\n /**\r\n * Vrací refreshnutý řádek\r\n */\r\n public readonly rowRefreshed: Event<EditableDBDataSource, Readonly<IRowData>> = new Event<EditableDBDataSource, Readonly<IRowData>>();\r\n\r\n /**\r\n * Událost vyvolaná při vyhodnocení práv\r\n */\r\n public readonly permissionsChanged: Event<EditableDBDataSource, Readonly<{ key: any; permissions: ReadonlyArray<IPermissionData> }>> = new Event<EditableDBDataSource, Readonly<{ key: any; permissions: ReadonlyArray<IPermissionData> }>>();\r\n\r\n protected _objects: Map<string, IObjectInfo> = new Map<string, IObjectInfo>();\r\n private _objectPromises: Map<string, Promise<IObjectInfo>> = new Map<string, Promise<IObjectInfo>>();\r\n private _objectsLoadingDeferred: DeferredStateful<void> = PromiseUtils.deferStateful<void>();// signalizuje probíhající dočítání objektů\r\n protected _editedObjects: Set<string> = new Set();\r\n protected _waitForUpdateMultiTask: Array<Promise<any>> = []; // provádí se víc operací zaráz, nelze to chainovat\r\n /** Čas v sekundach po který bude vrácena při getování objektu, s nastavením force load, vždy stejná instance */\r\n private static readonly _expirationTimeOnObject: number = 10;\r\n\r\n public permissionKey: string = \"__permission_info\";\r\n\r\n /**\r\n * Volitelná funkce umožňující řídit, zda se má objekt uvolnit\r\n */\r\n public objectDisposePredicate?: (objForDispose: OWObject) => boolean;\r\n\r\n public get editedObjectsCount(): number {\r\n return this._editedObjects.size;\r\n }\r\n\r\n public get isEditable(): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * Pole instanceID objektů načtených ze serveru\r\n */\r\n public get loadedInstanceIDs(): string[] {\r\n return [...this._objects.values()]\r\n .map(obj => obj.actualObject.instanceID);\r\n }\r\n\r\n //#region Constructors\r\n constructor(params: IDBDataSourceParams) {\r\n super(params);\r\n this._setObjectsLoadingDeferred(true);\r\n }\r\n //#endregion Constructors\r\n\r\n /**\r\n * Vrátí hodnoty zadaných atributů\r\n */\r\n public async getValues(key: any, attributes?: string[]): Promise<IRowData | null> {\r\n await Promise.all(this._waitForUpdateMultiTask);\r\n this._waitForUpdateMultiTask = [];\r\n const objInfo = await this._getObject(key, null);\r\n return await this._getRowData(objInfo, attributes || this._attributes);\r\n }\r\n\r\n protected async _getRowData(objInfo: IObjectInfo, attributes: string[]): Promise<IRowData> {\r\n await this.waitForReload();\r\n const row: IRowData = {};\r\n await PromiseUtils.for(0, attributes.length, async (index) => {\r\n const attrName = attributes[index];\r\n row[attrName] = await objInfo.actualObject.getValue(attrName);\r\n });\r\n row[this.dataKey] = objInfo.key;\r\n row[this.permissionKey] = objInfo.permissions;\r\n return row;\r\n }\r\n\r\n public async setValues(key: any, values: IRowData): Promise<void> {\r\n const objInfo = this._getObjectInfo(key);\r\n objInfo.isChanged = true;\r\n const obj = objInfo.actualObject;\r\n this._editedObjects.add(objInfo.key);\r\n const promises = [...Object.keys(values)]\r\n .map(attrName => obj.setValue(attrName, values[attrName]).catch(PromiseUtils.catchAll));\r\n try {\r\n await Promise.all(promises);\r\n } catch (e) {\r\n this.error.trigger(this, e);\r\n }\r\n }\r\n\r\n /**\r\n * Načítá práva na atributy ze služby\r\n */\r\n private async _updateObjectRights(actObject: IOWObject, ct: CancellationToken): Promise<void> {\r\n const id = actObject.id.toString();\r\n const obj = this._getObjectInfo(id);\r\n\r\n if (!obj)\r\n return;\r\n\r\n obj.permissionsUpdateCTS?.cancel();\r\n\r\n const classItemsRightsList = this._attributes.map(attrName => ({\r\n name: this._firstAttrSegment(attrName),\r\n type: ClassItemType.Attribute,\r\n }));\r\n\r\n if (classItemsRightsList.length <= 0 || !actObject || !actObject.instanceID) {\r\n obj.permissions = [];\r\n return;\r\n }\r\n\r\n obj.permissionsUpdateCTS = new CancellationTokenSource(ct ? [ct] : undefined);\r\n const token = obj.permissionsUpdateCTS.token;\r\n // zavolá metodu na službu načte práva a nastaví na atributy\r\n obj.permissionsUpdate = getClassItemsRights(actObject, classItemsRightsList, this._getRequestContext(token)).then((perms) => { // TODO-rites: old rights - asi nechat\r\n if (token.cancellationRequested)\r\n return;\r\n\r\n obj.permissions = [...perms.values()].map(perm => ({\r\n attrName: perm.Name,\r\n enabled: perm.Enabled && actObject.canEdit,\r\n required: perm.Required,\r\n visible: perm.Visible,\r\n }));\r\n //logger.info(\"Reevaluated permissions for object id \" + actObject.id, obj.permissions);\r\n this.permissionsChanged.trigger(this, { key: id, permissions: obj.permissions });\r\n obj.permissionsUpdate = undefined;\r\n }).catch(PromiseUtils.cancellationCatch);\r\n\r\n await obj.permissionsUpdate;\r\n }\r\n\r\n private _firstAttrSegment(attrName: string): string {\r\n const dotIndex = attrName.indexOf(\".\");\r\n if (dotIndex >= 0) {\r\n return attrName.slice(0, dotIndex);\r\n }\r\n return attrName;\r\n }\r\n\r\n /**\r\n * Vrátí aktuální oprávnění pro daný řádek\r\n * @param dataKey\r\n */\r\n public async getRowPermission(dataKey: string): Promise<IPermissionData[]> {\r\n const objInfo = this._getObjectInfo(dataKey);\r\n if (objInfo == null)\r\n return null;\r\n\r\n if (objInfo.permissionsUpdate)\r\n await objInfo.permissionsUpdate;\r\n\r\n return objInfo.permissions;\r\n }\r\n\r\n /**\r\n * Vytvoří nový řádek\r\n * @param extendedOperations Operace, které se mají provést ihned po založení nové instance aplikačního záznamu\r\n * @param objectName Název třídy, jejíž záznam se má založit, pokud není specifikovaný, tak se vezme třída nastavená na DataSource\r\n * @param attrNames Seznam atributů, které se mají z nového záznamu přečíst\r\n */\r\n public async newRow(extendedOperations?: IExtendedObjectOperation[], objectName?: string, attrNames?: string[], ct?: CancellationToken, instanceID?: string): Promise<INewRow> {\r\n const actualObject = instanceID ?\r\n await OWManager.getInstance(instanceID, undefined, undefined, this._getRequestContext(ct)) :\r\n await OWManager.newObject(objectName || this.className, extendedOperations, this._getRequestContext(ct));\r\n return await this._processNewObject(actualObject, attrNames, ct);\r\n }\r\n\r\n public async copyRow(objId: any, attrNames?: string[], extendedOperations?: IExtendedObjectOperation[]): Promise<INewRow> {\r\n const oldObject = await this.getObject(objId, extendedOperations);\r\n const actualObject = await oldObject.createCopy();\r\n return await this._processNewObject(actualObject, attrNames);\r\n }\r\n\r\n private async _processNewObject(newObject: OWObject, attrNames?: string[], _ct: CancellationToken = CancellationToken.none): Promise<INewRow> {\r\n const objInfo = await this._registerNewInstance(newObject, true);\r\n const row = await this._getRowData(objInfo, attrNames || this._attributes);\r\n await this.newCreated.trigger(this, row);\r\n\r\n // Záznam je také potřeba přidat do _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) nový záznam (vizuálně) ztrácel z LF (ale stále by \"visel\" v DF)\r\n const newRow: IRowData = { ...row };\r\n Object.keys(newRow).forEach((k) => newRow[k] == null && delete newRow[k]); // Z objektu se vyfiltrují pryč všechny null klíče\r\n delete newRow[this.permissionKey];\r\n newRow[\"ID\"] = new AttrValue(newObject.id.toString());\r\n if (this._internalRows) {\r\n this._internalRows = [newRow, ...this._internalRows];\r\n } else {\r\n this._internalRows = [newRow];\r\n }\r\n\r\n return { actualObject: newObject, row };\r\n }\r\n\r\n protected async _registerNewInstance(obj: OWObject, isChanged: boolean, ct: CancellationToken = CancellationToken.none): Promise<IObjectInfo> {\r\n if (!obj) {\r\n return null;\r\n }\r\n const key = obj.id.toString();\r\n const objInfo: IObjectInfo = {\r\n key,\r\n actualObject: obj,\r\n isChanged: isChanged,\r\n permissions: [],\r\n expirationTime: EditableDBDataSource._getCurrentExpirationTime(),\r\n };\r\n this._objects.set(key, objInfo);\r\n if (isChanged) {\r\n this._editedObjects.add(key);\r\n }\r\n this._registerDisposedListener(objInfo);\r\n this._registerAttributesChangedListener(obj, ct);\r\n await this._updateObjectRights(obj, ct);\r\n return objInfo;\r\n }\r\n\r\n private _registerAttributesChangedListener(obj: OWObject, ct: CancellationToken = CancellationToken.none): void {\r\n if (obj) {\r\n this._events.addWithKey(obj.instanceID, obj.attributesChanged, (_, attrName) => this._attributesChangedListener(obj, attrName, ct));\r\n }\r\n }\r\n\r\n protected _registerDisposedListener(objInfo: IObjectInfo): void {\r\n const obj = objInfo?.actualObject;\r\n if (obj) {\r\n this._events.addWithKey(obj.instanceID, obj.disposed, () => {\r\n const actualObjInfo = this._getObjectInfo(obj.instanceID);\r\n if (actualObjInfo?.actualObject.instanceID === obj.instanceID) {\r\n this._objects.delete(actualObjInfo.key);\r\n }\r\n this._events.removeByKey(obj.instanceID);\r\n objInfo.permissionsUpdateCTS?.cancel();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Vrací čas v sekundach, po který bude vrácena při getování objektu, s nastavením force load, vždy stejná instance\r\n */\r\n private static _getCurrentExpirationTime(): Date {\r\n const expDate = new Date;\r\n expDate.setSeconds(expDate.getSeconds() + EditableDBDataSource._expirationTimeOnObject); // Teď + 10 sekund\r\n\r\n return expDate;\r\n }\r\n\r\n /**\r\n * Vrátí objekt s daným id\r\n * @param id Id požadovaného objektu\r\n * @param forceLoad Zda se má vynutit znovunačtení objektu ze služby (přeskočí cache)\r\n */\r\n\r\n public async getObject(id: string, extendedOperations: IExtendedObjectOperation[] | null, forceLoad: boolean = false, _ct?: CancellationToken): Promise<OWObject> {\r\n return (await this._getObject(id, extendedOperations, forceLoad))?.actualObject;\r\n }\r\n\r\n protected async _getObject(id: string, extendedOperations: IExtendedObjectOperation[] | null, forceLoad: boolean = false, ct?: CancellationToken): Promise<IObjectInfo> {\r\n let oldObjInfo = this._getObjectInfo(id);\r\n id = oldObjInfo?.key || id;\r\n\r\n if (oldObjInfo && oldObjInfo.actualObject && oldObjInfo.actualObject.isDisposed) //pokud byl objekt odstraněn, zahodí stav a načte novou instanci\r\n oldObjInfo = null;\r\n\r\n if (ObjectUtils.isIdTemporary(id) && oldObjInfo == null)\r\n return undefined;\r\n\r\n // TODO: zjistit proč je isChanged zvlášť zde na wrapperu a zvlášť na objektu\r\n if (oldObjInfo != null && (oldObjInfo.isChanged || !oldObjInfo.actualObject.isValid || (!forceLoad && oldObjInfo.expirationTime > new Date))) {\r\n return oldObjInfo;\r\n }\r\n\r\n if (this._objectPromises.has(id)) {\r\n try {\r\n return await this._objectPromises.get(id);\r\n } catch (err) {\r\n PromiseUtils.cancellationCatch(err);\r\n }\r\n }\r\n\r\n const oldInstanceID = oldObjInfo?.actualObject.instanceID || \"\";\r\n const getObjectInfo = async () => {\r\n const obj = await OWManager.getObject(id, this.className, extendedOperations, undefined, this._readVersioned, this._getRequestContext(ct));\r\n if (obj.id.toString() === \"-666\") {\r\n throw new EOWRecordPermissionException();\r\n }\r\n\r\n if (obj.instanceID !== oldInstanceID) {\r\n this.onObjectInstanceChanged.trigger(this, obj);\r\n }\r\n\r\n return await this._registerNewInstance(obj, false);\r\n };\r\n const getPromise = getObjectInfo();\r\n this._objectPromises.set(id, getPromise);\r\n this._setObjectsLoadingDeferred();\r\n try {\r\n return await getPromise;\r\n } finally {\r\n this._objectPromises.delete(id);\r\n if (this._objectPromises.size === 0)\r\n this._setObjectsLoadingDeferred(true);\r\n }\r\n }\r\n\r\n /**\r\n * Nastavuje odložený promise _objectsLoadingDeferred signalizující probíhající dočítání objektů.\r\n * @param resolve Pokud je true, nastavuje promise na resolved. Pokud false, vytváří nový promise.\r\n */\r\n private _setObjectsLoadingDeferred(resolve: boolean = false): void {\r\n if (!resolve) {\r\n if (this._objectsLoadingDeferred.isResolved)\r\n this._objectsLoadingDeferred = PromiseUtils.deferStateful<void>();\r\n } else {\r\n if (!this._objectsLoadingDeferred.isResolved)\r\n this._objectsLoadingDeferred.resolve();\r\n }\r\n }\r\n\r\n /** Čekání na probíhající dočítání objektů. */\r\n private async _waitForObjectsLoading(): Promise<void> {\r\n return this._objectsLoadingDeferred.promise;\r\n }\r\n\r\n public async deleteObject(key: string, ct?: CancellationToken, maintainSelection: boolean = false): Promise<IResultMessage[] | undefined> {\r\n const objInfo = this._getObjectInfo(key);\r\n if (!objInfo) {\r\n return undefined;\r\n }\r\n const obj = objInfo.actualObject;\r\n const result = await obj.delete(ct);\r\n\r\n this._internalRows = this._internalRows.filter(r => r.ID.toString() != key); // Záznam je potřeba odstranit z _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) záznam stále zobrazoval v LF\r\n\r\n this._cleanObject(objInfo.key);\r\n this.deleted.trigger(this, { key, maintainSelection });\r\n return result;\r\n }\r\n\r\n /**\r\n * Počká na doběhnutí změn všech objektů, na kterých zrovna probíhá UpdateInstance\r\n */\r\n protected _waitForInstanceUpdates(ct?: CancellationToken): Promise<any> {\r\n // změněný objekt se do kolekce editedObjects dostane až ve chvíli, až se vrátí odpověď z UpdateInstance a zpracuje se pomocí OWObject.LoadData()\r\n // zde je potřeba čekat, až ty dotazy doběhnou\r\n const pendingUpdates = [...this._objects.values()]\r\n .filter(obj => obj.actualObject?.isInstanceUpdateInProgress)\r\n .map(obj => obj.actualObject.waitForUpdateInstance(ct));\r\n return Promise.all(pendingUpdates);\r\n }\r\n\r\n /**\r\n * Umožňuje počkat na probíhájící načítání a update dat\r\n */\r\n public override waitForReload(ct?: CancellationToken): Promise<void> {\r\n return super.waitForReload(ct).then(() => this._waitForInstanceUpdates(ct).then(() => this._waitForObjectsLoading()));\r\n }\r\n\r\n //TODO: Po uložení nebo zrušení změn dořešit mazání nových sloupců nebo id\r\n public async saveObjects(saveOnlyKeys?: string[], forceApplyUpdates?: boolean, ct: CancellationToken = CancellationToken.none): Promise<SaveResultData[]> {\r\n const resultData: SaveResultData[] = [];\r\n const savedObjects: Array<string> = [];\r\n\r\n await Promise.all(this._waitForUpdateMultiTask);\r\n this._waitForUpdateMultiTask = [];\r\n ct.throwIfCancellationRequested();\r\n\r\n await this._waitForInstanceUpdates(ct);\r\n\r\n try {\r\n // Ten slice při kopírování je nutný, aby se udělala deep copy. this._editedObjects se v průběhu ukládání modifikuje\r\n const objectsToSave = saveOnlyKeys ?\r\n [...this._editedObjects].filter(obj => saveOnlyKeys.indexOf(obj) !== -1) :\r\n [...this._editedObjects];\r\n\r\n await this.beforeSave.trigger(this, { objects: objectsToSave.map((key) => this._getObjectInfo(key).actualObject) });\r\n\r\n await PromiseUtils.for(0, objectsToSave.length, async (index) => {\r\n ct.throwIfCancellationRequested();\r\n\r\n const id = objectsToSave[index];\r\n\r\n const objInfo = this._getObjectInfo(id);\r\n if (!objInfo) { // TODO [JB]: K této situaci by nemělo dojít a tudíž by tady neměla být potřeba ani tato podmínka\r\n logger.warn(`Object '${id}' not found!`);\r\n savedObjects.push(id);\r\n return;\r\n }\r\n\r\n const obj = objInfo.actualObject;\r\n\r\n if (!forceApplyUpdates) {\r\n if (!obj.isValid) {\r\n return;\r\n }\r\n }\r\n\r\n try {\r\n const wasNew = obj.isNew;\r\n resultData.push({\r\n data: obj,\r\n messages: await obj.applyUpdates(),\r\n });\r\n\r\n if (wasNew) {\r\n await this._persistObject(obj.instanceID);\r\n } else {\r\n this._getObjectInfo(id).isChanged = false;\r\n savedObjects.push(id);\r\n this.saved.trigger(this, { key: id, newKey: obj.id.toString() });\r\n }\r\n } catch (e) {\r\n if (e instanceof EOWValidateException)\r\n resultData.push({ data: obj, errors: e.validationErrors });\r\n else if (e instanceof EOWUserException)\r\n resultData.push({ data: obj, messages: e.resultMessages });\r\n else\r\n throw e;\r\n }\r\n });\r\n } finally {\r\n savedObjects.forEach(iid => this._editedObjects.delete(iid));\r\n this.afterSaved.trigger(this, { saved: savedObjects });\r\n }\r\n\r\n return resultData;\r\n }\r\n\r\n protected _translateInstanceId(instanceId: string): string {\r\n instanceId = instanceId?.toString() || \"\";\r\n if (ObjectUtils.isIdTemporary(instanceId) && !this._objects.get(instanceId)) {\r\n return [...this._objects.values()].find(objInfo => objInfo.actualObject.instanceID === instanceId)?.actualObject.id.toString() ||\r\n instanceId;\r\n }\r\n return instanceId;\r\n }\r\n\r\n /**\r\n * Fires the attributesChanged event and updates the list of objects in edit mode.\r\n * @param obj Changed object.\r\n * @param attributeNames List of changed attributes.\r\n */\r\n protected async _attributesChangedListener(obj: IOWObject, attributeNames: string[], ct: CancellationToken): Promise<void> {\r\n await this._persistObject(obj.instanceID);\r\n const objInfo = this._getObjectInfo(obj.id);\r\n const id: string = obj.id.toString();\r\n\r\n // pokud před odpovědí UpdateInstance došlo ke zrušení změn, tak je potřeba změny zahodit, protože instance objektu s nimi už byla taky zahozena\r\n if (objInfo?.actualObject == null || objInfo.actualObject.instanceID !== obj.instanceID)\r\n return;\r\n\r\n const lowerDsAttributes = this._attributes.map(dsAttr => dsAttr.toLocaleLowerCase());\r\n const filteredAttributeNames = attributeNames.filter(attr => {\r\n const lowerAttr = attr.toLowerCase();\r\n return lowerDsAttributes.some(dsAttr => dsAttr.startsWith(lowerAttr));\r\n });\r\n const promises = filteredAttributeNames.map(attrName => obj.getValue(attrName, ct));\r\n promises.map(promise => this._waitForUpdateMultiTask.push(promise.catch(PromiseUtils.catchAll)));\r\n const attributesMap = new Map<string, any>((await Promise.all(promises)).map((value, index) => [filteredAttributeNames[index], value]));\r\n\r\n // AttributeChanged se vyvolává i po refreshi objektu, kdy objekt není změněný\r\n if (obj.isChanged) {\r\n this._editedObjects.add(objInfo.key);\r\n objInfo.isChanged = obj.isChanged;\r\n } else { // Je třeba prověřit, zda k uložení nedošlo jinde (např. díky enableInEdit)\r\n this._editedObjects.delete(objInfo.key);\r\n }\r\n\r\n this.attributesChanged.trigger(this, {\r\n key: objInfo.key,\r\n instanceId: obj.instanceID,\r\n isChanged: obj.isChanged,\r\n values: attributesMap,\r\n context: obj,\r\n });\r\n\r\n this._waitForUpdateMultiTask.push(this._updateObjectRights(obj, ct).catch(PromiseUtils.catchAll));\r\n\r\n if (obj.isChanged && this._internalRows && this._internalRows.length) { // Atribut je potřeba změnit také v _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) změny (vizuálně) ztrácely v LF\r\n attributesMap.forEach((attrName, value) => this._changeRowVal(id, obj.instanceID, attrName, value));\r\n }\r\n }\r\n\r\n /**\r\n * Changes attribute value in this._internalRows.\r\n * @param id Object id.\r\n * @param instanceID Object instanceID - sometimes the record in _internalRows is stored under it (at least in case of a new record - in MSLOV you can't add records via the \"+\" button, but this is an inherited function from the ancestor where it is possible).\r\n * @param attributeName Attribute name.\r\n * @param value New value.\r\n */\r\n protected _changeRowVal(id: string, instanceID: string, attributeName: string, value: IAttrValue): void {\r\n const row = this._internalRows.find(r => {\r\n return r.ID === id || r.ID === instanceID;\r\n });\r\n if (row) {\r\n row[attributeName] = value;\r\n }\r\n }\r\n\r\n protected async _persistObject(instanceId: string, ct: CancellationToken = CancellationToken.none): Promise<void> {\r\n const objInfo = this._objects.get(instanceId);\r\n const obj = objInfo?.actualObject;\r\n if (!objInfo || !obj || obj.isNew) {\r\n return;\r\n }\r\n this._objects.delete(instanceId);\r\n const key = obj.id.toString();\r\n if (this._objects.has(key)) {\r\n return;\r\n }\r\n this._objects.set(key, {\r\n ...objInfo,\r\n key,\r\n isChanged: obj.isChanged,\r\n permissions: [],\r\n expirationTime: EditableDBDataSource._getCurrentExpirationTime(),\r\n });\r\n this._editedObjects.delete(instanceId);\r\n if (obj.isChanged) {\r\n this._editedObjects.add(key);\r\n }\r\n await this._updateObjectRights(obj, ct);\r\n this.saved.trigger(this, { key: obj.instanceID, newKey: key });\r\n }\r\n\r\n /**\r\n * Zrušení provedených změn\r\n * @param key - ID záznamu, na kterém rušíme změny\r\n * @param forceRefreshCancelledRecord - Znovu načte záznam, na kterém byly zrušeny změny\r\n * @param maintainSelection - Pokud došlo k zahození nového záznamu, zkusí označit záznam na pozici místo něj nebo nad ním.\r\n */\r\n public async cancelChanges(key: string = \"\", forceRefreshCancelledRecord: boolean = false, maintainSelection = false): Promise<void> {\r\n const ids: string[] = [];\r\n\r\n if (!StringUtils.isNullOrEmpty(key)) {\r\n const objInfo = this._getObjectInfo(key);\r\n if (objInfo?.actualObject?.isNew) {\r\n this.deleted.trigger(this, { key, maintainSelection });\r\n this._internalRows = this._internalRows.filter(r => r.ID.toString() != objInfo?.actualObject?.id); // Záznam je potřeba odstranit z _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) záznam stále zobrazoval v LF\r\n forceRefreshCancelledRecord = false;\r\n } else if (objInfo?.actualObject && !objInfo.isChanged && !objInfo.actualObject.isValid) {\r\n this._triggerObjectAttributesChanged(objInfo.actualObject); // nezměněné nevalidní záznamy není potřeba znovu načítat - stačí zpropagovat jejich původní hodnoty\r\n return;\r\n } else {\r\n ids.push(key);\r\n }\r\n\r\n this._cleanObject(key);\r\n } else {\r\n forceRefreshCancelledRecord = false;\r\n\r\n // zrušíme všechny probíhající UpdateInstance, jelikož jsou zbytečné a výsledek bychom stejně zahodili\r\n this._objects.forEach(record => {\r\n if (record.actualObject != null)\r\n record.actualObject.cancelUpdatesInProgress();\r\n });\r\n\r\n this._objects.forEach((objInfo, key) => {\r\n if (!objInfo.isChanged) {\r\n if (objInfo.actualObject && !objInfo.actualObject.isValid) // nezměněné nevalidní záznamy není potřeba znovu načítat - stačí zpropagovat jejich původní hodnoty\r\n this._triggerObjectAttributesChanged(objInfo.actualObject);\r\n return;\r\n }\r\n if (objInfo.actualObject?.isNew) {\r\n this.deleted.trigger(this, { key, maintainSelection });\r\n this._internalRows = this._internalRows.filter(r => r.ID.toString() != objInfo?.actualObject?.id); // Záznam je potřeba odstranit z _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) záznam stále zobrazoval v LF\r\n return;\r\n }\r\n ids.push(key);\r\n });\r\n\r\n this.changesCancelled.trigger(this, null);\r\n\r\n this._editedObjects.clear();\r\n\r\n this._cleanObjects();\r\n }\r\n\r\n if (forceRefreshCancelledRecord) {\r\n const obj = await this.getObject(key, null, true);\r\n this._triggerObjectAttributesChanged(obj);\r\n } else if (ids.length > 0) {\r\n const data = await this._reloadRowsById(ids);\r\n const datamap = new Map<string, any>();\r\n\r\n for (const row of data) {\r\n const datagroup = new Map<string, any[]>();\r\n const okeys = ArrayUtils.getUniqueArray([...Object.keys(row), ...this._attributes]);\r\n let datakey: any = null;\r\n // přiřazení prázdných attributů, aby se nahradili všechny attributy\r\n for (const attr of this._attributes) {\r\n datamap.set(attr, \"\");\r\n }\r\n\r\n for (const key of okeys) {\r\n // grupování hodnot, zjistí se, zda je to hodnota přes vazbu, pokud ano uloží se jako groupa\r\n //#region Grupovaní\r\n const groupKeys = key.split(\".\");\r\n if (groupKeys.length >= 2) {\r\n let a: any[] = [];\r\n if (datagroup.has(groupKeys[0]))\r\n a = datagroup.get(groupKeys[0]);\r\n a.push(row[key]);\r\n\r\n datagroup.set(groupKeys[0], a); // přiřadí novou grupu\r\n }\r\n //#endregion Grupovaní\r\n\r\n if (key === this.dataKey) {\r\n datakey = row[key];\r\n continue;\r\n }\r\n datamap.set(key, row[key]);\r\n }\r\n\r\n // přiřazení group\r\n for (const grp of datagroup) {\r\n datamap.set(grp[0], grp[1]);\r\n }\r\n\r\n if (!datakey)\r\n logger.warn(\"Datakey is not valid\");\r\n\r\n this.attributesChanged.trigger(this, {\r\n key: datakey,\r\n isChanged: false,\r\n values: datamap,\r\n });\r\n\r\n if (this._internalRows) {// Záznam je potřeba upravit na původní hodnoty atributů i v _internalRows, jinak by se při změně rozložení formuláře (kompakt X normální zobrazení) v LF stále zobrazovali upravené hodnoty\r\n this._replaceInternalRow(row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Nahradí záznam v this._internalRows (využívá se při rušení změn hodnot atributů)\r\n * @param newRow Nový záznam, kterým nahrazujeme ten původní.\r\n */\r\n protected _replaceInternalRow(newRow: IRowData): void {\r\n const changedRowIndex = this._internalRows.findIndex(r => {\r\n return r.ID?.toString() == newRow.ID.toString();\r\n });\r\n const temp = [...this._internalRows];\r\n temp[changedRowIndex] = newRow;\r\n this._internalRows = temp;\r\n }\r\n\r\n /**\r\n * Vrátí sloupce podle seznamu ID\r\n */\r\n private _reloadRowsById(ids: string[] = [], cancellationToken: CancellationToken = CancellationToken.none): Promise<readonly IRowData[]> {\r\n if (ids.length > 0) {\r\n let idList = \"ID = -1\";\r\n for (const key of ids) {\r\n idList += ` OR ID='${key}'`; //`\r\n }\r\n const fullCond = StringUtils.combineConditions(ConditionOperator.and, idList, this._condition);\r\n\r\n return getDataReaderClient().getDataRowsWithParams(this.className, this._attributes, fullCond, { params: this._conditionParams, readVersioned: this._readVersioned }, this._fullLengthAttributes, this._getRequestContext(cancellationToken));\r\n } else {\r\n return Promise.resolve([]);\r\n }\r\n }\r\n\r\n /**\r\n * Uvolní instance needitovaných objektů\r\n */\r\n private _cleanObjects(keepEdited: boolean = true, objectDisposePredicate?: (objForDispose: OWObject) => boolean): void {\r\n this._objects.forEach(objInfo => {\r\n if (!objInfo.isChanged && keepEdited)\r\n return;\r\n\r\n if (objectDisposePredicate != null && !objectDisposePredicate(objInfo.actualObject))\r\n return;\r\n\r\n this._cleanObject(objInfo.key);\r\n });\r\n }\r\n\r\n private _cleanObject(key: string): void {\r\n this._editedObjects.delete(key);\r\n const objToClean = this._objects.get(key);\r\n if (!objToClean) {\r\n return;\r\n }\r\n\r\n this._objects.delete(key);\r\n objToClean.actualObject.dispose();\r\n }\r\n\r\n /**\r\n * Oznámení o změně všech načítaných atributů nově načteného objektu\r\n * @param obj\r\n */\r\n protected async _triggerObjectAttributesChanged(obj: OWObject, originalID?: string, ct?: CancellationToken): Promise<void> {\r\n const values = new Map<string, any>();\r\n\r\n const loadAttributeFunc = async (attr: string) => {\r\n try {\r\n values.set(attr, await obj.getValue(attr));\r\n } catch (ex) {\r\n // TODO: chtělo by to možná pro tuhle výjimku udělat speciální typ\r\n if (!(ex.message && /Class [\\d\\w_]+ doesn't contain attribute/ig.test(ex.message) && attr.includes(\"|\")))\r\n throw ex;\r\n }\r\n };\r\n\r\n await Promise.all(this._attributes.map(attribute => loadAttributeFunc(attribute)));\r\n\r\n //Pokud mi jiný uživatel smaže záznam, na který jsem klikl, tak obj má ID = -666 a potřebuju vědět původní ID, abych označil řádek.\r\n const id = obj.id === \"-666\" && originalID != null ? originalID : obj.id;\r\n\r\n //při změně výběru řádku v listFramu docházelo k rušení předchozího dotazu, tak že dotaz nedoběhl a ve values byly nedočtené hodnoty\r\n //a řádek v listframu se následně vykreslil jako prázdný. Problém byl v tom, že se getValues ukončilo, ale potom se ještě provedlo překreslení řádku\r\n ct?.throwIfCancellationRequested();\r\n\r\n this.attributesChanged.trigger(this, {\r\n key: id,\r\n instanceId: obj.instanceID,\r\n isChanged: false,\r\n values: values,\r\n context: obj,\r\n });\r\n }\r\n\r\n protected _getObjectInfo(key: string): IObjectInfo {\r\n return this._objects.get(this._translateInstanceId(key)) || this._objects.get(key?.toString());\r\n }\r\n\r\n public override dispose(): void {\r\n this._cleanObjects(false, this.objectDisposePredicate);\r\n\r\n this.changesCancelled.removeAll();\r\n this.newCreated.removeAll();\r\n this.beforeSave.removeAll();\r\n this.saved.removeAll();\r\n this.afterSaved.removeAll();\r\n this.deleted.removeAll();\r\n this.onObjectInstanceChanged.removeAll();\r\n this.rowRefreshed.removeAll();\r\n this.permissionsChanged.removeAll();\r\n\r\n super.dispose();\r\n }\r\n}\r\n\r\nexport interface IObjectInfo {\r\n key: string;\r\n actualObject: OWObject;\r\n isChanged: boolean;\r\n permissionsUpdate?: Promise<void>;\r\n permissionsUpdateCTS?: CancellationTokenSource;\r\n permissions?: IPermissionData[];\r\n expirationTime: Date;\r\n}\r\n\r\nexport interface INewRow {\r\n row: IRowData;\r\n actualObject: OWObject;\r\n}\r\n\r\nexport interface IActualObjectChangeEventArgs {\r\n /**\r\n * Unikátní klíč objektu, v tomto případě ID\r\n */\r\n key: any;\r\n /**\r\n * Unikátní klíč objektu před vygenerováním ID\r\n */\r\n instanceId?: string;\r\n /**\r\n * Zda změna objektu reprezentuje změnu atributu na novou hodnotu (true) nebo na původní nezměněnou (false)\r\n */\r\n isChanged: boolean;\r\n /**\r\n * Kolekce názvů změněných atributů a jejich nových hodnot\r\n */\r\n values: Map<string, any>;\r\n /**\r\n * Příznak, že objekt byl právě dešifrován\r\n */\r\n isDecrypted?: boolean;\r\n /**\r\n * Objekt, u kterého dochází ke změně atributů\r\n */\r\n context?: IOWObject;\r\n}\r\n\r\nexport interface SaveResultData {\r\n data: OWObject | null;\r\n /** Příznak že zpracování bylo odloženo na pozadí a doběhně někdy v budoucnu */\r\n isInLongTransaction?: boolean;\r\n messages?: IResultMessage[];\r\n errors?: IValidationError[];\r\n}\r\n","import { GlobalContext } from \"Global/Base/GlobalContext\";\r\nimport { OWManager } from \"../OWManager\";\r\nimport { Enum, EnumProxyHandler } from \"./Enums\";\r\n\r\nexport interface IFlags {\r\n fNone: Enum;\r\n fRed: Enum;\r\n fGreen: Enum;\r\n fBlue: Enum;\r\n fBlack: Enum;\r\n fGray: Enum;\r\n fSilver: Enum;\r\n fYellow: Enum;\r\n fBrown: Enum;\r\n fLime: Enum;\r\n fNavy: Enum;\r\n fAqua: Enum;\r\n fFuchsia: Enum;\r\n fPink: Enum;\r\n fDeepPurple: Enum;\r\n fLightBlue: Enum;\r\n fTeal: Enum;\r\n fLightGreen: Enum;\r\n fAmber: Enum;\r\n fOrange: Enum;\r\n fDeepOrange: Enum;\r\n [key: string]: Enum;\r\n}\r\n\r\nexport class Flags {\r\n private static _flags: IFlags | null = null;\r\n\r\n /**\r\n * Reference na promise posledního načítání enumu vlajek nebo null, pokud se ještě nenačítalo.\r\n * @private\r\n */\r\n private static _loadingPromise: Promise<IFlags | null> = null;\r\n\r\n public static get(value: string): Enum | null {\r\n if (!this.flags)\r\n return null;\r\n\r\n return this.flags[value];\r\n }\r\n\r\n /**\r\n * Získá promise pro poslední načítání enumu vlajek. Pokud ještě nebyl žádný požadavek na načtení, zavolá {@link Flags.loadFlags} a vrátí\r\n * jeho promise.\r\n */\r\n public static get loadingPromise(): Promise<IFlags | null> {\r\n if (Flags._loadingPromise) {\r\n return Flags._loadingPromise;\r\n } else {\r\n return Flags.loadFlags();\r\n }\r\n }\r\n\r\n public static get flags(): IFlags | null {\r\n if (self !== top) {\r\n return GlobalContext.getType<typeof Flags>(Flags).flags;\r\n } else\r\n return this._flags;\r\n }\r\n\r\n public static set flags(value: IFlags | null) {\r\n this._flags = value;\r\n }\r\n\r\n public static loadFlags(): Promise<IFlags | null> {\r\n Flags._loadingPromise = new Promise<IFlags>(resolve => {\r\n if (typeof document !== \"undefined\") {\r\n if (!Flags.flags && self === top) {\r\n OWManager.getEnum(\"Flags\")\r\n .then((flagsEnum) => {\r\n Flags.flags = new Proxy(flagsEnum, EnumProxyHandler) as any as IFlags;\r\n resolve(Flags.flags);\r\n });\r\n } else {\r\n resolve(null);\r\n }\r\n } else {\r\n resolve(null);\r\n }\r\n });\r\n return Flags._loadingPromise;\r\n }\r\n}\r\n\r\nGlobalContext.registerType(Flags);\r\n","/**\r\n * @includeToDoc\r\n */\r\nexport interface IValidationLocalizer {\r\n getLocalization(code: string): string;\r\n}\r\n\r\nexport enum ValidateErrors {\r\n valid = 0,\r\n badInput = 1,\r\n customError = 2,\r\n patternMismatch = 4,\r\n rangeOverflow = 8,\r\n rangeUnderflow = 16,\r\n stepMismatch = 32,\r\n tooLong = 64,\r\n typeMismatch = 128,\r\n valueMissing = 256,\r\n}\r\n\r\nexport enum ValidatingDataType {\r\n float,\r\n integer,\r\n date,\r\n time,\r\n dateTime,\r\n string,\r\n}\r\n","import { IValidationLocalizer, ValidateErrors, ValidatingDataType } from \"./ValidityInterfaces\";\r\n/**\r\n * Pomocná třída pro zpracovávání validačních chyb a jejich lokalizaci\r\n * @includeToDoc\r\n */\r\nexport class ValidityStateHelper {\r\n /**\r\n * Zpracuje validační chyby a vytvoří lokalizované validační hlášky a objekt stavu validity pro html input komponenty https://developer.mozilla.org/en-US/docs/Web/API/ValidityState\r\n * @param validateErrors nalezené validační chyby\r\n * @param dataType datový typ, pro který se provádí validace\r\n */\r\n public static createValidateState(validateErrors: ValidateErrors, dataType: ValidatingDataType): { validationMessage: string; validity: ValidityState } {\r\n const validity = { badInput: false, customError: false, patternMismatch: false, rangeOverflow: false, rangeUnderflow: false, stepMismatch: false, tooLong: false, typeMismatch: false, valueMissing: false, valid: false };\r\n\r\n if (!validateErrors) {\r\n validity.valid = true;\r\n return { validationMessage: \"\", validity: validity as ValidityState };\r\n } else {\r\n let recognizedError = false;\r\n if ((validateErrors & ValidateErrors.badInput) > 0)\r\n validity.badInput = recognizedError = true;\r\n if ((validateErrors & ValidateErrors.rangeOverflow) > 0)\r\n validity.rangeOverflow = recognizedError = true;\r\n if ((validateErrors & ValidateErrors.rangeUnderflow) > 0)\r\n validity.rangeUnderflow = recognizedError = true;\r\n\r\n if (!recognizedError)\r\n validity.badInput = true;\r\n\r\n return { validationMessage: ValidityStateHelper.localizeValidateError(validateErrors, dataType), validity: validity as ValidityState };\r\n }\r\n }\r\n\r\n /**\r\n * Zlokalizuje validační chyby\r\n * @param validateErrors nalezené validační chyby\r\n * @param dataType datový typ, pro který se provádí validace\r\n */\r\n public static localizeValidateError(validateErrors: ValidateErrors, dataType: ValidatingDataType): string {\r\n switch (validateErrors) {\r\n case ValidateErrors.valid:\r\n return \"\";\r\n case ValidateErrors.badInput:\r\n switch (dataType) {\r\n case ValidatingDataType.float:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-100\");\r\n case ValidatingDataType.integer:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-101\");\r\n case ValidatingDataType.date:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-102\");\r\n case ValidatingDataType.time:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-103\");\r\n case ValidatingDataType.dateTime:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-104\");\r\n }\r\n break;\r\n case ValidateErrors.rangeOverflow | ValidateErrors.rangeUnderflow:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-202\");\r\n case ValidateErrors.rangeUnderflow:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-200\");\r\n case ValidateErrors.rangeOverflow:\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-201\");\r\n }\r\n return ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-0\");\r\n }\r\n\r\n /**\r\n * Použitý lokalizátor validačních hlášek, je možné zaregistrovat vlastní\r\n */\r\n public static validityLocalizer: IValidationLocalizer;\r\n}\r\n","import { IDisposable } from \"../../Global/Base/IDisposable\";\r\nimport { NumberUtils } from \"../../Global/Base/Utils/NumberUtils\";\r\nimport { EventHelper } from \"./Helpers/EventHelper\";\r\n/**\r\n * Pokud je cancelbyclick nastaveno na true, tak se popup zavre pri kliknuti mimo jeho obsah, toto je realizovano tak, ze na body je event click, ktery zavira popup,\r\n * pokud je klikano do popupu, tak ten si odchytava click a dale ho nepropaguje\r\n * Toto je potreba udelat i na prvku, ktery popup otvira, cili na udalosti onclick prvku, ktery otevira popup se musi zavolat stopropagation !!!\r\n */\r\nexport class PopupMenu implements IDisposable {\r\n //#region Fields\r\n public element: HTMLElement = document.createElement(\"div\");\r\n public visible: boolean = false;\r\n\r\n private _bodyClickListener: EventListener;\r\n private _popupClickListener: EventListener;\r\n\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n /**\r\n * Je nastaveno v Construktoru\r\n *\r\n * Kdyz je cancelbyclick nastaveno na true, tak se popup zavre pri kliknuti mimo jeho obsah, toto je realizovano tak, ze na body je event click, ktery zavira popup,\r\n * pokud je klikano do popupu, tak ten si odchytava click a dale ho nepropaguje\r\n * Toto je potreba udelat i na prvku, ktery popup otvira, cili na udalosti onclick prvku, ktery otevira popup nastavit callingEvent.stopPropagation()!!!\r\n *\r\n * @param innerElement element, ktery se bude v popup menu zobrazovat\r\n * @param cancelByClick pokud je true, tak se okno automaticky zavre, pokud se klikne mimo okno, defaultne true\r\n * @param width sirka komponenty jako string (aby se daly zadat i %)\r\n * @param height vyska komponenty jako string (aby se daly zadat i %)\r\n * @param top odsazeni od vrchniho okraje stranky jako string (aby se daly zadat i %)\r\n * @param left odsazeni od leveho okraje stranky jako string (aby se daly zadat i %)\r\n * @param bottom odsazeni od dolniho okraje stranky\r\n * @param right odsazeni od praveho okraje stranky\r\n */\r\n constructor(innerElement?: HTMLElement, private cancelByClick: boolean = true, width: string = \"50%\", height: string = \"50%\", top: string = \"25%\", left: string = \"25%\", expandToContent: boolean = true) {\r\n this._initialize(innerElement, expandToContent);\r\n\r\n this._setSize(width, height);\r\n this.setIndent(top, left);\r\n this._setListeners();\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n /**\r\n * Inicializace komponenty\r\n * @param innerElement element, ktery se bude v popup menu zobrazovat\r\n */\r\n private _initialize(innerElement?: HTMLElement, expandToContent: boolean = true): void {\r\n if (innerElement) {\r\n innerElement.style.width = \"100%\";\r\n innerElement.style.height = \"100%\";\r\n this.element.appendChild(innerElement);\r\n }\r\n this.element.classList.add(\"PopupMenu\");\r\n if (!expandToContent)\r\n this.element.classList.add(\"sizeLimited\");\r\n\r\n document.body.appendChild(this.element);\r\n }\r\n\r\n /**\r\n * Nastaveni listeneru\r\n */\r\n private _setListeners(): void {\r\n if (this.cancelByClick) {\r\n // všechny popupy zavíráme pokud došlo ke kliknutí někam do okna (i pokud došlo k zastavení této události - událost \"clickCancelled\")\r\n window.addEventListener(\"click\", this._bodyClickListener = (_e: MouseEvent) => {\r\n if (this.visible)\r\n this.setVisibility(false);\r\n });\r\n\r\n window.addEventListener(\"clickCancelled\", this._bodyClickListener);\r\n\r\n this.element.addEventListener(\"click\", this._popupClickListener = (e: MouseEvent) => {\r\n //#25560 řeší bug firefoxu https://bugzilla.mozilla.org/show_bug.cgi?id=136407\r\n //click odchytil popup, proto víme, že select, který ho vyvoval byl umístěn na něm a v takovém případě nebude volat clickCancelled, který by se odchytil na window a zavřel popup\r\n if (!e.clientX && !e.clientY && e.target && e.target instanceof HTMLSelectElement) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n EventHelper.stopPropagation(e);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Nastaveni odsazeni\r\n * @param top odsazeni od vrchinoho okraje stranky\r\n * @param left odsazeni od leveho okraje stranky\r\n * @param bottom odsazeni od dolniho okraje stranky\r\n * @param right odsazeni od praveho okraje stranky\r\n */\r\n public setIndent(top: string = null, left: string = null, bottom: string = null, right: string = null): void {\r\n if (top)\r\n this.element.style.top = top;\r\n\r\n if (left)\r\n this.element.style.left = left;\r\n\r\n if (bottom)\r\n this.element.style.bottom = bottom;\r\n\r\n if (right)\r\n this.element.style.right = right;\r\n }\r\n\r\n /**\r\n * Nastaveni rozmeru\r\n * @param width sirka popup menu\r\n * @param height vyska popup menu\r\n */\r\n private _setSize(width: string | number, height: string | number): void {\r\n this.element.style.width = typeof width === \"string\" ? width : NumberUtils.transformLengthToCss(width ? width : null);\r\n this.element.style.height = typeof height === \"string\" ? height : NumberUtils.transformLengthToCss(height ? height : null);\r\n }\r\n\r\n /**\r\n * Nastaví minimální rozměry pro popup (bere v potaz už nastavené maximální rozměry a nepřekročí je)\r\n * @param width maximalni šířka popup menu\r\n * @param height maximalni výška popup menu\r\n */\r\n private _setMinSize(width: string | number, height: string | number): void {\r\n if (typeof width === \"string\") {\r\n this.element.style.minWidth = width;\r\n } else {\r\n // vypočítané max šířka\r\n const maxWidth = parseInt(window.getComputedStyle(this.element, null).getPropertyValue(\"max-width\"));\r\n\r\n const finalWidth = maxWidth && maxWidth < width ? maxWidth : width;\r\n\r\n this.element.style.minWidth = NumberUtils.transformLengthToCss(finalWidth ? finalWidth : null);\r\n }\r\n\r\n if (typeof height === \"string\") {\r\n this.element.style.minHeight = height;\r\n } else {\r\n const maxHeight = parseInt(window.getComputedStyle(this.element, null).getPropertyValue(\"max-height\"));\r\n\r\n const finalHeight = maxHeight && maxHeight < height ? maxHeight : height;\r\n\r\n this.element.style.minHeight = NumberUtils.transformLengthToCss(finalHeight ? finalHeight : null);\r\n }\r\n }\r\n\r\n /**\r\n * Nastaveni viditelnosti komponenty\r\n * @param visible boolean\r\n */\r\n public setVisibility(visible: boolean): void {\r\n this.visible = visible;\r\n this.element.style.display = visible ? \"\" : \"none\";\r\n }\r\n\r\n /**\r\n * Kontrola, zda se menu vleze pod zadane souradnice\r\n */\r\n public checkIfFitsVerticaly(): boolean {\r\n const windowH = window.innerHeight;\r\n const offsetTop = this.element.getBoundingClientRect().top;\r\n if (windowH - (this.element.clientHeight + offsetTop) > 0)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n public arangePopupToEditableControl(popUpElemenet: HTMLElement, targetControlElement: HTMLElement, hasFocus: boolean, gridRect: ClientRect = null, width: number = null, height: number = null): void {\r\n if (popUpElemenet != undefined) {\r\n const rect = targetControlElement.getBoundingClientRect();\r\n\r\n if (gridRect && hasFocus) { //jsem na datagridu a ma focus\r\n const upper = rect.bottom - gridRect.top < -1;\r\n const downer = gridRect.bottom - rect.top < -1;\r\n\r\n if (this.visible) { //je viditelny a komponenta leze mimo viditelnou cast datagridu\r\n if (upper || downer) { //nahoru nebo dolu\r\n this.setVisibility(false);\r\n return; //pokud ho skryju tak koncim vykonani funcke - pomerne dulezita vec!!!\r\n }\r\n } else { //je neviditelny a komponenta leze do viditelne casti datagridu a ma focus\r\n if (!upper && !downer)\r\n this.setVisibility(true);\r\n }\r\n }\r\n\r\n // pokud je natvrdo zadaná výška nebo šířka, tak se nastaví i elementu\r\n if (width || height) {\r\n this._setSize(width, height);\r\n } else {\r\n // pokud rozměry vypočítáváme z z cílového elementu,\r\n // tak se podle něj nastaví pouze minimální rozměry a zbytek se přizpůsobí podle obsahu až do případného maximálního rozměru\r\n width = targetControlElement.offsetWidth;\r\n height = targetControlElement.offsetHeight;\r\n this._setMinSize(width, height);\r\n }\r\n\r\n let errorTop: string, errorLeft: string;\r\n if (window.innerHeight - rect.bottom < height) { //vyska okna - spodni okraj editovatelneho pole je mensi nez velikost validacni hlasky\r\n errorTop = rect.top - height + \"px\";\r\n } else {\r\n errorTop = rect.bottom + \"px\";\r\n }\r\n\r\n if (window.innerWidth - rect.left < width) { //sirka okna\r\n errorLeft = rect.right - width + \"px\";\r\n } else {\r\n errorLeft = rect.left + \"px\";\r\n }\r\n\r\n this.setIndent(errorTop, errorLeft);\r\n }\r\n }\r\n\r\n /**\r\n * Zavreni PopupMenu\r\n */\r\n public close(): void {\r\n this.setVisibility(false);\r\n this.dispose();\r\n }\r\n\r\n /**\r\n * Destruktor\r\n */\r\n public dispose(): void {\r\n this.element.parentElement.removeChild(this.element);\r\n\r\n if (this.cancelByClick)\r\n document.body.removeEventListener(\"click\", this._bodyClickListener);\r\n\r\n this.element.removeEventListener(\"click\", this._popupClickListener);\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { ITextBuilder } from \"../../Global/Base/Builders/ITextBuilder\";\r\nimport { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { Event as GlobalEvent } from \"../../Global/Base/Events\";\r\nimport { ValidityStateHelper } from \"../UI.ElementarControls/Helpers/ValidityStateHelper\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"./Control\";\r\nimport { IBaseEditableControlRights, IValidatable, IValidationResult } from \"./ControlInterfaces\";\r\nimport { IBooleanDetailValueEvent, IBooleanDetailValueEventData, IWidgetResizableEventTarget } from \"./IEvent\";\r\nimport { PopupMenu } from \"./PopupMenu\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.editableControl);\r\n\r\n/**\r\n * Interface definujici události pro element tsc-control\r\n */\r\nexport interface EditableControl extends IWidgetResizableEventTarget {\r\n addEventListener(type: \"change\", listener: (ev: IBooleanDetailValueEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"isediting\", listener: (ev: IBooleanDetailValueEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\r\n}\r\n\r\nexport class EditableControl extends Control implements IValidatable, IBaseEditableControlRights {\r\n public validityChanged = new GlobalEvent<IValidatable, IValidationResult>();\r\n public errorPopup: PopupMenu;\r\n /**\r\n * Obsahuje hodnotu zda uz byla nactena nebo zmenena hodnota nebo ne (kvuli zmene viditelnosti)\r\n */\r\n public isValueLoaded: boolean = false;\r\n /**\r\n * Kontrola validnosti pole na gui\r\n */\r\n public isGuiValid: boolean = true;\r\n /**\r\n * Zakazuje zobrazení tooltipu s validační chybou\r\n */\r\n public errorTooltipDisabled = false;\r\n\r\n public currentValidity: IValidationResult = null;\r\n\r\n public isInRequiredInvalidState: boolean = false;\r\n\r\n //protected shadowRoot: HTMLBodyElement;\r\n protected _innerElement: HTMLElement;\r\n protected _errorElement: HTMLElement;\r\n protected _eventGroup: string;\r\n protected _defaultValue: string = null;\r\n protected _multiline: boolean;\r\n\r\n private __focused: boolean;\r\n private _mouseOnElement: boolean;\r\n private _isValid: boolean;\r\n //private postponedRequired: boolean;\r\n //private recommended: boolean;\r\n //private required: boolean;\r\n //private requiredType: RequiredType = RequiredType.None;\r\n\r\n //#region Properties\r\n // bohuzel getter i setter propety musí mít stejnou viditelnost :/\r\n public get isFocused(): boolean {\r\n return this.__focused;\r\n }\r\n\r\n private set _focused(val: boolean) {\r\n this.classList.toggle(\"focused\", val);\r\n this.__focused = val;\r\n }\r\n\r\n public get multiline(): boolean {\r\n return this._multiline;\r\n }\r\n\r\n public set multiline(value: boolean) {\r\n this._multiline = value;\r\n }\r\n\r\n public get value(): any {\r\n return \"\";\r\n }\r\n\r\n public set value(_v: any) {\r\n logger.error(\"Not implemented\");\r\n }\r\n\r\n public get displayedValue(): ITextBuilder {\r\n if (this._innerElement instanceof HTMLInputElement)\r\n return this._innerElement.value;\r\n\r\n return this.value;\r\n }\r\n\r\n public set displayedValue(v: ITextBuilder) {\r\n if (this._innerElement instanceof HTMLInputElement)\r\n this._innerElement.value = v ? v.toString() : \"\";\r\n\r\n this.value = v;\r\n }\r\n\r\n public set isEditing(value: boolean) {\r\n if (value)\r\n this.setAttribute(\"isediting\", value.toString());\r\n else\r\n this.removeAttribute(\"isediting\");\r\n }\r\n\r\n public get isEditing(): boolean {\r\n const r = this.getAttribute(\"isediting\") as string;\r\n\r\n return DataConverter.toBoolean(r, false);\r\n }\r\n\r\n public get isValid(): boolean {\r\n return this._isValid;\r\n }\r\n\r\n protected _setIsValid(val: boolean): void {\r\n this.classList.toggle(\"invalid\", !val);\r\n this._isValid = val;\r\n }\r\n\r\n public override set enabled(value: boolean) {\r\n if (!value)\r\n this.setAttribute(\"enabled\", value.toString());\r\n else\r\n this.removeAttribute(\"enabled\");\r\n }\r\n\r\n public override get enabled(): boolean {\r\n const r = this.getAttribute(\"enabled\") as string;\r\n\r\n return DataConverter.toBoolean(r, true);\r\n }\r\n\r\n public override set visible(value: boolean) {\r\n this._visible = value;\r\n const dispvalue = value ? \"\" : \"none\";\r\n\r\n // Nechceme skrývat i buňku v seznamu, ujedou pak sloupce (11380)\r\n //if (this.parentElement)\r\n // this.parentElement.style.display = dispvalue;\r\n\r\n this.style.display = dispvalue;\r\n this.callEvent(\"visibility\", { value: value } as IBooleanDetailValueEventData);\r\n }\r\n\r\n public override get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n //#region PostponedRequired\r\n public set postponedRequired(value: boolean) {\r\n if (value)\r\n this.setAttribute(\"PostponedRequired\", value.toString());\r\n else\r\n this.removeAttribute(\"PostponedRequired\");\r\n }\r\n\r\n public get postponedRequired(): boolean {\r\n //return this.postponedRequired;\r\n const r = this.getAttribute(\"PostponedRequired\") as string;\r\n\r\n return DataConverter.toBoolean(r, false);\r\n }\r\n //#endregion PostponedRequired\r\n\r\n //#region Recommended\r\n public set recommended(value: boolean) {\r\n if (value)\r\n this.setAttribute(\"recommended\", value.toString());\r\n else\r\n this.removeAttribute(\"recommended\");\r\n }\r\n\r\n public get recommended(): boolean {\r\n //return this.recommended;\r\n const r = this.getAttribute(\"recommended\") as string;\r\n\r\n return DataConverter.toBoolean(r, false);\r\n }\r\n //#endregion Recommended\r\n\r\n //#region Required\r\n public set required(value: boolean) {\r\n if (value)\r\n this.setAttribute(\"required\", value.toString());\r\n else\r\n this.removeAttribute(\"required\");\r\n //this.setAttribute(\"required\", value.toString());\r\n\r\n //this.required = value;\r\n }\r\n\r\n public get required(): boolean {\r\n //return this.required;\r\n const r = this.getAttribute(\"required\") as string;\r\n\r\n return DataConverter.toBoolean(r, false);\r\n }\r\n\r\n public get defaultValue(): string {\r\n return this._defaultValue;\r\n }\r\n\r\n public set defaultValue(v: string) {\r\n this._defaultValue = v;\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"id\", \"required\", \"recommended\", \"setposponedReq\", \"enabled\", \"isediting\"].concat(Control.observedAttributes);\r\n }\r\n public attrName: string;\r\n //#endregion Required\r\n\r\n //#endregion\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"EditableControl\");\r\n this.tabIndex = -1;\r\n //this.shadowRoot = (this as any).createShadowRoot();\r\n this._eventGroup = `editableControl_${this._innerId}_events`; //`\r\n this.isGuiValid = true;\r\n this._isValid = true;\r\n this._visible = true;\r\n this._focused = false;\r\n this.errorTooltipDisabled = false;\r\n this._errorElement = document.createElement(\"div\");\r\n this._errorElement.classList.add(\"ErrorElement\", \"errDiv\");\r\n this._errorElement.style.display = \"none\";\r\n }\r\n\r\n protected _focusInHandler(_e: Event): void {\r\n this._focused = true;\r\n }\r\n\r\n protected _focusOutHandler(): void {\r\n this._focused = false;\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this._innerElement) {\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"change\", (e) => {\r\n e.stopPropagation();\r\n this._afterChange();\r\n });\r\n\r\n Control.registerEventListener(this._eventGroup, this as HTMLElement, \"focusin\", this._focusInHandler);\r\n\r\n Control.registerEventListener(this._eventGroup, this as HTMLElement, \"focusout\", this._focusOutHandler);\r\n\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"mouseenter\", (_e: MouseEvent) => {\r\n this._mouseOnElement = true;\r\n this.showErrorPopup();\r\n });\r\n\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"mouseleave\", (_e: MouseEvent) => {\r\n this._mouseOnElement = false;\r\n if (this.errorPopup)\r\n this.errorPopup.setVisibility(false);\r\n });\r\n }\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n Control.unregisterEventListener(this._eventGroup);\r\n if (this.errorPopup) {\r\n this.errorPopup.close();\r\n this.errorPopup = null;\r\n }\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n let nVal: boolean;\r\n let oVal: boolean;\r\n\r\n switch (attrName) {\r\n case \"required\":\r\n nVal = DataConverter.toBoolean(newVal, false);\r\n this._setRequired(nVal);\r\n break;\r\n case \"recommended\":\r\n nVal = DataConverter.toBoolean(newVal, false);\r\n this._setRecommended(nVal);\r\n break;\r\n case \"setposponedReq\":\r\n nVal = DataConverter.toBoolean(newVal, false);\r\n this._setPosponedReq(nVal);\r\n break;\r\n case \"enabled\":\r\n nVal = DataConverter.toBoolean(newVal, true);\r\n oVal = DataConverter.toBoolean(oldVal, null);\r\n this._setEnabled(oVal, nVal);\r\n break;\r\n case \"isediting\":\r\n nVal = DataConverter.toBoolean(newVal, false);\r\n oVal = DataConverter.toBoolean(oldVal, null);\r\n this._setIsEditing(oVal, nVal);\r\n break;\r\n }\r\n }\r\n\r\n private _setIsEditing(oldVal: boolean, value: boolean): void {\r\n this._evaluateActualState();\r\n if (oldVal !== value)\r\n this.callEvent(\"isediting\", { value: value } as IBooleanDetailValueEventData);\r\n }\r\n\r\n private _setRequired(_value: boolean): void {\r\n // Prázdná metoda\r\n }\r\n\r\n private _setRecommended(_value: boolean): void {\r\n // Prázdná metoda\r\n }\r\n\r\n private _setPosponedReq(_value: boolean): void {\r\n // Prázdná metoda\r\n }\r\n\r\n private _setEnabled(oldVal: boolean, value: boolean): void {\r\n let actualizeVisualState = false;\r\n if (this._visible && this.isEditing && ((oldVal == undefined || !oldVal) && value))\r\n actualizeVisualState = true;\r\n\r\n if (oldVal !== value) {\r\n this.callEvent(\"enabled\", { value: value } as IBooleanDetailValueEventData);\r\n\r\n actualizeVisualState = true;\r\n }\r\n\r\n if (actualizeVisualState)\r\n this._evaluateActualState();\r\n }\r\n\r\n private _evaluateActualState(): void {\r\n const enable = this.enabled;\r\n\r\n this._setEnabledInput(enable);\r\n this.classList.toggle(\"Enabled\", enable);\r\n this.classList.toggle(\"Disabled\", !enable);\r\n\r\n this._evaluateActualStateInner();\r\n }\r\n\r\n /**\r\n * Propagace nastaveni na vnitrni EdiotableControls - napr. slozene editacni prvky (DateTime)\r\n */\r\n private _evaluateActualStateInner(): void {\r\n const innerEditableControls = Array.from(this.querySelectorAll(\".EditableControl\")) as EditableControl[];\r\n innerEditableControls.forEach((editableControl) => {\r\n editableControl.enabled = this.enabled;\r\n editableControl.isEditing = this.isEditing;\r\n if (typeof (editableControl[\"_evaluateActualState\"]) === \"function\")\r\n editableControl._evaluateActualState();\r\n });\r\n }\r\n\r\n protected _setEnabledInput(value: boolean): void {\r\n if (this._innerElement) {\r\n if (this._innerElement && (\"readOnly\" in this._innerElement))\r\n (this._innerElement as any)[\"readOnly\"] = !value;\r\n else if (this._innerElement && (\"disabled\" in this._innerElement))\r\n (this._innerElement as any)[\"disabled\"] = !value;\r\n } else { // je potreba pokud neni jen jeden input v InnerElement\r\n const inputElements = Array.from(this.querySelectorAll(\"input\")) as HTMLElement[];\r\n inputElements.forEach((input) => {\r\n if (input && (\"readOnly\" in input))\r\n (input as any)[\"readOnly\"] = !value;\r\n else if (input && (\"disabled\" in input))\r\n (input as any)[\"disabled\"] = !value;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Metoda, která se volá po změně hodnoty v editovatelném prvku\r\n */\r\n protected _afterChange(): void {\r\n this.validate();\r\n }\r\n\r\n public validate(_forced: boolean = false): boolean {\r\n this.setValid();\r\n return this.isValid;\r\n }\r\n\r\n //Pokud byla kompnenta ve stavu Invalid tak ji vradi do stavu Valid\r\n public setValid(): void {\r\n this._setIsValid(true);\r\n\r\n if (this.errorPopup)\r\n this.errorPopup.setVisibility(false);\r\n\r\n this.validityChanged.trigger(this, { valid: true });\r\n }\r\n\r\n //Pokud zadam nevalidni hodnotu tak prepne komponentu do stavu Invalid\r\n public setInvalid(locKey: string, message: string = null): void {\r\n this._setIsValid(false);\r\n\r\n // OW.Remoting.Localization.addLocTxtData(this.ErrorElement, locKey, Localization.TEXT_CONTENT, message);\r\n if (locKey)\r\n this._errorElement.textContent = ValidityStateHelper.validityLocalizer.getLocalization(locKey);\r\n else if (message)\r\n this._errorElement.textContent = message;\r\n else\r\n this._errorElement.textContent = ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-0\");\r\n\r\n this.showErrorPopup();\r\n\r\n this.validityChanged.trigger(this, { valid: false, invalidValue: this.displayedValue, invalidLocKey: locKey, invalidMessage: message });\r\n }\r\n\r\n /**\r\n * Vytvoreni pickeru na vybirani hodnoty (pouziva napr. DateEdit pro ikonku kalendare)\r\n */\r\n protected _createValuePicker(): HTMLElement {\r\n return createElement({ type: \"button\", classes: \"valuepicker\" }) as HTMLInputElement;\r\n }\r\n\r\n /** Nastavi focus na input */\r\n public override focus(options?: FocusOptions): void {\r\n if (this._innerElement && (\"focus\" in this._innerElement)) {\r\n this._innerElement.focus(options);\r\n }\r\n //this.IsInRequiredInvalidState = false;\r\n }\r\n\r\n /**\r\n * Zobrazeni elementu s chybou nad/pod dle dostupneho prostoru. Pokud neni dostatek prostoru nad ani pod, tak se zobrazi dole.\r\n * @param popUpMenu - dropDown menu, ktere se bude vykreslovat\r\n * @param popUpElemenet - element do ktereho se vykresluje obsah pupupOkna\r\n * @param width - preddefinovana defaultni sirka. Pouziva se u LOV, protoze grid ma pred doctenim nulovou vysku a drop down menu se zobrazovalo jen jako tecka\r\n * @param height - preddefinovana defaultni vyska. Pouziva se u LOV, protoze grid ma pred doctenim nulovou vysku a drop down menu se zobrazovalo jen jako tecka\r\n */\r\n public dropDownElementPosition(popUpMenu: PopupMenu, popUpElemenet: HTMLElement, gridRect: ClientRect = null, width: number = null, height: number = null): void {\r\n if (popUpElemenet != undefined && popUpMenu)\r\n popUpMenu.arangePopupToEditableControl(popUpElemenet, this as HTMLElement, this.isFocused, gridRect, width, height);\r\n }\r\n\r\n public showErrorPopup(): void {\r\n // nemá význam zobrazovat tooltip s chybou pokud je komponenta validní nebo má tooltipy zakázané nebo nemá nad sebou myš\r\n if (this.isValid || this.errorTooltipDisabled || !this._mouseOnElement)\r\n return;\r\n\r\n if (!this.errorPopup) {\r\n this.errorPopup = new PopupMenu(this._errorElement, false, null, null, null, null, false);\r\n }\r\n\r\n this.dropDownElementPosition(this.errorPopup, this._errorElement);\r\n this._errorElement.style.display = \"block\";\r\n this.errorPopup.setVisibility(true);\r\n }\r\n\r\n /**\r\n * Vrátí aktuální pozici kurzoru v zadaném elementu\r\n * @param el Element, ve kterém se vyhledavá pozice kurzoru\r\n */\r\n public static getInputSelection(el: HTMLInputElement): { start: number; end: number } {\r\n let start = 0;\r\n let end = 0;\r\n\r\n if (typeof el.selectionStart === \"number\" && typeof el.selectionEnd === \"number\") {\r\n start = el.selectionStart;\r\n end = el.selectionEnd;\r\n }\r\n\r\n return {\r\n start: start,\r\n end: end,\r\n };\r\n }\r\n\r\n /**\r\n * Nastavi pozici kurzoru na dane misto\r\n * @link http://stackoverflow.com/questions/1865563/set-cursor-at-a-length-of-14-onfocus-of-a-textbox/1867393#1867393\r\n */\r\n public static setCaret(node: HTMLInputElement, pos: number): boolean {\r\n if (node.setSelectionRange) {\r\n node.setSelectionRange(pos, pos);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-editablecontrol\", EditableControl);\r\n","import { IconCode } from \"@multiweb/types/contracts/iconCode\";\r\nimport { IDisposable } from \"Global/Base/IDisposable\";\r\nimport { BEMClassNameCreator, setupBem } from \"Global/Dom/bem\";\r\nimport { EventsController } from \"Global/Dom/EventsController\";\r\nimport { createElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\n\r\nexport class PopupMenu2 implements IDisposable {\r\n private _element: HTMLElement;\r\n private _options: PopupMenuOptions;\r\n private _visible: boolean = false;\r\n private _lastOpenedTarget: EventTarget = null;\r\n private _skipNextOpen: boolean = false;\r\n private _eventsController: EventsController = new EventsController();\r\n\r\n private _TOP_BAR_HEIGHT: number = 16;\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n private static _elementDefaultOptions: PopupMenuOptionsElement = {\r\n content: null,\r\n height: \"content\",\r\n width: \"auto\",\r\n showPosition: \"auto\",\r\n target: null,\r\n showAfterCreate: false,\r\n closeButton: false,\r\n };\r\n\r\n constructor(options: PopupMenuOptions) {\r\n const bemClass = setupBem(\"PopupMenu\");\r\n this._element = createElement({ classes: [bemClass(), \"popup-menu\"] });\r\n this._options = options;\r\n if (options.closeButton)\r\n this._createCloseButton(bemClass);\r\n\r\n this._element.appendChild(this._options.content);\r\n document.body.appendChild(this._element);\r\n\r\n const clickListener = (e: MouseEvent | CustomEvent) => {\r\n if (!this._visible) return;\r\n if (e.target == this._lastOpenedTarget) return;\r\n\r\n const x = (e instanceof MouseEvent) ? e.clientX : e.detail.x;\r\n const y = (e instanceof MouseEvent) ? e.clientY : e.detail.y;\r\n\r\n if (!(this._element.offsetTop <= y && (this._element.offsetTop + this._element.offsetHeight) >= y &&\r\n this._element.offsetLeft <= x && (this._element.offsetLeft + this._element.offsetWidth) >= x)) {\r\n this.close();\r\n }\r\n };\r\n this._eventsController.addListener(window, \"click\", clickListener);\r\n this._eventsController.addListener(window, \"clickCancelled\", clickListener);\r\n this._eventsController.addListener(window, \"keydown\", (e: KeyboardEvent) => {\r\n if (e.keyCode == 27) { //Escape\r\n this.close();\r\n e.stopPropagation();\r\n }\r\n });\r\n }\r\n\r\n public show(e?: Event): void {\r\n if (this._skipNextOpen) {\r\n this._skipNextOpen = false;\r\n return;\r\n }\r\n if (e) {\r\n //e.stopPropagation();\r\n //EventHelper.stopPropagation(e);\r\n this._lastOpenedTarget = e.target;\r\n }\r\n\r\n this._setStyle(\"display\", \"block\");\r\n this._visible = true;\r\n\r\n if (this._options.target instanceof HTMLElement) {\r\n const o = { ...PopupMenu2._elementDefaultOptions, ...this._options } as PopupMenuOptionsElement;\r\n const targetBoundRect = o.target.getBoundingClientRect();\r\n const elementTop = targetBoundRect.top;\r\n const elementLeft = targetBoundRect.left;\r\n const elementHeight = targetBoundRect.height;\r\n const elementWidth = targetBoundRect.width;\r\n const elementRight = elementLeft + elementWidth;\r\n\r\n if (o.width == \"auto\") this._setStyle(\"width\", o.target.offsetWidth);\r\n else if (typeof o.width === \"number\") this._setStyle(\"width\", o.width);\r\n\r\n if (typeof o.height === \"number\") this._setStyle(\"height\", o.height);\r\n\r\n if (o.showPosition == \"auto\")\r\n o.showPosition = this._fitsVertically(targetBoundRect, o.showPosition) ? \"after\" : \"before\";\r\n\r\n if (this._fitsHorizontally(targetBoundRect)) // otevření doprava\r\n this._setStyle(\"left\", elementLeft);\r\n else // otevření doleva\r\n this._setStyle(\"left\", Math.min(document.body.clientWidth, elementRight) - this._element.offsetWidth);\r\n\r\n let top;\r\n if (o.showPosition == \"after\") top = elementTop + elementHeight;\r\n else if (o.showPosition == \"overlay\")\r\n top = this._fitsVertically(targetBoundRect, o.showPosition) ? elementTop : elementTop - this._element.offsetHeight + elementHeight;\r\n else top = elementTop - this._element.offsetHeight;\r\n\r\n if (top < 0) top = 0;\r\n\r\n this._setStyle(\"top\", top);\r\n\r\n this._element.style[\"maxWidth\"] = document.body.clientWidth - this._element.offsetLeft + \"px\";\r\n this._element.style[\"maxHeight\"] = document.body.clientHeight - this._element.offsetTop + \"px\";\r\n\r\n const topBarHeight = this._options.closeButton ? this._TOP_BAR_HEIGHT : 0;\r\n this._options.content.style[\"maxWidth\"] = document.body.clientWidth - this._element.offsetLeft + \"px\";\r\n this._options.content.style[\"maxHeight\"] = document.body.clientHeight - this._element.offsetTop - topBarHeight + \"px\";\r\n }\r\n }\r\n\r\n public close(): void {\r\n this._setStyle(\"display\", \"none\");\r\n this._visible = false;\r\n if (this._lastOpenedTarget && this._lastOpenedTarget instanceof HTMLElement) {\r\n if (this._options.targetShowsPopupOnFocus) {\r\n this._skipNextOpen = true;\r\n }\r\n // Pokud máme uložený _lastOpenedTarget, po zavření ho zaměříme.\r\n this._lastOpenedTarget.focus();\r\n }\r\n }\r\n\r\n private _setStyle(styleName: keyof CSSStyleDeclaration, value: string | number): void {\r\n if (typeof value === \"number\") value = `${value}px`;\r\n\r\n this._element.style[styleName as any] = value;\r\n }\r\n\r\n private _fitsHorizontally(rect: DOMRect): boolean {\r\n return rect.left + this._element.offsetWidth <= document.body.clientWidth;\r\n }\r\n\r\n private _fitsVertically(rect: DOMRect, showPosition: string): boolean {\r\n return rect.top + (showPosition === \"auto\" ? rect.height : 0) + this._element.offsetHeight <= document.body.clientHeight;\r\n }\r\n\r\n private _createCloseButton(bemClass: BEMClassNameCreator): void {\r\n const closeButton = createElement({ classes: [\"btn\", \"flat\", \"Icon\", IconCode.uiCrossSmall, bemClass.element(\"closeBtn\")] });\r\n this._element.appendChild(closeButton);\r\n\r\n this._eventsController.addListener(closeButton, \"click\", (_event: MouseEvent) => {\r\n this.close();\r\n });\r\n }\r\n\r\n public dispose(): void {\r\n this._element.remove();\r\n this._eventsController.dispose();\r\n }\r\n}\r\n\r\ntype PopupMenuOptionsCore = {\r\n /**\r\n * Nastaveni sirky\r\n * auto = automaticky podle sirky nadrazeneho elementu\r\n * content = automaticky podle sirky obsahu\r\n * number = pevne nastavena sirka\r\n */\r\n width: \"auto\" | \"content\" | number;\r\n /**\r\n * Nastaveni vysky\r\n * content = automaticky podle vysky obsahu\r\n * number = pevne nastavena vyska\r\n */\r\n height: \"content\" | number;\r\n /**\r\n * Obsah popup menu\r\n */\r\n content: HTMLElement;\r\n /**\r\n * Pokud je true, bude zobrazen hned po vytvoreni, aniz by bylo treba volat show()\r\n */\r\n showAfterCreate: boolean;\r\n /** Zobrazení křížku pro zavření */\r\n closeButton: boolean;\r\n /**\r\n * Whether the popup is shown when the target is focused. In this case, it is necessary\r\n * to specifically handle passing the focus back to the target when closing.\r\n */\r\n targetShowsPopupOnFocus?: boolean;\r\n};\r\n\r\ntype PopupMenuOptionsElement = {\r\n /** Cilovy element na zaklade ktereho má byt zobrazen*/\r\n target: HTMLElement;\r\n /**\r\n * Pozice pro zobrazeni popup menu u elemenetu\r\n * auto = automaticky podle velikosti okna aplikace\r\n * after = vzdy pod elementem\r\n * before = vzdy nad elementem\r\n * overlay = překrytí elementu\r\n */\r\n showPosition: \"auto\" | \"after\" | \"before\" | \"overlay\";\r\n\r\n} & PopupMenuOptionsCore;\r\n\r\ntype PopupMenuOptionsPosition = {\r\n /** Souradnice na kterych se popup menu zobrazi */\r\n target: { x: number; y: number };\r\n} & PopupMenuOptionsCore;\r\n\r\nexport type PopupMenuOptions = PopupMenuOptionsElement | PopupMenuOptionsPosition;\r\n","import { INotifyDetached, IValidatable } from \"../../../UI.BaseControls/ControlInterfaces\";\r\n/**\r\n * Data buňky datagridu\r\n */\r\nexport interface ICellContent extends INotifyDetached {\r\n /**\r\n * Kořenový element zobrazený v buňce\r\n */\r\n visualElement: HTMLElement;\r\n /**\r\n * Element, kterému se nastavují a aktualizují data určená k zobrazení\r\n */\r\n dataElement: HTMLElement;\r\n /**\r\n * Element, který se zobrazuje jako zašifrovaná hodnota\r\n */\r\n encryptionElement?: HTMLElement;\r\n /**\r\n * Prvek určený k validaci\r\n */\r\n validatableControl: IValidatable;\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { IDisposable } from \"../../../../Global/Base/IDisposable\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { ICellContent } from \"../Components/ICellContent\";\r\n\r\nexport interface IDataGridCellTemplate extends IDisposable {\r\n parentColumn: Column;\r\n init(): void;\r\n}\r\nexport class IDataGridCellTemplate {\r\n private static _properties: string[] = [\"parentColumn\"];\r\n private static _methods: string[] = [\"init\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\")\r\n && instance instanceof IDisposable;\r\n }\r\n}\r\n\r\nexport interface IHeaderTemplate extends IDataGridCellTemplate {\r\n render(column: Column, index: number): HTMLElement;\r\n}\r\n\r\nexport interface ITemplate extends IDataGridCellTemplate {\r\n render(column: Column, dataSet: IAttrValue[]): ICellContent;\r\n updateData(dataSet: IAttrValue[], item: HTMLElement): void;\r\n updateDisplayedData(dataSet: ITextBuilder, item: HTMLElement): void;\r\n}\r\n\r\nexport class ITemplate {\r\n private static _methods: string[] = [\"render\", \"updateData\", \"updateDisplayedData\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\")\r\n && instance instanceof IDataGridCellTemplate;\r\n }\r\n}\r\n\r\n/**\r\n * Šablona pro editaci sloupce, který zobrazuje informace z vazebního objektu.\r\n * Při změně masterObjektu potřebuje být informován o změně instance.\r\n */\r\nexport interface IEditItemTemplateMasterRef extends ITemplate {\r\n /**\r\n * Aktualizuje instanci objektu\r\n * @param obj nový objekt\r\n * @param item HTML element, který reprezentuje buňku sloupce\r\n */\r\n setInstance(obj: OWObject, item: HTMLElement): void;\r\n}\r\n\r\nexport class IEditItemTemplateMasterRef {\r\n private static _methods: string[] = [\"setInstance\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\")\r\n && instance instanceof ITemplate; //TODO:\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IAttrValue, IconCode } from \"@multiweb/types/contracts\";\r\nimport { setupBem } from \"Global/Dom/bem\";\r\nimport { EditableControl as EditableControlBase } from \"UI/UI.BaseControls/EditableControl\";\r\nimport { EventHelper } from \"UI/UI.BaseControls/Helpers/EventHelper\";\r\nimport { IHTMLElementWithControl } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { EditableControl } from \"UI/UI/UI/Controls/EditableControl\";\r\nimport { PopupMenu2, PopupMenuOptions } from \"UI/UI/UI/PopupMenu2\";\r\nimport { setExtendedPropertiesOnElement } from \"UI/utils\";\r\nimport { IEncAttrValue } from \"../../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Event as MWEvent } from \"../../../../Global/Base/Events\";\r\nimport { invariant } from \"../../../../Global/Base/Utils/AssertUtils\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IBussyAwaitable, IDataLoadingAwaitable, IValidatable, IValidationResult } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { IEditItemTemplateMasterRef, ITemplate } from \"../Templates/ITemplate\";\r\nimport { Cell } from \"./Cell\";\r\nimport { ICellContent } from \"./ICellContent\";\r\nimport { IDataRow, IDataRowElement } from \"./IDataRow\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dataGrid);\r\n\r\nexport class TableCell extends Cell implements IValidatable, IBussyAwaitable, IDataLoadingAwaitable {\r\n private _validityChanged = new MWEvent<IValidatable, IValidationResult>();\r\n public currentValidity: IValidationResult;\r\n public isInRequiredInvalidState: boolean;\r\n\r\n protected _normalContent: ICellContent;\r\n protected _editableContent: ICellContent;\r\n protected _inEditMode: boolean = false;\r\n protected _dataSet: IAttrValue[];\r\n protected _dataRow: IDataRow;\r\n protected _validityData: IValidationResult;\r\n protected _textAreaElement: HTMLTextAreaElement;\r\n protected _valuePopup: PopupMenu2;\r\n\r\n private __isValid: boolean = true;\r\n private _pendingTasks: Array<Promise<void>> = [];\r\n\r\n /** Hodnota editovatelné buňky, se kterou byla inicializována. */\r\n private _initialValue: string;\r\n\r\n public get validityChanged(): MWEvent<IValidatable, IValidationResult> {\r\n invariant(this._validityChanged, \"Cannot get event for disposed TableCell.\");\r\n return this._validityChanged;\r\n }\r\n\r\n protected set _isValid(v: boolean) {\r\n if (this.__isValid === v) {\r\n return;\r\n }\r\n\r\n this.__isValid = v;\r\n this.validityChanged.trigger(this, v ? { valid: true } : this._validityData);\r\n }\r\n\r\n public get isValid(): boolean {\r\n return this.__isValid;\r\n }\r\n\r\n /**\r\n * Právě zobrazený element\r\n */\r\n public get element(): HTMLElement {\r\n return this._content?.visualElement;\r\n }\r\n\r\n /**\r\n * Právě použitý template\r\n */\r\n public get templateControl(): ITemplate {\r\n return this._inEditMode ? this.column.editItemTemplate : this.column.itemTemplate;\r\n }\r\n\r\n /**\r\n * Zobrazovaná data\r\n */\r\n public get dataSet(): IAttrValue[] {\r\n return this._dataSet;\r\n }\r\n\r\n public set dataSet(data: IAttrValue[]) {\r\n this._dataSet = data;\r\n\r\n this._updateData();\r\n\r\n this.validate();\r\n }\r\n\r\n /**\r\n * Právě používané elementy v závislosti na režimu editace\r\n */\r\n protected get _content(): ICellContent {\r\n return this._inEditMode ? this._editableContent : this._normalContent;\r\n }\r\n\r\n /**\r\n * Element, kterému se mají nastavovat a aktualizovat data\r\n */\r\n protected get _dataElement(): HTMLElement {\r\n return this._content?.dataElement;\r\n }\r\n\r\n public get isFocused(): boolean {\r\n if (this._editableContent?.visualElement instanceof IHTMLElementWithControl) {\r\n if (this._editableContent.visualElement.tscControl instanceof EditableControl) {\r\n return this._editableContent.visualElement.tscControl.hasFocus();\r\n }\r\n } else if (this._editableContent?.dataElement instanceof EditableControlBase) {\r\n return this._editableContent.dataElement.isFocused;\r\n } else if (this._editableContent?.dataElement instanceof IHTMLElementWithControl) {\r\n if (this._editableContent.dataElement.tscControl instanceof EditableControl) {\r\n return this._editableContent.dataElement.tscControl.hasFocus();\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public focus(): void {\r\n const listDiv = this.element.closest(\".list-div\");\r\n const scrollTop = listDiv?.scrollTop; // Safari nepodporuje preventScroll\r\n if (this._content?.dataElement instanceof IHTMLElementWithControl && this._content?.dataElement?.tscControl instanceof EditableControl) {\r\n this._content?.dataElement?.tscControl.focus({ preventScroll: true });\r\n } else {\r\n this._content?.dataElement?.focus({ preventScroll: true });\r\n }\r\n if (listDiv) {\r\n listDiv.scrollTop = scrollTop;\r\n }\r\n }\r\n\r\n public blur(): void {\r\n if (this._editableContent?.dataElement instanceof EditableControlBase) {\r\n this._editableContent.dataElement.blur();\r\n }\r\n }\r\n\r\n constructor(owner: IDataGrid<IDataRowElement>, row: IDataRow, index: number, column: Column, data: IAttrValue[]) {\r\n super(owner, index, column);\r\n this._dataSet = data;\r\n this._dataRow = row;\r\n this._owner.addEventListener(\"detached\", this._disposeValuePopup);\r\n }\r\n\r\n private _disposeValuePopup(): void {\r\n if (this._valuePopup) {\r\n this._valuePopup.dispose();\r\n this._valuePopup = null;\r\n }\r\n }\r\n\r\n private _updateInitialValue(): void {\r\n if (this._editableContent?.dataElement instanceof EditableControlBase) {\r\n this._initialValue = this._editableContent.dataElement.value;\r\n } else if (\r\n this._editableContent?.dataElement instanceof IHTMLElementWithControl\r\n && this._editableContent.dataElement.tscControl instanceof EditableControl\r\n ) {\r\n this._initialValue = this._editableContent.dataElement.tscControl.controlValue;\r\n }\r\n }\r\n\r\n public toEdit(editMode: boolean): void {\r\n if (!this.column.isEditable) {\r\n return;\r\n }\r\n\r\n this._inEditMode = editMode;\r\n\r\n this._preRender();\r\n\r\n // pri ukonceni editace zesynchronizuje pripadnou nevalidni hodnotu do needitacni komponenty\r\n // u editacnich komponent neni potřeba znovu nastavovat nevalidni hodnotu, ta tam uu je\r\n if (!editMode) {\r\n this._syncInvalidData();\r\n }\r\n\r\n this._disposeHiddenElement();\r\n }\r\n\r\n protected _showValuePopup(e: Event): void {\r\n if (!this._valuePopup) {\r\n const wrapper = createElement({ classes: \"MultilineWrapper\" });\r\n wrapper.appendChild(this._textAreaElement);\r\n this._valuePopup = new PopupMenu2({\r\n target: this.element,\r\n content: wrapper,\r\n showPosition: \"overlay\",\r\n width: \"content\",\r\n closeButton: true,\r\n } as PopupMenuOptions);\r\n }\r\n\r\n this._textAreaElement.textContent = this._normalContent.dataElement.textContent;\r\n this._textAreaElement.style.height = \"\";\r\n this._textAreaElement.style.width = \"\";\r\n this._textAreaElement.style.display = \"\";\r\n this._valuePopup.show(e);\r\n }\r\n\r\n protected _hideValuePopup(): void {\r\n if (this._valuePopup) {\r\n this._valuePopup.close();\r\n }\r\n }\r\n\r\n protected _preRender(): void {\r\n try {\r\n this._hideValuePopup();\r\n // vytvoří elementy pokud jeste vytvořeny nebyly\r\n if (this.column.isEditable && this._inEditMode) {\r\n if (this._editableContent == null) {\r\n this._editableContent = this.column.editItemTemplate.render(this.column, this._dataSet);\r\n // Datový atribut dále používáme v procesu vyhodnocení práv editačních komponent na editovatelném\r\n // ListFramu. Pokud id kontextu, se kterým se práva vyhodnocují, neodpovídá hodnotě tohoto atributu,\r\n // tak vyhodnocení práv pro tuto komponentu přeskočíme.\r\n this._editableContent.dataElement.setAttribute(\"data-row-datakey\", this._dataRow.dataKey);\r\n if (this.column.multiLine) {\r\n this._editableContent.visualElement.appendChild(this._createMultilineButton(true));\r\n }\r\n\r\n if (this._editableContent.validatableControl) { // pouze editacni komponenty mohou menit data a tim i validitu\r\n this._editableContent.validatableControl.validityChanged.add((_el, validity) => this._updateValidity(validity));\r\n }\r\n\r\n this._updateInitialValue();\r\n }\r\n } else {\r\n if (this._normalContent == null) {\r\n this._normalContent = this.column.itemTemplate.render(this.column, this._dataSet);\r\n this._updateEncryptedState();\r\n\r\n if (this.column.multiLine) {\r\n this._prepareMultiline();\r\n }\r\n }\r\n }\r\n if (this.column.width) { // je nastavená a nenulová\r\n this.element.style.width = this.column.width + \"px\";\r\n }\r\n\r\n if (this._dataRow.getExtendedProperties) {\r\n const extendedProperties = this._dataRow.getExtendedProperties(this.column.attrName);\r\n if (extendedProperties) {\r\n setExtendedPropertiesOnElement(extendedProperties, this.element);\r\n }\r\n }\r\n } catch (e) {\r\n logger.warn(e);\r\n logger.log(this._dataSet);\r\n }\r\n }\r\n\r\n protected _prepareMultiline(): void {\r\n this._textAreaElement = createElement({ type: \"textarea\", classes: [\"Disabled\"], attrs: { \"readonly\": \"true\" } }) as HTMLTextAreaElement;\r\n this._textAreaElement.classList.add(\"Multiline\");\r\n this._textAreaElement.style.display = \"none\";\r\n this._owner.appendChild(this._textAreaElement);\r\n\r\n this._normalContent.visualElement.appendChild(this._createMultilineButton(false));\r\n\r\n this._normalContent.dataElement.addEventListener(\"updated\", () => this._textAreaElement.textContent = this._normalContent.dataElement.textContent);\r\n }\r\n\r\n private _createMultilineButton(editableCell: boolean): HTMLButtonElement {\r\n const bemClass = setupBem(\"btn\");\r\n const btn = createElement({ type: \"button\", classes: [bemClass.modifier(\"multiline\"), \"btn\", \"flat\", \"icon\", IconCode.uiResizeBottomRight] }) as HTMLButtonElement;\r\n\r\n btn.addEventListener(\"click\", (e) => {\r\n if (btn.classList.contains(\"Disabled\")) {\r\n return;\r\n }\r\n EventHelper.stopPropagation(e);\r\n if (!editableCell) {\r\n this._toggleValuePopup(e);\r\n } else {\r\n (this._editableContent.visualElement.firstElementChild as HTMLElement).focus();\r\n }\r\n });\r\n\r\n if (!this._dataRow.isSelected) {\r\n btn.style.display = \"none\";\r\n }\r\n\r\n this._dataRow.selectionStateChanged.add((_, value: boolean) => {\r\n if (value) {\r\n btn.style.display = \"\";\r\n } else {\r\n btn.style.display = \"none\";\r\n this._hideValuePopup();\r\n }\r\n });\r\n\r\n return btn;\r\n }\r\n\r\n protected _toggleValuePopup(e: Event): void {\r\n if (this._valuePopup && this._valuePopup.visible) {\r\n this._hideValuePopup();\r\n } else {\r\n this._showValuePopup(e);\r\n }\r\n }\r\n\r\n public override preRender(): void {\r\n this._preRender();\r\n }\r\n\r\n public override render(): HTMLElement {\r\n if (this.column.visible) {\r\n this.preRender();\r\n return this.element;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Přidá proces běžící na komponentě, na který je potřeba čekat\r\n * @param promises Procesy, na které je potřeba čekat\r\n */\r\n public addPendingActions(...promises: Promise<void>[]): void {\r\n this._pendingTasks.push(...promises);\r\n }\r\n\r\n /**\r\n * Umožňuje čekat na běžící procesy na komponentě\r\n */\r\n public async waitForPendingActions(): Promise<void> {\r\n await Promise.all(this._pendingTasks);\r\n this._pendingTasks = new Array<Promise<void>>();\r\n\r\n // ReSharper disable once SuspiciousInstanceofCheck\r\n if (this._dataElement instanceof IBussyAwaitable) {\r\n return this._dataElement.waitForPendingActions();\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Umožňuje čekat na dočtení dat\r\n */\r\n public async waitOnDataLoaded(): Promise<boolean> {\r\n // ReSharper disable once SuspiciousInstanceofCheck\r\n if (this._dataElement instanceof IDataLoadingAwaitable) {\r\n return this._dataElement.waitOnDataLoaded();\r\n }\r\n\r\n return Promise.resolve(true);\r\n }\r\n\r\n /**\r\n * Umožňuje zrušit běžící procesy na komponentě\r\n */\r\n public cancelPendingActions(): void {\r\n // ReSharper disable once SuspiciousInstanceofCheck\r\n if (this._dataElement instanceof IBussyAwaitable) {\r\n this._dataElement.cancelPendingActions();\r\n }\r\n }\r\n\r\n /**\r\n * Vrací true, pokud došlo ke změně dat od inicializace buňky.\r\n */\r\n public isChanged(): boolean {\r\n if (this._editableContent?.dataElement instanceof EditableControlBase) {\r\n // We compare after converting to string, because the value can be a Date instance\r\n // that is different in _initialValue and _value, but represents the same date.\r\n return !StringUtils.stringCompare(this._initialValue, this._editableContent.dataElement.value);\r\n } else if (\r\n this._editableContent?.dataElement instanceof IHTMLElementWithControl\r\n && this._editableContent.dataElement.tscControl instanceof EditableControl\r\n ) {\r\n // We compare after converting to string, because the value can be a Date instance\r\n // that is different in _initialValue and _value, but represents the same date.\r\n return !StringUtils.stringCompare(this._initialValue, this._editableContent.dataElement.tscControl.controlValue);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected _updateData(): void {\r\n try {\r\n // když prijdou nova data, tak je potreba nastavit obou komponent (pokud uz byly vytvoreny)\r\n if (this._normalContent && this._normalContent.dataElement) {\r\n this.column.itemTemplate.updateData(this._dataSet, this._normalContent.dataElement);\r\n this._updateEncryptedState();\r\n }\r\n\r\n if (this._editableContent && this._editableContent.dataElement) {\r\n this.column.editItemTemplate.updateData(this._dataSet, this._editableContent.dataElement);\r\n this._updateInitialValue();\r\n }\r\n } catch (e) {\r\n logger.warn(e);\r\n logger.log(this._dataSet);\r\n }\r\n }\r\n\r\n protected _syncInvalidData(): void {\r\n try {\r\n if (!this.isValid) {\r\n this.templateControl.updateDisplayedData(this._validityData.invalidValue, this._dataElement);\r\n } /*else {\r\n this.TemplateControl.UpdateData(this._data, this._dataElement);\r\n }*/\r\n } catch (e) {\r\n logger.warn(e);\r\n logger.log(this._dataSet, this._validityData.invalidValue);\r\n }\r\n }\r\n\r\n public validate(): boolean {\r\n let valid = true;\r\n\r\n // validace se provede na obou komponentách (pokud existují), aby si obě správně aktualizovaly svou validitu\r\n\r\n if (this._editableContent && this._editableContent.validatableControl) {\r\n valid = this._editableContent.validatableControl.validate();\r\n }\r\n\r\n if (this._normalContent && this._normalContent.validatableControl) {\r\n valid = this._normalContent.validatableControl.validate() && valid;\r\n }\r\n\r\n this._isValid = valid;\r\n return this.isValid;\r\n }\r\n\r\n public setValid(): void {\r\n if (this._editableContent && this._editableContent.validatableControl) {\r\n this._editableContent.validatableControl.setValid();\r\n }\r\n\r\n if (this._normalContent && this._normalContent.validatableControl) {\r\n this._normalContent.validatableControl.setValid();\r\n }\r\n\r\n this.__isValid = true;\r\n }\r\n\r\n public setInvalid(locKey: string, message?: string): void {\r\n if (this._editableContent && this._editableContent.validatableControl) {\r\n this._editableContent.validatableControl.setInvalid(locKey, message);\r\n }\r\n\r\n if (this._normalContent && this._normalContent.validatableControl) {\r\n this._normalContent.validatableControl.setInvalid(locKey, message);\r\n }\r\n\r\n this.__isValid = false;\r\n }\r\n\r\n private _disposeHiddenElement(): void {\r\n if (this._inEditMode && this._normalContent != null) {\r\n this._normalContent.detached();\r\n } else if (!this._inEditMode && this._editableContent != null) {\r\n this._editableContent.detached();\r\n }\r\n }\r\n\r\n protected _updateValidity(validity: IValidationResult): void {\r\n this._validityData = validity;\r\n this._isValid = validity.valid;\r\n\r\n // vznikla zmena validity se prenese i na needitovatelnou komponentu, ktera to podporuje\r\n if (this._normalContent && this._normalContent.validatableControl) {\r\n validity.valid ? this._normalContent.validatableControl.setValid() : this._normalContent.validatableControl.setInvalid(validity.invalidLocKey, validity.invalidMessage);\r\n }\r\n }\r\n\r\n /**\r\n * Změní stav buňky podle toho, zda jsou zobrazovaná data šifrovaná\r\n */\r\n protected _updateEncryptedState(): void {\r\n const dataEncrypted = this._isDataEncrypted(this._dataSet);\r\n if (this._normalContent.visualElement.classList.contains(\"encrypted\") === dataEncrypted) {\r\n return;\r\n }\r\n\r\n this._normalContent.visualElement.classList.toggle(\"encrypted\", dataEncrypted);\r\n if (this._normalContent.encryptionElement == null) {\r\n this._normalContent.encryptionElement = createElement({ classes: [\"encrypted-symbol\", \"icon\", \"user-lock\"] });\r\n this._normalContent.visualElement.insertAdjacentElement(\"afterbegin\", this._normalContent.encryptionElement);\r\n }\r\n }\r\n\r\n /**\r\n * Zjistí, zda jsou zobrazovaná data šifrovaná\r\n * @param dataSet Zobrazovaná data\r\n */\r\n protected _isDataEncrypted(dataSet: IAttrValue[]): boolean {\r\n if (!dataSet) {\r\n return false;\r\n }\r\n\r\n for (const data of dataSet) {\r\n if (data instanceof IEncAttrValue && data.isEncrypted) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public setInstance(obj: OWObject): void {\r\n if (!this.dataSet || !(this.dataSet instanceof Array) || this.dataSet.length === 0) {\r\n return;\r\n }\r\n\r\n if (this.column.editItemTemplate && this.column.editItemTemplate instanceof IEditItemTemplateMasterRef) {\r\n if (this._editableContent && this._editableContent.dataElement) {\r\n this.column.editItemTemplate.setInstance(obj, this._editableContent.dataElement);\r\n }\r\n if (obj && this.element && this.element.firstChild) {\r\n const param = {\r\n detail: { control: this.element.firstChild, objectId: obj.id, data: obj },\r\n bubbles: true,\r\n cancelable: true,\r\n };\r\n const evt = new CustomEvent(\"masterObjectRequest\", param);\r\n this.column.dispatchEvent(evt);\r\n }\r\n }\r\n }\r\n\r\n public override dispose(): void {\r\n this._owner.removeEventListener(\"detached\", this._disposeValuePopup);\r\n this._disposeValuePopup();\r\n this._validityChanged.removeAll();\r\n\r\n super.dispose();\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { EMPTY_OBJECT, TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils\";\r\nimport { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { ObjectUtils } from \"Global/Base/Utils/ObjectUtils\";\r\nimport { ExtendedPropertiesType } from \"UI/types\";\r\nimport { DataGridSharedMethods } from \"UI/UI.Controls/DataGridSharedMethods\";\r\nimport { IEncAttrValue } from \"../../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { AttrValueReader } from \"../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { Enum } from \"../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Flags } from \"../../../../OW.Remoting/Remoting/DataTypes/Flags\";\r\nimport { IOWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { IAwaitableEvent } from \"../../../UI.BaseControls/AwaitableEvent\";\r\nimport { Control } from \"../../../UI.BaseControls/Control\";\r\nimport { IValidatable, IValidationResult } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { ElementUtils } from \"../../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { createElement, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IHtmlElementWithResources } from \"../../../UI/UI/Controls/ControlInterfaces\";\r\nimport { IDataGrid } from \"../../IDataGrid\";\r\nimport { ICellValueChangedPrewAwaitableEvent, IDataGridSelectionChangedEvent, IDataGridSelectionChangedEventData } from \"../../IEvent\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { DOUBLE_CLICK_TIME, IDataRow, IDataRowElement, PreviewRowClickEvent, RowClickEvent } from \"./IDataRow\";\r\nimport { TableCell } from \"./TableCell\";\r\n\r\n///////////////////////////////////////////////////////////\r\n// DataRow.\r\n// Implementation of the Class DataRow\r\n// Generated by Enterprise Architect\r\n// Created on: 25-I-2016 14:13:17\r\n// Original author: AndrlikP\r\n///////////////////////////////////////////////////////////\r\n//import {IDataGrid} from '../../IDataGrid';\r\n\r\nexport interface DataRow {\r\n addEventListener(type: \"SelectionChanged\", listener: (ev: IDataGridSelectionChangedEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"SelectionChangedPreview\", listener: (ev: IAwaitableEvent<boolean>) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"CellValueChangedPreview\", listener: (ev: ICellValueChangedPrewAwaitableEvent) => any, useCapture?: boolean): void;\r\n /**\r\n * Událost volána okamžitě při kliku. Klasický rowClick má zpozdění nekolik MS kvůli detekci zda nedojde k double-clicku\r\n * @param type\r\n * @param listener\r\n * @param useCapture\r\n */\r\n addEventListener(type: \"PreviewRowClick\", listener: (ev: PreviewRowClickEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: \"RowClick\", listener: (ev: RowClickEvent) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dataGrid);\r\n\r\n/**\r\n * Radek dataGridu\r\n * @author AndrlikP\r\n * @version 1.0\r\n * @created 25-I-2016 14:13:17\r\n */\r\nexport class DataRow extends Control implements IDataRowElement {\r\n public readonly cellValidityChanged: Event<IValidatable, IValidationResult> = new Event<IValidatable, IValidationResult>();\r\n public readonly selectionStateChanged: Event<IDataRow, boolean> = new Event<IDataRow, boolean>();\r\n\r\n protected _dataKey: string;\r\n private _isDeleted: boolean;\r\n protected _controlsCellElement: HTMLElement | undefined;\r\n protected _controlElement: HTMLElement | undefined;\r\n protected _frozenPart: HTMLElement;\r\n\r\n protected _clickCount: number = 0;\r\n\r\n public readonly isContainer: boolean = true;\r\n\r\n protected _dataGrid: IDataGrid<IDataRowElement>;\r\n\r\n private __dataCells: TableCell[];\r\n private _isDataRowDisposed = false;\r\n\r\n public get dataGrid(): IDataGrid<IDataRowElement> {\r\n return this._dataGrid;\r\n }\r\n\r\n public get clickCount(): number {\r\n if (this.checkAndLogDisposedUsage(\"get clickCount\")) return 0;\r\n return this._clickCount;\r\n }\r\n\r\n public get isValid(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isValid\")) return true;\r\n\r\n return !this.hasAttribute(\"invalid\");\r\n }\r\n\r\n public set isValid(v: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isValid\")) return;\r\n\r\n ElementUtils.toggleAttribute(this, \"invalid\", !v);\r\n }\r\n\r\n public get isSelected(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isSelected\")) return false;\r\n\r\n if (this._dataGrid.selectedRows.indexOf(this) != -1)\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n public set isSelected(value: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isSelected\")) return;\r\n\r\n const old = this.classList.contains(\"selectedRecord\");\r\n if (old == value)\r\n return;\r\n\r\n this.classList.toggle(\"selectedRecord\", value);\r\n const index = this._dataGrid.selectedRows.indexOf(this);\r\n if (value) {\r\n if (index === -1)\r\n this._dataGrid.selectedRows.push(this);\r\n } else {\r\n if (index !== -1) {\r\n this._dataGrid.selectedRows.splice(index, 1);\r\n this._dataGrid.clearIsSelectedAllIfNeeded();\r\n }\r\n }\r\n\r\n this.selectionStateChanged.trigger(this, value);\r\n }\r\n\r\n /**\r\n * Nastavi záznam visuálně do stavu smazany\r\n */\r\n public get isDeleted(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isDeleted\")) return false;\r\n\r\n return this._isDeleted;\r\n }\r\n\r\n public set isDeleted(value: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isDeleted\")) return;\r\n\r\n this.classList.toggle(\"IsDeleted\", value);\r\n this._isDeleted = value;\r\n }\r\n\r\n /**\r\n * Obravení radku\r\n */\r\n public get flag(): Enum | string {\r\n if (this.checkAndLogDisposedUsage(\"get flag\")) return undefined;\r\n\r\n const flag = this.getAttribute(\"flag\");\r\n if (flag)\r\n return Flags.get(flag);\r\n else\r\n return undefined;\r\n }\r\n\r\n public set flag(v: Enum | string) {\r\n if (this.checkAndLogDisposedUsage(\"set flag\")) return;\r\n\r\n if (v)\r\n this.setAttribute(\"flag\", v instanceof Enum ? v.getName() : v);\r\n else\r\n this.removeAttribute(\"flag\");\r\n }\r\n\r\n /**\r\n * ID radku\r\n */\r\n public get dataKey(): string {\r\n if (this.checkAndLogDisposedUsage(\"get dataKey\")) return this._dataKey;\r\n\r\n return this._dataKey.toString();\r\n }\r\n\r\n public set dataKey(v: string) {\r\n if (this.checkAndLogDisposedUsage(\"set dataKey\")) return;\r\n\r\n this._dataKey = v;\r\n this.setAttribute(\"datakey\", v);\r\n if (this._controlElement)\r\n this._controlElement.setAttribute(\"datakey\", v);\r\n }\r\n\r\n public get controlsCellElement(): HTMLElement | undefined {\r\n if (this.checkAndLogDisposedUsage(\"get controlsCellElement\")) return undefined;\r\n\r\n return this._controlsCellElement;\r\n }\r\n\r\n public get dataCells(): readonly TableCell[] {\r\n if (this.checkAndLogDisposedUsage(\"get dataCells\")) return [];\r\n\r\n return this.__dataCells;\r\n }\r\n\r\n protected get _dataCells(): TableCell[] {\r\n if (this.checkAndLogDisposedUsage(\"get _dataCells\")) return [];\r\n\r\n return this.__dataCells;\r\n }\r\n\r\n protected set _dataCells(v: TableCell[]) {\r\n if (this.checkAndLogDisposedUsage(\"set _dataCells\")) return;\r\n\r\n this.__dataCells = v;\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"flag\", \"data-instanceid\"].concat(Control.observedAttributes);\r\n }\r\n\r\n //#region Methods\r\n\r\n public async setData(attrName: string, value: IAttrValue): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"setData\")) return;\r\n\r\n for (const cell of this.dataCells) {\r\n if (cell.column.withoutAttribute) {\r\n continue;\r\n }\r\n\r\n // let currentAttrname = ObjectUtils.removeTypeCasting(cell.column.attrName) === ObjectUtils.removeTypeCasting(attrName) ? ObjectUtils.removeTypeCasting(cell.column.attrName) : ObjectUtils.removeTypeCasting(cell.column.fullAttrName)\r\n\r\n if (ObjectUtils.removeTypeCasting(cell.column.attrName) === ObjectUtils.removeTypeCasting(attrName)) {\r\n const val = AttrValueReader.read(value);\r\n if (!(value instanceof IEncAttrValue) && (val == null || (val instanceof IOWObject && val.id == -666)))\r\n value = null;\r\n\r\n cell.dataSet = value instanceof Array ? value : [value];\r\n } else if (cell.column.attrName.indexOf(\".\") !== -1) {\r\n const attrNames = cell.column.attrName.split(\".\");\r\n const cellAttrName = ObjectUtils.removeTypeCasting(attrNames[0]);\r\n\r\n if (cellAttrName === attrName) {\r\n try {\r\n const val = AttrValueReader.read(value);\r\n if (val instanceof IOWObject) {\r\n const attr = cell.column.attrName.substring(cell.column.attrName.indexOf(\".\") + 1);\r\n let data = await val.getValue(attr);\r\n if (!(data instanceof IEncAttrValue) && (data == null || (data instanceof IOWObject && val.id == -666)))\r\n data = \" \";\r\n cell.dataSet = [data];\r\n } else {\r\n cell.dataSet = [value];\r\n }\r\n } catch (e) {\r\n logger.error(`Unable to get value of an attribute '${cell.column.attrName}'`); //`\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected _cleanRowElement(): void {\r\n this.innerHTML = \"\";\r\n }\r\n\r\n /**\r\n * Ziniciuje nový řádek\r\n * @param dataRow Data k zobrazení v řádku\r\n * @param ownerGrid DataGrid, ke kterému řádek patří\r\n * @param controlElement Volitelný element s ovládacími prvky, který se vloží do nulté buňky řádku\r\n */\r\n public init(rowData: IRowData, ownerGrid: IDataGrid<IDataRowElement>, controlElement: HTMLElement): void {\r\n if (this.checkAndLogDisposedUsage(\"init\")) return;\r\n\r\n this._init(rowData, ownerGrid, controlElement);\r\n this._initCells(rowData);\r\n this._registerRowClickEvent();\r\n }\r\n\r\n /**\r\n * Základní inicializace vlastností řádku\r\n * @param dataRow řádek\r\n * @param ownerGrid rodičovský DataGrid\r\n * @param controlElement element s ovládacími prvky, který se vloží do nulté buňky řádku\r\n */\r\n protected _init(rowData: IRowData, ownerGrid: IDataGrid<IDataRowElement>, controlElement: HTMLElement): void {\r\n if (this.checkAndLogDisposedUsage(\"_init\")) return;\r\n\r\n this._dataGrid = ownerGrid;\r\n this._dataCells = new Array<TableCell>();\r\n this.dataKey = rowData[this._dataGrid.dataSource.dataKey].valueOf()?.toString();\r\n if (this._dataKey == undefined) {\r\n throw Error(\"DataRow has invalid dataKey\");\r\n }\r\n\r\n const frozenRowHelper = createElement({ classes: \"frozen-part-helper\" });\r\n this._frozenPart = createElement({ classes: \"frozen-part\" });\r\n frozenRowHelper.appendChild(this._frozenPart);\r\n this.insertAdjacentElement(\"afterbegin\", frozenRowHelper);\r\n\r\n if (controlElement) {\r\n this._controlElement = controlElement;\r\n this._controlElement.addEventListener(\"widthChanged\", () => {\r\n this.dispatchEvent(new CustomEvent(\"controlElementWidthChanged\", {}));\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Inicializace datových buněk řádku\r\n * @param dataRow řádek\r\n * @param frozenCount počet řádku, ktery jsou fixni (budou vykresleny pouze ty) pokud je číslo menší jak nula budou vykresleny všechny\r\n * @param columns sloupce k inicializaci... pokud je null, tak se použijí sloupce z dataGridu\r\n */\r\n protected _initCells(dataRow: IRowData, _frozenCount?: number, columns?: Column[]): void {\r\n if (this.checkAndLogDisposedUsage(\"_initCells\")) return;\r\n\r\n if (columns === null || columns === undefined) columns = this._dataGrid.columns; // columns ??= this._dataGrid.columns\r\n const dataRowCaseInsensitive = ObjectUtils.getPropertiesCaseInsensitive<IAttrValue>(dataRow ?? {});\r\n\r\n let cellIndex = this._dataCells.length;\r\n columns.forEach(column => {\r\n const data: Array<IAttrValue> = [];\r\n\r\n if (!column.withoutAttribute) {\r\n data.push(...column.attrNames.map(attrName => dataRowCaseInsensitive.get(attrName)));\r\n }\r\n\r\n const cell = new TableCell(this._dataGrid, this, cellIndex, column, data);\r\n cell.validityChanged.add((sender, validity) => {\r\n this._onCellValidityChanged();\r\n this.cellValidityChanged.trigger(sender, validity);\r\n });\r\n this._dataCells.push(cell);\r\n cellIndex++;\r\n });\r\n }\r\n\r\n public addCells(columns: Column[]): void {\r\n this._initCells(null, undefined, columns);\r\n }\r\n\r\n protected _createNoEditableCells(): void {\r\n if (this.checkAndLogDisposedUsage(\"_createNoEditableCells\")) return;\r\n\r\n this._frozenPart.appendChild(this._createFirstCell());\r\n\r\n for (const cell of this.dataCells) {\r\n if (cell.column.visible) {\r\n cell.toEdit(false);\r\n const newCell = cell.render();\r\n if (newCell) //sloupec mohl změnit viditelnost a render vrátil null.\r\n this.appendChild(newCell);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Kontrola zda se muze zmenit vyber radku. Akce muze byt zablokovana pokud je jiny seznam rozeditovany a neulozeny.\r\n */\r\n protected async _checkIfCanSelectionChange(evt: MouseEvent = null): Promise<boolean> {\r\n if (this.checkAndLogDisposedUsage(\"_checkIfCanSelectionChange\")) return true;\r\n\r\n if (this.isSelected && !this._canChangeSelectedRowMultiSelect(evt))\r\n return true;\r\n\r\n return await this._canChangeSelectedRow();\r\n }\r\n\r\n /**\r\n * Subkontrola zda se muze zmenit vyber radku.\r\n */\r\n protected _canChangeSelectedRowMultiSelect(evt: MouseEvent = null): boolean {\r\n if (this.checkAndLogDisposedUsage(\"_canChangeSelectedRowMultiSelect\")) return false;\r\n\r\n return (this._dataGrid.multiSelect && evt && !evt.ctrlKey && !evt.shiftKey && (this._dataGrid.selectedRows.length > 1));\r\n }\r\n\r\n /** Čeká na potvrzení od uživatele při rozeditovaném formu, zda je možné provést změnu řádku */\r\n protected async _canChangeSelectedRow(): Promise<boolean> {\r\n if (this.checkAndLogDisposedUsage(\"_canChangeSelectedRow\")) return true;\r\n\r\n return DataGridSharedMethods.canChangeSelectedRow(this);\r\n }\r\n\r\n /**\r\n * Vybere záznam v případě, že lze tuto akci provést (např. není rozeditovaný jiný seznam)\r\n * @param withFocus Zda má být řádek vybrán s nastavením focusu na seznam. Využívá se při výběru řádku během otevírání menu\r\n */\r\n public async selectWithCheckChanges(withFocus: boolean = true): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"selectWithCheckChanges\")) return;\r\n\r\n if (!(await this._checkIfCanSelectionChange()))\r\n return;\r\n\r\n if (!this.isSelected || (this.isSelected && (this._dataGrid.selectedRows.length > 1))) {\r\n if (withFocus) { // Bez toho by šlo např. při otevření kontextového menu i nadále měnit vybraný záznam pomocí klávesnice\r\n this._dataGrid.focus();\r\n }\r\n\r\n this._dataGrid.isSelectedAll = false;\r\n this._dataGrid.clearSelectedRows();\r\n this.isSelected = true;\r\n this._dataGrid.lastClickedRow = this;\r\n\r\n if (this._dataGrid.selectedRows.length == 1) {\r\n this._dispatchSelectionChangeEvent(this.dataKey, { doubleClick: false, clickedRow: this });\r\n } else { // neni vybrany zadny radek nebo oznaceno vice zaznamu\r\n this._dispatchSelectionChangeEvent(\"-1\", { doubleClick: false, clickedRow: this });\r\n }\r\n }\r\n }\r\n\r\n public select(): void {\r\n if (this.checkAndLogDisposedUsage(\"select\")) return;\r\n\r\n const oldSel = this.isSelected;\r\n //const oldEdit = this.DataGrid.LastClickedRow.IsEdited;\r\n\r\n this._dataGrid.focus();\r\n this._dataGrid.isSelectedAll = false;\r\n this._dataGrid.clearSelectedRows();\r\n this.isSelected = true;\r\n this._dataGrid.lastClickedRow = this;\r\n\r\n if (!oldSel)\r\n this._dispatchSelectionChangeEvent(this.dataKey, { doubleClick: false, clickedRow: this });\r\n }\r\n\r\n /**\r\n * Renders the control to the specified HTML writer.\r\n */\r\n public render(): HTMLElement {\r\n if (this.checkAndLogDisposedUsage(\"render\")) return undefined;\r\n\r\n this._cleanRowElement();\r\n this._createNoEditableCells();\r\n\r\n return this as HTMLElement;\r\n }\r\n\r\n /**\r\n * Nastaví události po kliknutí na řádek.\r\n * @param [row=this] Řádek, který bude předán ve vyvolaných událostech jako iniciátor.\r\n * Parametr využívají frozen řádky a předávají zde své přidružené řádky.\r\n */\r\n protected _registerRowClickEvent(row: IDataRow = this): void {\r\n if (this.checkAndLogDisposedUsage(\"_registerRowClickEvent\")) {\r\n return;\r\n }\r\n this.unregisterEventListener(\"click\");\r\n this.registerEventListenerWithReregister(\"click\", (e: MouseEvent) => {\r\n this._clickCount++;\r\n const originalEvent = e;\r\n this.callEvent(\"previewrowclick\", { originalEvent: originalEvent, row } as PreviewRowClickEvent);\r\n self.setTimeout(() => {\r\n this.callEvent(\"rowclick\", { originalEvent: originalEvent, row, clickCount: this._clickCount } as RowClickEvent);\r\n this._clickCount = 0;\r\n }, DOUBLE_CLICK_TIME);\r\n });\r\n }\r\n\r\n protected _doubleClickEvt(): void {\r\n if (this.checkAndLogDisposedUsage(\"_doubleClickEvt\")) return;\r\n\r\n this._dispatchSelectionChangeEvent(this.dataKey, { doubleClick: true, clickedRow: this });\r\n }\r\n\r\n protected _createFirstCell(): HTMLTableCellElement {\r\n if (this.checkAndLogDisposedUsage(\"_createFirstCell\")) return undefined;\r\n\r\n const tableCell = createElement({ type: \"td\", classes: \"tableRowCheckbox\" }) as HTMLTableCellElement;\r\n if (!this._dataGrid.renderControlElement) {\r\n tableCell.style.width = \"0px\";\r\n return tableCell;\r\n }\r\n\r\n // element s ovládacími prvky k datovému záznamu\r\n if (this._controlElement)\r\n tableCell.appendChild(this._controlElement);\r\n\r\n this._controlsCellElement = tableCell;\r\n\r\n return tableCell;\r\n }\r\n\r\n public setItemType(): void {\r\n // Prázdná metoda\r\n }\r\n\r\n public getExtendedProperties(attrName: string): ExtendedPropertiesType {\r\n if (this._dataGrid.getExtendedProperties)\r\n return this._dataGrid.getExtendedProperties(attrName);\r\n\r\n return EMPTY_OBJECT;\r\n }\r\n\r\n protected _onCellValidityChanged(): void {\r\n if (this.checkAndLogDisposedUsage(\"_onCellValidityChanged\")) return;\r\n\r\n let valid = true;\r\n for (const cell of this.dataCells)\r\n valid = cell.isValid && valid;\r\n\r\n this.isValid = valid;\r\n }\r\n\r\n /**\r\n * Zkontroluje, zda je řádek disposed a pokud ano zaloguje warning o volání metody nad disposed řádkem.\r\n *\r\n * Tato metoda a obecně kontroly na dispose by neměly být nutné po odstranění příčin, kvůli kterým se pracuje i nadále s disposed objekty.\r\n * Pro řešení příčin je vytvořený task 33553.\r\n *\r\n * @param methodName Název metody, kde se provádí kontrola. Slouží pro logování.\r\n * @return true, pokud je řádek disposed, jinak false.\r\n */\r\n protected checkAndLogDisposedUsage(methodName: string): boolean {\r\n const disposed = this.isDisposed();\r\n if (disposed) {\r\n logger.warn(`Calling ${methodName} on disposed ${this.constructor.name}!`);\r\n }\r\n return disposed;\r\n }\r\n\r\n public isDisposed(): boolean {\r\n return this._isDataRowDisposed;\r\n }\r\n\r\n public override dispose(): void {\r\n if (this._dataGrid) {\r\n // TODO Provizorní oprava, selected rows by se mělo čistit odjinud. Opravit příčinu práce s disposed řádky v rámci tasku 33553.\r\n this._dataGrid.selectedRows = this._dataGrid.selectedRows.filter((row) => row !== this);\r\n }\r\n\r\n this.cellValidityChanged.removeAll();\r\n this.selectionStateChanged.removeAll();\r\n this._controlsCellElement = undefined;\r\n if (this._controlElement) {\r\n if (this._controlElement instanceof IHtmlElementWithResources) {\r\n this._controlElement.dispose();\r\n }\r\n this._controlElement = undefined;\r\n }\r\n this.__dataCells?.forEach((cell) => cell.dispose());\r\n super.dispose();\r\n this._isDataRowDisposed = true;\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n this.classList.add(\"DataRow\");\r\n this.tabIndex = TAB_INDEX_FOCUSABLE_ONLY;\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n if (this.checkAndLogDisposedUsage(\"attributeChangedCallback\")) return;\r\n\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"flag\":\r\n if (oldVal)\r\n this.classList.remove(oldVal);\r\n\r\n if (newVal && newVal != \"fNone\") {\r\n this.classList.add(\"colored\", newVal);\r\n } else {\r\n this.classList.remove(\"colored\");\r\n }\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Vyvola novou udalost, ktera se pouziva pri zmene vybranych radku\r\n * @param rowID -\r\n * @param data -\r\n */\r\n protected _dispatchSelectionChangeEvent(rowID: string, data: any): void {\r\n if (this.checkAndLogDisposedUsage(\"_dispatchSelectionChangeEvent\")) return;\r\n\r\n this.callEvent(\"SelectionChanged\", { dataGrid: this._dataGrid, rowID: rowID, data: data } as IDataGridSelectionChangedEventData, true, true);\r\n }\r\n\r\n protected _dispatchDoubleClickEvent(selectionByDoubleCLick?: boolean, rowID: string = null): void {\r\n if (this.checkAndLogDisposedUsage(\"_dispatchDoubleClickEvent\")) return;\r\n\r\n const eventArgs: IDoubleClickEventArgs = { selectionByDoubleClick: selectionByDoubleCLick };\r\n if (rowID)\r\n eventArgs.rowID = rowID;\r\n this.callEvent(\"DoubleClick\", eventArgs, true, true);\r\n }\r\n //#endregion HTMLElement\r\n} //end DataRow\r\n\r\nexport interface IDoubleClickEventArgs {\r\n selectionByDoubleClick: boolean;\r\n rowID?: string;\r\n}\r\n\r\nregisterCustomElement(\"tsc-datarow\", DataRow);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { ResultMessageType } from \"@multiweb/types/contracts\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { InvalidArgumentException } from \"../../../../Global/Base/Exceptions\";\r\nimport { IValidationError, ValidationErrorType } from \"../../../../OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { IValidationDataObject, IValidationDataSimple } from \"../../../../OW.Remoting/Remoting/DataTypes/IValidationDataObject\";\r\nimport { IValidatable, IValidatableContainer } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { DataRow } from \"../../../UI.Controls/DataGridSubcontrols/Components/DataRow\";\r\nimport { IAttributeControl } from \"../Controls/ControlInterfaces\";\r\n\r\n/**\r\n * Pomocny objekt sdruzujici validacni chybu a komponenty, ke kterym se vaze\r\n */\r\nexport interface IValidationData extends IValidationDataSimple {\r\n components: IValidatableComponentData[];\r\n}\r\n\r\n/**\r\n * Pomocny objekt pro data komponenty, ktera jsou potreba pro validaci\r\n */\r\nexport interface IValidatableComponentData {\r\n control: IValidatable;\r\n container?: IValidatableContainer;\r\n attributeName: string;\r\n showsInvalidData: () => boolean;\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.validation);\r\n\r\n/**\r\n * Pomocný objekt obsahující informace k validaci objektu\r\n */\r\nexport interface IValidationMessage {\r\n /**\r\n * Zpráva o výsledku validity objektu\r\n */\r\n readonly message: string;\r\n /**\r\n * Typ zprávy\r\n */\r\n readonly type: ResultMessageType;\r\n /**\r\n * Doplňující informace k validitě objektu. Může obsahovat např. seznam validovaných komponent aj.\r\n */\r\n readonly additionalParams: string[];\r\n}\r\n\r\n/**\r\n * Pomocný objekt sdružující informace o validitě objektu a daty potřebnými pro zobrazení v aplikaci.\r\n */\r\nexport interface IValidationResult {\r\n /**\r\n * Viz {@link IValidationDataObject}\r\n */\r\n readonly data: IValidationDataObject<any>;\r\n /**\r\n * Viz {@link IValidationMessage}\r\n */\r\n readonly messages: IValidationMessage[];\r\n}\r\n\r\n/**\r\n * Pomocný objekt obsahující výsledek jednoho cyklu validace.\r\n * Typicky se používá při validaci práv a umožňuje uložení výsledků validace.\r\n */\r\nexport interface IValidationOverview {\r\n /**\r\n * Viz {@link IValidationResult}\r\n */\r\n readonly validationMessages: IValidationResult[];\r\n /**\r\n * Výsledek validace všech potřebných komponent na framu.\r\n */\r\n readonly ownerValidated: boolean;\r\n /**\r\n * Příznak, zda existuje nějaká validační chyba.\r\n */\r\n readonly hasErrors?: boolean;\r\n}\r\n\r\n/**\r\n * Manager spravuje validační chyby vzniklé při ukládádní záznamů - nastavuje a odebírá je souvisejícím komponentám\r\n */\r\nexport class ValidationManager {\r\n private _invalidObjects = new Map<any, IValidationDataObject<IValidationData>>();\r\n\r\n /**\r\n * Událost, ktera se vyvola při změně validnosti sledovaného objektu\r\n */\r\n public objectValidityChange = new Event<ValidationManager, { object: IValidationDataObject<IValidationData>; validityState: boolean }>();\r\n\r\n /**\r\n * Seznam funkci události pro možnost odstranění jednotlivých zaregistrovanych udalosti\r\n */\r\n private _objectValidityChangeMethodMap = new Map<string, (object: IValidationData, validityState: boolean) => void>();\r\n\r\n /**\r\n * Seznam řádků, které mají být zobrazeny jako nevalidní (např. po UserException)\r\n */\r\n private _invalidRows = new Map<string, DataRow>();\r\n\r\n /**\r\n * Zda existuje nějaká validační chyba (recommended a postponed není validační chyba, záznam lze uložit i když není toto pole vyplněné)\r\n */\r\n public get hasErrors(): boolean {\r\n for (const object of this._invalidObjects.values()) {\r\n const objectMessages = object.getValidationErrors();\r\n for (const msg of objectMessages)\r\n if (msg.error.type === ValidationErrorType.dataError ||\r\n msg.error.type === ValidationErrorType.inputError ||\r\n msg.error.type === ValidationErrorType.requiredError)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Zaregistruje a zobrazi validacni chyby vznikle na zaklade dat objektu na prislusnych komponentach\r\n * @param dataObject datovy objekt, ke kteremu se vztahuje validacni chyba\r\n * @param error validacni chyba\r\n * @param components kolekce komponent s chybami a pridruzenymi informacemi\r\n */\r\n public addDataError(dataObject: IValidationDataObject<IValidationData>, error: IValidationError, components: IValidatableComponentData[]): void {\r\n if (!dataObject || !error || !components)\r\n throw new InvalidArgumentException();\r\n\r\n logger.debug(\"addDataError\", dataObject, error);\r\n const validationObject = this._getOrAddValidationObject(dataObject);\r\n\r\n // Zkontroluje, jestli již neobsahuje validační chybu typu postponedError z tohoto atributu, aby nevznikla duplicita\r\n if (error.type === ValidationErrorType.postponedError) {\r\n for (let i = 0; i < validationObject.getValidationErrors().length; i++) {\r\n for (let j = 0; j < validationObject.getValidationErrors()[i].error.attributeNames.length; j++) {\r\n if (error.attributeNames.some(errorAttrName => errorAttrName === validationObject.getValidationErrors()[i].error.attributeNames[j]))\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // predejde pridavani duplicit z ruznych framu - pouze se zmerguji komponenty patrici k datovemu erroru\r\n const existingError = validationObject.getValidationErrors().find((e) => e.error === error); // chyb k jednomu objektu budou radove jednotky, takze by tohle nemel byt problem\r\n if (existingError) {\r\n for (let i = 0; i < components.length; i++) {\r\n if (existingError.components.some(c => c.attributeName !== components[i].attributeName))\r\n existingError.components = existingError.components.concat(components);\r\n }\r\n } else {\r\n validationObject.addError({ error: error, components: components });\r\n }\r\n\r\n ValidationManager.invalidateComponents(components, error);\r\n logger.debug(\"addDataError\", this._objectValidityChangeMethodMap);\r\n }\r\n\r\n /**\r\n * Zaregistruje validacni chybu (uz se nenastavuje komponente)\r\n * @param dataObject datovy objekt, ke kteremu se vztahuje validacni chyba\r\n * @param error validacni chyba\r\n * @param component komponenta, na ktere vznikla validacni chyba a pridruzene informace\r\n */\r\n public addComponentError(dataObject: IValidationDataObject<IValidationData>, error: IValidationError, component: IValidatableComponentData): void {\r\n if (!dataObject || !error || !component)\r\n throw new InvalidArgumentException();\r\n\r\n logger.debug(\"addComponentError\", dataObject, error);\r\n const validationObject = this._getOrAddValidationObject(dataObject);\r\n\r\n // predejde pridavani duplicit\r\n if (validationObject.getValidationErrors().some((e) => e.error.type === error.type && e.components.length === 1 && e.components[0].control === component.control))\r\n return;\r\n\r\n error.attributeNames = [component.attributeName];\r\n validationObject.addError({ error: error, components: [component] });\r\n logger.debug(\"addComponentError\", this._objectValidityChangeMethodMap);\r\n\r\n //if (component.container)\r\n // component.container.isValid = false;\r\n }\r\n\r\n /**\r\n * Přidá do kolekce řádek, který má být zobrazen jako nevalidní (např. po UserException)\r\n * @param id záznamu\r\n * @param row řádek seznamu\r\n */\r\n public addRowError(id: string, row: DataRow): void {\r\n if (!id || !row) {\r\n throw new InvalidArgumentException();\r\n }\r\n\r\n row.isValid = false;\r\n\r\n this._invalidRows.set(id, row);\r\n }\r\n\r\n /**\r\n * Ziska datovy objekt ze seznamu zaregistrovanych a pokud tam takovy neexistuje, tak ho tam prida\r\n */\r\n private _getOrAddValidationObject(dataObject: IValidationDataObject<IValidationData>): IValidationDataObject<IValidationData> {\r\n const id = dataObject.id;\r\n\r\n let validationObject = this._invalidObjects.get(id.toString());\r\n\r\n // pri prvni chybe se objekt prida do kolekce nevalidnich objektu\r\n if (validationObject == null) {\r\n validationObject = dataObject;\r\n this._invalidObjects.set(id.toString(), validationObject);\r\n // zaregistrovani udalosti pro objekt\r\n\r\n let fnc: (object: IValidationData, validityState: boolean) => void;\r\n\r\n validationObject.validityChange.add(fnc = (_object, validityState) => {\r\n this.objectValidityChange.trigger(this, {\r\n object: dataObject,\r\n validityState: validityState,\r\n });\r\n });\r\n\r\n this._objectValidityChangeMethodMap.set(dataObject.id, fnc);\r\n }\r\n\r\n return validationObject;\r\n }\r\n\r\n /**\r\n * Odstraní všechny validační chyby ze všech zaznamů\r\n * @param id Pokud je uvedeno id, tak smaže jenom z tohoto konkrétního záznamu\r\n * @param errorType Pokud je uveden errorType, tak smaže jenom tento typ chyby\r\n */\r\n public clearErrors(id: any = null, errorType?: ValidationErrorType): void {\r\n logger.debug(\"clearErrors\", id);\r\n for (const [objectId, object] of this._invalidObjects.entries()) {\r\n // ReSharper disable once CoercedEqualsUsing\r\n if (id != null && id != objectId)\r\n continue;\r\n\r\n for (const errorData of object.getValidationErrors()) {\r\n if (!errorType || errorType === errorData.error.type) {\r\n //Pokud komponenta není validní, tak ji zvalidním\r\n errorData.components.forEach(comp => {\r\n if (comp.control && !comp.control.isValid)\r\n comp.control.setValid();\r\n });\r\n\r\n errorData.components = [];\r\n object.removeError(errorData);\r\n }\r\n }\r\n\r\n // pokud už zadna chyba není zobrazena nad žádnou komponentou, tak se rovnou odstraňuje kolekce chyb zaznamu\r\n if (object.isValid) {\r\n this._removeInvalidObject(object);\r\n }\r\n }\r\n\r\n // část pro zvalidnění řádků seznamu\r\n const validateAndRemoveFnc = (id: string, row: DataRow): void => {\r\n row.isValid = true;\r\n\r\n this._invalidRows.delete(id);\r\n };\r\n\r\n if (id != null) {\r\n const row = this._invalidRows.get(id);\r\n\r\n if (row) {\r\n validateAndRemoveFnc(id, row);\r\n }\r\n } else {\r\n this._invalidRows.forEach((value, key) => {\r\n validateAndRemoveFnc(key, value);\r\n });\r\n }\r\n\r\n logger.debug(\"clearErrors\", this._objectValidityChangeMethodMap);\r\n }\r\n\r\n /**\r\n * Odstraní validační chyby z pole @param ids\r\n * Modifikovaná metoda @function clearErrors\r\n * @param ids pole id objektů u kterých je potřeba odstranit validační chyby\r\n * @param errorType Pokud je uveden errorType, tak smaže jenom tento typ chyby\r\n */\r\n public clearMultipleErrors(ids: string[] = [], errorType?: ValidationErrorType): void {\r\n logger.debug(\"clearMultipleErrors\", ids);\r\n\r\n for (const id of ids) {\r\n const object = this._invalidObjects.get(id);\r\n if (object) {\r\n for (const errorData of object.getValidationErrors()) {\r\n if (!errorType || errorType === errorData.error.type) {\r\n //Pokud komponenta není validní, tak ji zvalidním\r\n errorData.components.forEach(comp => {\r\n if (comp.control && !comp.control.isValid) {\r\n comp.control.setValid();\r\n }\r\n });\r\n errorData.components = [];\r\n object.removeError(errorData);\r\n }\r\n }\r\n if (object.isValid) {\r\n this._removeInvalidObject(object);\r\n }\r\n\r\n const row = this._invalidRows.get(id);\r\n\r\n if (row) {\r\n row.isValid = true;\r\n this._invalidRows.delete(id);\r\n }\r\n }\r\n }\r\n logger.debug(\"clearMultipleErrors\", this._objectValidityChangeMethodMap);\r\n }\r\n\r\n /**\r\n * Odstraní validační chyby z daného atributu daného záznamu\r\n * @param id id datoveho objektu\r\n * @param attributeName název atributu, pro který se odstraňují chyby\r\n * @param isLinkedAttribute udává, zda se jedná o provázaný atribut\r\n */\r\n public removeDataErrors(id: any, attributeName: string, isLinkedAttribute: boolean = false): void {\r\n if (!id)\r\n throw new InvalidArgumentException();\r\n\r\n logger.debug(\"removeDataErrors\", id, attributeName);\r\n\r\n attributeName = attributeName != null ? attributeName.toUpperCase() : null;\r\n\r\n const object = this._invalidObjects.get(id.toString());\r\n if (object == null)\r\n return;\r\n\r\n //const containerErrors = new Map<IValidatableContainer, boolean>();\r\n const validationErrors = object.getValidationErrors();\r\n logger.debug(\"removeDataErrors-start\", this._objectValidityChangeMethodMap);\r\n\r\n logger.groupCollapsed(\"removeDataErrors-for\");\r\n const linkedAttributes: string[] = [];\r\n for (const errorData of validationErrors) {\r\n logger.group(\"errorData\");\r\n const errorRemovedFromLinkedAttr = errorData.error.linkedAttributes && errorData.error.attributeNames.some((c) => c != null && c.toUpperCase() === attributeName);\r\n if (errorRemovedFromLinkedAttr)\r\n linkedAttributes.push(...errorData.error.attributeNames.filter((c) => c.toUpperCase() !== attributeName && !linkedAttributes.includes(c)));\r\n //Musim si udelat kopii, protoze v removeComponentErrors bych se to menilo pod rukama\r\n const components = errorData.components.slice(0);\r\n // projde vsechny komponenty prirazene k chybe a na prislusnych zrusi nevalidnost\r\n for (let i = 0; i < components.length; ++i) {\r\n logger.group(\"components\");\r\n const data = components[i];\r\n\r\n // pokud komponenta právě nezobrazuje požadovaný záznam\r\n if (!data.showsInvalidData()) {\r\n logger.debug(\"rde-vetev-1\");\r\n // tak ji není potřeba revalidovat, ale chybu je stále potřeba smazat\r\n components.splice(i--, 1);\r\n continue;\r\n }\r\n\r\n // kontejner se prida do kolekce k pozdejsimu zpracovani\r\n //if (data.container != null && !containerErrors.has(data.container))\r\n // containerErrors.set(data.container, false);\r\n\r\n // chyba se odstrani v nasledujicich pripadech:\r\n // 1) chyba neni pripojena k atributu - odstranuje se pri jakekoliv zmene jakehokoliv atributu (a bude se jednat o kontejner)\r\n // 2) atributy jsou linked - validační hláška se odstraní ze všech komponent pri odstraneni z jednoho z nich\r\n // 3) komponenta zobrazuje prave zmeneny atribut\r\n if (data.attributeName == null || errorRemovedFromLinkedAttr || data.attributeName.toUpperCase() === attributeName) {\r\n // -> odstraneni chyby\r\n logger.debug(\"rde-vetev-2\", data.attributeName, errorRemovedFromLinkedAttr, attributeName);\r\n // spusti validaci na komponente - pokud byl stav nevalidnosti nastaven z venku, tak se bezne odstrani - zustane pripadna klientska nevalidnost\r\n if (data.control != null) {\r\n logger.debug(\"rde-vetev-2-1\");\r\n\r\n if (!data.control.isValid && isLinkedAttribute) {\r\n // pokud se jedná o provázaný atribut, tak musíme odstranit chyby i z komponenty navázané na něho\r\n this.clearErrors(object.id, errorData.error.type);\r\n }\r\n\r\n data.control.validate();\r\n\r\n // pokud komponenta zustala nevalidni (klientskou validacni chybou)\r\n if (!data.control.isValid) {\r\n logger.debug(\"rde-vetev-2-1-1\");\r\n //if (data.container != null)\r\n // containerErrors.set(data.container, true);\r\n continue;\r\n }\r\n }\r\n\r\n const position = errorData.components.indexOf(data);\r\n if (position > -1) {\r\n logger.debug(\"rde-vetev-2-2\");\r\n errorData.components.splice(position, 1);\r\n }\r\n continue;\r\n }\r\n\r\n // -> chyba zustava a je potreba ji zachovat i na kontejneru\r\n //if (data.container != null)\r\n // containerErrors.set(data.container, true);\r\n logger.groupEnd();\r\n }\r\n\r\n if (errorData.components.length === 0 && !(attributeName == null && errorData.error.keepOnAttributeChange)) {\r\n logger.debug(\"rde-vetev-3\", attributeName, errorData.error.keepOnAttributeChange);\r\n object.removeError(errorData);\r\n }\r\n logger.groupEnd();\r\n }\r\n logger.groupEnd();\r\n\r\n // projdou se kontejnery, a ty, ktere nemaji nevalidni komponenty, se zvalidni\r\n //for (let [container, hasErrors] of containerErrors.entries()) {\r\n // if (!hasErrors)\r\n // container.isValid = true;\r\n //}\r\n\r\n // pokud už zadna chyba není zobrazena nad žádnou komponentou, tak se rovnou odstraňuje kolekce chyb zaznamu\r\n if (object.isValid) {\r\n this._removeInvalidObject(object);\r\n }\r\n\r\n logger.debug(\"Recursively removing dataErrors from linked attributes: \", linkedAttributes);\r\n for (const attribute of linkedAttributes)\r\n this.removeDataErrors(id, attribute, true);\r\n\r\n logger.debug(\"removeDataErrors-end\", this._objectValidityChangeMethodMap);\r\n }\r\n\r\n /**\r\n * Odstrani validacni chyby z dane komponenty zobrazujici dany zaznam,\r\n * u komponenty se predpoklada, ze uz je ve validnim stavu, uz se nevola revalidace\r\n * @param id id datoveho objektu\r\n * @param component komponenta, ze ktere se ma odregistrovat validacni chyba\r\n * @param errorType nepovinný typ chyb, které se mají odstraňovat - pokud není uveden, tak se odstraňují všechny typy\r\n */\r\n public removeComponentErrors(id: any, component: IValidatable, errorType?: ValidationErrorType): void {\r\n if (!id || !component)\r\n throw new InvalidArgumentException();\r\n\r\n logger.debug(\"removeComponentErrors\", id, component);\r\n\r\n const object = this._invalidObjects.get(id.toString());\r\n if (object == null)\r\n return;\r\n\r\n const errors = object.getValidationErrors();\r\n for (const errorData of errors) {\r\n // pokud se mají odstraňovat pouze errory určitého typu\r\n if (errorType != null && errorType !== errorData.error.type)\r\n continue;\r\n\r\n for (let i = 0; i < errorData.components.length; ++i) {\r\n const componentData = errorData.components[i];\r\n if (component !== componentData.control)\r\n continue;\r\n\r\n errorData.components.splice(i, 1);\r\n if (errorData.components.length === 0)\r\n object.removeError(errorData);\r\n\r\n //TODO: bude jeste potreba domyslet a dodelat zvalidnovani kontejneru, ktere uz nemaji zadnou chybu, i v removeDataErrors je to dost divoky kod a timhle se to jeste zeslozitilo\r\n break;\r\n }\r\n }\r\n\r\n // pokud už zadna chyba není zobrazena nad žádnou komponentou, tak se rovnou odstraňuje kolekce chyb zaznamu\r\n if (object.isValid) {\r\n this._removeInvalidObject(object);\r\n }\r\n logger.debug(\"removeComponentErrors-end\", this._objectValidityChangeMethodMap);\r\n }\r\n\r\n /**\r\n * Odstraní objekt z kolekce nevalidních záznamů.\r\n * @param object Objekt k odstranění.\r\n */\r\n private _removeInvalidObject(object: IValidationDataObject<IValidationData>): void {\r\n if (!object)\r\n return;\r\n\r\n this._invalidObjects.delete(object.id.toString());\r\n\r\n // odstraneni navazanych udalosti\r\n object.validityChange.remove(this._objectValidityChangeMethodMap.get(object.id));\r\n this._objectValidityChangeMethodMap.delete(object.id);\r\n }\r\n\r\n /**\r\n * Zkontroluje, zda existují nějaké chybové hlášky pro daný záznam a pokud ano, tak je nastaví příslušným komponentám\r\n * @param id id datoveho objektu\r\n */\r\n public checkDataErrors(id: any): void {\r\n if (!id)\r\n throw new InvalidArgumentException();\r\n\r\n this._checkErrors(id);\r\n }\r\n\r\n public checkComponentErrors(id: any, component: IValidatable): void {\r\n if (!id || !component)\r\n throw new InvalidArgumentException();\r\n\r\n this._checkErrors(id, component);\r\n }\r\n\r\n private _checkErrors(id: any, component: IValidatable = null): void {\r\n const object = this._invalidObjects.get(id.toString());\r\n if (object == null)\r\n return;\r\n\r\n const errors = object.getValidationErrors();\r\n for (const errorData of errors) {\r\n for (const componentData of errorData.components) {\r\n // pokud se maji zobrazit pouze chyby na komponente, tak se ostatni komponenty preskakuji\r\n if (component && component !== componentData.control)\r\n continue;\r\n\r\n ValidationManager._invalidateComponent(componentData, errorData.error);\r\n\r\n if (component)\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Znevalidní předané komponenty tím, že jim nastaví zadanou chybu.\r\n * @param components Seznam komponent ke znevalidnění\r\n * @param error Chyba, která se nastaví do komponent.\r\n */\r\n public static invalidateComponents(components: IValidatableComponentData[], error: IValidationError): void {\r\n for (const data of components)\r\n ValidationManager._invalidateComponent(data, error);\r\n }\r\n\r\n /**\r\n * Znevalidní předanou komponentu a jako chybu ji nastaví zadanou chybu.\r\n * @param componentData Komponenta a přidružená data.\r\n * @param error Chyba, která se nastaví do komponenty.\r\n */\r\n private static _invalidateComponent(componentData: IValidatableComponentData, error: IValidationError): void {\r\n // a ty, které prave zobrazuji chybny zaznam, znevalidni\r\n if (!componentData.showsInvalidData())\r\n return;\r\n\r\n if (componentData.control != null && componentData.control.isValid) {\r\n // pokud se validacni chyba tyka spatneho uzivatelkeho vstupu, tak je treba tuto nevalidni hodnotu prenaset\r\n if (error.type === ValidationErrorType.inputError && componentData.control instanceof IAttributeControl)\r\n componentData.control.displayedValue = error.invalidValue;\r\n\r\n componentData.control.setInvalid(null, error.errorMessage, error.type);\r\n }\r\n }\r\n\r\n /**\r\n * Vratí všechny validační chyby spolu s daty potřebnými pro zobrazení.\r\n */\r\n public getErrorMessages(serverValidationOnly?: boolean): IValidationResult[] {\r\n const result: IValidationResult[] = [];\r\n\r\n for (const object of this._invalidObjects.values()) {\r\n const objectMessages = object.getValidationErrors();\r\n\r\n const messages: IValidationMessage[] = [];\r\n\r\n for (const objectMessage of objectMessages) {\r\n if (serverValidationOnly && objectMessage.error.type !== ValidationErrorType.dataError) {\r\n continue;\r\n }\r\n\r\n const errorType = objectMessage.error.type === ValidationErrorType.recommendedError ? ResultMessageType.recommendation : ResultMessageType.error;\r\n const message: IValidationMessage = {\r\n message: objectMessage.error.errorMessage,\r\n type: errorType,\r\n additionalParams: objectMessage.error.componentNames || [],\r\n };\r\n\r\n messages.push(message);\r\n }\r\n\r\n result.push({ data: object, messages: messages });\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import { Control } from \"../Controls/Control\";\r\nimport { FormControlParams, IGenericControl } from \"../Controls/ControlInterfaces\";\r\nimport { IForm } from \"./IForm\";\r\nimport { ValidationManager } from \"./ValidationManager\";\r\n\r\nexport interface IFormControl extends IGenericControl {\r\n ownerForm: IForm;\r\n}\r\n\r\nexport class IFormControl {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"ownerForm\") && instance instanceof IGenericControl;\r\n }\r\n}\r\n\r\nexport class FormControl extends Control implements IFormControl {\r\n private _ownerForm: IForm;\r\n\r\n public get ownerForm(): IForm {\r\n return this._ownerForm;\r\n }\r\n\r\n /**\r\n * Nastaveni ownerFormu - tj. Formu na kterem lezi MasterableFrame\r\n */\r\n public set ownerForm(ownerForm: IForm) {\r\n this._ownerForm = ownerForm;\r\n }\r\n\r\n constructor(params: FormControlParams) {\r\n super(params);\r\n\r\n this.ownerForm = params.ownerForm;\r\n }\r\n\r\n protected override _setDefaultTooltip(): void {\r\n // Prázdná metoda\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro Framy, kterym vyvolava validaci nadrazeny frame.\r\n */\r\nexport interface IValidatableFrame extends IFormControl {\r\n /**\r\n * Komponenta provede svou validaci a podle toho si nastaví svůj stav validnosti (IsValid)\r\n */\r\n validate(): Promise<boolean>;\r\n\r\n /**\r\n * Komponenta provede svou validaci a zobrazí chybové hlášky podle toho si nastaví svůj stav validnosti (IsValid)\r\n */\r\n validateAndShowMessage(checkRecommended?: boolean, checkPostponed?: boolean): Promise<boolean>;\r\n}\r\n\r\nexport class IValidatableFrame {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n typeof instance.validate === \"function\" &&\r\n typeof instance.validateAndShowMessage === \"function\" &&\r\n instance instanceof IFormControl;\r\n }\r\n}\r\n\r\n/**\r\n * Řídící komponenta umožňující spouštění validace a zobrazení validačních chyb\r\n */\r\nexport interface IValidationMaster {\r\n /**\r\n * Objekt spravující validace\r\n */\r\n readonly validationManager: ValidationManager;\r\n /**\r\n * Provede validaci vsech potrebnych komponenty na framu\r\n * @param checkRecommended zda se maji kontrolovat i doporucena pole\r\n * @param checkPostponedRequired zda se maji kontrolovat i odlozene povinnosti\r\n * @param validatedUnchanged zda se maji kontrolovat i nezmenene zaznamy, muzu volat validaci ulozeneho objektu z metody\r\n * @returns true pokud validace probehla v poradku, jinak false\r\n */\r\n validate(checkRecommended?: boolean, checkPostponedRequired?: boolean, validatedUnchanged?: boolean): Promise<boolean>;\r\n /**\r\n * Provede validaci vsech potrebnych komponenty na framu a zobrazi vysledne zpravy a validacni chyby\r\n * @returns true pokud validace probehla v poradku, jinak false\r\n */\r\n validateAndShowMessage(): Promise<boolean>;\r\n}\r\n\r\nexport class IValidationMaster {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"validationManager\") &&\r\n typeof instance.validate === \"function\" &&\r\n typeof instance.validateAndShowMessage === \"function\";\r\n }\r\n}\r\n","import { ResultMessageType } from \"@multiweb/types/contracts\";\r\nimport { EOWValidateException } from \"OW.Remoting/Basic/OWExceptions\";\r\nimport { DeviceInfo } from \"../../../../Device/Info/DeviceInfo\";\r\nimport { IValidationDataObject } from \"../../../../OW.Remoting/Remoting/DataTypes/IValidationDataObject\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { DataRow } from \"../../../UI.Controls/DataGridSubcontrols/Components/DataRow\";\r\nimport { SaveResultData } from \"../../../UI.Controls/DataSource/EditableDBDataSource\";\r\nimport { IUserMsgItem, IUserMsgsData, UserMsgsBuilder } from \"../DataBuilders/UserMsgsBuilder\";\r\nimport { MessageButtonType, MessageWindow } from \"../MessageWindow\";\r\nimport { IValidatableMasterableFrame } from \"./Frames/FrameInterfaces\";\r\nimport { IValidatableComponentData, IValidationData, IValidationResult, ValidationManager } from \"./ValidationManager\";\r\nimport { IValidationError } from \"OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { MessageButtonResult } from \"../UIManager\";\r\n\r\nexport class SharedMethods {\r\n public static horizontalLayout = DeviceInfo.deviceProperties.tablet;\r\n\r\n /**\r\n * Zpracování zpráv při ukladaní záznamů\r\n * @param resultMessage - zpravy ze sluzby pri ukladani zaznamu\r\n */\r\n public static async processSaveResultsAndShowMessages(frame: IValidatableMasterableFrame, resultMessage: SaveResultData[]): Promise<SaveResultData[]> {\r\n const saveMessages: IUserMsgsData[] = [];\r\n const errorMessages: SaveResultData[] = [];\r\n\r\n const getRowFromMessage = (saveResultMessage: SaveResultData): DataRow | null => {\r\n if (!saveResultMessage.data)\r\n return null;\r\n\r\n const objectInstanceId = saveResultMessage.data.instanceID;\r\n let row = frame.element.querySelector(`.DataRow[datakey='${objectInstanceId}']`); //`\r\n if (!row || !(row instanceof DataRow)) {\r\n const objectId = saveResultMessage.data.id;\r\n if (objectId == null)\r\n return null;\r\n row = frame.element.querySelector(`.DataRow[datakey='${objectId}']`); //`\r\n }\r\n\r\n if (!row || !(row instanceof DataRow))\r\n return null;\r\n\r\n return row;\r\n };\r\n\r\n if (resultMessage !== undefined)\r\n for (const aktMessage of resultMessage) {\r\n //naplneni validationManageru\r\n if (aktMessage.errors) {\r\n const row = getRowFromMessage(aktMessage);\r\n\r\n for (const e of aktMessage.errors) {\r\n const componentsData: IValidatableComponentData[] = [];\r\n\r\n if (e.attributeNames != null && row) {\r\n for (const attrName of e.attributeNames) {\r\n const attrNameUpper = attrName.toUpperCase();\r\n if (row && (row instanceof DataRow)) {\r\n for (const cell of row.dataCells) {\r\n if (cell.column.attrName.toUpperCase() !== attrNameUpper)\r\n continue;\r\n\r\n componentsData.push({ control: cell, container: row, attributeName: attrName, showsInvalidData: () => true });\r\n }\r\n }\r\n }\r\n }\r\n\r\n frame.validationManager.addDataError(aktMessage.data as any as IValidationDataObject<IValidationData>, e, componentsData);\r\n }\r\n errorMessages.push(aktMessage);\r\n } else {\r\n if (aktMessage.messages.length > 0) {\r\n const messageItems: IUserMsgItem[] = [];\r\n let error: boolean = false;\r\n for (const message of aktMessage.messages) {\r\n const msg: IUserMsgItem = { type: message.type, message: message.text };\r\n\r\n if (message.type === ResultMessageType.error) {\r\n error = true;\r\n msg.additionalParams = [message.locKey]; // u errorů se má zobrazovat i kód chyby\r\n }\r\n\r\n messageItems.push(msg);\r\n }\r\n\r\n saveMessages.push({ objectIdentification: aktMessage?.data?.objectIdentity, messages: messageItems });\r\n\r\n if (error) {\r\n errorMessages.push(aktMessage);\r\n\r\n const row = getRowFromMessage(aktMessage);\r\n if (!row)\r\n continue;\r\n\r\n frame.validationManager.addRowError(aktMessage.data.id, row);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (saveMessages.length > 0) {\r\n new MessageWindow(new UserMsgsBuilder(saveMessages)).show();\r\n }\r\n\r\n return errorMessages;\r\n }\r\n\r\n /**\r\n * Zkontroluje zprávy z validačního managera a na jejich základě zobrazí specifický dialog {@link MessageWindow} čekající na akci od uživatele.\r\n * @param validationManager\r\n * @param runLocKey lokalizace pro tlačítko yes v yes/no dialogu\r\n * @param cancelLocKey lokalizace pro tlačítko no v yes/no dialogu\r\n * @param serverValidationOnly Propustí pouze validační chyby ze serveru\r\n * @return Vrací výsledek kontroly za základě typu validačních zpráv/akce od uživatele.\r\n */\r\n public static async checkObjectBeforeExecute(validationManager: ValidationManager, runLocKey: string, cancelLocKey: string, serverValidationOnly?: boolean): Promise<ObjectCheckingResult> {\r\n const validationManagerMessages = validationManager.getErrorMessages(serverValidationOnly);\r\n\r\n return await this.checkMessagesBeforeExecute(validationManagerMessages, runLocKey, cancelLocKey);\r\n }\r\n\r\n /**\r\n * Zkontroluje validační zprávy a na jejich základě zobrazí specifický dialog {@link MessageWindow} čekající na akci od uživatele.\r\n * @param validationMessages validační zprávy, typicky se zde využívají zprávy z validationManagera\r\n * @param runLocKey lokalizace pro tlačítko yes v yes/no dialogu\r\n * @param cancelLocKey lokalizace pro tlačítko no v yes/no dialogu\r\n * @return Vrací výsledek kontroly za základě typu validačních zpráv/akce od uživatele.\r\n */\r\n public static async checkMessagesBeforeExecute(validationMessages: IValidationResult[], runLocKey: string, cancelLocKey: string): Promise<ObjectCheckingResult> {\r\n let hasError: boolean = false;\r\n const saveMessages: IUserMsgsData[] = [];\r\n\r\n if (!validationMessages) {\r\n return ObjectCheckingResult.clear;\r\n }\r\n\r\n for (const errorMessage of validationMessages) {\r\n if (errorMessage.messages.length === 0) {\r\n continue;\r\n }\r\n\r\n const newMessage = { objectIdentification: (errorMessage.data as OWObject).objectIdentity, ID: (errorMessage.data as OWObject).id, messages: errorMessage.messages };\r\n saveMessages.push(newMessage);\r\n if (!hasError) {\r\n for (const msg of errorMessage.messages) {\r\n if (msg.type === ResultMessageType.error) {\r\n hasError = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (saveMessages.length > 0) {\r\n if (hasError) {\r\n const mw = new MessageWindow(new UserMsgsBuilder(saveMessages));\r\n await mw.show();\r\n return ObjectCheckingResult.error;\r\n } else {\r\n const r = await MessageWindow.showYesNoDialog(new UserMsgsBuilder(saveMessages), runLocKey, cancelLocKey); //\"GUI-6\"=Uložit,\"GUI-33412\"=Zrušit\r\n switch (r.result) {\r\n case MessageButtonType.ok:\r\n return ObjectCheckingResult.recommendedContinue;\r\n case MessageButtonType.no:\r\n return ObjectCheckingResult.recommendedStop;\r\n }\r\n }\r\n }\r\n return ObjectCheckingResult.clear;\r\n }\r\n\r\n /**\r\n * Zobrazí validační chyby uživateli, pokud nějaké existují\r\n * @param validationManager Validační manažer, který obsahuje případné chyby\r\n */\r\n public static async showValidationMessages(validationManager: ValidationManager): Promise<void> {\r\n const validationManagerMessages = validationManager.getErrorMessages();\r\n\r\n const validMsgs: IUserMsgsData[] = validationManagerMessages.map((item) => {\r\n return { objectIdentification: (item.data as OWObject).objectIdentity, ID: (item.data as OWObject).id, messages: item.messages };\r\n });\r\n\r\n if (validMsgs.length > 0) {\r\n await new MessageWindow(new UserMsgsBuilder(validMsgs)).show();\r\n }\r\n }\r\n\r\n /**\r\n * Metoda, která znevalidní záznamy, zobrazí chybovou hlášku a následně odstraní validační chyby\r\n * @param objects Objekty na kterých byl zjistěn error\r\n * @param error Chyba pro zobrazení hlášky\r\n * @param frame Frame na kterém jsou umístěny záznamy a validační manager\r\n */\r\n public static async handleValidationErrors(objects: OWObject[], error: EOWValidateException, frame: IValidatableMasterableFrame): Promise<void> {\r\n const saveResultData: SaveResultData[] = [];\r\n const validationMessages: IUserMsgsData[] = [];\r\n const objectsIDs: string[] = [];\r\n\r\n for (const object of objects) {\r\n saveResultData.push({ data: object, errors: error.validationErrors });\r\n validationMessages.push({\r\n objectIdentification: object.objectIdentity,\r\n messages: [{\r\n message: error.validationErrors[0]?.errorMessage,\r\n type: ResultMessageType.error,\r\n }],\r\n });\r\n objectsIDs.push(object.id);\r\n }\r\n\r\n await this.processSaveResultsAndShowMessages(frame, saveResultData); //znevalidní záznamy, ale nezobrazí hlášku\r\n const mw = new MessageWindow(new UserMsgsBuilder(validationMessages));\r\n await mw.show();\r\n\r\n frame.validationManager.clearMultipleErrors(objectsIDs);\r\n }\r\n\r\n /**\r\n * Zobrazí validační zprávy jako dialog {@link MessageWindow} čekající na akci od uživatele.\r\n * @param validationErrors Validační chyby\r\n * @param obj Objekt, ke kterému validační chyby patří\r\n */\r\n public static async showValidationErrors(validationErrors: IValidationError[], obj?: OWObject): Promise<MessageButtonResult | null> {\r\n if (validationErrors?.length) {\r\n const message: IUserMsgsData = {\r\n objectIdentification: obj?.id,\r\n messages: validationErrors.map<IUserMsgItem>(error => ({\r\n type: ResultMessageType.error,\r\n message: error.errorMessage,\r\n })),\r\n };\r\n return await MessageWindow.showAlert(new UserMsgsBuilder([message]));\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport enum ObjectCheckingResult {\r\n error = 0, //Validační chyba (např. nevyplněné requrired nebo postponed pole)\r\n recommendedContinue = 1, //Není vyplněné recommended pole, ale uživatel potvrdil akci\r\n recommendedStop = 2, //Není vyplněné recommended pole a uživatel přerušil vykonávání akce kliknutím na zrušit\r\n clear = 3, //záznam je validní nez validační chyby\r\n}\r\n","/**\r\n * Interface primary - funkce execute lze spustit z formulare pres Enter\r\n * @generateInstanceClass\r\n * @includeToDoc\r\n */\r\nexport interface IPrimary {\r\n isActive: boolean;\r\n isPrimary: boolean;\r\n visible: boolean;\r\n execute(): void;\r\n}\r\n\r\nexport class IPrimary {\r\n private static _properties = [\"isActive\", \"isPrimary\", \"visible\"];\r\n private static _methods = [\"execute\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { Event as GlobalEvent } from \"../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { IBaseAction } from \"../Actions/IAction\";\r\n\r\nexport interface IDropDownMenuItem extends HTMLElement, IDisposable {\r\n icon: string;\r\n priority: number;\r\n action: IBaseAction;\r\n parent: IDropDownMenu;\r\n isOpened?: boolean;\r\n}\r\n\r\nexport class IDropDownMenuItem {\r\n private static _properties: (keyof IDropDownMenuItem)[] = [\"icon\", \"priority\", \"action\", \"parent\"];\r\n private static _methods: (keyof IDropDownMenuItem)[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") &&\r\n instance instanceof HTMLElement;\r\n }\r\n}\r\n\r\nexport interface IDropDownMenuItemWithSubmenu extends IDropDownMenuItem {\r\n isClickable: boolean;\r\n submenu: IDropDownMenu;\r\n}\r\n\r\nexport interface IDropDownMenu extends IDisposable {\r\n onClose: GlobalEvent<IDropDownMenu, any>;\r\n rootMenu: IDropDownMenu;\r\n openedSubmenu: IDropDownMenu;\r\n /** Zabrání vytvoření časovače pro automatické zavření menu */\r\n disableCloseTimeout: boolean;\r\n /** Časovač, po jehož vypršení dojde k automatickému zavření menu */\r\n closeTimeout: number;\r\n lastSelectedItem: IDropDownMenuItem;\r\n\r\n visible: boolean;\r\n hasPrimaryAction: boolean;\r\n\r\n removeItem(item: IDropDownMenuItem): void;\r\n addItemAfter(itemToAdd: IDropDownMenuItem, existingItem: IDropDownMenuItem): void;\r\n addItem(item: IDropDownMenuItem): void;\r\n clearItems(): void;\r\n show(startElement: HTMLElement | IDropDownMenuItem, event: Event): void;\r\n close(): void;\r\n closeAll(dontOpenOnNextClick?: boolean, focusLastOpenedTarget?: boolean): void;\r\n recalculatePosition(): void;\r\n orientation: Orientation;\r\n}\r\n\r\nexport enum Orientation {\r\n horizontal,\r\n vertical,\r\n}\r\n\r\nexport enum DropDownMenuHorizontalOpen {\r\n left,\r\n right,\r\n center,\r\n}\r\n\r\nexport enum DropDownMenuVerticalOpen {\r\n top,\r\n bottom,\r\n middle,\r\n}\r\n","import { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement, registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\n\r\nexport class DropDownMenuLoader extends DropDownMenuItem {\r\n /**Popisek pro loader*/\r\n protected _loaderElement: HTMLElement;\r\n\r\n public override set locKey(val: string) {\r\n if (this._captionElement) {\r\n Localization.getTextPromise(val).then((locItem) => this._captionElement.innerText = locItem);\r\n this._locKey = val;\r\n }\r\n }\r\n\r\n /**\r\n * Vytvoří položku dropdown menu, která má v ikoně animovaný loader a popisek.\r\n * @param loaderlocKey Popisek loaderu\r\n */\r\n public static createMenuLoader(loaderlocKey: string): DropDownMenuLoader {\r\n const element = new DropDownMenuLoader();\r\n element.locKey = loaderlocKey;\r\n return element;\r\n }\r\n\r\n protected override _createElement(): void {\r\n super._createElement();\r\n this.classList.add(\"DropDownMenuItem\", \"item-loader\");\r\n }\r\n\r\n protected override _createIconElement(): void {\r\n super._createIconElement();\r\n\r\n //loader\r\n this._loaderElement = createElement({ classes: \"element-loader\" });\r\n const loader = createElement({ classes: \"loader\" });\r\n const right = createElement({ classes: \"right\" });\r\n const left = createElement({ classes: \"left\" });\r\n\r\n this._loaderElement.appendChild(loader);\r\n\r\n loader.appendChild(right);\r\n right.appendChild(createElement({ classes: \"border\" }));\r\n\r\n loader.appendChild(left);\r\n left.appendChild(createElement({ classes: \"border\" }));\r\n this._iconElement.appendChild(this._loaderElement);\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuLoader\", DropDownMenuLoader);\r\n","import { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { ElementUtils } from \"../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { MenuType } from \"../Actions/MenuType\";\r\nimport { IDropDownMenu, IDropDownMenuItemWithSubmenu } from \"./DropDownInterfaces\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\n\r\nexport class DropDownMenuWithSubmenuItem extends DropDownMenuItem implements IDropDownMenuItemWithSubmenu {\r\n private _submenu: IDropDownMenu;\r\n private _submenuElement: HTMLElement;\r\n private _openingtimeout: number;\r\n\r\n public isClickable: boolean = false;\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n public override set locKey(v: string) {\r\n this._locKey = v;\r\n Localization.addLocData(this._captionElement, this._locKey);\r\n }\r\n\r\n public get submenu(): IDropDownMenu {\r\n return this._submenu;\r\n }\r\n\r\n public set submenu(val: IDropDownMenu) {\r\n this._submenu = val;\r\n\r\n // Nastaveni korenoveho menu\r\n if (this.parent) {\r\n if (this.parent.rootMenu)\r\n this._submenu.rootMenu = this.parent.rootMenu;\r\n else\r\n this._submenu.rootMenu = this.parent;\r\n }\r\n this.isEnabled = this.action ? this.action.enabledVisual : !!val;\r\n }\r\n\r\n public override set parent(val: IDropDownMenu) {\r\n this._parent = val;\r\n\r\n if (this.submenu) {\r\n if (this._parent.rootMenu)\r\n this._submenu.rootMenu = this._parent.rootMenu;\r\n else\r\n this._submenu.rootMenu = this._parent;\r\n }\r\n }\r\n\r\n public override get parent(): IDropDownMenu {\r\n return this._parent;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.visible = true;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\");\r\n if (!this.submenu)\r\n this.classList.add(\"disabled\");\r\n\r\n this._textElement = document.createElement(\"div\");\r\n this._textElement.classList.add(\"Text\");\r\n\r\n this._createIconElement();\r\n this._createCaptionElement();\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n\r\n this.appendChild(this._iconElement);\r\n this.appendChild(this._textElement);\r\n this._textElement.appendChild(this._captionElement);\r\n this._textElement.appendChild(this._submenuElement);\r\n\r\n this._setListener();\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n this._submenuElement = document.createElement(\"div\");\r\n this._submenuElement.classList.add(\"SubMenu\");\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n }\r\n\r\n public static createDropSubMenuItem(icon: string, locKey: string, subMenu: IDropDownMenu, priority: number = 15, menuType?: MenuType): DropDownMenuWithSubmenuItem {\r\n const element = new DropDownMenuWithSubmenuItem();\r\n\r\n element.icon = icon;\r\n element.locKey = locKey;\r\n element.submenu = subMenu;\r\n element.priority = priority;\r\n if (menuType != null) {\r\n element.setAttribute(\"data-tomenu\", MenuType[menuType]);\r\n }\r\n return element;\r\n }\r\n\r\n protected override _setListener(): void {\r\n const f_openSubmenu = () => {\r\n this.parent.openedSubmenu = this.submenu;\r\n\r\n this.submenu.show(this, null);\r\n this.submenu.lastSelectedItem = this;\r\n //this.Element.classList.add(\"selected\");\r\n };\r\n\r\n const f_closeSubmenu = () => {\r\n if (this.parent.openedSubmenu) {\r\n //this.Element.classList.remove(\"selected\");\r\n //logger.log(this.Parent.openedSubmenu);\r\n this.parent.openedSubmenu.close();\r\n this.parent.openedSubmenu = null;\r\n }\r\n };\r\n\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n if (this.parent.openedSubmenu == this.submenu)\r\n return;\r\n if (this._openingtimeout)\r\n clearTimeout(this._openingtimeout);\r\n e.stopImmediatePropagation();\r\n f_closeSubmenu();\r\n f_openSubmenu();\r\n }\r\n });\r\n\r\n this.registerEventListener(\"mouseenter\", () => {\r\n if (!this.parent || !this.parent.openedSubmenu || this.parent.openedSubmenu.disableCloseTimeout)\r\n return;\r\n\r\n if (this.parent.openedSubmenu.closeTimeout)\r\n clearTimeout(this.parent.openedSubmenu.closeTimeout);\r\n if (this.parent.openedSubmenu == this.submenu)\r\n return;\r\n this._openingtimeout = self.setTimeout(() => {\r\n f_closeSubmenu();\r\n f_openSubmenu();\r\n }, 300);\r\n });\r\n\r\n this.registerEventListener(\"mouseleave\", (e: MouseEvent) => {\r\n if (this._openingtimeout)\r\n clearTimeout(this._openingtimeout);\r\n\r\n if (this.parent.openedSubmenu) {\r\n if (this.parent.openedSubmenu.closeTimeout)\r\n clearTimeout(this.parent.openedSubmenu.closeTimeout);\r\n if (ElementUtils.inElement(this.parent.openedSubmenu as any, e))\r\n return;\r\n this.parent.openedSubmenu.closeTimeout = self.setTimeout(() => {\r\n f_closeSubmenu();\r\n }, 300);\r\n }\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n this.submenu.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuWithSubmenuItem\", DropDownMenuWithSubmenuItem);\r\n","import { Control } from \"../../UI.BaseControls/Control\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IBaseAction } from \"../Actions/IAction\";\r\nimport { IDropDownMenuItem } from \"./DropDownInterfaces\";\r\nimport { DropDownMenu } from \"./DropDownMenu\";\r\n\r\nexport class SeparatorMenuItem extends Control implements IDropDownMenuItem {\r\n protected _textElement: HTMLElement;\r\n protected _isRendered: boolean = false;\r\n\r\n public icon: string;\r\n public priority: number = 15;\r\n public action: IBaseAction;\r\n public parent: DropDownMenu;\r\n public isOpened: boolean;\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.priority = 15;\r\n this._createElement();\r\n }\r\n\r\n protected _createElement(): void {\r\n this.classList.add(\"Separator\");\r\n const el = document.createElement(\"div\");\r\n const el2 = document.createElement(\"div\");\r\n\r\n el.classList.add(\"Icon\");\r\n el2.classList.add(\"Line\");\r\n\r\n this.appendChild(el);\r\n this.appendChild(el2);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-SeparatorMenuItem\", SeparatorMenuItem);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { Event as GlobalEvent } from \"../../../Global/Base/Events\";\r\nimport { Key } from \"../../../Global/Base/Utils/EventUtils\";\r\nimport { StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { Control } from \"../../UI.BaseControls/Control\";\r\nimport { EventHelper } from \"../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { PopupMenu } from \"../../UI.BaseControls/PopupMenu\";\r\nimport { ElementUtils } from \"../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IWFAction } from \"../Actions/IAction\";\r\nimport { INodeAction } from \"../Actions/INodeAction\";\r\nimport { DropDownMenuHorizontalOpen, DropDownMenuVerticalOpen, IDropDownMenu, IDropDownMenuItem, Orientation } from \"./DropDownInterfaces\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\nimport { DropDownMenuLoader } from \"./DropDownMenuLoader\";\r\nimport { DropDownMenuWithSubmenuItem } from \"./DropDownMenuWithSubmenuItem\";\r\nimport { SeparatorMenuItem } from \"./SeparatorItem\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dropDown);\r\n\r\n/**\r\n * Třída reprezentující DropDownMenu\r\n */\r\nexport class DropDownMenu extends Control implements IDropDownMenu {\r\n //#region Events\r\n //public ItemAdded: Event<DropDownMenu, IDropDownMenuItem> = new Event<DropDownMenu, IDropDownMenuItem>();\r\n public onClose: GlobalEvent<DropDownMenu, any>;\r\n //ItemAdded, ItemRemoved\r\n //#endregion Events\r\n\r\n //#region Listeners\r\n private _windowResizeListener: EventListener;\r\n //#endregion Listeners\r\n\r\n //#region Properties\r\n /**\r\n * Orientace menu, bud vertikalni nebo horizontalni\r\n */\r\n public get orientation(): Orientation {\r\n return this._orientation;\r\n }\r\n\r\n public set orientation(val: Orientation) {\r\n this._orientation = val;\r\n\r\n if (this._orientation == Orientation.vertical)\r\n this.classList.add(\"Vertical\");\r\n else if (this._orientation == Orientation.horizontal)\r\n this.classList.add(\"Horizontal\");\r\n }\r\n\r\n public get horizontalOpenPosition(): DropDownMenuHorizontalOpen {\r\n return this._horizontalOpenPos;\r\n }\r\n\r\n public set horizontalOpenPosition(v: DropDownMenuHorizontalOpen) {\r\n this._horizontalOpenPos = v;\r\n }\r\n\r\n public get verticalOpenPosition(): DropDownMenuVerticalOpen {\r\n return this._verticalOpenPos;\r\n }\r\n\r\n public set verticalOpenPosition(v: DropDownMenuVerticalOpen) {\r\n this._verticalOpenPos = v;\r\n }\r\n\r\n public get itemsCount(): number {\r\n return this._items.size;\r\n }\r\n\r\n /**\r\n * NodeAction obsahujici seznam položek\r\n */\r\n public get nodeAction(): INodeAction {\r\n return this._nodeAction;\r\n }\r\n\r\n public set nodeAction(val: INodeAction) {\r\n this._nodeAction = val;\r\n this._parseItemByNodeAction();\r\n\r\n val.itemAdded.add(() => {\r\n this._parseItemByNodeAction();\r\n });\r\n val.itemRemoved.add(() => {\r\n this._parseItemByNodeAction();\r\n });\r\n }\r\n\r\n /**\r\n * Položka obsahuje kořenové menu (menu na začátku stromu)\r\n */\r\n public get rootMenu(): DropDownMenu {\r\n return this._rootMenu;\r\n }\r\n\r\n public set rootMenu(val: DropDownMenu) {\r\n this._rootMenu = val;\r\n }\r\n\r\n /**\r\n * Obsahuje aktuálně otevřené submenu menu\r\n */\r\n public get openedSubmenu(): DropDownMenu {\r\n return this._openedSubmenu;\r\n }\r\n\r\n public set openedSubmenu(val: DropDownMenu) {\r\n this._openedSubmenu = val;\r\n if (val) {\r\n this._openedSubmenu._lastOffsetShowLeft = this._lastOffsetShowLeft === 10 ? 30 : 10;\r\n }\r\n }\r\n\r\n /**\r\n * Nastavuje se v pripade ze menu pretika pres obrazovku, tak zobrazi sipky\r\n */\r\n public get isOverflow(): boolean {\r\n return this.classList.contains(\"overflow\");\r\n }\r\n\r\n public set isOverflow(val: boolean) {\r\n //logger.log(\"Overflow\", val);\r\n //this.classList.toggle(\"overflow\", val);\r\n if (val) {\r\n this.classList.add(\"overflow\");\r\n if (this.orientation === Orientation.vertical)\r\n this._popup.element.style.height = document.body.clientHeight + \"px\";\r\n else\r\n this._popup.element.style.width = document.body.clientWidth + \"px\";\r\n } else {\r\n this.classList.remove(\"overflow\");\r\n this._popup.element.style.height = \"auto\";\r\n }\r\n }\r\n\r\n /**\r\n * Zda je menu otevřené\r\n */\r\n public get isOpened(): boolean {\r\n return this._isOpened;\r\n }\r\n\r\n /**\r\n * Zda obsahuje nejaky primary action button\r\n */\r\n public set hasPrimaryAction(value: boolean) {\r\n this._hasPrimaryAction = value;\r\n if (this.rootMenu) this.rootMenu.hasPrimaryAction = value;\r\n }\r\n public get hasPrimaryAction(): boolean {\r\n if (this.rootMenu) return this.rootMenu.hasPrimaryAction;\r\n else return this._hasPrimaryAction;\r\n }\r\n //#endregion Properties\r\n\r\n //#region Fields\r\n public lastSelectedItem: IDropDownMenuItem;\r\n public closeTimeout: number = null;\r\n public disableCloseTimeout: boolean;\r\n\r\n private _popup: PopupMenu;\r\n private _items: Set<IDropDownMenuItem>;\r\n private _nodeAction: INodeAction;\r\n private _priorityIndex: any;\r\n private _orientation: Orientation;\r\n private _rootMenu: DropDownMenu = null;\r\n private _lastOffsetShowLeft: number;\r\n private _openedSubmenu: DropDownMenu = null;\r\n private _isOpened: boolean = false;\r\n private _lastStartElement: HTMLElement | IDropDownMenuItem;\r\n private _lastOpenedTarget: HTMLElement;\r\n private _emptyDropDownMenu: DropDownMenu;\r\n private _horizontalOpenPos: DropDownMenuHorizontalOpen;\r\n private _verticalOpenPos: DropDownMenuVerticalOpen;\r\n private _contentElement: HTMLDivElement;\r\n private _upBtnElement: HTMLElement;\r\n private _downBtnElement: HTMLElement;\r\n private _filter: string = \"\";\r\n private _hasPrimaryAction: boolean = false;\r\n\r\n private static _lastOpenedDropdown: DropDownMenu;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.onClose = new GlobalEvent<DropDownMenu, any>();\r\n this.visible = false;\r\n this._items = new Set<IDropDownMenuItem>();\r\n this._priorityIndex = {};\r\n this._lastOffsetShowLeft = 10;\r\n this._orientation = Orientation.vertical;\r\n this.disableCloseTimeout = false;\r\n\r\n this.classList.add(\"DropDownMenu\");\r\n this.classList.add(\"DesktopMenu\");\r\n\r\n this._verticalOpenPos = DropDownMenuVerticalOpen.bottom;\r\n this._horizontalOpenPos = DropDownMenuHorizontalOpen.right;\r\n\r\n if (this._orientation == Orientation.vertical)\r\n this.classList.add(\"Vertical\");\r\n else if (this._orientation == Orientation.horizontal)\r\n this.classList.add(\"Horizontal\");\r\n\r\n this._createElement();\r\n this.setAttribute(\"tabindex\", \"1\");\r\n\r\n /**\r\n * Menu je sdílené pro více řádků záznamů. Zobrazuje se ale v PopupMenu, které sdílené není a při zavření se odstraňuje z DOM.\r\n * Menu je v tu chvíli potomkem, takže by se disposovalo také, pokud by zůstal disposeOnDetach nastavený na true.\r\n */\r\n this.disposeOnDetach = false;\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n this._setListener();\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n public filter(filterText: string): void {\r\n this._filter = StringUtils.removeAccents(filterText.trim());\r\n if (!filterText) {\r\n this.clearFilter();\r\n return;\r\n }\r\n const regExp = new RegExp(this._filter, \"i\");\r\n for (const item of this._items) {\r\n const it = item as DropDownMenuItem;\r\n const fvalue: string = it.filterLoc;\r\n if (fvalue == undefined)\r\n continue;\r\n\r\n if (regExp.test(fvalue)) {\r\n //it.HighlightCaption(fvalue);\r\n it.highlightCaption(this._filter);\r\n it.visible = true;\r\n } else {\r\n it.highlightCaption(\"\");\r\n it.visible = false;\r\n }\r\n }\r\n }\r\n\r\n public clearFilter(): void {\r\n for (const item of this._items) {\r\n const it = item as DropDownMenuItem;\r\n it.visible = true;\r\n it.highlightCaption(\"\");\r\n }\r\n }\r\n\r\n public addItem(item: IDropDownMenuItem): void {\r\n this._addItem(item);\r\n\r\n this._redraw();\r\n //this.ItemAdded.trigger(this, item);\r\n this.callEvent(\"ItemAdded\", item);\r\n }\r\n\r\n /**\r\n * Přidání nového DropDownMenuItemu za určený existující\r\n * @param itemToAdd Item k přidání\r\n * @param existingItem Existující item\r\n */\r\n public addItemAfter(itemToAdd: IDropDownMenuItem, existingItem: IDropDownMenuItem): void {\r\n if (!this._contentElement.contains(itemToAdd as HTMLElement)) {\r\n (existingItem as HTMLElement).insertAdjacentElement(\"afterend\", itemToAdd);\r\n this._addItem(itemToAdd);\r\n this.callEvent(\"ItemAdded\", itemToAdd);\r\n this._redraw();\r\n }\r\n }\r\n\r\n /**\r\n * Přidá položku na určitou pozici za určený index.\r\n * @param itemToAdd Přidávaná položka.\r\n * @param existingIndex Pořadí existující položky, za kterou se má nová přidat.\r\n */\r\n public addItemAfterIndex(itemToAdd: IDropDownMenuItem, existingIndex: number): void {\r\n if (existingIndex >= this._items.size) return;//index je mimo rozsah existujícího seznamu, nic nepřidávej\r\n let i: number = 0;\r\n for (const menuItem of this._items) {\r\n if (i === existingIndex) {\r\n this.addItemAfter(itemToAdd, menuItem);\r\n return;\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n public removeItem(item: IDropDownMenuItem): void {\r\n this._remItem(item);\r\n\r\n this._redraw();\r\n //this.ItemAdded.trigger(this, item);\r\n this.callEvent(\"ItemRemoved\", item);\r\n }\r\n\r\n private _addItem(item: IDropDownMenuItem): void {\r\n if (!this._priorityIndex[item.priority])\r\n this._priorityIndex[item.priority] = [];\r\n this._priorityIndex[item.priority].push(item);\r\n item.parent = this;\r\n this._items.add(item);\r\n }\r\n\r\n private _remItem(item: IDropDownMenuItem): void {\r\n this._items?.delete(item);\r\n\r\n const obj = Object.keys(this._priorityIndex);\r\n for (const priority_list of obj) {\r\n const items = this._priorityIndex[priority_list];\r\n const indexOfItem = items.indexOf(item);\r\n if (indexOfItem > -1)\r\n items.splice(indexOfItem, 1);\r\n }\r\n }\r\n\r\n public clearItems(): void {\r\n this._priorityIndex = {};\r\n\r\n this._items.clear();\r\n }\r\n\r\n private _getHeightRelative(): number {\r\n let h = 0;\r\n\r\n for (const i of this._items) {\r\n //logger.log(\"HR\", (i as any).offsetWidth, (i as any).offsetHeight);\r\n const th = (i as any).offsetHeight;\r\n if (th != 0) {\r\n h += th;\r\n continue;\r\n }\r\n\r\n if (i instanceof SeparatorMenuItem) {\r\n h += 7;\r\n } else {\r\n h += 27;\r\n }\r\n }\r\n\r\n return h;\r\n }\r\n\r\n private _getWidthRelative(): number {\r\n let h = 0;\r\n\r\n for (const i of this._items) {\r\n const th = (i as any).offsetWidth;\r\n if (th != 0) {\r\n h += th;\r\n continue;\r\n }\r\n if (i instanceof SeparatorMenuItem) {\r\n h += 7;\r\n } else {\r\n h += 220;\r\n }\r\n }\r\n\r\n return h;\r\n }\r\n\r\n private _getMaxHeightOneItemRelative(): number {\r\n let h = 0;\r\n\r\n const w = this.getBoundingClientRect();\r\n if (w && w.height)\r\n return w.height;\r\n\r\n for (const i of this._items) {\r\n const th = (i as any).offsetHeight;\r\n if (th != 0 && th > h) {\r\n h = th;\r\n continue;\r\n }\r\n }\r\n\r\n if (h == 0)\r\n return 27;\r\n return h;\r\n }\r\n\r\n private _getMaxWidthOneItemRelative(): number {\r\n let h = 0;\r\n\r\n const w = this.getBoundingClientRect();\r\n if (w && w.width)\r\n return w.width;\r\n\r\n if (this._items) {\r\n for (const i of this._items) {\r\n const th = (i as any).offsetWidth;\r\n if (th != 0 && th > h) {\r\n h = th;\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n if (h == 0)\r\n return 270;\r\n return h;\r\n }\r\n\r\n /**\r\n * Rozparsovani NodeAction a vytvoření položek do menu\r\n */\r\n private _parseItemByNodeAction(): void {\r\n this._items.clear();\r\n this._priorityIndex = {};\r\n\r\n for (const a of this._nodeAction.actions) {\r\n if (a instanceof INodeAction) {\r\n const d = new DropDownMenu();\r\n d.nodeAction = a;\r\n const item = new DropDownMenuWithSubmenuItem();\r\n item.action = a;\r\n if (a.locKey)\r\n item.locKey = a.locKey;\r\n\r\n item.priority = a.priority;\r\n item.submenu = d;\r\n //this.addItem(new DropDownMenuWithSubmenuItem(\"\", a.LocKey, a.Priority, d));\r\n this._addItem(item);\r\n } else {\r\n const item = new DropDownMenuItem();\r\n item.action = a;\r\n if (a instanceof IWFAction) {\r\n item.setCaption(a.caption);\r\n }\r\n this._addItem(item);\r\n }\r\n }\r\n this._redraw();\r\n }\r\n\r\n protected _createElement(): void {\r\n this._contentElement = document.createElement(\"div\");\r\n this._upBtnElement = document.createElement(\"div\");\r\n this._downBtnElement = document.createElement(\"div\");\r\n\r\n this._upBtnElement.classList.add(\"DropDownScrollUp\", \"disabled\");\r\n this._downBtnElement.classList.add(\"DropDownScrollDown\");\r\n this._contentElement.classList.add(\"DropDownMenuContent\");\r\n this.appendChild(this._upBtnElement);\r\n this.appendChild(this._contentElement);\r\n this.appendChild(this._downBtnElement);\r\n }\r\n\r\n private _redraw(): void {\r\n //mazu pouze elementy, ktere nejsou v items, aby nedochazelo k detach udalosti\r\n for (let i = 0; i < this._contentElement.childNodes.length; i++) {\r\n const element: any = this._contentElement.childNodes[i];\r\n\r\n if (!this._items?.has(element)) {\r\n this._contentElement.removeChild(element);\r\n i--;\r\n }\r\n }\r\n\r\n const obj = Object.keys(this._priorityIndex);\r\n for (const priority_list of obj) {\r\n const items = this._priorityIndex[priority_list];\r\n for (const item of items) {\r\n if (!this._contentElement.contains(item))\r\n this._contentElement.appendChild(item);\r\n }\r\n }\r\n }\r\n\r\n private _setListener(): void {\r\n const fn_scroll = (scroll: number) => {\r\n if (scroll < 0) {\r\n if (this.orientation == Orientation.vertical)\r\n this._contentElement.scrollTop -= 50;\r\n else\r\n this._contentElement.scrollLeft -= 100;\r\n } else {\r\n if (this.orientation == Orientation.vertical)\r\n this._contentElement.scrollTop += 50;\r\n else\r\n this._contentElement.scrollLeft += 100;\r\n }\r\n if (this.orientation == Orientation.vertical) {\r\n this._downBtnElement.classList.toggle(\"disabled\", this._contentElement.scrollTop + this._contentElement.clientHeight >= (this._contentElement.scrollHeight - 3));\r\n this._upBtnElement.classList.toggle(\"disabled\", this._contentElement.scrollTop == 0);\r\n } else {\r\n this._downBtnElement.classList.toggle(\"disabled\", this._contentElement.scrollLeft + this._contentElement.clientWidth >= (this._contentElement.scrollWidth - 3));\r\n this._upBtnElement.classList.toggle(\"disabled\", this._contentElement.scrollLeft == 0);\r\n }\r\n };\r\n this.registerEventListener(\"mouseenter\", () => {\r\n if (this.closeTimeout)\r\n clearTimeout(this.closeTimeout);\r\n if (this.openedSubmenu && this.openedSubmenu.lastSelectedItem)\r\n (this.openedSubmenu.lastSelectedItem as any).classList.remove(\"selected\");\r\n });\r\n\r\n this.registerEventListener(\"mouseleave\", () => {\r\n if (this.openedSubmenu && this.openedSubmenu.lastSelectedItem)\r\n (this.openedSubmenu.lastSelectedItem as any).classList.add(\"selected\");\r\n });\r\n\r\n this._eventsController.addListener(this._upBtnElement, \"click\", () => {\r\n fn_scroll(-1);\r\n });\r\n\r\n this._eventsController.addListener(this._downBtnElement, \"click\", () => {\r\n fn_scroll(1);\r\n });\r\n\r\n this._eventsController.addListener(this._contentElement, \"wheel\", (e: WheelEvent) => {\r\n fn_scroll(e.deltaY < 0 ? -1 : 1);\r\n //e.preventDefault();\r\n }, { options: { passive: true } });\r\n\r\n // všechny dropdowny zavíráme pokud došlo ke kliknutí někam do okna (i pokud došlo k zastavení této události - událost \"clickCancelled\")\r\n // Výjimkou je klik někam do menu nebo zobrazený message box\r\n const wclick = (e: MouseEvent | CustomEvent) => {\r\n if (this._lastStartElement == null || this.rootMenu != null || ElementUtils.inElement(this as HTMLElement, e)) {\r\n return;\r\n }\r\n\r\n let os = this.openedSubmenu;\r\n while (os) {\r\n if (ElementUtils.inElement(os as HTMLElement, e)) {\r\n return;\r\n }\r\n os = os.openedSubmenu;\r\n }\r\n\r\n const clickedOnSameElement = this._lastStartElement instanceof HTMLElement && this._lastStartElement as HTMLElement === e.target;\r\n this.closeAll(clickedOnSameElement);\r\n };\r\n\r\n this._eventsController.addListener(window, \"click\", wclick);\r\n this._eventsController.addListener(window, \"clickCancelled\", wclick);\r\n\r\n this._eventsController.addListener(this, \"keydown\", (e: KeyboardEvent) => {\r\n if (e.key === Key.Escape) { //Escape\r\n this.closeLastOpenedDropDown();\r\n e.stopPropagation();\r\n if (this._lastOpenedTarget) {\r\n // Je žádoucí po zavření vrátit focus zpět na element, který dropdown otevřel.\r\n this._lastOpenedTarget.focus();\r\n }\r\n }\r\n });\r\n this._eventsController.addListener(window, \"keydown\", (e: KeyboardEvent) => {\r\n if (e.key === Key.Escape) { //Escape\r\n this.closeLastOpenedDropDown();\r\n e.stopPropagation();\r\n }\r\n if (this.isOpened && e.key === Key.Enter) {\r\n if (this.hasPrimaryAction) this.closeAll(true);\r\n else e.stopPropagation();\r\n }\r\n });\r\n this._eventsController.addListener(this, \"keyup\", (e: KeyboardEvent) => {\r\n if (this.isOpened && e.key === Key.Enter) {\r\n if (this.hasPrimaryAction) this.closeAll(true);\r\n else e.stopPropagation();\r\n }\r\n });\r\n }\r\n\r\n private _cleanupLastElement(resetLastElement: boolean = false): void {\r\n if (this._lastStartElement == null)\r\n return;\r\n\r\n if (!(this._lastStartElement instanceof DropDownMenuItem))\r\n (this._lastStartElement as HTMLElement).classList.remove(\"isActive\");\r\n\r\n if (resetLastElement)\r\n this._lastStartElement = null;\r\n }\r\n\r\n /**\r\n * Zobrazi menu\r\n * @param startElement Uvodni element, ze ktereho se vypocitava zobrazovana poloha, pokud je null, bere se to z udalosti\r\n * @param event Udalost, ktera predchazi zobrazeni menu\r\n * @param focusFirstItem Zda zaměřit první prvek\r\n */\r\n public show(startElement: HTMLElement | DropDownMenuItem = null, event: Event, focusFirstItem: boolean = false): void {\r\n if (startElement == null) {\r\n logger.error(\"Element of origin must be passed\");\r\n return;\r\n }\r\n\r\n if (event)\r\n EventHelper.stopPropagation(event);\r\n\r\n // druhé otevření stejného dialogu ho zavře (resp. zavře se kliknutí a znovu se neotvírá)\r\n if (this._lastStartElement === startElement && DropDownMenu._lastOpenedDropdown === this) {\r\n this._lastStartElement = null;\r\n DropDownMenu._lastOpenedDropdown = null;\r\n return;\r\n }\r\n\r\n if (this._items?.size === 0)\r\n return;\r\n\r\n this._popup = new PopupMenu(this, false, \"auto\", \"auto\", \"0\", \"0\");\r\n this._popup.element.style.overflow = \"visible\";\r\n this.visible = true;\r\n\r\n if (focusFirstItem) {\r\n for (const item of this._items) {\r\n if (item instanceof IDropDownMenuItem) {\r\n item.focus();\r\n break;\r\n }\r\n }\r\n } else {\r\n this.focus();\r\n }\r\n\r\n this.isOverflow = false;\r\n this._isOpened = true;\r\n this._lastStartElement = startElement;\r\n this._lastOpenedTarget = startElement;\r\n\r\n // jako poslední otevřené menu je potřeba si pamatovat pouze hlavní menu (Root) - podřízená menu se nezavírají klikem\r\n if (this.rootMenu == null && event != null)\r\n DropDownMenu._lastOpenedDropdown = this;\r\n\r\n // pokud obsahuje nejake otevrene submenu je pri znovu otevreni zavrene\r\n if (this.openedSubmenu) {\r\n this.openedSubmenu.close();\r\n this.openedSubmenu = null;\r\n }\r\n\r\n this.recalculatePosition();\r\n\r\n // při změně velikosti okna se přepočítá i pozice popupu, aby zůstal u svého elementu\r\n if (!this._windowResizeListener) {\r\n this._windowResizeListener = () => this.recalculatePosition();\r\n this._eventsController.addListener(window, \"resize\", this._windowResizeListener);\r\n }\r\n\r\n this.callEvent(\"open\");\r\n\r\n if (this._popup.visible)\r\n this._popup.setVisibility(false);\r\n }\r\n\r\n /**\r\n * Zobrazí prázdné dropdownmenu s loaderem.\r\n * @param locKey Popisek k loaderu. Defaultní hodnota \"Prosím čekejte\"\r\n */\r\n public showEmpty(element: HTMLElement, e: Event, locKey: string = \"GUI-638298\"): void {\r\n if (this.isOpened)\r\n return;\r\n if (!this._emptyDropDownMenu)\r\n this._emptyDropDownMenu = this._renderEmpty(locKey);\r\n this._emptyDropDownMenu.show(element, e);\r\n }\r\n\r\n /**\r\n * Vytvoří menu s loaderem a popiskem\r\n * @param locKey Popisek k loaderu. Defaultní hodnota \"Prosím čekejte\"\r\n */\r\n private _renderEmpty(locKey: string = \"GUI-638298\"): DropDownMenu {\r\n const actionsMenu = new DropDownMenu();\r\n actionsMenu.classList.add(\"loading\");\r\n actionsMenu.addItem(DropDownMenuLoader.createMenuLoader(locKey));\r\n return actionsMenu;\r\n }\r\n\r\n /**\r\n * Přepočítá pozici a nastaví ji popupu\r\n */\r\n public recalculatePosition(): void {\r\n if (!this.isOpened)\r\n return;\r\n\r\n const menuWidth = this.offsetWidth > 0 ? this.offsetWidth : this._getMaxWidthOneItemRelative();\r\n const menuHeight = this.parentElement && this.parentElement.offsetHeight ? this.parentElement.offsetHeight : this._getMaxHeightOneItemRelative();\r\n\r\n //#region TEMP Metoda pro kontrolu pozice pri otevreni\r\n const fn_checkposition_vertical = (l: number,\r\n t: number,\r\n w: number = 0,\r\n h: number = 0,\r\n parentElement: HTMLElement | DropDownMenuItem | Event = null): { left: number; top: number } => {\r\n if (w === 0)\r\n w = menuWidth;\r\n if (h === 0)\r\n h = menuHeight || this._getHeightRelative();\r\n\r\n const rt = {\r\n left: l,\r\n top: t,\r\n };\r\n // pokud presahuje pravy okraj obrazovky\r\n if ((rt.left + w) > document.body.clientWidth) {\r\n if (parentElement instanceof DropDownMenuItem) {\r\n rt.left = rt.left - 2 * w + 3;\r\n }\r\n }\r\n\r\n // pokud presahuje levy okraj obrazovky\r\n if (rt.left < 0) {\r\n //rt.top += h - 3;\r\n rt.left = this._lastOffsetShowLeft; // == 10 ? 30 : 10;\r\n }\r\n\r\n // Zajistí, že vertikální menu horizontálně nikdy nepřeteče přes okraj obrazovky (např. filtry při příliš dlouhém názvu nebo změně velikosti okna)\r\n this.style.maxWidth = `calc(100vw - ${rt.left}px)`; // `\r\n\r\n // pokud by bylo zobrazeno moc dole\r\n if ((rt.top + h) > document.body.clientHeight) {\r\n rt.top = rt.top - h;\r\n }\r\n // pokud se nevleze na obrazovku ani dole ani nahore je overflow\r\n if (rt.top < 0) {\r\n rt.top = 0;\r\n if ((rt.top + h) > document.body.clientHeight)\r\n this.isOverflow = true;\r\n }\r\n\r\n return rt;\r\n };\r\n //#endregion TEMP Metoda pro kontrolu pozice pri otevreni\r\n //#region TEMP Metoda pro kontrolu pozice pri otevreni\r\n const fn_checkposition_horizontal = (l: number, t: number, w: number = 0, h: number = 0):\r\n { left: number; top: number } => {\r\n if (w === 0)\r\n w = menuWidth || this._getWidthRelative();\r\n if (h === 0)\r\n h = menuHeight;\r\n\r\n const rt = {\r\n left: l,\r\n top: t,\r\n };\r\n // pokud presahuje pravy okraj obrazovky\r\n if ((rt.left + w) > document.body.clientWidth) {\r\n //rt.top += h;\r\n rt.left = rt.left - w + 3;\r\n }\r\n\r\n // pokud presahuje levy okraj obrazovky\r\n if (rt.left < 0) {\r\n rt.left = 0;\r\n if ((rt.left + w) > document.body.clientWidth)\r\n this.isOverflow = true;\r\n }\r\n\r\n // pokud by bylo zobrazeno moc dole\r\n if ((rt.top + h) > document.body.clientHeight) {\r\n rt.top = rt.top - h;\r\n }\r\n\r\n // pokud se nevleze na obrazovku ani dole ani nahore je overflow\r\n if (t < 0) {\r\n rt.top = 0;\r\n }\r\n\r\n return rt;\r\n };\r\n //#endregion TEMP Metoda pro kontrolu pozice pri otevreni\r\n\r\n let top = \"0\";\r\n let left = \"0\";\r\n\r\n if (this._lastStartElement != null) {\r\n const startElement = this._lastStartElement;\r\n if (startElement instanceof DropDownMenuItem) {\r\n const rp = (startElement as HTMLElement).getBoundingClientRect();\r\n\r\n // Nastavovani pozice pokud je vertical nadrazeny prvek\r\n if (startElement.parent && startElement.parent.orientation === Orientation.vertical) {\r\n const l = rp.left + rp.width - 3;\r\n const t = rp.top;\r\n\r\n const f = fn_checkposition_vertical(l, t, menuWidth, menuHeight, startElement);\r\n left = f.left.toString() + \"px\";\r\n top = f.top.toString() + \"px\";\r\n } else {\r\n left = (rp.left).toString() + \"px\";\r\n top = (rp.top + rp.height).toString() + \"px\";\r\n }\r\n } else {\r\n // pokud startElement neni jine dropdownmenu pridame mu tridu isActive\r\n (startElement as HTMLElement).classList.add(\"isActive\");\r\n const rp = (startElement as HTMLElement).getBoundingClientRect();\r\n let l = rp.left + rp.width - menuWidth;\r\n const t = rp.top + rp.height;\r\n\r\n //#region Dodatečné určení startovací pozice dropdownmenu\r\n if (this._horizontalOpenPos === DropDownMenuHorizontalOpen.left) {\r\n l = rp.left;\r\n } else if (this._horizontalOpenPos === DropDownMenuHorizontalOpen.center) {\r\n l = rp.left - (rp.width / 2);\r\n } else if (this._horizontalOpenPos === DropDownMenuHorizontalOpen.right) {\r\n l = rp.left + rp.width - menuWidth;\r\n }\r\n //#endregion Dodatečné určení startovací pozice dropdownmenu\r\n\r\n let f: { left: number; top: number };\r\n\r\n if (this.orientation === Orientation.vertical) {\r\n f = fn_checkposition_vertical(l, t, menuWidth, menuHeight, (startElement as HTMLElement));\r\n } else\r\n f = fn_checkposition_horizontal(l, t, menuWidth, menuHeight);\r\n\r\n left = f.left + \"px\";\r\n top = f.top + \"px\";\r\n }\r\n } else {\r\n if (event && event instanceof MouseEvent) {\r\n const l = event.pageX;\r\n const t = event.pageY;\r\n let f: { left: number; top: number };\r\n\r\n if (this.orientation === Orientation.vertical)\r\n f = fn_checkposition_vertical(l, t, menuWidth, menuHeight, event);\r\n else\r\n f = fn_checkposition_horizontal(l, t, menuWidth, menuHeight);\r\n\r\n left = f.left.toString() + \"px\";\r\n top = f.top.toString() + \"px\";\r\n }\r\n }\r\n\r\n this._popup.setIndent(top, left);\r\n }\r\n\r\n /**\r\n * Zavre akutalni a vsechny podrizene nabidky\r\n */\r\n public close(dontOpenOnNextClick: boolean = false): void {\r\n this._cleanupLastElement(!dontOpenOnNextClick);\r\n\r\n this._isOpened = false;\r\n if (this.openedSubmenu) {\r\n this.openedSubmenu.close();\r\n this.openedSubmenu = null;\r\n }\r\n if (this._popup) {\r\n this._popup.setVisibility(false);\r\n this._popup.dispose();\r\n this._popup = null;\r\n }\r\n if (this.lastSelectedItem)\r\n (this.lastSelectedItem as DropDownMenuItem).classList.remove(\"selected\");\r\n\r\n if (this._windowResizeListener) {\r\n this._eventsController.removeListener(window, \"resize\", this._windowResizeListener);\r\n this._windowResizeListener = null;\r\n }\r\n\r\n this.lastSelectedItem = null;\r\n if (!dontOpenOnNextClick && DropDownMenu._lastOpenedDropdown === this) {\r\n DropDownMenu._lastOpenedDropdown = null;\r\n }\r\n\r\n this.callEvent(\"closed\");\r\n this.visible = false;\r\n }\r\n\r\n /**\r\n * Zavře poslední otevřený DropDownMenu\r\n */\r\n public closeLastOpenedDropDown(): void {\r\n if (this.openedSubmenu) {\r\n this.openedSubmenu.close();\r\n this.openedSubmenu = null;\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n /**\r\n * Zavre cele menu od korenoveho elementu\r\n */\r\n public closeAll(dontOpenOnNextClick: boolean = false, focusLastOpenedTarget: boolean = false): void {\r\n // Jinak se volají všechny následné \"onClose\" události, i když žádné menu není zobrazené a pak to rozbíjí listenery kontextového menu\r\n if (!this._isOpened) {\r\n return;\r\n }\r\n\r\n if (this.rootMenu)\r\n this.rootMenu.close(dontOpenOnNextClick);\r\n else\r\n this.close(dontOpenOnNextClick);\r\n\r\n if (focusLastOpenedTarget && this._lastOpenedTarget) {\r\n // Je žádoucí po zavření vrátit focus zpět na element, který dropdown otevřel.\r\n this._lastOpenedTarget.focus();\r\n }\r\n\r\n this.onClose.trigger(this, null);\r\n }\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n /**\r\n * Destruktor\r\n */\r\n public override dispose(): void {\r\n this.remove();\r\n\r\n this._items?.forEach((item) => item.dispose());\r\n this._items.clear();\r\n\r\n super.dispose();\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenu\", DropDownMenu);\r\n","import { Event } from \"../../../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../../../Global/Base/IDisposable\";\r\nimport { EMPTY_ITEM_RIGHTS_COLLECTION } from \"../../../../../Global/Base/Rights/RightTypes\";\r\nimport { ActionContext, ActionType, IAction } from \"../../../../UI.Controls/Actions/IAction\";\r\nimport { INodeAction } from \"../../../../UI.Controls/Actions/INodeAction\";\r\nimport { MenuType } from \"../../../../UI.Controls/Actions/MenuType\";\r\nimport { ControlParams } from \"../../Controls/ControlInterfaces\";\r\nimport { ContainerToolbarControl } from \"../../Toolbar/ToolbarControl\";\r\nimport { XGAction } from \"./XGAction\";\r\n\r\nexport enum NodeActionType { naNode, naPage, naGroup }\r\n\r\n/**\r\n * NodeAction je ovládací prvek realizující uzlový prvek pro organizaci Akcí, Formulářů a Tisků v ToolBarech formulářů.\r\n * http://sharepoint/vyroba/Dokumentace/NodeAction%20-%20nogen.aspx\r\n */\r\nexport class NodeAction extends XGAction implements ContainerToolbarControl, IDisposable, INodeAction {\r\n //#region Events\r\n public itemAdded: Event<INodeAction, IAction> = new Event<INodeAction, IAction>();\r\n public itemRemoved: Event<INodeAction, IAction> = new Event<INodeAction, IAction>();\r\n //#endregion Events\r\n\r\n //#region Fields\r\n public actions: IAction[] = []; //pole akci, ze kterych se vybiraji akce, ktere se budou vkladat do menu\r\n public ctrlID: string;\r\n public nodeActionType: NodeActionType;\r\n\r\n private _hasVisibleChild: boolean = false;\r\n\r\n /**\r\n * Nadrizeny prvek v toolbaru\r\n */\r\n public parentAction: ContainerToolbarControl;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public override get interactive(): boolean {\r\n return this._interactive;\r\n }\r\n\r\n /**\r\n * Slouzi k nastavovani ReadOnly na needitacnich komponentach\r\n * Zneaktivni tlacitko, kdyz otevru modalni okno.\r\n */\r\n public override set interactive(value: boolean) {\r\n this._interactive = value;\r\n if (this.nodeActionType != NodeActionType.naNode)\r\n return;\r\n\r\n this._updateActiveState();\r\n }\r\n\r\n public override get enabled(): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * NodeAction je vzdy povolena, nema nastaveni prav na Enabled\r\n */\r\n public override set enabled(_value: boolean) {\r\n // Prázdná metoda\r\n }\r\n\r\n public override set visible(value: boolean) {\r\n if (!value || (this.actions != null && this.actions.length > 0 && this._hasVisibleChild)) // pokud chceme zviditelnit NodeAction, která nemá žádné akce, zůstane neviditelná\r\n super.visible = value;\r\n }\r\n\r\n public override get visible(): boolean {\r\n return super.visible;\r\n }\r\n\r\n public override get context(): ActionContext {\r\n return ActionContext.none; // TODO: bude moci být asi v obou menu a bude se řídit podle toho, kam se vytvoří\r\n }\r\n\r\n public override get actionType(): ActionType {\r\n return ActionType.node;\r\n }\r\n\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n public static createDefault(): NodeAction {\r\n return new NodeAction({\r\n element: document.createElement(\"div\"),\r\n originalRightsDefinition: EMPTY_ITEM_RIGHTS_COLLECTION,\r\n });\r\n }\r\n\r\n constructor(params: ControlParams) {\r\n super(params);\r\n\r\n const nat = this.getDataAttr(\"NodeActionType\");\r\n\r\n switch (nat) {\r\n case \"naGroup\":\r\n this.nodeActionType = NodeActionType.naGroup;\r\n break;\r\n\r\n case \"naPage\":\r\n this.nodeActionType = NodeActionType.naPage;\r\n break;\r\n\r\n case \"naNode\":\r\n case null:\r\n this.nodeActionType = NodeActionType.naNode;\r\n this.setToMenu(MenuType.mtNone);\r\n break;\r\n }\r\n\r\n this.element.classList.add(\"NodeAction\");\r\n this.ctrlID = this.element.getAttribute(\"data-ctrlid\");\r\n //Node action je pri vytvoreni skryta, protoze akce se do ni pridavaji az pozdeji.\r\n this.visible = false;\r\n this._enabled = true;\r\n this.parentAction = null;\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n protected override async _internalExecute(): Promise<void> {\r\n // Prázdná metoda\r\n }\r\n\r\n /**\r\n * Pokud jsou vsechny podrizene akce neviditelne nebo zadnou akci nema, tak nastavim groupu jako skrytou\r\n */\r\n private _checkChildrenAndSetVisibility(): void {\r\n let newVisible = false;\r\n for (let i = 0; i < this.actions?.length; i++) {\r\n if (this.actions[i].visible) {\r\n newVisible = true;\r\n break;\r\n }\r\n }\r\n this._hasVisibleChild = newVisible;\r\n this.visible = newVisible;\r\n }\r\n\r\n /**Najde masternode*/\r\n public findMasterNode(ctrlID: string): NodeAction {\r\n const action: NodeAction = this._findAction(ctrlID);\r\n\r\n if (action != null)\r\n return action;\r\n else\r\n return null;\r\n }\r\n\r\n /**Najde konkretni akci*/\r\n private _findAction(ctrlID: string): NodeAction {\r\n for (const a of this.actions) {\r\n if (a instanceof NodeAction) {\r\n const action: NodeAction = a;\r\n if (ctrlID != null && action.ctrlID == ctrlID) {\r\n return action;\r\n } else\r\n action.findMasterNode(ctrlID);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _pushActionToIndex(action: IAction, index: number): void {\r\n if (index < this.actions.length) {\r\n this.actions.splice(index, 0, action);\r\n } else {\r\n this.actions.push(action);\r\n }\r\n }\r\n\r\n public addAction(action: IAction): void {\r\n let position = this.actions.length;\r\n\r\n if (action.priority) {\r\n for (let i = 0; i < this.actions.length; i++) {\r\n if (this.actions[i].priority > action.priority) {\r\n position = i;\r\n break;\r\n }\r\n }\r\n }\r\n this._pushActionToIndex(action, position);\r\n if (action instanceof INodeAction)\r\n action.parentAction = this;\r\n this._events.add(action.visibilityChanged, () => this._checkChildrenAndSetVisibility());\r\n this._checkChildrenAndSetVisibility();\r\n this.itemAdded.trigger(this, action);\r\n }\r\n\r\n /**\r\n * Odstrani akci z nadrizeneho elementu\r\n */\r\n public removeAction(action: IAction): void {\r\n this.actions?.splice(this.actions.indexOf(action), 1);\r\n //if (action.ToolbarButton.Element)\r\n // action.ToolbarButton.Element.remove();\r\n if (action instanceof INodeAction)\r\n action.parentAction = null;\r\n this._checkChildrenAndSetVisibility();\r\n this.itemRemoved.trigger(this, action);\r\n }\r\n\r\n //TODO: MV - toto se asi stejne nikde nevola\r\n //public CreateButton(): XGToolbarMenuButton {\r\n // return new ToolbarMenuButton(this.Element, this);\r\n //}\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n public override dispose(): void {\r\n this.parentAction?.removeAction(this);\r\n this.actions?.forEach(action => action.dispose());\r\n this.actions = [];\r\n this.itemAdded.removeAll();\r\n this.itemRemoved.removeAll();\r\n super.dispose();\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n","import { INodeAction } from \"../../../../UI.Controls/Actions/INodeAction\";\r\nimport { DropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { createElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Icon, MenuTypes } from \"../../FormUI/FormUI\";\r\nimport { NodeAction, NodeActionType } from \"./NodeAction\";\r\nimport { DesktopToolbarButton } from \"./ToolbarButton\";\r\nimport { XGAction } from \"./XGAction\";\r\n\r\nexport class ToolbarMenuButton extends DesktopToolbarButton {\r\n //#region Fields\r\n public popupMenu: DropDownMenu;\r\n public loosingFocus: boolean = false;\r\n\r\n private _firstOpen = true;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n constructor(icon: Icon | string, menuType: MenuTypes, action: NodeAction, classes?: string[]) {\r\n super(icon, menuType, action, classes);\r\n //this.Element = element;\r\n\r\n this.popupMenu = new DropDownMenu();\r\n this.element.appendChild(createElement({ type: \"span\", classes: [\"btn-dropdown-icon\", \"icon\", \"ui-triangle-bottom\"] }));\r\n }\r\n //#endregion Constructors\r\n\r\n /**\r\n * Vytvoreni instance PopupMenu\r\n * @param _actions akce k danemu tlacitku\r\n */\r\n public createPopupMenu(_callingEvent: Event, _actions: XGAction[]): void {\r\n // Prázdná metoda\r\n }\r\n\r\n public initializeItems(): void {\r\n this._firstOpen = false;\r\n this.popupMenu.nodeAction = this.action as NodeAction;\r\n\r\n if (this.action instanceof INodeAction && this.action.parentAction instanceof NodeAction) {\r\n ((this.action.parentAction as NodeAction).toolbarButton as ToolbarMenuButton).closeSubMenuAndSetNew(this);\r\n }\r\n }\r\n\r\n /**\r\n * Kliknuti mysi na nodeAction\r\n */\r\n private _onClick(e: MouseEvent): void {\r\n if (this.element.classList.contains(\"Disabled\"))\r\n return;\r\n\r\n if (this._firstOpen)\r\n this.initializeItems();\r\n\r\n if (!this.popupMenu.isVisible()) {\r\n this.popupMenu.show(this.element, e);\r\n } else {\r\n this.popupMenu.closeAll();\r\n }\r\n\r\n this.element.tabIndex = 1; //udajne je potreba kvuli blur/focusout a focus//tomu aby to bylo focusable mit nastaven tabindex\r\n if (this.visibilityChanged)\r\n this.visibilityChanged.trigger(this, this.popupMenu.isVisible());\r\n }\r\n\r\n private _openedSubMenu: ToolbarMenuButton;\r\n\r\n /**\r\n * Skryje menu a soucasne subMenu, ktere je z nej otevreno\r\n */\r\n public closeMenu(): void {\r\n this.popupMenu.closeAll();\r\n if (this._openedSubMenu)\r\n this._openedSubMenu.closeMenu();\r\n }\r\n\r\n /**\r\n * Zavre otevrene subMenu a pripadne si ulozi nove otevrene subMenu\r\n * @param subMenu - nove otevrene submenu\r\n */\r\n public closeSubMenuAndSetNew(subMenu?: ToolbarMenuButton): void {\r\n if (this._openedSubMenu)\r\n this._openedSubMenu.closeMenu();\r\n if (subMenu)\r\n this._openedSubMenu = subMenu;\r\n }\r\n\r\n /**\r\n * Nastaveni eventu\r\n */\r\n protected override _setListeners(): void {\r\n if ((this.action as NodeAction).nodeActionType == NodeActionType.naNode && this._menuType == 2) { //pokud ma masterNode => zobrazuje se submenu pri mouseover\r\n this._events.addListener(this.element, \"mouseover\", e => this._onClick(e));\r\n this._events.addListener(this.element, \"click\", () => {\r\n if (this.action instanceof INodeAction)\r\n ((this.action.parentAction as NodeAction).toolbarButton as ToolbarMenuButton).loosingFocus = false;\r\n });\r\n } else //pokud nema masterNode, tak je akce primo v Toolbaru a zobrazuje se az pri kliku na akci\r\n this._events.addListener(this.element, \"click\", e => this._onClick(e));\r\n }\r\n}\r\n","import { debounce } from \"lodash.throttle\";\r\n\r\nimport { EventHelper } from \"UI/UI.BaseControls/Helpers/EventHelper\";\r\nimport { setExtendedPropertiesOnElement } from \"UI/utils\";\r\nimport { DataConverter } from \"../../../../../Global/Base/Converters/DataConverter\";\r\nimport { EMPTY_ITEM_RIGHTS_COLLECTION } from \"../../../../../Global/Base/Rights/RightTypes\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { ActionType, IAction, IWFAction } from \"../../../../UI.Controls/Actions/IAction\";\r\nimport { INodeAction } from \"../../../../UI.Controls/Actions/INodeAction\";\r\nimport { DropDownMenuItem } from \"../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { createElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"../../Controls/Control\";\r\nimport { Icon, MenuTypes } from \"../../FormUI/FormUI\";\r\nimport { IToolbarButton } from \"./IToolbarButton\";\r\nimport { ToolbarMenuButton } from \"./ToolbarMenuButton\";\r\n\r\n/**Reprezentuje tlacitko v toolbaru*/\r\nexport class DesktopToolbarButton extends Control implements IToolbarButton {\r\n public static readonly CLICK_DEBOUNCE_TIME = 300;\r\n\r\n //#region Fields\r\n protected _menuType: MenuTypes;\r\n protected _action: IAction;\r\n protected _iconElement: HTMLElement;\r\n protected _captionElement: HTMLDivElement;\r\n protected _enabledVisual: boolean = true;\r\n\r\n private __priority: number;\r\n private __icon: string | Icon;\r\n private __isWF: boolean;\r\n\r\n private _notificationElement: HTMLDivElement;\r\n private _notificationOldCaption: string;\r\n private _runningLocalizationPromise: Promise<void> | null;\r\n //#endregion Fields\r\n\r\n //#region Listeners\r\n protected _dropdownmenuitem: DropDownMenuItem;\r\n //#endregion Listeners\r\n\r\n //#region Properties\r\n public set action(action: IAction) {\r\n this._removeActionListeners();\r\n\r\n this._action = action;\r\n if (action) {\r\n this.enabled = action.enabled;\r\n this.enabledVisual = action.enabledVisual;\r\n\r\n if (this.action.id)\r\n this.element.id = `${action.id}-tb`;\r\n\r\n this.element.setAttribute(\"data-action-type\", ActionType[this.action.actionType]);\r\n\r\n if (this.action.extendedProperties)\r\n setExtendedPropertiesOnElement(this.action.extendedProperties, this.element);\r\n\r\n this._isWF = this.action instanceof IWFAction;\r\n this._priority = this.action.priority;\r\n this.locKey = this.action.locKey;\r\n\r\n if (this.action.actionSize)\r\n this.element.classList.add(this.action.actionSize);\r\n\r\n this.visible = DataConverter.toBoolean(this.element.getAttribute(\"Visible\"), this.action.visible);\r\n\r\n this._dropdownmenuitem.action = this.action;\r\n\r\n this._addActionListeners();\r\n }\r\n }\r\n\r\n public get action(): IAction {\r\n return this._action;\r\n }\r\n\r\n //#region Visible\r\n public override set visible(value: boolean) {\r\n if (this.element == undefined)\r\n return;\r\n\r\n this._visible = value;\r\n this._setVisible(value);\r\n if (this.visibilityChanged)\r\n this.visibilityChanged.trigger(this, value);\r\n }\r\n\r\n public override get visible(): boolean {\r\n return this._visible;\r\n }\r\n //#endregion Visible\r\n\r\n public override set enabled(value: boolean) {\r\n this._enabled = value;\r\n }\r\n\r\n public override get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public set enabledVisual(value: boolean) {\r\n this._enabledVisual = value;\r\n\r\n this._updateElementsEnableState(value);\r\n }\r\n\r\n public get enabledVisual(): boolean {\r\n return this._enabledVisual;\r\n }\r\n\r\n protected set _priority(value: number) {\r\n this.__priority = value;\r\n\r\n if (this._priority !== undefined && this._priority != null)\r\n this.element.setAttribute(\"data-priority\", this._priority + \"\");\r\n }\r\n\r\n protected get _priority(): number {\r\n return this.__priority;\r\n }\r\n\r\n protected get _icon(): string | Icon {\r\n return this.__icon;\r\n }\r\n\r\n protected set _icon(value: string | Icon) {\r\n if (this._iconElement) {\r\n if (typeof this._icon === \"string\")\r\n this._iconElement.classList.remove(this._icon);\r\n else\r\n this._iconElement.classList.remove(Icon[this._icon]);\r\n }\r\n\r\n this.__icon = value;\r\n\r\n if (this._iconElement) {\r\n if (typeof this._icon === \"string\")\r\n this._iconElement.classList.add(this._icon);\r\n else\r\n this._iconElement.classList.add(Icon[this._icon]);\r\n }\r\n }\r\n\r\n public setIcon(value: string | Icon): void {\r\n this._icon = value;\r\n }\r\n\r\n protected set _isWF(value: boolean) {\r\n this.__isWF = value;\r\n\r\n if (this._isWF)\r\n this.element.classList.add(\"workFlowAction\");\r\n }\r\n\r\n protected get _isWF(): boolean {\r\n return this.__isWF;\r\n }\r\n\r\n public get dropDownMenuItem(): DropDownMenuItem {\r\n return this._dropdownmenuitem;\r\n }\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(icon: string | Icon, menuType: MenuTypes, action: IAction, classes?: string[], baseType: string = \"button\") {\r\n super({ element: document.createElement(baseType), originalRightsDefinition: EMPTY_ITEM_RIGHTS_COLLECTION });\r\n\r\n if (menuType == 1)\r\n this.element.classList.add(\"ToolbarButton\", \"loader-enabled\", \"btn\", \"flat\");\r\n else\r\n this.element.classList.add(\"ToolbarInnerButton\");\r\n\r\n this._dropdownmenuitem = new DropDownMenuItem();\r\n\r\n this.enabledVisual = false;\r\n\r\n this.action = action;\r\n\r\n this._icon = icon;\r\n\r\n if (classes && classes.length > 0) {\r\n this.element.classList.add(...classes);\r\n }\r\n\r\n this._menuType = menuType;\r\n\r\n this._createIconElement();\r\n this._createCaptionElement();\r\n this.element.setAttribute(\"data-locKey\", this.locKey);\r\n\r\n this._setListeners();\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n /**\r\n * Metoda, ktera v pripade potreby zobrazi na tlačitku notifikační tečku\r\n *\r\n * @param isVisible Stav viditelnosti, ktery chcete nastavit\r\n */\r\n public changeVisibilityNotificationDot(isVisible: boolean, captionLocKey?: string): void {\r\n if (this._notificationElement == null) {\r\n this._notificationElement = createElement({ classes: \"red-dot hidden\" }) as HTMLDivElement;\r\n this.element.classList.add(\"notification-toolbar-button\");\r\n this.element.appendChild(this._notificationElement);\r\n this._notificationOldCaption = this.element.title;\r\n }\r\n\r\n this._notificationElement.classList.toggle(\"hidden\", !isVisible);\r\n\r\n if (captionLocKey) {\r\n Localization.getLocalizationItem(captionLocKey).then((locItem) => {\r\n this.element.title = locItem.primaryText;\r\n this.element.setAttribute(\"aria-label\", locItem.primaryText);\r\n });\r\n } else {\r\n this.element.title = this._notificationOldCaption;\r\n this.element.setAttribute(\"aria-label\", this._notificationOldCaption);\r\n }\r\n }\r\n\r\n /**\r\n * Odebrání listenerů z akce\r\n */\r\n protected _removeActionListeners(): void {\r\n this._events?.removeByKey(\"toolbarActionListeners\");\r\n }\r\n /**\r\n * Přidání listenerů na akci\r\n */\r\n protected _addActionListeners(): void {\r\n this._events?.addWithKey(\"toolbarActionListeners\", this.action.enabledChanged, (_, value) => this.enabled = value);\r\n this._events?.addWithKey(\"toolbarActionListeners\", this.action.visibilityChanged, (_, value) => this.visible = value);\r\n this._events?.addWithKey(\"toolbarActionListeners\", this.action.enabledVisualChanged, (_, value) => this.enabledVisual = value);\r\n }\r\n\r\n /**\r\n * Nastaveni eventu\r\n */\r\n protected _setListeners(): void {\r\n //pokud je button zobrazen v contextovem menu, tak pri mouse over skryje subMenu v dalsi urovni\r\n if (this._menuType == 2) {\r\n this._events.addListener(this.element, \"mouseover\", () => {\r\n if (this.action.isActive && this.action instanceof INodeAction)\r\n ((this.action.parentAction as INodeAction).toolbarButton as ToolbarMenuButton).closeSubMenuAndSetNew();\r\n });\r\n }\r\n\r\n const onClickDebounced = debounce(async () => {\r\n this.showLoader();\r\n this.enabled = false;\r\n\r\n try {\r\n await this.action.execute();\r\n } finally {\r\n this.enabled = this.action.enabled;\r\n this.hideLoader();\r\n }\r\n }, DesktopToolbarButton.CLICK_DEBOUNCE_TIME, { leading: true, trailing: false });\r\n\r\n this._events.addListener(this.element, \"click\", async (e: MouseEvent) => {\r\n if (e.button !== 0)\r\n return; // uprava aby se akce volala jen pri stisku primarniho (leveho) tlacitka, jinak se akce provadel pri stisku jakehokoli tlacitka na mysi\r\n\r\n if (!this.enabledVisual)\r\n return;\r\n\r\n EventHelper.stopPropagation(e);\r\n\r\n onClickDebounced();\r\n });\r\n this._events.addListener(this.element, \"keyup\", (e) => {\r\n if (e.keyCode == 13) e.stopPropagation();\r\n });\r\n }\r\n\r\n protected _createIconElement(): void {\r\n this._iconElement = document.createElement(\"div\");\r\n\r\n this._iconElement.classList.add(\"Icon\");\r\n\r\n if (this._menuType == 1) { //toolbar\r\n this._iconElement.classList.add(\"menuIcon\");\r\n if (typeof this._icon === \"string\")\r\n this._iconElement.classList.add(this._icon);\r\n else\r\n this._iconElement.classList.add(Icon[this._icon]);\r\n }\r\n\r\n //todo: potreba doresit pouziti u context menu\r\n if (this._menuType == 2) { //kontext. menu\r\n this._iconElement.classList.add(\"menuIcon\");\r\n if (typeof this._icon === \"string\")\r\n this._iconElement.classList.add(this._icon);\r\n else\r\n this._iconElement.classList.add(Icon[this._icon]);\r\n }\r\n\r\n this.element.appendChild(this._iconElement);\r\n }\r\n\r\n protected _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"btn-caption\");\r\n\r\n if (this.locKey) {\r\n this._setDefaultCaption();\r\n } else {\r\n if (this.action instanceof IWFAction)\r\n this._captionElement.textContent = this.action.caption;\r\n }\r\n\r\n this.element.appendChild(this._captionElement);\r\n }\r\n\r\n /**\r\n * nastaveni textu na tlacitku, pokud neni vyplneno, pouzije se nastavený lockey\r\n * @param text\r\n */\r\n public setCaption(text: string = null): void {\r\n if (text) {\r\n Localization.remLocData(this._captionElement);\r\n Localization.remLocData(this.element, false);\r\n if (!this._runningLocalizationPromise) {\r\n this._setContentAndTitle(text);\r\n } else {\r\n this._runningLocalizationPromise = this._runningLocalizationPromise.then((): void => {\r\n this._setContentAndTitle(text);\r\n this._runningLocalizationPromise = null;\r\n });\r\n }\r\n } else {\r\n this._setDefaultCaption();\r\n }\r\n }\r\n\r\n private _setContentAndTitle(text: string = null): void {\r\n this._captionElement.textContent = text;\r\n this.element.title = text;\r\n this.element.setAttribute(\"aria-label\", text);\r\n }\r\n\r\n private _setDefaultCaption(): void /* ?? */ {\r\n Localization.addLocData(this._captionElement, this.locKey, \"tc\");\r\n Localization.addLocDescData(this.element, this.locKey, [ \"title\", \"aria-label\" ]);\r\n }\r\n\r\n private _updateElementsEnableState(value: boolean): void {\r\n if (value) {\r\n this.element.classList.add(\"Enabled\");\r\n this.element.classList.remove(\"Disabled\");\r\n } else {\r\n this.element.classList.add(\"Disabled\");\r\n this.element.classList.remove(\"Enabled\");\r\n }\r\n }\r\n\r\n private _setVisible(value: boolean): void {\r\n if (value) {\r\n this.element.style.display = \"\";\r\n } else {\r\n this.element.style.display = \"none\";\r\n }\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n public override dispose(): void {\r\n this.element?.remove();\r\n this.action?.dispose();\r\n this._dropdownmenuitem?.dispose();\r\n\r\n super.dispose();\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n","import { OWObject } from \"../../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IFrame } from \"../../IFrame\";\r\n\r\n/**\r\n * Kontext, nad kterým se spouští akce a vyhodnocují její práva\r\n */\r\nexport interface IActionExecutionContext {\r\n /** Objekt, nad kterým se akce spouští a nad kterým se vyhodnocují práva akce */\r\n readonly actualObject: OWObject | null;\r\n /** Frame, který je spjatý s actualObject */\r\n readonly ownerFrame: IFrame | null;\r\n}\r\n","import { OWObject } from \"../../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IMasterableFrame } from \"../../Frames/FrameInterfaces\";\r\nimport { IFrame } from \"../../IFrame\";\r\nimport { XGAction } from \"../XGAction\";\r\nimport { IActionExecutionContext } from \"./IActionExecutionContext\";\r\n\r\nexport class ActionLocalExecutionContext implements IActionExecutionContext {\r\n private _action: XGAction;\r\n\r\n constructor(action: XGAction) {\r\n this._action = action;\r\n }\r\n\r\n public get actualObject(): OWObject | null {\r\n if (!this._action.owner) {\r\n return null;\r\n }\r\n //po dotazu na uložení není včas na detailu aktuální instance, proto je potřeba brát objekt ze seznamu, kde je veškerá funkčnost nad objekty\r\n if (!(this._action.owner instanceof IMasterableFrame) && this._action.owner.masterFrame != null) {\r\n return this._action.owner.masterFrame.actualObject;\r\n }\r\n return this._action.owner.actualObject;\r\n }\r\n\r\n public get ownerFrame(): IFrame | null {\r\n return this._action.owner;\r\n }\r\n}\r\n","import { OWObject } from \"../../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IFrame } from \"../../IFrame\";\r\nimport { XGAction } from \"../XGAction\";\r\nimport { IActionExecutionContext } from \"./IActionExecutionContext\";\r\n\r\nexport class ActionMasterExecutionContext implements IActionExecutionContext {\r\n private _action: XGAction;\r\n\r\n constructor(action: XGAction) {\r\n this._action = action;\r\n }\r\n\r\n public get actualObject(): OWObject | null {\r\n if (!this._action.owner) {\r\n return null;\r\n }\r\n return this._action.owner.masterObject || this._action.owner.isMainFrame && this._action.owner.ownerForm?.masterObject || null;\r\n }\r\n\r\n public get ownerFrame(): IFrame | null {\r\n return this._action.owner?.masterFrame;\r\n }\r\n}\r\n","export * from \"./IActionExecutionContext\";\r\nexport * from \"./ActionActualExecutionContext\";\r\nexport * from \"./ActionMasterExecutionContext\";\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ExtendedPropertiesType } from \"@multiweb/types/multiweb\";\r\nimport { ValidationErrorType } from \"OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { getExtendedPropertiesFromElement } from \"UI/utils\";\r\nimport { Event } from \"../../../../../Global/Base/Events\";\r\nimport { CancellationToken } from \"../../../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { EnumUtils } from \"../../../../../Global/Base/Utils/EnumUtils\";\r\nimport { EOWUserException, EOWValidateException } from \"../../../../../OW.Remoting/Basic/OWExceptions\";\r\nimport { RequestContext } from \"../../../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { IInteractive } from \"../../../../CommonUIInterfaces\";\r\nimport { IBussyAwaitable, IEnabledVisualControl, IInteractiveControl } from \"../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { ActionContext, ActionType, IAction, IActionContext, SelectionType } from \"../../../../UI.Controls/Actions/IAction\";\r\nimport { MenuType } from \"../../../../UI.Controls/Actions/MenuType\";\r\nimport { SaveResultData } from \"../../../../UI.Controls/DataSource/EditableDBDataSource\";\r\nimport { convertContextFromFrameToRequest } from \"../../../Utilities/SharedUIMethods\";\r\nimport { Control } from \"../../Controls/Control\";\r\nimport { ControlParams } from \"../../Controls/ControlInterfaces\";\r\nimport { UIManager } from \"../../UIManager\";\r\nimport { IValidationMaster } from \"../FormControl\";\r\nimport { IMasterableFrame } from \"../Frames/FrameInterfaces\";\r\nimport { IForm, IFormSavingParameters } from \"../IForm\";\r\nimport { IFrame } from \"../IFrame\";\r\nimport { ObjectCheckingResult, SharedMethods } from \"../SharedMethods\";\r\nimport { IValidationOverview } from \"../ValidationManager\";\r\nimport { IPrimary } from \"./IPrimary\";\r\nimport { DesktopToolbarButton } from \"./ToolbarButton\";\r\nimport { IUseMasterObject } from \"Global/Base/Rights/IUseMasterObject\";\r\nimport { IActionExecutionContext, ActionLocalExecutionContext, ActionMasterExecutionContext } from \"./ActionExecutionContext\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.xgAction);\r\n\r\nexport abstract class XGAction extends Control implements IInteractiveControl, IAction, IPrimary, IInteractive, IEnabledVisualControl, IUseMasterObject {\r\n //#region Fields\r\n /**true - je zobrazena v nodu groupy, false - je zobrazena primo v grupe*/\r\n public isInNode: boolean = false;\r\n public action: () => Promise<void> = async () => {\r\n // Prázdná metoda\r\n };\r\n /**\r\n * Při nastavení na true nebude provádět autosave před spuštěním akce bez ohledu na nastavení formuláře\r\n */\r\n public ignoreAutoSave: boolean;\r\n private _ownerForm: IForm;\r\n\r\n /**\r\n * V tomto elementu je html definice pro action html reprezentace pro vykresleni je definovana v ToolBarButtonu nebo klasicke komponente element\r\n */\r\n public definitionElement: HTMLElement;\r\n public toMenu?: MenuType;\r\n /**\r\n * Viditelnost akce podle viditelnosti tlačítka, které tuto akci vytvořilo. Pokud akce nebyla vytvořena tlačítkem, tato vlastnost je vždy True\r\n */\r\n public visibleByButton: boolean;\r\n /**\r\n * Přístupnost akce podle přístupnosti tlačítka, které tuto akci vytvořilo. Pokud akce nebyla vytvořena tlačítkem, tato vlastnost je vždy True\r\n */\r\n public isEnabledByButton: boolean = true;\r\n /**\r\n * Jmeno nadrazeneho prvku toolbaru, do ktereho se akce zaradi, skupina, stranka nebo nodeaction\r\n */\r\n public masterNode: string;\r\n /**\r\n * Pozice akce v toolbaru v ramci skupiny\r\n */\r\n public priority: number;\r\n /**\r\n * Pozice akce dle pořadí v definici formuláře\r\n */\r\n public order: number = null; // Musí mít hodnotu, jinak se nevyhodnocuje instanceof\r\n /**\r\n * Speciální ikona pro akci zadaná v definici formuláře (má přednost nad standardní ikonou)\r\n */\r\n public icon?: IconCode;\r\n /**\r\n * Defaultni pro poradi akce ve skupine\r\n */\r\n public static readonly defaultPriority: number = 9999;\r\n private _owner: IFrame;\r\n private readonly _useMasterObject: boolean = false;\r\n protected override _visible: boolean = false;\r\n protected override _enabled: boolean = false;\r\n protected _isActionDisposed: boolean = false;\r\n protected _useMasterContext: boolean = false;\r\n public readonly executionContext: IActionExecutionContext;\r\n\r\n /**\r\n * Akce je přístupná pouze v edit. módu\r\n */\r\n public readonly enableInEdit: boolean = false;\r\n\r\n public readonly enabledChanged: Event<XGAction, boolean> = new Event<XGAction, boolean>();\r\n public override readonly visibilityChanged: Event<XGAction, boolean> = new Event<XGAction, boolean>();\r\n public readonly interactiveChanged: Event<XGAction, boolean> = new Event<XGAction, boolean>();\r\n public readonly enabledVisualChanged: Event<XGAction, boolean> = new Event<XGAction, boolean>();\r\n public readonly isActiveChanged: Event<XGAction, boolean> = new Event<XGAction, boolean>();\r\n public readonly ownerChanged: Event<XGAction, IFrame> = new Event<XGAction, IFrame>();\r\n\r\n /**\r\n * Interní příznak, zda byla akce aktivní (kombinace Enabled a isReadOnly).\r\n * Používá se k porovnání předchozího stavu.\r\n */\r\n protected _oldIsActive = true;\r\n protected _interactive: boolean = true;\r\n protected _enabledVisual: boolean = true;\r\n\r\n public readonly isPrimary: boolean = false;\r\n\r\n private _toolbarButton: DesktopToolbarButton;\r\n private _actionSize: string;\r\n private _hasCaption: boolean = true; //Určuje jestli bude příslušející ToolbarButton mít viditelný popisek\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get id(): string | undefined {\r\n return this.element ? this.element.id : undefined;\r\n }\r\n\r\n /** @inheritdoc */\r\n public get useMasterObject(): boolean {\r\n return this._useMasterObject;\r\n }\r\n\r\n public get toolbarButton(): DesktopToolbarButton {\r\n return this._toolbarButton;\r\n }\r\n\r\n public set toolbarButton(button: DesktopToolbarButton) {\r\n this._toolbarButton = button;\r\n if (!this._toolbarButton) {\r\n return;\r\n }\r\n\r\n // po změně tlačítka je potřeba mu správně nastavit aktuální stav Enabled\r\n this.enabledChanged.trigger(this, this.enabled); // TODO-rites\r\n if (!this.hasCaption)\r\n this._toolbarButton.element.classList.add(\"no-caption\");\r\n }\r\n\r\n public get ownerForm(): IForm {\r\n if (this._ownerForm)\r\n return this._ownerForm;\r\n else\r\n return this.owner.ownerForm;\r\n }\r\n\r\n public set ownerForm(button: IForm) {\r\n this._ownerForm = button;\r\n }\r\n\r\n public override set visible(value: boolean) {\r\n if (this.element == undefined)\r\n return;\r\n\r\n if (this._visible !== value) {\r\n this._visible = value;\r\n this.visibilityChanged.trigger(this, value);\r\n }\r\n }\r\n\r\n public override get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n // Nastavuje přístupnost akce (Enable/Disable)\r\n public override get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public override set enabled(value: boolean) {\r\n if (this._enabled !== value) {\r\n this._enabled = value;\r\n this.enabledChanged.trigger(this, value); // TODO-rites\r\n //this._updateActiveState(); // TODO-rites\r\n }\r\n }\r\n\r\n public get interactive(): boolean {\r\n return this._interactive;\r\n }\r\n\r\n public set interactive(value: boolean) {\r\n this._interactive = value;\r\n\r\n this.interactiveChanged.trigger(this, value);\r\n }\r\n\r\n public get enabledVisual(): boolean {\r\n return this._enabledVisual;\r\n }\r\n\r\n public set enabledVisual(value: boolean) {\r\n const oldValue = this._enabledVisual;\r\n this._enabledVisual = value;\r\n\r\n if (oldValue !== value) {\r\n this.enabledVisualChanged.trigger(this, value);\r\n }\r\n this._updateActiveState(); // TODO-rites\r\n }\r\n\r\n /**\r\n * Příznak, zda je akce aktivní. Kombinuje Enabled a interactive\r\n */\r\n public get isActive(): boolean {\r\n return this.enabled && this.interactive;\r\n }\r\n\r\n public get actionType(): ActionType {\r\n throw new Error(\"Undefined actionType\");\r\n }\r\n\r\n public get supportedSelectionModes(): SelectionType {\r\n return SelectionType.single;\r\n }\r\n\r\n public get context(): ActionContext {\r\n throw new Error(\"Undefined context\");\r\n }\r\n\r\n public override get locKey(): string {\r\n if (super.locKey) {\r\n return super.locKey;\r\n } else {\r\n this.locKey = this.element.getAttribute(\"data-lockey\");\r\n return super.locKey;\r\n }\r\n }\r\n\r\n public override set locKey(value: string) {\r\n super.locKey = value;\r\n }\r\n\r\n public get actionSize(): string {\r\n if (this._actionSize == null)\r\n this._actionSize = \"asDefault\";\r\n\r\n return this._actionSize;\r\n }\r\n\r\n public set actionSize(value: string) {\r\n if (value == null)\r\n this._actionSize = \"asDefault\";\r\n else\r\n this._actionSize = value;\r\n }\r\n\r\n public set owner(v: IFrame) {\r\n this._owner = v;\r\n this.ownerChanged.trigger(this, this._owner);\r\n }\r\n\r\n public get owner(): IFrame {\r\n return this._owner;\r\n }\r\n\r\n public get hasCaption(): boolean {\r\n return this._hasCaption;\r\n }\r\n\r\n public set hasCaption(value: boolean) {\r\n this._hasCaption = value;\r\n if (this._toolbarButton)\r\n this._toolbarButton.element.classList.toggle(\"no-caption\", !value);\r\n }\r\n\r\n private readonly _saveOnExecute: boolean;\r\n /** Příznak, jestli metoda uloží objekt před provedením */\r\n public get saveOnExecute(): boolean {\r\n return this._saveOnExecute;\r\n }\r\n\r\n public get extendedProperties(): ExtendedPropertiesType {\r\n return getExtendedPropertiesFromElement(this.element);\r\n }\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(params: ControlParams) {\r\n super(params);\r\n\r\n this.element.classList.add(\"XGAction\");\r\n\r\n this.masterNode = this.element.getAttribute(\"data-masternode\");\r\n this.isPrimary = this.getBoolDataAttr(\"isPrimary\");\r\n\r\n this.actionSize = this.getDataAttr(\"ActionSize\");\r\n const iconName = this.getDataAttr(\"IconName\")?.trim();\r\n if (EnumUtils.hasEnumValue(IconCode, iconName))\r\n this.icon = iconName as IconCode;\r\n else\r\n this.icon = null;\r\n\r\n this.enabledVisual = false;\r\n\r\n this.priority = this.getNumDataAttr(\"priority\");\r\n if (!this.priority)\r\n this.priority = XGAction.defaultPriority;\r\n this._saveOnExecute = this.getBoolDataAttr(\"saveonexecute\", false);\r\n this._useMasterContext = this.getBoolDataAttr(\"UseMasterContext\", false);\r\n this.enableInEdit = this.getBoolDataAttr(\"enableInEdit\", false);\r\n this._useMasterObject = this.getBoolDataAttr(\"UseMasterObject\", false);\r\n this.executionContext = this._useMasterObject ?\r\n new ActionMasterExecutionContext(this) :\r\n new ActionLocalExecutionContext(this);\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n public setToMenu(defaultByAction: MenuType): void {\r\n const toMenu = this.element.getAttribute(\"data-tomenu\");\r\n const toMenuEnumValue = EnumUtils.getEnumValueFromName(MenuType, toMenu);\r\n\r\n this.toMenu = toMenuEnumValue != null ? toMenuEnumValue : defaultByAction;\r\n }\r\n\r\n public inicializeRights(_frame: IFrame): void {\r\n // Prázdná metoda\r\n }\r\n\r\n public clearDataLinks(): void {\r\n // Prázdná metoda\r\n }\r\n\r\n /**\r\n * Podle formName formuláře získá právo na Insert\r\n * <param name=\"formName\">Název formuláře</param>\r\n * <returns>Hodnota práva na Insert</returns>\r\n */\r\n public getInsertRightFromForm(_formName: string): void {\r\n // Prázdná metoda\r\n }\r\n\r\n /**\r\n * Podle formName formuláře získá právo na Edit\r\n * <param name=\"formName\">Název formuláře</param>\r\n * <returns>Hodnota práva na Edit</returns>\r\n */\r\n public getEditRightFromForm(_formName: string): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Nastavuje viditelnost akce\r\n * <param name=\"visibility\"></param>\r\n */\r\n public setVisibility(visibility: boolean): void {\r\n //pokud akce byla vytvořena s tlačítka, nemá vlastní kolekci práv. A proto pokud viditelnost akce se vyhodnotila později (vždy bude True), než viditelnost tlačítka,\r\n //musíme spočítat s hodnotou tohoto práva na tlačítku. Jinak tlačítko nastaví viditelnost akce podle svého vyhodnoceného práva ve své metodě SetVisibility\r\n const newValue = visibility && this.visibleByButton;\r\n if (this.visible !== newValue) {\r\n this.visible = visibility && this.visibleByButton;\r\n this.visibilityChanged.trigger(this, newValue);\r\n }\r\n }\r\n\r\n /**\r\n * Aktualizuje stav aktivnosti elementu podle isActive. A pokud byl změněn vyvolá událost isActiveChange.\r\n */\r\n protected _updateActiveState(): void {\r\n if (this.checkAndLogDisposedUsage(\"_updateActiveState\")) return;\r\n\r\n this.element.classList.toggle(\"Enabled\", this.enabledVisual);\r\n if (this.isActive !== this._oldIsActive) {\r\n this._oldIsActive = this.isActive;\r\n this.isActiveChanged.trigger(this, this.isActive);\r\n }\r\n }\r\n //#endregion Methods\r\n\r\n public getImageName(): string {\r\n return \"\";\r\n }\r\n\r\n public async execute(context?: IActionContext): Promise<void> {\r\n const owner = this.executionContext.ownerFrame ?? this.owner;\r\n\r\n if (owner instanceof IBussyAwaitable)\r\n await owner.waitForPendingActions();\r\n\r\n UIManager.instance.showLoader();\r\n try {\r\n if (this.executionContext.ownerFrame)\r\n await this.executionContext.ownerFrame.ownerForm.waitForBussyFrameAndChildren(owner);\r\n\r\n await this._internalExecute(context);\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param id V případě, že je akce spouštěna přes ID objektu místo instance\r\n * @param className V případě, že je akce spouštěna přes ID objektu místo instance\r\n */\r\n protected abstract _internalExecute(context?: IActionContext): Promise<void>;\r\n\r\n /**\r\n * validace práva akcí všech potřebných komponent na owner framu.\r\n * @param checkRecommended zda se mají kontrolovat doporučená pole\r\n * @param checkPostponed zda se mají kontrolovat odložená pole\r\n * @return true pokud validace proběhla v pořádku, jinak false\r\n * @protected\r\n */\r\n protected async _validateOwnerRightsActions(checkRecommended: boolean, checkPostponed: boolean): Promise<boolean> {\r\n if (!checkPostponed && !checkRecommended) {\r\n return false;\r\n }\r\n\r\n if (!this.executionContext.ownerFrame) {\r\n return true;\r\n }\r\n\r\n if (this.executionContext.ownerFrame instanceof IValidationMaster) {\r\n return await this.executionContext.ownerFrame.validate(checkRecommended, checkPostponed, true);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Zvaliduje atribut postponed u aktuálního objektu a spolu s výsledkem validace práv akcí na owner formu (parametrem `validationResult`) zkontroluje jejich obsah.\r\n * Pokud se při validaci objevily nějaké chyby, zprocesuje je a zobrazí dialog pro další interakci uživatele.\r\n * @param checkRecommended zda se mají kontrolovat doporučená pole\r\n * @param checkPostponed zda se mají kontrolovat odložená pole\r\n * @param validationResult výsledek validace práv akcí na owner formu\r\n * @param runButtonText lokalizace pro tlačítko yes v yes/no dialogu\r\n * @return true pokud kontrola práv akcí proběhla bez chyb, jinak false\r\n * @protected\r\n */\r\n protected async _checkPostRightsActions(checkRecommended: boolean, checkPostponed: boolean, validationResult?: IValidationOverview, runButtonText?: string): Promise<boolean> {\r\n if (!checkPostponed && !checkRecommended) {\r\n return true;\r\n }\r\n\r\n if (this.executionContext.ownerFrame instanceof IValidationMaster) {\r\n await this._validatePostponed(checkPostponed, validationResult?.hasErrors);\r\n\r\n const validationMessages = validationResult ? validationResult.validationMessages : [];\r\n\r\n const res = await SharedMethods.checkMessagesBeforeExecute(validationMessages, runButtonText ? runButtonText : this.locKey, \"GUI-33412\"); //\"GUI-33412\"=Zrušit\r\n if (res === ObjectCheckingResult.error || res === ObjectCheckingResult.recommendedStop || !validationResult?.ownerValidated) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Zkontroluje validitu postponed atributu aktuálního objektu.\r\n * Pokud se při kontrole atributu objeví chyby (vyhodí se výjimka typu `EOWValidateException` nebo `EOWUserException`), zpracuje ji a případně zobrazí dialog pro další interakci.\r\n * Pokud je při kontrole vyhozena výjimka jiného typu, přepošle ji volající metodě.\r\n * @param checkPostponed zda se mají kontrolovat odložená pole\r\n * @param hasErrors zda na ownerovi existuje nějaká validační chyba\r\n * @private\r\n */\r\n private async _validatePostponed(checkPostponed: boolean, hasErrors: boolean): Promise<void> {\r\n const finalResultMsg: SaveResultData[] = [];\r\n const { ownerFrame } = this.executionContext;\r\n if (ownerFrame instanceof IValidationMaster && checkPostponed && !hasErrors) {\r\n const { actualObject } = this.executionContext;\r\n try {\r\n // PostponedValidate je obdoba validate, akorát se nic nekontroluje v aplikační logice, ale jen práva na službě (některé atributy jsou postReq, ale na formuláři nejsou vykreslené).\r\n await actualObject?.postponedValidate();\r\n } catch (e) {\r\n if (e instanceof EOWValidateException) {\r\n e.validationErrors.forEach(validationError => {\r\n validationError.type = ValidationErrorType.postponedError;\r\n });\r\n finalResultMsg.push({ data: actualObject, errors: e.validationErrors });\r\n } else if (e instanceof EOWUserException) {\r\n finalResultMsg.push({ data: actualObject, messages: e.resultMessages });\r\n } else {\r\n throw e;\r\n }\r\n } finally {\r\n if (ownerFrame instanceof IMasterableFrame) {\r\n await SharedMethods.processSaveResultsAndShowMessages(ownerFrame, finalResultMsg);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Zvaliduje práva akce a zprocesuje její výsledky. Pokud validace odhalila nevalidní komponenty, zkontroluje je a případně zobrazí dialog pro další interakci s uživatelem.\r\n * @param checkRecommended zda se mají kontrolovat doporučená pole\r\n * @param checkPostponed zda se mají kontrolovat odložená pole\r\n * @param runButtonText lokalizace pro tlačítko yes v yes/no dialogu\r\n * @return true pokud kontrola práv akcí proběhla bez chyb, jinak false\r\n * @private\r\n */\r\n protected async _checkRights(checkRecommended: boolean, checkPostponed: boolean, runButtonText?: string): Promise<boolean> {\r\n if (!checkPostponed && !checkRecommended) {\r\n return true;\r\n }\r\n\r\n const { ownerFrame } = this.executionContext;\r\n if (ownerFrame instanceof IValidationMaster) {\r\n const ownerValidated = await ownerFrame.validate(checkRecommended, checkPostponed, true);\r\n\r\n await this._validatePostponed(checkPostponed, ownerFrame.validationManager.hasErrors);\r\n\r\n const res = await SharedMethods.checkObjectBeforeExecute(ownerFrame.validationManager, runButtonText ? runButtonText : this.locKey, \"GUI-33412\"); //\"GUI-33412\"=Zrušit\r\n if (res === ObjectCheckingResult.error || res === ObjectCheckingResult.recommendedStop || !ownerValidated) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n protected _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContext {\r\n return convertContextFromFrameToRequest((this.executionContext.ownerFrame || this.owner).frameContext, cancellationToken);\r\n }\r\n\r\n protected async _checkAndSaveForm(params?: IFormSavingParameters): Promise<boolean> {\r\n if (this.enableInEdit) {\r\n return true;\r\n }\r\n if (this._useMasterContext) {\r\n return await this.ownerForm.checkAndSaveForm({ forceSave: true, skipSavingEditContextId: true, ...params });\r\n }\r\n return await this.ownerForm.checkAndSaveForm({ forceSave: this.saveOnExecute, ...params });\r\n }\r\n\r\n /**\r\n * Zkontroluje, zda je akce disposed a pokud ano zaloguje warning o volání metody nad disposed akcí.\r\n *\r\n * Tato metoda a obecně kontroly na dispose by neměly být nutné po odstranění příčin, kvůli kterým se pracuje i nadále s disposed objekty.\r\n * Pro řešení příčin je vytvořený task 33553.\r\n *\r\n * @param methodName Název metody, kde se provádí kontrola. Slouží pro logování.\r\n * @return true, pokud je akce disposed, jinak false.\r\n */\r\n protected checkAndLogDisposedUsage(methodName: string): boolean {\r\n const disposed = this.isDisposed();\r\n if (disposed) {\r\n logger.warn(`Calling ${methodName} on disposed ${this.constructor.name}!`);\r\n }\r\n return disposed;\r\n }\r\n\r\n public isDisposed(): boolean {\r\n return this._isActionDisposed;\r\n }\r\n\r\n //#region IDisposable\r\n public override dispose(): void {\r\n if (this._isActionDisposed) {\r\n return;\r\n }\r\n this._isActionDisposed = true;\r\n this.toolbarButton?.dispose();\r\n\r\n this.enabledChanged.removeAll();\r\n this.visibilityChanged.removeAll();\r\n this.interactiveChanged.removeAll();\r\n this.enabledVisualChanged.removeAll();\r\n this.isActiveChanged.removeAll();\r\n this.ownerChanged.removeAll();\r\n\r\n super.dispose();\r\n }\r\n}\r\n","import { IInfoProvidingControl } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { XGAction } from \"UI/UI/UI/XGControls/Actions/XGAction\";\r\nimport { ControlInfo, IControlInfoObject } from \"UI/UI/UI/XGControls/ControlInfo\";\r\nimport { setExtendedPropertiesOnElement } from \"UI/utils\";\r\nimport { Key } from \"../../../Global/Base/Utils/EventUtils\";\r\nimport { StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../UI.BaseControls/Control\";\r\nimport { ElementUtils } from \"../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Icon } from \"../../UI/UI/FormUI/FormUI\";\r\nimport { IPrimary } from \"../../UI/UI/XGControls/Actions/IPrimary\";\r\nimport { Action } from \"../Actions/Action\";\r\nimport { IAction, IWFAction } from \"../Actions/IAction\";\r\nimport { MenuType } from \"../Actions/MenuType\";\r\nimport { IDropDownMenu, IDropDownMenuItem } from \"./DropDownInterfaces\";\r\n\r\nexport class DropDownMenuItem extends Control implements IDropDownMenuItem {\r\n protected _icon: string;\r\n protected _action: IAction;\r\n private _filterLoc: string;\r\n\r\n protected _locKey: string;\r\n protected _locParams: string[];\r\n\r\n protected _iconElement: HTMLElement;\r\n protected _captionElement: HTMLElement;\r\n protected _textElement: HTMLElement;\r\n\r\n public priority: number;\r\n protected _parent: IDropDownMenu;\r\n public get parent(): IDropDownMenu {\r\n return this._parent;\r\n }\r\n public set parent(value: IDropDownMenu) {\r\n this._parent = value;\r\n if (this.action instanceof IPrimary && this.action.isPrimary && this._parent) {\r\n this._parent.hasPrimaryAction = true;\r\n }\r\n }\r\n public isOpened: boolean;\r\n public noCloseAfterSelect: boolean;\r\n\r\n public get locKey(): string {\r\n return this._locKey;\r\n }\r\n public set locKey(v: string) {\r\n this._locKey = v;\r\n }\r\n\r\n public get locParams(): string[] {\r\n return this._locParams;\r\n }\r\n public set locParams(v: string[]) {\r\n this._locParams = v;\r\n }\r\n\r\n public get icon(): string {\r\n return this._icon;\r\n }\r\n\r\n public set icon(newIcon: string) {\r\n this._setIcon(newIcon, true);\r\n }\r\n\r\n public get filterLoc(): string {\r\n return this._filterLoc;\r\n }\r\n\r\n public set filterLoc(v: string) {\r\n this._filterLoc = v;\r\n }\r\n\r\n public get action(): IAction {\r\n return this._action;\r\n }\r\n\r\n public set action(action: IAction) {\r\n this._action = action;\r\n if (this.action) {\r\n this.priority = action.priority;\r\n this.visible = action.visible;\r\n this.icon = typeof action.icon === \"number\" ? Icon[action.icon] : action.icon;\r\n this.classList.toggle(\"disabled\", !action.isActive);\r\n\r\n this.action.visibilityChanged.add((_sender, value) => this.visible = value);\r\n this.action.isActiveChanged.add((_screen, value) => {\r\n this.classList.toggle(\"disabled\", !value);\r\n });\r\n\r\n if (this.action.locKey) {\r\n const originalWidth = this.clientWidth;\r\n Localization.addLocDataAsync(this._captionElement, this.action.locKey, undefined, undefined, this.action.locParams, true)\r\n .then(el => this._processNewCaption(el.textContent, originalWidth));\r\n } else if (action instanceof IWFAction && action.caption && action.caption.length > 0) {\r\n this._caption = action.caption;\r\n }\r\n\r\n if (this.action.id) {\r\n this.id = `${this.action.id}-da`;\r\n }\r\n\r\n if (this.action.extendedProperties) {\r\n setExtendedPropertiesOnElement(this.action.extendedProperties, this);\r\n }\r\n\r\n if (this.action.toMenu != null) {\r\n this.setAttribute(\"data-tomenu\", MenuType[this.action.toMenu]);\r\n }\r\n }\r\n }\r\n\r\n protected set _caption(value: string) {\r\n const width = this.clientWidth;\r\n\r\n this._captionElement.textContent = value;\r\n this._captionElement.title = value;\r\n\r\n this._processNewCaption(value, width);\r\n }\r\n\r\n private _processNewCaption(value: string, originalWidth: number): void {\r\n this.filterLoc = StringUtils.removeAccents(value.toLowerCase());\r\n // pokud se pri nacteni retezce zmeni sirka, je nutno prepocitat pozici DropDownMenu (kvuli absolutnimu pozicovani)\r\n this._recalculatePositionIfNeeded(originalWidth);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.priority = 15;\r\n this._createElement();\r\n\r\n /**\r\n * Položky jsou sdílené pro více řádků záznamů. Zobrazují se ale v PopupMenu, které sdílené není a při zavření se odstraňuje z DOM.\r\n * Položka je v tu chvíli potomkem, takže by se disposovala také, pokud by zůstal disposeOnDetach nastavený na true.\r\n */\r\n this.disposeOnDetach = false;\r\n }\r\n\r\n protected _setIcon(newIcon: string, rewriteOriginal: boolean): void {\r\n if (this.icon) {\r\n this._iconElement.classList.remove(this._icon);\r\n }\r\n if (newIcon) {\r\n this._iconElement.classList.add(newIcon);\r\n }\r\n if (rewriteOriginal) {\r\n this._icon = newIcon;\r\n }\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n this._setListener();\r\n }\r\n\r\n public async setCaption(v: string, titleLocKey?: string, titleLocParams?: string[]): Promise<void> {\r\n this.filterLoc = StringUtils.removeAccents(v.toLowerCase());\r\n // Regex pro formát loc klíče (př.: GUI-468461)\r\n this._captionElement.textContent = /^GUI-[0-9]+$/.test(v) ? await Localization.getTextPromise(v) : v;\r\n\r\n if (titleLocKey) {\r\n Localization.addLocDescData(this._captionElement, titleLocKey, \"title\", titleLocParams, true);\r\n }\r\n }\r\n\r\n public setLocalizedCaption(locKey: string, locParams?: string[]): void {\r\n Localization.addLocData(this._captionElement, locKey, undefined, undefined, locParams, true);\r\n }\r\n\r\n public async getCaption(): Promise<string> {\r\n if (this._captionElement.textContent) {\r\n return this._captionElement.textContent;\r\n }\r\n\r\n return Localization.getTextPromise(this.locKey);\r\n }\r\n\r\n protected _init(element: DropDownMenuItem, icon: string, action: IAction, _locKey: string, enabled: boolean = false, priority: number = 15, _locParams?: string[]): void {\r\n element.action = action;\r\n action.enabled = enabled;\r\n element.priority = priority;\r\n this._setIconOnElement(element, action, icon);\r\n }\r\n\r\n protected _setIconOnElement(element: DropDownMenuItem, _action: IAction, icon: string): void {\r\n element.icon = icon;\r\n }\r\n\r\n public static createDropMenuItem(icon: string, fnc: () => Promise<void>, locKey: string, enabled: boolean = false, priority: number = 15, locParams?: string[]): DropDownMenuItem {\r\n return this._initDropDownElement(new DropDownMenuItem(), icon, fnc, locKey, enabled, priority, locParams);\r\n }\r\n\r\n protected static _initDropDownElement(element: DropDownMenuItem, icon: string, fnc: () => Promise<void>, locKey: string, enabled: boolean = false, priority: number = 15, locParams?: string[]): DropDownMenuItem {\r\n const action = new Action(fnc, locKey, locParams);\r\n element._init(element, icon, action, locKey, enabled, priority, locParams);\r\n return element;\r\n }\r\n\r\n public highlightCaption(text: string): void {\r\n if (text.length) {\r\n ElementUtils.highlightText(text, this._captionElement);\r\n } else {\r\n ElementUtils.clearHighlight(this._captionElement);\r\n }\r\n }\r\n\r\n protected _createElement(): void {\r\n this._textElement = document.createElement(\"div\");\r\n\r\n this.classList.add(\"DropDownMenuItem\");\r\n if (this.action) {\r\n this.classList.toggle(\"disabled\", !this.action.isActive);\r\n }\r\n\r\n this._textElement.classList.add(\"Text\");\r\n\r\n this._createIconElement();\r\n this._createCaptionElement();\r\n\r\n if (this._iconElement) {\r\n this.appendChild(this._iconElement);\r\n }\r\n this.appendChild(this._textElement);\r\n this._textElement.appendChild(this._captionElement);\r\n\r\n if (this.enabled) {\r\n this.tabIndex = 0;\r\n }\r\n }\r\n\r\n protected _createIconElement(): void {\r\n this._iconElement = document.createElement(\"div\");\r\n\r\n this._iconElement.classList.add(\"Icon\");\r\n\r\n this._iconElement.classList.add(\"menuIcon\");\r\n if (this.icon) {\r\n this._iconElement.classList.add(this.icon);\r\n }\r\n }\r\n\r\n protected _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n }\r\n\r\n protected _clickHandler(event: MouseEvent | KeyboardEvent): void {\r\n // Zobrazení informací o akci\r\n if (event.ctrlKey || event.metaKey) {\r\n if (this.action instanceof IInfoProvidingControl) {\r\n this.action.getControlInfo(null, null).then((info) => {\r\n ControlInfo.displayInfo((this.action as XGAction).owner.element, info as IControlInfoObject);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n event.stopImmediatePropagation(); // EventHelper způsobuje okamžité zavření menu svou cancelled událostí\r\n\r\n if (!this.action.isActive) {\r\n return;\r\n }\r\n\r\n if (!this.noCloseAfterSelect) { // Menu je třeba pozavírat ještě přes spuštěním akce, protože ta může otevírat další menu\r\n this.parent.closeAll(event instanceof KeyboardEvent && event.key === Key.Enter, true);\r\n }\r\n\r\n if (typeof this.action.execute === \"function\") {\r\n this.action.execute(); // Není třeba čekat na výsledný Promise\r\n }\r\n }\r\n\r\n protected _setListener(): void {\r\n const fCloseSubmenu = () => {\r\n if (this.parent.openedSubmenu) {\r\n //this.classList.remove(\"selected\");\r\n //logger.log(this.parent.openedSubmenu);\r\n this.parent.openedSubmenu.close();\r\n this.parent.openedSubmenu = null;\r\n }\r\n };\r\n\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n this._clickHandler(e);\r\n }\r\n });\r\n\r\n this.registerEventListener(\"keydown\", (e: KeyboardEvent) => {\r\n if (e.key === Key.Space || (!(e.target instanceof HTMLButtonElement) && e.key === Key.Enter)) {\r\n this._clickHandler(e);\r\n }\r\n });\r\n\r\n this.registerEventListener(\"mouseenter\", (e: MouseEvent) => {\r\n if (!this.parent || !this.parent.openedSubmenu || this.parent.openedSubmenu.disableCloseTimeout) {\r\n return;\r\n }\r\n\r\n if (this.parent.openedSubmenu.closeTimeout) {\r\n clearTimeout(this.parent.openedSubmenu.closeTimeout);\r\n }\r\n if (ElementUtils.inElement((this.parent.openedSubmenu as any) as HTMLElement, e)) {\r\n return;\r\n }\r\n this.parent.openedSubmenu.closeTimeout = self.setTimeout(() => {\r\n fCloseSubmenu();\r\n }, 300);\r\n });\r\n\r\n this.registerEventListener(\"mouseleave\", () => {\r\n if (this.parent?.openedSubmenu?.closeTimeout) {\r\n clearTimeout(this.parent.openedSubmenu.closeTimeout);\r\n }\r\n });\r\n }\r\n\r\n public override remove(): void {\r\n if (this.parent) {\r\n this.parent.removeItem(this);\r\n }\r\n super.remove();\r\n }\r\n\r\n private _recalculatePositionIfNeeded(originalWidth: number): void {\r\n if (originalWidth !== this.clientWidth) {\r\n this.parent.recalculatePosition();\r\n }\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n this._eventsController.removeAllListeners();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuItem\", DropDownMenuItem);\r\n","import { Event } from \"../../../../../Global/Base/Events\";\r\nimport { IMultiActionToolbarButton } from \"./IToolbarButton\";\r\nimport { DesktopToolbarButton } from \"./ToolbarButton\";\r\n/**Reprezentuje tlačítko pro MultiAction v toolbaru*/\r\nexport class MultiActionToolbarButton extends DesktopToolbarButton implements IMultiActionToolbarButton {\r\n //#region Fields\r\n public enabledVisualChanged: Event<MultiActionToolbarButton, boolean> = new Event<MultiActionToolbarButton, boolean>();\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get isMultiSelect(): boolean {\r\n return true;\r\n }\r\n\r\n public override set enabledVisual(value: boolean) {\r\n super.enabledVisual = value;\r\n if (this.enabledVisualChanged)\r\n this.enabledVisualChanged.trigger(this, value);\r\n }\r\n\r\n public override get enabledVisual(): boolean {\r\n return this._enabledVisual;\r\n }\r\n //#endregion Properties\r\n\r\n //#region Methods\r\n protected override _addActionListeners(): void {\r\n // Prázdná metoda\r\n }\r\n protected override _removeActionListeners(): void {\r\n // Prázdná metoda\r\n }\r\n //#endregion Methods\r\n}\r\n","import { IAction } from \"UI/UI.Controls/Actions/IAction\";\r\nimport { Event } from \"../../../../../Global/Base/Events\";\r\nimport { IEnabledVisualControl } from \"../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { DropDownMenuItem } from \"../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { Control } from \"../../Controls/Control\";\r\nimport { IGenericControl } from \"../../Controls/ControlInterfaces\";\r\nimport { MultiActionToolbarButton } from \"./MultiActionToolbarButton\";\r\n/**\r\n * Interface pro toolbarbutton\r\n * @generateInstanceClass\r\n */\r\nexport interface IToolbarButton extends IGenericControl, IEnabledVisualControl {\r\n visibilityChanged: Event<Control, boolean>;\r\n enabled: boolean;\r\n enabledVisual: boolean;\r\n visible: boolean;\r\n dropDownMenuItem: DropDownMenuItem;\r\n action: IAction;\r\n changeVisibilityNotificationDot(isVisible: boolean, captionLocKey?: string): void;\r\n}\r\n\r\nexport class IToolbarButton {\r\n private static _properties = [\"visibilityChanged\", \"element\", \"dropDownMenuItem\", \"visible\", \"action\", \"enabled\", \"enabledVisual\"];\r\n private static _methods = [\"changeVisibilityNotificationDot\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro toolbar tlačítko pro MultiObjectAkce\r\n * @includeToDoc\r\n */\r\nexport interface IMultiActionToolbarButton extends IToolbarButton {\r\n isMultiSelect: boolean;\r\n enabledVisualChanged: Event<MultiActionToolbarButton, boolean>;\r\n enabledVisual: boolean;\r\n dispose: () => void;\r\n}\r\n\r\nexport class IMultiActionToolbarButton {\r\n private static _properties = [\"isMultiSelect\", \"enabledVisualChanged\", \"enabledVisual\", \"dispose\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IToolbarButton;\r\n }\r\n}\r\n","import { Event } from \"../../../Global/Base/Events\";\r\nimport { IToolbarButton } from \"../../UI/UI/XGControls/Actions/IToolbarButton\";\r\nimport { ActionContext, ActionType, IAction, IBaseAction, SelectionType } from \"./IAction\";\r\nimport { MenuType } from \"./MenuType\";\r\n\r\nexport class Action implements IAction {\r\n public actionSize: string;\r\n\r\n public parentAction: IAction;\r\n private _enabled: boolean = true;\r\n private _enabledVisual: boolean = true;\r\n private _visible: boolean = true;\r\n private _actionType: ActionType = ActionType.none;\r\n\r\n public priority: number;\r\n public order: number;\r\n public locKey: string;\r\n public locParams: string[];\r\n public action: () => Promise<void> = async () => { /* Prázdná arrow funkce */ };\r\n\r\n //volitelné property\r\n public toMenu?: MenuType;\r\n public toolbarButton?: IToolbarButton; //TODO: [WI 16310] Refaktoring DesktopToolbarButton\r\n public menuType?: MenuType;\r\n public masterNode?: string;\r\n public isInNode: boolean = false;\r\n\r\n //události\r\n public readonly enabledChanged: Event<IBaseAction, boolean> = new Event<IBaseAction, boolean>();\r\n public readonly visibilityChanged: Event<IBaseAction, boolean> = new Event<IBaseAction, boolean>();\r\n public readonly enabledVisualChanged: Event<IBaseAction, boolean> = new Event<IBaseAction, boolean>();\r\n public readonly isActiveChanged: Event<IBaseAction, boolean> = new Event<IBaseAction, boolean>();\r\n public readonly interactiveChanged: Event<IBaseAction, boolean> = new Event<IBaseAction, boolean>();\r\n\r\n public get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public set enabled(v: boolean) {\r\n this._enabled = v;\r\n this.enabledChanged.trigger(this, v); // TODO-rites\r\n this.isActiveChanged.trigger(this, v); // dědící třída by měla toto notifikovat při změně příznaku isActive // TODO-rites\r\n }\r\n\r\n public get enabledVisual(): boolean {\r\n return this._enabledVisual;\r\n }\r\n\r\n public set enabledVisual(value: boolean) {\r\n const oldValue = this._enabledVisual;\r\n\r\n this._enabledVisual = value;\r\n\r\n if (value !== oldValue)\r\n this.enabledVisualChanged.trigger(this, value);\r\n }\r\n\r\n /**\r\n * Pokud bude dědící třída implementovat IReadOnlyControl, měla by být property přepsaná tak,\r\n * aby reflektovala i příznak isReadOnly\r\n */\r\n public get isActive(): boolean {\r\n return this.enabled;\r\n }\r\n\r\n public get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n public set visible(v: boolean) {\r\n this._visible = v;\r\n this.visibilityChanged.trigger(this, v);\r\n }\r\n\r\n public async execute(): Promise<void> {\r\n if (this.isActive && this.action)\r\n this.action();\r\n }\r\n\r\n public get context(): ActionContext {\r\n return ActionContext.none;\r\n }\r\n\r\n public get actionType(): ActionType {\r\n return this._actionType;\r\n }\r\n\r\n public set actionType(type: ActionType) {\r\n this._actionType = type;\r\n }\r\n\r\n public get supportedSelectionModes(): SelectionType {\r\n return SelectionType.single;\r\n }\r\n\r\n constructor(action?: (...params: any[]) => Promise<void>, locKey?: string, locParams?: string[]) {\r\n this.action = action || (async () => { /* Prázdná arrow funkce */ });\r\n this.locKey = locKey;\r\n this.locParams = locParams;\r\n }\r\n\r\n public dispose(): void {\r\n // Prázdná metoda\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { Control } from \"../../UI.BaseControls/Control\";\r\nimport { GenericControl } from \"../../UI.BaseControls/GenericControl\";\r\nimport { EventHelper } from \"../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { Action } from \"../../UI.Controls/Actions/Action\";\r\nimport { DropDownMenuHorizontalOpen, IDropDownMenuItem } from \"../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { DropDownMenu } from \"../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { DropDownMenuItem } from \"../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { SeparatorMenuItem } from \"../../UI.Controls/DropDownMenu/SeparatorItem\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.fileEdit);\r\n\r\nexport class FileMenuBase {\r\n private _createdMenuItems: Map<MenuItem, (Control & IDropDownMenuItem)[]> = new Map<MenuItem, (Control & IDropDownMenuItem)[]>();\r\n private _menuItemsFactories: Map<MenuItem, () => Control & IDropDownMenuItem> = new Map<MenuItem, () => Control & IDropDownMenuItem>();\r\n protected _signMenuItemsSeparators: SeparatorMenuItem[];\r\n protected _fileMenu: DropDownMenu;\r\n public type: FileMenuType;\r\n\r\n public get isOpened(): boolean {\r\n return this._fileMenu.isOpened;\r\n }\r\n\r\n public show(startElement: HTMLElement, event: Event): void {\r\n this._fileMenu.show(startElement, event);\r\n }\r\n\r\n public showEmpty(startElement: HTMLElement, event: Event): void {\r\n this._fileMenu.showEmpty(startElement, event);\r\n }\r\n\r\n public close(dontOpenOnNextClick: boolean, event: Event): void {\r\n this._fileMenu.close(dontOpenOnNextClick);\r\n if (event)\r\n EventHelper.stopPropagation(event);\r\n }\r\n\r\n private _registerMenuItemFactory(menuType: MenuItem, handler: () => Promise<void>, icon: string, locKey: string, classes?: string[], enabled: boolean = true): void {\r\n const creator = () => {\r\n const element = new DropDownMenuItem();\r\n const action = new Action(handler, locKey);\r\n\r\n element.action = action;\r\n action.enabled = enabled;\r\n\r\n element.icon = icon;\r\n if (classes)\r\n element.classList.add(...classes);\r\n //zaregistrujeme vytvořený typ elementu, aby ho pak bylo možné získat podle typu.\r\n if (!this._createdMenuItems.has(menuType))\r\n this._createdMenuItems.set(menuType, []);\r\n this._createdMenuItems.get(menuType).push(element);\r\n\r\n return element;\r\n };\r\n //element.LocKey = locKey;\r\n this._menuItemsFactories.set(menuType, creator);\r\n }\r\n\r\n protected _createMenuItem(menuItemType: MenuItem): Control & IDropDownMenuItem {\r\n if (this._menuItemsFactories.has(menuItemType))\r\n return this._menuItemsFactories.get(menuItemType)();\r\n else {\r\n logger.error(`Unable to create menu Item of type '${menuItemType}'. Register its factory before creating.`);\r\n return undefined;\r\n }\r\n }\r\n private *_getMenuItemsOfType(...menuItemTypes: MenuItem[]): IterableIterator<Control & IDropDownMenuItem> {\r\n for (const menuItemType of menuItemTypes) {\r\n if (this._createdMenuItems.has(menuItemType))\r\n yield* this._iterateArray(this._createdMenuItems.get(menuItemType));\r\n }\r\n }\r\n private *_iterateArray(array: (Control & IDropDownMenuItem)[]): Generator<Control & IDropDownMenuItem, void, unknown> {\r\n for (const item of array)\r\n yield item;\r\n }\r\n\r\n protected _registrMenuItem(): void {\r\n this._registerMenuItemFactory(MenuItemFile.upload, async () => {\r\n this._callEvent(\"triggerOpenFile\", { withSigning: false });\r\n }, \"upload\", \"GUI-600106\", [\"upload\"]); // Nahrát\r\n this._registerMenuItemFactory(MenuItemFile.download, async () => {\r\n this._callEvent(\"downloadRequest\");\r\n }, \"download\", \"GUI-397994\", [\"download\"]); // Stáhnout soubor\r\n this._registerMenuItemFactory(MenuItemFile.downloadArchiveVersion, async () => {\r\n this._callEvent(\"downloadRequest\", { isArchiveDocument: true });\r\n }, \"download\", \"GUI-667542\", [\"archive-version\"]); // Stáhnout archivní verzi\r\n this._registerMenuItemFactory(MenuItemFile.copyUrl, async () => {\r\n this._callEvent(\"copyUrl\");\r\n }, \"web-link\", \"GUI-667747\", [\"copy-url\"]); // Kopírovat odkaz na soubor\r\n this._registerMenuItemFactory(MenuItemFile.showVersions, async () => {\r\n this._callEvent(\"showVersions\");\r\n }, \"doc-archive\", \"GUI-678599\", [\"show-versions\"]); // Verze dokumentu\r\n this._registerMenuItemFactory(MenuItemFile.uploadAnother, async () => {\r\n this._callEvent(\"triggerOpenFile\");\r\n }, \"upload\", \"GUI-599591\", [\"upload-another\"]); // Nahrát jiný\r\n this._registerMenuItemFactory(MenuItemFile.delete, async () => {\r\n this._callEvent(\"removeRequest\");\r\n }, \"remove\", \"GUI-314806\", [\"delete\"]); // Smazat\r\n this._registerMenuItemFactory(MenuItemSigning.uploadAndSign, async () => {\r\n this._callEvent(\"triggerOpenFile\", { withSigning: true });\r\n }, \"upload\", \"GUI-625601\", [\"upload-sign\"]); // Nahrát a podepsat\r\n this._registerMenuItemFactory(MenuItemSigning.uploadAnotherAndSign, async () => {\r\n this._callEvent(\"triggerOpenFile\", { withSigning: true });\r\n }, \"editorial-pen\", \"GUI-625602\", [\"upload-sign-another\"]); // Nahrát jiný a podepsat\r\n this._registerMenuItemFactory(MenuItemSigning.sign, async () => {\r\n this._callEvent(\"signRequest\");\r\n }, \"editorial-pen\", \"GUI-604319\", [\"sign\"]); // Vytvořit podpis\r\n this._signMenuItemsSeparators = [];\r\n }\r\n\r\n /**\r\n * Nastavuje, zda je možné vytvářet digitální podpisy dokumentu\r\n * @internal\r\n */\r\n public updateSigningEnabled(signingEnabled: boolean, signingEnabledIfEmpty: boolean = signingEnabled): void {\r\n // při změně je potřeba skrýt související položky v menu\r\n for (const i of this._getMenuItemsOfType(MenuItemSigning.sign, MenuItemSigning.uploadAndSign))\r\n i.visible = signingEnabled;\r\n for (const e of this._getMenuItemsOfType(MenuItemSigning.uploadAnotherAndSign))\r\n e.visible = signingEnabledIfEmpty;\r\n this._signMenuItemsSeparators.forEach(i => i.visible = signingEnabled);\r\n }\r\n\r\n /**\r\n * Nastavuje viditelnost akce 'menuItem'.\r\n *\r\n * @param value Hodnota udavající zda bude akce MenuItem viditelná.\r\n * @param menuItem Akce meny, pro kterou se nastavuje viditelnost.\r\n */\r\n public setMenuItemEnabled(value: boolean, menuItem: MenuItem): void {\r\n if (value == undefined)\r\n return;\r\n for (const item of this._getMenuItemsOfType(menuItem))\r\n item.visible = value;\r\n }\r\n\r\n public setStatus(status: FileEditStatus): void {\r\n // stav tlačítek pro stažení a podpis je třeba aktualizovat podle dostupnosti dokumentu\r\n if (status === FileEditStatus.download || status === FileEditStatus.unavailable) {\r\n for (const item of this._getMenuItemsOfType(MenuItemFile.download, MenuItemFile.downloadArchiveVersion, MenuItemSigning.sign, MenuItemFile.copyUrl, MenuItemFile.showVersions)) {\r\n if (item instanceof DropDownMenuItem) {\r\n item.action.enabled = (status === FileEditStatus.download);\r\n }\r\n }\r\n }\r\n }\r\n\r\n //#region Zpracování metod z globální třídy GenericControl\r\n /**\r\n * Zaregistruje událost\r\n * @param event Název události\r\n * @param action Akce při vyvolání události\r\n */\r\n public registerEventListener(event: string, action: (e: CustomEvent) => any, _useCapture?: boolean): void {\r\n GenericControl.registerEventListener(this._fileMenu as HTMLElement, event, action);\r\n }\r\n /**\r\n * Zavolá událost na elementu\r\n * @param eventName Název události\r\n * @param detail Podrobnosti události\r\n * @return Vrátí customEvent\r\n */\r\n protected _callEvent(eventName: string, detail?: any, bubbles: boolean = false, cancelable: boolean = false): CustomEvent {\r\n return GenericControl.callEvent(this._fileMenu as HTMLElement, eventName, detail, bubbles, cancelable);\r\n }\r\n //#enregion Zpracování metod z globální třídy GenericControl\r\n}\r\ntype MenuItem = MenuItemFile | MenuItemSigning;\r\nexport enum MenuItemFile {\r\n upload = \"upload\",\r\n download = \"download\",\r\n downloadArchiveVersion = \"downloadArchiveVersion\",\r\n copyUrl = \"copyUrl\",\r\n uploadAnother = \"uploadAnother\",\r\n delete = \"delete\",\r\n showVersions = \"showVersions\",\r\n}\r\nenum MenuItemSigning {\r\n sign = \"sign\",\r\n uploadAndSign = \"uploadAndSign\",\r\n uploadAnotherAndSign = \"uploadAnotherAndSign\",\r\n}\r\n\r\n// Standartní menu v editaci - obsahuje pouze položky pro editaci\r\nexport class FileMenuEdit extends FileMenuBase {\r\n constructor() {\r\n super();\r\n this._createFileMenuItems();\r\n this.type = FileMenuType.edit;\r\n }\r\n\r\n private _createFileMenuItems(): void {\r\n this._registrMenuItem();\r\n\r\n this._fileMenu = new DropDownMenu();\r\n this._fileMenu.horizontalOpenPosition = DropDownMenuHorizontalOpen.right;\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.download)); // Stáhnout soubor\r\n\r\n // archivní verze\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.downloadArchiveVersion)); // Stáhnout archivní verzi\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.showVersions)); // Archivní verze\r\n\r\n // kopírovat odkaz\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.copyUrl)); // kopírovat odkaz na soubor\r\n\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.uploadAnother)); //Nahrát jiný\r\n\r\n // část podpisů\r\n const separator = new SeparatorMenuItem();\r\n this._fileMenu.addItem(separator);\r\n this._signMenuItemsSeparators.push(separator);\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemSigning.sign)); //Vytvořit podpis\r\n\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemSigning.uploadAnotherAndSign)); // Nahrát jiný a podepsat\r\n\r\n this._fileMenu.addItem(new SeparatorMenuItem());\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.delete)); //Smazat\r\n }\r\n}\r\n\r\n// Menu pro needitační režim - obsahuje pouze položky, které mají význam mimo editaci\r\nexport class FileMenuNonEdit extends FileMenuBase {\r\n constructor() {\r\n super();\r\n this._createFileMenuItems();\r\n this.type = FileMenuType.nonEdit;\r\n }\r\n\r\n private _createFileMenuItems(): void {\r\n this._registrMenuItem();\r\n\r\n this._fileMenu = new DropDownMenu();\r\n this._fileMenu.horizontalOpenPosition = DropDownMenuHorizontalOpen.right;\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.download)); // Stáhnout soubor\r\n\r\n // archivní verze\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.downloadArchiveVersion)); // Stáhnout archivní verzi\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.showVersions)); // Archivní verze\r\n\r\n // kopírovat odkaz\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.copyUrl)); // kopírovat odkaz na soubor\r\n\r\n // část podpisů\r\n const separator = new SeparatorMenuItem();\r\n this._fileMenu.addItem(separator);\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemSigning.sign)); // Vytvořit podpis\r\n this._signMenuItemsSeparators.push(separator);\r\n }\r\n}\r\n\r\n// Menu pro režim empty - obsahuje pouze položky, které mají význam dokud nebyl nahrán soubor\r\nexport class FileMenuEmpty extends FileMenuBase {\r\n constructor() {\r\n super();\r\n this._createFileMenuItems();\r\n this.type = FileMenuType.empty;\r\n }\r\n\r\n private _createFileMenuItems(): void {\r\n this._registrMenuItem();\r\n\r\n this._fileMenu = new DropDownMenu();\r\n this._fileMenu.horizontalOpenPosition = DropDownMenuHorizontalOpen.right;\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemFile.upload)); //Nahrát\r\n this._fileMenu.addItem(this._createMenuItem(MenuItemSigning.uploadAndSign)); // Nahrát a podepsat\r\n }\r\n}\r\n\r\nexport enum FileEditStatus {\r\n empty,\r\n download,\r\n uploading,\r\n error,\r\n previewNotSupported,\r\n fileSizeExceed,\r\n unavailable,\r\n}\r\n\r\nexport enum FileEditProgressStatus {\r\n progressValue,\r\n fail,\r\n complete,\r\n cancel,\r\n}\r\n\r\nexport enum FileMenuType {\r\n edit,\r\n nonEdit,\r\n empty,\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { DataSourceException } from \"Global/Base/Exceptions\";\r\nimport { OWExceptions } from \"OW.Remoting/Basic/OWExceptions\";\r\nimport { ErrorHandler } from \"UI/Errors\";\r\n\r\n/**\r\n * Třída strající se o zpracování chyb\r\n * @includeToDoc\r\n */\r\nexport class DataSourceErrorHandler {\r\n /**\r\n * Zpracuje a zobrazí odpovídající hlášku při selhání načítání dat\r\n * @param error Nastalá chyba\r\n * @param hasFilterCondition Zda je aktivní filtr\r\n */\r\n public static handleDataSourceError(error: any, hasFilterCondition: boolean): void {\r\n try {\r\n const errData = OWExceptions.parseJSON(error);\r\n ErrorHandler.instance.handleError(errData);\r\n } catch (e) {\r\n if (AppContext.instance.configuration.developmentMode) {\r\n ErrorHandler.instance.handleError(error);\r\n } else {\r\n ErrorHandler.instance.handleError(new DataSourceException(hasFilterCondition));\r\n }\r\n }\r\n }\r\n}\r\n","import { getDataReaderClient } from \"@multiweb/clients/util\";\r\nimport { DataSourceErrorHandler } from \"UI/UI/UI/DataSourceErrorHandler\";\r\nimport { AdditionalOrdering, ConditionParam, IDataSource, IDataSourceLoadInfo, IDBDataSourceParams, IOrderBy, OrderType } from \"../../../Global/Base/DataSources/Interfaces\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { InvalidOperationException } from \"../../../Global/Base/Exceptions\";\r\nimport { CancelError, CancellationToken, CancellationTokenSource } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { ConditionOperator, StringUtils } from \"../../../Global/Base/Utils/StringUtils\";\r\nimport { DBDataSource } from \"./DBDataSource\";\r\n\r\n/*\r\n* Trida reprezentujici databazovy zdroj dat pro konzumenta dat\r\n*/\r\nexport class GroupingTreeViewDataSource extends DBDataSource {\r\n //#region Events\r\n /**\r\n * Vraci startindex pro cteni dat\r\n */\r\n public override dataLoaded: Event<IDataSource, IGroupingDataSourceLoadInfo> = new Event<IDataSource, IGroupingDataSourceLoadInfo>();\r\n //#endregion Events\r\n\r\n //#region Properties\r\n /** Pokud je nastaveno true, všechno třídění bude automaticky nezávislé na diakritice */\r\n private _orderByDefaultLinguistic = true;\r\n\r\n public override get orderBy(): IOrderBy[] {\r\n return this._orderBy;\r\n }\r\n\r\n public override set orderBy(values: IOrderBy[]) {\r\n this._orderBy = values;\r\n if (values && values.length > 0) {\r\n const resultOrderBy: string[] = [];\r\n\r\n for (const orderByItem of values) {\r\n resultOrderBy.push(this._parseOrderBy(orderByItem));\r\n }\r\n\r\n this._internalOrderBy = resultOrderBy;\r\n } else {\r\n this._internalOrderBy = [this.dataKey]; // při nezadaném sloupci pro třídění se defaultně použije sloupec ID\r\n }\r\n }\r\n\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(params: IDBDataSourceParams) {\r\n super(params);\r\n\r\n this.error.add((_sender, error) => {\r\n DataSourceErrorHandler.handleDataSourceError(error, this.hasFilterCondition);\r\n });\r\n }\r\n //#endregion Constructors\r\n\r\n protected override _parseOrderBy(orderBy: IOrderBy): string {\r\n if (this._orderByDefaultLinguistic)\r\n orderBy.additionalOrdering = AdditionalOrdering.linguistic;\r\n return super._parseOrderBy(orderBy);\r\n }\r\n\r\n /**\r\n * Získá data jedné konkrétní větve stromu\r\n * @param attribute Atribut, který má být zobrazen\r\n * @param additionalConditions Dodatečná data, potřebná ke čtení\r\n */\r\n public loadChildData(attribute: string, parentId: string, additionalConditions: Array<IAdditionalGroupingParams>, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n return this._loadTreeData(attribute, parentId, additionalConditions, cancellationToken);\r\n }\r\n\r\n /**\r\n * Nahraje data od zacatku\r\n */\r\n public override loadNewData(_keepSelectedRecords?: boolean, cancellationToken: CancellationToken = CancellationToken.none): Promise<any> {\r\n return this._loadTreeData(null, null, null, cancellationToken);\r\n }\r\n\r\n /**\r\n * Přečte data do požadované větve stromu\r\n * @param attribute Atribut, který má být zobrazen\r\n * @param additionalParams Dodatečná data, potřebná ke čtení\r\n */\r\n protected _loadTreeData(attribute: string, parentId: string, additionalParams: Array<IAdditionalGroupingParams>, cancellationToken: CancellationToken): Promise<any> {\r\n if (/@\\d+/.test(this._condition) && (this._conditionParams == null || this._conditionParams.length === 0))\r\n return Promise.reject(new InvalidOperationException(\"Condition contains params but no parameter value available\"));\r\n\r\n let finalCondition = this.condition;\r\n const finalConditionParams = [...this.conditionParams];\r\n\r\n if (additionalParams) {\r\n additionalParams.forEach((params) => {\r\n finalCondition = StringUtils.combineConditions(ConditionOperator.and, finalCondition, `${params.condition} = @${finalConditionParams.length}`); // `\r\n finalConditionParams.push(params.param);\r\n });\r\n }\r\n\r\n this._runningDataLoadCTS = new CancellationTokenSource([cancellationToken]);\r\n this._runningDataLoad = getDataReaderClient().getDataRowsWithParams(this._className, attribute ? [attribute] : this._attributes, finalCondition, {\r\n params: finalConditionParams,\r\n orderBy: (attribute ? [this._parseOrderBy({ attributeName: attribute, order: OrderType.ascending })] : this._internalOrderBy),\r\n dataLength: this._dataLength,\r\n readVersioned: this._readVersioned,\r\n distinct: true,\r\n groupBy: this._groupBy,\r\n }, this._fullLengthAttributes, this._getRequestContext(this._runningDataLoadCTS.token))\r\n .then(async (rows) => {\r\n this._internalRows = rows;\r\n\r\n const eventParams: IGroupingDataSourceLoadInfo = {\r\n startIndex: 0,\r\n dataGenerator: this._getIterator.bind(this, 0, rows.length),\r\n lastBatch: true,\r\n isFiltered: false,\r\n refreshedData: false,\r\n parentId: parentId,\r\n attribute: attribute ? attribute : this._attributes[0],\r\n rowsCount: this._internalRows.length,\r\n emptyData: false,\r\n };\r\n\r\n this._runningDataLoad = null;\r\n\r\n this.dataLoaded.trigger(this, eventParams);\r\n this.loadingEnded.trigger(this, eventParams);\r\n\r\n return rows;\r\n }).catch((err) => {\r\n this._runningDataLoad = null;\r\n\r\n this.loadingEnded.trigger(this, { isFiltered: false, fulltextSearchString: this.fulltextCondition?.searchString, emptyData: true, cancellationToken: cancellationToken });\r\n\r\n // zrušení nahrávání data je v pořádku\r\n if (!(err instanceof CancelError))\r\n this.error.trigger(this, err);\r\n });\r\n\r\n this.loadingStarted.trigger(this, 0);\r\n\r\n return this._runningDataLoad;\r\n }\r\n}\r\n\r\n/**\r\n * Dodatečná podmínka a vstup pro čtení dat\r\n */\r\nexport interface IAdditionalGroupingParams {\r\n condition: string;\r\n param: ConditionParam;\r\n}\r\n\r\n/**\r\n * Informace o přečtených datech\r\n * @generateInstanceClass\r\n */\r\nexport interface IGroupingDataSourceLoadInfo extends IDataSourceLoadInfo {\r\n /**\r\n * Identifikátor rodičovského prvku\r\n */\r\n parentId: string;\r\n /**\r\n * Atribut, ze kterého jsou načítána data\r\n */\r\n attribute: string;\r\n\r\n /**\r\n * Počet načtených řádků z DB\r\n */\r\n rowsCount: number;\r\n}\r\n\r\nexport class IGroupingDataSourceLoadInfo {\r\n private static _properties = [\"parentId\", \"attribute\", \"rowsCount\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IDataSourceLoadInfo;\r\n }\r\n}\r\n","import { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { IOrderBy } from \"../../Global/Base/DataSources/Interfaces\";\r\nimport { IAwaitableEvent } from \"../UI.BaseControls/AwaitableEvent\";\r\nimport { FileEditStatus } from \"../UI/UI/FileMenu\";\r\nimport { Column } from \"./DataGridSubcontrols/Columns/Column\";\r\nimport { IDataRowElement } from \"./DataGridSubcontrols/Components/IDataRow\";\r\nimport { IAdditionalGroupingParams } from \"./DataSource/GroupingTreeViewDataSource\";\r\nimport { IDataGrid } from \"./IDataGrid\";\r\n\r\nexport interface IDataGridSelectionChangedEvent extends CustomEvent {\r\n detail: IDataGridSelectionChangedEventData;\r\n}\r\n\r\nexport interface IDataGridSelectionChangedEventData {\r\n dataGrid: IDataGrid<IDataRowElement>;\r\n rowID: string;\r\n data: any;\r\n}\r\n\r\nexport interface IGroupingDataGridSelectionChangedEventData extends IDataGridSelectionChangedEventData {\r\n conditionData: Array<IAdditionalGroupingParams>;\r\n}\r\n\r\nexport interface IDataGridMultipleSelectionChangedEvent extends CustomEvent {\r\n detail: IDataGridMultipleSelectionChangedEventData;\r\n}\r\n\r\nexport interface IDataGridMultipleSelectionChangedEventData {\r\n dataGrid: IDataGrid<IDataRowElement>;\r\n rowIDs: string[];\r\n data: any;\r\n}\r\n\r\nexport interface IDataGridDataShownEvent extends CustomEvent {\r\n detail: IDataGridDataShownEventData;\r\n}\r\n\r\nexport interface IDataGridDataShownEventData {\r\n data: () => Iterable<IRowData>;\r\n}\r\n\r\nexport interface IColumnOrderingChangedEvent extends CustomEvent {\r\n detail: IColumnOrderingChangedEventData;\r\n}\r\n\r\nexport interface IColumnOrderingChangedEventData {\r\n order: IOrderBy[];\r\n}\r\n\r\nexport interface IColumnPositionChangedEvent extends CustomEvent {\r\n detail: IColumnPositionChangedEventData;\r\n}\r\n\r\nexport interface IColumnPositionChangedEventData {\r\n oldColumnsVisibility: boolean[];\r\n column: Column;\r\n newPosition: number;\r\n oldPosition: number;\r\n dontUpdate?: boolean;\r\n}\r\n\r\nexport interface IFileUploadStatusChangeEvent extends CustomEvent {\r\n detail: IFileUploadStatusChangeEventData;\r\n}\r\n\r\nexport interface IFileUploadStatusChangeEventData {\r\n status: FileEditStatus;\r\n}\r\n\r\nexport interface ICellValueChangedPrewAwaitableEvent extends IAwaitableEvent<boolean> {\r\n detail: ICellValueChangedPrewAwaitableEventData;\r\n}\r\n\r\nexport interface ICellValueChangedPrewAwaitableEventData {\r\n attrName: string;\r\n value: IAttrValue;\r\n}\r\n\r\nexport interface GlobalCustomEvent<DetailType> extends CustomEvent {\r\n detail: DetailType;\r\n}\r\n","import { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { Enum } from \"../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Flags } from \"../../../../OW.Remoting/Remoting/DataTypes/Flags\";\r\nimport { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IListDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { DataRow } from \"./DataRow\";\r\nimport { IListDataRowElement } from \"./IDataRow\";\r\n/**\r\n * Řádek seznamového dataGridu\r\n */\r\nexport class ListDataRow extends DataRow implements IListDataRowElement {\r\n protected override _dataGrid: IListDataGrid<IListDataRowElement>;\r\n\r\n public override get isValid(): boolean {\r\n return super.isValid;\r\n }\r\n\r\n public override set isValid(v: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isValid\")) return;\r\n\r\n super.isValid = v;\r\n }\r\n\r\n public override get isSelected(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isSelected\")) return false;\r\n\r\n return this._dataGrid.selectedRows.indexOf(this) != -1;\r\n }\r\n\r\n public override set isSelected(value: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isSelected\")) {\r\n return;\r\n }\r\n\r\n const old = this.classList.contains(\"selectedRecord\");\r\n if (old == value) {\r\n return;\r\n }\r\n\r\n this.classList.toggle(\"selectedRecord\", value);\r\n\r\n const index = this._dataGrid.selectedRows.indexOf(this);\r\n if (value) {\r\n if (index == -1) {\r\n this._dataGrid.selectedRows.push(this);\r\n }\r\n } else {\r\n if (index != -1) {\r\n this._dataGrid.selectedRows.splice(index, 1);\r\n this._dataGrid.clearIsSelectedAllIfNeeded();\r\n }\r\n }\r\n\r\n this.selectionStateChanged.trigger(this, value);\r\n }\r\n\r\n /**\r\n * Nastavi záznam visuálně do stavu smazany\r\n */\r\n public override get isDeleted(): boolean {\r\n return super.isDeleted;\r\n }\r\n\r\n public override set isDeleted(value: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isDeleted\")) return;\r\n\r\n super.isDeleted = value;\r\n }\r\n\r\n /**\r\n * Obravení radku\r\n */\r\n public override get flag(): Enum | string {\r\n if (this.checkAndLogDisposedUsage(\"get flag\")) return undefined;\r\n\r\n const flag = this.getAttribute(\"flag\");\r\n if (flag)\r\n return Flags.get(flag);\r\n else\r\n return undefined;\r\n }\r\n\r\n public override set flag(v: Enum | string) {\r\n if (this.checkAndLogDisposedUsage(\"set flag\")) return;\r\n\r\n if (v)\r\n this.setAttribute(\"flag\", v instanceof Enum ? v.getName() : v);\r\n else\r\n this.removeAttribute(\"flag\");\r\n }\r\n\r\n public removeCellByIndex(index: number): void {\r\n if (this.checkAndLogDisposedUsage(\"removeCellByIndex\")) return;\r\n\r\n this._dataCells.splice(index, 1).forEach(cell => cell.element?.remove());\r\n }\r\n\r\n protected override _cleanRowElement(): void {\r\n this.innerHTML = \"\";\r\n this._frozenPart.innerHTML = \"\";\r\n }\r\n\r\n protected override _createNoEditableCells(): void {\r\n if (this.checkAndLogDisposedUsage(\"_createNoEditableCells\")) {\r\n return;\r\n }\r\n\r\n this._frozenPart.appendChild(this._createFirstCell());\r\n\r\n for (const cell of this.dataCells) {\r\n if (cell.column.visible) {\r\n cell.toEdit(false);\r\n const newCell = cell.render();\r\n if (newCell) { //sloupec mohl změnit viditelnost a render vrátil null.\r\n if (cell.column.isFrozen) {\r\n this._frozenPart.appendChild(newCell);\r\n } else {\r\n this.appendChild(newCell);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public toggleVisibilityCellByAttrName(attrName: string, visible: boolean): void {\r\n if (this.checkAndLogDisposedUsage(\"toggleVisibilityCellByAttrName\")) return;\r\n\r\n const element = (this.querySelector(`td[data-attrName='${attrName}']`) as HTMLElement);\r\n if (element) {\r\n element.style.display = visible ? \"\" : \"none\";\r\n element.classList.toggle(\"not-visible\", !visible);\r\n }\r\n }\r\n\r\n /**\r\n * Změní šířku buňky\r\n * @param attrName Název atributu, který buňka zobrazuje\r\n * @param width Nová šířka buňky\r\n */\r\n public resizeCellByAttrName(attrName: string, width: number): void {\r\n if (this.checkAndLogDisposedUsage(\"resizeCellByAttrName\")) return;\r\n\r\n this._resizeCell((this.querySelector(`td[data-attrName='${attrName}']`) as HTMLElement), width);\r\n }\r\n\r\n /**\r\n * Změní šířku buňky\r\n * @param attrName Název atributu, který buňka zobrazuje\r\n * @param width Nová šířka buňky\r\n */\r\n public resizeCellByFullAttrName(attrName: string, width: number): void {\r\n if (this.checkAndLogDisposedUsage(\"resizeCellByFullAttrName\")) return;\r\n\r\n this._resizeCell((this.querySelector(`td[data-fullattrName='${attrName}']`) as HTMLElement), width);\r\n }\r\n\r\n /**\r\n * Změní šířku buňky pro sloupce bez atributu\r\n * @param index Index, na kterém se buňka nachází\r\n * @param width Nová šířka buňky\r\n */\r\n public resizeCellByIndex(index: number, width: number): void {\r\n if (this.checkAndLogDisposedUsage(\"resizeCellByIndex\")) return;\r\n\r\n this._resizeCell((this.querySelector(`td:not(.not-visible):nth-child(${index + 2})`) as HTMLElement), width);\r\n }\r\n\r\n /**\r\n * Změní šířku požadované buňky\r\n * @param element Buňka\r\n * @param width Nová šířka\r\n */\r\n private _resizeCell(element: HTMLElement, width: number): void {\r\n if (this.checkAndLogDisposedUsage(\"_resizeCell\")) return;\r\n\r\n if (element) {\r\n element.style.width = `${width}px`;\r\n }\r\n }\r\n\r\n /**\r\n * Přesune buňku na jinou pozici\r\n * @param fullAttrName Název atributu, který buňka zobrazuje\r\n * @param newPosition Nová pozice, na které má být buňka umístěna\r\n */\r\n public changeCellPositionByFullAttrName(fullAttrName: string, newPosition: number): void {\r\n if (this.checkAndLogDisposedUsage(\"changeCellPositionByFullAttrName\")) return;\r\n\r\n const element = this.querySelector(`td[data-fullAttrName='${fullAttrName}']`) as HTMLElement;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this._changeDataCells(element, newPosition);\r\n // index přesouvané buňky z pole pouze viditelných buňek\r\n const cellToPositionIndex = this._dataCells.filter(cell => cell.column.visible === true).findIndex(cell => cell.column.fullAttrName === fullAttrName);\r\n this._setCellToPosition(element, cellToPositionIndex, this._getDataCells());\r\n }\r\n\r\n /**\r\n * Přesune buňku na jinou pozici u sloupců bez atributu\r\n * @param index Index, na kterém se buňka nachází\r\n * @param newPosition Nová pozice, na které má být buňka umístěna\r\n */\r\n public changeCellPositionByIndex(index: number, newPosition: number): void {\r\n if (this.checkAndLogDisposedUsage(\"changeCellPositionByIndex\")) return;\r\n\r\n const targetElements = this._getDataCells();\r\n\r\n let node: HTMLElement = undefined;\r\n let i = 0;\r\n for (const element of targetElements) {\r\n if (i === index) {\r\n node = element;\r\n i = 0;\r\n break;\r\n } else {\r\n i++;\r\n }\r\n }\r\n\r\n if (!node) {\r\n return;\r\n }\r\n\r\n this._changeDataCells(node, newPosition);\r\n const cellToMovePosition = this._dataGrid.frozenColumnCount + (this._dataCells.length === newPosition ? newPosition : newPosition - 1); // pokud se vkládá na poslední pozici musí se přičíst 1, protože splice neodsune poslední prvek před vkládaný\r\n this._setCellToPosition(node, cellToMovePosition, targetElements);\r\n }\r\n\r\n /** Vrátí viditelné datové buňky řádku */\r\n protected _getDataCells(): HTMLElement[] {\r\n if (this.checkAndLogDisposedUsage(\"_getDataCells\")) return [];\r\n\r\n return Array.from(this.querySelectorAll(\"td:not(.not-visible).cellContainer, td:not(.not-visible).EditableCell\")) as HTMLElement[];\r\n }\r\n\r\n /**\r\n * Aktualizuje interní pole s pořadím buňek podle aktuálního seřazení sloupců\r\n * @param node Node, obsahující buňky řádku\r\n * @param newPosition Nová pozice prvku\r\n */\r\n private _changeDataCells(node: HTMLElement, newPosition: number): void {\r\n if (this.checkAndLogDisposedUsage(\"_changeDataCells\")) return;\r\n\r\n const searchAttribute = node.getAttribute(\"data-fullAttrName\");\r\n // ID je fallback pro sloupce bez atributu\r\n const removeIndex = this._dataCells.findIndex((item) => item && item.element && (searchAttribute ? item.element.getAttribute(\"data-fullAttrName\") === searchAttribute : item.element.id === node.id));\r\n const cellToMovePosition = this._dataCells.length == newPosition ? newPosition : newPosition - 1; // pokud se vkládá na poslední pozici musí se přičíst 1, protože splice neodsune poslední prvek před vkládaný\r\n const cellToMove = this._dataCells.splice(removeIndex, 1); // Nejdřív odebere přemisťovanou buňku ze seznamu buňek\r\n this._dataCells.splice(cellToMovePosition, 0, ...cellToMove); // A pak ji vloží na požadované místo (index je upraven kvůli předchozímu odebrání)\r\n }\r\n\r\n /**\r\n * Vloží buňku na novou pozici\r\n * @param node Buňka\r\n * @param newPosition Nová pozice\r\n * @param targetElements Řádek seznamu\r\n */\r\n private _setCellToPosition(node: HTMLElement, newPosition: number, targetElements: HTMLElement[]): void {\r\n if (this.checkAndLogDisposedUsage(\"_setCellToPosition\")) return;\r\n\r\n let i = 0;\r\n let append = false;\r\n const actualPosition = targetElements.findIndex(elem => elem == node); // pozice buňky před přesunutím\r\n\r\n for (const element of targetElements) {\r\n if (i === newPosition) {\r\n if (element === node) {\r\n return;\r\n }\r\n\r\n if (actualPosition > newPosition) {\r\n element.insertAdjacentElement(\"beforebegin\", node);\r\n } else {\r\n element.insertAdjacentElement(\"afterend\", node);\r\n }\r\n\r\n append = true;\r\n }\r\n i++;\r\n }\r\n\r\n if (!append) {\r\n node.parentElement.appendChild(node);\r\n }\r\n }\r\n\r\n public override setData(attrName: string, value: IAttrValue): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"setData\")) return undefined;\r\n\r\n return super.setData(attrName, value);\r\n }\r\n\r\n /**\r\n * Inicializace datových buněk řádku\r\n * @param dataRow řádek\r\n * @param frozenCount počet řádku, ktery jsou fixni (budou vykresleny pouze ty) pokud je číslo menší jak nula budou vykresleny všechny\r\n * @param columns sloupce k inicializaci... pokud je null, tak se použijí sloupce z dataGridu\r\n */\r\n protected override _initCells(dataRow: IRowData, frozenCount?: number, columns?: Column[]): void {\r\n if (this.checkAndLogDisposedUsage(\"_initCells\")) return;\r\n\r\n if (columns === null || columns === undefined) columns = this._dataGrid.columns; // columns ??= this._dataGrid.columns\r\n\r\n if (frozenCount) {\r\n let lastFrozenIndex = 0;\r\n let visibleCount = 0;\r\n for (const column of columns) {\r\n lastFrozenIndex++;\r\n if (column.visible) {\r\n visibleCount++;\r\n }\r\n if (visibleCount === frozenCount) {\r\n break;\r\n }\r\n }\r\n columns = columns.slice(0, lastFrozenIndex);\r\n }\r\n super._initCells(dataRow, frozenCount, columns);\r\n }\r\n\r\n /**\r\n * Vybere záznam v případě, že lze tuto akci provést (např. není rozeditovaný jiný seznam)\r\n * @param withFocus Zda má být řádek vybrán s nastavením focusu na seznam. Využívá se při výběru řádku během otevírání menu\r\n */\r\n public override async selectWithCheckChanges(withFocus: boolean = true): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"selectWithCheckChanges\")) return;\r\n\r\n return super.selectWithCheckChanges(withFocus);\r\n }\r\n\r\n /**\r\n * Kontrola zda se muze zmenit vyber radku. Akce muze byt zablokovana pokud je jiny seznam rozeditovany a neulozeny.\r\n */\r\n protected override async _checkIfCanSelectionChange(evt: MouseEvent = null): Promise<boolean> { // bere v potaz i frozen row, který na předkovi neexistuje\r\n if (this.checkAndLogDisposedUsage(\"_checkIfCanSelectionChange\")) return true;\r\n\r\n if ((this.isSelected) && !this._canChangeSelectedRowMultiSelect(evt)) {\r\n return true;\r\n }\r\n\r\n return await this._canChangeSelectedRow();\r\n }\r\n\r\n protected override _onCellValidityChanged(): void {\r\n if (this.checkAndLogDisposedUsage(\"_onCellValidityChanged\")) return;\r\n\r\n super._onCellValidityChanged();\r\n }\r\n\r\n public override connectedCallback(): void {\r\n if (this.checkAndLogDisposedUsage(\"connectedCallback\")) return;\r\n super.connectedCallback();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-listdatarow\", ListDataRow);\r\n","import { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { Code } from \"../../../../Global/Base/Utils/EventUtils\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { AwaitableEvent } from \"../../../UI.BaseControls/AwaitableEvent\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { createElement, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { ROW_SELECTION_KEY_CODES } from \"../../DataGrid\";\r\nimport { EditableDataGrid } from \"../../EditableDatagrid\";\r\nimport { ICellValueChangedPrewAwaitableEventData } from \"../../IEvent\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { IEditableListDataRowElement } from \"./IDataRow\";\r\nimport { ListDataRow } from \"./ListDataRow\";\r\nimport { TableCell } from \"./TableCell\";\r\n\r\nconst cellInEditListenerKey = \"cellInEditListener\";\r\n\r\nexport class EditableDataRow extends ListDataRow implements IEditableListDataRowElement {\r\n protected override _dataGrid: EditableDataGrid<EditableDataRow>;\r\n\r\n /**\r\n * Jestli je radek v editaci\r\n */\r\n private _isEdited: boolean;\r\n private _isChanged: boolean;\r\n\r\n /**\r\n * atribut, ktery dostane focus\r\n */\r\n private _focusAttribute: string = null;\r\n\r\n public get focusAttribute(): string | null {\r\n if (this.checkAndLogDisposedUsage(\"get focusAttribute\")) return this._focusAttribute;\r\n return this._focusAttribute;\r\n }\r\n public set focusAttribute(v: string | null) {\r\n if (this.checkAndLogDisposedUsage(\"set focusAttribute\")) return;\r\n this._focusAttribute = v;\r\n }\r\n\r\n //#region Properties\r\n /**\r\n * Informace o tom, zda byl objekt zmeněn a je tedy v kolekci rozeditovaných záznamů\r\n */\r\n public get isChanged(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isChanged\")) return false;\r\n\r\n return this._isChanged;\r\n }\r\n\r\n public set isChanged(v: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isChanged\")) return;\r\n\r\n if (v === this.isChanged) {\r\n return;\r\n }\r\n\r\n this._isChanged = v;\r\n this.classList.toggle(\"IsChanged\", v);\r\n\r\n if (v) {\r\n this._dataGrid.editedRows.push(this);\r\n this.visible = true;\r\n this._dataGrid.incEditedRows();\r\n } else {\r\n this.isInEdit = false;\r\n const index = this._dataGrid.editedRows.indexOf(this);\r\n if (index < 0)\r\n return;\r\n this._dataGrid.editedRows.splice(index, 1);\r\n this._dataGrid.decEditedRows();\r\n if (this._dataGrid.displayedEditedRows) {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n this._dataGrid.dispatchSelectionChanged();\r\n }\r\n this.visible = false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Informace o tom, zda je radek v editaci\r\n */\r\n public get isInEdit(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isInEdit\")) return false;\r\n\r\n return this._isEdited;\r\n }\r\n\r\n public set isInEdit(v: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isInEdit\")) return;\r\n\r\n const oV = this._isEdited;\r\n this._isEdited = v;\r\n if (oV !== v) {\r\n this._toEdit(v);\r\n } else if (v) {\r\n this._focusCell();\r\n }\r\n }\r\n //#endregion Properties\r\n\r\n //#region Methods\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._isEdited = false;\r\n }\r\n\r\n public setChangedData(attrName: string, value: IAttrValue, isChange: boolean): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"setChangedData\")) {\r\n return Promise.resolve();\r\n }\r\n\r\n this.isChanged = isChange;\r\n return this.setData(attrName, value);\r\n }\r\n\r\n /**\r\n * Nastavení novou instanci pro buňky v editaci (LOVEdit a FileEdit)\r\n * @param obj - nově načtený object pro řádek\r\n */\r\n public setInstance(obj: OWObject): void {\r\n if (this.checkAndLogDisposedUsage(\"setInstance\")) return;\r\n\r\n !obj.isDisposed && obj.disposed.add(this._instanceDisposedListener.bind(this));\r\n\r\n for (const cell of this.dataCells) {\r\n cell.setInstance(obj);\r\n }\r\n }\r\n\r\n protected override _initCells(dataRow: IRowData, frozenCount?: number, columns?: Column[]): void {\r\n super._initCells(dataRow, frozenCount, columns);\r\n this._toEdit(this.isInEdit);\r\n }\r\n\r\n /**\r\n * Posluchač na uvolnění instance.\r\n *\r\n * Slouží k odstranění `instanceId` z atributů EditableDataRow elementu při uvolnění instance.\r\n * @param instance Instance.\r\n * @private\r\n */\r\n private _instanceDisposedListener(instance: OWObject): void {\r\n if (this.checkAndLogDisposedUsage(\"_instanceDisposedListener\")) return;\r\n\r\n const instanceId = this.getAttribute(\"data-instanceid\");\r\n if (instanceId && instanceId === instance?.instanceID) {\r\n this.removeAttribute(\"data-instanceid\");\r\n }\r\n }\r\n\r\n private async _cellValueChanged(cell: TableCell, value: IAttrValue): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"_cellValueChanged\")) return;\r\n\r\n // událost umožňuje zrušit změnu hodnoty\r\n const eventData = new AwaitableEvent(\"CellValueChangedPreview\", true, {\r\n bubbles: true,\r\n detail: { attrName: cell.column.attrName, value: value } as ICellValueChangedPrewAwaitableEventData,\r\n });\r\n this.dispatchEvent(eventData);\r\n if (!(await eventData.resultAwaiter)) { // pokud je výsledkem preview false, tak se musí změna hodnoty zrušit\r\n cell.dataSet = cell.dataSet; // do komponenty v buňce se znovu nastaví původní hodnota (v dataSetu buňky je pořád ta původní hodnota - změněná je zatím jen v komponentě)\r\n return;\r\n }\r\n\r\n this.isChanged = true;\r\n\r\n if (this.dataKey) {\r\n const editData: { [v: string]: IAttrValue } = {};\r\n editData[cell.column.attrName] = value;\r\n\r\n await this._dataGrid.dataSource.setValues(this.dataKey, editData);\r\n } else {\r\n throw Error(\"editObject not valid\");\r\n }\r\n }\r\n\r\n private _focusCell(): void {\r\n this.dataCells.forEach(cell => {\r\n if (cell.isFocused) {\r\n cell.blur();\r\n }\r\n });\r\n\r\n let cellFocused = false;\r\n if (this._focusAttribute) {\r\n // If _focusAttributeId is present, it means editing by clicking into the cell.\r\n // Focus the cell with the given attribute id and clear the _focusAttributeId.\r\n const cell = this.dataCells.find(\r\n (cell) =>\r\n cell.column.visible &&\r\n cell.column.isEditable &&\r\n StringUtils.compareCaseInsensitive(\r\n cell.column.attrName,\r\n this._focusAttribute,\r\n ),\r\n );\r\n if (cell) {\r\n cell.focus();\r\n cellFocused = true;\r\n }\r\n this._focusAttribute = null;\r\n }\r\n\r\n if (!cellFocused) {\r\n // If no cell was focused, focus the first editable cell.\r\n this.dataCells\r\n .find((cell) => cell.column.visible && cell.column.isEditable)\r\n ?.focus();\r\n }\r\n }\r\n\r\n private _toEdit(value: boolean): void {\r\n if (this.checkAndLogDisposedUsage(\"_toEdit\")) return;\r\n\r\n if (!this._dataCells.some(item => item.column.isEditable)) {\r\n for (const cell of this.dataCells) {\r\n if (!cell.column.visible) continue;\r\n const newCell = cell.render();\r\n if (newCell) //sloupec mohl změnit viditelnost a render vrátil null.\r\n this.appendChild(newCell);\r\n }\r\n return; // pokud neni zadny sloupec editovatelny netreba nic provadet\r\n }\r\n\r\n this._cleanRowElement();\r\n\r\n const frozenRowHelper = createElement({ classes: \"frozen-part-helper\" });\r\n this._frozenPart = createElement({ classes: \"frozen-part\" });\r\n frozenRowHelper.appendChild(this._frozenPart);\r\n this.insertAdjacentElement(\"afterbegin\", frozenRowHelper);\r\n\r\n this.appendChild(frozenRowHelper);\r\n\r\n this._frozenPart.appendChild(this._createFirstCell());\r\n\r\n // odregistrace události na zmenu s predchozího radku\r\n this._eventsController.removeByKey(cellInEditListenerKey);\r\n\r\n this.dataCells.forEach(cell => {\r\n if (!cell.column.visible) {\r\n return;\r\n }\r\n\r\n // pokud neni editovatelny sloupec, je zbytecne cokoli vytvaret\r\n if (!cell.column.isEditable) {\r\n const newCell = cell.render();\r\n if (newCell) { //sloupec mohl změnit viditelnost a render vrátil null.\r\n if (cell.column.isFrozen) {\r\n this._frozenPart.appendChild(newCell);\r\n } else {\r\n this.appendChild(newCell);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n cell.toEdit(value);\r\n\r\n if (value) {\r\n this._eventsController.addListenerWithKey(cellInEditListenerKey, cell.element, \"valuechanged\", (e: CustomEvent) => {\r\n cell.addPendingActions(this._cellValueChanged(cell, e.detail.value));\r\n });\r\n this._eventsController.addListenerWithKey(cellInEditListenerKey, cell.element, \"keydown\", (e: KeyboardEvent) => {\r\n if (e.ctrlKey && e.code === Code.KeyA) { // Ctrl + A. Aby nedošlo k vybrání všech záznamů v seznamu (DataGrid.ts)\r\n EventHelper.stopPropagation(e);\r\n }\r\n if (ROW_SELECTION_KEY_CODES.includes(e.code)) {\r\n if (cell.isChanged()) {\r\n this.isChanged = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n const newCell = cell.render();\r\n if (!newCell) { //sloupec mohl změnit viditelnost a render vrátil null.\r\n return;\r\n }\r\n\r\n if (cell.column.isFrozen) {\r\n this._frozenPart.appendChild(newCell);\r\n } else {\r\n this.appendChild(newCell);\r\n }\r\n });\r\n\r\n if (value) {\r\n this._focusCell();\r\n } else {\r\n if (document.activeElement === document.body) {\r\n // Nastavíme zaměření na dataGrid, jen pokud už není někde jinde.\r\n this._dataGrid.focus();\r\n }\r\n }\r\n\r\n if (this.dataCells.some(cell => cell.column.visible)) {\r\n this.classList.toggle(\"InEdit\", value);\r\n }\r\n }\r\n\r\n /**\r\n * Udalost pri doubleclicku, na editovatelnem seznamu prejde do editace a preda focus bunce, na kterou se kliklo (pokud je editovatelna), jinak na prvni editovatelnou bunku v radku\r\n */\r\n protected override _doubleClickEvt(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n /**\r\n * Renders the control to the specified HTML writer.\r\n */\r\n public override render(): HTMLElement {\r\n if (this.checkAndLogDisposedUsage(\"render\")) return undefined;\r\n\r\n this._cleanRowElement();\r\n const frozenRowHelper = createElement({ classes: \"frozen-part-helper\" });\r\n this._frozenPart = createElement({ classes: \"frozen-part\" });\r\n frozenRowHelper.appendChild(this._frozenPart);\r\n this.appendChild(frozenRowHelper);\r\n\r\n this._frozenPart.appendChild(this._createFirstCell());\r\n\r\n this._dataCells.forEach((cell) => {\r\n if (cell.column.visible) {\r\n cell.toEdit(this.isInEdit);\r\n const output = cell.render();\r\n if (output) { //sloupec mohl změnit viditelnost a render vrátil null.\r\n if (cell.column.isFrozen) {\r\n this._frozenPart.appendChild(output);\r\n } else {\r\n this.appendChild(output);\r\n }\r\n }\r\n }\r\n });\r\n\r\n return this as HTMLElement;\r\n }\r\n\r\n /**\r\n * Vybere řádek\r\n * @param isFirstSelection Zda se jedná o úplně první výber nově vytvořeného řádku\r\n */\r\n private _select(isFirstSelection: boolean = false): void {\r\n if (this.checkAndLogDisposedUsage(\"_select\")) {\r\n return;\r\n }\r\n\r\n const oldSel = this.isSelected;\r\n //const oldEdit = this.DataGrid.LastClickedRow.IsEdited;\r\n\r\n this._dataGrid.focus();\r\n this._dataGrid.isSelectedAll = false;\r\n this._dataGrid.clearSelectedRows();\r\n this.isSelected = true;\r\n\r\n const lastClickedRow = this._dataGrid.lastClickedRow;\r\n if (lastClickedRow && !lastClickedRow.isChanged) {\r\n lastClickedRow.isInEdit = false;\r\n }\r\n this._dataGrid.lastClickedRow = this;\r\n //this.IsEdited = oldEdit;\r\n\r\n if (!oldSel) {\r\n this._dispatchSelectionChangeEvent(this.dataKey, { doubleClick: false, clickedRow: this, newRowFirstSelect: isFirstSelection });\r\n }\r\n }\r\n\r\n public override select(isFirstSelection: boolean = false): void {\r\n if (this.checkAndLogDisposedUsage(\"select\")) {\r\n return;\r\n }\r\n\r\n this._select(isFirstSelection);\r\n }\r\n\r\n //#endregion\r\n}\r\n\r\nregisterCustomElement(\"tsc-EditableDataRow\", EditableDataRow);\r\n","/**\r\n* Třída sloužící k porovnání datových interfaců\r\n*/\r\nexport class DataInterfaceComparer {\r\n /**\r\n * Vrací, zda se dva datové interfacy rovnají\r\n */\r\n public static equals<T>(itemA: T, itemB: T): boolean {\r\n if (itemA instanceof Object && itemB instanceof Object) {\r\n const entriesA = Object.entries(itemA).sort();\r\n const entriesB = Object.entries(itemB).sort();\r\n\r\n // Porovnáme, že se shodují názvy atributů i jejich hodnoty (i názvy, abychom se vyhnuli porovnání hodnot u špatných atributů - např. nepovinné atributy typu boolean)\r\n return (this.arraysEquals(entriesA.map(([key, _value]) => key), entriesB.map(([key, _value]) => key)) && this.arraysEquals(entriesA.map(([_key, value]) => value), entriesB.map(([_key, value]) => value)));\r\n }\r\n\r\n if (typeof itemA === \"string\" && typeof itemB === \"string\") {\r\n return (itemA.toLowerCase() === itemB.toLowerCase());\r\n }\r\n\r\n return (itemA === itemB);\r\n }\r\n\r\n /**\r\n * Vrací, zda se pole datových interfaců rovnají\r\n * @param arrayA - první pole k porovnání\r\n * @param arrayB - druhé pole k porovnání\r\n */\r\n public static arraysEquals<T>(arrayA: T[], arrayB: T[]): boolean {\r\n if (arrayA == null && arrayB == null) // Pokud jsou pole null nebo undefined, tak se rovnají\r\n return true;\r\n\r\n if (arrayA == null || arrayB == null) // Pokud je jen jedno (prošla předchozí kontrola) pole null nebo undefined, tak se nerovnají\r\n return false;\r\n\r\n if (arrayA.length === 0 && arrayB.length === 0) // Pokud jsou obě prázdná, rovnají se\r\n return true;\r\n\r\n if (arrayA.length !== arrayB.length) // Pokud mají různou délku, nerovnají se\r\n return false;\r\n\r\n return arrayA.every((itemA, i) => { // Pole obsahují shodný počet prvků, nyní je porovnáme\r\n return DataInterfaceComparer.equals(itemA, arrayB[i]);\r\n });\r\n }\r\n}\r\n","import { OrderType } from \"@multiweb/types/multiweb\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { IDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { Cell } from \"./Cell\";\r\nimport { IDataRowElement } from \"./IDataRow\";\r\n\r\nexport class HeaderCell extends Cell {\r\n //#region Fields\r\n public static currentResizeCell: HeaderCell = undefined; // staticka promenna obsahjici aktualne resizujici prvek (viz. popis funkce window.onmouseup)\r\n public element: HTMLElement;\r\n private _visibility: boolean = true;\r\n\r\n private _isResizing: boolean = false;\r\n\r\n public initialResizeWidth: number;\r\n public initialResizeXaxis: number;\r\n /**nazev atributu v DB*/\r\n public attribute: string;\r\n //#endregion Fields\r\n\r\n //#region Events\r\n public resizing: Event<HeaderCell, MouseEvent> = new Event<HeaderCell, MouseEvent>();\r\n public resizingStart: Event<HeaderCell, MouseEvent> = new Event<HeaderCell, MouseEvent>();\r\n public resizingEnd: Event<HeaderCell, MouseEvent> = new Event<HeaderCell, MouseEvent>();\r\n public sorting: Event<HeaderCell, MouseEvent> = new Event<HeaderCell, MouseEvent>();\r\n //#endregion Events\r\n\r\n //#region Properties\r\n public get isResizing(): boolean {\r\n return this._isResizing;\r\n }\r\n\r\n public set isResizing(value: boolean) {\r\n this._isResizing = value;\r\n }\r\n\r\n public get visibility(): boolean {\r\n return this._visibility;\r\n }\r\n\r\n public set visibility(value: boolean) {\r\n this._visibility = value;\r\n\r\n if (this.element) {\r\n this.element.classList.toggle(\"invisible\", !value);\r\n if (value) {\r\n this.element.style.display = \"\";\r\n this.element.classList.remove(\"no-sort-item\");\r\n } else {\r\n this.element.style.display = \"none\";\r\n this.element.classList.add(\"no-sort-item\");\r\n }\r\n }\r\n }\r\n\r\n public override set interactive(v: boolean) {\r\n super.interactive = v;\r\n\r\n if (this.element) {\r\n const list = this.element.getElementsByClassName(\"DropDownMenu_item\");\r\n if (list.length > 0) {\r\n v ? (list[0] as HTMLElement).style.display = \"\" : (list[0] as HTMLElement).style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n constructor(owner: IDataGrid<IDataRowElement>, index: number, column: Column) {\r\n super(owner, index, column);\r\n\r\n column.headerCell = this;\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n public override render(order?: OrderType): HTMLElement {\r\n this.element = this.column.headerTemplate.render(this.column, this._index);\r\n this.element.classList.add(\"HeaderCell\");\r\n\r\n this.updateOrderType(order);\r\n\r\n this.element.style.display = this.visibility ? \"\" : \"none\";\r\n if (this.visibility)\r\n this.element.classList.remove(\"no-sort-item\");\r\n else\r\n this.element.classList.add(\"no-sort-item\");\r\n\r\n return this.element;\r\n }\r\n\r\n /**\r\n * Nastaví typ třídění na hlavičce sloupce\r\n * @param order - Aktuální typ třídění (žádné když prázdný)\r\n */\r\n public updateOrderType(order?: OrderType): void {\r\n if (this.element == undefined) {\r\n this.element = this.column.headerTemplate.render(this.column, this._index);\r\n this.element.classList.add(\"HeaderCell\");\r\n }\r\n\r\n this.element.classList.remove(\"TableHeadOrdered\", \"TableHeadOrderedDESC\");\r\n\r\n if (order == null) {\r\n this.element.removeAttribute(\"order\");\r\n } else if (order === OrderType.ascending) {\r\n this.element.classList.add(\"TableHeadOrdered\");\r\n this.element.setAttribute(\"order\", \"1\");\r\n } else if (order === OrderType.descending) {\r\n this.element.classList.add(\"TableHeadOrderedDESC\");\r\n this.element.setAttribute(\"order\", \"2\");\r\n }\r\n }\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n /**\r\n * Destruktor\r\n */\r\n public override dispose(): void {\r\n this.resizing.removeAll();\r\n this.resizingStart.removeAll();\r\n this.resizingEnd.removeAll();\r\n this.sorting.removeAll();\r\n\r\n super.dispose();\r\n }\r\n\r\n //#endregion dispose\r\n}\r\n","import { IOrderBy } from \"../../../../Global/Base/DataSources/Interfaces\";\r\nimport { Control } from \"../../../UI.BaseControls/Control\";\r\nimport { createElement, getScrollBarWidth, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DataGrid } from \"../../DataGrid\";\r\nimport { DataGridSharedMethods } from \"../../DataGridSharedMethods\";\r\nimport { IDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { HeaderCell } from \"./HeaderCell\";\r\nimport { IDataRowElement } from \"./IDataRow\";\r\nimport { IHeaderRow } from \"./IHeaderRow\";\r\n\r\nexport class HeaderRow extends Control implements IHeaderRow<IDataRowElement> {\r\n //#region Events\r\n //#endregion Events\r\n\r\n //#region Listeners\r\n //#endregion Listeners\r\n\r\n //#region Fields\r\n protected _choiceElement: HTMLElement;\r\n protected _frozenPart: HTMLElement;\r\n\r\n public setChoiceElementWidth(value: number): void {\r\n if (this._choiceElement)\r\n this._choiceElement.style.width = value + \"px\";\r\n }\r\n\r\n public getChoiceElementWidth(): number {\r\n if (this._choiceElement) {\r\n const computedStyles = getComputedStyle(this._choiceElement);\r\n\r\n return this._choiceElement.offsetWidth + parseInt(computedStyles.marginLeft) + parseInt(computedStyles.marginRight);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * @returns Returns width of all column (with choice element and frozen part)\r\n */\r\n public getAllColumnsWidth(): number {\r\n const allColumnsArr = Array.from(this._frozenPart.children).concat(Array.from((this.children)));\r\n const widths = allColumnsArr.map((child: HTMLElement, index) => {\r\n if (index === 0) { // choice element is in the first position in both this.children and this._frozenPart.children, so it is ignored in the first position and counted only in this.children\r\n return 0;\r\n } else if (index === allColumnsArr.length - 1) { // In the last position is a substitute element for the scrollbar, which we don't want to count\r\n return 0;\r\n } else {\r\n return child.offsetWidth;\r\n }\r\n });\r\n\r\n return widths.reduce(function(accumulator, currentValue) {\r\n return accumulator + currentValue;\r\n }, 0);\r\n }\r\n\r\n protected _headerCells: HeaderCell[];\r\n\r\n /**\r\n * Uchovává reference na vytvořené buňky hlavičky pro účely dispose.\r\n * @private\r\n */\r\n private _headerCellsForDispose: HeaderCell[] = [];\r\n\r\n public width: number;\r\n\r\n protected _owner: IDataGrid<IDataRowElement>;\r\n\r\n private _disableSort: boolean = false;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get extraClasses(): string[] {\r\n return [\"with-control-cell\"];\r\n }\r\n\r\n private _color: string = \"\";\r\n private _scrollBarBuffer: HTMLElement;\r\n\r\n public set color(value: string) {\r\n if (this._color && this._color.length > 0)\r\n this.classList.remove(this._color);\r\n\r\n this._color = value;\r\n\r\n //this.headerRow.element.style.backgroundColor = value;\r\n this.classList.add(value);\r\n }\r\n\r\n public get color(): string {\r\n return this._color;\r\n }\r\n\r\n public set frameMenuVisibility(v: boolean) {\r\n this._choiceElement.style.visibility = v ? \"\" : \"hidden\";\r\n }\r\n\r\n public get disableSort(): boolean {\r\n return this._disableSort;\r\n }\r\n public set disableSort(v: boolean) {\r\n this._disableSort = v;\r\n }\r\n\r\n public set scrollBarBufferVisible(v: boolean) {\r\n if (!this._scrollBarBuffer) {\r\n return;\r\n }\r\n\r\n if (v) {\r\n this._scrollBarBuffer.style.display = \"block\";\r\n } else {\r\n this._scrollBarBuffer.style.display = \"none\";\r\n }\r\n }\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n /**\r\n * Vytvoří hlavičky sloupců\r\n * @param owner - datagrid, kterému tyto sloupce patří\r\n * @param columns - seznam sloupců\r\n * @param orderBy\r\n * @param startIndex - index, od kterého jsou číslovány sloupce\r\n * @param addNoSortItem - příznak určující, zda se má dorovnávat šířka scrollbaru\r\n */\r\n public render(owner: IDataGrid<IDataRowElement>, columns: Array<Column>, orderBy: IOrderBy[], startIndex: number = 0, addNoSortItem: boolean = true): void {\r\n const isDynamic = (startIndex > 0);\r\n\r\n if (!isDynamic) {\r\n this._owner = owner;\r\n this.width = this._choiceElement.clientWidth; // kvuli prvni bunce (fitrovani - neni mezi sloupci)\r\n this._clearHeader();\r\n }\r\n\r\n for (const column of columns) {\r\n const headerCell = new HeaderCell(this._owner, startIndex, column);\r\n\r\n headerCell.visibility = column.visible;\r\n this.width += headerCell.column.width;\r\n\r\n const indexOf = DataGridSharedMethods.orderByIndexOf(orderBy, column.orderAttrName);\r\n const root = column.isFrozen ? this._frozenPart : this;\r\n\r\n if (indexOf > -1) {\r\n root.appendChild(headerCell.render(orderBy[indexOf].order));\r\n } else {\r\n root.appendChild(headerCell.render(null));\r\n }\r\n\r\n startIndex++;\r\n this._headerCellsForDispose.push(headerCell);\r\n }\r\n\r\n // dorovnava sirku scrollbaru, aby neodjizdela hlavicka pokud doscroluju horizontalnim scrollbarem nakoneca je zobrazen verticalni scrollbar\r\n if (isDynamic) {\r\n this.removeChild(this._scrollBarBuffer);\r\n } else {\r\n if (addNoSortItem) {\r\n this._scrollBarBuffer = createElement({ css: { width: getScrollBarWidth() + \"px\", height: \"100%\" }, classes: \"no-sort-item\" });\r\n }\r\n }\r\n\r\n this.appendChild(this._scrollBarBuffer);\r\n\r\n this.widgetSortable(true, { axis: \"x\", handle: \".sort-drag-handle\", items: \"> *:not(.no-sort-item)\" });\r\n }\r\n\r\n /**\r\n * Přerenderování kvůli změně orderby.\r\n * @param owner Seznam, který se změnil\r\n */\r\n public renderOrderBy(owner: DataGrid<IDataRowElement>): void {\r\n this._owner = owner;\r\n if (!this._headerCells)\r\n this._headerCells = [];\r\n\r\n for (let i = 0; i < owner.columns.length; i++) {\r\n const column: Column = owner.columns[i];\r\n\r\n if (column.visible) {\r\n const headerCell = new HeaderCell(owner, i, column);\r\n const indexOf = DataGridSharedMethods.orderByIndexOf(owner.orderBy, column.orderAttrName);\r\n\r\n if (indexOf > -1) {\r\n headerCell.render(owner.orderBy[indexOf].order);\r\n } else {\r\n headerCell.render(null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Vloží falešné sloupce, které doplní délku po chybejicích normálních, ktere jsou ve frozenColumn\r\n * @param values\r\n */\r\n public addFakeCell(values: Iterable<HTMLElement>): void {\r\n for (const val of values) {\r\n if (this._choiceElement.nextElementSibling == null)\r\n this._choiceElement.appendChild(val);\r\n else\r\n this.insertBefore(val, this._choiceElement.nextElementSibling);\r\n }\r\n }\r\n\r\n public removeFakeCells(): void {\r\n this.querySelectorAll(\".fake-header-cell\").forEach((el) => {\r\n el.remove();\r\n });\r\n }\r\n\r\n public recountWidth(columns: Array<Column>): void {\r\n this.width = this._choiceElement.clientWidth;\r\n for (let i = 0; i < columns.length; i++) {\r\n this.width += columns[i].width;\r\n }\r\n }\r\n\r\n /** Odstraní všechna pole hlavičky kromě nastavení */\r\n protected _clearHeader(): void {\r\n const childrenToDelete = this.querySelectorAll(\".HeaderCell:not(.header-framemenu-button)\");\r\n for (const child of childrenToDelete) {\r\n child.remove();\r\n }\r\n }\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"headerRow\");\r\n\r\n this._frozenPart = createElement({ classes: \"frozen-part no-sort-item\" });\r\n this.insertAdjacentElement(\"afterbegin\", this._frozenPart);\r\n\r\n //prvni bunka v radku - start\r\n this._choiceElement = document.createElement(\"th\");\r\n this._frozenPart.appendChild(this._choiceElement);\r\n this._choiceElement.style.visibility = \"hidden\";\r\n this._choiceElement.classList.add(\"HeaderCell\", \"header-framemenu-button\", \"icon\", \"settings-equalizer\");\r\n this._choiceElement.setAttribute(\"data-id\", \"sl0\");\r\n\r\n this._choiceElement.addEventListener(\"click\", (e) => {\r\n if (!this._owner.interactive) {\r\n return;\r\n }\r\n\r\n this._choiceElement.dispatchEvent(new CustomEvent(\"openFrameMenuClicked\", { detail: e }));\r\n });\r\n //prvni bunka v radku - end\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n }\r\n\r\n public override dispose(): void {\r\n this._headerCellsForDispose?.forEach((headerCell) => headerCell.dispose());\r\n this._headerCellsForDispose = [];\r\n\r\n super.dispose();\r\n }\r\n\r\n//#endregion HTMLElement\r\n}\r\n\r\nregisterCustomElement(\"tsc-headerrow\", HeaderRow);\r\n","import { IInfoProvidingControl } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { IControlInfoObject } from \"UI/UI/UI/XGControls/ControlInfo\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../UI.BaseControls/Control\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { IWidgetResizeEvent } from \"../../../UI.BaseControls/IEvent\";\r\nimport { ElementUtils } from \"../../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { createElement, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { IHeaderTemplate } from \"./ITemplate\";\r\n\r\nexport class HeaderTemplate extends Control implements IHeaderTemplate, IInfoProvidingControl {\r\n //#region Events\r\n public headerClickEvent: CustomEvent;\r\n //#endregion Events\r\n\r\n //#region Listeners\r\n //#endregion Listeners\r\n\r\n //#region Fields\r\n //public Element: HTMLTableHeaderCellElement;\r\n private _spanTextElement: HTMLSpanElement;\r\n private _spanOrderElement: HTMLSpanElement; // element pro zobrazeni ikonky sipky, pro smer trideni sloupce\r\n private _spanFilterElement: HTMLSpanElement; // element pro zobrazeni ikonky pro filtraci\r\n public dropDownButtonElement: HTMLButtonElement; // element pro zorbazeni tlacitka na dropdownmenu\r\n private _divFilterRow: HTMLElement; // element pro zobrazeni aplikovanych filtru na sloupec\r\n private _sortableDraggableElement: HTMLElement; // element, pomocí kterého se řeší řazení sloupečku\r\n public index: number;\r\n private _column: Column;\r\n private _isResizing: boolean = false;\r\n public isCompact: boolean = false;\r\n\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get parentColumn(): Column {\r\n return this._column;\r\n }\r\n\r\n public set parentColumn(value: Column) {\r\n this._column = value;\r\n\r\n if (this._column) {\r\n this.setAttribute(\"data-attrname\", this._column.attrName);\r\n\r\n // je to zde z duvodu toho, ze ve Firefoxu jsou CustomElementy reseny polyfillem a ne nativne\r\n // a tedy dochazelo k pozdejsimu nacteni lokalizaci z atriburu nez vyovlani teto metody\r\n this._column.registerEventListener(\"attributechange\", (e: CustomEvent) => {\r\n const { attrName, newVal } = e.detail;\r\n if (attrName === \"data-lockey\" || attrName === \"data-locparams\") {\r\n const locKey = attrName === \"data-lockey\" ? newVal : this._column.locKey;\r\n const locParams = attrName === \"data-locparams\" ? newVal : this._column.locParams;\r\n this._updateLocKey(locKey, locParams);\r\n }\r\n });\r\n this._updateLocKey(this._column.locKey, this._column.locParams);\r\n\r\n if (this._column.withoutAttribute || this._column.hideColumnMenu) { // U tohoto typu sloupce menu neobsahuje nic užitečného, proto ho odstraníme\r\n this.dropDownButtonElement.remove();\r\n }\r\n }\r\n }\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n public init(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n public render(column: Column, index: number): HTMLElement {\r\n this.index = index;\r\n this.parentColumn = column;\r\n\r\n const id: string = \"sl\" + this.index;\r\n\r\n this.setAttribute(\"data-id\", id);\r\n this.setAttribute(\"data-index\", id);\r\n\r\n this.style.minWidth = \"20px\";\r\n this.style.width = `${column.width}px`;\r\n\r\n if (this.isCompact) { // u kompaktního seznamu nechceme nabídku pro filtrování\r\n const els = this.querySelectorAll(\".DropDownMenu_item.icon.ui-more-vertical.btn.flat, span.FilterElement\");\r\n for (const el of els) {\r\n el.remove();\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /** Vrací objekt, který obsahuje informace o prvku */\r\n public async getControlInfo(childInfo: Partial<IControlInfoObject>): Promise<Partial<IControlInfoObject>> {\r\n const dataAttributes: any = {};\r\n Object.assign(dataAttributes, this.dataset);\r\n return {\r\n ...childInfo,\r\n attributeName: this.dataset.attrname,\r\n locKey: this._column.locKey,\r\n additionalInfo: {\r\n dataAttributes: { ...dataAttributes },\r\n implementationClass: this.constructor.name,\r\n },\r\n };\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n const divTitleRow = document.createElement(\"div\");\r\n divTitleRow.classList.add(\"header-title\");\r\n\r\n this._spanOrderElement = document.createElement(\"span\");\r\n this._spanTextElement = document.createElement(\"span\");\r\n this.dropDownButtonElement = document.createElement(\"button\");\r\n this._spanOrderElement.classList.add(\"OrderElement\");\r\n this.dropDownButtonElement.classList.add(\"DropDownMenu_item\", \"icon\", \"ui-more-vertical\", \"btn\", \"flat\");\r\n Localization.addLocDescData(this.dropDownButtonElement, \"GUI-668905\", \"title\");\r\n this._sortableDraggableElement = createElement({ classes: [\"sort-drag-handle\", \"column-sortable\"] });\r\n\r\n this._spanFilterElement = createElement({ type: \"span\", classes: \"FilterElement\" });\r\n\r\n this.widgetResizable(true);\r\n\r\n divTitleRow.appendChild(this._sortableDraggableElement);\r\n divTitleRow.appendChild(this._spanTextElement);\r\n divTitleRow.appendChild(this._spanOrderElement);\r\n divTitleRow.appendChild(this._spanFilterElement);\r\n divTitleRow.appendChild(this.dropDownButtonElement);\r\n\r\n this._divFilterRow = document.createElement(\"div\");\r\n this._divFilterRow.classList.add(\"header-filter\");\r\n\r\n this.appendChild(divTitleRow);\r\n this.appendChild(this._divFilterRow);\r\n\r\n //// Presunuto ze sloupcu sem, protoze pri sortable doslo k odpojeni vsech udalosti, je treba je znova zaregistrovat pri kazdem attach\r\n this.registerEventListener(\"HeaderClickEvent\", (evt: CustomEvent) => {\r\n ElementUtils.callEvent(this.parentColumn, \"HeaderClickEvent\", { \"state\": evt.detail.state, \"shiftKey\": evt.detail.shiftKey });\r\n });\r\n this.registerEventListener(\"dropdownmenushow\", (e: CustomEvent) => {\r\n this._callDropdownMenuShow(this.parentColumn, { column: this, dropdownelemnt: e.detail.element, originalEvent: e.detail.originalEvent });\r\n });\r\n\r\n //this.registerEventListener(\"mousemove\", (e: MouseEvent) => this.mouseMove(e));\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n this._mouseClick(e);\r\n });\r\n\r\n this._eventsController.addListener(this.dropDownButtonElement, \"click\", (e: PointerEvent) => {\r\n EventHelper.stopPropagation(e);\r\n this._callDropdownMenuShow(this, { element: this.dropDownButtonElement, template: this, originalEvent: e });\r\n });\r\n\r\n this._eventsController.addListener(this.dropDownButtonElement, \"focus\", (_e: MouseEvent) => {\r\n this.callEvent(\"focus\");\r\n });\r\n\r\n this.registerEventListener(\"resizabledrag\", (e: IWidgetResizeEvent) => {\r\n this._isResizing = true;\r\n this.parentColumn.width = e.detail.width;\r\n ElementUtils.callEvent(this.parentColumn, \"resizabledrag\", e.detail);\r\n });\r\n this.addEventListener(\"mousedown\", (_e: MouseEvent) => {\r\n if (this._isResizing) {\r\n this._isResizing = false;\r\n }\r\n // JQuery UI widget sortable žere event mousedown, takže focusnutý element focus neztratí\r\n // a tím se nemusí proběhnout navázané události (např. ValueChanged).\r\n // Toto se tedy stará o ztrátu focusu\r\n const activeElement = document.activeElement;\r\n if (activeElement && activeElement instanceof HTMLElement)\r\n activeElement.blur();\r\n });\r\n\r\n this._divFilterRow.addEventListener(\"click\", (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n this._callDropdownMenuShow(this, { element: this.dropDownButtonElement, template: this });\r\n });\r\n\r\n this.disposeOnDetach = false;\r\n }\r\n\r\n private _callDropdownMenuShow(element: HTMLElement, detail: any): void {\r\n ElementUtils.callEvent(element, \"dropdownmenushow\", detail);\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this.parentColumn)\r\n this.style.width = `${this.parentColumn.width}px`;\r\n }\r\n\r\n /**\r\n * Zakáže možnost řazení kliknutím na hlavičku sloupce\r\n */\r\n public disableSort(): void {\r\n if (this._sortableDraggableElement)\r\n this._sortableDraggableElement.classList.remove(\"column-sortable\");\r\n }\r\n\r\n public setFilter(filter: HTMLElement = null): void {\r\n this._divFilterRow.innerHTML = \"\";\r\n\r\n if (filter) {\r\n this._divFilterRow.appendChild(filter);\r\n }\r\n }\r\n\r\n private _updateLocKey(locKey: string, locParams?: string[]): void {\r\n if (locKey) {\r\n Localization.addLocTxtData(this._spanTextElement, locKey, undefined, locParams);\r\n Localization.addLocDescData(this, locKey, \"title\", locParams);\r\n } else {\r\n this._spanTextElement.innerHTML = \" \";\r\n }\r\n }\r\n\r\n private _mouseClick(e: MouseEvent): void {\r\n if (this._isResizing) {\r\n this._isResizing = false;\r\n return;\r\n }\r\n if (e.ctrlKey || e.metaKey) // Zobrazení informací o komponentě\r\n return;\r\n\r\n const order_value = parseInt(this.getAttribute(\"order\")) || 3;\r\n\r\n if (order_value == 3) { // je nesetrideny, tak se setridi vzestupne\r\n this._dispatchHeaderClickEvent(1, e.shiftKey);\r\n } else if (order_value == 1) { // je setrideny vzestupne, tak se setridi sestupne\r\n this._dispatchHeaderClickEvent(2, e.shiftKey);\r\n } else if (order_value == 2) { // je setrideny sestupne, tak se trideni odebere\r\n this._dispatchHeaderClickEvent(3, e.shiftKey);\r\n }\r\n }\r\n\r\n /**\r\n * Vyvola novou udalost, ktera se pouziva pri trideni\r\n * @param state - je nesetrideny, tak se setridi vzestupne(1), je setrideny vzestupne, tak se setridi sestupne (2), je setrideny sestupne, tak se trideni odebere (3)\r\n * @param shiftKey - true pokud uzivatel drzi shift\r\n */\r\n private _dispatchHeaderClickEvent(state: number, shiftKey: boolean): void {\r\n this.callEvent(\"HeaderClickEvent\", { \"state\": state, \"shiftKey\": shiftKey });\r\n }\r\n\r\n // TODO: DT 23.4.2018 - metoda nevyužita ale prozatím ponechána - proto flag \"ts-ignore\" níže\r\n // @ts-ignore\r\n private _mouseMove(e: MouseEvent): void {\r\n //var hoveredTh = e.target;\r\n //logger.log(\"mouse move\");\r\n const pWidth = this.clientWidth;\r\n //var pOffset = this.offsetWidth;\r\n\r\n const rect = this.getBoundingClientRect();\r\n\r\n const x = e.pageX - rect.left;\r\n\r\n if (pWidth - 5 > x) //klik na klasickou hlavicku => trideni\r\n this.style.cursor = \"pointer\";\r\n else //klik na pravych 5px => resizovani hlavicky\r\n this.style.cursor = \"col-resize\";\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n\r\n //#endregion HTMLElement\r\n}\r\n\r\nregisterCustomElement(\"tsc-headertemplate\", HeaderTemplate);\r\n","import { IRowData } from \"@multiweb/types/contracts\";\r\nimport { DataInterfaceComparer } from \"../../Global/Base/DataSources/DataInterfaceComparer\";\r\nimport { IDataSource, IDataSourceLoadInfo, IOrderBy, OrderType } from \"../../Global/Base/DataSources/Interfaces\";\r\nimport { Event as GlobalEvent } from \"../../Global/Base/Events\";\r\nimport { IWidgetResizeEvent, IWidgetSortableStartEvent, IWidgetSortableStopEvent } from \"../UI.BaseControls/IEvent\";\r\nimport { ElementUtils } from \"../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { observeScroll } from \"../utils\";\r\nimport { DataGrid } from \"./DataGrid\";\r\nimport { Column } from \"./DataGridSubcontrols/Columns/Column\";\r\nimport { HeaderRow } from \"./DataGridSubcontrols/Components/HeaderRow\";\r\nimport { IListDataRowElement } from \"./DataGridSubcontrols/Components/IDataRow\";\r\nimport { ListDataRow } from \"./DataGridSubcontrols/Components/ListDataRow\";\r\nimport { HeaderTemplate } from \"./DataGridSubcontrols/Templates/HeaderTemplate\";\r\nimport { IListDataGrid } from \"./IDataGrid\";\r\nimport { IColumnOrderingChangedEventData, IColumnPositionChangedEventData } from \"./IEvent\";\r\n\r\nexport class ListDataGrid<R extends IListDataRowElement> extends DataGrid<R> implements IListDataGrid<R> {\r\n public readonly columnPositionChanged: GlobalEvent<IListDataGrid<R>, IColumnPositionChangedEventData> = new GlobalEvent<IListDataGrid<R>, IColumnPositionChangedEventData>();\r\n\r\n protected _headerDiv: HTMLElement;\r\n private _boundingRectChangeObserver: () => void;\r\n private _isScrolling: boolean = false;\r\n private _scrollingTimer: number | undefined = undefined;\r\n\r\n protected _showFrozen: boolean = true;\r\n\r\n private _frozenColumnCount: number = 0;\r\n\r\n public get frozenColumnCount(): number {\r\n return this._frozenColumnCount;\r\n }\r\n\r\n public set frozenColumnCount(v: number) {\r\n this._frozenColumnCount = v;\r\n }\r\n\r\n public override get dataSource(): IDataSource {\r\n return super.dataSource;\r\n }\r\n public override set dataSource(dataSource: IDataSource) {\r\n super.dataSource = dataSource;\r\n this.orderBy = ListDataGrid.getDefaultOrderByDefinition(this.dataSource);\r\n }\r\n\r\n public get showFrameMenu(): boolean {\r\n return this.headerRow.frameMenuVisibility;\r\n }\r\n\r\n public set showFrameMenu(v: boolean) {\r\n this.headerRow.frameMenuVisibility = v;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.orderBy = [];\r\n this.headerRow = new HeaderRow();\r\n\r\n this._dataRowFactory = () => new ListDataRow() as any as R;\r\n }\r\n\r\n protected override _attachDataGrid(): void {\r\n this._initColumnListeners();\r\n\r\n this.generateColumnsOrder();\r\n\r\n super._attachDataGrid();\r\n }\r\n\r\n /**\r\n * Inicializuje listenery pro sloupce\r\n * @param columns Přidávané sloupce (default = všechny)\r\n */\r\n private _initColumnListeners(columns: Column[] = this.columns): void {\r\n columns.forEach((column) => {\r\n column.registerEventListener(\"resizabledrag\", (e: IWidgetResizeEvent) => {\r\n const targetColumn = (e.target as Column);\r\n targetColumn.width = e.detail.width;\r\n\r\n this.dataRows.forEach((row) => ListDataGrid._resizeCell(row, targetColumn, e.detail.width));\r\n\r\n this.headerRow.recountWidth(this.columns);\r\n\r\n this._updateResizeDivSize();\r\n\r\n this.resizeGrid();\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Spustí odpovídající resize metodu podle typu sloupce\r\n * @param row Řádek\r\n * @param column Sloupec\r\n * @param width Nová šířka\r\n */\r\n private static _resizeCell(row: IListDataRowElement, column: Column, width: number): void {\r\n if (column.withoutAttribute) {\r\n row.resizeCellByIndex(column.order, width);\r\n } else {\r\n row.resizeCellByFullAttrName(column.fullAttrName, width);\r\n }\r\n }\r\n\r\n /**\r\n * Je zavoláno vždy po zobrazení DG pokud byl skrytý ať už styly nebo právama\r\n * @protected\r\n */\r\n protected override _recalculateAfterVisible(): void {\r\n this.resizeHeaderFirstColumn();\r\n if (this._headerDiv && this._listDiv) {\r\n if (this._listDiv.scrollLeft != this._headerDiv.scrollLeft) {\r\n this._headerDiv.scrollLeft = this._listDiv.scrollLeft;\r\n let i = 1;\r\n /*\r\n * Je to workaround chování prohližečů. Protože _listDiv, obsahuje svuj vnitrni scrollbar a hlavička ne, tak pokud\r\n * dojde k tomu, že jse doscrolovano na konec a přepne se na jiný frame, dojde k překresleni a při návratu\r\n * kdy se prohlížeč pokouší zobrazit data a scroll na původním místě dojde k desynchronizaci, ktera by se\r\n * sice spravila zascrollovanim, ale pokud zustaneme jen u zobrazeni byly by sloupce data a sloupce hlavicky\r\n * desynchronizovany. A jelikoz prohlizec neposila o tomto zadnou udalost musi se to resit takto.\r\n */\r\n const int = setInterval(() => {\r\n if (this._listDiv.scrollLeft != this._headerDiv.scrollLeft) {\r\n this._headerDiv.scrollLeft = this._listDiv.scrollLeft;\r\n if (i++ == 30) {\r\n clearInterval(int);\r\n }\r\n } else {\r\n clearInterval(int);\r\n }\r\n }, 30);\r\n }\r\n }\r\n }\r\n\r\n protected override _renderHeader(): void {\r\n this.classList.add(...this.headerRow.extraClasses);\r\n\r\n const pomDiv: HTMLDivElement = createElement({ css: { width: \"100%\" } }) as HTMLDivElement;\r\n\r\n this._headerDiv = createElement({ classes: \"header-div\" });\r\n\r\n const headerTable = createElement({ type: \"table\" }) as HTMLTableElement;\r\n const thead = createElement({ type: \"thead\", classes: \"table-head\" });\r\n headerTable.appendChild(thead);\r\n\r\n this._headerDiv.appendChild(pomDiv);\r\n\r\n pomDiv.appendChild(headerTable);\r\n this._mainListDiv.appendChild(this._headerDiv);\r\n\r\n /**\r\n * Někdy dochází k rozhození hlavičky a posunu sloupcu aniž by to bylo chtěné.\r\n * Tento observer hlídá změny posunu hlavičky a při změně posune i sloupce.\r\n */\r\n this._boundingRectChangeObserver = observeScroll(pomDiv, () => {\r\n if (!this._isScrolling) {\r\n this._repositionHeader();\r\n }\r\n });\r\n\r\n thead.appendChild(this.headerRow);\r\n\r\n this.headerRow.render(this, this.columns, this.orderBy);\r\n\r\n // Vrací pozici hlavičky sloupce, bere v úvahu i neviditelné a počítá se od 1, aby odpovídala orderu v profilech\r\n function getElementPosition(element: Element) {\r\n let i = 1;\r\n while ((element = (element.previousSibling as Element))) {\r\n if ((element.classList.contains(\"HeaderCell\") || element.classList.contains(\"fake-header-cell\")) && !element.classList.contains(\"header-framemenu-button\"))\r\n i++;\r\n }\r\n return i;\r\n }\r\n\r\n // zpracování třídící události\r\n this.headerRow.registerEventListener(\"sortablestart\", (e: IWidgetSortableStartEvent) => {\r\n (e.detail.placeholder as HTMLElement).style.width = (e.detail.element as HTMLElement).style.width;\r\n e.detail.element.setAttribute(\"data-oldposition\", getElementPosition(e.detail.element).toString()); // uložíme si do elementu původní pozici\r\n this._headerDiv.scrollLeft = this._listDiv.scrollLeft;\r\n });\r\n\r\n this.headerRow.registerEventListener(\"sortablestop\", (e: IWidgetSortableStopEvent) => {\r\n const element = e.detail.element as HeaderTemplate;\r\n const oldPosition = Number(e.detail.element.getAttribute(\"data-oldposition\"));\r\n const newPosition = getElementPosition(e.detail.element);\r\n\r\n if (oldPosition === newPosition) {\r\n return;\r\n }\r\n const eventData: IColumnPositionChangedEventData = {\r\n oldColumnsVisibility: this.columns.map(column => column.visible),\r\n column: element.parentColumn,\r\n newPosition,\r\n oldPosition,\r\n };\r\n\r\n this.setColumnOrder(element.parentColumn, newPosition);\r\n this.columnPositionChanged.trigger(this, eventData);\r\n this.callEvent(\"ColumnPositionChanged\", eventData);\r\n });\r\n }\r\n\r\n public setColumnsOrder(orderList: Array<{ column: Column; profile: { fullAttrName: string; order?: number; visible?: boolean; frozen?: boolean } }>): void {\r\n const clm: Array<Column> = [];\r\n\r\n //const htemplates = Array.from(this.querySelectorAll(\"tsc-headerrow > .HeaderCell\")) as HeaderTemplate[];\r\n const htemplates = Array.from(this.querySelectorAll(\"tsc-headerrow > .HeaderCell\")) as HeaderTemplate[];\r\n if (htemplates.length === 0)\r\n return;\r\n\r\n const parentElement = htemplates[0].parentElement;\r\n\r\n const orderedHtemps: { [attrName: string]: HeaderTemplate } = {};\r\n const lastItem = this.querySelector(\"tsc-headerrow > .no-sort-item:last-child\");\r\n\r\n for (const item of orderList) {\r\n if (item.profile.order == undefined || item.profile.visible != undefined && item.profile.visible === false || item.profile.frozen) {\r\n continue;\r\n }\r\n\r\n const htemp = htemplates.find((element) => element.parentColumn === item.column);\r\n\r\n orderedHtemps[item.profile.fullAttrName] = htemp;\r\n const oldIndex = htemplates.filter((item) => !item.classList.contains(\"no-sort-item\")).indexOf(htemp) + 1;\r\n const index = htemplates.indexOf(htemp);\r\n htemplates.splice(index, 1);\r\n\r\n for (const row of this.dataRows) {\r\n row.changeCellPositionByFullAttrName(item.profile.fullAttrName, (oldIndex < item.profile.order) ? item.profile.order : item.profile.order - 1);\r\n }\r\n }\r\n\r\n let position = 1;\r\n let visiblePosition = 0;\r\n let item: { column: Column; profile: { fullAttrName: string; order?: number; visible?: boolean; frozen?: boolean } } = undefined;\r\n while (orderList.length > 0 || htemplates.length > 0 || item != undefined) {\r\n if (htemplates.length > 0 && !htemplates[0].classList.contains(\"no-sort-item\"))\r\n visiblePosition++;\r\n if (item == undefined && orderList.length > 0)\r\n item = orderList.shift();\r\n\r\n if (htemplates.length > 0 && htemplates[0].classList.contains(\"invisible\")) {\r\n const htemp = htemplates[0];\r\n clm.push(htemp.parentColumn);\r\n htemplates.splice(0, 1);\r\n parentElement.appendChild(htemp);\r\n continue;\r\n }\r\n\r\n if (item != undefined && (item.profile.order == undefined || item.profile.visible != undefined && item.profile.visible === false || item.profile.frozen)) {\r\n item = undefined;\r\n continue;\r\n }\r\n\r\n if (item != undefined && visiblePosition === item.profile.order || htemplates.length === 0) {\r\n const htemp = orderedHtemps[item.profile.fullAttrName];\r\n clm.push(htemp.parentColumn);\r\n item = undefined;\r\n htemp.parentColumn.order = position;\r\n parentElement.appendChild(htemp);\r\n } else {\r\n const htemp = htemplates[0];\r\n clm.push(htemp.parentColumn);\r\n htemplates.splice(0, 1);\r\n htemp.parentColumn.order = position;\r\n parentElement.appendChild(htemp);\r\n }\r\n\r\n position++;\r\n }\r\n parentElement.appendChild(lastItem);\r\n\r\n this.columns = clm;\r\n }\r\n\r\n /**\r\n * Vykresli pozadovanou \"stranku\" zaznamu\r\n */\r\n protected override _renderData(eventData?: IDataSourceLoadInfo): void {\r\n this.headerRow.scrollBarBufferVisible = eventData !== undefined;\r\n if (!this._dataTable)\r\n return;\r\n\r\n super._renderData(eventData);\r\n\r\n this.resizeHeaderFirstColumn();\r\n }\r\n\r\n protected override _createRows(data: Iterable<IRowData>): void {\r\n if (this.frozenColumnCount > 0) {\r\n this.headerRow.render(this, this.columns, this.orderBy, null, false);\r\n }\r\n super._createRows(data);\r\n }\r\n\r\n protected override _renderRows(fromRowIndex: number, toRowIndex: number): void {\r\n for (let i = fromRowIndex; i < toRowIndex; i++) {\r\n const dataRow = this.dataRows[i];\r\n this._dataTable.appendChild(dataRow.render());\r\n\r\n if (i === 0) { // prvni vlozeny radek\r\n dataRow.addEventListener(\"controlElementWidthChanged\", () => {\r\n this.resizeHeaderFirstColumn();\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Zakáže možnost řazení kliknutím na hlavičku sloupce\r\n */\r\n public disableSort(): void {\r\n this.headerRow.disableSort = true;\r\n }\r\n\r\n public override scrollGrid(ev: UIEvent): void {\r\n this._repositionHeader();\r\n\r\n if (this._scrollingTimer) {\r\n clearTimeout(this._scrollingTimer);\r\n }\r\n this._scrollingTimer = window.setTimeout(() => {\r\n this._isScrolling = false;\r\n this._scrollingTimer = undefined;\r\n }, 200);\r\n this._isScrolling = true;\r\n\r\n super.scrollGrid(ev);\r\n }\r\n\r\n protected _repositionHeader(): void {\r\n if (this.renderHeader && this._renderHeader && this._headerDiv) {\r\n const scrollN = this._listDiv ? this._listDiv.scrollLeft : 0;\r\n this._headerDiv.scrollLeft = scrollN;\r\n this.classList.toggle(\"shadow\", scrollN > 0);\r\n }\r\n }\r\n\r\n public computeChoiceCellWidth(includeMargin: boolean = true): number {\r\n let dataRow: R;\r\n let computedFromDeleted = false;\r\n\r\n const getRowFromCollection = (collection: R[]) => {\r\n return (collection && collection.length > 0) ? collection[0] : null;\r\n };\r\n\r\n dataRow = getRowFromCollection(this.dataRows.filter(row => !row.isDeleted));\r\n\r\n if (!dataRow) {\r\n dataRow = getRowFromCollection(this.dataRows);\r\n computedFromDeleted = true;\r\n }\r\n\r\n const cellElement = dataRow?.controlsCellElement;\r\n if (!cellElement) {\r\n return 0;\r\n }\r\n if (dataRow && computedFromDeleted) {\r\n dataRow.isDeleted = false;\r\n }\r\n const computedStyle = window.getComputedStyle(cellElement);\r\n\r\n const marginWidth = (+computedStyle.marginLeft.replace(\"px\", \"\")) + (+computedStyle.marginRight.replace(\"px\", \"\"));\r\n const choiceCellWidth = cellElement.offsetWidth + (includeMargin ? marginWidth : 0);\r\n\r\n if (dataRow && computedFromDeleted) {\r\n dataRow.isDeleted = true;\r\n }\r\n return choiceCellWidth;\r\n }\r\n\r\n public resizeHeaderFirstColumn(): void {\r\n if (this.dataRows.length > 0) {\r\n const width = this.computeChoiceCellWidth(false);\r\n this.headerRow.setChoiceElementWidth(width);\r\n }\r\n }\r\n\r\n public setOrderBy(ordering: IOrderBy[], callEvent: boolean = true): boolean {\r\n if (DataInterfaceComparer.arraysEquals(ordering, this.orderBy)) // netřídit, pokud je nové třídění stejné jako předchozí\r\n return false;\r\n\r\n for (const column of this.columns) { // prochází všechny sloupce\r\n let orderType: OrderType = null;\r\n\r\n for (const ord of ordering) {\r\n if (ord.attributeName === column.orderAttrName) { // pokud se sloupec vyskytuje v poli atributů k setřízení\r\n orderType = ord.order;\r\n\r\n break;\r\n }\r\n }\r\n\r\n column.headerCell.updateOrderType(orderType);\r\n }\r\n\r\n this.orderBy = ordering;\r\n this._bindingData = true;\r\n this.dataSource.orderBy = this.orderBy;\r\n this._refreshSelection = false;\r\n if (callEvent) {\r\n this.callEvent(\"OrderingChanged\", { order: this.orderBy } as IColumnOrderingChangedEventData);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Vrací defaultní definici OrderBy.\r\n * Pokud je k dispozici dataSource, bere se jako atribut jeho dataKey, jinak \"ID\".\r\n */\r\n public static getDefaultOrderByDefinition(dataSource?: IDataSource): IOrderBy[] {\r\n return [\r\n {\r\n attributeName: (dataSource && dataSource.dataKey) || \"ID\",\r\n order: OrderType.ascending,\r\n },\r\n ];\r\n }\r\n\r\n /**\r\n * Nastaví defaultní třídění\r\n * Pokud je nastaveno, tak podle definice formuláře, jinak podle dataKey (nebo ID)\r\n * @param formDefinitionOrderBy Třídění podle definice formuláře\r\n * @returns Vrací true, pokud bylo třídění změněno. Pokud bylo nastavované stejné jako předchozí, vrací false.\r\n */\r\n public setDefaultOrderBy(formDefinitionOrderBy: IOrderBy[]): boolean {\r\n let ob: IOrderBy[];\r\n if (formDefinitionOrderBy && formDefinitionOrderBy.length > 0)\r\n ob = [...formDefinitionOrderBy];\r\n else\r\n ob = ListDataGrid.getDefaultOrderByDefinition(this.dataSource);\r\n\r\n return this.setOrderBy(ob, false);\r\n }\r\n\r\n /**\r\n * Přesune sloupec na novou pozici\r\n * @param column přesouvaný sloupec\r\n * @param newPosition nová pozice přesouvaného sloupce (počítá se vždy od 1)\r\n * @param forced příznak, že přesunutí sloupců gridu je vynuceno přesunutím položek na panelu 'Nastavení sloupců'\r\n */\r\n public setColumnOrder(column: Column, newPosition: number, forced: boolean = false): void {\r\n const clms: Array<Column> = [ ...this.columns.filter((clm) => !clm.isFrozen) ]; // všechny sloupce gridu vloží do pomocného pole, které se dále setřídí\r\n const frozenClms = [ ...this.columns.filter((clm) => clm.isFrozen) ];\r\n\r\n const oldPosition = column.order; // pořadí uložené v profilu, které se počítá od 1\r\n const actualPosition = clms.findIndex(clm => clm.attrName === column.attrName); // pozice sloupce před přesunutím\r\n\r\n // Při vynuceném přesunutí je potřeba přepočítat 'newPosition', protože do ní nejsou zahrnuté neviditelné sloupce na panelu 'Nastavení sloupců'\r\n if (forced) {\r\n // mezi viditelnými sloupci na seznamu (protože 'newPosition' bere v úvahu jen viditelné sloupce) se najde sloupec, na jehož pozici se má 'column' přesunout\r\n const columnAtNewPosition = this.columns.filter(clm => clm.visible === true)[newPosition - 1];\r\n newPosition = this.columns.indexOf(columnAtNewPosition) + 1;\r\n }\r\n\r\n let spliceClmns: boolean = false;\r\n for (const [index, clm] of clms.entries()) {\r\n // Pokud je už sloupec na nové pozici, není potřeba ho přesouvat\r\n if (actualPosition + 1 === newPosition) {\r\n clm.order = index + 1; // sloupec je na své pozici, nastaví se mu podle ní order + 1 (protože v profilech se počítá od 1)\r\n } else {\r\n spliceClmns = true; // Pokud není na nové pozici je třeba popřesouvat sloupce v poli na správné pozice\r\n break;\r\n }\r\n }\r\n\r\n // Pokud je potřeba sloupce v poli přesouvat, vyjme se prvek na aktuální pozici a vloží se na pozici novou\r\n if (spliceClmns) {\r\n const cutOutClmPosition = clms.length === newPosition ? newPosition : newPosition - 1; // pokud se vkládá na poslední pozici musí se přičíst 1, protože splice neodsune poslední prvek před vkládaný\r\n const cutOutClm = clms.splice(actualPosition, 1)[0]; // vyjme z pole přesouvaný sloupec na jeho aktuální pozici\r\n clms.splice(cutOutClmPosition, 0, cutOutClm); // vloží sloupec na novou pozici\r\n clms.forEach((column, index) => column.order = index + 1); // pořadí sloupců v poli už je správně, nastaví se jim order, podle indexu + 1 (protože order uloženýho v profilech se počítá od 1)\r\n }\r\n\r\n this.columns = [...frozenClms, ...clms]; // setřízené pole se uloží jak nový seznam sloupců gridu\r\n\r\n this.renderColumns(this.columns, this.orderBy, 0, false);\r\n\r\n // Přesouvání buněk u jednotlivých řádků gridu\r\n for (const row of this.dataRows) {\r\n if (column.withoutAttribute) {\r\n row.changeCellPositionByIndex(oldPosition, newPosition);\r\n } else {\r\n row.changeCellPositionByFullAttrName(column.fullAttrName, newPosition);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Vygeneruje pro sloupce jejich pořadí v seznamu\r\n */\r\n public generateColumnsOrder(): void {\r\n let order = 1; // Kvůli kompatibilitě s profily, které se počítají také od 1\r\n for (const column of this.columns) {\r\n column.order = order++;\r\n }\r\n }\r\n\r\n public setColumnWidth(column: Column, width: number): void {\r\n if (column.width === width || !column.visible)\r\n return;\r\n\r\n const element = column.headerTemplate;\r\n\r\n element.style.width = width + \"px\";\r\n column.width = width;\r\n\r\n for (const row of this.dataRows) {\r\n row.resizeCellByFullAttrName(element.parentColumn.fullAttrName, width);\r\n }\r\n }\r\n\r\n public override setFilters(filters: any[]): void {\r\n super.setFilters(filters);\r\n\r\n this._headerDiv.classList.toggle(\"show-filter\", filters && filters.length > 0);\r\n }\r\n\r\n /**\r\n * Odstraní z dataGridu všechny dynamické slopuce\r\n */\r\n public removeDynamicColumns(): void {\r\n const dynamicColumns = this.columns.filter(column => column.isDynamic);\r\n\r\n dynamicColumns.forEach((column) => {\r\n this._removeColumn(column);\r\n });\r\n }\r\n\r\n /**\r\n * Odstraní z dataGridu jeden konkrétní sloupec\r\n * @param column - sloupec, který má být odebrán\r\n */\r\n protected _removeColumn(column: Column): void {\r\n const columnIndex = this.columns.indexOf(column);\r\n\r\n if (columnIndex > -1) {\r\n this.columns.splice(columnIndex, 1);\r\n this.dataRows.forEach(row => row.removeCellByIndex(columnIndex));\r\n column.headerTemplate?.remove();\r\n column.remove();\r\n }\r\n }\r\n\r\n /**\r\n * Vykresleni kontejneru pro data\r\n */\r\n protected override _renderDataContainer(): void {\r\n super._renderDataContainer();\r\n\r\n this._eventsController.addListener(this._listDiv, \"scroll\", (ev: UIEvent) => {\r\n this._scroll(ev, \"normal\");\r\n }, { options: { passive: true } });\r\n }\r\n\r\n /**\r\n * Pohyb v seznamu na vybrany radek\r\n */\r\n public scrollToSelectedRow(): void {\r\n const index: number = this.dataRows.indexOf(this.lastClickedRow);\r\n if (index === -1) {\r\n this._listDiv.scrollTop = 0;\r\n return;\r\n }\r\n // kontrola, aby doslo ke scrollovani pouze pokud neni element viditelny\r\n const visibleRange = {\r\n start: this.offset().top + this.scrollTop,\r\n end: this.offsetHeight + this.scrollTop,\r\n };\r\n const rowTop = ElementUtils.offset(this.lastClickedRow).top;\r\n const rowBottom = rowTop + this.lastClickedRow.offsetHeight;\r\n\r\n if (rowTop > visibleRange.start && rowBottom < visibleRange.end)\r\n return;\r\n\r\n if (this.selectedRows.length > 0 && index >= 0)\r\n this._listDiv.scrollTop = (this.selectedRows[0].clientHeight + 1) * index;\r\n else\r\n this._listDiv.scrollTop = 0;\r\n }\r\n\r\n /**\r\n * Vykreslí do seznamu sloupce ze vstupu a zaregistruje u nich potřebné listenery\r\n * @param columns - sloupce k vykreslení\r\n * @param _orderBy\r\n * @param startIndex - od tohoto indexu mají být nové sloupce číslovány\r\n * @param addNoSortItem - příznak určující, zda se má dorovnávat šířka scrollbaru\r\n * @param addCells - příznak určující, zda se mají na konec každého řádku přidat buňky nových sloupců\r\n */\r\n public renderColumns(columns: Array<Column>, _orderBy: IOrderBy[], startIndex: number = 0, addNoSortItem: boolean = true, addCells: boolean = false): void {\r\n if (addCells) {\r\n this.dataRows.forEach(row => {\r\n row.addCells(columns);\r\n row.render();\r\n });\r\n }\r\n this._initColumnListeners(columns);\r\n\r\n this.headerRow.render(this, columns, this.orderBy, startIndex, addNoSortItem);\r\n }\r\n\r\n public override dispose(): void {\r\n this.clearDataRows();\r\n this.columnPositionChanged.removeAll();\r\n this.orderBy = [];\r\n this._boundingRectChangeObserver?.();\r\n\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-list-data-grid\", ListDataGrid);\r\n","import { IRowData } from \"@multiweb/types/contracts\";\r\nimport { ObjectUtils } from \"Global/Base/Utils/ObjectUtils\";\r\nimport { AttrValueReader } from \"OW.Remoting/Remoting/AttrValueReader\";\r\nimport { Enum } from \"OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Control } from \"UI/UI.BaseControls/Control\";\r\nimport { IDataSourceLoadInfo, IEditableDataSource } from \"../../Global/Base/DataSources/Interfaces\";\r\nimport { IEncAttrValue } from \"../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Event } from \"../../Global/Base/Events\";\r\nimport { ArrayUtils } from \"../../Global/Base/Utils/ArrayUtils\";\r\nimport { Localization } from \"../../OW.Remoting/Remoting/Localization\";\r\nimport { IDataLoadingAwaitable, IValidatable, IValidationResult } from \"../UI.BaseControls/ControlInterfaces\";\r\nimport { registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { EditableDataRow } from \"./DataGridSubcontrols/Components/EditableDataRow\";\r\nimport { IDataRowElement, IEditableDataRowElement, IEditableListDataRowElement, PreviewRowClickEvent, RowClickEvent } from \"./DataGridSubcontrols/Components/IDataRow\";\r\nimport { EmptyDatagridMessageType } from \"./DataGridSubcontrols/DataGridMessages/IEmptyDataGridMessage\";\r\nimport { IEditableListDataGrid } from \"./IDataGrid\";\r\nimport { GlobalCustomEvent } from \"./IEvent\";\r\nimport { ListDataGrid } from \"./ListDataGrid\";\r\n\r\nconst LOAD_QUERY_MODE_EVENT = \"loadDataQueryMode\";\r\nexport class EditableDataGrid<R extends IEditableListDataRowElement> extends ListDataGrid<R> implements IEditableListDataGrid<R>, IDataLoadingAwaitable {\r\n //#region Fields\r\n private _isInEdit: boolean; // informace o tom, zda je datagrid v editacnim rezimu\r\n public editedRows: Array<R>;\r\n /** Element zobrazujici aktualni pocet rozeditovanych zaznamu */\r\n private _editedRowCountElement: HTMLElement;\r\n /** Vnitrni element s poctem rozeditovanych zaznamu */\r\n private _editedRowsCounterEl: HTMLLabelElement;\r\n /** Vnitrni element popiskem k pocku rozeditovanych zaznamu */\r\n private _numberOfEditeRowsEl: HTMLLabelElement;\r\n /** Pocet rozeditovanych zaznamu */\r\n private __editedRowCount: number;\r\n /** Pole ID editovanych zaznamu. Slouzi zejmena pro opetovne nastaveni isChanged jednotlivych zaznamu pri prepnuti LF z kompaktniho zobrazeni na normalni */\r\n private changedRowsID: Array<string> = [];\r\n\r\n private get _editedRowCount(): number {\r\n return this.__editedRowCount;\r\n }\r\n\r\n private set _editedRowCount(value: number) {\r\n this.__editedRowCount = value;\r\n this._editedRowsCounterEl.innerText = value.toString();\r\n }\r\n\r\n /** Tlacitko pro zobrazeni rozeditovanych zaznamu */\r\n private _displayEditedRowsButton: HTMLDivElement;\r\n /** Tlacitko pro zobrazeni vsech zaznamu */\r\n private _displayAllRowsButton: HTMLDivElement;\r\n /** Property, zda jsou zobrazeny jenom rozeditovane zaznamy */\r\n public displayedEditedRows: boolean = false;\r\n /** Povoluje/zakazuje zobrazovani radku s poctem rozeditovanych zaznamu */\r\n public displayEditedCountBar: boolean;\r\n /** Element pro zobrazeni query mode banneru */\r\n private _queryModeContainer: HTMLDivElement;\r\n /** Tlacitko pro nacteni vsech dat a ukonceni query mode */\r\n private _queryModeButton: HTMLDivElement;\r\n\r\n public canSwitchToEditCallback: () => boolean;\r\n\r\n public readonly cellValidityChanged: Event<IValidatable, { row: R; validity: IValidationResult }> = new Event<IValidatable, { row: R; validity: IValidationResult }>();\r\n\r\n public readonly permissionsChanged: Event<R, IPermissionChanges[]> = new Event<R, IPermissionChanges[]>();\r\n //#endregion\r\n\r\n //#region Properties\r\n public override get dataSource(): IEditableDataSource {\r\n return super.dataSource as IEditableDataSource;\r\n }\r\n public override set dataSource(value: IEditableDataSource) {\r\n super.dataSource = value;\r\n }\r\n\r\n public set isInEdit(v: boolean) {\r\n this._isInEdit = v;\r\n\r\n for (const item of this.selectedRows) {\r\n item.isInEdit = v;\r\n }\r\n if (!v) {\r\n //for (let item of this.EditedRows) {\r\n // if (item.ID == 0) item.remove();\r\n //}\r\n this.editedRows = [];\r\n this._updateCountBar(0);\r\n this.displayCountBar(false);\r\n }\r\n }\r\n\r\n public get isInEdit(): boolean {\r\n return this._isInEdit;\r\n }\r\n\r\n public isMultiEditAllowed: boolean = true;\r\n\r\n protected get _allDataRows(): Array<R> {\r\n return [...this.dataRows ?? []];\r\n }\r\n\r\n protected override _lastSelectedDataKeys: Array<string> = [];\r\n /**\r\n * Identifikátory naposledy vybraných zeditovaných řádků\r\n * Neměly by se nastavovat přímo, ale v metodách _setLastSelectedDataKeys,\r\n * _concatenateLastSelectedDataKeys, _removeFromLastSelectedDataKeys,\r\n * _clearLastSelectedDataKeys!\r\n */\r\n protected _lastSelectedEditedDataKeys: Array<string> = [];\r\n\r\n //#endregion Properties\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"editable\");\r\n this.editedRows = new Array<R>();\r\n this._isInEdit = false;\r\n this.displayedEditedRows = false;\r\n this.displayEditedCountBar = true;\r\n\r\n this._dataRowFactory = () => new EditableDataRow() as any as R;\r\n }\r\n\r\n protected async _previewRowClick(_e: GlobalCustomEvent<PreviewRowClickEvent>, _row: R): Promise<void> {\r\n // const evt = e.detail;\r\n }\r\n\r\n protected override async _rowClick(e: GlobalCustomEvent<RowClickEvent>, clickedRow: R): Promise<void> {\r\n const evt = e.detail;\r\n if ((evt.originalEvent.ctrlKey || evt.originalEvent.shiftKey) && (this.isInEdit && !this.isMultiEditAllowed)) { //pokud je datagrid v editaci, neumožní označení dalších záznamů. #13107\r\n return;\r\n }\r\n\r\n await this.waitOnDataLoaded();\r\n\r\n if (!this.interactive) {\r\n return;\r\n }\r\n\r\n if (!(await this._checkIfCanSelectionChange(evt.originalEvent, clickedRow))) {\r\n return;\r\n }\r\n\r\n let dblClick = false;\r\n if (evt.clickCount === 0) {\r\n return;\r\n }\r\n if (evt.clickCount === 2) {\r\n dblClick = true;\r\n }\r\n\r\n let oldSelectedRows: IEditableDataRowElement[];\r\n if (this.isInEdit) {\r\n oldSelectedRows = this.selectedRows.slice(0);\r\n }\r\n\r\n const dispEvent = this._rowClickSelectItem(evt.originalEvent, clickedRow);\r\n\r\n let rowID: string = null;\r\n if (this.selectedRows.length === 1) {\r\n rowID = this.selectedRows[0].dataKey;\r\n }\r\n\r\n let columnID = null;\r\n if (dblClick || this.isInEdit) {\r\n const source = (evt.originalEvent.target || evt.originalEvent.srcElement) as Element;\r\n const tdElement = source.closest(\"td\");\r\n if (tdElement && clickedRow instanceof EditableDataRow) {\r\n columnID = tdElement?.getAttribute(\"data-attrname\");\r\n }\r\n }\r\n\r\n if (clickedRow instanceof EditableDataRow) {\r\n clickedRow.focusAttribute = columnID || null;\r\n }\r\n\r\n /*Zavolání události selectionChange je potřeba udělat ještě před přechodem do editace. V rámci obsloužení události se spouští task pro dočtení objektu.\r\n Na ten se následně čeká před přechodem do editace.*/\r\n if (dispEvent) {\r\n // pokud je vybrany jen jeden radek a zároveň nejde o už vybraný řádek\r\n if (rowID != null) {\r\n this._dispatchSelectionChangeEvent(rowID, { doubleClick: dblClick, clickedRow });\r\n } else { // neni vybrany zadny radek nebo oznaceno vice zaznamu\r\n this._dispatchSelectionChangeEvent(\"-1\", { doubleClick: false, clickedRow });\r\n }\r\n }\r\n if (/*!dispEvent &&*/ dblClick) {\r\n this._dispatchDoubleClickEvent(true, rowID);\r\n }\r\n if (this.isInEdit) {\r\n // Nemůžeme porovnat přímo reference polí, ale porovnáme dataKey označených řádků\r\n if (!ArrayUtils.equals(this.selectedRows.map(r => r.dataKey), oldSelectedRows.map(r => r.dataKey), true)) {\r\n for (const sr of oldSelectedRows) {\r\n if (!sr.isSelected && !sr.isChanged) {\r\n sr.isInEdit = false;\r\n }\r\n }\r\n await this.waitOnDataLoaded();//čekání na dočtení aktuálního objektu před přechodem do editace\r\n for (const sr of this.selectedRows) {\r\n if (!this.canSwitchToEditCallback ||\r\n (this.canSwitchToEditCallback && !this.canSwitchToEditCallback())) {\r\n if (!sr.isInEdit) {\r\n sr.isInEdit = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Inicializuje datagrid a preda nejaky info datasourcu\r\n */\r\n public override async initialize(): Promise<any> {\r\n await super.initialize();\r\n\r\n this._eventsController.add(this.dataSource.attributesChanged, (_sender, eventData) => {\r\n let selector = `:scope > [datakey='${eventData.key}']`;\r\n if (eventData.instanceId) {\r\n selector += `, :scope > [datakey='${eventData.instanceId}']`;\r\n }\r\n\r\n const el = this._dataTable.querySelector(selector) as R;\r\n\r\n if (!el) {\r\n return;\r\n }\r\n\r\n let flagColorName = \"\";\r\n\r\n if (this.flagAttributeName && eventData.values.has(this.flagAttributeName)) {\r\n const flagColor = AttrValueReader.read(eventData.values.get(this.flagAttributeName));\r\n flagColorName = flagColor instanceof Enum ? flagColor.getName() : flagColor;\r\n if (!this.allowedFlagColors || (this.allowedFlagColors?.includes(flagColorName))) {\r\n el.flag = flagColorName;\r\n } else {\r\n el.flag = \"\";\r\n }\r\n }\r\n for (const data of eventData.values) {\r\n let newVal = data[\"1\"];\r\n if (newVal instanceof IEncAttrValue && !newVal.isEncrypted) { //záznam byl dešifrovaný. Měla by se použít vnitřní hodnota.\r\n newVal = newVal.valueOf();\r\n }\r\n el.setChangedData(data[\"0\"], newVal, eventData.isChanged);\r\n if (eventData.isChanged) {\r\n const rowID = el.dataKey;\r\n if (rowID && !this.changedRowsID.includes(rowID)) {\r\n this.changedRowsID.push(rowID);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this._eventsController.add(this.dataSource.changesCancelled, (_sender, _key) => {\r\n this.removeIsChangedAll();\r\n if (this.dataRows.length === 0) {\r\n this._displayQueryModeBanner(false);\r\n } else {\r\n this._displayQueryModeBanner(true);\r\n }\r\n this.resizeGrid();\r\n });\r\n\r\n this._eventsController.add(this.dataSource.deleted, (_sender, payload) => {\r\n const key = payload.key;\r\n this.removeIsChangedOnKey(key);\r\n const el = this._listDiv.querySelector(`.DataRow:not(.frozen-row)[datakey='${key}']`);\r\n if (el) {\r\n el.remove();\r\n }\r\n\r\n this._removeRowFromEdited(key);\r\n this.removeRow(key);\r\n if (payload.maintainSelection) {\r\n this.selectRowOnLastDeletedPosition();\r\n }\r\n\r\n if (this.selectedRows.length == 0) {\r\n this._dispatchSelectionChangeEvent(\"-1\", { doubleClick: false, clickedRow: this.lastClickedRow });\r\n }\r\n\r\n if (this.dataRows.length === 0) {\r\n this.emptyMessage.visible = true;\r\n this._displayQueryModeBanner(false);\r\n } else {\r\n this._displayQueryModeBanner(true);\r\n }\r\n\r\n this._updateEmptyMessageVisibility();\r\n });\r\n\r\n this._eventsController.add(this.dataSource.newCreated, async (_cancelableEventArgs, _sender, irow) => {\r\n await this.waitOnDataLoaded();\r\n const newRow = this.insertNewRecord(irow);\r\n this.initDataRowFlag(newRow, irow);\r\n newRow.select(true);\r\n newRow.isInEdit = true;\r\n this._displayQueryModeBanner(false);\r\n this.resizeGrid();\r\n const rowID = irow[\"ID\"];\r\n if (rowID && !this.changedRowsID.includes(rowID.toString())) {\r\n this.changedRowsID.push(rowID.toString());\r\n }\r\n });\r\n\r\n this._eventsController.add(this.dataSource.saved, (_sender, irow) => {\r\n this.callEvent(\"Saved\");\r\n this.removeIsChangedOnKey(irow.key);\r\n if (irow.key === irow.newKey) {\r\n return;\r\n }\r\n\r\n const el = this._dataTable.querySelector(`:scope > [datakey='${irow.key}']`) as R;\r\n\r\n if (el) {\r\n el.dataKey = irow.newKey;\r\n }\r\n this._displayQueryModeBanner(true);\r\n this.resizeGrid();\r\n });\r\n\r\n this._eventsController.add(this.dataSource.afterSaved, (_sender, eventData) => {\r\n this.callEvent(\"AfterSaved\");\r\n for (const key of eventData.saved) {\r\n this.removeIsChangedOnKey(key);\r\n }\r\n });\r\n }\r\n\r\n protected override async _fetchNextBatch(eventData: IDataSourceLoadInfo): Promise<void> {\r\n await super._fetchNextBatch(eventData);\r\n\r\n if (eventData.startIndex === 0 && this._allDataRead) {\r\n for (const editedRow of this.editedRows) {\r\n if (!this.dataRows.some(row => row.dataKey === editedRow.dataKey)) {\r\n ArrayUtils.remove(this.editedRows, editedRow);\r\n this.decEditedRows();\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected insertRecord(dataRow: IRowData): R {\r\n const dataSource = this.dataSource; // as EditableDBDataSource;\r\n\r\n const beforeRow = this.selectedRows.length > 0 && this.dataRows && this.dataRows.length > 0 ? (this.dataRows.indexOf(this.selectedRows[0]) > -1 ? this.selectedRows[0] : undefined) : (this.dataRows.length > 0 ? this.dataRows[0] : undefined);\r\n\r\n const newRow = this._dataRowFactory(this, dataRow);\r\n newRow.init(dataRow, this, this._createRowControlElement(newRow));\r\n newRow.render();\r\n newRow.dataKey = dataRow[dataSource.dataKey].valueOf();\r\n\r\n if (newRow instanceof Control) {\r\n newRow.registerEventListener(\"rowclick\", (e) => {\r\n this._rowClick(e as RowClickEvent, newRow);\r\n });\r\n }\r\n\r\n newRow.cellValidityChanged.add((sender, validity) => this.cellValidityChanged.trigger(sender, { row: newRow, validity: validity }));\r\n\r\n if (beforeRow) {\r\n this._dataTable.insertBefore(newRow as HTMLElement, beforeRow as HTMLElement);\r\n } else {\r\n this._dataTable.appendChild(newRow as HTMLElement);\r\n }\r\n\r\n if (beforeRow) {\r\n const addIndex = this.dataRows.indexOf(beforeRow);\r\n this.dataRows.splice(addIndex, 0, newRow);\r\n } else {\r\n this.dataRows.push(newRow);\r\n }\r\n\r\n this._updateEmptyMessageVisibility(); // Lze volat až po přidání záznamu do dataRows\r\n\r\n return newRow;\r\n }\r\n\r\n public override insertExistingRecord(dataRow: IRowData): R {\r\n return this.insertRecord(dataRow);\r\n }\r\n\r\n public override insertNewRecord(dataRow: IRowData): R {\r\n const newRows = this.insertRecord(dataRow);\r\n const dataSource = this.dataSource;\r\n\r\n const keys = Object.keys(dataRow);\r\n for (const key of keys) {\r\n if (key == dataSource.dataKey || key == dataSource.permissionKey) {\r\n continue;\r\n }\r\n newRows.setChangedData(key, dataRow[key], true);\r\n }\r\n\r\n return newRows;\r\n }\r\n\r\n /**\r\n * Umožňuje čekat na dočtení dat\r\n */\r\n public async waitOnDataLoaded(): Promise<boolean> {\r\n for (const row of this.selectedRows) {\r\n for (const cell of row.dataCells) {\r\n if (cell instanceof IDataLoadingAwaitable) {\r\n await cell.waitOnDataLoaded();\r\n }\r\n }\r\n }\r\n\r\n await this._dataSource.waitForReload();\r\n return Promise.resolve(true);\r\n }\r\n\r\n /**\r\n * Smazani oznacenych radku\r\n */\r\n public override clearSelectedRows(): void {\r\n for (const row of [...this.selectedRows]) { // pro jistotu je pole kopírováno, protože z originálního mohou mizet prvky\r\n if (row.isDisposed()) { // TODO Provizorní kontrola. Opravit příčinu práce s disposed řádky v rámci tasku 33553.\r\n continue;\r\n }\r\n\r\n if (!row.isChanged) {\r\n row.isInEdit = false;\r\n }\r\n row.isSelected = false;\r\n }\r\n this.selectedRows = [];\r\n\r\n this.isSelectedAll = false;\r\n }\r\n\r\n /**\r\n * Vytvoreni jednoho radku\r\n */\r\n protected override _createRow(data: IRowData): R {\r\n const dataRow = super._createRow(data);\r\n\r\n dataRow.cellValidityChanged.add((sender, validity) => this.cellValidityChanged.trigger(sender, { row: dataRow, validity: validity }));\r\n\r\n return dataRow;\r\n }\r\n\r\n protected override _setLastSelectedDataKeys(selectedRows: Array<R>): string[] {\r\n super._setLastSelectedDataKeys(selectedRows);\r\n this._lastSelectedEditedDataKeys = selectedRows.filter(row => row.isInEdit).map(row => row.dataKey);\r\n return this._lastSelectedDataKeys;\r\n }\r\n\r\n protected override _concatenateLastSelectedDataKeys(selectedRows: Array<R>): string[] {\r\n super._concatenateLastSelectedDataKeys(selectedRows);\r\n this._lastSelectedEditedDataKeys = selectedRows.filter(row => row.isInEdit).map(row => row.dataKey);\r\n return this._lastSelectedDataKeys;\r\n }\r\n\r\n protected override _removeFromLastSelectedDataKeys(dataKeyToDeselect: string): string[] {\r\n super._removeFromLastSelectedDataKeys(dataKeyToDeselect);\r\n this._lastSelectedEditedDataKeys = this._lastSelectedEditedDataKeys.filter(dataKey => dataKey !== dataKeyToDeselect);\r\n return this._lastSelectedDataKeys;\r\n }\r\n protected override _clearLastSelectedDataKeys(): void {\r\n super._clearLastSelectedDataKeys();\r\n this._lastSelectedEditedDataKeys = [];\r\n }\r\n\r\n public override render(): void {\r\n super.render();\r\n\r\n this._renderCountBar();\r\n }\r\n\r\n /**\r\n * Udrzeni vybranych radku pri refresh/razeni seznamu\r\n *\r\n * TODO Metoda pracuje s disposed řádky. Opravit příčinu práce s disposed řádky v rámci tasku 33553.\r\n */\r\n public override async keepSelectedRows(): Promise<void> {\r\n let IDs = new Array<any>();\r\n let isEdited = new Array<boolean>();\r\n let instanceIds = new Array<string>();\r\n const fromLastSelectedRows = this._lastSelectedDataKeys.length > 0;\r\n\r\n if (!this._selectionHelper.masterSelectAll) {\r\n if (this._lastSelectedDataKeys.length > 0) {\r\n IDs = [...this._lastSelectedDataKeys];\r\n // Vytvoří pole stejné délky jako IDs, kde je na odpovídajících pozicích příznak, zda byl řádek rozeditován\r\n isEdited = IDs.map(id => (this._lastSelectedEditedDataKeys.indexOf(id) > -1));\r\n instanceIds = this._lastSelectedDataKeys.filter(i => ObjectUtils.isIdTemporary(i));\r\n } else {\r\n const rows = this.selectedRows;\r\n for (const row of rows) {\r\n let datakey = row.dataKey;\r\n if (datakey) {\r\n datakey = datakey.toString();\r\n }\r\n IDs.push(datakey);\r\n isEdited.push(row.isInEdit);\r\n if (datakey === row.dataset.instanceid) {\r\n instanceIds.push(datakey);\r\n }\r\n }\r\n }\r\n\r\n this.clearSelectedRows();\r\n\r\n if (IDs.length > 0) {\r\n const foundIDs: string[] = [];\r\n\r\n for (let i = 0; i < this.dataRows.length; i++) {\r\n const dataRow = this.dataRows[i];\r\n const rowDataKey = dataRow.dataKey.toString();\r\n const index = IDs.indexOf(rowDataKey);\r\n if (index >= 0) {\r\n dataRow.isSelected = true;\r\n const firstRow = dataRow.parentElement.querySelector(\".DataRow\");\r\n if ((firstRow instanceof IDataRowElement) && firstRow.dataKey != dataRow.dataKey && this._scrollToSelectingRow) { //pokud oznacenej radek neni na prvnim miste tak k nemu doscroluju - jen pri refreshi seznamu\r\n dataRow.scrollIntoView({ behavior: \"auto\", block: \"nearest\", inline: \"nearest\" });\r\n }\r\n\r\n if ((firstRow instanceof IDataRowElement) && firstRow.dataKey == dataRow.dataKey && this._scrollToSelectingRow) { //scrolovani k prvnimu radku, musi to byt zvlast kvuli uzkymu seznamu\r\n firstRow.scrollIntoView({ behavior: \"smooth\", block: \"nearest\", inline: \"start\" });\r\n }\r\n\r\n this._scrollToSelectingRow = false;\r\n if (isEdited[index]) {\r\n dataRow.isInEdit = true;\r\n }\r\n\r\n this._clearLastSelectedDataKeys();\r\n foundIDs.push(rowDataKey);\r\n\r\n if (this._selectionHelper.contains(rowDataKey)) {\r\n dataRow.isSelected = true;\r\n }\r\n }\r\n }\r\n\r\n const notFoundIDs = IDs.filter(id => !foundIDs.includes(id) && !instanceIds.includes(id));\r\n\r\n if (notFoundIDs.length > 0) {\r\n const loadedRows = await this.dataSource.loadSpecificRecords(notFoundIDs, true);\r\n if (loadedRows != undefined && loadedRows.length > 0) {\r\n /**\r\n * Pokud dojde např. k validačním chybám, tak tyto záznamy se oproti ostatním načtou až později v loadSpecificRecords.\r\n * Je potřeba informovat o dočtění, aby datasource vždy pracoval s aktuálním počtem vybraných řádků!\r\n * */\r\n this.dispatchSelectionChanged();\r\n this._refreshSelection = false;\r\n this._scrollToSelectingRow = false;\r\n return;\r\n } else {\r\n IDs = IDs.filter(id => !notFoundIDs.includes(id));\r\n }\r\n }\r\n }\r\n } else {\r\n for (const row of this.dataRows) {\r\n const rowDataKey = row.dataKey.toString();\r\n row.isSelected = this._selectionHelper.contains(rowDataKey);\r\n }\r\n }\r\n\r\n if (this.selectedRows.length > 0) {\r\n this._lastClickedRow = this.selectedRows[0]; // nastavuji pouze field, protoze setter nastavuje keyPressRowIndex, ktery chci zachovat\r\n if (this._refreshSelection) {\r\n this.dispatchSelectionChanged();\r\n this._refreshSelection = false;\r\n }\r\n } else {\r\n if (IDs.length > 0 && !(fromLastSelectedRows && this._lastSelectedDataKeys.length == 0)) {\r\n this._clearLastSelectedDataKeys();\r\n this._dispatchSelectionChangeEvent(IDs[0], { doubleClick: false, clickedRow: this.lastClickedRow });\r\n }\r\n }\r\n }\r\n\r\n public removeIsChangedAll(): void {\r\n this._allDataRows.forEach(row => {\r\n if (row.isChanged) {\r\n row.isChanged = false;\r\n }\r\n });\r\n\r\n this.changedRowsID = [];\r\n }\r\n\r\n public removeIsChangedOnKey(key: any): void {\r\n this._allDataRows.forEach(row => {\r\n if (row.dataKey === key) {\r\n row.isChanged = false;\r\n }\r\n });\r\n this.changedRowsID = this.changedRowsID.filter(rowID => rowID !== key);\r\n }\r\n\r\n public override nextRecord(trigger = true): void {\r\n super.nextRecord(trigger);\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n public override endNextRecord(): void {\r\n super.endNextRecord();\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n public override homePrevRecord(): void {\r\n super.homePrevRecord();\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n public override pageDownNextRecord(): void {\r\n super.pageDownNextRecord();\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n public override pageUpPrevRecord(): void {\r\n super.pageUpPrevRecord();\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n public override prevRecord(trigger = true): void {\r\n super.prevRecord(trigger);\r\n if (this.isInEdit) {\r\n this._lastClickedRow.isInEdit = true;\r\n }\r\n }\r\n\r\n /**\r\n * Metoda pro zobrazeni tlacitka Zobrazi a vyvolani eventu\r\n * @param display zobrazeni/schovani tlacitka Zobrazit\r\n * @param enableEvent povoleni spusteni eventu\r\n */\r\n public displayEditedRows(): void {\r\n this.displayedEditedRows = true;\r\n if (this.emptyMessage.messageType !== EmptyDatagridMessageType.queryModeEmpty) {\r\n this._displayEditedRowsButton.style.display = \"none\";\r\n this._displayAllRowsButton.style.removeProperty(\"display\");\r\n }\r\n\r\n let selectionChange = false;\r\n\r\n this.dataRows.filter((row) => {\r\n return !row.isChanged;\r\n }).forEach((row) => {\r\n if (row.isSelected) {\r\n if (!selectionChange)\r\n selectionChange = true;\r\n row.isSelected = false;\r\n }\r\n row.visible = false;\r\n });\r\n\r\n if (selectionChange) {\r\n this.dispatchSelectionChanged();\r\n }\r\n }\r\n\r\n private _removeRowFromEdited(ID: any): void {\r\n const row = this.editedRows.find((item) => item.dataKey == ID);\r\n if (row) {\r\n this.editedRows.splice(this.editedRows.indexOf(row), 1);\r\n }\r\n }\r\n\r\n /**\r\n * Metoda pro zobrazeni tlacitka Zobrazit vse a vyvolani eventu\r\n * @param display zobrazeni/schovani tlacitka Zobrazit vse\r\n */\r\n public displayAllRows(): void {\r\n this.displayedEditedRows = false;\r\n if (this.emptyMessage.messageType !== EmptyDatagridMessageType.queryModeEmpty) {\r\n this._displayAllRowsButton.style.display = \"none\";\r\n this._displayEditedRowsButton.style.removeProperty(\"display\");\r\n }\r\n\r\n this._allDataRows.forEach(row => {\r\n if (!row.visible) {\r\n row.visible = true;\r\n }\r\n });\r\n }\r\n\r\n public dispatchSelectionChanged(): void {\r\n if (this.selectedRows.length == 1) {\r\n this._dispatchSelectionChangeEvent(this.lastClickedRow.dataKey, { doubleClick: false, clickedRow: this.lastClickedRow });\r\n } else {\r\n this._dispatchSelectionChangeEvent(\"-1\", { doubleClick: false, clickedRow: this.lastClickedRow });\r\n }\r\n }\r\n\r\n /**\r\n * Zobrazeni/schovani divu s poctem aktualne rozeditovanych zaznamu\r\n * @param display true = zobrazeni divu, false = schovani divu\r\n */\r\n public displayCountBar(display: boolean): void {\r\n if (this.displayEditedCountBar === false) {\r\n return;\r\n }\r\n if (display) {\r\n if (this.emptyMessage.messageType === EmptyDatagridMessageType.queryModeEmpty) {\r\n this._displayEditedRowsButton.style.display = \"none\";\r\n } else {\r\n this._displayEditedRowsButton.style.removeProperty(\"display\");\r\n }\r\n\r\n this._editedRowCountElement.style.removeProperty(\"display\");\r\n } else {\r\n this._editedRowCountElement.style.display = \"none\";\r\n this.displayAllRows();\r\n }\r\n }\r\n\r\n /**\r\n * Snizeni poctu rozeditovanych zaznamu o 1\r\n */\r\n public decEditedRows(): void {\r\n if (this._editedRowCount > 0) {\r\n this._editedRowCount = --this._editedRowCount;\r\n }\r\n if (this._editedRowCount == 0) {\r\n this.displayCountBar(false);\r\n }\r\n }\r\n\r\n /**\r\n * Zvyseni poctu rozeditovanych zaznamu o 1\r\n */\r\n public incEditedRows(): void {\r\n if (this._editedRowCount == 0) {\r\n this.displayCountBar(true);\r\n }\r\n this._editedRowCount = ++this._editedRowCount;\r\n }\r\n\r\n /**\r\n * Update poctu zobrazenych zaznamu\r\n * @param count pocet zaznamu\r\n */\r\n private _updateCountBar(count: number): void {\r\n this._editedRowCount = count;\r\n }\r\n\r\n /**\r\n * Vytvoreni elementu, ktery zobrazuje pocet aktualne rozeditovanych zaznamu\r\n */\r\n private _renderCountBar(): void {\r\n this._editedRowCountElement = document.createElement(\"div\");\r\n this._displayEditedRowsButton = document.createElement(\"div\");\r\n this._editedRowsCounterEl = document.createElement(\"label\");\r\n this._numberOfEditeRowsEl = document.createElement(\"label\");\r\n this._displayAllRowsButton = document.createElement(\"div\");\r\n\r\n this._displayAllRowsButton.classList.add(\"DisplayAllRow\", \"btn\", \"flat\");\r\n this._displayEditedRowsButton.classList.add(\"DisplayEditedRows\", \"btn\", \"flat\");\r\n this._editedRowCountElement.classList.add(\"EditContainer\");\r\n this._editedRowsCounterEl.classList.add(\"Counter\");\r\n this._numberOfEditeRowsEl.classList.add(\"Description\");\r\n\r\n Localization.addLocData(this._displayEditedRowsButton, \"GUI-451280\");\r\n Localization.addLocData(this._numberOfEditeRowsEl, \"GUI-523295\");\r\n Localization.addLocData(this._displayAllRowsButton, \"GUI-452722\");\r\n\r\n this._displayAllRowsButton.style.display = \"none\";\r\n\r\n this._editedRowCountElement.appendChild(this._numberOfEditeRowsEl);\r\n this._editedRowCountElement.appendChild(this._editedRowsCounterEl);\r\n this._editedRowCountElement.appendChild(this._displayEditedRowsButton);\r\n this._editedRowCountElement.appendChild(this._displayAllRowsButton);\r\n\r\n this._eventsController.addListener(this._displayAllRowsButton, \"click\", (_e) => {\r\n if (this._displayAllRowsButton.classList.contains(\"Disabled\")) {\r\n return;\r\n }\r\n this.displayAllRows();\r\n });\r\n this._eventsController.addListener(this._displayEditedRowsButton, \"click\", (_e) => {\r\n if (this._displayEditedRowsButton.classList.contains(\"Disabled\")) {\r\n return;\r\n }\r\n this.displayEditedRows();\r\n });\r\n\r\n this._editedRowCount = 0;\r\n this._editedRowCountElement.style.display = \"none\";\r\n\r\n this._mainListDiv.appendChild(this._editedRowCountElement);\r\n }\r\n\r\n /**\r\n * Vytvori query mode banner\r\n */\r\n private _renderQueryModeBanner(): void {\r\n this._queryModeContainer = document.createElement(\"div\");\r\n const queryModeDescript = document.createElement(\"label\");\r\n this._queryModeButton = document.createElement(\"div\");\r\n\r\n this._queryModeContainer.classList.add(\"EditContainer\");\r\n queryModeDescript.classList.add(\"Description\");\r\n this._queryModeButton.classList.add(\"DisplayEditedRows\", \"btn\", \"flat\");\r\n\r\n Localization.addLocData(queryModeDescript, \"GUI-696397\"); // Pro zobrazení více dat nastavte filtr\r\n Localization.addLocData(this._queryModeButton, \"GUI-676719\"); // Načíst všechna data\r\n\r\n this._queryModeContainer.appendChild(queryModeDescript);\r\n this._queryModeContainer.appendChild(this._queryModeButton);\r\n\r\n this._queryModeContainer.style.display = \"none\";\r\n\r\n this._mainListDiv.appendChild(this._queryModeContainer);\r\n\r\n this.dataSource.loadingStarted.add(() => {\r\n this._displayQueryModeBanner(false);\r\n this._queryModeContainer.remove();\r\n });\r\n }\r\n\r\n /**\r\n * Metoda vytvori query mode banner a zaregistruje udalosti, ktere ukoncuji query mode\r\n * @param key klíč, pod kterým se uloží listener\r\n * @param dataLoad funkce refreshData\r\n */\r\n public registerLoadDataQueryMode(dataLoad: Function): void {\r\n if (this.emptyMessage.messageType === EmptyDatagridMessageType.queryModeEmpty && !this._queryModeContainer) {\r\n this._renderQueryModeBanner();\r\n }\r\n\r\n this._eventsController.addListenerWithKey(`${LOAD_QUERY_MODE_EVENT}click`, this._queryModeButton, \"click\", () => dataLoad(), { removePrevious: true });\r\n this._eventsController.addListenerWithKey(`${LOAD_QUERY_MODE_EVENT}order`, this, \"OrderingChanged\", () => dataLoad(), { removePrevious: true });\r\n }\r\n\r\n /**\r\n * Metoda odregistruje události query mode\r\n * @param key klíč, pod kterým je uložen listener\r\n */\r\n public unregisterLoadDataQueryMode(): void {\r\n this._eventsController.removeByKey(`${LOAD_QUERY_MODE_EVENT}click`);\r\n this._eventsController.removeByKey(`${LOAD_QUERY_MODE_EVENT}order`);\r\n }\r\n\r\n /**\r\n * Zobrazi/skryje query mode banner, pokud je zapnuty query mode\r\n */\r\n private _displayQueryModeBanner(display: boolean): void {\r\n if (this._queryModeContainer) {\r\n if (display) {\r\n this._queryModeContainer.style.removeProperty(\"display\");\r\n } else {\r\n this._queryModeContainer.style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Znovu vykreslit datove radky\r\n */\r\n public override async reRenderData(): Promise<void> {\r\n this._updateCountBar(0); // CountBar je nutne vynulovat, protoze v ramci rerenderu se znovu vyhodnocuje vlastnost isChanged jednotlivych radku (viz nize), ktera zpusobuje jeho inkrementaci\r\n\r\n await super.reRenderData();\r\n for (const row of this.dataRows) {\r\n if (this.changedRowsID.includes(row.dataKey)) {\r\n row.isChanged = true;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Obsahuje informace o tom, která práva se na komponentě změnila\r\n */\r\nexport interface IPermissionChanges {\r\n /**\r\n * Komponenta, o kterou se jedná\r\n */\r\n control: IValidatable;\r\n /**\r\n * Zda se změnila povinnost\r\n */\r\n required: boolean;\r\n}\r\n\r\nregisterCustomElement(\"tsc-editabledatagrid\", EditableDataGrid);\r\n","import { IRowData } from \"@multiweb/types/contracts\";\r\nimport { CaseInsensitiveMap } from \"@multiweb/types/multiweb\";\r\nimport { ExtendedPropertiesType } from \"UI/types\";\r\nimport { AdditionalOrdering, IDataSource, IDataSourceLoadInfo, IEditableDataSource, IOrderBy, OrderType } from \"../../Global/Base/DataSources/Interfaces\";\r\nimport { Event as GlobalEvent } from \"../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../Global/Base/IDisposable\";\r\nimport { IAwaitableEvent } from \"../UI.BaseControls/AwaitableEvent\";\r\nimport { IValidatable, IValidationResult } from \"../UI.BaseControls/ControlInterfaces\";\r\nimport { ICustomElement } from \"../UI.BaseControls/ICustomElement\";\r\nimport { IBooleanDetailValueEvent } from \"../UI.BaseControls/IEvent\";\r\nimport { Column } from \"./DataGridSubcontrols/Columns/Column\";\r\nimport { IDataRowElement, IEditableListDataRowElement, IListDataRowElement } from \"./DataGridSubcontrols/Components/IDataRow\";\r\nimport { IHeaderRow } from \"./DataGridSubcontrols/Components/IHeaderRow\";\r\nimport { IEmptyDataGridMessage } from \"./DataGridSubcontrols/DataGridMessages/IEmptyDataGridMessage\";\r\nimport { IPermissionChanges } from \"./EditableDatagrid\";\r\nimport {\r\n ICellValueChangedPrewAwaitableEvent,\r\n IColumnOrderingChangedEvent,\r\n IColumnPositionChangedEvent,\r\n IColumnPositionChangedEventData,\r\n IDataGridDataShownEvent,\r\n IDataGridSelectionChangedEvent,\r\n} from \"./IEvent\";\r\n\r\n/**\r\n * Základní rozhraní pro DataGrid, který nepředpokládá nic o svém rozložení ani způsobu zobrazení dat\r\n * @includeToDoc\r\n */\r\nexport interface IDataGrid<R extends IDataRowElement> extends IDisposable, HTMLElement, ICustomElement {\r\n /**\r\n * Zda je grid v režimu pouze pro čtení\r\n */\r\n interactive: boolean;\r\n /**\r\n * Obsahuje všechny načtené řádky datagridu\r\n */\r\n dataRows: R[];\r\n /**\r\n * Seznam všech vybraných řádků\r\n */\r\n selectedRows: R[];\r\n /**\r\n * Poslední vybraný záznam\r\n */\r\n lastClickedRow: R;\r\n /**\r\n * Název třídy zobrazované v datagridu\r\n */\r\n objectName: string;\r\n /**\r\n * Řídí, zda se má vykreslovat hlavička gridu\r\n */\r\n renderHeader: boolean;\r\n /**\r\n * Hlavička gridu\r\n */\r\n headerRow: IHeaderRow<R>;\r\n /**\r\n * Volitelná barva hlavičky gridu\r\n */\r\n headerColor?: string;\r\n /**\r\n * Zdroj dat datagridu\r\n */\r\n dataSource: IDataSource;\r\n /**\r\n * Seznam sloupců datagridu\r\n */\r\n columns: Column[];\r\n /**\r\n * Povoluje možnost výběru více záznamů najednou\r\n */\r\n multiSelect: boolean;\r\n /**\r\n * Informace zda jsou vybrány všechny řádky (i ty ještě nezobrazené)\r\n */\r\n isSelectedAll: boolean;\r\n /**\r\n * Zda má být automaticky vybrán první záznam\r\n */\r\n autoSelectFirstRecord: boolean;\r\n /**\r\n * Vybere první řádek pouze pokud je načtený jen jeden záznam\r\n */\r\n autoSelectOnlyIfOneRow: boolean;\r\n /**\r\n * Informace zda je element viditelný (a tím pádem zda má cenu renderovat obsah)\r\n */\r\n readonly canValueLoad: boolean;\r\n /**\r\n * Informace zda už proběhla inicializace gridu\r\n */\r\n readonly initialized: boolean;\r\n /**\r\n * Flag whether all data has been loaded.\r\n */\r\n readonly allDataRead: boolean;\r\n /**\r\n * Řídí zda se mají vykreslovat ovládací prvky pro záznam (tři tečky)\r\n */\r\n renderControlElement: boolean;\r\n /**\r\n * Počet záznamů, které se mají načítat v jedné dávce\r\n * TODO: presunout na DataSource\r\n */\r\n fetchCount: number;\r\n /**\r\n * Počáteční index prvku pro získání dat z datasource\r\n */\r\n startIndex: number;\r\n /**\r\n * Počet přeskočených prvků při přidávání řádků do datarows\r\n */\r\n skippedRowsCount: number;\r\n // TODO: odstranit z rozhraní v https://tfs/tfs/Jadro/Jadro%20.NET/_workitems?id=16682\r\n keyPressRowIndex: number; // index radku pri pohybu sipkami up/down + shift\r\n\r\n /**\r\n * Vrátí vybrané dataKey řádků, pokud je výběr složitější vrací je pomocí podmínky jinak vrátí pole dataKeys\r\n * @param forceCondition pokud je true, vždy vrací podmínku, výchozi false\r\n */\r\n getSelectionData(forceCondition?: boolean): string | string[];\r\n\r\n /**\r\n * Vloží nový element reprezentující existující záznam a vrátí ho\r\n * @param dataRow Data nového záznamu\r\n */\r\n insertExistingRecord(dataRow: IRowData): R;\r\n\r\n /**\r\n * Vytvoří a vloží nový element reprezentující nový záznam a vrátí ho\r\n * @param dataRow Data nového záznamu\r\n */\r\n insertNewRecord(dataRow: IRowData): R;\r\n /**\r\n * Odstraní konkrétní řádek z datagridu\r\n * @param dataKey Identifikátor záznamu\r\n */\r\n removeRow(dataKey: string): Promise<void>;\r\n /**\r\n * Odstraní všechny vybrané řádky\r\n */\r\n removeSelectedRows(): void;\r\n /**\r\n * Zruší označení předaného záznmu\r\n * @param dataKey Identifikátor záznamu\r\n */\r\n deselectRow(dataKey: string): void;\r\n /**\r\n * Odstraní všechny řádky datagridu\r\n */\r\n clearDataRows(): void;\r\n /**\r\n * Označí konkrétní řádek, pokud je načtený a vrátí ho\r\n * @param dataKey Identifikátor záznamu\r\n */\r\n selectRow(dataKey: string): Promise<R>;\r\n /**\r\n * Vybere všechny řádky\r\n */\r\n selectAllRows(): void;\r\n /**\r\n * Zruší označení všech řádků\r\n * @param triggerSelectionChanged Zda se má oznámit změna výběru\r\n */\r\n clearSelectedRows(triggerSelectionChanged?: boolean): void;\r\n /**\r\n * Zjistí, zda-li dle dostupných informací má být režim {@link isSelectedAll} vypnutý - a pokud ano, tak jej vypne.\r\n * (K lednu 2021 to je stav, kdy je vybrán nejvýše jeden řádek.)\r\n */\r\n clearIsSelectedAllIfNeeded(): void;\r\n\r\n /**\r\n * Označí předchozí záznam\r\n * @param trigger Zda se má oznámit změna výběru\r\n */\r\n prevRecord(trigger?: boolean): void;\r\n /**\r\n * Označí následující záznam\r\n * @param trigger Zda se má oznámit změna výběru\r\n */\r\n nextRecord(trigger?: boolean): void;\r\n /**\r\n * Znovu načte a vykreslí data\r\n */\r\n refreshData(): Promise<void>;\r\n /**\r\n * Znovu vykreslí obsah\r\n */\r\n reRenderData(): Promise<void>;\r\n /**\r\n * Oznamuje gridu, aby si přepočítal rozměry a případně dočetl další data\r\n * @param eventData Informace o načtení nových dat\r\n */\r\n resizeGrid(eventData?: IDataSourceLoadInfo): void;\r\n\r\n /**\r\n * Obnoví dočítání dat, pokud bylo pozastaveno\r\n */\r\n resumeLoading(): void;\r\n\r\n /**\r\n * Zaregistruje tovární metodu, pomocí které se budou vytvářet elementy řádků\r\n * @param factory Tovární metoda vytvářející elementy řádku\r\n */\r\n registerDataRowFactory(factory: (dataGrid: IDataGrid<R>, data: IRowData) => R): void;\r\n\r\n /**\r\n * Umožňuje zaregistrovat vlastní tovární funkce, která se používá při vytváření ovládacích prvků pro každý řádek\r\n * @param factory Tovární funkce\r\n */\r\n registerRowControlsFactory(factory: (dataKeyFetch: () => string) => HTMLElement): void;\r\n\r\n /**\r\n * Nastaví používané filtry\r\n * @param filters Kolekce aktivních filtrů\r\n */\r\n setFilters(filters: { attrName: string; filterElement: HTMLSpanElement }[]): void;\r\n\r\n /**\r\n * Nastaví obsah pro patičku. Je zodpovědnost obsahu nastavit si správnou šířku a barvu pozadí, aby se správně překrýval obsah tabulky při scrollování.\r\n * @param content\r\n */\r\n setFooterContent(content: HTMLElement): void;\r\n\r\n /**\r\n * Nastaví, zda se má vykreslovat patička.\r\n * @param renderFooter\r\n */\r\n setRenderFooter(renderFooter: boolean): void;\r\n\r\n /**\r\n * Vrací dodatečné vlastnosti daného atributu\r\n * @param attrName Jméno atributu, jehož vlastnosti se vracejí\r\n * @returns Dodatečné vlastnosti\r\n */\r\n getExtendedProperties?(attrName: string): ExtendedPropertiesType;\r\n\r\n /**\r\n * Nastaví dodatečné vlastnosti atributů na gridu\r\n * @param extendedProperties Dodatečné vlastnosti atributů na gridu\r\n */\r\n setExtendedProperties?(extendedProperties: CaseInsensitiveMap<ExtendedPropertiesType>): void;\r\n\r\n registerEventListener(type: \"SelectionChanged\", listener: (ev: IDataGridSelectionChangedEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"SelectionChangedPreview\", listener: (ev: IAwaitableEvent<boolean>) => void, customId?: string): void;\r\n registerEventListener(type: \"SelectionAll\", listener: (ev: CustomEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"CellValueChangedPreview\", listener: (ev: ICellValueChangedPrewAwaitableEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"Attached\", listener: (ev: CustomEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"DataShown\", listener: (ev: IDataGridDataShownEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"ReadOnlyChange\", listener: (ev: IBooleanDetailValueEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"BeforeOrder\", listener: (ev: CustomEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"OrderingChanged\", listener: (ev: IColumnOrderingChangedEvent) => void, customId?: string): void;\r\n registerEventListener(type: \"ColumnPositionChanged\", listener: (ev: IColumnPositionChangedEvent) => void, customId?: string): void;\r\n registerEventListener(type: string, listener: EventListener, customId?: string): void;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport abstract class IDataGrid<R extends IDataRowElement> {\r\n private static _properties: (keyof (IDataGrid<IDataRowElement>))[] = [\"interactive\", \"dataRows\", \"selectedRows\", \"lastClickedRow\", \"objectName\", \"renderHeader\", \"headerRow\", \"headerColor\",\r\n \"dataSource\", \"columns\", \"multiSelect\", \"isSelectedAll\", \"autoSelectFirstRecord\", \"autoSelectOnlyIfOneRow\", \"canValueLoad\", \"initialized\", \"renderControlElement\",\r\n \"fetchCount\", \"keyPressRowIndex\"];\r\n private static _methods: (keyof (IDataGrid<IDataRowElement>))[] = [\"insertNewRecord\", \"removeRow\", \"removeSelectedRows\", \"deselectRow\", \"clearDataRows\", \"selectRow\", \"clearSelectedRows\",\r\n \"prevRecord\", \"nextRecord\", \"refreshData\", \"reRenderData\", \"resizeGrid\", \"resumeLoading\", \"registerDataRowFactory\", \"registerRowControlsFactory\", \"setFilters\", \"selectAllRows\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") &&\r\n instance instanceof IDisposable && instance instanceof HTMLElement;\r\n }\r\n}\r\n\r\n/**\r\n * Základní rozhraní pro DataGrid, který nepředpokládá nic o svém rozložení ani způsobu zobrazení dat, ale již může zobrazovat blok s informacemi o dostupnosti dat\r\n * @includeToDoc\r\n */\r\nexport interface IEmptyMessageDataGrid<R extends IDataRowElement> extends IDataGrid<R> {\r\n /** Element zobrazující hlášky v prázdném gridu */\r\n emptyMessage: IEmptyDataGridMessage;\r\n /** Nastavuje DataGrid do režimu QueryMode, kdy se nezobrazují žádná data dokud uživatel neprovede akci */\r\n setToQueryMode(dataLoad: Function): void;\r\n /** Ověřuje, zda je DataGrid v režimu QueryMode */\r\n isInQueryMode(): boolean;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport abstract class IEmptyMessageDataGrid<R extends IDataRowElement> {\r\n private static _properties: (keyof (IEmptyMessageDataGrid<IDataRowElement>))[] = [\"emptyMessage\"];\r\n private static _methods: (keyof (IEmptyMessageDataGrid<IDataRowElement>))[] = [\"setToQueryMode\", \"isInQueryMode\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Základní rozhraní pro seznamový DataGrid, který má řádky a sloupce\r\n * @includeToDoc\r\n */\r\nexport interface IListDataGrid<R extends IListDataRowElement> extends IEmptyMessageDataGrid<R> {\r\n /**\r\n * Událost vyvolána při změně pozice sloupce\r\n */\r\n columnPositionChanged: GlobalEvent<IListDataGrid<R>, IColumnPositionChangedEventData>;\r\n /**\r\n * Aktualní řazení dataGridu\r\n */\r\n orderBy: IOrderBy[];\r\n /**\r\n * Nastavuje kolik prvních sloupců má být ukotvených (zmražených, statických)\r\n */\r\n frozenColumnCount: number;\r\n /**\r\n * Název atributu ze kterého bude z příchozích dat načteno obarvení řádku\r\n */\r\n flagAttributeName: string;\r\n /**\r\n * Pole barev flagů, které je možno použít pro označení řádku\r\n * Pokud je undefined, jsou barvy pro flag bez omezení\r\n */\r\n allowedFlagColors: string[] | undefined;\r\n /**\r\n * Řídí zda se má zobrazovat FrameMenu\r\n */\r\n showFrameMenu: boolean;\r\n\r\n /**\r\n * Změní aktivní řazení gridu\r\n * @param column Sloupec, pro který se mění řazení\r\n * @param orderType Směr řazení\r\n * @param addToExisting Zda se má nové řazení přidat ke stávajícímu nebo ho nahradit\r\n */\r\n changeOrdering(column: Column, orderType: OrderType | null, addToExisting: boolean, additionalOrdering?: AdditionalOrdering): Promise<void>;\r\n /**\r\n * Hromadně nastaví řazení gridu\r\n * @param ordering Kolekce atributů a jejich řazení\r\n */\r\n setOrderBy(ordering: IOrderBy[], callEvent?: boolean): boolean;\r\n\r\n /**\r\n * Vybere všechny záznamy v seznamu\r\n */\r\n selectAllRows(): void;\r\n\r\n /**\r\n * Nastaví defaultní třídění\r\n * Pokud je nastaveno, tak se třídí podle definice formuláře, jinak podle dataKey (nebo ID)\r\n * @param formDefinitionOrderBy Třídění z definice formuláře\r\n * @returns Vrací true, pokud bylo třídění změněno. Pokud bylo nastavované stejné jako předchozí, vrací false.\r\n */\r\n setDefaultOrderBy(formDefinitionOrderBy: IOrderBy[]): boolean;\r\n\r\n /**\r\n * Zakáže možnost řazení kliknutím na hlavičku sloupce\r\n */\r\n disableSort(): void;\r\n\r\n /**\r\n * Nascrollování seznamu na vybraný řádek\r\n */\r\n scrollToSelectedRow(): void;\r\n\r\n /**\r\n * Přesune předaný sloupec na novou pozici\r\n * @param column Přesouvaný sloupec\r\n * @param newPosition Nová pozice\r\n */\r\n setColumnOrder(column: Column, newPosition: number, forced?: boolean): void;\r\n /**\r\n * Nastaví šířku sloupce\r\n * @param column Sloupek, kterému se mění šířka\r\n * @param width Nová šířka\r\n */\r\n setColumnWidth(column: Column, width: number): void;\r\n\r\n /**\r\n * Aktualizuje šířku prvního sloupce\r\n */\r\n resizeHeaderFirstColumn(): void;\r\n\r\n /**\r\n * Vypočítá šířku buňky s ovládacími prvky včetně marginu\r\n */\r\n computeChoiceCellWidth(includeMargin?: boolean): number;\r\n\r\n /**\r\n * Vykreslí předané sloupce\r\n * @param columns Sloupce k vykreslení\r\n * @param orderBy Řazení sloupců\r\n * @param startIndex Od kterého indexu mají být nové sloupce číslovány\r\n * @param addNoSortItem - příznak určující, zda se má dorovnávat šířka scrollbaru\r\n * @param addCells - příznak určující, zda se mají na konec každého řádku přidat buňky nových sloupců\r\n */\r\n renderColumns(columns: Column[], orderBy: IOrderBy[], startIndex?: number, addNoSortItem?: boolean, addCells?: boolean): void;\r\n\r\n /**\r\n * Odstraní z dataGridu všechny dynamické sloupce\r\n */\r\n removeDynamicColumns(): void;\r\n\r\n /**\r\n * Vygeneruje pro sloupce jejich pořadí v seznamu\r\n */\r\n generateColumnsOrder(): void;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport abstract class IListDataGrid<R extends IListDataRowElement> {\r\n private static _properties: (keyof (IListDataGrid<IListDataRowElement>))[] = [\"orderBy\", \"frozenColumnCount\", \"showFrameMenu\"];\r\n private static _methods: (keyof (IListDataGrid<IListDataRowElement>))[] = [\"changeOrdering\", \"setOrderBy\", \"setDefaultOrderBy\", \"disableSort\", \"scrollToSelectedRow\", \"setColumnOrder\", \"setColumnWidth\", \"resizeHeaderFirstColumn\", \"renderColumns\", \"selectAllRows\",\r\n \"removeDynamicColumns\", \"generateColumnsOrder\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") &&\r\n instance instanceof IDataGrid;\r\n }\r\n}\r\n\r\n/**\r\n * Základni rozhraní pro editovatelný seznamový DataGrid, kde lze editovat jednotlivé buňky\r\n * @includeToDoc\r\n */\r\nexport interface IEditableListDataGrid<R extends IEditableListDataRowElement> extends IListDataGrid<R> {\r\n /**\r\n * Událost vyvolaná při změně validnosti buňky gridu\r\n */\r\n readonly cellValidityChanged: GlobalEvent<IValidatable, { row: R; validity: IValidationResult }>;\r\n /**\r\n * Událost vyvolaná při vyhodnocení práv\r\n */\r\n readonly permissionsChanged: GlobalEvent<R, IPermissionChanges[]>;\r\n\r\n /**\r\n * Informace zda je povolena multieditace\r\n */\r\n isMultiEditAllowed: boolean;\r\n\r\n /**\r\n * Informace zda je datagrid v editačním režimu\r\n */\r\n isInEdit: boolean;\r\n /**\r\n * Zdroj dat datagridu\r\n */\r\n dataSource: IEditableDataSource;\r\n /**\r\n * Upravené, neuložené řádky\r\n */\r\n editedRows: R[];\r\n /**\r\n * Povoluje/zakazuje zobrazování řádku s počtem rozeditovaných záznamů\r\n */\r\n displayEditedCountBar: boolean;\r\n /**\r\n * Určuje zda jsou právě zobrazeny jenom rozeditované záznamy\r\n */\r\n displayedEditedRows: boolean;\r\n /**\r\n * Příznak, že se při aktualizaci dat nemají zachovávat záznamy, které jsou označené nebo změněné, pokud nejsou v nové dávce dat\r\n */\r\n dontKeepChangedRecords: boolean;\r\n /**\r\n * Callback umožňující řízení, zda je možné přepnout grid do editace\r\n */\r\n canSwitchToEditCallback?: () => boolean;\r\n}\r\n\r\n// eslint-disable-next-line unused-imports/no-unused-vars\r\nexport abstract class IEditableListDataGrid<R extends IEditableListDataRowElement> {\r\n private static _properties: (keyof (IEditableListDataGrid<IEditableListDataRowElement>))[] = [\"cellValidityChanged\", \"permissionsChanged\", \"isInEdit\", \"dataSource\", \"editedRows\", \"displayEditedCountBar\"];\r\n private static _methods: (keyof (IEditableListDataGrid<IEditableListDataRowElement>))[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") &&\r\n instance instanceof IListDataGrid;\r\n }\r\n}\r\n","import { IDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { IDataRowElement } from \"./IDataRow\";\r\n\r\nexport class Cell {\r\n protected _column: Column;\r\n protected _index: number;\r\n protected _owner: IDataGrid<IDataRowElement>;\r\n\r\n private _interactive: boolean;\r\n\r\n public get interactive(): boolean {\r\n return this._interactive;\r\n }\r\n\r\n public set interactive(v: boolean) {\r\n this._interactive = v;\r\n }\r\n\r\n public get column(): Column {\r\n return this._column;\r\n }\r\n\r\n constructor(owner: IDataGrid<IDataRowElement>, index: number, column: Column) {\r\n this._owner = owner;\r\n this._index = index;\r\n this._column = column;\r\n }\r\n\r\n public dispose(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n public init(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n public preRender(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n public render(): HTMLElement {\r\n return null;\r\n }\r\n}\r\n","import { Cell } from \"./Cell\";\r\n\r\nexport class FooterCell extends Cell {\r\n //#region Events\r\n //#endregion Events\r\n\r\n //#region Listeners\r\n //#endregion Listeners\r\n\r\n //#region Fields\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n //#endregion Properties\r\n\r\n //#region Constructors\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n //#endregion Methods\r\n}\r\n","import { IHasFrameContext } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { PopupMenu2, PopupMenuOptions } from \"UI/UI/UI/PopupMenu2\";\r\nimport { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { Code } from \"../../Global/Base/Utils/EventUtils\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { FrameContext } from \"../UI/UI/UIManagerInterfaces\";\r\nimport { Control } from \"./Control\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport class Edit extends EditableControl implements IHasFrameContext {\r\n protected override _innerElement: HTMLInputElement;\r\n protected override _multiline: boolean;\r\n protected _textAreaElement: HTMLTextAreaElement;\r\n protected _valuePopup: PopupMenu2;\r\n\r\n private _frameContext: FrameContext | undefined = undefined;\r\n\r\n //#region Properties\r\n\r\n //TODO 33753 použít mixin\r\n public get frameContext(): FrameContext | undefined {\r\n return this._frameContext;\r\n }\r\n\r\n public set frameContext(value: FrameContext | undefined) {\r\n this._frameContext = value;\r\n }\r\n\r\n public override set value(val: any) {\r\n this.controlValue = val;\r\n\r\n if (this._textAreaElement) {\r\n this._textAreaElement.value = val;\r\n }\r\n }\r\n\r\n public override get value(): any {\r\n return this.controlValue;\r\n }\r\n\r\n public set maxLength(val: number) {\r\n if (val && val > 0) {\r\n this._innerElement.maxLength = val;\r\n }\r\n }\r\n\r\n public get maxLength(): number {\r\n return this._innerElement.maxLength;\r\n }\r\n\r\n public get placeholder(): string {\r\n return this._innerElement.placeholder;\r\n }\r\n\r\n public set placeholder(value: string) {\r\n this._innerElement.placeholder = value;\r\n }\r\n\r\n public override get multiline(): boolean {\r\n return this._multiline;\r\n }\r\n\r\n public override set multiline(value: boolean) {\r\n this._multiline = value;\r\n\r\n if (value) {\r\n this._textAreaElement = createElement({ type: \"textarea\" }) as HTMLTextAreaElement;\r\n this._textAreaElement.addEventListener(\"input\", () => this.controlValue = this._textAreaElement.value);\r\n this._textAreaElement.addEventListener(\"change\", () => this.callEvent(\"change\"));\r\n this._textAreaElement.addEventListener(\"keydown\", (e) => {\r\n if (e.code === Code.Tab) {\r\n this._valuePopup?.close();\r\n }\r\n });\r\n this._textAreaElement.classList.add(\"Multiline\");\r\n }\r\n }\r\n\r\n //#region controlValue\r\n public get controlValue(): string {\r\n return this._innerElement.value;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public set controlValue(value: string) {\r\n const el = this._innerElement;\r\n\r\n if (this.maxLength > 0 && value && value.length > this.maxLength) {\r\n el.value = value.substr(0, this.maxLength);\r\n //this.alertOnLength();\r\n } else {\r\n el.value = value;\r\n }\r\n this.validate();\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"maxlength\", \"ispassword\", \"placeholder\"].concat(EditableControl.observedAttributes);\r\n }\r\n //#endregion controlValue\r\n //#endregion Properties\r\n\r\n public override focus(): void {\r\n this._innerElement.focus();\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n const tcont: string = this.textContent.trim();\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = createElement({ type: \"input\" }) as HTMLInputElement;\r\n this._innerElement.setAttribute(\"autocomplete\", \"off\");\r\n this.appendChild(this._innerElement);\r\n this.classList.add(\"Edit\");\r\n\r\n if (tcont.length > 0) {\r\n this.value = tcont;\r\n }\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this._innerElement) {\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"change\", (e) => {\r\n e.stopPropagation();\r\n this.callEvent(\"change\");\r\n });\r\n }\r\n }\r\n\r\n protected override _focusInHandler(e: Event): void {\r\n super._focusInHandler(e);\r\n if (this.multiline) {\r\n this._showValuePopup(e);\r\n }\r\n }\r\n\r\n protected override _focusOutHandler(): void {\r\n if (this.multiline && !this._textAreaElement.focus) {\r\n this._valuePopup.close();\r\n }\r\n super._focusOutHandler();\r\n }\r\n\r\n protected _showValuePopup(e: Event): void {\r\n if (!this._valuePopup) {\r\n const wrapper = createElement({ classes: \"MultilineWrapper\" });\r\n wrapper.appendChild(this._textAreaElement);\r\n this._valuePopup = new PopupMenu2({\r\n target: this._innerElement as HTMLElement,\r\n content: wrapper,\r\n showPosition: \"overlay\",\r\n width: \"content\",\r\n closeButton: true,\r\n targetShowsPopupOnFocus: true,\r\n } as PopupMenuOptions);\r\n }\r\n this._textAreaElement.style.height = \"\";\r\n this._textAreaElement.style.width = \"\";\r\n this._textAreaElement.value = this._innerElement.value;\r\n this._valuePopup.show(e);\r\n this._textAreaElement.focus();\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"maxlength\":\r\n this.maxLength = +newVal;\r\n break;\r\n case \"ispassword\":\r\n if (DataConverter.toBoolean(newVal, false)) {\r\n this._innerElement.type = \"password\";\r\n } else {\r\n this._innerElement.type = \"text\";\r\n }\r\n break;\r\n case \"placeholder\":\r\n this.placeholder = newVal;\r\n break;\r\n }\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n if (this._valuePopup) {\r\n this._valuePopup.dispose();\r\n this._valuePopup = null;\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-edit\", Edit);\r\n","import { INotifyDetached, IValidatable } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { ICellContent } from \"./ICellContent\";\r\n\r\nexport class TableCellContent implements ICellContent {\r\n private _visualElement: HTMLElement;\r\n private _dataElement: HTMLElement;\r\n private _validatableControl: IValidatable;\r\n\r\n public get visualElement(): HTMLElement {\r\n return this._visualElement;\r\n }\r\n\r\n public get dataElement(): HTMLElement {\r\n return this._dataElement;\r\n }\r\n\r\n public get validatableControl(): IValidatable {\r\n return this._validatableControl;\r\n }\r\n\r\n constructor(visualElement: HTMLElement, dataElement: HTMLElement, validatableControl: IValidatable) {\r\n this._visualElement = visualElement;\r\n this._dataElement = dataElement;\r\n this._validatableControl = validatableControl;\r\n }\r\n\r\n public detached(): void {\r\n if (this._validatableControl instanceof INotifyDetached)\r\n this._validatableControl.detached();\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { AttrValueReader } from \"../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { IValidatable } from \"../../../UI.BaseControls/ControlInterfaces\";\r\nimport { Edit } from \"../../../UI.BaseControls/Edit\";\r\nimport { EditableControl } from \"../../../UI.BaseControls/EditableControl\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { ElementUtils } from \"../../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { ICellContent } from \"../Components/ICellContent\";\r\nimport { TableCellContent } from \"../Components/TableCellContent\";\r\nimport { ITemplate } from \"./ITemplate\";\r\n\r\nexport class EditItemTemplate implements ITemplate {\r\n private _column: Column;\r\n\r\n public get parentColumn(): Column {\r\n return this._column;\r\n }\r\n\r\n public set parentColumn(v: Column) {\r\n this._column = v;\r\n }\r\n\r\n public init(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n /**\r\n * Základní renderovaci funkce, ktera se stara o zpracování HTML struktury elementu\r\n * @param column definice sloupce\r\n * @param dataSet pole dat\r\n */\r\n public render(column: Column, dataSet: IAttrValue[]): ICellContent {\r\n this.parentColumn = column;\r\n const wrapper = this._createBasicElement(column);\r\n const createdElements = this._createEditElement(this.parentColumn, dataSet, wrapper);\r\n\r\n wrapper.appendChild(createdElements.element);\r\n\r\n this.updateData(dataSet, createdElements.element);\r\n\r\n return new TableCellContent(wrapper, createdElements.element, createdElements.validatableControl);\r\n }\r\n\r\n public updateData(dataSet: IAttrValue[], item: HTMLElement): void {\r\n const data = this._getDataFromSet(dataSet);\r\n if (data === undefined)\r\n return;\r\n\r\n if (!(item instanceof EditableControl))\r\n return;\r\n\r\n // musi se odregistrovat listener a zmenit hodnota, aby nedoslo k znovuvyvloani udalosti change\r\n const changeListeners: Array<(e: Event) => void> = item.getEventListeners(\"change\");\r\n item.unregisterEventListener(\"change\");\r\n item.value = AttrValueReader.read(data);\r\n for (const l of changeListeners) {\r\n item.registerEventListener(\"change\", l);\r\n }\r\n }\r\n\r\n public updateDisplayedData(data: ITextBuilder, item: HTMLElement): void {\r\n if (item instanceof EditableControl) {\r\n item.displayedValue = data;\r\n }\r\n }\r\n\r\n /**\r\n * Vytvoří hlavní element, do kterého se bude vkládat obsah jednotlivých buněk,\r\n * @param column obsahuje definici sloupce\r\n */\r\n protected _createBasicElement(column: Column): HTMLTableDataCellElement {\r\n const item: HTMLTableDataCellElement = document.createElement(\"td\");\r\n item.setAttribute(\"data-attrName\", column.attrName);\r\n item.setAttribute(\"data-fullAttrName\", column.fullAttrName);\r\n item.setAttribute(\"data-displayformat\", column.displayFormat);\r\n item.classList.add(\"EditableCell\");\r\n item.width = column.width + \"px\";\r\n\r\n return item;\r\n }\r\n\r\n /**\r\n * Vytvoří editovatelnou komponentu, která se vloží do buňky\r\n * @param column sloupec, ve kterém je buňka\r\n * @param dataSet zobrazovaná data\r\n * @param parentItem nadřízený element\r\n */\r\n protected _createEditElement(column: Column, dataSet: IAttrValue[], parentItem: HTMLElement): { element: HTMLElement; validatableControl: IValidatable } {\r\n const editableControl = new Edit();\r\n editableControl.enabled = false; //předejde se tak možnosti editovat hodnotu dříve než to povolí práva\r\n editableControl.value = this._getDataFromSet(dataSet);\r\n\r\n // listenery je potřeba vždy po přidání do DOMu znovu zaregistrovat\r\n editableControl.afterAttach(() => {\r\n editableControl.registerEventListener(\"change\", (e) => {\r\n e.stopPropagation();\r\n ElementUtils.callEvent(parentItem, \"valuechanged\", { value: editableControl.value, column: column });\r\n });\r\n\r\n editableControl.registerEventListener(\"click\", (e: MouseEvent) => EventHelper.stopPropagation(e));\r\n });\r\n editableControl.isEditing = true;\r\n\r\n return { element: editableControl as HTMLElement, validatableControl: editableControl };\r\n }\r\n\r\n /**\r\n * Vrati spojeny a naformatovany retezec dat, zavola formatovaci funkci ze sloupce\r\n * @param data pole dat\r\n * @param column Definice sloupce\r\n */\r\n protected async _getJoinData(data: IAttrValue | IAttrValue[], column?: Column): Promise<string> {\r\n if (data instanceof Array) {\r\n if (column && column.formatValue instanceof Function) {\r\n let r = \"\";\r\n let i = 0;\r\n for (const d of data) {\r\n if (i++ > 0)\r\n r += \" | \";\r\n r += await column.formatValue(d);\r\n }\r\n return r;\r\n } else {\r\n return data.map((v) => AttrValueReader.read(v)).join(\" | \");\r\n }\r\n } else {\r\n if (column && column.formatValue instanceof Function)\r\n return await column.formatValue(data);\r\n else\r\n return data.toString();\r\n }\r\n }\r\n\r\n protected _getDataFromSet(dataSet: IAttrValue | IAttrValue[]): IAttrValue {\r\n return dataSet instanceof Array ? (dataSet.length > 0 ? dataSet[0] : null) : dataSet;\r\n }\r\n\r\n public dispose(): void {\r\n // Prazdna metoda\r\n }\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { AttrValueReader } from \"../../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { IValidatable } from \"../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { Edit } from \"../../../../UI.BaseControls/Edit\";\r\nimport { EditableControl } from \"../../../../UI.BaseControls/EditableControl\";\r\nimport { ElementUtils } from \"../../../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { Column } from \"../../Columns/Column\";\r\nimport { EditItemTemplate } from \"../EditItemTemplate\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dataGridColumn);\r\n\r\nexport class DefaultEditTemplate extends EditItemTemplate {\r\n private _editElementClass: typeof EditableControl;\r\n\r\n constructor(editElementClass: typeof EditableControl = Edit) {\r\n super();\r\n this._editElementClass = editElementClass;\r\n }\r\n\r\n protected override _createEditElement(column: Column, dataSet: IAttrValue[], parentItem: HTMLElement): { element: HTMLElement; validatableControl: IValidatable } {\r\n const editableControl = new this._editElementClass();\r\n editableControl.attrName = column.attrName;\r\n editableControl.enabled = false; //předejde se tak možnosti editovat hodnotu dříve než to povolí práva\r\n editableControl.multiline = column.multiLine;\r\n const data = this._getDataFromSet(dataSet);\r\n if (data !== undefined)\r\n editableControl.value = AttrValueReader.read(data);\r\n\r\n // listenery je potřeba vždy po přidání do DOMu znovu zaregistrovat\r\n editableControl.afterAttach(() => {\r\n editableControl.registerEventListener(\"change\", (e: CustomEvent) => {\r\n e.stopPropagation();\r\n logger.log(`Element '${(e.target as Element).tagName}' is changed`);\r\n ElementUtils.callEvent(parentItem, \"valuechanged\", { value: editableControl.value, column: this.parentColumn });\r\n });\r\n });\r\n editableControl.isEditing = true;\r\n\r\n return { element: editableControl as HTMLElement, validatableControl: editableControl };\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { ICellContent } from \"../Components/ICellContent\";\r\nimport { ITemplate } from \"./ITemplate\";\r\n\r\nexport class FooterTemplate implements ITemplate {\r\n private _column: Column;\r\n\r\n public get parentColumn(): Column {\r\n return this._column;\r\n }\r\n\r\n public set parentColumn(v: Column) {\r\n this._column = v;\r\n }\r\n\r\n public init(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n public render(): ICellContent {\r\n throw Error(\"Not implemented\");\r\n }\r\n\r\n public updateData(_data: IAttrValue[], _item: HTMLElement): void {\r\n throw Error(\"Not implemented\");\r\n }\r\n\r\n public updateDisplayedData(_data: ITextBuilder, _item: HTMLElement): void {\r\n throw Error(\"Not implemented\");\r\n }\r\n\r\n public dispose(): void {\r\n // Prazdna metoda\r\n }\r\n}\r\n","import { Event } from \"../../Global/Base/Events\";\r\nimport { ValidityStateHelper } from \"../UI.ElementarControls/Helpers/ValidityStateHelper\";\r\nimport { createElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { INotifyDetached, IValidatable, IValidationResult } from \"./ControlInterfaces\";\r\nimport { PopupMenu } from \"./PopupMenu\";\r\n/**\r\n* Komponenta umožňující provádět v zobrazovat validaci nad libovolným HTML elementem\r\n*/\r\nexport class ValidatableControl implements IValidatable, INotifyDetached {\r\n public validityChanged: Event<IValidatable, IValidationResult> = new Event<IValidatable, IValidationResult>();\r\n public isInRequiredInvalidState: boolean;\r\n public currentValidity: IValidationResult;\r\n\r\n private _element: HTMLElement;\r\n private _errorElement: HTMLElement;\r\n private _errorPopup: PopupMenu;\r\n private _mouseOnElement: boolean = false;\r\n protected _isValid: boolean = true;\r\n\r\n public get isValid(): boolean {\r\n return this._isValid;\r\n }\r\n\r\n constructor(el: HTMLElement, isEditable?: boolean) {\r\n this._element = el;\r\n this._element.classList.add(\"cellContainer\");\r\n\r\n if (isEditable) {\r\n this._element.classList.add(\"editable\");\r\n }\r\n\r\n this._element.addEventListener(\"mouseenter\", () => {\r\n this._mouseOnElement = true;\r\n this._checkAndShowErrorPopup();\r\n });\r\n\r\n this._element.addEventListener(\"mouseleave\", () => {\r\n this._mouseOnElement = false;\r\n if (this._errorPopup)\r\n this._errorPopup.setVisibility(false);\r\n });\r\n\r\n // nějak to nechce fungovat, zatím řešeno přes INotifyDetached\r\n /*const observer = new MutationObserver(mutations => {\r\n for (let mutation of mutations)\r\n if (Array.from(mutation.removedNodes).some(node => node === this._element))\r\n this.detached();\r\n });\r\n\r\n observer.observe(this._element, { childList: true });*/\r\n }\r\n\r\n public validate(): boolean {\r\n this.setValid();\r\n return true;\r\n }\r\n\r\n public setValid(): void {\r\n this._isValid = true;\r\n this._element.classList.remove(\"invalid\");\r\n\r\n if (this._errorPopup)\r\n this._errorPopup.setVisibility(false);\r\n\r\n this.validityChanged.trigger(this, { valid: true });\r\n }\r\n\r\n public setInvalid(locKey: string, message?: string): void {\r\n this._element.classList.add(\"invalid\");\r\n\r\n this._isValid = false;\r\n\r\n if (!this._errorElement) {\r\n this._errorElement = createElement({ type: \"div\", classes: [\"ErrorElement\", \"errDiv\"], css: { display: \"none\" } });\r\n this._element.appendChild(this._errorElement);\r\n }\r\n\r\n if (message)\r\n this._errorElement.textContent = message;\r\n else if (locKey)\r\n this._errorElement.textContent = ValidityStateHelper.validityLocalizer.getLocalization(locKey);\r\n else\r\n this._errorElement.textContent = ValidityStateHelper.validityLocalizer.getLocalization(\"VAL-0\");\r\n\r\n this._checkAndShowErrorPopup();\r\n\r\n this.validityChanged.trigger(this, { valid: false, invalidLocKey: locKey, invalidMessage: message });\r\n }\r\n\r\n private _checkAndShowErrorPopup(): void {\r\n if (this.isValid || !this._mouseOnElement)\r\n return;\r\n\r\n if (!this._errorPopup) {\r\n this._errorPopup = new PopupMenu(this._errorElement, false, null, null, null, null, false);\r\n }\r\n\r\n this._errorElement.style.display = \"block\";\r\n\r\n this._errorPopup.arangePopupToEditableControl(this._errorElement, this._element, false);\r\n this._errorPopup.setVisibility(true);\r\n }\r\n\r\n public detached(): void {\r\n this._mouseOnElement = false;\r\n\r\n // při odstranění z DOMu je potřeba odstranit i přidružený tooltip s validační hláškou\r\n if (this._errorPopup)\r\n this._errorPopup.close();\r\n this._errorPopup = null;\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { ValidatableControl } from \"../../../UI.BaseControls/ValidatableControl\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { ICellContent } from \"../Components/ICellContent\";\r\nimport { TableCellContent } from \"../Components/TableCellContent\";\r\nimport { ITemplate } from \"./ITemplate\";\r\n\r\nexport class ItemTemplate implements ITemplate {\r\n private _column: Column;\r\n\r\n public get parentColumn(): Column {\r\n return this._column;\r\n }\r\n\r\n public set parentColumn(v: Column) {\r\n this._column = v;\r\n }\r\n\r\n public init(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n /**\r\n * Základní renderovaci funkce, ktera se stara o zpracování HTML struktury elementu\r\n * @param column definice sloupce\r\n * @param data pole dat\r\n */\r\n public render(column: Column, dataSet: IAttrValue[]): ICellContent {\r\n this.parentColumn = column;\r\n\r\n const wrapper = this._createBasicElement(column);\r\n let contentElement = this._createContentElement();\r\n if (contentElement) {\r\n wrapper.appendChild(contentElement);\r\n } else {\r\n contentElement = wrapper;\r\n }\r\n\r\n this.updateData(dataSet, contentElement);\r\n\r\n return this._createCellContentContainer(wrapper, contentElement);\r\n }\r\n\r\n /**\r\n * Vytvoří hlavní element, do kterého se bude vkládat obsah jednotlivých buněk,\r\n * Pokud je null, tak se obsah vloží přímo do buňky tabulky\r\n */\r\n protected _createContentElement(): HTMLElement {\r\n return document.createElement(\"span\");\r\n }\r\n\r\n /**\r\n * Vytvoří data, která jsou použita jako výsledek Render metody,\r\n * obsahují element určený k vložení do DOMu, element určený pro aktualizaci dat a element pro validaci\r\n * @param visualElement element určený k vložení do DOMu\r\n * @param dataElement element určený pro aktualizaci dat\r\n */\r\n protected _createCellContentContainer(visualElement: HTMLElement, dataElement: HTMLElement): ICellContent {\r\n return new TableCellContent(visualElement, dataElement, new ValidatableControl(visualElement, this.parentColumn.isEditable));\r\n }\r\n\r\n public async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n const formatedData = await this._getJoinData(dataSet, this.parentColumn);\r\n item.textContent = formatedData;\r\n item.title = formatedData;\r\n item.dispatchEvent(new Event(\"updated\"));\r\n }\r\n\r\n public updateDisplayedData(data: ITextBuilder, item: HTMLElement): void {\r\n item.textContent = data ? data.toString() : \"\";\r\n }\r\n\r\n /**\r\n * Vytvari základní html element pro vlozeni dat\r\n * @param column obsahuje definici sloupce\r\n */\r\n protected _createBasicElement(column: Column): HTMLTableDataCellElement {\r\n const item: HTMLTableDataCellElement = document.createElement(\"td\");\r\n\r\n if (!column.withoutAttribute) {\r\n item.setAttribute(\"data-attrName\", column.attrName);\r\n item.setAttribute(\"data-fullAttrName\", column.fullAttrName);\r\n }\r\n\r\n if (column.width)\r\n item.width = column.width + \"px\";\r\n else\r\n item.width = \"100%\";\r\n\r\n item.setAttribute(\"data-id\", column.id); // Se používá mimo jiné u sloupců bez atributu při změně jejich pořadí.\r\n\r\n return item;\r\n }\r\n\r\n /**\r\n * Vrati spojeny a naformatovany retezec dat, zavola formatovaci funkci ze sloupce\r\n * @param data pole dat\r\n * @param column Definice sloupce\r\n */\r\n protected async _getJoinData(data: IAttrValue[] | IAttrValue, column?: Column): Promise<string> {\r\n if (data == null)\r\n return \"\";\r\n\r\n if (data instanceof Array) {\r\n if (column && column.formatValue instanceof Function) {\r\n let r = \"\";\r\n let i = 0;\r\n for (const d of data) {\r\n if (d instanceof Array) // pokud je 'd' pole AttrValues, tak by se vracela v 'r' hodnota jen pro první prvek pole, ale ta by nemusela odpovídat skutečné hodnotě buňky\r\n return \"\";\r\n if (i++ > 0)\r\n r += \" | \";\r\n r += await column.formatValue(d);\r\n }\r\n return r;\r\n } else {\r\n return data.join(\" | \");\r\n }\r\n } else {\r\n if (column && column.formatValue instanceof Function)\r\n return await column.formatValue(data);\r\n else\r\n return data.toString();\r\n }\r\n }\r\n\r\n protected _getDataFromSet(dataSet: IAttrValue[]): IAttrValue {\r\n return dataSet instanceof Array ? (dataSet.length > 0 ? dataSet[0] : null) : dataSet;\r\n }\r\n\r\n public dispose(): void {\r\n // Prazdna metoda\r\n }\r\n}\r\n","import type { Chart, ChartDataset, ChartOptions } from \"chart.js\";\r\n\r\nimport { InvalidOperationException } from \"../../Global/Base/Exceptions\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\n/**\r\n * Komponenta zobrazující graf pomocí knihovny ChartJS\r\n * https://www.chartjs.org/docs/latest/\r\n * @includeToDoc\r\n */\r\nexport class ChartElement extends HTMLElement {\r\n private _context: CanvasRenderingContext2D | null = null;\r\n private _chart: Chart | undefined = undefined;\r\n private _datasets: ChartDataset[] = [];\r\n private _labels: (string | string[])[] = [];\r\n private _type: ChartType = ChartType.bar;\r\n private _chartOption: ChartOptions = {};\r\n private _chartModule?: Promise<typeof Chart>;\r\n\r\n /**\r\n * Nastaveni dat\r\n */\r\n public get datasets(): ChartDataset[] {\r\n return this._datasets;\r\n }\r\n public set datasets(datasets: ChartDataset[]) {\r\n this._datasets = datasets;\r\n }\r\n\r\n /**\r\n * nastavení popisků\r\n * */\r\n public get labels(): Array<string | string[]> {\r\n return this._labels;\r\n }\r\n public set labels(labels: Array<string | string[]>) {\r\n this._labels = labels;\r\n }\r\n\r\n /**\r\n * Typ grafu\r\n * */\r\n public get type(): ChartType {\r\n return this._type;\r\n }\r\n public set type(type: ChartType) {\r\n this._type = type;\r\n }\r\n\r\n /**\r\n * možnosti zobrazení grafu\r\n * */\r\n public get chartOption(): ChartOptions {\r\n return this._chartOption;\r\n }\r\n public set chartOption(option: ChartOptions) {\r\n this._chartOption = option;\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected async _constructor(): Promise<void> {\r\n // @ts-ignore\r\n this._chartModule = import(\"chart.js\").then((module) => module.default);\r\n\r\n const canvas = createElement({ type: \"canvas\" }) as HTMLCanvasElement;\r\n this._context = canvas.getContext(\"2d\");\r\n this.appendChild(canvas);\r\n }\r\n\r\n protected connectedCallback(): void {\r\n this.showChart();\r\n }\r\n\r\n protected disconnectedCallback(): void {\r\n this.clear();\r\n }\r\n\r\n public clear(): void {\r\n if (this._chart) {\r\n try {\r\n this._chart.destroy();\r\n } catch {\r\n //graf mohl být vytvořen, ale z nějakého důvodu nebyl vykreslen, tak destroy spadne do chyby\r\n }\r\n }\r\n }\r\n\r\n public async showChart(): Promise<void> {\r\n if (!this._chartModule) {\r\n throw new InvalidOperationException(\"Chart.js dynamic module wasn't loaded!\");\r\n } else if (!this._context) {\r\n throw new InvalidOperationException(\"Cannot create chart. Context is not defined.\");\r\n }\r\n\r\n //pokud neni jedna z hodnot nastavena, nemá vykreslení význam\r\n if (!this._labels || this._labels.length === 0 || !this._datasets || this._datasets.length === 0) {\r\n return;\r\n }\r\n\r\n const Chart = await this._chartModule;\r\n\r\n this.clear();\r\n this._chart = new Chart(this._context, {\r\n type: this._type,\r\n data: {\r\n labels: this._labels,\r\n datasets: this._datasets,\r\n },\r\n options: this._chartOption,\r\n });\r\n }\r\n}\r\n\r\nexport enum ChartType {\r\n bar = \"bar\",\r\n bubble = \"bubble\",\r\n doughnut = \"doughnut\",\r\n line = \"line\",\r\n pie = \"pie\",\r\n polarArea = \"polarArea\",\r\n radar = \"radar\",\r\n scatter = \"scatter\",\r\n}\r\n\r\nregisterCustomElement(\"tsc-ChartElement\", ChartElement);\r\n","export class CheckBoxUtils {\r\n /**\r\n * Nastaví na element typu CheckBox odpovídající stav podle vstupu\r\n * @param element Input typu CheckBox\r\n * @param value Hodnota, která má být zpracována a nastavena\r\n */\r\n public static setCheckValue(element: HTMLInputElement, value: any): void {\r\n switch (value) {\r\n case true:\r\n case \"true\":\r\n case 1:\r\n element.setAttribute(\"value\", \"true\");\r\n element.indeterminate = false;\r\n element.checked = true;\r\n break;\r\n\r\n // checked na unchecked\r\n case false:\r\n case \"false\":\r\n case 0:\r\n element.setAttribute(\"value\", \"false\");\r\n element.indeterminate = false;\r\n element.checked = false;\r\n break;\r\n\r\n default:\r\n element.setAttribute(\"value\", \"\");\r\n element.indeterminate = true;\r\n break;\r\n }\r\n }\r\n}\r\n\r\n//GlobalContext.registerType(BooleanUtils);\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { AttrValueReader } from \"OW.Remoting/Remoting/AttrValueReader\";\r\nimport { CheckBoxUtils } from \"../../../../UI.ElementarControls/Helpers/CheckBoxUtils\";\r\nimport { ItemTemplate } from \"../ItemTemplate\";\r\n\r\nexport class BooleanTemplate extends ItemTemplate {\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n item.innerHTML = \"\";\r\n item.appendChild(this._createCheckboxElement(dataSet));\r\n }\r\n\r\n private _createCheckboxElement(dataSet?: IAttrValue[]): HTMLDivElement {\r\n const cdiv = document.createElement(\"div\");\r\n const cbox = document.createElement(\"input\");\r\n const clabel = document.createElement(\"label\");\r\n\r\n cbox.type = \"checkbox\";\r\n cdiv.classList.add(\"CheckBox\", \"checkboxDiv\", \"checkboxDivNotDisplayed\");\r\n\r\n cdiv.appendChild(cbox);\r\n cdiv.appendChild(clabel);\r\n\r\n const data = this._getDataFromSet(dataSet);\r\n CheckBoxUtils.setCheckValue(cbox, AttrValueReader.read(data));\r\n\r\n return cdiv;\r\n }\r\n}\r\n","import { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DefaultEditTemplate } from \"../Templates/DataTypeEditTemplates/DefaultEditTemplate\";\r\nimport { BooleanTemplate } from \"../Templates/DataTypeTemplates/BooleanTemplate\";\r\nimport { Column } from \"./Column\";\r\n\r\nexport class BooleanColumn extends Column {\r\n //#region Fields\r\n //#endregion\r\n\r\n //#region Methods\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.itemTemplate = new BooleanTemplate();\r\n this.editItemTemplate = new DefaultEditTemplate();\r\n }\r\n //#endregion HTMLElement\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-booleancolumn\", BooleanColumn);\r\n","import { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"./Control\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport class ColorEdit extends EditableControl {\r\n protected override _innerElement: HTMLInputElement;\r\n\r\n private _originalValue: string;\r\n private _swatchClickListener: EventListener;\r\n\r\n //#region Properties\r\n public override set value(val: any) {\r\n this.controlValue = val;\r\n }\r\n\r\n public override get value(): any {\r\n return this.controlValue;\r\n }\r\n\r\n public get controlValue(): string {\r\n return this._originalValue;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public set controlValue(value: string) {\r\n if (value) {\r\n this._innerElement.value = value;\r\n } else {\r\n this._innerElement.value = \"#000000\"; // Defaultní hodnota dle standardu. Nepoužívá se null, aby se v konzoli nezobrazovaly chyby\r\n }\r\n\r\n this._originalValue = value;\r\n\r\n this.classList.toggle(\"Empty\", (value == null)); // Umožňuje zobrazit transparentní prvek u prázdné hodnoty\r\n }\r\n\r\n //#endregion Properties\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = createElement({ type: \"input\", attrs: { \"type\": \"color\" } }) as HTMLInputElement;\r\n\r\n this.classList.add(\"ColorEdit\", \"Empty\");\r\n this.appendChild(this._innerElement);\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this._innerElement) {\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"change\", (e) => {\r\n e.stopPropagation();\r\n\r\n this.controlValue = this._innerElement.value;\r\n\r\n this.callEvent(\"change\");\r\n });\r\n\r\n this.addEventListener(\"click\", this._swatchClickListener = (_event) => {\r\n if (this._originalValue == null) {\r\n // Získáme aktuální barvu EC podle tématu a tu nastavíme jako default\r\n this.controlValue = DataConverter.rgbToHex(window.getComputedStyle(this).backgroundColor);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //destruktor\r\n public override dispose(): void {\r\n this.removeEventListener(\"click\", this._swatchClickListener);\r\n\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-coloredit\", ColorEdit);\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { ItemTemplate } from \"../ItemTemplate\";\r\n\r\nexport class ColorTemplate extends ItemTemplate {\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n item.innerHTML = \"\";\r\n item.classList.add(\"color\");\r\n\r\n const data = this._getDataFromSet(dataSet);\r\n\r\n if (data) {\r\n item.style.backgroundColor = data.valueOf();\r\n } else {\r\n item.style.removeProperty(\"background-color\");\r\n }\r\n }\r\n}\r\n","import { ColorEdit } from \"../../../UI.BaseControls/ColorEdit\";\r\nimport { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DefaultEditTemplate } from \"../Templates/DataTypeEditTemplates/DefaultEditTemplate\";\r\nimport { ColorTemplate } from \"../Templates/DataTypeTemplates/ColorTemplate\";\r\nimport { Column } from \"./Column\";\r\n\r\nexport class ColorColumn extends Column {\r\n //#region Fields\r\n //#endregion\r\n\r\n //#region Methods\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.itemTemplate = new ColorTemplate();\r\n this.editItemTemplate = new DefaultEditTemplate(ColorEdit);\r\n }\r\n //#endregion HTMLElement\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-colorcolumn\", ColorColumn);\r\n","import { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { DateTimeFormatObject, DateUtils } from \"../../Global/Base/Utils/DateUtils\";\r\nimport { CultureInfo } from \"../../Global/Dom/CultureInfo\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport class DateEdit extends EditableControl {\r\n //#region Fields\r\n private _placeholderLocKey: string;\r\n /** pretypovani InnerElementu z predka. InnerElement je element zobrazeny uzivateli, fakeInput je pomocny input v pozadi pro zajisteni spravne funkcionality. */\r\n protected override _innerElement: HTMLInputElement;\r\n /** fakeInput - bud je to skryty nativni date input, pomoci ktereho se zobrazuje nativni kalendar,\r\n * nebo je to skryty input typu text, na ktery se navaze jQuery Datepicker. Picker totiz omezuje zadavane znaky jen na dany format data, ale pozadavek je, aby mohlo byt oddelovacem cokoliv. */\r\n protected _fakeInput: HTMLInputElement;\r\n protected _calPicker: HTMLElement;\r\n\r\n //#region Localizations\r\n //#endregion Localizations\r\n /**Pomocná proměnná, pokud proběhne inicializace statických prvků, nastaví se true*/\r\n private static _initializedDate = false;\r\n private static _fmtFunc: DateTimeFormatObject;\r\n // @ts-ignore // 23.4.2018 nečteno, ale prozatím ponecháno\r\n private static culture: string; // jmeno kultury\r\n private static _fmtRe = /(d+|m+|y+)([^dmy]+)(d+|m+|y+)([^dmy]+)(d+|m+|y+)([^dmy]*)/i; // regex ktery z ShortDate formatu izoluje oddelovace + format dnu/mesicu (d nebo dd)\r\n private static _dateinputRe = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/; // regex pro input typu date, ten vraci vzdy ve formatu yyyy-mm-dd\r\n // regexy, vraci 6 skupin - 1. je den, 2. a 3. je mesic a den (v lib. poradi), 4. 5. a 6. jsou den, mesic a rok podle poradi v aktualni kulture\r\n private static _noSepDmy = /^(?:(\\d{1,2})|(\\d{2})(\\d{2})|(\\d{2})(\\d{2})(\\d{2}|\\d{4}))$/; // d | dm | dmy\r\n private static _noSepDym = /^(?:(\\d{1,2})|(\\d{2})(\\d{2})|(\\d{2})(\\d{2}|\\d{4})(\\d{2}))$/; // d | dm | dym\r\n private static _noSepYmd = /^(?:(\\d{1,2})|(\\d{2})(\\d{2})|(\\d{2}|\\d{4})(\\d{2})(\\d{2}))$/; // d | dm | ymd\r\n private static _sepDmy = /^(?:(\\d{1,2})[^\\d]*|(\\d{1,2})[^\\d]+(\\d{1,2})[^\\d]*|(\\d{1,2})[^\\d]+(\\d{1,2})[^\\d]+(\\d{2}|\\d{4})[^\\d]*)$/; // d. | d.m. | d.m.y.\r\n private static _sepDym = /^(?:(\\d{1,2})[^\\d]*|(\\d{1,2})[^\\d]+(\\d{1,2})[^\\d]*|(\\d{1,2})[^\\d]+(\\d{2}|\\d{4})[^\\d]+(\\d{1,2})[^\\d]*)$/; // d. | d.m. | d.y.m.\r\n private static _sepYmd = /^(?:(\\d{1,2})[^\\d]*|(\\d{1,2})[^\\d]+(\\d{1,2})[^\\d]*|(\\d{2}|\\d{4})[^\\d]+(\\d{1,2})[^\\d]+(\\d{1,2})[^\\d]*)$/; // d. | d.m. | y.m.d.\r\n\r\n private static _fmtOrder: string; // TODO: udelat z toho static? (+ prislusne metody)\r\n\r\n //Listeners\r\n private _listenerFakeChange: EventListener;\r\n private _listenerFakeFocus: EventListener;\r\n private _listenerPickerClick: EventListener;\r\n private _listenerChange: EventListener;\r\n\r\n protected _originalValue: Date;\r\n //#endregion Fields\r\n\r\n public override set value(val: any) {\r\n let finalValue: any = val;\r\n if (val instanceof Date) {\r\n finalValue = val;\r\n } else if (typeof val === \"string\") {\r\n const dateVal = new Date(val);\r\n if (!isNaN(dateVal.getTime()))\r\n finalValue = dateVal;\r\n }\r\n\r\n this.controlValue = finalValue;\r\n }\r\n\r\n public override get value(): any {\r\n //return this.originalValue ? this.originalValue.toLocaleDateString() : \"\";\r\n return this.controlValue;\r\n }\r\n\r\n public get controlValue(): Date /*Date*/ {\r\n if (!this._fakeInput.value)\r\n return null;\r\n const val = DateEdit._dateinputRe.exec(this._fakeInput.value);\r\n if (!val || !DateEdit.checkDate(+val[1], +val[2], +val[3]))\r\n return null;\r\n\r\n let result = new Date(+val[1], (+val[2]) - 1, +val[3], 0, 0, 0);\r\n if (this._originalValue)\r\n result = DateUtils.unionDateAndTime(result, this._originalValue);\r\n return result;\r\n }\r\n\r\n /**vstupuje sem OW.Remoting.OWDate nebo js Date, pokud je pouzito pro typ DateTime z DB/AS*/\r\n public set controlValue(val: Date /*OW.Remoting.OWDate nebo js Date */) {\r\n if (val !== undefined && val !== null && val instanceof Date) {\r\n this._originalValue = val;\r\n this._formatDateAndSetValues(val.getFullYear(), (val.getMonth() + 1), val.getDate(), false);\r\n } else {\r\n this._originalValue = null;\r\n this._fakeInput.value = \"\";\r\n this._innerElement.value = \"\";\r\n this.setValid();\r\n }\r\n }\r\n\r\n /** Vratí hodnotu, kterou reálně zadal uživatel bez ohledu na to, zda je validní či nikoli */\r\n public get userValue(): string {\r\n return this._innerElement.value;\r\n }\r\n\r\n public get placeholderLocKey(): string {\r\n return this._placeholderLocKey;\r\n }\r\n\r\n public set placeholderLocKey(value: string) {\r\n this._placeholderLocKey = value;\r\n if (this._innerElement) {\r\n if (value) {\r\n Localization.addLocTxtData(this._innerElement, this.placeholderLocKey, \"placeholder\");\r\n return;\r\n }\r\n Localization.remLocData(this._innerElement);\r\n }\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"culture\"].concat(EditableControl.observedAttributes);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.initStaticFields();\r\n // komponenta si registruje vlastni listener (this.InnerElement.addEventListener('change', ...)\r\n //this.shadowRoot = (this as any).createShadowRoot();\r\n this.classList.add(\"DateEdit\", \"DatesEdits\", \"native\");\r\n this._innerElement = createElement({ type: \"input\", attrs: { \"type\": \"tel\" } }) as HTMLInputElement;\r\n this._innerElement.setAttribute(\"autocomplete\", \"off\");\r\n\r\n this._fakeInput = DateEdit.createFakeInput();\r\n\r\n // TODO: (Firefox 115ESR) Odstranit až bude námi nastavena minimální podporovaná verze Firefoxu 115 ESR nebo vyšší\r\n // V současné chvíli používáme minimální verzi 102ESR, ale Firefox od verze 109 sjednotil vykresleni DateEditu\r\n // s ostatnima prohlizecama, takze az bude nova minimalni podporovana verze 115ESR a dal, je to mozne zrusit\r\n if (document.documentElement.classList.contains(\"firefox\")) {\r\n const fVersion = parseInt(navigator.userAgent.replace(/.*Firefox\\/([0-9].+)$/, \"$1\"));\r\n if (fVersion < 109) {\r\n this.classList.add(\"firefox-version-less-than-108\");\r\n }\r\n }\r\n\r\n this._calPicker = this._createValuePicker();\r\n\r\n DateEdit._fmtFunc = DateUtils.getDateToStringFunction(\"d\", this.culture);\r\n if (this.culture) {\r\n this.controlValue = this.controlValue;\r\n }\r\n this.composeElements();\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n this._setListeners();\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n this.dispose();\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"culture\":\r\n this._culture = newVal;\r\n DateEdit._fmtFunc = DateUtils.getDateToStringFunction(\"d\", newVal);\r\n this.controlValue = this.controlValue;\r\n\r\n break;\r\n }\r\n }\r\n\r\n public initStaticFields(): void {\r\n if (DateEdit._initializedDate)\r\n return;\r\n DateEdit._initializedDate = true;\r\n\r\n DateEdit._fmtFunc = DateUtils.getDateToStringFunction(\"d\");\r\n DateEdit.culture = CultureInfo.getCultureInfo().name;\r\n\r\n DateEdit.initFmtOrder(); // nastaveni aktualniho formatu data\r\n }\r\n //#region Methods\r\n\r\n public override validate(): boolean {\r\n if (this._innerElement.value) {\r\n this.parseAndValidateUserInput(false);\r\n } else if (!this._fakeInput.value) {\r\n this.setValid();\r\n } else {\r\n const val = DateEdit._dateinputRe.exec(this._fakeInput.value);\r\n const valid = !!val && DateEdit.checkDate(+val[1], +val[2], +val[3]);\r\n if (valid)\r\n this.setValid();\r\n else\r\n this._showError();\r\n }\r\n return this.isValid;\r\n }\r\n\r\n //#region Must implement from DateEditParents\r\n public static createFakeInput(): HTMLInputElement {\r\n return createElement({ type: \"input\", classes: \"fakeinput\", attrs: { \"tabindex\": \"-1\" } }) as HTMLInputElement;\r\n }\r\n\r\n public setOtherProperties(): void {\r\n this._innerElement.type = \"tel\";\r\n this._innerElement.maxLength = 20;\r\n }\r\n\r\n public composeElements(): void {\r\n this._fakeInput.type = \"date\";\r\n this.appendChild(this._fakeInput);\r\n this.appendChild(document.createElement(\"br\")); // TODO - kvuli errDiv? - zjistit\r\n this.appendChild(this._innerElement);\r\n this.appendChild(this._calPicker);\r\n }\r\n //#endregion Inherited from DateEditParents\r\n\r\n /**nastavi format data podle aktualni lokalizace*/\r\n public static initFmtOrder(): void {\r\n const res = DateEdit._fmtRe.exec(CultureInfo.getStandardDateTimeFormat(\"d\"));\r\n DateEdit._fmtOrder = \"\";\r\n for (let i = 1; i < 6; i += 2) {\r\n if (/d/i.test(res[i])) {\r\n DateEdit._fmtOrder += \"d\";\r\n } else if (/m/i.test(res[i])) {\r\n DateEdit._fmtOrder += \"m\";\r\n } else if (/y/i.test(res[i])) {\r\n DateEdit._fmtOrder += \"y\";\r\n }\r\n }\r\n }\r\n\r\n protected _listenerFocus(): void {\r\n if (this.enabled && this.validate())\r\n this._innerElement.value = DateEdit._formatDate(this._fakeInput.value); // zformatuje v aktualni kulture\r\n }\r\n\r\n protected _setListeners(): void {\r\n this._fakeInput.addEventListener(\"change\", this._listenerFakeChange = () => {\r\n this._innerElement.value = DateEdit._formatDate(this._fakeInput.value);\r\n this.setValid(); // po nastaveni z naseptavace se nastavi jako validni\r\n });\r\n\r\n this._fakeInput.addEventListener(\"focusin\", this._listenerFakeFocus = (e) => {\r\n e.stopPropagation();\r\n });\r\n\r\n this.addEventListener(\"focusin\", this._listenerFocus.bind(this));\r\n\r\n this._innerElement.addEventListener(\"change\", this._listenerChange = () => {\r\n this.parseAndValidateUserInput(true);\r\n });\r\n\r\n this._calPicker.addEventListener(\"click\", this._listenerPickerClick = () => {\r\n (this._fakeInput as any).showPicker();\r\n });\r\n }\r\n\r\n // ziska datum z uzivatelem psaneho textu, zvaliduje, zformatuje\r\n public parseAndValidateUserInput(triggerEvent: boolean): void {\r\n let val = this._innerElement.value;\r\n if (!val) {\r\n this._fakeInput.value = this._innerElement.value = \"\";\r\n this.setValid();\r\n //this.ValueChanged.trigger(this, { Sender: this });\r\n this.callEvent(\"change\", undefined, false, true);\r\n return;\r\n }\r\n\r\n val = val.replace(/\\u200E/g, \"\"); //Unicode Character 'LEFT-TO-RIGHT MARK' - je vlozen pred kazdym cislem po zavolanim Date.toLocaleString\r\n\r\n const rexes = DateEdit._getRexes(); // ziskani regexu\r\n const res: RegExpExecArray = rexes.noSep.exec(val) || rexes.sep.exec(val); // zkontrolovani data\r\n\r\n if (val && !res) { // nevalidni format data\r\n this._showError();\r\n return;\r\n }\r\n\r\n if (res[1]) { // zadan den\r\n const today = new Date();\r\n this._formatDateAndSetValues(today.getFullYear(), today.getMonth() + 1, +res[1], triggerEvent);\r\n } else if (res[2]) { // zadan den a mesic\r\n const today = new Date();\r\n const dayBeforeMon = DateEdit._fmtOrder.indexOf(\"d\") < DateEdit._fmtOrder.indexOf(\"m\");\r\n if (dayBeforeMon) { // den pred mesicem\r\n this._formatDateAndSetValues(today.getFullYear(), +res[3], +res[2], triggerEvent);\r\n } else { // mesic pred dnem\r\n this._formatDateAndSetValues(today.getFullYear(), +res[2], +res[3], triggerEvent);\r\n }\r\n } else if (res[4]) { // zadan rok, mesic, den\r\n const y = DateEdit._fmtOrder.indexOf(\"y\");\r\n const m = DateEdit._fmtOrder.indexOf(\"m\");\r\n const d = DateEdit._fmtOrder.indexOf(\"d\");\r\n const yr = res[y + 4].length === 2 ? \"20\" + res[y + 4] : res[y + 4]; // doplneni roku o 20\r\n this._formatDateAndSetValues(+yr, +res[m + 4], +res[d + 4], triggerEvent);\r\n }\r\n }\r\n\r\n // @ts-ignore // 23.4.2018 nevyužito, ale prozatím ponecháno\r\n private _parseValue(val: string): Date {\r\n const f_getDate = (year: number, mon: number, day: number): Date => {\r\n if (!DateEdit.checkDate(year, mon, day)) {\r\n return null;\r\n }\r\n\r\n return new Date(year, mon, day);\r\n };\r\n\r\n val = val.replace(/\\u200E/g, \"\"); //Unicode Character 'LEFT-TO-RIGHT MARK' - je vlozen pred kazdym cislem po zavolanim Date.toLocaleString\r\n\r\n const rexes = DateEdit._getRexes(); // ziskani regexu\r\n const res: RegExpExecArray = rexes.noSep.exec(val) || rexes.sep.exec(val); // zkontrolovani data\r\n\r\n if (val && !res) { // nevalidni format data\r\n return null;\r\n }\r\n\r\n if (res[1]) { // zadan den\r\n const today = new Date();\r\n return f_getDate(today.getFullYear(), today.getMonth() + 1, +res[1]);\r\n } else if (res[2]) { // zadan den a mesic\r\n const today = new Date();\r\n const dayBeforeMon = DateEdit._fmtOrder.indexOf(\"d\") < DateEdit._fmtOrder.indexOf(\"m\");\r\n if (dayBeforeMon) { // den pred mesicem\r\n return f_getDate(today.getFullYear(), +res[3], +res[2]);\r\n } else { // mesic pred dnem\r\n return f_getDate(today.getFullYear(), +res[2], +res[3]);\r\n }\r\n } else if (res[4]) { // zadan rok, mesic, den\r\n const y = DateEdit._fmtOrder.indexOf(\"y\");\r\n const m = DateEdit._fmtOrder.indexOf(\"m\");\r\n const d = DateEdit._fmtOrder.indexOf(\"d\");\r\n const yr = res[y + 4].length === 2 ? \"20\" + res[y + 4] : res[y + 4]; // doplneni roku o 20\r\n return f_getDate(+yr, +res[m + 4], +res[d + 4]);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // vrati regexy pro ziskani data\r\n private static _getRexes(): { noSep: RegExp; sep: RegExp } {\r\n if (DateEdit._fmtOrder.indexOf(\"y\") === 2)\r\n return { noSep: DateEdit._noSepDmy, sep: DateEdit._sepDmy };\r\n else if (DateEdit._fmtOrder.indexOf(\"y\") === 1)\r\n return { noSep: DateEdit._noSepDym, sep: DateEdit._sepDym };\r\n else\r\n return { noSep: DateEdit._noSepYmd, sep: DateEdit._sepYmd };\r\n }\r\n\r\n // propojeni mezi datepickerem/nativnim kalendarem a tel inputem. Bere format stejny jako fce formatDate\r\n private _formatDateAndSetValues(year: number, mon: number, day: number, userChange: boolean): boolean {\r\n if (!DateEdit.checkDate(year, mon, day)) {\r\n this._showError();\r\n return false;\r\n }\r\n\r\n const val = (year < 1000 ? \"0\" : \"\") + year + \"-\" + DateEdit._addZero(mon + \"\") + \"-\" + DateEdit._addZero(day + \"\");\r\n this._fakeInput.value = val;\r\n this._innerElement.value = DateEdit._formatDate(val);\r\n\r\n this.setValid();\r\n\r\n if (userChange)\r\n this.callEvent(\"change\", undefined, false, true);\r\n // this.ValueChanged.trigger(this, { Sender: this });\r\n\r\n return true;\r\n }\r\n\r\n // formatuje retezec (vzdy ve forme yyyy-m(m)-d(d) (napr. 2014-02-25 n. 2014-2-5))\r\n // vraci jej zformatovany podle aktualni kultury nebo prazdny, pokud format neni rozpoznan\r\n protected static _formatDate(date: string): string {\r\n if (!date)\r\n return \"\";\r\n\r\n return DateEdit._fmtFunc.format(new Date(date));\r\n }\r\n\r\n // zkontroluje, jestli zadany den/mesic/rok tvori platne datum\r\n public static checkDate(year: number, mon: number, day: number): boolean {\r\n const date = new Date(year, mon - 1, day);\r\n return date.getFullYear() === year && date.getMonth() === mon - 1 && date.getDate() === day;\r\n }\r\n\r\n // prida pocatecni nulu ke dni/mesici\r\n private static _addZero(val: string): string {\r\n if (val.length === 1)\r\n return \"0\" + val;\r\n return val;\r\n }\r\n\r\n private _showError(): void {\r\n this.setInvalid(\"VAL-102\"); //Nemohli jsme rozpoznat zadane datum.\r\n this._fakeInput.value = \"\"; // kvuli GetControlValue() aby vratilo null\r\n }\r\n\r\n public setInnerElementID(id: string): void {\r\n this._innerElement.id = id;\r\n }\r\n\r\n protected override _createValuePicker(): HTMLElement {\r\n const picker = super._createValuePicker();\r\n Localization.addLocData(picker, \"GUI-798917\", [\"title\", \"ariaLabel\"]); // Výběr z kalendáře\r\n return picker;\r\n }\r\n //#endregion Methods\r\n\r\n //destruktor\r\n public override dispose(): void {\r\n if (this._fakeInput) {\r\n this._fakeInput.removeEventListener(\"change\", this._listenerFakeChange);\r\n this._fakeInput.removeEventListener(\"focusin\", this._listenerFakeFocus);\r\n }\r\n\r\n if (this._innerElement) {\r\n this._innerElement.removeEventListener(\"focus\", this._listenerFocus);\r\n this._innerElement.removeEventListener(\"change\", this._listenerChange);\r\n }\r\n\r\n if (this._calPicker) {\r\n this._calPicker.removeEventListener(\"click\", this._listenerPickerClick);\r\n }\r\n\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-dateedit\", DateEdit);\r\n","/**\r\n * @includeToDoc\r\n */\r\nexport interface IValidatableControl {\r\n validationMessage: string;\r\n validity: ValidityState;\r\n checkValidity(): boolean;\r\n setCustomValidity(error: string): void;\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n */\r\nexport interface IInputControl extends IValidatableControl {\r\n value: string;\r\n valueAsNumber: number;\r\n}\r\n","import { NumberUtils } from \"../../Global/Base/Utils/NumberUtils\";\r\nimport { Globalization } from \"../../Global/Dom/Globalization\";\r\nimport { IValidatableControl } from \"./ControlInterfaces\";\r\nimport { ElementUtils } from \"./Helpers/ElementUtils\";\r\nimport { ValidateErrors, ValidatingDataType } from \"./Helpers/ValidityInterfaces\";\r\nimport { ValidityStateHelper } from \"./Helpers/ValidityStateHelper\";\r\nimport { registerCustomElement } from \"./Utils/CustomElementUtils\";\r\n/**\r\n * @includeToDoc\r\n */\r\nexport class NumEditBase extends HTMLInputElement implements IValidatableControl {\r\n /** Povolené znaky při zápisu celého čísla. */\r\n private static _alowedCharsWholeNumbers: Set<number>;\r\n /** Povolené znaky při zápisu desetinného čísla. */\r\n private static _alowedCharsDecimal: Set<number>;\r\n private static _requiredPatternWholeNumbers: RegExp;\r\n private static _requiredPatternDecimal: RegExp;\r\n /** Regulární výraz pro znak oddělovače v řetezci. Znak se nastaví podle kultury v {@link _setFormats}. */\r\n private static _replaceGoupSep: RegExp;\r\n private static _groupSep: string;\r\n private static _decSep: string;\r\n\r\n /** Příznak, zda se nastavili povolené znaky a maska v {@link _setFormats}. */\r\n private static _formatsInit: boolean;\r\n\r\n private _validityState: ValidityState | null;\r\n /** Příznak, zda má komponenta pracovat pouze s celými čísly */\r\n private _wholeNumbers: boolean;\r\n private _displayFormat: string;\r\n private _focused: boolean;\r\n private _attached: boolean;\r\n private _hasDefaultDisplayFormat: boolean; //false když byl nastaven konkrétní displayFormat\r\n private _originalValue: number;\r\n /**\r\n * Hodnota komponenty vyjádřená jako řetězec s hodnotou nebo prázdný\r\n * https://developer.mozilla.org/cs/docs/Web/API/HTMLInputElement#Properties\r\n */\r\n public override get value(): string {\r\n let v = this._textValue;\r\n let isBig = false;\r\n if (!v)\r\n return \"\";\r\n v = NumEditBase._removeFormatting(v);\r\n\r\n const n = +v;\r\n if (v.length > 16) { // \"9007199254740991\" Max safe num count\r\n isBig = true;\r\n }\r\n\r\n if (v === \"::\") {\r\n this._textValue = \"\";\r\n return v;\r\n }\r\n if (Number.isNaN(n))\r\n return \"\";\r\n else {\r\n if (isBig) {\r\n return v;\r\n }\r\n return n.toString();\r\n }\r\n }\r\n\r\n public override set value(value: string) {\r\n //logger.log(\"NumEditBase set value\", value);\r\n // v ideálním případě by sem měly chodit stringy, ale bohužel sem chodí všechno možné, proto je tu nová metoda, která umí zpracovávat více typů\r\n this._processIncomingValue(value);\r\n }\r\n\r\n /**\r\n * Hodnota komponenty vyjádřená jako číslo nebo NaN\r\n * https://developer.mozilla.org/cs/docs/Web/API/HTMLInputElement#Properties\r\n */\r\n public override get valueAsNumber(): number {\r\n if (this.value === \"\")\r\n return Number.NaN;\r\n\r\n return +this.value;\r\n }\r\n\r\n public override set valueAsNumber(value: number) {\r\n //logger.log(\"NumEditBase set valueAsNumber\", value);\r\n this._processIncomingValueAsNumber(value);\r\n }\r\n\r\n private get _textValue(): string {\r\n return super.value;\r\n }\r\n\r\n private set _textValue(value: string) {\r\n //logger.log(\"NumEditBase set textValue\", value);\r\n super.value = value;\r\n }\r\n\r\n /**\r\n * Zda má komponenta být v režimou pouze pro čtení - needitační\r\n * https://developer.mozilla.org/cs/docs/Web/API/HTMLInputElement#Properties\r\n */\r\n public override set readOnly(value: boolean) {\r\n super.readOnly = value;\r\n\r\n if (this._focused)\r\n this._removeSeparator();\r\n else\r\n this._addSeparator();\r\n }\r\n\r\n public override get readOnly(): boolean {\r\n return super.readOnly;\r\n }\r\n\r\n /**\r\n * Stav validnosti komponenty\r\n * https://developer.mozilla.org/cs/docs/Web/API/HTMLInputElement#Properties\r\n */\r\n public override get validity(): ValidityState {\r\n if (this._validityState)\r\n return this._validityState;\r\n else\r\n return super.validity;\r\n }\r\n\r\n /**\r\n * Zda má komponenta pracovat pouze s celými čísly\r\n */\r\n public set wholeNumbers(value: boolean) {\r\n if (this._wholeNumbers === value)\r\n return;\r\n\r\n this._wholeNumbers = value;\r\n ElementUtils.toggleAttribute(this, \"wholenumbers\", value); // zesynchronizuje property s atributem\r\n\r\n if (this._hasDefaultDisplayFormat) {\r\n this._displayFormat = value ? NumberUtils.DEFAULT_FORMAT_GENERAL : NumberUtils.DEFAULT_FORMAT_MONEY;\r\n }\r\n\r\n this._render();\r\n }\r\n\r\n public get wholeNumbers(): boolean {\r\n return this._wholeNumbers;\r\n }\r\n\r\n /**\r\n * Formátování čísla\r\n * https://wiki-dokumentace/index.php?title=DisplayFormat\r\n */\r\n public set displayFormat(value: string) {\r\n if (this._displayFormat === value)\r\n return;\r\n\r\n this._displayFormat = !value ? NumberUtils.DEFAULT_FORMAT_REAL_NUMBER : value;\r\n this._hasDefaultDisplayFormat = !value;\r\n\r\n this.setAttribute(\"displayformat\", this._displayFormat);\r\n this._render();\r\n }\r\n\r\n public get displayFormat(): string {\r\n return this._displayFormat;\r\n }\r\n\r\n protected static get observedAttributes(): string[] {\r\n return [\"displayformat\", \"wholenumbers\"];\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this._validityState = null;\r\n this._wholeNumbers = false;\r\n this._displayFormat = NumberUtils.DEFAULT_FORMAT_MONEY;\r\n this._hasDefaultDisplayFormat = true;\r\n this._focused = false;\r\n this._attached = false;\r\n this.type = \"text\";\r\n this.setAttribute(\"autocomplete\", \"off\");\r\n this.classList.add(\"num-edit-base\", \"editable-component\", \"component\");\r\n\r\n NumEditBase._setFormats();\r\n\r\n const v = this.getAttribute(\"value\");\r\n if (v)\r\n this.value = v;\r\n }\r\n\r\n protected connectedCallback(): void {\r\n this.addEventListener(\"input\", NumEditBase._onInput);\r\n this.addEventListener(\"keypress\", NumEditBase._onKeyPress);\r\n this.addEventListener(\"focus\", NumEditBase._onFocus);\r\n this.addEventListener(\"blur\", NumEditBase._onBlur);\r\n\r\n this._attached = true;\r\n this._render();\r\n }\r\n\r\n protected disconnectedCallback(): void {\r\n this.removeEventListener(\"input\", NumEditBase._onInput);\r\n this.removeEventListener(\"keypress\", NumEditBase._onKeyPress);\r\n this.removeEventListener(\"focus\", NumEditBase._onFocus);\r\n this.removeEventListener(\"blur\", NumEditBase._onBlur);\r\n\r\n this._attached = false;\r\n }\r\n\r\n private _render(): void {\r\n // znovu naformátuje zobrazovanou hodnotu\r\n if (this._attached && this._originalValue != null)\r\n this.value = this._originalValue.toString();\r\n }\r\n\r\n /**\r\n * Inicializuje formatovaci masku a povolene znaky pro nastavenou lokalizaci.\r\n * Nastaví se jen jednou.\r\n */\r\n private static _setFormats(): void {\r\n if (NumEditBase._formatsInit)\r\n return;\r\n\r\n const format = Globalization.numberFormat;\r\n NumEditBase._groupSep = format.groupSeparator;\r\n NumEditBase._decSep = format.decimalSeparator;\r\n\r\n // Pole povolených kódů znaků\r\n const charArray = [43 /* + */, 45 /* - */, 13 /* Enter */, 0 /* Firefox ridici znaky: backspace, sipky, ...*/];\r\n\r\n if (NumberUtils.WHITESPACE_GROUP_SEPARATOR_REGEX.test(NumEditBase._groupSep)) {\r\n charArray.push(160);\r\n charArray.push(32);\r\n } else {\r\n charArray.push(NumEditBase._groupSep.charCodeAt(0));\r\n }\r\n\r\n NumEditBase._replaceGoupSep = new RegExp(NumEditBase._groupSep, \"g\");\r\n\r\n NumEditBase._requiredPatternWholeNumbers = new RegExp(`^(?:[+-])?(?:\\\\d+${NumEditBase._groupSep})*\\\\d*$`);\r\n NumEditBase._requiredPatternDecimal = new RegExp(`^(?:[+-])?(?:\\\\d+${NumEditBase._groupSep})*\\\\d*(?:\\\\${format.decimalSeparator}\\\\d+)?$`);\r\n\r\n NumEditBase._alowedCharsWholeNumbers = new Set(charArray);\r\n NumEditBase._alowedCharsDecimal = new Set(charArray);\r\n NumEditBase._alowedCharsDecimal.add(NumEditBase._decSep.charCodeAt(0));\r\n\r\n NumEditBase._formatsInit = true;\r\n }\r\n\r\n private static _onInput(event: Event): void {\r\n NumEditBase._validate(event.target as NumEditBase);\r\n }\r\n\r\n private static _validate(numedit: NumEditBase): void {\r\n //chtelo by to pretizit property validity a nastavit konkretni ValidityState\r\n let validateErrors = ValidateErrors.valid;\r\n let validityData: { validationMessage: string; validity: ValidityState } | null = null;\r\n if (numedit._wholeNumbers ? !NumEditBase._requiredPatternWholeNumbers.test(numedit._textValue.trim()) : !NumEditBase._requiredPatternDecimal.test(numedit._textValue.trim())) {\r\n validateErrors = ValidateErrors.badInput;\r\n } else if (numedit.value) {\r\n if (numedit.min && numedit.valueAsNumber < +numedit.min)\r\n validateErrors |= ValidateErrors.rangeUnderflow;\r\n if (numedit.max && numedit.valueAsNumber > +numedit.max)\r\n validateErrors |= ValidateErrors.rangeOverflow;\r\n\r\n validityData = ValidityStateHelper.createValidateState(validateErrors, numedit._wholeNumbers ? ValidatingDataType.integer : ValidatingDataType.float);\r\n validityData.validationMessage = validityData.validationMessage.replace(/\\$\\{\\w+\\}/, (str) =>\r\n Globalization.formatValue((numedit as any)[str.substr(2, str.length - 3)]));\r\n }\r\n\r\n if (validateErrors === ValidateErrors.valid) {\r\n numedit._validityState = null;\r\n numedit.setCustomValidity(\"\");\r\n } else {\r\n if (!validityData)\r\n validityData = ValidityStateHelper.createValidateState(validateErrors, numedit._wholeNumbers ? ValidatingDataType.integer : ValidatingDataType.float);\r\n\r\n if (validityData) {\r\n numedit._validityState = validityData.validity;\r\n numedit.setCustomValidity(validityData.validationMessage);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Nedovolí napsat nevalidní znaky\r\n */\r\n private static _onKeyPress(event: KeyboardEvent): boolean {\r\n // ctrl ridi zkratky a kontrolni prikazy, ale FF v preventDefault rusi vsechno tedy i zkratky samotneho FF, a nefungovalo tedy ani ctrl+v, takze pokud je pri klavese stisknuto\r\n // ctrl, asi by se meli vsechny povolit\r\n\r\n if (event.ctrlKey) {\r\n return true;\r\n }\r\n\r\n if (event.target instanceof NumEditBase) {\r\n const numEdit = event.target;\r\n const regexMatch = numEdit._textValue.match(/\\d/);\r\n const containsDigit = regexMatch?.length > 0;\r\n\r\n if (event.key == \":\" && numEdit._textValue.length < 2 && !containsDigit) {\r\n return false;\r\n }\r\n\r\n if (numEdit._textValue.includes(\":\")) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n if (!((event.charCode >= 48 && event.charCode <= 57) ||\r\n (numEdit._wholeNumbers ? NumEditBase._alowedCharsWholeNumbers.has(event.charCode) : NumEditBase._alowedCharsDecimal.has(event.charCode))) ||\r\n (event.charCode == 32) ||\r\n (((event.charCode == 43) || (event.charCode == 45)) && ((numEdit.selectionStart != 0) || (numEdit._textValue.indexOf(\"+\") >= 0) || (numEdit._textValue.indexOf(\"-\") >= 0)))) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n if (event.charCode == 13)\r\n numEdit.value = numEdit._textValue;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private static _onFocus(event: Event): void {\r\n const target = event.target as NumEditBase;\r\n if (!target.checkValidity())\r\n return;\r\n\r\n target._focused = true;\r\n\r\n // při focusu se ze zobrazované hodnoty odstraní oddělovače tisíců\r\n target._removeSeparator();\r\n }\r\n\r\n private static _onBlur(event: Event): void {\r\n const target = event.target as NumEditBase;\r\n target._textValue = target._textValue.replace(/:/, \"\");\r\n\r\n if (!target.checkValidity())\r\n return;\r\n\r\n target._focused = false;\r\n\r\n // při ztrátě focusu se naopak aplikuje plné formátování (i s oddělovači)\r\n target._addSeparator();\r\n }\r\n\r\n /**\r\n * Odebira oddelovace tisicu\r\n */\r\n private _removeSeparator(): void {\r\n //pokud je pouze pro cteni neprenastavuji text\r\n if (!this.readOnly) {\r\n if (Number.isNaN(this.valueAsNumber)) {\r\n this._textValue = \"\";\r\n this._originalValue = Number.NaN;\r\n } else {\r\n this._textValue = this._textValue.replace(NumEditBase._replaceGoupSep, \"\");\r\n this._originalValue = +this.value;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Pridava oddelovace tisicu\r\n */\r\n private _addSeparator(): void {\r\n this.value = this._textValue;\r\n }\r\n\r\n /**\r\n * Odstraní formátování a vrátí string s číslem v neutrální kultuře.\r\n * V případě že je oddělovač tisíců mezera (dělitelná / nedělitelná), odstraní oba typy mezer.\r\n * @param value Řetězec ve kterém se odstraní formátování\r\n * @private\r\n */\r\n private static _removeFormatting(value: string): string {\r\n return NumberUtils.removeFormatting(value, NumEditBase._groupSep, NumEditBase._decSep);\r\n }\r\n\r\n private _processIncomingValue(value: string | number | null | undefined): void {\r\n if (value == null) {\r\n this._originalValue = Number.NaN;\r\n this.valueAsNumber = Number.NaN;\r\n NumEditBase._validate(this);\r\n return;\r\n }\r\n\r\n // pro případ, že by přišlo přímo číslo\r\n if (typeof value === \"number\") {\r\n this._originalValue = +value;\r\n this.valueAsNumber = +value;\r\n NumEditBase._validate(this);\r\n return;\r\n }\r\n\r\n if (typeof value === \"object\") { // BigNumber nebo jiný objekt\r\n const val = value as any;\r\n if (!val.toString)\r\n throw Error(\"Wrong object\");\r\n value = NumberUtils.numberToString(val.toString(), {});\r\n }\r\n\r\n value = NumEditBase._removeFormatting(value);\r\n if (value === \"\") {\r\n this._originalValue = Number.NaN;\r\n this.valueAsNumber = Number.NaN;\r\n NumEditBase._validate(this);\r\n return;\r\n }\r\n\r\n this._originalValue = +value;\r\n //this.valueAsNumber = +value;\r\n if (typeof value === \"string\") {\r\n this._processIncomingValueAsNumber(value);\r\n } else {\r\n this._processIncomingValueAsAny(value);\r\n }\r\n\r\n NumEditBase._validate(this);\r\n }\r\n\r\n private _processIncomingValueAsNumber(value: number | string | null | undefined): void {\r\n if (value == null || value === \"\" || Number.isNaN(+value))\r\n this._textValue = \"\";\r\n else // pokud je nastavený display format, tak se aplikuje, jinak se použije strandardní konverze na string\r\n this._textValue = this._displayFormat ? NumberUtils.getNumberToStringFunction(this._displayFormat).format(+value) : NumberUtils.numberToString((+value).toString(), {});\r\n }\r\n\r\n private _processIncomingValueAsAny(value: number | string | object): void {\r\n if (value == null || value === \"\" || Number.isNaN(+value))\r\n this._textValue = \"\";\r\n else {\r\n this._textValue = this._displayFormat ? NumberUtils.getNumberToStringFunction(this._displayFormat).format(value) : NumberUtils.numberToString((value).toString(), {});\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-base-numedit\", NumEditBase, \"input\");\r\n\r\n// ukázka vytvoření dalšího potomka\r\n/*export class NumEditBase2 extends NumEditBase {\r\n protected _init() {\r\n super._init();\r\n\r\n this.classList.add(\"num-edit-base2\");\r\n }\r\n}\r\n\r\nTescoSW.UI.registerCustomElement(\"tsc-base-numedit2\", NumEditBase2, 'input');*/\r\n","import { NumEditBase } from \"../UI.ElementarControls/NumEditBase\";\r\nimport { registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"./Control\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport class NumEdit extends EditableControl {\r\n protected override _innerElement: NumEditBase;\r\n\r\n public get innerElement(): HTMLInputElement {\r\n return this._innerElement;\r\n }\r\n\r\n //#region Properties\r\n public override set value(val: any) {\r\n this.controlValue = val;\r\n }\r\n\r\n public override get value(): any {\r\n return this.controlValue;\r\n }\r\n\r\n public set maxLength(val: number) {\r\n if (val && val > 0)\r\n this._innerElement.maxLength = val;\r\n }\r\n\r\n public get maxLength(): number {\r\n return this._innerElement.maxLength;\r\n }\r\n\r\n //#region controlValue\r\n public get controlValue(): string {\r\n return this._innerElement.value;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public set controlValue(value: string) {\r\n const el = this._innerElement;\r\n\r\n if (this.maxLength > 0 && value && value.length > this.maxLength) {\r\n el.value = value.substr(0, this.maxLength);\r\n //this.alertOnLength();\r\n } else {\r\n el.value = value;\r\n }\r\n //this.Validate(el);\r\n }\r\n //#endregion controlValue\r\n\r\n /**\r\n * Zda má komponenta pracovat pouze s celými čísly\r\n */\r\n public set wholeNumbers(value: boolean) {\r\n this._innerElement.wholeNumbers = value;\r\n }\r\n\r\n public get wholeNumbers(): boolean {\r\n return this._innerElement.wholeNumbers;\r\n }\r\n\r\n /*\r\n * Funkce pro vlastní validaci.\r\n */\r\n public customValidation: (value: number) => boolean;\r\n\r\n /*\r\n * Funkce pro validaci. Pokud je naplněná vlastní validace, tak se provede ta, jinak se provádí standardní validace na předkovi.\r\n */\r\n public override validate(): boolean {\r\n if (this.customValidation)\r\n return this.customValidation(this.value);\r\n else\r\n return super.validate();\r\n }\r\n\r\n //#endregion Properties\r\n\r\n public override focus(): void {\r\n this._innerElement.focus();\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n const tcont: string = this.textContent.trim();\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = new NumEditBase();\r\n this.appendChild(this._innerElement);\r\n this.classList.add(\"NumEdit\");\r\n\r\n if (tcont.length > 0) {\r\n this.value = tcont;\r\n }\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this._innerElement) {\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"change\", (e) => {\r\n e.stopPropagation();\r\n this.callEvent(\"change\");\r\n });\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-numedit\", NumEdit);\r\n","import { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { OWTime } from \"../../Global/Base/DataTypes/OWTime\";\r\nimport { EnumUtils } from \"../../Global/Base/Utils/EnumUtils\";\r\nimport { Globalization, ITimeInfo } from \"../../Global/Dom/Globalization\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport class TimeEdit extends EditableControl {\r\n public twoDigitHour: boolean = true;\r\n\r\n protected override _innerElement: HTMLInputElement;\r\n\r\n private _originalValue: OWTime = null;\r\n private _timeFormat: TimeFormat = TimeFormat.tfSec;\r\n private _localeTimeFormat: ITimeInfo;\r\n private _list: { [text: string]: (e: Event) => void };\r\n private _testPattern: RegExp;\r\n private _validTimePattern: RegExp;\r\n private _edited: boolean = false;\r\n private _placeholderLocKey: string;\r\n\r\n public get timeFormat(): TimeFormat {\r\n return this._timeFormat;\r\n }\r\n\r\n public override set value(val: any) {\r\n let finalValue: any = val;\r\n if (val instanceof Date) {\r\n finalValue = val;\r\n } else if (typeof val === \"string\") {\r\n finalValue = this._parseTime(val);\r\n }\r\n\r\n this.controlValue = finalValue;\r\n }\r\n\r\n public override get value(): any {\r\n return this._originalValue; //this.formatVal(this.originalValue);\r\n }\r\n\r\n public set controlValue(value: Date) { // prijima Date\r\n if (value) { // neprazdna hodnota\r\n if ((value instanceof Date) && !isNaN(value.getTime())) { // spravne\r\n this._originalValue = new OWTime(value);\r\n this._innerElement.value = this._formatVal(value);\r\n } else {\r\n this._originalValue = null;\r\n this._innerElement.value = \"\";\r\n }\r\n } else { // prazdna hodnota\r\n this._originalValue = null;\r\n this._innerElement.value = \"\";\r\n }\r\n }\r\n\r\n public get controlValue(): OWTime {\r\n return this._originalValue;\r\n }\r\n\r\n public get placeholderLocKey(): string {\r\n return this._placeholderLocKey;\r\n }\r\n public set placeholderLocKey(value: string) {\r\n this._placeholderLocKey = value;\r\n if (this._innerElement) {\r\n if (value) {\r\n Localization.addLocTxtData(this._innerElement, this.placeholderLocKey, \"placeholder\");\r\n return;\r\n }\r\n Localization.remLocData(this._innerElement);\r\n }\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"timeformat\", \"culture\"].concat(EditableControl.observedAttributes);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n //this.shadowRoot = (this as any).createShadowRoot();\r\n const tcont: string = this.textContent.trim();\r\n this.innerHTML = \"\";\r\n this._list = {};\r\n\r\n this._innerElement = createElement({ type: \"input\" }) as HTMLInputElement;\r\n this._innerElement.setAttribute(\"autocomplete\", \"off\");\r\n\r\n this.appendChild(this._innerElement);\r\n\r\n this._localeTimeFormat = Globalization.timeFormat;\r\n this.twoDigitHour = true;\r\n this.classList.add(\"TimeEdit\");\r\n\r\n if (tcont.length > 0) {\r\n this.value = tcont;\r\n }\r\n\r\n this._setAttrs();\r\n this._setPattern();\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this._setListeners();\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"timeformat\": {\r\n const tFormat = EnumUtils.getEnumValueFromName(XGenTimeFormat, newVal, true) || newVal;\r\n this._timeFormat = EnumUtils.getEnumValueFromName(TimeFormat, tFormat) || TimeFormat.tfMin;\r\n this._formatRequest();\r\n break;\r\n }\r\n case \"culture\": {\r\n this._culture = newVal;\r\n this._culture && this._culture !== Globalization.actualCulture ? Globalization.getTimeFormat(this._culture) : Globalization.timeFormat;\r\n this._formatRequest();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Metoda na zpracování události při změně jazyka a culture\r\n */\r\n private _formatRequest(): void {\r\n this._setPattern();\r\n if (this._originalValue != null && !isNaN(this._originalValue.getTime()))\r\n this._innerElement.value = this._formatVal(this._originalValue);\r\n }\r\n\r\n /**\r\n * Základní nastavení formátovaci regularnich výrazů\r\n */\r\n private _setPattern(): void {\r\n // Nastavení cultury podle elementu\r\n this._localeTimeFormat = this._culture && this._culture !== Globalization.actualCulture ? Globalization.getTimeFormat(this._culture) : Globalization.timeFormat;\r\n\r\n this._validTimePattern = this._localeTimeFormat.regExp.timeTypeValid;\r\n switch (this._timeFormat) {\r\n case TimeFormat.tfHour:\r\n this._testPattern = this._localeTimeFormat.regExp.timeHour;\r\n break;\r\n case TimeFormat.tfMin:\r\n this._testPattern = this._localeTimeFormat.regExp.timeMin;\r\n break;\r\n case TimeFormat.tfSec:\r\n this._testPattern = this._localeTimeFormat.regExp.timeSec;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Nastavení nativních události\r\n */\r\n private _setListeners(): void {\r\n const f_focusTimeout = () => {\r\n const lCurosPos = EditableControl.getInputSelection(this._innerElement).start;\r\n\r\n if (this._originalValue) {\r\n EditableControl.setCaret(this._innerElement, lCurosPos);\r\n }\r\n };\r\n\r\n this._innerElement.addEventListener(\"focus\", this._list[\"focus\"] = () => {\r\n // timeout, protoze dochazi k prechodu do editace pri kliku do pole, pokud bude pole po timeoutu v editaci dojde ke zpracovani\r\n self.setTimeout(() => {\r\n if (!this._innerElement.readOnly)\r\n f_focusTimeout();\r\n }, 150);\r\n });\r\n\r\n this._innerElement.addEventListener(\"keyup\", this._list[\"keyup\"] = (e: KeyboardEvent) => {\r\n if (this._innerElement.readOnly)\r\n return;\r\n\r\n if (e.keyCode == 13) {\r\n this.validate();\r\n return;\r\n }\r\n\r\n const val = this._innerElement.value;\r\n\r\n if (this._checkTypingValue(val)) {\r\n this._edited = true;\r\n }\r\n });\r\n }\r\n\r\n public override validate(): boolean {\r\n const val = this._innerElement.value;\r\n if (val === \"\") {\r\n this.setValid();\r\n this.controlValue = null;\r\n return this.isValid;\r\n }\r\n\r\n if (!this._checkBlurValue()) {\r\n this.setInvalid(\"VAL-0\");\r\n } else {\r\n this.setValid();\r\n }\r\n\r\n if (this._edited) {\r\n this._edited = false;\r\n }\r\n\r\n return this.isValid;\r\n }\r\n\r\n /**\r\n * Kontrola hodnoty inputu prováděná při psani\r\n */\r\n private _checkTypingValue(val: string): boolean {\r\n if (val === \"\")\r\n return true;\r\n return this._validTimePattern.test(val);\r\n }\r\n\r\n /**\r\n * Metoda volana po zmene inputu, na doplneni hodnot\r\n */\r\n private _normalizeValue(): boolean {\r\n const val = this._innerElement.value;\r\n if (!this._checkTypingValue(val)) {\r\n this._originalValue = null;\r\n return false;\r\n }\r\n\r\n const newTime = this._parseTime(val);\r\n\r\n this._originalValue = new OWTime(newTime);\r\n this._innerElement.value = this._formatVal(newTime);\r\n\r\n return true;\r\n }\r\n\r\n protected override _afterChange(): void {\r\n this._normalizeValue();\r\n if (this.validate()) {\r\n this.callEvent(\"change\", undefined, false, true);\r\n }\r\n }\r\n\r\n /**\r\n * Parsuje hodnotu ze vstupu\r\n * @example Příklad validního uživatelského vstupu je 1 => 1:00:00, 1001 => 10:01:00, 1:1 => 1:01:00, ...\r\n * @param val uživatelský vstup\r\n */\r\n private _parseTime(val: string): Date {\r\n const time: string[] = [\"\", \"\", \"\"];\r\n const min_num = this._localeTimeFormat.hour12 ? 1 : 2;\r\n const max_next_num = this._localeTimeFormat.hour12 ? 2 : 4;\r\n let fNum = 0;\r\n // temp funkce na zpracovani stringu jako čisla\r\n const f_getNum = (n: string): number => {\r\n const num = parseInt(n);\r\n if (isNaN(num))\r\n return 0;\r\n else\r\n return num;\r\n };\r\n\r\n for (let i = 0, j = 0, z = 0, lng = val.length; i < lng; i++) {\r\n if (val[i] === this._localeTimeFormat.separator) {\r\n z++;\r\n j = 0;\r\n continue;\r\n }\r\n if (j === 2) {\r\n j = 0;\r\n z++;\r\n }\r\n if (z > 2)\r\n break;\r\n\r\n if (/\\d/.test(val[i])) {\r\n // pokud obsahuje na prvnim miste cislo vetsi nez maximalni doplni na zacatek nulu, jinak to k datu na zacatku pricitalo dny\r\n const pNum = parseInt(val[i]);\r\n if (z === 0 && j === 0) {\r\n fNum = pNum;\r\n if (pNum > min_num) {\r\n time[z] += \"0\";\r\n j++;\r\n }\r\n }\r\n // pokud predchozi cislo obsazhuje maximalni cislo zadane do dne a dalsi cislo obsahuje vetsi nez koncove cislo dne, je pridana na zacatek 0\r\n // priklad: pokud bych zadal (ve 24 hod formatu) 25, predchozi podminkou by to proslo, ale datum se presto o jeden den zvedl\r\n if (z === 0 && j === 1) {\r\n if (fNum === min_num && pNum > max_next_num) {\r\n time[z] = `0${time[z]}`;\r\n j = 0;\r\n z++;\r\n }\r\n }\r\n time[z] += val[i];\r\n j++;\r\n }\r\n }\r\n\r\n // kontrola na zadani hodnoty PM\r\n let hour = f_getNum(time[0]);\r\n let rtext: string;\r\n if (this._localeTimeFormat.amPmOnRight)\r\n rtext = `.+\\\\s?${this._localeTimeFormat.pmText}$`;\r\n else\r\n rtext = `${this._localeTimeFormat.pmText}\\\\s?.+$`;\r\n const reg = new RegExp(rtext, \"i\");\r\n\r\n // prevadeni na spravne hodnoty PM\r\n if (this._localeTimeFormat.useAmPm) {\r\n ///.+\\s?PM$/i.test(val)) {\r\n if (reg.test(val)) {\r\n if (hour !== 12)\r\n hour += 12;\r\n } else if (hour === 12) { // pokud je 12 hodinovy format, cas je v AM a je roven 12, je to upraveno na 0, dochazelo k prepisu na AM a PM\r\n hour = 0;\r\n }\r\n }\r\n\r\n return new Date(2012, 11, 21, hour, f_getNum(time[1]), f_getNum(time[2]));\r\n }\r\n\r\n /**\r\n * Vráti naformátovaný čas podle aktuální kultůry\r\n * @param val Čas podle kterého se bude formátovat\r\n */\r\n private _formatVal(val: Date): string {\r\n //let printDate = new Date(val.getTime());\r\n // TODO: (21. 3. 2017) Kvůli chybě v nativní funkci toLocaleTimeString se při zadání data menšího než \"25.10.1891\" a následného zadaní času snižuje čas. např: 1.1.1890 12:00:00 - čas se zmenší na 11:57:44\r\n const printDate = new Date(2000, 1, 1, val.getHours(), val.getMinutes(), val.getSeconds(), val.getMilliseconds());\r\n const opt: any = { hour: \"2-digit\", minute: \"2-digit\" };\r\n\r\n if (!this.twoDigitHour)\r\n opt.hour = \"numeric\";\r\n\r\n if (this._timeFormat === TimeFormat.tfHour) {\r\n //printDate.setMinutes(0);\r\n opt.minute = undefined;\r\n } else if (this._timeFormat === TimeFormat.tfSec) {\r\n opt.second = \"2-digit\";\r\n }\r\n\r\n //return printDate.toLocaleTimeString(this.Culture ? this.Culture : Globalization.ActualCulture, opt);\r\n let finalDate = printDate.toLocaleTimeString(this._culture ? this._culture : Globalization.actualCulture, opt);\r\n\r\n const t_hour = printDate.toLocaleTimeString(this._culture ? this._culture : Globalization.actualCulture, { hour: \"2-digit\" });\r\n // TODO: (10. 2. 2016) v opt hour: 2-digit funguje spravne jen v Edge, v ostatnich prohlížečích se zobrazí jedno číslo, byla k tomu třeba udělat berlička, až to bude fungovat odstranit\r\n if (this.twoDigitHour && t_hour.length < 2)\r\n finalDate = `0${finalDate}`;\r\n\r\n return finalDate;\r\n }\r\n\r\n /**\r\n * Kontrola prováděna při opuštění inputu\r\n */\r\n private _checkBlurValue(): boolean {\r\n const val = this._innerElement.value;\r\n\r\n return this._testPattern.test(val);\r\n }\r\n\r\n private _setAttrs(): void {\r\n this._innerElement.type = \"text\"; // default; type=\"text\" kvuli zadavani ':'\r\n this._innerElement.maxLength = 15;\r\n this._timeFormat = TimeFormat.tfSec; // tfsec je defaultni\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n this._innerElement.removeEventListener(\"change\", this._list[\"change\"]);\r\n this._innerElement.removeEventListener(\"focus\", this._list[\"focus\"]);\r\n this._innerElement.removeEventListener(\"keyup\", this._list[\"keyup\"]);\r\n }\r\n}\r\n\r\nexport enum TimeFormat {\r\n tfHour = 1,\r\n tfMin = 2,\r\n tfSec = 3,\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/no-duplicate-enum-values */\r\nexport enum XGenTimeFormat {\r\n T = \"tfSec\",\r\n t = \"tfMin\",\r\n F = \"tfSec\",\r\n f = \"tfMin\",\r\n G = \"tfSec\",\r\n g = \"tfMin\",\r\n O = \"tfSec\",\r\n o = \"tfSec\",\r\n r = \"tfSec\",\r\n R = \"tfSec\",\r\n s = \"tfSec\",\r\n u = \"tfSec\",\r\n U = \"tfSec\",\r\n}\r\n\r\nregisterCustomElement(\"tsc-timeedit\", TimeEdit);\r\n","import { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { CheckBoxUtils } from \"../UI.ElementarControls/Helpers/CheckBoxUtils\";\r\nimport { createElement, registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"./Control\";\r\nimport { EditableControl } from \"./EditableControl\";\r\nimport { IBooleanDetailValueEvent } from \"./IEvent\";\r\n\r\nexport class Checkbox extends EditableControl {\r\n protected override _innerElement: HTMLInputElement;\r\n\r\n private _label: HTMLLabelElement;\r\n private _isNullable: boolean;\r\n\r\n //#region Properties\r\n protected static override get observedAttributes(): string[] {\r\n return [\"text\"].concat(EditableControl.observedAttributes);\r\n }\r\n\r\n public set isNullable(v: boolean) {\r\n this._isNullable = v;\r\n }\r\n\r\n /**\r\n * Informace o tom, zda muze byt 3 stavovy, pokud je true, je 3 stavovy\r\n */\r\n public get isNullable(): boolean {\r\n return this._isNullable;\r\n }\r\n\r\n /** Informace o tom, zda se jedná o prázdný 3 stavový check (null) */\r\n public get indeterminate(): boolean {\r\n return this._innerElement.indeterminate;\r\n }\r\n\r\n /**\r\n * Pokud je true tak se pouziva checkbox ve standartnim modu (true - fajfka, false - prazdny)\r\n */\r\n public set standardAction(v: boolean) {\r\n this.classList.toggle(\"CheckBox2s\", v);\r\n }\r\n\r\n public get standardAction(): boolean {\r\n return this.classList.contains(\"CheckBox2s\");\r\n }\r\n\r\n public override set value(val: any) {\r\n if (typeof val === \"string\")\r\n this.controlValue = DataConverter.toBoolean(val, null);\r\n this.controlValue = val;\r\n }\r\n\r\n public override get value(): any {\r\n return this.controlValue;\r\n }\r\n\r\n public set checked(v: boolean) {\r\n const oldValue = this.controlValue;\r\n this.controlValue = v;\r\n if (oldValue !== v) {\r\n this.callEvent(\"change\");\r\n }\r\n }\r\n\r\n public get checked(): boolean {\r\n return this._innerElement.checked;\r\n }\r\n\r\n //#region controlValue\r\n public get controlValue(): boolean | null {\r\n if (this.isNullable && this._innerElement.indeterminate) {\r\n return null;\r\n }\r\n\r\n return this._innerElement.checked;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public set controlValue(value: boolean | null) {\r\n CheckBoxUtils.setCheckValue(this._innerElement, value);\r\n if (value !== null) {\r\n this._innerElement.checked = value;\r\n }\r\n }\r\n //#endregion controlValue\r\n\r\n public get text(): string {\r\n return this._label.textContent;\r\n }\r\n\r\n public set text(text: string) {\r\n this._label.textContent = text;\r\n }\r\n\r\n public setTabIndexOnInnerElement(tabIndex: number): void {\r\n this._innerElement.tabIndex = tabIndex;\r\n }\r\n //#endregion Properties\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.remove(\"EditableControl\");\r\n this.classList.add(\"CheckBox\");\r\n this._isNullable = (this.hasAttribute(\"displayformat\") && this.getAttribute(\"displayformat\") == \"2s\") ? false : true;\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = createElement({ type: \"input[checkbox]\" }) as HTMLInputElement;\r\n this.appendChild(this._innerElement);\r\n this._innerElement.id = Control.getID();\r\n\r\n // error elem\r\n this._errorElement = document.createElement(\"div\");\r\n this._errorElement.className = \"errDiv\";\r\n\r\n this.isEditing = true;\r\n\r\n this._label = document.createElement(\"label\");\r\n this.appendChild(this._label);\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n const handleClick = (_event: MouseEvent) => {\r\n if (this._innerElement.readOnly || !this.enabled) {\r\n return;\r\n }\r\n\r\n const target = _event.target;\r\n const isTargetInput = target instanceof Element && target.nodeName.toLowerCase() === \"input\";\r\n // pokud se event spusti kvuli inputu, tak se controlValue změní dřív, než se sem dostaneme\r\n const controlValue = isTargetInput ? !this.controlValue : this.controlValue;\r\n switch (controlValue) {\r\n case false:\r\n if (this.required || !this._isNullable) {\r\n this.controlValue = true;\r\n } else {\r\n this.controlValue = null;\r\n }\r\n break;\r\n\r\n // checked na unchecked\r\n case true:\r\n this.controlValue = false;\r\n break;\r\n\r\n // indeterminate na checked\r\n default:\r\n this.controlValue = true;\r\n }\r\n\r\n this.callEvent(\"change\");\r\n };\r\n\r\n Control.registerEventListener(this._eventGroup, this._label, \"click\", handleClick);\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"click\", handleClick);\r\n\r\n this.registerEventListener(\"enabled\", (e: IBooleanDetailValueEvent) => {\r\n this.classList.toggle(\"Disabled\", !e.detail.value);\r\n });\r\n this.classList.toggle(\"Disabled\", !this.enabled);\r\n }\r\n\r\n protected override attributeChangedCallback(attr: string, _oldVal: string, newVal: string): void {\r\n // zesynchronizování atributu s property\r\n switch (attr) {\r\n case \"text\":\r\n this.text = newVal;\r\n break;\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-checkbox\", Checkbox);\r\n","/**\r\n * Interface pro rozsireni vstupu filtrovani, pokud je zadano, pouziva se jina nez hlavni oparace (vyuzito na DateTimeWithInclude)\r\n */\r\nexport interface IStructureExtension {\r\n subOperationID: string;\r\n}\r\n\r\nexport class IStructureExtension {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n Reflect.has(instance, \"subOperationID\");\r\n }\r\n}\r\n","/**\r\n * Interface pro rozsireni vstupu filtrovani, pokud je zadano, pouziva se jina nez hlavni oparace (vyuzito na DateTimeWithInclude)\r\n */\r\nexport interface IWithInclude {\r\n include: boolean;\r\n includeVisible: boolean;\r\n}\r\n\r\nexport class IWithInclude {\r\n private static _properties: (keyof IWithInclude)[] = [\"include\", \"includeVisible\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n","import { PromiseUtils } from \"../../../../../../Global/Base/Promises/PromiseUtils\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Checkbox } from \"../../../../../UI.BaseControls/Checkbox\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { DateTimeEdit } from \"../../../../../UI.BaseControls/DateTimeEdit\";\r\nimport { TimeFormat } from \"../../../../../UI.BaseControls/TimeEdit\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IOperation, IReplaceFilterItem, IReplaceItemData } from \"../FilterInterfaces\";\r\nimport { dateTimeFilterRecreateFunction } from \"../FilterShared\";\r\nimport { IStructureExtension } from \"../IStructureExtension\";\r\nimport { IWithInclude } from \"../IWithInclude\";\r\n\r\nexport class DateTimeWithInclude extends DateTimeEdit implements IStructureExtension, IWithInclude, IReplaceFilterItem {\r\n private _include: Checkbox;\r\n private _desc: HTMLElement;\r\n private _subOperationID: string = null;\r\n\r\n // private _includeChangeListener: EventListener;\r\n // private _dateEditKeyUpListener: EventListener;\r\n\r\n public get subOperationID(): string {\r\n return this._subOperationID;\r\n }\r\n\r\n public set subOperationID(value: string) {\r\n if ((value == \"day\") && (value != this._subOperationID)) {\r\n this._subOperationID = value;\r\n this._timeEdit.controlValue = null;\r\n this._updateOriginalValue();\r\n } else {\r\n this._subOperationID = value;\r\n this._updateOriginalValue();\r\n }\r\n }\r\n\r\n public get include(): boolean {\r\n return this._include.visible && this._include.checked;\r\n }\r\n\r\n public set include(v: boolean) {\r\n this._include.checked = v;\r\n this._updateOriginalValue();\r\n this.callEvent(\"change\");\r\n }\r\n\r\n public get includeVisible(): boolean {\r\n return this._desc.parentElement.style.display != \"none\";\r\n }\r\n\r\n public set includeVisible(v: boolean) {\r\n this._desc.parentElement.style.display = v ? \"\" : \"none\";\r\n }\r\n\r\n public applyDisplayFormat(displayFormat: string): void {\r\n if ([\"D\", \"d\", \"M\", \"m\"].some(x => x === displayFormat)) {\r\n this._timeEdit.visible = false;\r\n this._dateEdit.classList.add(\"OnlyDate\");\r\n }\r\n if (displayFormat == \"t\")\r\n this._dateEdit.visible = false;\r\n\r\n this._timeEdit.setAttribute(\"timeformat\", displayFormat);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n const cont = createElement({ classes: \"check-cont\" });\r\n this._include = new Checkbox();\r\n this._include.required = true;\r\n this._desc = createElement({ classes: \"description\" });\r\n\r\n cont.style.display = \"none\";\r\n\r\n this._include.standardAction = true;\r\n\r\n Localization.addLocData(this._desc, \"GUI-603192\"); //Včetně\r\n\r\n this._include.addEventListener(\"change\", () => this.include = this._include.value);\r\n\r\n this._dateEdit.registerEventListener(\"keyup\", (e) => {\r\n this.callEvent(\"keyup\", { original: e });\r\n });\r\n\r\n cont.appendChild(this._include);\r\n cont.appendChild(this._desc);\r\n\r\n this.appendChild(cont);\r\n\r\n this._timeEdit.setAttribute(\"timeformat\", \"t\");\r\n\r\n this.classList.add(\"DateTimeEditWithInclude\");\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n Control.unregisterEventListener(this._eventGroup, this._innerElement, \"focusout\");\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"focusout\", () => {\r\n if (!this.isValid) // stav nevalidnosti nektere komponenty se nebude prepisovat stavem, ze jedno pole neni vyplneno\r\n return;\r\n\r\n if (!this._dateEdit.controlValue && this._timeEdit.controlValue) {\r\n // je potřeba počka, až se projeví ztráta focusu\r\n PromiseUtils.delay(0).then(() => {\r\n // pokud ani jedna subkomponenta nemá focus, tak se validuje, jestli jsou obě nevyplněné nebo obě vyplněné\r\n if (!this._timeEdit.isFocused && !this._dateEdit.isFocused &&\r\n (!this._dateEdit.controlValue && this._timeEdit.controlValue))\r\n this.setInvalid(\"VAL-615396\"); // Všechna pole musí být vyplněna\r\n });\r\n }\r\n });\r\n }\r\n\r\n protected override _updateOriginalValue(): boolean {\r\n const date = this._dateEdit.controlValue;\r\n const time = this._timeEdit.visible == false ? null : this._timeEdit.controlValue;\r\n const oldOriginalValue = this._originalValue;\r\n\r\n // az kdyz jsou vyplnena obe pole, tak se sklada vysledna hodnota DateTimeEditu\r\n if (date) {\r\n this._originalValue = new Date(date);\r\n\r\n if (time) {\r\n if (this.subOperationID != null)\r\n this.subOperationID = null;\r\n this._originalValue.setHours(time.getHours());\r\n this._originalValue.setMinutes(time.getMinutes());\r\n this._originalValue.setSeconds(time.getSeconds());\r\n this._originalValue.setMilliseconds(time.getMilliseconds());\r\n this.updateRoundedTime();\r\n } else {\r\n if (this.subOperationID != \"day\")\r\n this.subOperationID = \"day\";\r\n this.setDefaultTime();\r\n }\r\n } else {\r\n this._originalValue = null;\r\n }\r\n\r\n let changed = false;\r\n if ((oldOriginalValue == null && this._originalValue != null) || (oldOriginalValue != null && this._originalValue == null)) changed = true;\r\n if (oldOriginalValue != null && this._originalValue != null && oldOriginalValue.valueOf() != this._originalValue.valueOf()) changed = true;\r\n\r\n // zmena hodnoty se ohlasuje az kdyz jsou obe casti vyplnene nebo obe prazdne\r\n return ((date != null) || (time == null && date == null)) && changed;\r\n }\r\n\r\n private setDefaultTime(): void {\r\n if (this.includeVisible && ((this.include && this._defaultValue) || (!this.include && !this._defaultValue))) {\r\n this._originalValue.setHours(23);\r\n this._originalValue.setMinutes(59);\r\n this._originalValue.setSeconds(59);\r\n this._originalValue.setMilliseconds(59);\r\n } else {\r\n this._originalValue.setHours(0);\r\n this._originalValue.setMinutes(0);\r\n this._originalValue.setSeconds(0);\r\n this._originalValue.setMilliseconds(0);\r\n }\r\n }\r\n\r\n /**\r\n * Pokud je zadaný čas, ale format zobrazuje jen minuty nebo sekundy tak se musí upravit\r\n * časová složka podle vybraného filtru a včetně\r\n * */\r\n private updateRoundedTime(): void {\r\n if (this.includeVisible && ((this.include && this._defaultValue) || (!this.include && !this._defaultValue))) {\r\n this._originalValue.setMilliseconds(59);\r\n if (this._timeEdit.timeFormat == TimeFormat.tfMin)\r\n this._originalValue.setSeconds(59);\r\n } else {\r\n this._originalValue.setMilliseconds(0);\r\n if (this._timeEdit.timeFormat == TimeFormat.tfMin)\r\n this._originalValue.setSeconds(0);\r\n }\r\n }\r\n\r\n public override validate(forced: boolean = false): boolean {\r\n this._dateEdit.validate();\r\n\r\n if (this._timeEdit.controlValue)\r\n this._timeEdit.validate();\r\n if (forced && (!this._dateEdit.controlValue && this._timeEdit.controlValue))\r\n this.setInvalid(\"VAL-615396\"); // Všechna pole musí být vyplněna\r\n return this.isValid;\r\n }\r\n\r\n //#region Dispose\r\n public override dispose(): void {\r\n //this._include.removeEventListener('change', this._includeChangeListener); //TODO: IFRAME - vola se už při skrytí popup menu a nenaváže se to znovu při zobrazení\r\n //this._dateEdit.removeEventListener('keyup', this._dateEditKeyUpListener); //TODO: IFRAME - vola se už při skrytí popup menu a nenaváže se to znovu při zobrazení\r\n super.dispose();\r\n }\r\n\r\n public recreateFilter(operation: IOperation): IReplaceItemData[] {\r\n return dateTimeFilterRecreateFunction(this._dateEdit.userValue, operation);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DateTimeWithInclude\", DateTimeWithInclude);\r\n","import { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Checkbox } from \"../../../../../UI.BaseControls/Checkbox\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { EditableControl } from \"../../../../../UI.BaseControls/EditableControl\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IOperation, IReplaceFilterItem, IReplaceItemData } from \"../FilterInterfaces\";\r\nimport { dateTimeFilterRecreateFunction } from \"../FilterShared\";\r\nimport { IStructureExtension } from \"../IStructureExtension\";\r\nimport { IWithInclude } from \"../IWithInclude\";\r\nimport { FilterDateEdit } from \"./FilterDateEdit\";\r\n\r\nexport class DateWithInclude extends EditableControl implements IStructureExtension, IWithInclude, IReplaceFilterItem {\r\n private _include: Checkbox;\r\n private _desc: HTMLElement;\r\n private _subOperationID: string = null;\r\n private _dateEdit: FilterDateEdit;\r\n\r\n public get subOperationID(): string {\r\n return this._subOperationID;\r\n }\r\n\r\n public set subOperationID(value: string) {\r\n if ((value == \"day\") && (value != this._subOperationID)) {\r\n this._subOperationID = value;\r\n this.setDefaultTime();\r\n } else {\r\n this._subOperationID = value;\r\n }\r\n }\r\n\r\n public get include(): boolean {\r\n return this._include.visible && this._include.checked;\r\n }\r\n\r\n public set include(v: boolean) {\r\n this._include.checked = v;\r\n this.setDefaultTime();\r\n this.callEvent(\"change\");\r\n }\r\n\r\n public get includeVisible(): boolean {\r\n return this._desc.parentElement.style.display != \"none\";\r\n }\r\n\r\n public set includeVisible(v: boolean) {\r\n this._desc.parentElement.style.display = v ? \"\" : \"none\";\r\n }\r\n\r\n public override get value(): any {\r\n return this._dateEdit.value;\r\n }\r\n\r\n public override set value(value: any) {\r\n this._dateEdit.value = value;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._createElement();\r\n this._setListener();\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n Control.unregisterEventListener(this._eventGroup, this._innerElement, \"focusout\");\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"focusout\", () => {\r\n if (!this.isValid) // stav nevalidnosti nektere komponenty se nebude prepisovat stavem, ze jedno pole neni vyplneno\r\n return;\r\n });\r\n }\r\n\r\n public recreateFilter(operation: IOperation): IReplaceItemData[] {\r\n return dateTimeFilterRecreateFunction(this._dateEdit.userValue, operation);\r\n }\r\n\r\n private _createElement(): void {\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = document.createElement(\"div\");\r\n this.appendChild(this._innerElement);\r\n this._innerElement.classList.add(\"DateWithIncludeParent\");\r\n\r\n this._dateEdit = new FilterDateEdit();\r\n\r\n const cont = createElement({ classes: \"check-cont\" });\r\n this._include = new Checkbox();\r\n this._include.required = true;\r\n this._desc = createElement({ type: \"span\", classes: \"description\" });\r\n\r\n cont.style.display = \"none\";\r\n\r\n this._include.standardAction = true;\r\n\r\n Localization.addLocData(this._desc, \"GUI-603192\"); //Včetně\r\n\r\n cont.appendChild(this._include);\r\n cont.appendChild(this._desc);\r\n\r\n this.classList.add(\"DateEditWithInclude\");\r\n\r\n this._innerElement.appendChild(this._dateEdit);\r\n this._innerElement.appendChild(cont);\r\n }\r\n\r\n private _setListener(): void {\r\n this._include.addEventListener(\"change\", () => this.include = this._include.value);\r\n this.afterAttach(() => {\r\n this._dateEdit.registerEventListener(\"change\", (_e) => {\r\n this.callEvent(\"change\");\r\n });\r\n\r\n this._dateEdit.registerEventListener(\"keyup\", (e) => {\r\n this.callEvent(\"keyup\", { original: e });\r\n });\r\n });\r\n }\r\n\r\n private setDefaultTime(): void {\r\n if (this._dateEdit.controlValue) {\r\n const date = this._dateEdit.controlValue;\r\n if (this.include) {\r\n date.setHours(0);\r\n date.setMinutes(0);\r\n date.setSeconds(0);\r\n date.setMilliseconds(0);\r\n } else {\r\n date.setHours(23);\r\n date.setMinutes(59);\r\n date.setSeconds(59);\r\n date.setMilliseconds(59);\r\n }\r\n this._dateEdit.controlValue = date;\r\n }\r\n }\r\n\r\n //#region Dispose\r\n public override dispose(): void {\r\n //this._include.removeEventListener('change', this._includeChangeListener); //TODO: IFRAME - vola se už při skrytí popup menu a nenaváže se to znovu při zobrazení\r\n //this._dateEdit.removeEventListener('change', this._dateEditChangeListener); //TODO: IFRAME - vola se už při skrytí popup menu a nenaváže se to znovu při zobrazení\r\n //this._dateEdit.removeEventListener('keyup', this._dateEditKeyUpListener); //TODO: IFRAME - vola se už při skrytí popup menu a nenaváže se to znovu při zobrazení\r\n super.dispose();\r\n }\r\n\r\n //#endregion Dispose\r\n}\r\n\r\nregisterCustomElement(\"tsc-DateWithInclude\", DateWithInclude);\r\n","import { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { GenericControl } from \"../../UI.BaseControls/GenericControl\";\r\nimport { createElement, registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\n\r\nexport class DropDownButtonItem extends DropDownMenuItem {\r\n public isClickable: boolean = false;\r\n\r\n public get buttons(): HTMLElement[] {\r\n return Array.from(this.querySelectorAll(\".itemButton\")) as HTMLElement[];\r\n }\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.visible = true;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"ButtonItem\");\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n\r\n this._setListener();\r\n }\r\n\r\n public addItem(locKey: string, clickAction: (e: MouseEvent) => void, additionalClass: string = \"\"): void {\r\n const button = createElement({ type: \"button\", classes: [\"btn\", \"primary\", additionalClass] });\r\n\r\n Localization.addLocData(button, locKey);\r\n GenericControl.registerEventListener(button, \"click\", (e: MouseEvent) => {\r\n if (button.classList.contains(\"Disabled\"))\r\n return;\r\n e.stopImmediatePropagation(); // EventHelper způsobuje okamžité zavření menu svou cancelled událostí\r\n clickAction(e);\r\n });\r\n\r\n this.appendChild(button);\r\n }\r\n\r\n protected override _setListener(): void {\r\n this.registerEventListener(\"click\", (e: MouseEvent) => e.stopImmediatePropagation());\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownButtonItem\", DropDownButtonItem);\r\n","import { ITextBuilder } from \"../../../../Global/Base/Builders/ITextBuilder\";\r\nimport { DataConverter } from \"../../../../Global/Base/Converters/DataConverter\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { CheckBoxUtils } from \"../../../UI.ElementarControls/Helpers/CheckBoxUtils\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { UIManager } from \"../UIManager\";\r\nimport { ControlParams, IMultiEdit } from \"./ControlInterfaces\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport interface CheckBoxInput extends HTMLInputElement {\r\n tscValue: boolean;\r\n}\r\n\r\nexport class CheckBox extends EditableControl {\r\n public override innerElement: CheckBoxInput;\r\n protected _listenerClick: EventListener;\r\n protected _listenerFocus: EventListener;\r\n protected _listenerBlur: EventListener;\r\n private readonly _label: HTMLLabelElement;\r\n\r\n private _displayFormat3S = true;\r\n\r\n public set displayFormat(format: string) {\r\n this._displayFormat3S = format == null || format.toLowerCase() !== \"2s\";\r\n }\r\n\r\n /**\r\n * true = 3S, false = 2S\r\n */\r\n public get displayFormat3S(): boolean {\r\n return this._displayFormat3S;\r\n }\r\n\r\n public override get displayedValue(): ITextBuilder {\r\n return this.innerElement.tscValue;\r\n }\r\n\r\n public override set displayedValue(v: ITextBuilder) {\r\n if (typeof v === \"boolean\")\r\n this.innerElement.tscValue = v;\r\n }\r\n\r\n public override get isVisuallyEncrypted(): boolean {\r\n return this._isVisuallyEncrypted;\r\n }\r\n\r\n public override set isVisuallyEncrypted(val: boolean) {\r\n if (this._isVisuallyEncrypted === val)\r\n return;\r\n\r\n this._isVisuallyEncrypted = val;\r\n this.element.classList.toggle(\"encrypted\", val);\r\n this._label.classList.toggle(\"encrypted-symbol\", val);\r\n this._label.classList.toggle(\"icon\", val);\r\n this._label.classList.toggle(\"user-lock\", val);\r\n }\r\n\r\n constructor(params: ControlParams) {\r\n super(params);\r\n const { element } = params;\r\n\r\n element.classList.remove(\"EditableControl\");\r\n element.classList.add(\"CheckBox\");\r\n\r\n this.displayFormat = element.getAttribute(\"data-displayformat\");\r\n\r\n this.innerElement = this._createCheckBox();\r\n\r\n this.element.appendChild(this.innerElement);\r\n\r\n const locKey = element.getAttribute(\"data-captionLocKey\");\r\n this._label = document.createElement(\"label\");\r\n this._label.htmlFor = this.innerElement.id;\r\n\r\n if (locKey) {\r\n Localization.addLocData(this._label, locKey, Localization.TEXT_CONTENT, \"title\");\r\n this._label.classList.add(\"Caption\");\r\n }\r\n\r\n this.element.appendChild(this._label);\r\n\r\n /*\r\n this.InnerElement.addEventListener('change', () => {\r\n this.ValueChanged.trigger(this, { Sender: this });\r\n });\r\n */ //vola se dvakrat za sebou :-(\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene povinne pole\r\n */\r\n public override isFilledRequiredControl(): boolean {\r\n const isFilledRequiredControl = !(this.required && this.controlValue == null);\r\n\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || isFilledRequiredControl;\r\n }\r\n\r\n return isFilledRequiredControl;\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene doporucene pole\r\n */\r\n public override isFilledRecommendedControl(): boolean {\r\n const isFilledRecommendedControl = !(this.recommended && this.controlValue == null);\r\n\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || isFilledRecommendedControl;\r\n }\r\n\r\n return isFilledRecommendedControl;\r\n }\r\n\r\n /**\r\n * Kontrola jestli je vyplnene postponed pole\r\n */\r\n public override isFilledPostponedControl(): boolean {\r\n const isFilledPostponedControl = !(this.postponedRequired && this.controlValue == null && this.visible);\r\n\r\n if (this instanceof IMultiEdit && this.multiEditActive) {\r\n return !this.touched || isFilledPostponedControl;\r\n }\r\n\r\n return isFilledPostponedControl;\r\n }\r\n\r\n protected _createCheckBox(): CheckBoxInput {\r\n const checkBox = createElement({ type: \"input\", attrs: { \"type\": \"checkbox\" } }) as CheckBoxInput;\r\n\r\n checkBox.type = \"checkbox\";\r\n checkBox.indeterminate = true;\r\n checkBox.id = UIManager.instance.generateElementID();\r\n\r\n Object.defineProperty(checkBox, \"tscValue\", {\r\n get: function() {\r\n return !(this as Element).getAttribute(\"value\") ? null : (this as Element).getAttribute(\"value\") === \"true\"; /* atribut value má vždy textovou hodnotu */\r\n },\r\n set: function(value: boolean | string | number) {\r\n const t: CheckBoxInput = this as CheckBoxInput;\r\n CheckBoxUtils.setCheckValue(t, value);\r\n },\r\n });\r\n\r\n checkBox.tscValue = DataConverter.toBoolean(this.element.getAttribute(\"value\"), null); //pocatecni hodnota checkboxu\r\n\r\n checkBox.addEventListener(\"click\", this._listenerClick = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n\r\n if (e.ctrlKey || e.metaKey) // Zobrazení informací o komponentě\r\n return;\r\n\r\n const t = e.target as CheckBoxInput;\r\n const owner = (t.parentNode as any).tscControl as CheckBox;\r\n\r\n if ((!owner || owner.isEditing) && this._isActive) {\r\n switch (t.tscValue) {\r\n case false:\r\n if (this.required || !this.displayFormat3S)\r\n t.tscValue = true;\r\n else\r\n t.tscValue = null;\r\n break;\r\n\r\n // checked na unchecked\r\n case true:\r\n t.tscValue = false;\r\n break;\r\n\r\n // indeterminate na checked\r\n default:\r\n t.tscValue = true;\r\n }\r\n\r\n // pokud bychom chteli vyvolavat i klasicky HTML event change\r\n /*\r\n var evt = document.createEvent(\"HTMLEvents\");\r\n evt.initEvent(\"change\", true, true);\r\n t.dispatchEvent(evt);\r\n */\r\n\r\n if (owner)\r\n owner.valueChanged.trigger(owner, t.tscValue);\r\n }\r\n });\r\n checkBox.addEventListener(\"focus\", this._listenerFocus = (e: FocusEvent) => {\r\n this.getFocus.trigger(this, e);\r\n this.element.classList.add(\"focused\");\r\n });\r\n checkBox.addEventListener(\"blur\", this._listenerBlur = (e: FocusEvent) => {\r\n this.lostFocus.trigger(this, e);\r\n this.element.classList.remove(\"focused\");\r\n });\r\n return checkBox;\r\n }\r\n\r\n /**\r\n * Vrati hodnotu editu\r\n */\r\n public override get controlValue(): boolean {\r\n return this.innerElement.tscValue;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public override set controlValue(value: boolean) {\r\n this.innerElement.tscValue = value;\r\n }\r\n\r\n public override startEdit(): void {\r\n this.innerElement.click();\r\n }\r\n\r\n protected override _editableControlClicked(_sender: EditableControl, _event: MouseEvent): void {\r\n // Focus checkbox after clicking on EditableControl.\r\n this.innerElement.focus();\r\n }\r\n\r\n //destruktor\r\n public override dispose(): void {\r\n const checkBox = document.createElement(\"input\") as CheckBoxInput;\r\n checkBox.removeEventListener(\"click\", this._listenerClick);\r\n checkBox.removeEventListener(\"focus\", this._listenerFocus);\r\n checkBox.removeEventListener(\"blur\", this._listenerBlur);\r\n\r\n this.innerElement = null;\r\n super.dispose();\r\n }\r\n}\r\n","import { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { UIManager } from \"../UIManager\";\r\nimport { CheckBox, CheckBoxInput } from \"./CheckBox\";\r\nimport { ControlParams } from \"./ControlInterfaces\";\r\n\r\nexport class CheckBox2s extends CheckBox {\r\n constructor(params: ControlParams) {\r\n super(params);\r\n this.element.classList.add(\"CheckBox2s\");\r\n }\r\n\r\n protected override _createCheckBox(): CheckBoxInput {\r\n const checkBox = createElement({ type: \"input\", attrs: { \"type\": \"checkbox\" } }) as CheckBoxInput;\r\n checkBox.indeterminate = true;\r\n checkBox.id = UIManager.instance.generateElementID();\r\n\r\n Object.defineProperty(checkBox, \"tscValue\", {\r\n get: function() {\r\n return !(this as Element).getAttribute(\"value\") ? null : (this as Element).getAttribute(\"value\") === \"true\"; /* atribut value má vždy textovou hodnotu */\r\n },\r\n set: function(value: boolean | string | number) {\r\n const t: CheckBoxInput = this as CheckBoxInput;\r\n switch (value) {\r\n case true:\r\n case \"true\":\r\n case 1:\r\n t.setAttribute(\"value\", \"true\");\r\n t.indeterminate = false;\r\n t.checked = true;\r\n break;\r\n\r\n // checked na unchecked\r\n case false:\r\n case \"false\":\r\n case 0:\r\n default:\r\n t.setAttribute(\"value\", \"false\");\r\n t.indeterminate = false;\r\n t.checked = false;\r\n break;\r\n }\r\n },\r\n });\r\n\r\n checkBox.tscValue = false; //pocatecni hodnota checkboxu\r\n\r\n checkBox.addEventListener(\"click\", this._listenerClick = (e) => {\r\n const t = e.target as CheckBoxInput;\r\n const owner = (t.parentNode as any).tscControl as CheckBox;\r\n\r\n if ((!owner || owner.isEditing) && !checkBox.readOnly) {\r\n switch (t.tscValue) {\r\n case false:\r\n t.tscValue = true;\r\n break;\r\n // checked na unchecked\r\n case true:\r\n t.tscValue = false;\r\n break;\r\n }\r\n\r\n if (owner)\r\n owner.valueChanged.trigger(owner, t.tscValue);\r\n }\r\n });\r\n\r\n return checkBox;\r\n }\r\n}\r\n","import { EMPTY_ITEM_RIGHTS_COLLECTION } from \"Global/Base/Rights/RightTypes\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { EventHelper } from \"../../../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { Action } from \"../../../../../UI.Controls/Actions/Action\";\r\nimport { DropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { CheckBox2s } from \"../../../Controls/CheckBox2s\";\r\n\r\nexport class DropDownMenuCheckboxItem extends DropDownMenuItem {\r\n private _checkboxItem: CheckBox2s;\r\n private _value: any;\r\n private _valueType: string;\r\n private _container: HTMLElement;\r\n\r\n public valueId: string;\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n public get isChecked(): boolean {\r\n return this._checkboxItem.controlValue;\r\n }\r\n\r\n public set isChecked(v: boolean) {\r\n this._checkboxItem.controlValue = v;\r\n }\r\n\r\n /**\r\n * Hodnota, ktera se preda pokud je zaskrtnutny\r\n */\r\n public get value(): any {\r\n return this._value;\r\n }\r\n\r\n public set value(v: any) {\r\n this._value = v;\r\n }\r\n\r\n public get valueType(): string {\r\n return this._valueType;\r\n }\r\n\r\n public set valueType(v: string) {\r\n this._valueType = v;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n //this.Priority = ;\r\n //this.locKey = locKey;\r\n this.visible = true;\r\n //if (subMenu) this.Submenu = subMenu;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"CheckboxItem\");\r\n this._container = createElement({ type: \"div\", classes: \"container\" });\r\n const checkElement = document.createElement(\"div\");\r\n this._checkboxItem = new CheckBox2s({ element: checkElement, originalRightsDefinition: EMPTY_ITEM_RIGHTS_COLLECTION });\r\n this._createCaptionElement();\r\n\r\n this._container.appendChild(checkElement);\r\n this._container.appendChild(this._captionElement);\r\n\r\n this.appendChild(this._container);\r\n\r\n this.action = new Action(async () => {\r\n this._checkboxItem.controlValue = !this._checkboxItem.controlValue;\r\n });\r\n this.noCloseAfterSelect = true;\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n }\r\n\r\n protected override _setListener(): void {\r\n super._setListener();\r\n this._checkboxItem.element.addEventListener(\"click\", (e: MouseEvent) => { // prevzato z DropDownMenuItem\r\n if (e.button === 0) {\r\n e.preventDefault(); // event se spoustel 2x\r\n EventHelper.stopImmediatePropagation(e);\r\n if (!this.classList.contains(\"Disabled\")) {\r\n if (this.action instanceof Action) {\r\n (this.action as Action).execute();\r\n }\r\n if (!this.noCloseAfterSelect)\r\n this.parent.closeAll();\r\n\r\n this.callEvent(\"change\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuCheckboxItem\", DropDownMenuCheckboxItem);\r\n","import { StringUtils } from \"../../../../../../Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { GenericControl } from \"../../../../../UI.BaseControls/GenericControl\";\r\nimport { EventHelper } from \"../../../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { DropDownButtonItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownButtonItem\";\r\nimport { IDropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { DropDownMenu } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { SeparatorMenuItem } from \"../../../../../UI.Controls/DropDownMenu/SeparatorItem\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuCheckboxItem } from \"../DropDownMenuItems/DropDownMenuCheckboxItem\";\r\nimport { IFilterUserValue } from \"../FilterInterfaces\";\r\n\r\nexport class BaseAdvancedFilters extends Control implements IFilterUserValue {\r\n protected _chbitems: Array<IDropDownMenuItem>;\r\n protected _menu: DropDownMenu;\r\n\r\n public get menu(): DropDownMenu {\r\n return this._menu;\r\n }\r\n\r\n protected _appendValueSection: HTMLElement;\r\n protected _selectedItems: Array<{ id: string; captionHTML: string; item: DropDownMenuCheckboxItem }>;\r\n\r\n public get items(): Array<IDropDownMenuItem> {\r\n return this._chbitems;\r\n }\r\n\r\n public get value(): any {\r\n const v = [];\r\n for (const val of this.items) {\r\n const v2 = val as DropDownMenuCheckboxItem;\r\n if (v2.isChecked)\r\n v.push(v2.value);\r\n }\r\n\r\n return v.join(\", \");\r\n }\r\n\r\n public set value(v: any) {\r\n const val = v.split(\", \");\r\n this.unselectedAll();\r\n for (const z of val) {\r\n this.selectItemByValue(z);\r\n }\r\n }\r\n\r\n public get userValue(): any {\r\n const v = [];\r\n for (const val of this.items) {\r\n const v2 = val as DropDownMenuCheckboxItem;\r\n if (v2.isChecked)\r\n v.push(v2.innerText);\r\n }\r\n\r\n return v.join(\", \");\r\n }\r\n\r\n public set userValue(values: any) {\r\n if (!values) {\r\n return;\r\n }\r\n\r\n this._setUserValue(values);\r\n }\r\n\r\n public addItems(items: Array<{ id: string; value: any; valueType: string; lockey: string; captionHtml?: string; isChecked?: boolean }>): void {\r\n for (const item of items) {\r\n if (item == undefined) {\r\n this._chbitems.push(new SeparatorMenuItem());\r\n continue;\r\n }\r\n const m = new DropDownMenuCheckboxItem();\r\n if (item.captionHtml)\r\n m.setCaption(item.captionHtml);\r\n else {\r\n m.setLocalizedCaption(item.lockey);\r\n m.locKey = item.lockey;\r\n }\r\n m.isChecked = item.isChecked || false;\r\n m.value = item.value;\r\n m.valueType = item.valueType;\r\n m.valueId = item.id;\r\n\r\n this._chbitems.push(m);\r\n this._menu.addItem(m);\r\n }\r\n\r\n const m = new DropDownButtonItem();\r\n m.addItem(\"GUI-1\", async (e) => { // OK\r\n EventHelper.stopImmediatePropagation(e);\r\n this._selectedItems = [];\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem && item.isChecked) {\r\n this._selectedItems.push({ id: item.valueId, captionHTML: await item.getCaption(), item: item });\r\n }\r\n }\r\n\r\n this._appendSelectedValue();\r\n\r\n m.parent.close();\r\n });\r\n\r\n m.addItem(\"GUI-2\", (e) => { // Cancel\r\n EventHelper.stopImmediatePropagation(e);\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n item.isChecked = false;\r\n }\r\n }\r\n\r\n for (const si of this._selectedItems) {\r\n si.item.isChecked = true;\r\n }\r\n\r\n this._appendSelectedValue();\r\n m.parent.close();\r\n });\r\n\r\n this._menu.addItem(m);\r\n }\r\n\r\n public unselectedAll(): void {\r\n this._selectedItems = [];\r\n\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n item.isChecked = false;\r\n }\r\n }\r\n\r\n this._appendValueSection.innerHTML = \"\";\r\n }\r\n\r\n public async selectItemByValue(val: any): Promise<void> {\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n if (item.value == val) {\r\n item.isChecked = true;\r\n if (this._selectedItems.find(it => it.id == (item as DropDownMenuCheckboxItem).valueId) == null)\r\n this._selectedItems.push({ id: item.valueId, captionHTML: await item.getCaption(), item: item });\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._appendSelectedValue();\r\n }\r\n\r\n private _appendSelectedValue(): void {\r\n this._appendValueSection.innerHTML = \"\";\r\n const f_createElement = (item: { id: string; captionHTML: string; item: DropDownMenuCheckboxItem }) => {\r\n const oneitem = createElement({\r\n html: `<span>${StringUtils.stringToHTMLText(item.captionHTML)}</span>`,\r\n classes: \"FilterValue\",\r\n attrs: { //`\r\n \"data-filter-id\": item.id,\r\n },\r\n });\r\n\r\n // pokud je caption prazdny a polozka ma nactene lokalizace\r\n if (StringUtils.isNullOrEmpty(item.captionHTML) && item.item.locKey) {\r\n Localization.addLocData(oneitem, item.item.locKey);\r\n }\r\n\r\n const removeElement = createElement({ classes: \"Icon Remove\" });\r\n\r\n GenericControl.registerEventListener(removeElement, \"click\", () => {\r\n item.item.isChecked = false;\r\n let i = 0;\r\n for (const sv of this._selectedItems) {\r\n if (sv.item == item.item)\r\n break;\r\n i++;\r\n }\r\n this._selectedItems.splice(i, 1);\r\n oneitem.remove();\r\n });\r\n\r\n oneitem.appendChild(removeElement);\r\n\r\n return oneitem;\r\n };\r\n for (const sv of this._selectedItems) {\r\n this._appendValueSection.appendChild(f_createElement(sv));\r\n }\r\n }\r\n\r\n /**\r\n * Zpracuje uživatelský vstup do hodnoty komponenty\r\n * @param values Uživatelský vstup\r\n */\r\n protected async _setUserValue(values: any): Promise<void> {\r\n const userValues = values.split(\", \");\r\n const valueList = [];\r\n\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n const caption = await item.getCaption();\r\n\r\n if (userValues.includes(caption)) {\r\n valueList.push(item.value);\r\n }\r\n }\r\n }\r\n\r\n this.value = valueList.join(\", \");\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._selectedItems = [];\r\n this._chbitems = [];\r\n const btnSection = createElement({ classes: \"BtnSection\" });\r\n const icon = createElement({ classes: \"icon doc-list FilterMultiItem\" });\r\n const arrow = createElement({ classes: \"icon ui-arrow-bottom ArrowDown\" });\r\n this._appendValueSection = createElement({ classes: \"AppendValueSection\" });\r\n\r\n btnSection.appendChild(icon);\r\n btnSection.appendChild(arrow);\r\n\r\n this.appendChild(btnSection);\r\n this.appendChild(this._appendValueSection);\r\n\r\n this._menu = new DropDownMenu();\r\n\r\n this._menu.addEventListener(\"open\", () => {\r\n for (const item of this._chbitems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n item.isChecked = false;\r\n }\r\n }\r\n\r\n for (const si of this._selectedItems) {\r\n si.item.isChecked = true;\r\n }\r\n });\r\n\r\n btnSection.addEventListener(\"click\", (e) => {\r\n this._menu.show(btnSection, e);\r\n });\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-BaseAdvancedFilters\", BaseAdvancedFilters);\r\n","import { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { BaseAdvancedFilters } from \"./BaseAdvancedFilters\";\r\n\r\nexport class DaysListAdvancedFilter extends BaseAdvancedFilters {\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.addItems([\r\n { value: 1, id: \"Monday\", lockey: \"GUI-300874\", valueType: \"daylist\" }, //pondělí\r\n { value: 2, id: \"Tuesday\", lockey: \"GUI-300876\", valueType: \"daylist\" }, //úterý\r\n { value: 3, id: \"Wednesday\", lockey: \"GUI-300878\", valueType: \"daylist\" }, //středa\r\n { value: 4, id: \"Thursday\", lockey: \"GUI-300880\", valueType: \"daylist\" }, //čtvrtek\r\n { value: 5, id: \"Friday\", lockey: \"GUI-300882\", valueType: \"daylist\" }, //pátek\r\n { value: 6, id: \"Saturday\", lockey: \"GUI-300884\", valueType: \"daylist\" }, //sobota\r\n { value: 0, id: \"Sunday\", lockey: \"GUI-300886\", valueType: \"daylist\" }, //neděle\r\n ]);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DaysListAdvancedFilter\", DaysListAdvancedFilter);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const logger = LazyLoadingSectionLogger.create(LoggingSection.filters);\r\n","import { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { CaseInsensitiveMap } from \"../../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { StringUtils } from \"../../../../../../Global/Base/Utils/StringUtils\";\r\nimport { ModelDescriptionsManager } from \"../../../../../../OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { EnumType } from \"../../../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { OWManager } from \"../../../../../../OW.Remoting/Remoting/OWManager\";\r\nimport { Edit } from \"../../../../../UI.BaseControls/Edit\";\r\nimport { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IFilterUserValue } from \"../FilterInterfaces\";\r\nimport { logger } from \"../logger\";\r\n\r\nexport class EnumFilterEdit extends Edit implements IFilterUserValue {\r\n private _enumType: EnumType;\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private _enumName: string;\r\n private static _enumsType: CaseInsensitiveMap<EnumType> = new CaseInsensitiveMap<EnumType>();\r\n\r\n private _className: string;\r\n private _attrName: string;\r\n private _filterType: string;\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n this.classList.add(\"EnumFilterEdit\");\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"data-classname\", \"data-attrname\", \"filter-item-id\"].concat(Edit.observedAttributes);\r\n }\r\n\r\n public override set value(val: any) {\r\n this.controlValue = val;\r\n }\r\n\r\n public override get value(): any {\r\n const val = this.controlValue;\r\n const vals = [-1]; //pomocná hodnota pro použití v podmínce. Ošetřuje situace, kdy není vybraná žádná hodnota a podmínka by obsahovala prázdnou množinu, což by vedlo k chybě.\r\n\r\n if (!val)\r\n return null;\r\n if (!this._enumType)\r\n return vals.join(\", \");\r\n\r\n for (const item of this._enumType.descriptions) {\r\n if (this._compareFnc(val, item.Description))\r\n vals.push(item.IntValue);\r\n }\r\n\r\n return vals.join(\", \");\r\n }\r\n\r\n public get userValue(): any {\r\n return this.controlValue;\r\n }\r\n\r\n public set userValue(v: any) {\r\n this.value = v;\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"data-classname\":\r\n this._className = newVal;\r\n if (!this._loadSyncEnumInfo())\r\n this._loadEnumInfo();\r\n break;\r\n case \"data-attrname\":\r\n this._attrName = newVal;\r\n if (!this._loadSyncEnumInfo())\r\n this._loadEnumInfo();\r\n break;\r\n case \"filter-item-id\":\r\n this._filterType = newVal;\r\n break;\r\n }\r\n }\r\n\r\n protected _compareFnc(value: string, enumValue: string): boolean {\r\n enumValue = StringUtils.removeAccents(enumValue.toUpperCase());\r\n value = StringUtils.removeAccents(value.toUpperCase());\r\n value = value.split(\"*\").join(\".*?\");\r\n\r\n //is funguje jako contain pokud je použita *\r\n const filterType = (this._filterType == \"is\" || this._filterType == \"not_is\") && value.indexOf(\"*\") > -1 ? \"contain\" : this._filterType;\r\n switch (filterType) {\r\n case \"start_with\":\r\n case \"not_start_with\":\r\n return enumValue.search(`^${value}`) > -1;\r\n case \"end_with\":\r\n case \"not_end_with\":\r\n return enumValue.search(`${value}$`) > -1;\r\n case \"is\":\r\n case \"not_is\":\r\n return enumValue == value;\r\n default:\r\n return enumValue.search(value) != -1;\r\n }\r\n }\r\n\r\n private _loadSyncEnumInfo(): boolean {\r\n if (!this._attrName || !this._className)\r\n return false;\r\n const index = `${this._className}|${this._attrName}`; // `\r\n if (EnumFilterEdit._enumsType.has(index)) {\r\n this._enumType = EnumFilterEdit._enumsType.get(index);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private async _loadEnumInfo(): Promise<void> {\r\n if (!this._attrName || !this._className)\r\n return;\r\n\r\n const attrInfo = await ModelDescriptionsManager.instance.getAttributesInfo(this._className, [this._attrName]);\r\n\r\n if (!attrInfo || attrInfo.length == 0) {\r\n logger.error(\"Attribute info not loaded\");\r\n return;\r\n }\r\n\r\n if (attrInfo[0].type !== OWDataType.enum) {\r\n logger.error(\"Input type is not enum (%s)\", attrInfo[0].type);\r\n return;\r\n }\r\n\r\n const enumName = attrInfo[0].additionalTypeName;\r\n this._enumName = enumName;\r\n\r\n this._enumType = await OWManager.getEnum(enumName);\r\n EnumFilterEdit._enumsType.set(`${this._className}|${this._attrName}`, this._enumType);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-EnumFilterEdit\", EnumFilterEdit);\r\n","import { IRowData } from \"@multiweb/types/contracts\";\r\nimport { ConditionParams, IDataSource, IDataSourceLoadInfo, IDataSourceLoadInfoBase, IOrderBy, IRecordsInfo } from \"../../../Global/Base/DataSources/Interfaces\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { NotImplementedException } from \"../../../Global/Base/Exceptions\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { CancellationToken } from \"../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { IActualObjectChangeEventArgs } from \"./EditableDBDataSource\";\r\n/**\r\n * Datový zdroj pro obecné pole objektů\r\n */\r\nexport class ArrayDataSource<T extends object> implements IDataSource, IDisposable {\r\n protected _internalCollection: T[];\r\n protected _internalRows: IRowData[];\r\n\r\n protected _attrs: string[] = [];\r\n\r\n /**\r\n * Inicializuje datový zdroj\r\n * @param initialData Kolekce objektů, které má DS vracet.\r\n * @param dataKeyColumnName Název property, která se použije jako klíč objektu.\r\n * @param replacingAttrNames Jména atributu, které je potřeba přejmenovat, aby odpovídali attrName co jsou na objektu\r\n */\r\n public init(initialData: T[], dataKeyColumnName: string, _replacingAttrNames?: { originalName: string; newName: string }[]): void {\r\n this._internalCollection = initialData || [];\r\n this._internalRows = [];\r\n this._attrs = [];\r\n this.dataKey = \"ID\"; //Framework bohužel počítá s tím, že ID je přítomno v IRowData. (hledat data.ID), proto je potřeba držet stejnou konvenci a atribut ID přidat, pokud ho objekty nemají\r\n\r\n for (const obj of this._internalCollection) {\r\n const dr = {} as IRowData;\r\n for (const key in obj) {\r\n const validAttrName = key.toLocaleLowerCase(); //Od changesetu 35049[JB] jsou názvy sloupců automaticky převáděny na lowerCase. Ve starších verzích to zřejmě bude potřeba opravit bez lowerCase\r\n if (key === dataKeyColumnName && dataKeyColumnName !== \"ID\")\r\n dr[\"ID\"] = Reflect.get(obj, key).toString();\r\n if (!this._attrs.includes(validAttrName))\r\n this._attrs.push(validAttrName);\r\n if (typeof obj[key] !== \"function\") {\r\n dr[validAttrName] = Reflect.get(obj, key);\r\n }\r\n }\r\n this._internalRows.push(dr);\r\n }\r\n }\r\n\r\n //#region Events\r\n /**\r\n * Vraci startindex pro cteni dat\r\n */\r\n public dataLoaded: Event<IDataSource, IDataSourceLoadInfo> = new Event<IDataSource, IDataSourceLoadInfo>();\r\n\r\n public error: Event<ArrayDataSource<T>, any> = new Event<ArrayDataSource<T>, any>();\r\n\r\n /**\r\n * Pokud je zrušeno načítání dat\r\n */\r\n public loadingCancelled: Event<ArrayDataSource<T>, any> = new Event<ArrayDataSource<T>, IDataSourceLoadInfoBase>();\r\n\r\n /**\r\n * Pokud je spuštěno načítání dat\r\n */\r\n public loadingStarted: Event<ArrayDataSource<T>, any> = new Event<ArrayDataSource<T>, any>();\r\n\r\n /**\r\n * Pokud je ukončeno načítání dat\r\n */\r\n public loadingEnded: Event<ArrayDataSource<T>, IDataSourceLoadInfoBase> = new Event<ArrayDataSource<T>, IDataSourceLoadInfoBase>();\r\n\r\n /**\r\n * Vraci radek a zmeneny atribut\r\n */\r\n public readonly attributesChanged: Event<ArrayDataSource<T>, IActualObjectChangeEventArgs> = new Event<ArrayDataSource<T>, IActualObjectChangeEventArgs>();\r\n\r\n //#endregion Events\r\n\r\n //#region Fields\r\n\r\n public dataKey: string;\r\n public className: string;\r\n public orderBy: IOrderBy[];\r\n public condition: string;\r\n public conditionParams?: ConditionParams;\r\n //#endregion Fields\r\n\r\n /**\r\n * Vrací podmínku potřebnou pro načtení dat\r\n */\r\n public getOriginalCondition(): string {\r\n throw new NotImplementedException();\r\n }\r\n\r\n public getAttrs(): string[] {\r\n return this._attrs;\r\n }\r\n\r\n public getFullLengthAttrs(): string[] {\r\n return [];\r\n }\r\n\r\n public setAttrs(attrs: string[]): void {\r\n this._attrs = attrs;\r\n }\r\n public async setAttrsAndLoad(_attrs: string[], _cancellationToken?: CancellationToken): Promise<any> {\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Smaže dočtené záznamy v datasoursu\r\n * */\r\n public clearData(): void {\r\n this._internalRows = [];\r\n const dsLoadInfo: IDataSourceLoadInfo = {\r\n startIndex: 0,\r\n dataGenerator: this._getIterator.bind(this, 0, 0),\r\n lastBatch: false,\r\n isFiltered: false,\r\n refreshedData: false,\r\n emptyData: true,\r\n };\r\n this.dataLoaded.trigger(this, dsLoadInfo);\r\n }\r\n\r\n public async loadNewData(keepSelectedRecords?: boolean, cancellationToken?: CancellationToken): Promise<IRowData[]> {\r\n this.loadingStarted.trigger(this, 0);\r\n const dsLoadInfo: IDataSourceLoadInfo = {\r\n startIndex: 0,\r\n dataGenerator: this._getIterator.bind(this, 0, this._internalRows.length),\r\n lastBatch: true,\r\n isFiltered: false/*this._filterCondition != \"\"*/,\r\n refreshedData: false,\r\n cancellationToken: cancellationToken,\r\n emptyData: false,\r\n keepSelectedRecords: keepSelectedRecords,\r\n };\r\n this.dataLoaded.trigger(this, dsLoadInfo);\r\n this.loadingEnded.trigger(this, dsLoadInfo);\r\n return this._internalRows;\r\n }\r\n public getNextData(_startIndex?: number, _count?: number, keepSelectedRecords?: boolean, cancellationToken?: CancellationToken): Promise<any> {\r\n return this.loadNewData(keepSelectedRecords, cancellationToken);\r\n }\r\n public refreshData(_fetchCount?: number, _manualRefresh?: boolean, _cancellationToken?: CancellationToken): Promise<any> {\r\n return Promise.resolve();\r\n }\r\n public waitForReload(_ct?: CancellationToken): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n\r\n public [Symbol.iterator](): Iterator<IRowData> {\r\n if (!this._internalRows)\r\n this._internalRows = new Array<IRowData>();\r\n\r\n return this._internalRows[Symbol.iterator]();\r\n }\r\n public setFilterCondition(_condition: string): void {\r\n throw new NotImplementedException();\r\n }\r\n public getFilterCondition(): string {\r\n throw new NotImplementedException();\r\n }\r\n /**\r\n * Vrací true, pokud je datasource filtrován.\r\n */\r\n public get hasFilterCondition(): boolean {\r\n return false;\r\n }\r\n protected *_getIterator(startIndex: number, count?: number): IterableIterator<IRowData> {\r\n const maxIndex = count ? Math.min(startIndex + count, this._internalRows.length) : this._internalRows.length;\r\n for (let i = startIndex; i < maxIndex; i++)\r\n yield this._internalRows[i];\r\n }\r\n\r\n public dispose(): void {\r\n // Prázdná metoda\r\n }\r\n\r\n /**\r\n * Metoda pro dočtení jednoho určitého záznamu\r\n * @param _dataKey Datový klíč (většinou ID) k načtení\r\n * @param _selectLoaded Příznak, zda se dočtené záznamy mají označit\r\n */\r\n public async loadSpecificRecord(_dataKey: string, _selectLoaded: boolean = false, _cancellationToken: CancellationToken = CancellationToken.none): Promise<IRowData> {\r\n throw new NotImplementedException();\r\n }\r\n\r\n /**\r\n * Metoda pro dočtení určitých záznamů\r\n * @param _dataKeys Pole datových klíčů (většinou ID) k načtení\r\n * @param _selectLoaded Příznak, zda se dočtené záznamy mají označit\r\n */\r\n public async loadSpecificRecords(_dataKeys: string[], _selectLoaded: boolean = false, _cancellationToken: CancellationToken = CancellationToken.none): Promise<IRowData[]> {\r\n throw new NotImplementedException();\r\n }\r\n\r\n /*\r\n * Vrací počet zadaných záznamů pro aktuálně nastavený filtr\r\n */\r\n public async count(): Promise<IRecordsInfo> {\r\n return {\r\n isFiltered: false,\r\n totalCount: this._internalRows.length,\r\n };\r\n }\r\n}\r\n\r\nexport class ArrayMSLOVDataSource<T extends object> extends ArrayDataSource<T> {\r\n /**\r\n * Inicializuje datový zdroj\r\n * @param initialData Kolekce objektů, které má DS vracet.\r\n * @param dataKeyColumnName Název property, která se použije jako klíč objektu.\r\n * @param replacingAttrNames Jména atributu, které je potřeba přejmenovat, aby odpovídali attrName co jsou na objektu\r\n */\r\n public override init(initialData: T[] | undefined, dataKeyColumnName: string, replacingAttrNames?: { originalName: string; newName: string }[]): void {\r\n this._internalCollection = initialData || [];\r\n this._internalRows = [];\r\n this._attrs = [];\r\n this.dataKey = \"ID\"; //Framework bohužel počítá s tím, že ID je přítomno v IRowData. (hledat data.ID), proto je potřeba držet stejnou konvenci a atribut ID přidat, pokud ho objekty nemají\r\n\r\n for (const obj of this._internalCollection) {\r\n const dataRow = {} as IRowData;\r\n for (const key in obj) {\r\n let validAttrName = key.toLocaleLowerCase(); //Od changesetu 35049[JB] jsou názvy sloupců automaticky převáděny na lowerCase. Ve starších verzích to zřejmě bude potřeba opravit bez lowerCase\r\n\r\n if (replacingAttrNames) {\r\n const replacingAttrName = replacingAttrNames.find(e => e.originalName === validAttrName);\r\n validAttrName = replacingAttrName ? replacingAttrName.newName : validAttrName;\r\n }\r\n if (key === dataKeyColumnName && dataKeyColumnName !== \"ID\")\r\n dataRow[\"ID\"] = Reflect.get(obj, key).toString();\r\n if (!this._attrs.includes(validAttrName))\r\n this._attrs.push(validAttrName);\r\n if (typeof obj[key] !== \"function\") {\r\n dataRow[validAttrName] = Reflect.get(obj, key);\r\n }\r\n }\r\n\r\n this._internalRows.push({ preselect: dataRow.active, data: dataRow });\r\n }\r\n }\r\n}\r\n","import { IAttrValue, IRowData } from \"@multiweb/types/contracts\";\r\nimport { ObjectUtils } from \"Global/Base/Utils/ObjectUtils\";\r\nimport { IAttrStringValue } from \"../../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Checkbox } from \"../../../UI.BaseControls/Checkbox\";\r\nimport { createElement, registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IListDataGrid } from \"../../IDataGrid\";\r\nimport { Column } from \"../Columns/Column\";\r\nimport { ListDataRow } from \"./ListDataRow\";\r\nimport { TableCell } from \"./TableCell\";\r\n\r\nexport class CheckedDataRow extends ListDataRow {\r\n private _checkboxElement: Checkbox;\r\n //Příznak indikující zkrácení některé z hodnot na řádku.\r\n private _isSomeValueShortened: boolean;\r\n\r\n public isDisabled = false;\r\n\r\n public get isChecked(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isChecked\")) return false;\r\n\r\n if (this._checkboxElement)\r\n return this._checkboxElement.checked;\r\n return this.classList.contains(\"checkedItem\");\r\n }\r\n\r\n public set isChecked(v: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isChecked\")) return;\r\n\r\n if (this.isDisabled) return;\r\n if (this._checkboxElement)\r\n this._checkboxElement.checked = v;\r\n this.classList.toggle(\"checkedItem\", v);\r\n }\r\n\r\n public override get isSelected(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isSelected\")) return false;\r\n\r\n return this._dataGrid.selectedRows.indexOf(this) != -1;\r\n }\r\n\r\n public override set isSelected(value: boolean) {\r\n if (this.checkAndLogDisposedUsage(\"set isSelected\")) return;\r\n\r\n if (value) {\r\n if (this._dataGrid.selectedRows.indexOf(this) === -1)\r\n this._dataGrid.selectedRows.push(this);\r\n } else {\r\n this._dataGrid.selectedRows.splice(this._dataGrid.selectedRows.indexOf(this), 1);\r\n this._dataGrid.deselectRow(this.dataKey);\r\n }\r\n\r\n if (this.isChecked === value)\r\n return;\r\n\r\n this.isChecked = value;\r\n }\r\n\r\n public get values(): string {\r\n if (this.checkAndLogDisposedUsage(\"get values\")) return \"\";\r\n\r\n return Array.from(this.children).map((item) => item.textContent).join(\"\").trim();\r\n }\r\n\r\n /**Pokud je některá z hodnot v řádku zkrácena, vrací true. */\r\n public get isSomeValueShortened(): boolean {\r\n if (this.checkAndLogDisposedUsage(\"get isSomeValueShortened\")) return false;\r\n\r\n return this._isSomeValueShortened;\r\n }\r\n\r\n public override init(dataRow: IRowData, ownerGrid: IListDataGrid<CheckedDataRow>, controlElement: HTMLElement): void {\r\n if (this.checkAndLogDisposedUsage(\"init\")) return;\r\n\r\n this._controlElement = controlElement;\r\n this._dataGrid = ownerGrid;\r\n this._dataCells = new Array<TableCell>();\r\n\r\n this.isDisabled = dataRow[\"disabled\"] == true;\r\n\r\n this.dataKey = dataRow[this._dataGrid.dataSource.dataKey].valueOf();\r\n //this.DataKey = data\r\n //if (this.DataKey == undefined) throw Error(\"DataRow has invalid dataKey\");\r\n\r\n const dataRowCaseInsensitive = ObjectUtils.getPropertiesCaseInsensitive<IAttrValue>(dataRow);\r\n for (let i: number = 0; i < this._dataGrid.columns.length; i++) {\r\n const column: Column = this._dataGrid.columns[i];\r\n // Kvuli LOVAttribute musi byt Object data jako pole, protoze obsahuje vic zobrazovatelnych atributu\r\n const data: Array<IAttrValue> = [];\r\n this._isSomeValueShortened = false;\r\n for (const d of column.attrNames) {\r\n const attrValue = dataRowCaseInsensitive.get(d);\r\n\r\n if (!this._isSomeValueShortened && attrValue instanceof IAttrStringValue && attrValue.shortened)\r\n this._isSomeValueShortened = true;\r\n\r\n data.push(attrValue);\r\n }\r\n\r\n const cell: TableCell = new TableCell(this._dataGrid, this, i, column, data);\r\n if (!this.dataKey)\r\n this.dataKey = cell.dataSet[0].valueOf();\r\n\r\n this._dataCells.push(cell);\r\n }\r\n\r\n if (this.isDisabled)\r\n this.classList.add(\"isDisabled\");\r\n\r\n //this.dataRow = row;\r\n }\r\n\r\n /**\r\n * Kliknuti na radek\r\n */\r\n protected async _clickEvt(_evt: MouseEvent): Promise<void> {\r\n if (this.checkAndLogDisposedUsage(\"_clickEvt\")) return;\r\n\r\n if (!this._dataGrid.interactive)\r\n return;\r\n\r\n if (!(await this._checkIfCanSelectionChange()))\r\n return;\r\n\r\n this._dataGrid.focus();\r\n\r\n this.isSelected = !this.isSelected;\r\n\r\n this._dataGrid.dataRows.forEach(r => r.classList.remove(\"selectedRecord\"));\r\n\r\n if (_evt.shiftKey) {\r\n let startIndex = 0;\r\n let endIndex = this._dataGrid.dataRows.indexOf(this);\r\n\r\n if (this._dataGrid.lastClickedRow != null) {\r\n startIndex = this._dataGrid.dataRows.indexOf(this._dataGrid.lastClickedRow);\r\n }\r\n\r\n if (startIndex > endIndex) {\r\n const tmp = startIndex;\r\n startIndex = endIndex;\r\n endIndex = tmp;\r\n }\r\n\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n this._dataGrid.dataRows[i].isSelected = true;\r\n this._dispatchSelectionChangeEvent(this._dataGrid.dataRows[i].dataKey, { doubleClick: false, clickedRow: this._dataGrid.dataRows[i] });\r\n }\r\n\r\n this._dataGrid.lastClickedRow = this;\r\n this._dataGrid.lastClickedRow.classList.add(\"selectedRecord\");\r\n\r\n return;\r\n }\r\n\r\n this._dataGrid.lastClickedRow = this;\r\n this._dataGrid.lastClickedRow.classList.add(\"selectedRecord\");\r\n\r\n // pokud je vybrany jen jeden radek\r\n if (this._dataGrid.selectedRows.length == 1) {\r\n this._dispatchSelectionChangeEvent(this.dataKey, { doubleClick: false, clickedRow: this });\r\n } else { // neni vybrany zadny radek nebo oznaceno vice zaznamu\r\n this._dispatchSelectionChangeEvent(\"-1\", { doubleClick: false, clickedRow: this });\r\n }\r\n }\r\n\r\n /**\r\n * Renders the control to the specified HTML writer.\r\n */\r\n public override render(): HTMLElement {\r\n if (this.checkAndLogDisposedUsage(\"render\")) return undefined;\r\n\r\n this.innerHTML = \"\";\r\n\r\n this._createCells();\r\n\r\n return this as HTMLElement;\r\n }\r\n\r\n protected override _createFirstCell(): HTMLTableCellElement {\r\n if (this.checkAndLogDisposedUsage(\"_createFirstCell\")) return undefined;\r\n\r\n const tableCell = super._createFirstCell();\r\n if (!this._dataGrid.renderControlElement) {\r\n tableCell.style.width = \"0px\";\r\n return tableCell;\r\n }\r\n\r\n const checkboxContainer = createElement({ type: \"div\", classes: \"record-control-cell CheckBox\" });\r\n\r\n this._checkboxElement = new Checkbox();\r\n this._checkboxElement.standardAction = true;\r\n this._checkboxElement.style.pointerEvents = \"none\";\r\n\r\n checkboxContainer.appendChild(this._checkboxElement as HTMLElement);\r\n\r\n //tableCell.insertBefore(checkboxContainer, tableCell.firstChild);\r\n\r\n // element s ovládacími prvky k datovému záznamu\r\n if (this._controlElement) {\r\n this._controlElement.insertBefore(checkboxContainer, this._controlElement.firstChild);\r\n tableCell.appendChild(this._controlElement);\r\n } else {\r\n tableCell.insertBefore(checkboxContainer, tableCell.firstChild);\r\n }\r\n\r\n return tableCell;\r\n }\r\n\r\n public override setItemType(): void {\r\n // Prázdná metoda\r\n }\r\n\r\n private _createCells(): void {\r\n if (this.checkAndLogDisposedUsage(\"_createCells\")) return;\r\n\r\n const frozenRowHelper = createElement({ classes: \"frozen-part-helper\" });\r\n this._frozenPart = createElement({ classes: \"frozen-part\" });\r\n frozenRowHelper.appendChild(this._frozenPart);\r\n this.insertAdjacentElement(\"afterbegin\", frozenRowHelper);\r\n\r\n this._frozenPart.appendChild(this._createFirstCell());\r\n\r\n for (const cell of this.dataCells) {\r\n if (cell.column.visible) {\r\n cell.toEdit(false);\r\n const newCell = cell.render();\r\n if (newCell) //sloupec mohl změnit viditelnost a render vrátil null.\r\n this.appendChild(newCell);\r\n }\r\n }\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"CheckedDataRow\");\r\n\r\n this.addEventListener(\"click\", (e: MouseEvent) => {\r\n this._clickEvt(e);\r\n });\r\n\r\n this.addEventListener(\"DoubleClick\", () => {\r\n this._doubleClickEvt();\r\n });\r\n }\r\n\r\n //#endregion HTMLElement\r\n} //end DataRow\r\n\r\nregisterCustomElement(\"tsc-CheckedDataRow\", CheckedDataRow);\r\n","import { IRowData } from \"@multiweb/types/contracts\";\r\nimport { Key } from \"Global/Base/Utils/EventUtils\";\r\nimport { registerCustomElement } from \"../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { MoveRecordDirection } from \"./DataGrid\";\r\nimport { CheckedDataRow } from \"./DataGridSubcontrols/Components/CheckedDataRow\";\r\nimport { ListDataGrid } from \"./ListDataGrid\";\r\n\r\nexport class ValueListDataGrid extends ListDataGrid<CheckedDataRow> {\r\n public isShowed: boolean;\r\n private _selectedItems: Set<CheckedDataRow>;\r\n\r\n public get selectedItems(): IterableIterator<CheckedDataRow> {\r\n return this._selectedItems.values();\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._selectedItems = new Set<CheckedDataRow>();\r\n this.fetchCount = 15;\r\n\r\n this.classList.add(\"ValueListDataGrid\");\r\n //this.mainList_div.className = \"compactListDiv\";\r\n this.dataRows = new Array<CheckedDataRow>();\r\n this.selectedRows = new Array<CheckedDataRow>();\r\n this.headerRow.visible = false;\r\n\r\n this.registerDataRowFactory(() => new CheckedDataRow());\r\n this.disposeOnDetach = false;\r\n }\r\n\r\n protected override async _attachDataGrid(): Promise<any> {\r\n await super._attachDataGrid();\r\n\r\n for (const column of this.columns) {\r\n column.disposeOnDetach = false;\r\n }\r\n }\r\n\r\n protected override _createRow(data: IRowData): CheckedDataRow {\r\n //data[this._dataSource.dataKey] =\r\n const dataRow = this._dataRowFactory(this, data);\r\n dataRow.init(data, this, this._createRowControlElement(dataRow));\r\n\r\n dataRow.afterAttach(() => {\r\n if (this.isSelectedAll)\r\n dataRow.isSelected = true;\r\n dataRow.registerEventListener(\"checkedChange\", (e: CustomEvent) => {\r\n const el = e.detail.item as CheckedDataRow;\r\n\r\n if (el.isChecked)\r\n this._selectedItems.add(el);\r\n else {\r\n for (const si of this._selectedItems) {\r\n if (si.dataKey == el.dataKey) {\r\n this._selectedItems.delete(si);\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.dataRows.push(dataRow);\r\n\r\n return dataRow;\r\n }\r\n\r\n protected override _createRows(data: Iterable<IRowData>): void {\r\n let i = 0;\r\n for (const row of data) {\r\n const oKeys = Object.keys(row);\r\n if (oKeys.length == 0) continue;\r\n\r\n row[this._dataSource.dataKey] = row[oKeys[0]];\r\n this._createComplexRow(row);\r\n\r\n if (++i >= this.fetchCount)\r\n break;\r\n }\r\n }\r\n\r\n public override insertExistingRecord(dataRow: IRowData): CheckedDataRow {\r\n return this.insertNewRecord(dataRow);\r\n }\r\n\r\n public override insertNewRecord(dataRow: IRowData): CheckedDataRow {\r\n const beforeRow = this.selectedRows.length > 0 && this.dataRows && this.dataRows.length > 0 ? (this.dataRows.indexOf(this.selectedRows[0]) > -1 ? this.selectedRows[0] : undefined) : (this.dataRows.length > 0 ? this.dataRows[0] : undefined);\r\n const newRow = this._dataRowFactory(this, dataRow);\r\n const dataSource = this.dataSource;\r\n newRow.init(dataRow, this, this._createRowControlElement(newRow));\r\n newRow.render();\r\n newRow.dataKey = dataRow[dataSource.dataKey].valueOf();\r\n\r\n this.emptyMessage.visible = false;\r\n\r\n if (beforeRow)\r\n this._dataTable.insertBefore(newRow as HTMLElement, beforeRow as HTMLElement);\r\n else\r\n this._dataTable.appendChild(newRow as HTMLElement);\r\n\r\n if (beforeRow) {\r\n const addIndex = this.dataRows.indexOf(beforeRow);\r\n this.dataRows.splice(addIndex, 0, newRow); //.push(newRow);\r\n } else {\r\n this.dataRows.push(newRow);\r\n }\r\n\r\n return newRow;\r\n }\r\n\r\n /**\r\n * Vyber zaznamu od posledniho kliknuteho po posledni index (pri vyberu zaznamu Shift + Up/Down)\r\n * @param key - Kod klavesy - sipka nahoru nebo dolu\r\n */\r\n public override shiftSelectRecords(key: string = undefined): void {\r\n this.isSelectedAll = false;\r\n // mam uz oznaceny radek (radky)\r\n if (this.lastClickedRow) {\r\n let fromIndex = this.dataRows.indexOf(this.lastClickedRow); // vezmu naposledy kliknuty radek\r\n let selectAnotherItem = true;\r\n let skipSelecting = false;\r\n let selectTwoItemsDirection = 0; // 0 - není tento případ, 1 - situace při šipce nahoru, -1 - situace při šipce dolů\r\n\r\n if (key === Key.ArrowUp) { // up\r\n if (this.keyPressRowIndex == -1) { // mimo rozsah\r\n this.keyPressRowIndex++;\r\n return;\r\n }\r\n if (!this.dataRows[this.keyPressRowIndex + 1].isSelected && !this.dataRows[this.keyPressRowIndex].isSelected) { // pokud jsem na neoznačeném záznamu a se shiftem se posunu na další, tak musím označit i ten první\r\n selectTwoItemsDirection = 1;\r\n } else if (this.dataRows[this.keyPressRowIndex].isSelected && this.dataRows[this.keyPressRowIndex + 1].isSelected && fromIndex > (this.keyPressRowIndex)) { // šipkou nahoru se dostanu na označený záznam a zároveň se nejedná o \"undo\"\r\n skipSelecting = true;\r\n } else if (this.dataRows[this.keyPressRowIndex].isSelected) {\r\n selectAnotherItem = false;\r\n this.keyPressRowIndex++;\r\n }\r\n } else if (key === Key.ArrowDown) { // down\r\n if (this.keyPressRowIndex == this.dataRows.length) {\r\n this.keyPressRowIndex--;\r\n return;\r\n }\r\n if (!this.dataRows[this.keyPressRowIndex - 1].isSelected && !this.dataRows[this.keyPressRowIndex].isSelected) {\r\n selectTwoItemsDirection = -1;\r\n } else if (this.dataRows[this.keyPressRowIndex].isSelected && this.dataRows[this.keyPressRowIndex - 1].isSelected && fromIndex < (this.keyPressRowIndex)) {\r\n skipSelecting = true;\r\n } else if (this.dataRows[this.keyPressRowIndex].isSelected) {\r\n selectAnotherItem = false;\r\n this.keyPressRowIndex--;\r\n }\r\n }\r\n\r\n let toIndex = this.keyPressRowIndex; // index aktualniho\r\n let direction = MoveRecordDirection.next;\r\n if (fromIndex > toIndex) { //v pripade ze index prvniho je vetsi, tak prohodime\r\n direction = MoveRecordDirection.prev;\r\n const tmp = fromIndex;\r\n fromIndex = toIndex;\r\n toIndex = tmp;\r\n }\r\n if (fromIndex < 0) {\r\n this.keyPressRowIndex = fromIndex = 0;\r\n }\r\n if (toIndex >= this.dataRows.length)\r\n this.keyPressRowIndex = toIndex = this.dataRows.length - 1;\r\n\r\n this._adjustScrollTop(direction, this.dataRows[direction === MoveRecordDirection.next ? toIndex : fromIndex]);\r\n\r\n if (!skipSelecting) {\r\n for (let i = fromIndex; i <= toIndex; i++) { // prochazime a oznacime radky od fromIndexu po toIndex\r\n if (this.keyPressRowIndex == i || (this.keyPressRowIndex + selectTwoItemsDirection) == i) {\r\n this.dataRows[i].isSelected = !this.dataRows[i].isSelected;\r\n }\r\n this._dispatchSelectionChangeEvent(this.dataRows[i].dataKey, { doubleClick: false, clickedRow: this.dataRows[i] });\r\n }\r\n }\r\n\r\n if (!selectAnotherItem) {\r\n if (key === Key.ArrowUp) {\r\n this.keyPressRowIndex--;\r\n } else if (key === Key.ArrowDown) {\r\n this.keyPressRowIndex++;\r\n }\r\n }\r\n\r\n this._selectedItems.add(this.dataRows[this.keyPressRowIndex]);\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-ValueListDataGrid\", ValueListDataGrid);\r\n","import { CaseInsensitiveMap } from \"../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { IFilterFieldInfo, IFilterJsonData, IFilterJsonResultValue } from \"./FilterInterfaces\";\r\nimport { logger } from \"./logger\";\r\n/**\r\n * Mapuje uživatelsky zadaný filtr na interní filtr\r\n */\r\nexport class FilterDatetypeOperationMapper {\r\n private static _datetypeOpMappings: CaseInsensitiveMap<IFilterFieldInfo[]> = new CaseInsensitiveMap<IFilterFieldInfo[]>();\r\n\r\n public static register(dataType: string, operation: string, valuesDefinition: IFilterFieldInfo[]): void {\r\n const key = `${dataType.toLocaleLowerCase()}:${operation.toLocaleLowerCase()}`;\r\n if (FilterDatetypeOperationMapper._datetypeOpMappings.has(key)) {\r\n logger.log(`There is already definition for datetype '${dataType}' and operation '${operation}'`);\r\n return;\r\n }\r\n FilterDatetypeOperationMapper._datetypeOpMappings.set(key, valuesDefinition);\r\n }\r\n\r\n public static transformUserJson(json: string, columnDataTypes: CaseInsensitiveMap<{ dataType: string; locKey: string }>): IFilterJsonData {\r\n const filter: IFilterJsonData = JSON.parse(json);\r\n for (const attr of filter.attrs) {\r\n if (attr.operator === undefined) attr.operator = \"and\";\r\n if (attr.enabled === undefined) attr.enabled = true;\r\n for (const cond of attr.conditions) {\r\n if (cond.operator === undefined) cond.operator = \"or\";\r\n if (cond.enabled === undefined) cond.enabled = true;\r\n if (cond.isValid === undefined) cond.isValid = true;\r\n if (cond.isMultiItem === undefined) cond.isMultiItem = false;\r\n const dataType = columnDataTypes.get(attr.attrName).dataType;\r\n const key = `${dataType.toLocaleLowerCase()}:${cond.operation.toLocaleLowerCase()}`;\r\n if (!FilterDatetypeOperationMapper._datetypeOpMappings.has(key)) {\r\n continue;\r\n }\r\n const def = FilterDatetypeOperationMapper._datetypeOpMappings.get(key);\r\n\r\n //projdou se všechny hodnoty a doplní se mapování chybějících atributů\r\n if (def.length !== cond.values.length) {\r\n logger.error(`Cannot proceed with tranformation for column '${attr.attrName}' and operation '${cond.operation}'`);\r\n continue;\r\n }\r\n for (let i = 0; i < cond.values.length; i++) {\r\n //hodnota může být jako single string, v tom případě ji potřebujeme vrátit jako objekt\r\n if (typeof cond.values[i] === \"string\" || Array.isArray(cond.values[i]))\r\n cond.values[i] = { value: cond.values[i] } as IFilterJsonResultValue;\r\n if (def[i].fromJsonFormatter)\r\n cond.values[i].value = def[i].fromJsonFormatter(cond.values[i].value);\r\n cond.values[i].fieldId = def[i].id;\r\n cond.values[i].fieldType = def[i].fieldType;\r\n }\r\n }\r\n }\r\n return filter;\r\n }\r\n}\r\n","import { AppContext } from \"App\";\r\nimport { StringComparisonTypes } from \"Configuration\";\r\n\r\nimport { CaseInsensitiveMap } from \"../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { IAttrStringValue } from \"../../../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { EditableControl } from \"../../../../UI.BaseControls/EditableControl\";\r\nimport { FilterDatetypeOperationMapper } from \"./FilterDatetypeOperationMapper\";\r\nimport {\r\n FilterBlockAttrNameToData,\r\n FilterConvertFunction,\r\n FilterEmptyType,\r\n FilterJsonResultSign,\r\n FilterJsonResultSpan,\r\n IFieldRegistrator,\r\n IFilterFieldInfo,\r\n IFilterFieldInfoAdditional,\r\n IFilterJsonDataAttr,\r\n IFilterJsonResultValue,\r\n IFilterServerOperation,\r\n IFilterServerOperationInput,\r\n IFilterServerValueOperPrepare,\r\n IFilterValue,\r\n IMultiOneOperation,\r\n IOperation,\r\n} from \"./FilterInterfaces\";\r\nimport { logger } from \"./logger\";\r\n\r\nexport class FilterRegistrations {\r\n public static readonly numericTypes = [\"int64\", \"integer\", \"double\", \"decimal\", \"money\", \"short\", \"single\", \"bcd\"];\r\n public static readonly stringTypes = [\"string\", \"strnum\", \"text\"];\r\n\r\n private static _struct: CaseInsensitiveMap<IFilterValue> = new CaseInsensitiveMap<IFilterValue>();\r\n private static _structDefaultOperation: CaseInsensitiveMap<IOperation> = new CaseInsensitiveMap<IOperation>();\r\n private static _structDefMultiOper: CaseInsensitiveMap<IMultiOneOperation> = new CaseInsensitiveMap<IMultiOneOperation>();\r\n private static _fieldTypeRegistrator: CaseInsensitiveMap<IFieldRegistrator> = new CaseInsensitiveMap<IFieldRegistrator>();\r\n private static _structDataTypeServerOper: CaseInsensitiveMap<{ [operId: string]: IFilterServerOperation }> = new CaseInsensitiveMap<{ [operId: string]: IFilterServerOperation }>();\r\n\r\n public static registerDataTypeFilter(value: IFilterValue): void {\r\n //Structure.struct[value.dataType.toLowerCase()] = value;\r\n FilterRegistrations._struct.set(value.dataType, value);\r\n for (const gl of value.groupList) {\r\n for (const op of gl.operationList) {\r\n FilterDatetypeOperationMapper.register(value.dataType, op.id, op.fieldList);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Zaregistruje strukturu filtru\r\n * @param value Struktura filtru\r\n * @param dataTypes Seznam datovych typu, pro kazdy je struktura zklonovana\r\n */\r\n public static registerMultiTypeFilter(value: IFilterValue, dataTypes?: string[]): void {\r\n if (dataTypes == undefined)\r\n FilterRegistrations.registerDataTypeFilter(value);\r\n else {\r\n const stringify = JSON.stringify(value);\r\n for (const type of dataTypes) {\r\n const obj = JSON.parse(stringify) as IFilterValue;\r\n obj.dataType = type;\r\n //Structure.struct[type.toLowerCase()] = obj;\r\n FilterRegistrations._struct.set(type, obj);\r\n\r\n for (const gl of value.groupList) {\r\n for (const op of gl.operationList) {\r\n FilterDatetypeOperationMapper.register(obj.dataType, op.id, op.fieldList);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Vrati strukturu filtru pro dany datovy typ\r\n * @param dataType\r\n */\r\n public static getDataTypeFilter(attrData: FilterBlockAttrNameToData): IFilterValue {\r\n const struct = FilterRegistrations._struct.get(attrData?.dataType);\r\n\r\n const NULL_FILTERING = [\"is_empty\", \"is_not_empty\"];\r\n const COMPARISON_FILTERING = [\"greater_than\", \"greater_or_equal_than\", \"less_than\", \"less_or_equal_than\"];\r\n const EQUALITY_FILTERING = [\"is\", \"not_is\", \"value_is\", \"value_not_is\", \"is_equal\", \"not_is_equal\"];\r\n const LIKE_FILTERING = [\"start_with\", \"not_start_with\", \"end_with\", \"not_end_with\", \"contain\", \"not_contain\"];\r\n\r\n if (struct)\r\n for (const group of struct.groupList) {\r\n for (const operation of group.operationList) {\r\n if (NULL_FILTERING.includes(operation.id))\r\n operation.isVisible = !!attrData.canFilterNull;\r\n if (COMPARISON_FILTERING.includes(operation.id))\r\n operation.isVisible = !!attrData.canFilterCompare;\r\n if (EQUALITY_FILTERING.includes(operation.id))\r\n operation.isVisible = !!attrData.canFilterEqual;\r\n if (LIKE_FILTERING.includes(operation.id)) // enum je specialita na klientovi, řídit like filtry podle equal\r\n operation.isVisible = struct.dataType === \"enum\" ? !!attrData.canFilterEqual : !!attrData.canFilterLike;\r\n }\r\n }\r\n\r\n return struct;\r\n }\r\n\r\n /**\r\n * Vrátí výchozí operaci pro dany datový typ\r\n * @param dataType Název datového typu\r\n * @param preferedOperation (Nepovinný) Název preferované operace. Má přednost před výchozí\r\n */\r\n public static getDefaultOperationByDataType(dataType: string, preferedOperation?: string): IOperation {\r\n if (FilterRegistrations._structDefaultOperation.has(dataType))\r\n return FilterRegistrations._structDefaultOperation.get(dataType);\r\n if (!FilterRegistrations._struct.has(dataType))\r\n return undefined;\r\n\r\n const dataTypeInfo = FilterRegistrations._struct.get(dataType);\r\n let findFirst = false;\r\n let firstOper: IOperation = undefined;\r\n let defaultOperationFound: IOperation = undefined;\r\n\r\n for (const grp of dataTypeInfo.groupList) {\r\n for (const operation of grp.operationList) {\r\n if (!operation.isVisible)\r\n continue;\r\n if (!findFirst) {\r\n findFirst = true;\r\n firstOper = operation;\r\n }\r\n if (operation.isDefault) {\r\n FilterRegistrations._structDefaultOperation.set(dataType, operation);\r\n defaultOperationFound = operation;\r\n }\r\n if (operation.id === preferedOperation) {\r\n FilterRegistrations._structDefaultOperation.set(dataType, operation);\r\n return operation;\r\n }\r\n }\r\n }\r\n\r\n if (defaultOperationFound)\r\n return defaultOperationFound;\r\n\r\n FilterRegistrations._structDefaultOperation.set(dataType, firstOper);\r\n return firstOper;\r\n }\r\n\r\n /**\r\n * Vratí operaci pro dany datovy typ na základe id operace\r\n * @param dataType\r\n * @param operId\r\n */\r\n public static getOperationByOperationId(dataType: string, operId: string): IOperation {\r\n if (!FilterRegistrations._struct.has(dataType))\r\n return undefined;\r\n\r\n const dtInfo = FilterRegistrations._struct.get(dataType);\r\n const firstOper: IOperation = undefined;\r\n\r\n for (const grp of dtInfo.groupList) {\r\n for (const oper of grp.operationList) {\r\n if (!oper.isVisible)\r\n continue;\r\n\r\n if (oper.id == operId)\r\n return oper;\r\n }\r\n }\r\n FilterRegistrations._structDefaultOperation.set(dataType, firstOper);\r\n return firstOper;\r\n }\r\n\r\n public static getMultiOperationByOperationId(dataType: string, operId: string): IMultiOneOperation {\r\n if (!FilterRegistrations._struct.has(dataType))\r\n return undefined;\r\n\r\n const dtInfo = FilterRegistrations._struct.get(dataType);\r\n const firstOper: IMultiOneOperation = undefined;\r\n\r\n if (!dtInfo.multiOperation)\r\n return undefined;\r\n\r\n for (const grp of dtInfo.multiOperation.groupList) {\r\n for (const oper of grp.operationList) {\r\n if (!oper.isVisible)\r\n continue;\r\n\r\n if (oper.id == operId)\r\n return oper;\r\n }\r\n }\r\n FilterRegistrations._structDefMultiOper.set(dataType, firstOper);\r\n return firstOper;\r\n }\r\n\r\n /**\r\n * Pomocná funkce, která vrátí filtrovací strukturu a pokud obsahuje vice fieldu je to plněno polem z values postupně jak jdou po sobě\r\n * @param dataType Datový typ filtru tak jak je ve struktuře\r\n * @param operation Operace filtru tak jak je ve strukuře\r\n * @param values Hodnota, která má být použitá, může obsahovat i pole hodnot.\r\n */\r\n public static createValuesFromData(dataType: string, operation: string, values: any): { [id: string]: IFilterJsonResultValue } {\r\n const operationStruct = FilterRegistrations.getOperationByOperationId(dataType, operation);\r\n\r\n const returnData: { [id: string]: IFilterJsonResultValue } = {};\r\n if (!Array.isArray(values)) values = [ values ];\r\n\r\n let i = 0;\r\n for (const field of operationStruct.fieldList) {\r\n if (i >= values.length) break;\r\n returnData[field.id] = {\r\n value: values[i++],\r\n fieldId: field.id,\r\n fieldType: field.fieldType,\r\n };\r\n }\r\n return returnData;\r\n }\r\n\r\n /**\r\n * Zaregistruje pole pro generovani fieldu\r\n * @param fieldType\r\n * @param control\r\n * @param fromJson\r\n * @param toJson\r\n */\r\n public static registerField(fieldType: string, control: any, afterCreateMethod?: (control: any) => void, from?: (v: string, type: FilterConvertFunction) => any, to?: (v: any, type: FilterConvertFunction) => string): void {\r\n const def_from = (v: string, _type: FilterConvertFunction): any => {\r\n return v;\r\n };\r\n const def_to = (v: string, _type: FilterConvertFunction): string => {\r\n return v;\r\n };\r\n const f: IFieldRegistrator = {\r\n control: control,\r\n from: from || def_from,\r\n to: to || def_to,\r\n afterCreate: afterCreateMethod,\r\n };\r\n FilterRegistrations._fieldTypeRegistrator.set(fieldType, f);\r\n }\r\n\r\n public static getFieldInstance(fieldType: string): EditableControl {\r\n const field = FilterRegistrations._fieldTypeRegistrator.get(fieldType);\r\n if (field == null)\r\n return null;\r\n\r\n const instanceOfControl = new field.control;\r\n if (field.afterCreate && typeof field.afterCreate === \"function\") {\r\n field.afterCreate(instanceOfControl);\r\n }\r\n return instanceOfControl;\r\n }\r\n\r\n public static getField(fieldType: string): IFieldRegistrator {\r\n return FilterRegistrations._fieldTypeRegistrator.get(fieldType);\r\n }\r\n\r\n public static fieldTo(type: FilterConvertFunction, fieldType: string, value: any): string {\r\n return FilterRegistrations._fieldTypeRegistrator.get(fieldType).to(value, type);\r\n }\r\n\r\n public static fieldFrom(type: FilterConvertFunction, fieldType: string, value: string): any {\r\n return FilterRegistrations._fieldTypeRegistrator.get(fieldType).from(value, type);\r\n }\r\n\r\n /**\r\n * Zaregistruje serverove operace\r\n * @param dType\r\n * @param operations\r\n */\r\n public static registerServerOperation(dType: string | string[], operations: { [operId: string]: IFilterServerOperation }): void {\r\n let dTypes: string[] = [];\r\n if (typeof dType === \"string\") {\r\n dTypes = [dType];\r\n } else\r\n dTypes = dType;\r\n\r\n for (const dataType of dTypes) {\r\n const opers: { [operId: string]: IFilterServerOperation } = FilterRegistrations._structDataTypeServerOper.has(dataType) ? FilterRegistrations._structDataTypeServerOper.get(dataType) : {};\r\n\r\n const keys = Object.keys(operations);\r\n for (const key of keys) {\r\n opers[key] = operations[key];\r\n }\r\n\r\n FilterRegistrations._structDataTypeServerOper.set(dataType, opers);\r\n }\r\n }\r\n\r\n private static _getValuesArray(input: Array<IFilterJsonResultValue>): Array<{ id: string; value: any; [val: string]: string }> {\r\n const a: Array<{ id: string; value: string; [val: string]: string }> = [];\r\n\r\n for (const key of input) {\r\n a.push({\r\n id: key.fieldId,\r\n value: key.value,\r\n });\r\n }\r\n\r\n return a;\r\n }\r\n\r\n /**\r\n * Rozparsuje serverovou podmínku a přidá ji do seznamu použitých podmínek\r\n * @param servValCond Serverová podmínka, do která je vložena hodnota\r\n * @param attrName Název atributu\r\n * @param value Vkládaná hodnota\r\n * @param orderCondition Pole jednotlivých podmínek, které budou předány na server\r\n */\r\n private static _parseServerCondition(servValCond: IFilterServerOperationInput, usedCond: string, attrName: string, value: any, orderCondition: Array<IFilterServerValueOperPrepare>, span: string): void {\r\n const condition = FilterRegistrations.updateCondition(usedCond, { \"attrName\": attrName, \"value\": value, \"span\": span }, servValCond.escapeValue);\r\n\r\n orderCondition.push({ condition: condition, sign: servValCond.sign || \"or\" });\r\n\r\n if (servValCond.conditionalOperation) {\r\n for (const conditionalOperation of servValCond.conditionalOperation) {\r\n if (conditionalOperation && conditionalOperation.containsValue) {\r\n const values = conditionalOperation.separator ? value.split(conditionalOperation.separator) : value;\r\n\r\n if (values.includes(conditionalOperation.containsValue)) {\r\n const conditionalCondition = FilterRegistrations.updateCondition(conditionalOperation.condition, { \"attrName\": attrName, \"value\": value });\r\n\r\n if (conditionalOperation.isForReplace) {\r\n orderCondition.splice(-1, 1);\r\n }\r\n\r\n orderCondition.push({ condition: conditionalCondition, sign: conditionalOperation.sign || \"or\" });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí podminku ze struktury upravenou pro odeslani na server\r\n * @param attrNameToDataType Funkce,ktera na zaklade AttrName vrati datovy typ\r\n * @param data Strukutra z filtrovaciho pole\r\n * @return Vraci string ze serverovou podminkou\r\n */\r\n public static getServerCondition(attrNameToDataType: (v: string) => string, data: IFilterJsonDataAttr[]): string {\r\n let condition = \"\";\r\n\r\n for (const d of data) {\r\n if (!d.enabled)\r\n continue;\r\n\r\n const attrName = d.attrName;\r\n const dataType = attrNameToDataType(d.attrName);\r\n\r\n let resAppend = false;\r\n let subCond = \"\";\r\n let subCondSign = \"\";\r\n let fullChar = 0;\r\n for (const res of d.conditions) {\r\n if (!res.enabled || !res.isValid)\r\n continue;\r\n let condInfo: IFilterServerOperation = FilterRegistrations._getServerOper(dataType, res.operation);\r\n if (condInfo && condInfo.subOperation) {\r\n for (const subCondKey in condInfo.subOperation) {\r\n if (res.subOperation == subCondKey)\r\n condInfo = condInfo.subOperation[subCondKey];\r\n }\r\n }\r\n if (condInfo == undefined) {\r\n logger.warn(`Server operation for datatype '${dataType}' and operation '${res.operation}' not found`);\r\n continue;\r\n }\r\n\r\n if (resAppend && subCond.length > 0)\r\n subCondSign = FilterRegistrations._getSignString(res.operator);\r\n else\r\n subCondSign = \"\";\r\n resAppend = true;\r\n\r\n // pridani spojky mezi dva vyrazy\r\n if (subCond) {\r\n if (subCondSign)\r\n subCond += subCondSign;\r\n else\r\n subCond += \" AND \";\r\n }\r\n subCond += \" (\";\r\n\r\n fullChar = subCond.length; // ulozeni soucasnych znaku podminky\r\n let skipBeginCondition: boolean = true;//informace o tom jestli se beginCondition použije ve výsledné podmínce filtru\r\n if (condInfo.beginCondition) {\r\n //funkce odstraní zkrácené/nezkrácené hodnoty podle nastavení useForShortenedValues\r\n const getFilteredValueFunction = (v: any): any => {\r\n if (condInfo.useForShortenedValues === undefined || (condInfo.useForShortenedValues === (v instanceof IAttrStringValue && v.shortened))) {\r\n if (v instanceof IAttrStringValue)\r\n return v.valueOf();\r\n else\r\n return v;\r\n } else\r\n return undefined;\r\n };\r\n const valuesToUse: Array<IFilterJsonResultValue> = [];\r\n for (const resVal of res.values) {\r\n const valueToUse = Object.assign({}, resVal);\r\n if (resVal.value && !Array.isArray(resVal.value)) {\r\n valueToUse.value = getFilteredValueFunction(resVal.value);\r\n } else if (Array.isArray(resVal.value)) {\r\n valueToUse.value = [];\r\n for (const v of resVal.value) {\r\n const newVal = getFilteredValueFunction(v);\r\n\r\n if (newVal)\r\n valueToUse.value.push(newVal);\r\n }\r\n }\r\n valuesToUse.push(valueToUse);\r\n }\r\n //Podmínka se aplikuje, pokud po filtrování nějaké hodnoty zůstaly.\r\n skipBeginCondition = !condInfo.noBeginValueParameters && !valuesToUse.some((vtu) => (vtu.value && !Array.isArray(vtu.value)) || ((Array.isArray(vtu.value) && vtu.value.length > 0)));\r\n if (!skipBeginCondition) {\r\n subCond += FilterRegistrations.updateCondition(condInfo.beginCondition, {\r\n \"attrName\": attrName,\r\n \"value\": FilterRegistrations._getValuesArray(valuesToUse),\r\n });\r\n }\r\n }\r\n\r\n if (condInfo.emptyFilter === FilterEmptyType.empty) {\r\n subCond += FilterRegistrations._createEmptyOrFilledCondition(attrName, true);\r\n } else if (condInfo.emptyFilter === FilterEmptyType.notEmpty) {\r\n subCond += FilterRegistrations._createEmptyOrFilledCondition(attrName, false);\r\n }\r\n\r\n const orderCondition: Array<IFilterServerValueOperPrepare> = [];\r\n let servValCond: IFilterServerOperationInput;\r\n\r\n for (const value of res.values) {\r\n // pokud je hodnota prazdna podminka se nevyhodnocuje\r\n if (!value.value)\r\n continue;\r\n\r\n servValCond = condInfo.inputs ? condInfo.inputs[value.fieldId] : undefined;\r\n\r\n if (servValCond == undefined) {\r\n //logger.warn(`Server operation for datatype '${dataType}' and operation '${res.operationId}' and fieldId '${value.fieldId}' not found`);\r\n continue;\r\n }\r\n const span = this._getSpanString(servValCond.span, d.displayFormat);\r\n\r\n // kontrola na pouziti additional podminky\r\n let skip = false;\r\n if (value.additional && servValCond.additional) {\r\n const addKeys = Object.keys(value.additional);\r\n for (const addKey of addKeys) {\r\n if (servValCond.additional[addKey]) {\r\n skip = true;\r\n const useAdd = addKey == \"including\" && !value.additional.including ? false : true;\r\n const cond = useAdd ? servValCond.additional[addKey] : servValCond.condition;\r\n\r\n FilterRegistrations._parseServerCondition(servValCond, cond, attrName, FilterRegistrations.fieldTo(FilterConvertFunction.sql, value.fieldType, value.value), orderCondition, span);\r\n }\r\n }\r\n }\r\n\r\n if (skip)\r\n continue; // pokud je pouzita podminka s additional zbytek se nevyhodnocuje\r\n\r\n if (Array.isArray(value.value)) {\r\n for (let v of value.value) {\r\n let skipValue: boolean;\r\n if (v instanceof IAttrStringValue) {\r\n skipValue = !(servValCond.useForShortenedValues === undefined || v.shortened === servValCond.useForShortenedValues);\r\n v = v.valueOf();\r\n } else {\r\n skipValue = !(servValCond.useForShortenedValues === undefined || servValCond.useForShortenedValues === false);\r\n }\r\n if (!skipValue)\r\n FilterRegistrations._parseServerCondition(servValCond, servValCond.condition, attrName, FilterRegistrations.fieldTo(FilterConvertFunction.sql, value.fieldType, v), orderCondition, span);\r\n }\r\n } else\r\n FilterRegistrations._parseServerCondition(servValCond, servValCond.condition, attrName, FilterRegistrations.fieldTo(FilterConvertFunction.sql, value.fieldType, value.value), orderCondition, span);\r\n }\r\n //Pokud byla použita beginCondition a zároveň se aplikuje inputCondition, vloží se mezi ně patřičný operátor.\r\n if (!skipBeginCondition && orderCondition.length > 0)\r\n subCond += ` ${servValCond.signForBeginCondition ?? \"AND\"} `;\r\n\r\n subCond += FilterRegistrations._finallyValuesCond(orderCondition);\r\n\r\n if (condInfo.endCondition) {\r\n if (subCond)\r\n subCond += \" AND \";\r\n subCond += FilterRegistrations.updateCondition(condInfo.endCondition, { \"attrName\": attrName, \"value\": FilterRegistrations._getValuesArray(res.values) });\r\n }\r\n if (subCond.length != fullChar\r\n )\r\n subCond += \") \"; // pokud se pocet znaku zmenil, exituje podminka, pokud ne, zrusime prvni zavorku podminka byla prazdna\r\n else {\r\n const remCnt = fullChar > 2 ? 6 : 2; // pokud uz podminka predtim nejaka byla, tedy je delsi nez 2, je potreba odstranit i operator\r\n subCond = subCond.substring(0, fullChar - remCnt);\r\n }\r\n }\r\n\r\n if (subCond.length > 0) {\r\n if (condition.length > 0)\r\n condition += FilterRegistrations._getSignString(d.operator);\r\n condition += `(${subCond})`; //`\r\n }\r\n }\r\n\r\n return condition;\r\n }\r\n\r\n /**\r\n * Vytváří podmínku pro Vyplněno/Nevyplněno\r\n * @param attrName Atribut\r\n * @param isEmpty Zda se jedná o filtrování prázdné hodnoty\r\n */\r\n private static _createEmptyOrFilledCondition(attrName: string, isEmpty: boolean): string {\r\n const hasLinkage = attrName.includes(\".\");\r\n let condition = \"\";\r\n\r\n if (hasLinkage) {\r\n condition += FilterRegistrations.updateCondition(`{attrName} ${ isEmpty ? \"=\" : \"<>\" } NULL`, {\r\n \"attrName\": attrName.slice(0, attrName.lastIndexOf(\".\")),\r\n\r\n });\r\n\r\n condition += isEmpty ? \" or \" : \" and \";\r\n }\r\n\r\n condition += FilterRegistrations.updateCondition(`{attrName} ${ isEmpty ? \"=\" : \"<>\" } NULL`, {\r\n \"attrName\": attrName,\r\n });\r\n\r\n return condition;\r\n }\r\n\r\n private static _getSignString(sign: FilterJsonResultSign): string {\r\n return sign ? \" \" + sign : undefined;\r\n }\r\n\r\n private static _getSpanString(span: FilterJsonResultSpan, displayFormat: string): string {\r\n if (!displayFormat || displayFormat === \"t\" || displayFormat === \"f\" || displayFormat === \"g\")\r\n return \"minute\";\r\n\r\n return span;\r\n }\r\n\r\n /**\r\n * Upravi podmínku, nahradi parametry\r\n * @param condition podminka\r\n * @param values seznam parametru s novyma hodnotama\r\n * @param escapeValues Zda má dojít k escapu nežádoucí znaků\r\n */\r\n public static updateCondition(condition: string, values: { [rep: string]: string | Array<{ id: string; value: any; [val: string]: string }> } = {}, escapeValues: boolean = true): string {\r\n const keys = Object.keys(values);\r\n let cond = condition;\r\n\r\n for (const key of keys) {\r\n let val = values[key];\r\n const replaceArray: Array<{ key: string; value: string }> = [];\r\n //#region Uprava hodnoty value\r\n if (key == \"value\" && val) {\r\n if (Array.isArray(val)) {\r\n for (const v of values[key] as Array<{ id: string; value: any; [val: string]: string }>) {\r\n if (v.value instanceof Array) {\r\n let nVal = \"\";\r\n for (const vValue of v.value) {\r\n if (nVal.length > 0) nVal += \", \";\r\n nVal += `'${vValue}'`;//`\r\n }\r\n v.value = nVal;\r\n } else\r\n v.value = escapeValues ? FilterRegistrations._escapeConditionValue(v.value) : v.value;\r\n\r\n replaceArray.push({ key: `${key}:${v.id}`, value: v.value }); //`\r\n }\r\n } else {\r\n val = escapeValues ? FilterRegistrations._escapeConditionValue(val) : val;\r\n replaceArray.push({ key: key, value: val as string });\r\n }\r\n } else {\r\n replaceArray.push({ key: key, value: val as string });\r\n }\r\n //#endregion Uprava hodnoty value\r\n\r\n for (const rp of replaceArray) {\r\n const regExp = new RegExp(\"{\" + rp.key + \"}\", \"igm\");\r\n cond = cond.replace(regExp, rp.value);\r\n }\r\n }\r\n\r\n return cond;\r\n }\r\n\r\n /**\r\n * Provede escape nežádoucích znaků\r\n * @param value Vstup, který má být upraven\r\n */\r\n private static _escapeConditionValue(value: string): string {\r\n let newVal = \"\";\r\n // uprava hodnoty na spravne nahrazeni hvezdicky\r\n for (let i = 0, lng = value.length; i < lng; i++) {\r\n let ch = value[i];\r\n if (ch == \"\\\\\") {\r\n const chnext = value?.[i + 1];\r\n if (chnext == \"*\" || chnext == \"?\") {\r\n i++;\r\n newVal += chnext;\r\n continue;\r\n } else {\r\n newVal += ch; // escapování samotného \\\r\n }\r\n } else if (ch == \"%\" || ch == \"_\") {\r\n newVal += \"\\\\\";\r\n } else if (ch == \"'\") {\r\n newVal += \"'\";\r\n } else if (ch == \"?\")\r\n ch = \"_\";\r\n else if (ch == \"*\")\r\n ch = \"%\";\r\n\r\n newVal += ch;\r\n }\r\n return newVal;\r\n }\r\n\r\n private static _finallyValuesCond(values: Array<IFilterServerValueOperPrepare> = []): string {\r\n let cond = \"\";\r\n\r\n for (const value of values) {\r\n if (!value)\r\n continue;\r\n if (cond && cond.length > 0)\r\n cond += \" \" + FilterRegistrations._getSignString(value.sign);\r\n cond += \" \" + value.condition;\r\n }\r\n\r\n return cond;\r\n }\r\n\r\n /**\r\n * Vrati operaci serveru\r\n * @param dataType\r\n * @param id\r\n */\r\n private static _getServerOper(dataType: string, id: string): IFilterServerOperation {\r\n if (!FilterRegistrations._structDataTypeServerOper.has(dataType))\r\n return undefined;\r\n\r\n const operByDtype = FilterRegistrations._structDataTypeServerOper.get(dataType);\r\n const keys = Object.keys(operByDtype);\r\n for (const key of keys) {\r\n if (key == id)\r\n return operByDtype[key];\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Vrátí defaultní operaci filtrování pro daný datový typ\r\n * @param dataType Datový typ\r\n */\r\n public static getDefaultOperation(dataType: string): IOperation {\r\n let preferedOperation: string | null = undefined;\r\n if ([\"string\", \"enum\", \"text\", \"strnum\"].includes(dataType)) {\r\n if (AppContext.instance.configuration.defaultFilter === StringComparisonTypes.startsWith)\r\n preferedOperation = \"start_with\";\r\n else if (AppContext.instance.configuration.defaultFilter === StringComparisonTypes.contains)\r\n preferedOperation = \"contain\";\r\n }\r\n\r\n return FilterRegistrations.getDefaultOperationByDataType(dataType, preferedOperation);\r\n }\r\n\r\n public static getIOperation(id: string, locKey: string, fieldList: IFilterFieldInfo[] = [], order: number = 99, isDefault: boolean = false, isVisible: boolean = true, captLocKey?: string): IOperation {\r\n return {\r\n id: id,\r\n subId: null,\r\n lockey: locKey,\r\n fieldList: fieldList,\r\n order: order,\r\n isDefault: isDefault,\r\n isVisible: isVisible,\r\n captionLocKey: captLocKey,\r\n };\r\n }\r\n\r\n public static getIMultiOperation(id: string, lockey: string, value?: any, captionHTML: string = \"\", order: number = 99, isDefault: boolean = false, isVisible: boolean = true): IMultiOneOperation {\r\n return {\r\n id: id,\r\n lockey: lockey,\r\n value: value || \"nope\",\r\n order: order,\r\n isDefault: isDefault,\r\n isVisible: isVisible,\r\n captionHtml: captionHTML,\r\n };\r\n }\r\n\r\n public static getIFilterFieldInfo(id: string, fieldType: string, additional?: IFilterFieldInfoAdditional, fromJsonFormatter?: (value: string) => string): IFilterFieldInfo {\r\n return {\r\n id: id,\r\n fieldType: fieldType,\r\n additional: additional,\r\n fromJsonFormatter: fromJsonFormatter,\r\n };\r\n }\r\n}\r\n","import { IPublicAttributeInfo, OWDataType } from \"@multiweb/types/contracts\";\r\nimport { AdditionalOrdering, ConditionParams, IDataSource, IKeyValueItem, IOrderBy, IUseDistinctDataSource, OrderType } from \"../../../../../../Global/Base/DataSources/Interfaces\";\r\nimport { CancellationToken, CancellationTokenSource } from \"../../../../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { PromiseUtils } from \"../../../../../../Global/Base/Promises/PromiseUtils\";\r\nimport { ModelDescriptionsManager } from \"../../../../../../OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { Edit } from \"../../../../../UI.BaseControls/Edit\";\r\nimport { Column } from \"../../../../../UI.Controls/DataGridSubcontrols/Columns/Column\";\r\nimport { ColumnFactory } from \"../../../../../UI.Controls/DataGridSubcontrols/Columns/ColumnFactory\";\r\nimport { CheckedDataRow } from \"../../../../../UI.Controls/DataGridSubcontrols/Components/CheckedDataRow\";\r\nimport { DBDataSource } from \"../../../../../UI.Controls/DataSource/DBDataSource\";\r\nimport { IDataGridSelectionChangedEvent } from \"../../../../../UI.Controls/IEvent\";\r\nimport { ValueListDataGrid } from \"../../../../../UI.Controls/ValueListDataGrid\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { CaseInsensitiveMap } from \"../../../../../UI.React/types/multiweb\";\r\nimport { FrameContext } from \"../../../UIManagerInterfaces\";\r\nimport { FilterRegistrations } from \"../FilterRegistrations\";\r\nimport { logger } from \"../logger\";\r\n\r\nexport class ValueList extends Control {\r\n private _dataGrid: ValueListDataGrid;\r\n private _dataSource: IDataSource;\r\n private _searchBox: Edit;\r\n private _dgContainer: HTMLElement;\r\n private _attrDataTypes: CaseInsensitiveMap<string>;\r\n\r\n private _className: string;\r\n private _attrs: Array<string>;\r\n private _selectedValues: Array<IKeyValueItem> = [];\r\n private _afterOpenValues: Array<IKeyValueItem> = [];\r\n private _progressBarLoader: HTMLElement;\r\n private _frameCondition: string;\r\n private _frameConditionParams?: ConditionParams;\r\n\r\n /** Vybrané hodnoty */\r\n public get selectedValues(): Array<IKeyValueItem> {\r\n return this._selectedValues;\r\n }\r\n\r\n /** Vybrané hodnoty */\r\n public set selectedValues(values: Array<IKeyValueItem>) {\r\n this._selectedValues = [];\r\n if (values && values.length > 0) {\r\n this._selectedValues = Array.from(values);\r\n this._afterOpenValues = Array.from(values);\r\n }\r\n this._reloadAfterExternalSelectedValueChange();\r\n }\r\n\r\n /**\r\n * Odstraní hodnotu z kolekce vybraných hodnot\r\n * @param key Klíč hodnoty, která se má odstranit\r\n */\r\n public removeSelectedValue(key: string): void {\r\n if (this._removeSelectedValue(key)) {\r\n this._reloadAfterExternalSelectedValueChange();\r\n }\r\n }\r\n\r\n private _reloadAfterExternalSelectedValueChange(): void {\r\n if (this._selectedValues && this._selectedValues.length > 0) {\r\n this._setConditionAndLoad(`ID <> 0 OR ${this._attrs[0]} ∈ { '${this._selectedValues.map(k => k.key).join(\"', '\")}' }`);\r\n } else {\r\n this._setConditionAndLoad(\"1=1\");\r\n }\r\n }\r\n\r\n private _addSelectedValue(item: IKeyValueItem): void {\r\n const selectedValIdx = this._selectedValues.findIndex(i => i.key === item.key);\r\n if (selectedValIdx === -1)\r\n this._selectedValues.push(item);\r\n }\r\n\r\n private _removeSelectedValue(key: string): boolean {\r\n const selectedValIdx = this._selectedValues.findIndex(i => i.key === key);\r\n if (selectedValIdx >= 0) {\r\n this._selectedValues.splice(selectedValIdx, 1);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public cancel(): void {\r\n this._selectedValues = Array.from(this._afterOpenValues);\r\n }\r\n protected _dgDataShownListener = () => {\r\n this._selectedDataItem(this._selectedValues);\r\n };\r\n\r\n public async initialize(className: string, attributes: Array<string>, frameContext: FrameContext, frameCondition?: string, frameConditionParams?: ConditionParams, disableValueShortening?: boolean, attrDataTypes?: CaseInsensitiveMap<string>): Promise<void> {\r\n const dataSource = new DBDataSource({\r\n className,\r\n attributes,\r\n condition: frameCondition,\r\n conditionParams: frameConditionParams,\r\n batchSize: this._dataGrid.fetchCount,\r\n dataLength: disableValueShortening ? -1 : 0,\r\n frameContext,\r\n });\r\n\r\n if (attributes.length > 0)\r\n dataSource.orderBy = attributes.map((item) => {\r\n return { attributeName: item, order: OrderType.ascending, additionalOrdering: AdditionalOrdering.linguistic } as IOrderBy;\r\n });/**/// [{ attributeName: attributes[0], order: OrderType.ascending } as IOrderBy]\r\n this._className = className;\r\n this._attrDataTypes = attrDataTypes;\r\n return this.initializeByDS(dataSource, attributes, frameCondition, frameConditionParams);\r\n }\r\n\r\n public async initializeByDS(dataSource: IDataSource, attributes: Array<string> = dataSource.getAttrs(), frameCondition?: string, frameConditionParams?: ConditionParams): Promise<void> {\r\n this._frameCondition = frameCondition;\r\n this._frameConditionParams = frameConditionParams;\r\n this._dataSource = dataSource;\r\n this._attrs = attributes;\r\n if (this._dataSource instanceof IUseDistinctDataSource)\r\n this._dataSource.useDistinct = true;\r\n this._dataGrid.dataSource = this._dataSource;\r\n this._dgContainer.appendChild(this._dataGrid);\r\n\r\n await this._createColumns();\r\n await this._dataSource.loadNewData();\r\n\r\n this._dataGrid.addEventListener(\"DataShown\", this._dgDataShownListener);\r\n }\r\n public async changeFrameConditionAndLoad(frameCondition: string): Promise<void> {\r\n this._frameCondition = frameCondition;\r\n await this._dataSource.loadNewData();\r\n }\r\n protected async _createColumns(): Promise<any> {\r\n const columns = new Array<Column>();\r\n let attrs = new Array<string>();\r\n\r\n try {\r\n let attrInfos: ReadonlyArray<IPublicAttributeInfo>;\r\n if (!this._className && this._dataSource) { //Pokud má datasource neperzistetní data (např. ArrayDataSource), vytvoří se\r\n attrInfos = this._dataSource.getAttrs().map(i => ({ attributeName: i, type: OWDataType.string } as IPublicAttributeInfo));\r\n } else {\r\n if (this._attrDataTypes) {\r\n attrInfos = this._attrs.map(i => {\r\n return { attributeName: i, type: this._attrDataTypes.get(i) };\r\n }) as IPublicAttributeInfo[];\r\n } else {\r\n attrInfos = await ModelDescriptionsManager.instance.getAttributesInfo(this._className, this._attrs);\r\n }\r\n }\r\n for (const attrInfo of attrInfos) {\r\n const col: Column = ColumnFactory.initColumn({ attrName: attrInfo.attributeName, dataType: \"attribute\" }, attrInfo.type);\r\n if (!col.visible) {\r\n continue;\r\n }\r\n\r\n columns.push(col);\r\n attrs = attrs.concat(col.dataSourceAttrNames);\r\n\r\n this._dataGrid.appendChild(col);\r\n }\r\n this._dataGrid.columns = columns;\r\n this._dataSource.setAttrs(attrs);\r\n this._dataSource.loadNewData();\r\n } finally {\r\n // Prazdne finally\r\n }\r\n }\r\n\r\n /**\r\n * Nastaví podmínku a načte nová data\r\n * @param cond podminka\r\n */\r\n protected async _setConditionAndLoad(condition: string): Promise<void> {\r\n let newCondition;\r\n if (this._frameCondition && condition)\r\n newCondition = `(${this._frameCondition}) AND(${condition})`;\r\n else if (this._frameCondition)\r\n newCondition = this._frameCondition;\r\n else if (condition)\r\n newCondition = condition;\r\n else\r\n newCondition = undefined;\r\n this._dataSource.condition = newCondition;\r\n if (this._frameConditionParams)\r\n this._dataSource.conditionParams = this._frameConditionParams;\r\n this._dataSource.loadNewData(false);\r\n }\r\n\r\n private _selectedDataItem(values: Array<IKeyValueItem>): Array<CheckedDataRow> {\r\n if (!values || values.length == 0)\r\n return [];\r\n const items = Array.from(this\r\n .querySelectorAll(values\r\n .map(item => `.CheckedDataRow[datakey='${item.key}']`) //`\r\n .join(\",\"))) as CheckedDataRow[];\r\n\r\n for (const item of items) {\r\n item.isSelected = true;\r\n }\r\n\r\n return items;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"ValueList\", \"dataGrid\");\r\n\r\n const topContainer = createElement({ classes: \"topContainer\" });\r\n this._dgContainer = createElement({ classes: \"dgContainer\" });\r\n this._progressBarLoader = this._createLoader();\r\n this._dgContainer.appendChild(this._progressBarLoader);\r\n\r\n this._searchBox = new Edit();\r\n\r\n let cts: CancellationTokenSource;\r\n this._searchBox.afterAttach(() => {\r\n this._searchBox.registerEventListener(\"keyup\", () => {\r\n this._showLoader();\r\n let promise: Promise<void>;\r\n ({ promise, cts } = PromiseUtils.cancelPrevAndDelayCall(cts, 500, (token?: CancellationToken) => {\r\n let dshowed: any;\r\n this._dataGrid.addEventListener(\"DataShown\",\r\n dshowed = () => {\r\n this._selectedDataItem(this._selectedValues);\r\n this._dataGrid.removeEventListener(\"DataShown\", dshowed);\r\n this._hideLoader();\r\n });\r\n\r\n const condition = `:Linguistic.LIKE(${this._attrs[0]}, '{value}%')`;\r\n this._dataSource.setFilterCondition(FilterRegistrations.updateCondition(condition, { \"value\": this._searchBox.value }));\r\n this._dataSource.loadNewData(false, token);\r\n }));\r\n promise.catch((e) => {\r\n this._hideLoader();\r\n PromiseUtils.cancellationCatch(e);\r\n });\r\n });\r\n });\r\n\r\n this._dataGrid = new ValueListDataGrid();\r\n\r\n topContainer.appendChild(this._searchBox);\r\n\r\n this.appendChild(topContainer);\r\n this.appendChild(this._dgContainer);\r\n }\r\n private _createLoader(): HTMLElement {\r\n const loaderElement = createElement({ type: \"div\", classes: \"loader indeterminate-loader\" });\r\n loaderElement.appendChild(createElement({ type: \"div\", classes: \"bar\" }));\r\n return loaderElement;\r\n }\r\n private _showLoader(): void {\r\n this._progressBarLoader.classList.toggle(\"loading\", true);\r\n }\r\n private _hideLoader(): void {\r\n this._progressBarLoader.classList.toggle(\"loading\", false);\r\n }\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this._dataGrid.addEventListener(\"SelectionChanged\", (evt: IDataGridSelectionChangedEvent) => {\r\n const isRow = evt.target instanceof CheckedDataRow;\r\n if (!isRow)\r\n return;\r\n const rowId = evt.detail.data.clickedRow ? evt.detail.data.clickedRow.dataKey : -1;\r\n\r\n if (rowId == -1) {\r\n logger.warn(\"RowId undefine selectionChanged not called\");\r\n return;\r\n }\r\n const item = evt.target as CheckedDataRow;\r\n //aktualizace pole _selectedValues na základě výběru uživatele\r\n if (!item.isSelected) {\r\n this._removeSelectedValue(item.dataKey);\r\n } else if (item.isSelected) {\r\n const keyValueItem = item.isSomeValueShortened ?\r\n { key: item.dataKey, value: item.values, shortenedValue: item.isSomeValueShortened } as IKeyValueItemExtended\r\n : { key: item.dataKey, value: item.values } as IKeyValueItem;\r\n this._addSelectedValue(keyValueItem);\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Základní struktura pro klíč hodnota, rozšířená o informaci, jestli byla hodnota zkrácena.\r\n */\r\nexport interface IKeyValueItemExtended extends IKeyValueItem {\r\n shortenedValue: boolean;\r\n}\r\n\r\nexport class IKeyValueItemExtended {\r\n private static _properties: string[] = [\"key\", \"value\", \"shortenedValue\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return typeof (instance) === \"object\" && instance != null && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-ValueList\", ValueList);\r\n","import { ConditionParams } from \"Global/Base/DataSources/Interfaces\";\r\nimport { DropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { CaseInsensitiveMap } from \"../../../../../UI.React/types/multiweb\";\r\nimport { FrameContext } from \"../../../UIManagerInterfaces\";\r\nimport { ValueList } from \"../AdvancedFilters/ValueList\";\r\n\r\nexport class DropDownMenuCheckedDGItem extends DropDownMenuItem {\r\n public isClickable: boolean = false;\r\n private _dgElement: ValueList;\r\n\r\n public get valueList(): ValueList {\r\n return this._dgElement;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"CheckedDataGridItem\");\r\n this._textElement = document.createElement(\"div\");\r\n this._textElement.innerHTML = \"\";\r\n this._dgElement = new ValueList();\r\n\r\n this.appendChild(this._dgElement);\r\n this._setListener();\r\n }\r\n\r\n public init(className: string, Attrs: Array<string>, frameContext: FrameContext, frameCondition?: string, frameConditionParams?: ConditionParams, _disableValueShortening?: boolean, attrDataTypes?: CaseInsensitiveMap<string>): void {\r\n this._dgElement.initialize(className, Attrs, frameContext, frameCondition, frameConditionParams, undefined, attrDataTypes);\r\n }\r\n\r\n protected override _setListener(): void {\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuCheckedDGItem\", DropDownMenuCheckedDGItem);\r\n","import { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { Edit } from \"../../UI.BaseControls/Edit\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\n\r\nexport class DropDownTextEditItem extends DropDownMenuItem {\r\n public isClickable: boolean = false;\r\n\r\n private _editElement: Edit;\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n public get editElement(): Edit {\r\n return this._editElement;\r\n }\r\n\r\n public override focus(): void {\r\n this._editElement.focus();\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n //this.Priority = ;\r\n //this.locKey = locKey;\r\n this.visible = true;\r\n //if (subMenu) this.Submenu = subMenu;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"TextItem\");\r\n\r\n this._editElement = new Edit();\r\n\r\n this._createIconElement();\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n\r\n this.appendChild(this._iconElement);\r\n this.appendChild(this._editElement);\r\n\r\n this._setListener();\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n }\r\n\r\n protected override _setListener(): void {\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownTextEditItem\", DropDownTextEditItem);\r\n","import { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { DropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\n//import { Caption } from '../../../Controls/Caption.js';\r\n\r\nexport class DropDownMenuCaptionItem extends DropDownMenuItem {\r\n private _secondCaptionElement: HTMLElement;\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n //this.Priority = ;\r\n //this.locKey = locKey;\r\n this.visible = true;\r\n //if (subMenu) this.Submenu = subMenu;\r\n }\r\n\r\n public setCaptions(mainText: string, caption: string): void {\r\n if (mainText == undefined)\r\n this._captionElement.textContent = mainText;\r\n if (caption == undefined)\r\n this._secondCaptionElement.textContent = caption;\r\n }\r\n\r\n public async setCaptionsLocKey(mainTextLoc: string, captionLoc: string): Promise<void> {\r\n if (mainTextLoc) {\r\n Localization.addLocData(this._captionElement, mainTextLoc);\r\n //this.locKey = mainTextLoc;\r\n }\r\n if (captionLoc) {\r\n Localization.addLocData(this._secondCaptionElement, captionLoc);\r\n //this.locKey = captionLoc;\r\n }\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"SecondCaptionItem\");\r\n const container = createElement({ type: \"div\", classes: \"container\" });\r\n this._secondCaptionElement = createElement({ type: \"span\", classes: \"second-caption\" });\r\n\r\n this._createCaptionElement();\r\n this._createIconElement();\r\n\r\n container.appendChild(this._captionElement);\r\n container.appendChild(this._secondCaptionElement);\r\n\r\n this.appendChild(this._iconElement);\r\n this.appendChild(container);\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n\r\n if (this._locKey) {\r\n Localization.addLocData(this._captionElement, this._locKey);\r\n }\r\n }\r\n\r\n protected override _setListener(): void {\r\n super._setListener();\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuCaptionItem\", DropDownMenuCaptionItem);\r\n","import { TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { Key } from \"Global/Base/Utils/EventUtils\";\r\nimport { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { CancellationTokenSource } from \"../../../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { PromiseUtils } from \"../../../../../Global/Base/Promises/PromiseUtils\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../UI.BaseControls/Control\";\r\nimport { Action } from \"../../../../UI.Controls/Actions/Action\";\r\nimport { DropDownMenuHorizontalOpen, IDropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { DropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { DropDownMenuItem } from \"../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { DropDownTextEditItem } from \"../../../../UI.Controls/DropDownMenu/DropDownTextEditItem\";\r\nimport { SeparatorMenuItem } from \"../../../../UI.Controls/DropDownMenu/SeparatorItem\";\r\nimport { registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuCaptionItem } from \"./DropDownMenuItems/DropDownMenuCaptionItem\";\r\nimport { DropDownMenuCheckboxItem } from \"./DropDownMenuItems/DropDownMenuCheckboxItem\";\r\nimport { IFilterValue, IMultiOneOperation, IMultiOperationValue, IMultiOperationValueList, IOperation } from \"./FilterInterfaces\";\r\nimport { logger } from \"./logger\";\r\n\r\nexport class FilterCombo extends Control {\r\n public defaultLocKey: string;\r\n private _dropDownMenu: DropDownMenu;\r\n private _canUseFilter: boolean;\r\n private _lastValue: string;\r\n private _lastItem: DropDownMenuItem;\r\n\r\n private _lastSelectedItem: DropDownMenuItem;\r\n private _canSelectItem: boolean;\r\n\r\n private _filterMenuElement: DropDownTextEditItem; // menu obsahujicí položky komba\r\n private _textDiv: HTMLElement; // text vedle šipky\r\n private _arrow: HTMLElement; // šipka komba\r\n\r\n private _lastArrowSelected: DropDownMenuItem;\r\n private _lastIconName: string;\r\n\r\n private _closeListener: (sender: DropDownMenu, prm: any) => void;\r\n private _comboItems: DropDownMenuItem[];\r\n private _parentMenu: IDropDownMenu;\r\n private _filterValueChangeCts: CancellationTokenSource;\r\n\r\n /**\r\n * Indikuje zda v menu bude použit filtrační řádek\r\n */\r\n public get canUseFilter(): boolean {\r\n return this._canUseFilter;\r\n }\r\n\r\n public set canUseFilter(v: boolean) {\r\n this._canUseFilter = v;\r\n\r\n this._filterMenuElement.visible = v;\r\n }\r\n\r\n /** Pokud je true, tak se při kliku na danou položku dojde k jejímu označení */\r\n public get canSelectItem(): boolean {\r\n return this._canSelectItem;\r\n }\r\n\r\n public set canSelectItem(v: boolean) {\r\n if (v === false) {\r\n this._deselectItem();\r\n }\r\n this._canSelectItem = v;\r\n }\r\n\r\n public set parentMenu(menu: IDropDownMenu) {\r\n this._parentMenu = menu;\r\n }\r\n\r\n /**\r\n * Rozparsuje menu na základě předané struktury\r\n */\r\n public parseFromStructure(struct: IFilterValue, selectedOper?: IOperation | IMultiOperationValueList): void {\r\n // temp funkce pro vytvoření položky menu. Kde při kliku na položk je vyvolána nativní akce ItemSelected\r\n const f_createMenuItem = (cList: IOperation) => {\r\n let element: DropDownMenuItem;\r\n if (cList.captionLocKey) {\r\n element = new DropDownMenuCaptionItem();\r\n } else {\r\n element = new DropDownMenuItem();\r\n }\r\n const action = new Action(async () => {\r\n if (this._parentMenu && !this._parentMenu.visible)\r\n this._parentMenu.visible = true;\r\n this.callEvent(\"ItemSelected\", {\r\n operation: cList,\r\n element: element,\r\n });\r\n //#region Nastaveni polozky jako vybrane\r\n this.selectItem(element);\r\n if (cList.fieldList.length == 0)\r\n this.callEvent(\"filterExecuteRequest\");\r\n //#endregion Nastaveni polozky jako vybrane\r\n }, cList.lockey);\r\n\r\n element.action = action;\r\n action.enabled = true;\r\n\r\n element.icon = \"None\";\r\n\r\n if (cList.captionLocKey) {\r\n (element as DropDownMenuCaptionItem).setCaptionsLocKey(cList.captionLocKey, cList.lockey);\r\n }\r\n\r\n return element;\r\n };\r\n\r\n for (const gList of struct.groupList) {\r\n if (gList.visible === false)\r\n continue;\r\n\r\n const visibleOperations = gList.operationList.filter((operation) => operation.isVisible);\r\n\r\n if (this._dropDownMenu.itemsCount > 1 && visibleOperations.length > 0) { // Menu obsahuje vždy minimálně filtrovací pole\r\n this._dropDownMenu.addItem(new SeparatorMenuItem());\r\n }\r\n\r\n for (const operation of visibleOperations) {\r\n const tempItem = f_createMenuItem(operation);\r\n\r\n this._dropDownMenu.addItem(tempItem);\r\n this._comboItems.push(tempItem);\r\n\r\n if (selectedOper === operation) { // Vybrani vychozi polozky\r\n this.selectItem(tempItem);\r\n }\r\n }\r\n }\r\n\r\n if (struct.multiOperation) {\r\n //const ft = Structure.GetField(struct.multiOperation.valueListType);\r\n //const af = new ft.control();\r\n //this.LoadMultiItems(af);\r\n const f_createAction = (it: IMultiOperationValue, el: DropDownMenuCheckboxItem) => {\r\n return async () => {\r\n el.isChecked = !el.isChecked;\r\n this.callEvent(el.isChecked ? \"ItemChecked\" : \"ItemUnchecked\",\r\n {\r\n operation: it,\r\n element: el,\r\n });\r\n };\r\n };\r\n\r\n const f_createChboxItem = (item: IMultiOneOperation, dataType: string) => {\r\n const m = new DropDownMenuCheckboxItem();\r\n\r\n if (item.captionHtml) {\r\n m.setCaption(item.captionHtml, item.lockey);\r\n (m.action as Action).action = f_createAction({\r\n value: item.value,\r\n id: item.id,\r\n fieldType: dataType,\r\n displayValue: item.captionHtml,\r\n }, m);\r\n } else {\r\n m.setLocalizedCaption(item.lockey);\r\n m.locKey = item.lockey;\r\n (m.action as Action).action = f_createAction({\r\n value: item.value,\r\n id: item.id,\r\n fieldType: dataType,\r\n displayValue: \"\",\r\n }, m);\r\n }\r\n\r\n m.isChecked = item.isDefault || false;\r\n m.value = item.value;\r\n m.valueType = dataType;\r\n m.valueId = item.id;\r\n m.action.enabled = true;\r\n\r\n return m;\r\n };\r\n this.setValueAsIcon(\"FilterMultiItem\");\r\n\r\n let inserted = false;\r\n\r\n for (const gList of struct.multiOperation.groupList) {\r\n if (gList.visible === false)\r\n continue;\r\n if (inserted && gList.operationList.length > 0)\r\n this._dropDownMenu.addItem(new SeparatorMenuItem());\r\n\r\n for (const cList of gList.operationList) {\r\n if (!cList.isVisible)\r\n continue;\r\n const tempItem = f_createChboxItem(cList, struct.dataType);\r\n this._dropDownMenu.addItem(tempItem);\r\n this._comboItems.push(tempItem);\r\n\r\n inserted = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public addItem(locKey: string, action: () => Promise<void>, locParams?: string[]): void {\r\n this._dropDownMenu.addItem(DropDownMenuItem.createDropMenuItem(\"none\", action, locKey, true, undefined, locParams));\r\n }\r\n\r\n public clearItems(): void {\r\n this._dropDownMenu.clearItems();\r\n\r\n this._dropDownMenu.addItem(this._filterMenuElement);\r\n }\r\n\r\n public getItem(oper: IMultiOperationValue): DropDownMenuCheckboxItem {\r\n for (const item of this._comboItems) {\r\n if (item instanceof DropDownMenuCheckboxItem) {\r\n const chckboxitem = item as DropDownMenuCheckboxItem;\r\n if ((chckboxitem.value == oper.value) && (chckboxitem.valueType == oper.fieldType) && (chckboxitem.valueId == oper.id))\r\n return chckboxitem;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Označí položku jako vybranou\r\n * @param item Položka menu k označení\r\n */\r\n public selectItem(item: DropDownMenuItem): void {\r\n if (!this.canSelectItem) {\r\n return;\r\n }\r\n\r\n this._deselectItem();\r\n\r\n this._lastSelectedItem = item;\r\n\r\n if (item) {\r\n this._lastSelectedItem.classList.add(\"selected\");\r\n this._lastSelectedItem.icon = \"Checked\";\r\n }\r\n }\r\n\r\n /** Zruší označení položky */\r\n private _deselectItem(): void {\r\n if (this._lastSelectedItem) {\r\n this._lastSelectedItem.classList.remove(\"selected\");\r\n this._lastSelectedItem.icon = \"None\";\r\n this._lastSelectedItem = null;\r\n }\r\n }\r\n\r\n /**\r\n * Nastaví textovou hodnotu komba\r\n * @param locKey\r\n */\r\n public setValue(value: string | DropDownMenuItem): void {\r\n if (this._lastItem) {\r\n this._lastItem.classList.remove(\"selected\");\r\n this._lastItem.icon = \"None\";\r\n }\r\n if (this._lastIconName)\r\n this._textDiv.classList.remove(\"Icon\", this._lastIconName);\r\n if (typeof value === \"string\") {\r\n const locKey = value as string;\r\n this._lastValue = locKey;\r\n Localization.getTextPromise(locKey).then((locItem) => {\r\n if (locItem.trim().length == 0)\r\n this._textDiv.style.display = \"none\";\r\n else\r\n this._textDiv.style.display = \"\";\r\n\r\n this._textDiv.innerHTML = `<span>${StringUtils.stringToHTMLText(locItem)}</span>`;\r\n }).catch((e) => logger.error(e));\r\n\r\n //const items = Array.from(this.dropDownMenu.querySelectorAll(\".DropDownMenuItem\")) as DropDownMenuItem[];\r\n\r\n //for (let item of items) {\r\n // if (item.LocKey == locKey) {\r\n // this.lastItem = item;\r\n // this.lastItem.classList.add(\"selected\");\r\n // this.lastItem.Icon = \"Checked\";\r\n // break;\r\n // }\r\n //}\r\n } else if (value instanceof DropDownMenuItem) {\r\n const val = value as DropDownMenuItem;\r\n this._lastItem = val;\r\n this._lastItem.classList.add(\"selected\");\r\n this._lastItem.icon = \"Checked\";\r\n\r\n Localization.getTextPromise(this._lastItem.locKey).then((locItem) => {\r\n if (locItem.trim().length == 0)\r\n this._textDiv.style.display = \"none\";\r\n else\r\n this._textDiv.style.display = \"\";\r\n this._textDiv.innerHTML = `<span>${StringUtils.stringToHTMLText(locItem)}</span>`;\r\n }).catch((e) => logger.error(e));\r\n } else if (value == undefined) {\r\n this._lastValue = \"\";\r\n this._lastItem = null;\r\n }\r\n }\r\n\r\n public setValueAsIcon(iconName: string): void {\r\n if (iconName) {\r\n this._textDiv.innerHTML = \"\";\r\n this._textDiv.classList.add(\"Icon\", iconName);\r\n this._textDiv.style.display = \"\";\r\n if (this._lastIconName)\r\n this._textDiv.classList.remove(this._lastIconName);\r\n this._lastIconName = iconName;\r\n } else {\r\n this._textDiv.style.display = \"none\";\r\n }\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._canUseFilter = true;\r\n this.classList.add(\"FilterCombo\", \"btn\", \"flat\", \"is-dropdown\");\r\n this.tabIndex = TAB_INDEX_FOCUSABLE_TAB_SEQUENCE;\r\n this._dropDownMenu = new DropDownMenu();\r\n this._dropDownMenu.horizontalOpenPosition = DropDownMenuHorizontalOpen.left;\r\n this._textDiv = document.createElement(\"div\");\r\n this._arrow = document.createElement(\"div\");\r\n\r\n this._textDiv.classList.add(\"text\");\r\n // this.arrow.classList.add(\"arrow\");\r\n\r\n this.appendChild(this._textDiv);\r\n this.appendChild(this._arrow);\r\n\r\n this._filterMenuElement = new DropDownTextEditItem();\r\n this._comboItems = [];\r\n this._dropDownMenu.addItem(this._filterMenuElement);\r\n }\r\n\r\n private _nextItem(): void {\r\n let next: Element = null;\r\n if (this._lastArrowSelected) {\r\n next = (this._lastArrowSelected as HTMLElement);\r\n do {\r\n next = next.nextElementSibling;\r\n if (next instanceof SeparatorMenuItem || next instanceof DropDownTextEditItem)\r\n continue;\r\n else if (next != null && (next as Control).visible)\r\n break;\r\n } while (next != null);\r\n if (next == null) {\r\n next = this._dropDownMenu.querySelector(\".DropDownMenuItem:not(.TextItem):not(.hidden)\");\r\n }\r\n } else {\r\n next = this._dropDownMenu.querySelector(\".DropDownMenuItem:not(.TextItem):not(.hidden)\");\r\n }\r\n if (!next)\r\n return;\r\n\r\n if (this._lastArrowSelected)\r\n this._lastArrowSelected.classList.remove(\"selected\");\r\n next.classList.add(\"selected\");\r\n this._lastArrowSelected = next as DropDownMenuItem;\r\n }\r\n\r\n private _prevItem(): void {\r\n let prev: Element = null;\r\n if (this._lastArrowSelected) {\r\n prev = (this._lastArrowSelected as HTMLElement);\r\n do {\r\n prev = prev.previousElementSibling;\r\n\r\n if (prev instanceof SeparatorMenuItem || prev instanceof DropDownTextEditItem)\r\n continue;\r\n else if (prev != null && (prev as Control).visible)\r\n break;\r\n } while (prev != null);\r\n if (prev == null) {\r\n const all = this._dropDownMenu.querySelectorAll(\".DropDownMenuItem:not(.TextItem):not(.hidden)\");\r\n prev = all.length > 0 ? all[all.length - 1] : null; //this.dropDownMenu.querySelector(\".DropDownMenuItem:not(.TextItem):last-child\");\r\n }\r\n } else {\r\n //prev = this.dropDownMenu.querySelector(\".DropDownMenuItem:not(.TextItem):last-child\");\r\n const all = this._dropDownMenu.querySelectorAll(\".DropDownMenuItem:not(.TextItem):not(.hidden)\");\r\n prev = all.length > 0 ? all[all.length - 1] : null;\r\n }\r\n if (!prev)\r\n return;\r\n\r\n if (this._lastArrowSelected)\r\n this._lastArrowSelected.classList.remove(\"selected\");\r\n prev.classList.add(\"selected\");\r\n this._lastArrowSelected = prev as DropDownMenuItem;\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n if (this._lastValue) {\r\n this.setValue(this._lastValue);\r\n } else if (this.defaultLocKey) {\r\n Localization.addLocData(this._textDiv, this.defaultLocKey);\r\n } else {\r\n if (!this._lastIconName)\r\n this._textDiv.style.display = \"none\";\r\n }\r\n\r\n this._registerListeners();\r\n }\r\n\r\n private _registerListeners(): void {\r\n this._dropDownMenu.onClose.add(this._closeListener = () => this.classList.remove(\"opened\"));\r\n this._dropDownMenu.registerEventListener(\"mousemove\", () => this._lastArrowSelected?.classList.remove(\"selected\"));\r\n this._dropDownMenu.registerEventListener(\"mouseleave\", () => this._lastArrowSelected?.classList.add(\"selected\"));\r\n this.registerEventListener(\"click\", (event) => this._onClickListener(event));\r\n }\r\n\r\n private _onClickListener(clickEvent: Event): void {\r\n if (this.classList.contains(\"Disabled\"))\r\n return;\r\n\r\n if (this._dropDownMenu.isOpened) {\r\n this._dropDownMenu.closeAll();\r\n this.classList.remove(\"opened\");\r\n\r\n if (this.canUseFilter) {\r\n this._filterMenuElement.focus();\r\n }\r\n } else {\r\n if (this._dropDownMenu.itemsCount === 2) { // Skrytý input pro posun v menu šipkami + jedna položka menu\r\n return;\r\n }\r\n\r\n this._dropDownMenu.show(this, clickEvent);\r\n this._filterMenuElement.focus();\r\n this._filterMenuElement.editElement.registerEventListener(\"keyup\", (event: KeyboardEvent) => this._onKeyUpListener(event));\r\n\r\n // je potreba toto menu nastavit rodicovskemu jako nove otevrene - jinak by se rodicovske mohlo zavrit pri kliku do tohoto (kontroluje se InElement() na sobe a na openedSubmenu)\r\n if (this._parentMenu != null) {\r\n if (this._parentMenu.openedSubmenu && this._parentMenu.openedSubmenu != this._dropDownMenu)\r\n this._parentMenu.openedSubmenu.closeAll();\r\n this._parentMenu.openedSubmenu = this._dropDownMenu;\r\n }\r\n this.classList.add(\"opened\");\r\n }\r\n }\r\n\r\n private _onKeyUpListener(e: KeyboardEvent): void {\r\n if (e.key === Key.Escape) {\r\n this._dropDownMenu.clearFilter();\r\n this._filterMenuElement.editElement.value = \"\";\r\n return;\r\n } else if (e.key === Key.ArrowDown || e.key === Key.ArrowUp) {\r\n if (e.key === Key.ArrowDown)\r\n this._nextItem();\r\n\r\n if (e.key === Key.ArrowUp)\r\n this._prevItem();\r\n\r\n return;\r\n } else if (e.key === Key.Enter) {\r\n e.stopPropagation();\r\n\r\n if (this._lastArrowSelected) {\r\n if (this._lastArrowSelected.classList.contains(\"selected\")) {\r\n if (e.shiftKey) { // pokud s entrem zmackneme i shift, provede se vybrani akce, ale nezavre se okno\r\n (this._lastArrowSelected.action as Action).execute();\r\n this._filterMenuElement.focus();\r\n return;\r\n } else {\r\n this._lastArrowSelected.click();\r\n this._lastArrowSelected.classList.remove(\"selected\");\r\n }\r\n } else {\r\n const elem = this._dropDownMenu.querySelector(\":not(.TextItem).DropDownMenuItem:hover\") as HTMLElement;\r\n elem.click();\r\n }\r\n\r\n this._lastArrowSelected = null;\r\n }\r\n\r\n return;\r\n }\r\n\r\n const { promise, cts } = PromiseUtils.cancelPrevAndDelayCall(this._filterValueChangeCts, 300, () => this._onChangeFilterValue());\r\n this._filterValueChangeCts = cts;\r\n promise.catch(PromiseUtils.cancellationCatch);\r\n }\r\n\r\n private _onChangeFilterValue(): void {\r\n const val = this._filterMenuElement.editElement.value.trim();\r\n\r\n if (val.length > 0)\r\n this._dropDownMenu.filter(val);\r\n else\r\n this._dropDownMenu.clearFilter();\r\n\r\n // pokud po vyfiltrování nezůstane viditělna polozka, ktera byla vybrana sipkama zrusi se\r\n if (this._lastArrowSelected && !this._lastArrowSelected.visible) {\r\n this._lastArrowSelected.classList.remove(\"selected\");\r\n this._lastArrowSelected = null;\r\n }\r\n\r\n // jelikož se změní počet filtrovaných položek menu, přepočítají se jeho parametry\r\n this._dropDownMenu.isOverflow = false;\r\n this._dropDownMenu.recalculatePosition();\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this._dropDownMenu.onClose.remove(this._closeListener);\r\n this._dropDownMenu.unregisterEventListener(\"mousemove\");\r\n this._dropDownMenu.unregisterEventListener(\"mouseleave\");\r\n this.unregisterEventListener(\"click\");\r\n this._filterMenuElement.editElement.unregisterEventListener(\"keyup\");\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-filtercombo\", FilterCombo);\r\n","import { EventHelper } from \"../../../../../../UI/UI.BaseControls/Helpers/EventHelper\";\r\nimport { DropDownMenuItem } from \"../../../../../../UI/UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { registerCustomElement } from \"../../../../../../UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\n\r\nexport class DropDownTextAreaItem extends DropDownMenuItem {\r\n //#region Fields\r\n public isClickable: boolean = false;\r\n protected override _textElement: HTMLTextAreaElement;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get text(): string {\r\n return this._textElement.value;\r\n }\r\n //#endregion Properties\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n }\r\n\r\n //#region Methods\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"textarea\");\r\n\r\n this._textElement = document.createElement(\"textarea\");\r\n\r\n this.appendChild(this._textElement);\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n // Nemá se vytvářet nic, ani z předka\r\n }\r\n\r\n protected override _setListener(): void {\r\n this.registerEventListener(\"click\", (event: MouseEvent) => {\r\n if (event.button === 0) {\r\n EventHelper.stopImmediatePropagation(event);\r\n }\r\n });\r\n\r\n this._textElement.addEventListener(\"focus\", () => {\r\n this._textElement.classList.add(\"focused\");\r\n });\r\n\r\n this._textElement.addEventListener(\"blur\", () => {\r\n this._textElement.classList.remove(\"focused\");\r\n });\r\n\r\n this._textElement.addEventListener(\"keydown\", (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" && !e.shiftKey) {\r\n e.preventDefault(); // Nechceme reagovat\r\n } else if (e.key === \"Escape\") {\r\n e.stopPropagation(); // Zabrání zavření\r\n }\r\n });\r\n\r\n this._textElement.addEventListener(\"keyup\", (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\" && !e.shiftKey) {\r\n e.preventDefault();\r\n this.callEvent(\"ConfirmInput\");\r\n }\r\n });\r\n }\r\n\r\n public override focus(): void {\r\n this._textElement.focus();\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n //#endregion Methods\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownTextAreaItem\", DropDownTextAreaItem);\r\n","import { DIContainer } from \"../../../../../../Global/Base/DIContainer\";\r\nimport { DropDownMenuHorizontalOpen } from \"../../../../../../UI/UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { DropDownMenu } from \"../../../../../../UI/UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { registerCustomElement } from \"../../../../../../UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { LocalizedStringBuilder } from \"../../../../../../UI/UI/UI/DataBuilders/LocalizedStringBuilder\";\r\nimport { MessageType, MessageWindow } from \"../../../../../../UI/UI/UI/MessageWindow\";\r\nimport { DropDownTextAreaItem } from \"../DropDownMenuItems/DropDownTextAreaItem\";\r\nimport { IExtendedFilterParser } from \"../FilterInterfaces\";\r\n/** Popup rozšířeného filtru */\r\nexport class ExtendedFilterEdit extends DropDownMenu {\r\n //#region Fields\r\n public dataType: string;\r\n private _textArea: DropDownTextAreaItem;\r\n private _parser: IExtendedFilterParser;\r\n //#endregion Fields\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.horizontalOpenPosition = DropDownMenuHorizontalOpen.left;\r\n this.disableCloseTimeout = true;\r\n\r\n this._parser = DIContainer.instance.create(IExtendedFilterParser);\r\n\r\n this._parser.failed.add((_sender, invalidSubstring) => {\r\n const m = new MessageWindow(new LocalizedStringBuilder(\"GUI-687242\", [invalidSubstring])); // Hodnota \"@0\" není validní pro tento typ sloupce\r\n m.type = MessageType.alert;\r\n m.stopClickPropagation = true;\r\n m.show();\r\n });\r\n }\r\n\r\n //#region Methods\r\n protected override _createElement(): void {\r\n super._createElement();\r\n\r\n this._textArea = new DropDownTextAreaItem();\r\n this.addItem(this._textArea);\r\n\r\n this.visible = true;\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this._textArea.registerEventListener(\"ConfirmInput\", () => this._parseInput(this._textArea));\r\n }\r\n\r\n /** Zpracuje vstup a vrátí nově vytvořené operace filtru */\r\n protected _parseInput(textarea: DropDownTextAreaItem): void {\r\n const result = this._parser.parse(textarea.text, this.dataType);\r\n\r\n if (!result || result.length === 0) {\r\n return;\r\n }\r\n\r\n this.callEvent(\"ExtendedFilterParsed\", {\r\n filters: result,\r\n element: this,\r\n }, true);\r\n\r\n this.close();\r\n }\r\n\r\n /**\r\n * Zavře aktuální a všechny podřízené nabídky\r\n */\r\n public override close(_dontOpenOnNextClick: boolean = false): void {\r\n super.close();\r\n this.onClose.trigger(this, null);\r\n }\r\n //#endregion Methods\r\n}\r\n\r\nregisterCustomElement(\"tsc-ExtendedFilterEdit\", ExtendedFilterEdit);\r\n","import { IKeyValueItem } from \"../../../../../Global/Base/DataSources/Interfaces\";\r\nimport { AttrStringValue } from \"../../../../../Global/Base/DataTypes/AttrValue\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Checkbox } from \"../../../../UI.BaseControls/Checkbox\";\r\nimport { Control } from \"../../../../UI.BaseControls/Control\";\r\nimport { IValidatable } from \"../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { EditableControl } from \"../../../../UI.BaseControls/EditableControl\";\r\nimport { NumEdit } from \"../../../../UI.BaseControls/NumEdit\";\r\nimport { TimeEdit } from \"../../../../UI.BaseControls/TimeEdit\";\r\nimport { IDropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { createElement, registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IHasFrameContext } from \"../../Controls/ControlInterfaces\";\r\nimport { FrameContext } from \"../../UIManagerInterfaces\";\r\nimport { BaseAdvancedFilters } from \"./AdvancedFilters/BaseAdvancedFilters\";\r\nimport { DateTimeWithInclude } from \"./AdvancedFilters/DateTimeWithInclude\";\r\nimport { ExtendedFilterEdit } from \"./AdvancedFilters/ExtendedFilterEdit\";\r\nimport { IKeyValueItemExtended } from \"./AdvancedFilters/ValueList\";\r\nimport { DropDownTextAreaItem } from \"./DropDownMenuItems/DropDownTextAreaItem\";\r\nimport { FilterCombo } from \"./FilterCombo\";\r\nimport {\r\n FilterJsonResultSign,\r\n FilterTargetType,\r\n IFilterBlock,\r\n IFilterGroup,\r\n IFilterItem,\r\n IFilterJsonResult,\r\n IFilterJsonResultValue,\r\n IFilterUserValue,\r\n IOperation,\r\n IReplaceFilterItem,\r\n} from \"./FilterInterfaces\";\r\nimport { FilterRegistrations } from \"./FilterRegistrations\";\r\nimport { IStructureExtension } from \"./IStructureExtension\";\r\nimport { IWithInclude } from \"./IWithInclude\";\r\n\r\n/**\r\n * Třída obsahující základní filter pro jednu filtrační operaci\r\n */\r\nexport class FilterItem extends Control implements IFilterItem, IHasFrameContext {\r\n /**\r\n * Nadřazený filtrační blok\r\n */\r\n public parent: IFilterBlock;\r\n public dataType: string;\r\n protected _group: IFilterGroup; // nadřazena skupina\r\n protected _isUsed: boolean;\r\n protected _isChanged: boolean;\r\n\r\n protected _curStruct: IOperation; // sablona operace pro dany FilterItem\r\n\r\n //#region Elementy pro přepnutí OR nebo AND podmínky pro předchozí FilterItem\r\n protected _conditionElement: HTMLElement; // nadrazena polozka pro [OR | AND]Btn Elementy\r\n protected _orBtnElement: HTMLElement; // Element pro podmínku OR\r\n protected _andBtnElement: HTMLElement; // Element pro podmínku AND\r\n //#endregion Elementy pro přepnutí OR nebo AND podmínky pro předchozí FilterItem\r\n\r\n protected _filterListeners: any;\r\n\r\n protected _topContent: HTMLElement; // element hlavičky obsahujici filterCombo, isUsedElement, removeElement\r\n protected _fieldContent: HTMLElement; // nadřazená položka pro filtrační pole vygenerovana na základě struktury\r\n protected _filterCombo: FilterCombo; // kombo obsahujici seznam podmínek pro připadnou změnu podmínky pro item\r\n protected _isUsedElement: Checkbox; // checkbox pro vypnutí/zapnutí použití filtru\r\n protected _removeElement: HTMLElement; // element pro odebrání\r\n protected _curSelectedOperation: FilterJsonResultSign; // Aktuální znaménko propojující predchozi FilterItem s tímto\r\n\r\n private _firstInputElement: EditableControl;\r\n private _lastUsedClass: string;\r\n private _parentMenu: IDropDownMenu;\r\n /** Kontext framu */\r\n public frameContext: FrameContext | undefined = undefined;\r\n\r\n /**\r\n * Aktuální znaménko propojující predchozi FilterItem s tímto\r\n */\r\n public get currentSign(): FilterJsonResultSign {\r\n return this._curSelectedOperation;\r\n }\r\n\r\n public set currentSign(v: FilterJsonResultSign) {\r\n this._curSelectedOperation = v;\r\n\r\n this._orBtnElement.classList.toggle(\"active\", !(v === \"and\"));\r\n this._andBtnElement.classList.toggle(\"active\", (v === \"and\"));\r\n }\r\n\r\n public get parentMenu(): IDropDownMenu {\r\n return this._parentMenu;\r\n }\r\n\r\n public set parentMenu(menu: IDropDownMenu) {\r\n this._parentMenu = menu;\r\n if (this._filterCombo)\r\n this._filterCombo.parentMenu = menu;\r\n }\r\n\r\n /**\r\n * Nadřazená skupina filtrů\r\n */\r\n public set group(value: IFilterGroup) {\r\n this._group = value;\r\n\r\n if (value.filterStructure.dataType === \"flags\") {\r\n Localization.addLocDescData(this._filterCombo, \"GUI-690552\", \"title\"); // Výběr barev\r\n } else if (!value.filterStructure.basicMultiOperation) { // U MultiOperation lze vybírat jen předdefinované hodnoty, takže ty popisky u ní nemají smysl\r\n Localization.addLocDescData(this._filterCombo, \"GUI-668875\", \"title\"); // Vybrat podmínku\r\n Localization.addLocDescData(this._fieldContent, \"GUI-726763\", \"title\"); // Zadáním :: spustíte rozšířený filtr.\r\n }\r\n\r\n this._filterCombo.parseFromStructure(value.filterStructure, this._curStruct);\r\n }\r\n\r\n public get group(): IFilterGroup {\r\n return this._group;\r\n }\r\n\r\n public get isUsed(): boolean {\r\n if (this._isUsed && this.parent.type == FilterTargetType.column)\r\n return this._isChanged;\r\n return (this._isUsed && this._isUsedElement.enabled);\r\n }\r\n\r\n public set isUsed(v: boolean) {\r\n this._isUsed = v;\r\n this._isUsedElement.checked = v;\r\n }\r\n\r\n public get operationId(): string {\r\n return this._curStruct ? this._curStruct.id : undefined;\r\n }\r\n\r\n /**\r\n * Obsahuje informace o tom, zda byla skupina nekdy zmenena\r\n */\r\n public get isChanged(): boolean {\r\n return this._isChanged;\r\n }\r\n\r\n /**\r\n * Načtení filtru ze struktury\r\n * @param struct Struktura pro danou operaci\r\n * @param values Hodnoty pro pole\r\n */\r\n public loadFromStructure(struct: IOperation, values?: { [id: string]: IFilterJsonResultValue }): void {\r\n this._curStruct = struct;\r\n if (this._lastUsedClass)\r\n this.classList.remove(this._lastUsedClass);\r\n this.classList.add(struct.id);\r\n this._lastUsedClass = struct.id;\r\n // Pokud se pomocí filterCombo přepne podmínka, muzou být některé hodnoty už vyplněné, takže\r\n // se před smazáním starých polí hodnoty uloží do dočasného pole na základě jejich ID a potom se\r\n // přesunou jako hodnoty nových, pokud není vyplněna položka values.\r\n const fieldOldVal: Map<string, string> = new Map<string, string>(); // map starych poli\r\n const fieldOldSubOperationID: Map<string, string> = new Map<string, string>();\r\n const fields = Array.from(this._fieldContent.children) as EditableControl[];\r\n for (const field of fields) {\r\n fieldOldVal.set(field.getAttribute(\"filter-id\"), field instanceof IFilterUserValue ? field.userValue : field.value);\r\n if (field instanceof IStructureExtension) {\r\n if (field.subOperationID) {\r\n fieldOldSubOperationID.set(field.getAttribute(\"filter-id\"), field.subOperationID);\r\n }\r\n }\r\n }\r\n\r\n this._fieldContent.innerHTML = \"\";\r\n\r\n if (struct.fieldList.length === 0) {\r\n this._isChanged = true;\r\n }\r\n\r\n for (const field of struct.fieldList) {\r\n const f = FilterRegistrations.getFieldInstance(field.fieldType); // vrati instanci daného pole\r\n if (f instanceof IHasFrameContext)\r\n f.frameContext = this.frameContext;\r\n if (!this._firstInputElement)\r\n this._firstInputElement = f;\r\n f.setAttribute(\"filter-id\", field.id);\r\n f.setAttribute(\"filter-type\", field.fieldType);\r\n f.setAttribute(\"filter-item-id\", this._curStruct.id);\r\n f.setAttribute(\"data-attrname\", this.group.attrName);\r\n f.setAttribute(\"data-classname\", this.parent.objectName);\r\n\r\n if (f instanceof ExtendedFilterEdit) {\r\n f.dataType = this.dataType;\r\n }\r\n\r\n if (field.additional && field.additional.including && f instanceof IWithInclude) {\r\n f.includeVisible = true;\r\n }\r\n\r\n if (field.additional && field.additional.defaultValue) {\r\n f.defaultValue = field.additional.defaultValue;\r\n }\r\n\r\n if (this.group.displayFormat) {\r\n if (f instanceof NumEdit)\r\n f.innerElement.setAttribute(\"displayformat\", this.group.displayFormat);\r\n if (f instanceof TimeEdit)\r\n f.setAttribute(\"timeformat\", this.group.displayFormat);\r\n if (f instanceof DateTimeWithInclude)\r\n f.applyDisplayFormat(this.group.displayFormat);\r\n }\r\n\r\n // zde se kontroluji zda jsou nejake nove hodnoty predany nebo existuji nejake stare\r\n if (values != undefined && values[field.id] != undefined) {\r\n if (f instanceof IWithInclude && values[field.id].additional && values[field.id].additional.including)\r\n f.include = true;\r\n if (f instanceof IFilterUserValue && values[field.id].userValue)\r\n f.userValue = values[field.id].userValue;\r\n else\r\n f.value = values[field.id].value;\r\n this._isChanged = true;\r\n } else if (fieldOldVal.get(field.id))\r\n f.value = fieldOldVal.get(field.id);\r\n\r\n if (f instanceof IStructureExtension)\r\n f.subOperationID = struct.subId;\r\n\r\n if (f instanceof BaseAdvancedFilters) {\r\n f.menu.addEventListener(\"open\", () => {\r\n if (this.parentMenu)\r\n this.parentMenu.openedSubmenu = f.menu;\r\n });\r\n }\r\n\r\n // změna z uloženého na neuložený\r\n f.afterAttach((control) => {\r\n if (control instanceof BaseAdvancedFilters) {\r\n control.registerEventListener(\"executeFilter\", () => {\r\n this._isChanged = true;\r\n this.parent.unsave();\r\n this.parent.execute();\r\n });\r\n }\r\n\r\n control.registerEventListener(\"change\", () => {\r\n this._isChanged = true;\r\n this.parent.unsave();\r\n });\r\n\r\n control.registerEventListener(\"input\", () => {\r\n this.callEvent(\"filterShowImplementationCheckbox\", undefined, true);\r\n }, undefined, { once: true });\r\n\r\n control.registerEventListener(\"filterExecuteRequest\", () => {\r\n this.parent.executeRequest = true;\r\n });\r\n\r\n if (!(control instanceof ExtendedFilterEdit)) {\r\n control.registerEventListener(\"keyup\", (e: any) => { // Událost input elementu\r\n if (e instanceof KeyboardEvent)\r\n this._executeKeyListener(e, f);\r\n else if (e instanceof CustomEvent)\r\n this._executeKeyListener(e.detail.original, f);\r\n });\r\n }\r\n });\r\n\r\n this._fieldContent.appendChild(f as HTMLElement);\r\n }\r\n\r\n this._filterCombo.setValue(struct.captionLocKey || struct.lockey);\r\n }\r\n\r\n /**\r\n * Při odpovídající kombinaci kláves spustí filtrování\r\n * @param event Událost stisku klávesy\r\n * @param control Komponenta, která vyvolala událost\r\n */\r\n protected _executeKeyListener(event: KeyboardEvent, control: EditableControl): void {\r\n if (event.key === \"Enter\" && !event.shiftKey && !event.ctrlKey && !event.altKey && control.validate()) {\r\n this._isChanged = true;\r\n this.parent.execute();\r\n }\r\n\r\n if (this._isShortcutAllowed()) {\r\n const val = (event.target as HTMLInputElement)?.value;\r\n\r\n if (val.length >= 2) {\r\n const trimmedStr = val.trimLeft();\r\n\r\n if (trimmedStr.length === 2 && trimmedStr === \"::\") {\r\n (event.target as HTMLInputElement).value = \"\";\r\n\r\n this._filterCombo.callEvent(\"ItemSelected\", {\r\n operation: {\r\n id: \"extended\",\r\n subId: undefined,\r\n lockey: \"GUI-685188\",\r\n fieldList: [{ id: \"input6\", fieldType: \"ExtendedFilterEdit\" }],\r\n order: 99,\r\n isDefault: false,\r\n isVisible: true,\r\n },\r\n });\r\n (this.querySelector(\"tsc-dropdowntextareaitem textarea\") as DropDownTextAreaItem)?.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n public override focus(): void {\r\n if (this._firstInputElement)\r\n this._firstInputElement.focus();\r\n }\r\n\r\n /** Resetuje textovou hodnotu comba na aktuálně vybranou operaci */\r\n public resetCaption(): void {\r\n this._filterCombo.setValue(this._curStruct.captionLocKey || this._curStruct.lockey);\r\n }\r\n\r\n /**\r\n * Vrátí hodnoty položek\r\n * @param isForExport Vrácený objekt, nebude mít definované property, které jsou defaultně true. (např. enabled)\r\n */\r\n public getResult(isForExport: boolean = false, filterTargetType: FilterTargetType): IFilterJsonResult {\r\n let subOperationId = null;\r\n const arr: Array<IFilterJsonResultValue> = [];\r\n const fields = Array.from(this._fieldContent.children) as EditableControl[];\r\n let valid: boolean = true;\r\n\r\n for (const field of fields) {\r\n let currentSubOperationId = undefined;\r\n if (field instanceof IStructureExtension) {\r\n if (field.subOperationID) {\r\n currentSubOperationId = subOperationId = field.subOperationID;\r\n }\r\n }\r\n if (field instanceof IValidatable) {\r\n if (!field.validate()) {\r\n valid = false;\r\n }\r\n }\r\n\r\n if (field instanceof IReplaceFilterItem) {\r\n const newItems = field.recreateFilter(this._curStruct);\r\n\r\n if (newItems.length > 0) {\r\n for (const item of newItems) {\r\n const operation = FilterRegistrations.getOperationByOperationId(this.dataType, item.operation);\r\n this.group.createFilterItem({ operation: operation, values: item.values, isUsed: true, operator: item.operator });\r\n if (item.operator) this._curSelectedOperation = item.operator;\r\n }\r\n\r\n this.parent.executeRequest = true;\r\n this.remove();\r\n continue;\r\n }\r\n }\r\n\r\n //Vysledkem může být any. V případě hodnoty jsou/nejsou může být bud jedna hodnota typu IKeyValueItem nebo jejich pole.\r\n let resultArray: any[] | any = [];\r\n if (field.value && field.value instanceof Array) {\r\n for (const val of field.value) {\r\n if (val instanceof IKeyValueItemExtended && val.shortenedValue)\r\n resultArray.push(new AttrStringValue(val.value, val.shortenedValue));\r\n else\r\n resultArray.push(val instanceof IKeyValueItem ? val.value : val);\r\n }\r\n } else\r\n resultArray = field.value instanceof IKeyValueItem ? field.value.value : field.value;\r\n\r\n const valueItem: IFilterJsonResultValue = {\r\n value: isForExport && !resultArray ? \"\" : resultArray,\r\n additional: field instanceof IWithInclude ? { including: field.include } : undefined,\r\n userValue: field instanceof IFilterUserValue ? field.userValue : undefined,\r\n fieldId: isForExport ? undefined : field.getAttribute(\"filter-id\"), //pro export uživateli nepotřebujeme\r\n fieldType: isForExport ? undefined : field.getAttribute(\"filter-type\"), //pro export uživateli nepotřebujeme\r\n subOperationId: currentSubOperationId,\r\n };\r\n if (isForExport && valueItem.additional == undefined && valueItem.userValue == undefined && valueItem)\r\n arr.push(!resultArray ? \"\" : resultArray); //pro export do JSON přidá pouze hodnotu, pokud není uvedeno nic dalšího. JSON pak bude čitelnější a stručnější.\r\n else\r\n arr.push(valueItem);\r\n }\r\n //const isUsed = this.Parent.Type == FilterTargetType.Column ? this.isChanged : this.IsUsed;\r\n\r\n return {\r\n operation: this._curStruct.id,\r\n subOperation: subOperationId ? subOperationId : undefined,\r\n operator: isForExport && this._curSelectedOperation === \"or\" ? undefined : this._curSelectedOperation,\r\n values: arr,\r\n enabled: isForExport && this.isUsed\r\n ? undefined\r\n : (filterTargetType === FilterTargetType.column ? this.isUsed : this._isUsed && this._isUsedElement.enabled),\r\n isValid: isForExport && valid ? undefined : valid,\r\n };\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"FilterItem\");\r\n this._filterListeners = [];\r\n this._isUsed = true;\r\n this._isChanged = false;\r\n this._conditionElement = createElement({ classes: \"condition\" });\r\n this._orBtnElement = createElement({ classes: [\"btn-condition\", \"or\", \"active\"] });\r\n this._andBtnElement = createElement({ classes: [\"btn-condition\", \"and\"] });\r\n this._curSelectedOperation = \"or\"; // nastavení výchozího znaménka\r\n\r\n const innerSpanOr = createElement({ type: \"span\" });\r\n Localization.addLocData(innerSpanOr, \"GUI-452734\"); // Nebo\r\n this._orBtnElement.appendChild(innerSpanOr);\r\n\r\n const innerSpanAnd = createElement({ type: \"span\" });\r\n Localization.addLocData(innerSpanAnd, \"GUI-598905\"); // A zároveň\r\n this._andBtnElement.appendChild(innerSpanAnd);\r\n\r\n this._conditionElement.appendChild(this._orBtnElement);\r\n this._conditionElement.appendChild(this._andBtnElement);\r\n\r\n this._topContent = createElement({ classes: \"top\" });\r\n\r\n this._filterCombo = new FilterCombo();\r\n this._filterCombo.classList.add(\"changeCondition\", \"flat\", \"btn\", \"is-dropdown\");\r\n this._filterCombo.canUseFilter = false;\r\n this._filterCombo.canSelectItem = false;\r\n this._filterCombo.afterAttach(() => {\r\n this._filterCombo.registerEventListener(\"filterExecuteRequest\", () => this.parent.executeRequest = true);\r\n });\r\n\r\n this._fieldContent = createElement({ classes: \"fields\" });\r\n\r\n this.appendChild(this._conditionElement);\r\n this.appendChild(this._topContent);\r\n this.appendChild(this._fieldContent);\r\n\r\n this._topContent.appendChild(this._filterCombo as HTMLElement);\r\n\r\n const btnContent = createElement({ classes: \"btn_bar\" });\r\n this._isUsedElement = new Checkbox();\r\n this._isUsedElement.classList.add(\"is_used\", \"is-dot\");\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668872\", \"title\");//Deaktivovat podmínku\r\n this._removeElement = createElement({ classes: [\"icon\", \"remove\", \"ui-cross-small\"] });\r\n Localization.addLocDescData(this._removeElement, \"GUI-649338\", \"title\");//odebrat\r\n btnContent.appendChild(this._isUsedElement as HTMLElement);\r\n btnContent.appendChild(this._removeElement);\r\n\r\n this._topContent.appendChild(btnContent);\r\n\r\n this._isUsedElement.isNullable = false;\r\n this._isUsedElement.standardAction = true;\r\n this._isUsedElement.checked = true;\r\n }\r\n\r\n private _hasExtendedFilterParsedListener(): boolean {\r\n return this.getEventListeners(\"ExtendedFilterParsed\").length > 0;\r\n }\r\n\r\n private _isShortcutAllowed(): boolean {\r\n const dataType = this.dataType.toLowerCase();\r\n return !(dataType === \"date\" || dataType === \"datetime\" || dataType === \"time\");\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n // Kombo pro zmenu typu podmínky\r\n this._filterCombo.registerEventListener(\"ItemSelected\", (e: CustomEvent) => {\r\n const operation: IOperation = e.detail.operation;\r\n this.loadFromStructure(operation);\r\n this.parent.unsave();\r\n\r\n if (operation.id === \"extended\") {\r\n this.callEvent(\"ExtendedFilterCreated\", {\r\n filter: this,\r\n }, true);\r\n }\r\n });\r\n\r\n if (this.operationId === \"extended\" && !this._hasExtendedFilterParsedListener()) {\r\n this.callEvent(\"ExtendedFilterCreated\", {\r\n filter: this,\r\n }, true);\r\n }\r\n\r\n this._orBtnElement.addEventListener(\"click\", this._filterListeners[\"orButton\"] = () => {\r\n if (this._orBtnElement.classList.contains(\"Disabled\"))\r\n return;\r\n this._orBtnElement.classList.toggle(\"active\", true);\r\n this._andBtnElement.classList.toggle(\"active\", false);\r\n this._curSelectedOperation = \"or\";\r\n this.parent.unsave();\r\n });\r\n\r\n this._andBtnElement.addEventListener(\"click\", this._filterListeners[\"andButton\"] = () => {\r\n if (this._andBtnElement.classList.contains(\"Disabled\"))\r\n return;\r\n this._orBtnElement.classList.toggle(\"active\", false);\r\n this._andBtnElement.classList.toggle(\"active\", true);\r\n this._curSelectedOperation = \"and\";\r\n this.parent.unsave();\r\n });\r\n\r\n this._isUsedElement.addEventListener(\"change\", this._filterListeners[\"isused\"] = () => {\r\n this._isUsed = this._isUsedElement.checked;\r\n this.classList.toggle(\"notUsed\", !this._isUsed);\r\n if (this._isUsed)\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668872\", \"title\"); //Deaktivovat podmínku\r\n else\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668896\", \"title\"); //Aktivovat podmínku\r\n this.parent.unsave();\r\n });\r\n\r\n this._removeElement.addEventListener(\"click\", this._filterListeners[\"removeElement\"] = () => {\r\n if (this._removeElement.classList.contains(\"Disabled\"))\r\n return;\r\n this.remove();\r\n });\r\n }\r\n\r\n public override remove(): void {\r\n if (this.group.items.length === 1)\r\n this.group.remove();\r\n super.remove();\r\n this.parent.unsave();\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback(); // Odstraní všechny Listenery na FilterItem (včetně ExtendedFilterParsed)\r\n\r\n this._orBtnElement.removeEventListener(\"click\", this._filterListeners[\"orButton\"]);\r\n this._andBtnElement.removeEventListener(\"click\", this._filterListeners[\"andButton\"]);\r\n this._isUsedElement.removeEventListener(\"change\", this._filterListeners[\"isused\"]);\r\n this._removeElement.removeEventListener(\"click\", this._filterListeners[\"removeElement\"]);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-FilterItem\", FilterItem);\r\n","import { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement, registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuCheckboxItem } from \"./DropDownMenuItems/DropDownMenuCheckboxItem\";\r\nimport { IFilterJsonResult, IFilterJsonResultValue, IMultiOperation, IMultiOperationValue, IOperation } from \"./FilterInterfaces\";\r\nimport { FilterItem } from \"./FilterItem\";\r\nimport { logger } from \"./logger\";\r\n\r\n/**\r\n* Třídá obsahující základní filter pro jednu filtrační operaci\r\n*/\r\nexport class FilterMultiItem extends FilterItem {\r\n //private _curValues: IMultiOperationValueList;\r\n private _curmStruc: IMultiOperation;\r\n\r\n /**\r\n * Načtení filtru ze struktury\r\n * @param struct Struktura pro danou operaci\r\n * @param values Hodnoty pro pole\r\n */\r\n public override loadFromStructure(struct: IOperation, values?: { [id: string]: IFilterJsonResultValue }): void {\r\n this._curStruct = struct;\r\n logger.log(values);\r\n //this.fieldContent.appendChild(this.createElementMultiItem(oper, null));\r\n\r\n this._fieldContent.innerHTML = \"\";\r\n }\r\n\r\n public async loadStruc(struct: IMultiOperation, values?: { [id: string]: IFilterJsonResultValue }): Promise<void> {\r\n this._curmStruc = struct;\r\n if (values) {\r\n this._isChanged = true;\r\n for (const grp of struct.groupList) {\r\n for (const item of grp.operationList) {\r\n if (values[item.id]) {\r\n const oper = {\r\n value: item.value,\r\n id: item.id,\r\n fieldType: struct.id,\r\n displayValue: item.captionHtml,\r\n };\r\n\r\n const chboxitem = this._filterCombo.getItem(oper);\r\n if (chboxitem) {\r\n chboxitem.isChecked = true;\r\n }\r\n\r\n const multiItem = await this._createElementMultiItem(oper, chboxitem);\r\n this._fieldContent.appendChild(multiItem);\r\n\r\n if (!item.captionHtml) {\r\n Localization.getTextPromise(item.lockey)\r\n .then((locText) => {\r\n multiItem.querySelector(\"span\").textContent = locText;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí hodnoty položek\r\n * @param isForExport Vrácený objekt, nebude mít definované property, které jsou defaultně true. (např. enabled)\r\n */\r\n public override getResult(isForExport: boolean = false): IFilterJsonResult {\r\n const arr: Array<IFilterJsonResultValue> = [];\r\n const fields = Array.from(this._fieldContent.children) as HTMLElement[];\r\n\r\n for (const ch of fields) {\r\n //if (this.Parent.Type == FilterTargetType.Column && !this.IsChanged) continue;\r\n const valueItem: IFilterJsonResultValue = {\r\n value: ch.getAttribute(\"data-filter-value\"),\r\n fieldId: ch.getAttribute(\"data-filter-id\"),\r\n fieldType: ch.getAttribute(\"data-filter-type\"), //,\r\n //sign: \"or\"\r\n };\r\n arr.push(valueItem);\r\n }\r\n //const isUsed = this.Parent.Type == FilterTargetType.Column ? this.isChanged : this.IsUsed;\r\n\r\n const f: IFilterJsonResult = {\r\n isMultiItem: true,\r\n operation: this._curmStruc.id,\r\n operator: isForExport && this._curSelectedOperation == \"or\" ? undefined : this._curSelectedOperation,\r\n values: arr,\r\n enabled: isForExport && this.isUsed ? undefined : this.isUsed,\r\n isValid: isForExport ? undefined : true,\r\n };\r\n\r\n return f;\r\n }\r\n\r\n private async _createElementMultiItem(oper: IMultiOperationValue, chboxitem: DropDownMenuCheckboxItem): Promise<HTMLElement> {\r\n // Regex pro formát loc klíče (př.: GUI-468461)\r\n const captionText = /^GUI-[0-9]+$/.test(oper.displayValue) ? await Localization.getTextPromise(oper.displayValue) : oper.displayValue;\r\n\r\n const oneitem = createElement({\r\n html: `<span>${StringUtils.stringToHTMLText(captionText)}</span>`,\r\n classes: \"FilterValue\",\r\n attrs: {\r\n \"data-filter-value\": oper.value,\r\n \"data-filter-id\": oper.id,\r\n \"data-filter-type\": oper.fieldType,\r\n },\r\n });\r\n const removeElement = createElement({ classes: \"Icon Remove\" });\r\n removeElement.addEventListener(\"click\", (_e: MouseEvent) => {\r\n if (chboxitem) {\r\n chboxitem.isChecked = false;\r\n }\r\n this._filterCombo.callEvent(\"ItemUnchecked\",\r\n {\r\n operation: oper,\r\n element: chboxitem,\r\n });\r\n });\r\n\r\n oneitem.appendChild(removeElement);\r\n\r\n return oneitem;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.classList.add(\"FilterMultiItem\");\r\n this._curSelectedOperation = \"or\";\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this._filterCombo.setValue(\"GUI-658184\"); // Zvolte hodnotu\r\n // Kombo pro zmenu typu podmínky\r\n this._filterCombo.registerEventListener(\"ItemChecked\", async (e: CustomEvent) => {\r\n //logger.log(\"ItemSelected\", e.detail);\r\n const oper: IMultiOperationValue = e.detail.operation;\r\n const el: DropDownMenuCheckboxItem = e.detail.element;\r\n\r\n //if (this.fieldContent.querySelector(`:scope > [data-filter-value='${oper.value}'][data-filter-id='${oper.id}'][data-filter-type='${oper.fieldType}']`) != null) return;\r\n if (this._fieldContent.querySelector(`[data-filter-value='${oper.value}'][data-filter-id='${oper.id}'][data-filter-type='${oper.fieldType}']`) != null) {\r\n return;\r\n }\r\n\r\n this._fieldContent.appendChild(await this._createElementMultiItem(oper, el));\r\n logger.log(e.detail);\r\n //this.LoadFromStructure(oper);\r\n this._isChanged = true;\r\n\r\n this.parent.unsave();\r\n });\r\n\r\n this._filterCombo.registerEventListener(\"ItemUnchecked\", (e: CustomEvent) => {\r\n const oper: IMultiOperationValue = e.detail.operation;\r\n //const el = this.fieldContent.querySelector(`:scope > [data-filter-value='${oper.value}'][data-filter-id='${oper.id}'][data-filter-type='${oper.fieldType}']`);\r\n const el = this._fieldContent.querySelector(`[data-filter-value='${oper.value}'][data-filter-id='${oper.id}'][data-filter-type='${oper.fieldType}']`);\r\n if (el != null) {\r\n el.remove();\r\n }\r\n this._isChanged = true;\r\n\r\n this.parent.unsave();\r\n });\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-FilterMultiItem\", FilterMultiItem);\r\n","import { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Checkbox } from \"../../../../UI.BaseControls/Checkbox\";\r\nimport { Control } from \"../../../../UI.BaseControls/Control\";\r\nimport { IDropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { createElement, registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IHasFrameContext } from \"../../Controls/ControlInterfaces\";\r\nimport { FrameContext } from \"../../UIManagerInterfaces\";\r\nimport { FilterCombo } from \"./FilterCombo\";\r\nimport { FilterJsonResultSign, FilterTargetType, IFilterBlock, IFilterGroup, IFilterItem, IFilterItemDefinition, IFilterJsonDataAttr, IFilterJsonResult, IFilterValue, IMultiOperation, IOperation } from \"./FilterInterfaces\";\r\nimport { FilterItem } from \"./FilterItem\";\r\nimport { FilterMultiItem } from \"./FilterMultiItem\";\r\nimport { FilterRegistrations } from \"./FilterRegistrations\";\r\nimport { logger } from \"./logger\";\r\n\r\nconst TEMP_REMOVED_CLASS = \"TemporarilyRemoved\";\r\n\r\n/**\r\n * Třída obsahující skupinu FilterItem\r\n */\r\nexport class FilterGroup extends Control implements IFilterGroup, IHasFrameContext {\r\n /**\r\n * Nadrazeny filterBlock\r\n */\r\n public parent: IFilterBlock;\r\n /**\r\n * Jméno atributu\r\n */\r\n public attrName: string;\r\n public displayFormat: string;\r\n private _sign: FilterJsonResultSign = \"and\";\r\n private _filterStructure: IFilterValue; // struktura filtru\r\n private _isUsed: boolean;\r\n private _filterListeners: any;\r\n private _canDelete: boolean;\r\n private _canFirstItemDelete: boolean;\r\n private _parentMenu: IDropDownMenu;\r\n\r\n private _locKey: string;\r\n private _locParams: string[];\r\n /** Kontext framu */\r\n public frameContext: FrameContext | undefined = undefined;\r\n\r\n /**\r\n * Zakáže smazání skupiny\r\n */\r\n public get canDelete(): boolean {\r\n return this._canDelete;\r\n }\r\n\r\n public set canDelete(v: boolean) {\r\n this._canDelete = v;\r\n\r\n this._removeElement.style.display = v ? \"\" : \"none\";\r\n }\r\n\r\n /**\r\n * Zakáže smazání první položky ve skupině\r\n */\r\n public get canFirstItemDelete(): boolean {\r\n return this._canFirstItemDelete;\r\n }\r\n\r\n public set canFirstItemDelete(v: boolean) {\r\n this._canFirstItemDelete = v;\r\n this.classList.toggle(\"FirstItemCantDelete\", !v);\r\n }\r\n\r\n public get locKey(): string {\r\n return this._locKey;\r\n }\r\n public get locParams(): string[] {\r\n return this._locParams;\r\n }\r\n\r\n public get filterStructure(): IFilterValue {\r\n return this._filterStructure;\r\n }\r\n\r\n /**\r\n * Struktura filtru\r\n */\r\n public set filterStructure(value: IFilterValue) {\r\n this._filterStructure = value;\r\n if (value) {\r\n this.setAttribute(\"data-type\", this._filterStructure.dataType);\r\n\r\n if (value.basicMultiOperation || value.multiOperation) {\r\n this._addConditionButton.visible = false;\r\n } else {\r\n this._addConditionButton.parseFromStructure(value);\r\n }\r\n }\r\n }\r\n\r\n public get operator(): FilterJsonResultSign {\r\n return this._sign;\r\n }\r\n\r\n public set operator(sign: FilterJsonResultSign) {\r\n if (sign != this._sign) {\r\n this._sign = sign;\r\n if (this.parent) this.parent.unsave();\r\n }\r\n }\r\n\r\n /**\r\n * Indikuje zda je filtrovací skupina použita\r\n */\r\n public override get enabled(): boolean {\r\n return this._isUsed;\r\n }\r\n\r\n public override set enabled(v: boolean) {\r\n this._isUsed = v;\r\n this._isUsedElement.checked = v;\r\n this.classList.toggle(\"notUsed\", !this._isUsed);\r\n }\r\n\r\n /**\r\n * Vrací FilterItemy BEZ těch dočasně odstraněných, viz getter na this._temporarilyRemovedItems.\r\n */\r\n public get items(): IFilterItem[] {\r\n return Array.from(this.querySelectorAll(`.FilterItem:not(.${TEMP_REMOVED_CLASS})`)) as IFilterItem[];\r\n }\r\n\r\n /**\r\n * Vrátí FilterItemy, které jsou označeny za dočasně odstraněné (getter na this.items je nevrací). Využívá se to u smazání celé FilterGroup (pomocí ikony popelnice), protože tato akce umožňuje filtr po určitý časový interval obnovit.\r\n */\r\n private get _temporarilyRemovedItems(): IFilterItem[] {\r\n return Array.from(this.querySelectorAll(`.FilterItem.${TEMP_REMOVED_CLASS}`)) as IFilterItem[];\r\n }\r\n\r\n /**\r\n * Informace o tom, zda je element prave ve fazi odebirání (zobrazena moznost undo)\r\n */\r\n public get isRemoving(): boolean {\r\n return this._isRemoving;\r\n }\r\n\r\n public get parentMenu(): IDropDownMenu {\r\n return this._parentMenu;\r\n }\r\n\r\n public set parentMenu(menu: IDropDownMenu) {\r\n this._parentMenu = menu;\r\n this._addConditionButton.parentMenu = menu;\r\n }\r\n\r\n //#region Inner elements\r\n private _hideArrowElement: HTMLElement; // sipka na skrytí skupiny\r\n private _nameElement: HTMLElement; // element s nazvem skupiny\r\n private _contentElement: HTMLElement; // element s obsahem skupiny\r\n private _isUsedElement: Checkbox; // checkbox element pro IsUsed\r\n private _removeElement: HTMLElement; // remove button\r\n private _undoElement: HTMLElement; // undo button\r\n private _undoInterval: any = null;\r\n private _undoIntervalCounter: number = 0;\r\n private _isRemoving: boolean;\r\n private _addConditionButton: FilterCombo; // Combobox na pridani další filterItem\r\n //#endregion Inner elements\r\n\r\n /**\r\n * Přidá jednu položku filtru\r\n * @param item Položka k vložení\r\n * @param insertBefore Položka, místo které má dojít ke vložení\r\n */\r\n protected _addItem(item: IFilterItem, insertBefore?: IFilterItem): void {\r\n item.group = this;\r\n item.parent = this.parent;\r\n\r\n if (insertBefore) {\r\n this._contentElement.insertBefore(item as HTMLElement, insertBefore);\r\n\r\n return;\r\n }\r\n\r\n this._contentElement.appendChild(item as HTMLElement);\r\n }\r\n\r\n /**\r\n * Nastavením css třídy (TemporarilyRemoved) odstraní všechny své FilterItemy z this.items, viz získávání této property. Volá se při odstraňování celé FilterGroup, což jde po určitý časový úsek vrátit a proto se to řeší přes css třídu a ne přes funkci remove().\r\n */\r\n private _temporarilyRemoveAllItems(): void {\r\n for (const item of this.items) {\r\n item.classList.add(TEMP_REMOVED_CLASS);\r\n }\r\n }\r\n\r\n /**\r\n * Vrátí výsledek filtru\r\n * @param isForExport Vrácený objekt, nebude mít definované property, které jsou defaultně true. (např. enabled)\r\n */\r\n public getResult(isForExport: boolean = false, filterTargetType: FilterTargetType): IFilterJsonDataAttr {\r\n const items = this.items;\r\n const arr: Array<IFilterJsonResult> = [];\r\n\r\n for (const item of items) {\r\n const result = item.getResult(isForExport, filterTargetType);\r\n\r\n arr.push(result);\r\n }\r\n return {\r\n operator: isForExport && this.operator == \"and\" ? undefined : this.operator,\r\n attrName: this.attrName,\r\n conditions: arr,\r\n enabled: isForExport && this.enabled ? undefined : this.enabled,\r\n displayFormat: this.displayFormat,\r\n };\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._filterListeners = {};\r\n this.classList.add(\"FilterGroup\", \"Opened\");\r\n this._isRemoving = false;\r\n\r\n this._canDelete = true;\r\n this._canFirstItemDelete = true;\r\n\r\n this._isUsed = true;\r\n //#region Tvorba základních elementu\r\n const top = createElement({ classes: \"top\" });\r\n const nameDiv = createElement({ classes: \"nameDiv\" });\r\n this._contentElement = createElement({ classes: \"content\" });\r\n this._hideArrowElement = createElement({ classes: \"arrow\" });\r\n\r\n this._nameElement = createElement({ classes: \"name\" });\r\n\r\n this._addConditionButton = new FilterCombo();\r\n this._addConditionButton.classList.add(\"AddCondition\");\r\n this._addConditionButton.defaultLocKey = \"GUI-598877\"; // Přidat podmínku\r\n this._addConditionButton.canUseFilter = false;\r\n this._addConditionButton.canSelectItem = false;\r\n\r\n this._addConditionButton.afterAttach(() => {\r\n this._addConditionButton.registerEventListener(\"filterExecuteRequest\", () => this.parent.executeRequest = true);\r\n });\r\n\r\n const btnContent = createElement({ classes: \"btn_bar\" });\r\n this._isUsedElement = new Checkbox();\r\n this._isUsedElement.classList.add(\"is_used\", \"is-dot\");\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668892\", \"title\");//Deaktivovat filtr sloupce\r\n this._removeElement = createElement({ classes: [\"icon\", \"remove\", \"editorial-trash\"] });\r\n Localization.addLocDescData(this._removeElement, \"GUI-649338\", \"title\");//odebrat\r\n this._undoElement = createElement({ classes: [\"icon\", \"undo\", \"ui-undo\"] });\r\n Localization.addLocDescData(this._undoElement, \"GUI-615976\", \"title\");//Vrátit změny\r\n\r\n this._isUsedElement.isNullable = false;\r\n this._isUsedElement.standardAction = true;\r\n //#endregion Tvorba základních elementu\r\n\r\n this._isUsedElement.checked = true;\r\n\r\n //#region Append elementů do hlavního elementů\r\n nameDiv.appendChild(this._hideArrowElement);\r\n nameDiv.appendChild(this._nameElement);\r\n top.appendChild(nameDiv);\r\n Localization.addLocDescData(nameDiv, \"GUI-668898\", \"title\");//Sbalit fitr sloupce\r\n this.appendChild(top);\r\n this.appendChild(this._contentElement);\r\n this.appendChild(this._addConditionButton);\r\n\r\n btnContent.appendChild(this._isUsedElement as HTMLElement);\r\n btnContent.appendChild(this._removeElement);\r\n btnContent.appendChild(this._undoElement);\r\n\r\n top.appendChild(btnContent);\r\n //#endregion Append elementů do hlavního elementů\r\n }\r\n\r\n /**\r\n * Vytvoří a přidá do skupiny jednu položku filtru podle definice\r\n * @param definition Definice položky filtru\r\n * @param itemToReplace Položka, která má být nahrazena\r\n */\r\n public createFilterItem(definition: IFilterItemDefinition, itemToReplace?: IFilterItem): void {\r\n if (definition.operation instanceof IMultiOperation) {\r\n const item = new FilterMultiItem();\r\n item.parentMenu = this.parentMenu;\r\n item.currentSign = definition.operator;\r\n item.isUsed = definition.isUsed;\r\n\r\n this._addItem(item, itemToReplace);\r\n item.loadStruc(definition.operation, definition.values);\r\n\r\n return;\r\n }\r\n\r\n const item = new FilterItem();\r\n item.frameContext = this.frameContext;\r\n item.parentMenu = this.parentMenu;\r\n item.currentSign = definition.operator ? definition.operator : \"or\";\r\n item.isUsed = definition.isUsed;\r\n item.dataType = this._filterStructure.dataType;\r\n\r\n this._addItem(item, itemToReplace);\r\n item.loadFromStructure(definition.operation, definition.values);\r\n\r\n if (definition.operation.id === \"extended\") {\r\n this._registerExtendedFilterListener(item);\r\n }\r\n\r\n item.focus();\r\n }\r\n\r\n /**\r\n * Zaregistruje listener pro přepisování filtru skrze event z ExtendedFilterEdit\r\n * @param item Položka, u které má dojít k přepsání\r\n */\r\n private _registerExtendedFilterListener(item: FilterItem): void {\r\n const operation = FilterRegistrations.getDefaultOperation(this._filterStructure.dataType);\r\n item.registerEventListener(\"ExtendedFilterParsed\", (e: CustomEvent) => {\r\n let signChanged = false;\r\n for (const filter of e.detail.filters) {\r\n this.createFilterItem({\r\n operation: operation,\r\n values: filter ? { [\"input1\"]: filter.value } : undefined,\r\n operator: (signChanged) ? filter.operator : item.currentSign,\r\n isUsed: true,\r\n }, item);\r\n signChanged = true;\r\n }\r\n\r\n if (item) {\r\n item.remove();\r\n }\r\n\r\n this.parent.unsave();\r\n });\r\n }\r\n public setLocKey(locKey: string, locParams?: string[]): void {\r\n this._locKey = locKey;\r\n this._locParams = locParams;\r\n if (this._locKey) {\r\n Localization.getTextPromiseWithParams(this._locKey, this._locParams).then((locItem) => {\r\n this._nameElement.innerHTML = `<span>${StringUtils.stringToHTMLText(locItem)}</span>`;\r\n }).catch((e) => logger.error(e));\r\n } else\r\n this._nameElement.innerHTML = \"\";\r\n }\r\n\r\n // You can also define the other lifecycle methods.\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n // Zpracování události s komba na přidání podmínky\r\n this._addConditionButton.registerEventListener(\"ItemSelected\", (e: CustomEvent) => {\r\n // vytvoří novou položku a přidá do stránky\r\n const operation: IOperation = e.detail.operation;\r\n this.createFilterItem({ operation: operation, isUsed: true });\r\n });\r\n\r\n this._contentElement.classList.toggle(\"Disabled\", !this._isUsed);\r\n\r\n // checkbox o použití filtru\r\n this._isUsedElement.registerEventListener(\"change\", () => {\r\n this._isUsed = this._isUsedElement.checked;\r\n\r\n this._contentElement.classList.toggle(\"Disabled\", !this._isUsed);\r\n if (this._isUsed)\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668892\", \"title\"); //Deaktivovat filtr sloupce\r\n else\r\n Localization.addLocDescData(this._isUsedElement, \"GUI-668894\", \"title\"); //Aktivovat filtr sloupce\r\n\r\n for (const item of this.items) {\r\n item.isUsed = this._isUsed;\r\n }\r\n this.parent.unsave();\r\n });\r\n\r\n // tlacitko na smazani skupiny filtru\r\n this._removeElement.addEventListener(\"click\", this._filterListeners[\"removeElement\"] = () => {\r\n if (!this._canDelete)\r\n return;\r\n\r\n this.classList.add(TEMP_REMOVED_CLASS);\r\n this._isRemoving = true;\r\n const lastCount = this.parent.executeCount;\r\n\r\n const f_clearInterval = () => {\r\n clearInterval(this._undoInterval);\r\n this._undoIntervalCounter = 0;\r\n this._undoInterval = null;\r\n };\r\n\r\n if (this._undoInterval) f_clearInterval();\r\n\r\n this._temporarilyRemoveAllItems();\r\n this.parent.unsave();\r\n this.parent.filterGroupRemoved.trigger(this, { temporarily: true });\r\n this._undoInterval = self.setInterval(() => {\r\n if (this.parent.executeCount != lastCount || this._undoIntervalCounter++ >= 50) {\r\n f_clearInterval();\r\n\r\n this.classList.remove(TEMP_REMOVED_CLASS);\r\n this.remove();\r\n }\r\n }, 100);\r\n });\r\n\r\n this._hideArrowElement.addEventListener(\"click\", this._filterListeners[\"hideBlock\"] = () => {\r\n this.classList.toggle(\"Opened\");\r\n });\r\n\r\n this._nameElement.addEventListener(\"click\", this._filterListeners[\"hideBlock2\"] = () => {\r\n this.classList.toggle(\"Opened\");\r\n });\r\n\r\n this._undoElement.addEventListener(\"click\", this._filterListeners[\"undoClick\"] = () => {\r\n if (this._undoInterval)\r\n clearInterval(this._undoInterval);\r\n\r\n this.classList.remove(TEMP_REMOVED_CLASS);\r\n for (const removedItem of this._temporarilyRemovedItems) {\r\n removedItem.classList.remove(TEMP_REMOVED_CLASS);\r\n }\r\n\r\n this.parent.filterGroupRestored.trigger(this, null);\r\n this._isRemoving = false;\r\n this.parent.unsave();\r\n });\r\n\r\n this.registerEventListener(\"ExtendedFilterCreated\", this._filterListeners[\"ExtendedFilterCreated\"] = (e: CustomEvent) => {\r\n this._registerExtendedFilterListener(e.detail.filter);\r\n });\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n super.disconnectedCallback();\r\n\r\n this._hideArrowElement.removeEventListener(\"click\", this._filterListeners[\"hideBlock\"]);\r\n this._removeElement.removeEventListener(\"click\", this._filterListeners[\"removeElement\"]);\r\n this._nameElement.removeEventListener(\"click\", this._filterListeners[\"hideBlock2\"]);\r\n this._undoElement.removeEventListener(\"click\", this._filterListeners[\"undoClick\"]);\r\n this.removeEventListener(\"ExtendedFilterCreated\", this._filterListeners[\"ExtendedFilterCreated\"]);\r\n\r\n if (this.parent.isConnected && !this.parent.groups.length) { // Pokud je parent stále v HTML DOMu, ale po smazání této FilterGroup neobsahuje žádnou další, je potřeba vytvořit novou\r\n this.parent.filterGroupRemoved.trigger(this, { temporarily: false });\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-FilterGroup\", FilterGroup);\r\n","import React from \"react\";\r\nimport { render, unmountComponentAtNode } from \"react-dom\";\r\n\r\nimport { AdvancedFilter } from \"@multiweb/reactComponents\";\r\nimport { ElementUtils } from \"UI/UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { registerCustomElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IHtmlElementWithResources } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\n\r\n/** Pokročilý filtr pro vkládání TescoTools podmínek */\r\nexport class AdvancedFilterEdit extends HTMLElement implements IHtmlElementWithResources {\r\n // #region Fields\r\n private _advancedFilterCondition: string;\r\n private _showAdvancedFilter: boolean = false;\r\n // #endregion Fields\r\n\r\n // #region Properties\r\n /** Aktuálně nastavená podmínka pokročilého filtru */\r\n public get condition(): string {\r\n return this._advancedFilterCondition;\r\n }\r\n // #endregion Properties\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this.classList.add(\"input-container\");\r\n }\r\n\r\n // #region Methods\r\n /**\r\n * Zobrazí vstup pro pokročilý filtr\r\n * @param condition Použitá podmínka\r\n */\r\n public showFilter(condition?: string): void {\r\n this._showAdvancedFilter = true;\r\n\r\n if (condition) {\r\n this._advancedFilterCondition = condition;\r\n\r\n this._createFilter(true);\r\n\r\n return;\r\n }\r\n\r\n this._createFilter();\r\n }\r\n\r\n protected connectedCallback(): void {\r\n this._createFilter();\r\n }\r\n\r\n /**\r\n * Vytvoří vstup pro pokročilý filtr\r\n * @param refresh Překreslí obsah komponenty s novou hodnotou. Nutné při její externí změně\r\n */\r\n private async _createFilter(refresh?: boolean): Promise<void> {\r\n if (!this._showAdvancedFilter) {\r\n return;\r\n }\r\n\r\n if (refresh) {\r\n unmountComponentAtNode(this);\r\n }\r\n\r\n render(React.createElement(AdvancedFilter, {\r\n condition: this._advancedFilterCondition,\r\n onConfirm: (newCondition) => this._conditionConfirmed(newCondition),\r\n onChange: (newCondition) => this._conditionChanged(newCondition),\r\n onClose: () => this._closed(),\r\n }), this);\r\n }\r\n\r\n /**\r\n * Nastaví novou uživatelskou podmínku z pokročilého filtru\r\n * @param condition Uživatelem zadná podmínka\r\n */\r\n private _conditionChanged(condition: string): void {\r\n if (this._advancedFilterCondition !== condition) {\r\n ElementUtils.callEvent(this, \"filterChanged\", undefined, false, false);\r\n }\r\n\r\n this._advancedFilterCondition = condition;\r\n }\r\n\r\n /**\r\n * Nastaví novou uživatelskou podmínku z pokročilého filtru a vyvolá událost značící změnu podmínky\r\n * @param condition Uživatelem zadná podmínka\r\n */\r\n private _conditionConfirmed(condition: string): void {\r\n if (!condition) {\r\n this._clearAdvancedFilterValue();\r\n\r\n return;\r\n }\r\n\r\n this._advancedFilterCondition = condition;\r\n\r\n ElementUtils.callEvent(this, \"executeFilter\", undefined, false, false);\r\n }\r\n\r\n /** Reaguje na událost zavření pokročilého filtru smazáním jeho hodnoty a odstraněním ze stránky */\r\n private _closed(): void {\r\n unmountComponentAtNode(this);\r\n\r\n this._showAdvancedFilter = false;\r\n\r\n this._clearAdvancedFilterValue();\r\n }\r\n\r\n /** Smaže hodnotu pokročilého filtru a vyvolá událost značící změnu podmínky */\r\n private _clearAdvancedFilterValue(): void {\r\n if (this._advancedFilterCondition) {\r\n this._advancedFilterCondition = null;\r\n\r\n ElementUtils.callEvent(this, \"executeFilter\", undefined, false, false);\r\n }\r\n }\r\n\r\n public dispose(): void {\r\n unmountComponentAtNode(this);\r\n }\r\n\r\n // #endregion Methods\r\n}\r\n\r\nregisterCustomElement(\"tsc-AdvancedFilterEdit\", AdvancedFilterEdit);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.filters);\r\n\r\n//#region BaseStructures\r\n/**\r\n * Bázová třída pro kontrolu schématu objektů\r\n */\r\nexport abstract class IBaseDynamicSchemaInterfaceClass<T extends object> {\r\n public readonly requiredFields?: IFieldType<T>[];\r\n public readonly optionalFields?: IFieldType<T>[];\r\n}\r\n\r\n/**\r\n * Základní datové typy fieldů\r\n */\r\nexport enum FieldType {\r\n boolean,\r\n number,\r\n string,\r\n array,\r\n object,\r\n any,\r\n}\r\n\r\n/**\r\n * Datový interface s informacemi o fieldu\r\n */\r\nexport interface IFieldType<T extends object> {\r\n name: keyof(T);\r\n type: FieldType;\r\n allowedValues?: any[]; // TODO: any? Mám jak jinak určit typ?\r\n caseInsensitiveAllowedValues?: boolean;\r\n}\r\n\r\n/**\r\n * Typy validačních chyb\r\n */\r\nexport enum SchemaValidationErrorType {\r\n missingField,\r\n invalidDataType,\r\n notAllowedValue,\r\n}\r\n\r\n/**\r\n * Typy validačních varování\r\n */\r\nexport enum SchemaValidationWarningType {\r\n unsupportedField,\r\n}\r\n\r\n/**\r\n * Validační chyba\r\n */\r\nexport interface ISchemaValidationError<T extends object> {\r\n field: IFieldType<T>;\r\n errorType: SchemaValidationErrorType;\r\n value?: any;\r\n}\r\n\r\n/**\r\n * Validační varování\r\n */\r\nexport interface ISchemaValidationWarning {\r\n fieldName: PropertyKey;\r\n warningType: SchemaValidationWarningType;\r\n value?: any;\r\n}\r\n\r\n/**\r\n * Výsledek validace\r\n */\r\nexport interface ISchemaValidationResult<T extends object> {\r\n /** Příznak, zda byla validace úspěšná */\r\n success: boolean;\r\n /** Validační chyby */\r\n errors?: ISchemaValidationError<T>[];\r\n /** Validační varování */\r\n warnings?: ISchemaValidationWarning[];\r\n}\r\n\r\n//#endregion BaseStructures\r\n\r\n/**\r\n * Zvaliduje objekt proti definovanému schématu.\r\n * Schéma musí dědit z IBaseDynamicSchemaInterfaceClass. Na konci souboru jsou příklady použití.\r\n */\r\nexport class ObjectSchemaValidator {\r\n /**\r\n * Zvaliduje objekt proti definovanému schématu.\r\n * @param object Objekt který se má validovat\r\n * @param schema Schéma proti kterému se má validovat\r\n */\r\n public static validateObjectSchema<T extends object>(object: object, schema: IBaseDynamicSchemaInterfaceClass<T>, logErrors = false): ISchemaValidationResult<T> /*TODO: nevracet jen bool*/ {\r\n const result: ISchemaValidationResult<T> = {\r\n success: true,\r\n errors: [],\r\n warnings: [],\r\n };\r\n\r\n const objectFields = new Set(Object.keys(object));\r\n\r\n if (!schema.requiredFields) {\r\n result.success = false; // TODO: přidat hlášku o neexistujících povinných ve schématu? Nebo povolovat schéma bez povinných?\r\n return result; // TODO: nevracet jen bool\r\n }\r\n\r\n const validate = (field: IFieldType<T>, predicate: (propertyValue: any) => boolean, propertyType: string, allowNull: boolean = false): boolean => {\r\n const propertyName = field.name;\r\n\r\n if ((object as any)[propertyName] == null) {\r\n if (!allowNull) {\r\n if (logErrors)\r\n logger.error(`Undefined propertyName '${String(propertyName)}'.`);\r\n return false;\r\n }\r\n } else if (!predicate((object as any)[propertyName])) {\r\n if (logErrors)\r\n logger.error(`Field '${String(propertyName)}' is not ${propertyType}.`);\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const validateString = (field: IFieldType<T>, allowNull: boolean = false): boolean => {\r\n return validate(field, (val) => typeof val === \"string\", \"string\", allowNull);\r\n };\r\n const validateArray = (field: IFieldType<T>, allowNull: boolean = false): boolean => {\r\n return validate(field, (val) => Array.isArray(val), \"array\", allowNull);\r\n };\r\n const validateBoolean = (field: IFieldType<T>, allowNull: boolean = false): boolean => {\r\n return validate(field, (val) => typeof val === \"boolean\", \"boolean\", allowNull);\r\n };\r\n const validateObject = (field: IFieldType<T>, allowNull: boolean = false): boolean => {\r\n return validate(field, (val) => typeof val === \"object\", \"object\", allowNull);\r\n };\r\n const validateNumber = (field: IFieldType<T>, allowNull: boolean = false): boolean => {\r\n return validate(field, (val) => typeof val === \"number\", \"number\", allowNull);\r\n };\r\n //const validateNonNegativeNumber = (property: string, allowNull: boolean = false) => {\r\n // validate(property, (val) => typeof val === \"number\" && val >= 0, \"positive number or zero\", allowNull);\r\n //};\r\n\r\n const validateField = (field: IFieldType<T>): boolean => {\r\n let successResult = true;\r\n\r\n switch (field.type) {\r\n case FieldType.boolean:\r\n successResult = validateBoolean(field, false);\r\n break;\r\n case FieldType.number:\r\n successResult = validateNumber(field, false);\r\n break;\r\n case FieldType.string:\r\n successResult = validateString(field, false);\r\n break;\r\n case FieldType.array:\r\n successResult = validateArray(field, false);\r\n break;\r\n case FieldType.object:\r\n successResult = validateObject(field, false);\r\n break;\r\n case FieldType.any: // Projde validací vždy\r\n default:\r\n }\r\n\r\n if (!successResult) {\r\n result.errors.push({ field: field, errorType: SchemaValidationErrorType.invalidDataType, value: (object as any)[field.name] });\r\n } else {\r\n // TODO: kontrola zatím nefunguje pro pole\r\n if (field.allowedValues) {\r\n let validValue = true;\r\n\r\n if (field.caseInsensitiveAllowedValues)\r\n validValue = field.allowedValues.some((allowedValue) => allowedValue.toLocaleUpperCase() === (object as any)[field.name].toLocaleUpperCase());\r\n else\r\n validValue = field.allowedValues.includes((object as any)[field.name]);\r\n\r\n if (!validValue) {\r\n if (logErrors)\r\n logger.error(`Fields's '${String(field.name)}' value '${(object as any)[field.name]}' is not among allowed values [${field.allowedValues}].`);\r\n successResult = false;\r\n result.errors.push({ field: field, errorType: SchemaValidationErrorType.notAllowedValue, value: (object as any)[field.name] });\r\n }\r\n }\r\n }\r\n\r\n return successResult;\r\n };\r\n\r\n // Kontrola povinných polí, jejich typů a povolených hodnot\r\n for (const requiredField of schema.requiredFields) {\r\n if (typeof requiredField.name !== \"string\")\r\n continue;\r\n\r\n let success = true;\r\n\r\n if (!Object.keys(object).includes(requiredField.name)) {\r\n success = false;\r\n result.errors.push({ field: requiredField, errorType: SchemaValidationErrorType.missingField });\r\n }\r\n\r\n objectFields.delete(requiredField.name);\r\n\r\n if (success) {\r\n success = validateField(requiredField);\r\n }\r\n\r\n if (!success) {\r\n result.success = false;\r\n }\r\n }\r\n\r\n // Kontrola nepovinných polí, jejich typů a povolených hodnot\r\n for (const objectFieldName of objectFields) {\r\n const optionalField = schema.optionalFields.find((optionalFieldDefinition) => optionalFieldDefinition.name === objectFieldName);\r\n\r\n if (!optionalField) {\r\n result.warnings.push({ fieldName: objectFieldName, warningType: SchemaValidationWarningType.unsupportedField, value: (object as any)[objectFieldName] });\r\n } else {\r\n if (!validateField(optionalField)) {\r\n result.success = false;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n //#region TestMethods\r\n public static fii(): boolean {\r\n const testObject: any/*ITestSchemaInterface*/ = { requiredField: \"a\", requiredField2: { requiredSubField: 1, requiredSubField2: 2 }, sneakyField: \"buhehehe!\" };\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject, ITestSchemaInterface).success) // Projde s warningem\r\n return false;\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject.requiredField2, ITestSchemaSubInterface).success) // Projde\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n public static fuu(): boolean {\r\n //const testObject: any = { requiredField: \"a\" }; // První, ani druhá validace neprojde\r\n //const testObject: any = { requiredField: \"b\" }; // První, ani druhá validace neprojde\r\n const testObject: any = { requiredField: \"nee\" }; // První, ani druhá validace neprojde\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject, ITestSchemaInterface).success)\r\n return false;\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject.requiredField2, ITestSchemaSubInterface).success)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n public static fuu2(): boolean {\r\n const testObject = { requiredField: \"a\", requiredField2: { requiredSubField: 1 } };\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject, ITestSchemaInterface).success) // Projde\r\n return false;\r\n\r\n if (!ObjectSchemaValidator.validateObjectSchema(testObject.requiredField2, ITestSchemaSubInterface).success) // Neprojde\r\n return false;\r\n\r\n return true;\r\n }\r\n //#endregion TestMethods\r\n}\r\n\r\n//#region ExampleInterfaces\r\ninterface ITestSchemaInterface {\r\n requiredField: string;\r\n requiredField2: ITestSchemaSubInterface;\r\n\r\n optionalField?: string;\r\n}\r\n\r\nclass ITestSchemaInterface extends IBaseDynamicSchemaInterfaceClass<ITestSchemaInterface> {\r\n public static readonly requiredFields: (IFieldType<ITestSchemaInterface>)[] = [\r\n { name: \"requiredField\", type: FieldType.string, allowedValues: [\"a\", \"b\"] },\r\n { name: \"requiredField2\", type: FieldType.object },\r\n ];\r\n\r\n public static readonly optionalFields: (IFieldType<ITestSchemaInterface>)[] = [{ name: \"optionalField\", type: FieldType.string }];\r\n}\r\n\r\ninterface ITestSchemaSubInterface {\r\n requiredSubField: number;\r\n requiredSubField2: number;\r\n}\r\n\r\nclass ITestSchemaSubInterface extends IBaseDynamicSchemaInterfaceClass<ITestSchemaSubInterface> {\r\n public static readonly requiredFields: (IFieldType<ITestSchemaSubInterface>)[] = [\r\n { name: \"requiredSubField\", type: FieldType.number },\r\n { name: \"requiredSubField2\", type: FieldType.number },\r\n ];\r\n public static readonly optionalFields: (IFieldType<ITestSchemaSubInterface>)[] = [];\r\n}\r\n//#endregion ExampleInterfaces\r\n","import { IInvalidConditionValue } from \"Global/Base/Exceptions\";\r\n\r\n/** Výstup validátoru podmínek */\r\nexport interface IConditionValidationResult {\r\n /** Validní podmínka bez lokalizovaných atributů */\r\n readonly validCondition?: string;\r\n /** Nevalidní části podmínky */\r\n readonly invalidValues?: ReadonlyArray<IInvalidConditionValue>;\r\n /** Zda je podmínka validní */\r\n readonly isValid?: boolean;\r\n}\r\n\r\n/** Pár název atributu / jeho lokalizovaná verze zobrazená uživateli */\r\nexport interface ILocalizedAttributeData {\r\n [localizedName: string]: string;\r\n}\r\n","import { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { ErrorHandler } from \"UI/Errors\";\r\nimport { CaseInsensitiveMap } from \"../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { InvalidConditionException } from \"../../../../../Global/Base/Exceptions\";\r\nimport { FieldType, IBaseDynamicSchemaInterfaceClass, IFieldType, ISchemaValidationResult, ObjectSchemaValidator } from \"../../../../../Global/Base/Utils/ObjectSchemaValidator\";\r\nimport { ILocalizedAttributeData } from \"../../../../../OW.Remoting/Remoting/DataTypes/IConditionValidation\";\r\nimport { OWManager } from \"../../../../../OW.Remoting/Remoting/OWManager\";\r\nimport { RequestContext } from \"../../../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { LocalizedStringBuilder } from \"../../DataBuilders/LocalizedStringBuilder\";\r\nimport { MessageWindow } from \"../../MessageWindow\";\r\n\r\n/**\r\n * Třída validující uživatelsky vložené podmínky nebo definice filtru\r\n */\r\nexport class FilterValidator {\r\n /**\r\n * Zvaliduje data filtru\r\n * @param filterObject Objekt dat filtru k validaci\r\n */\r\n public static validateFilterData<T extends object>(filterObject: IFilterData): ISchemaValidationResult<T>[] {\r\n const results: ISchemaValidationResult<T>[] = [];\r\n\r\n results.push(FilterValidator._validateObjectSchema(filterObject, IFilterData as object));\r\n\r\n for (const attrData of filterObject.attrs) {\r\n results.push(FilterValidator._validateObjectSchema(attrData, IFilterAttrData as object));\r\n\r\n for (const attrCondition of attrData.conditions) {\r\n results.push(FilterValidator._validateObjectSchema(attrCondition, IFilterAttrCondition as object));\r\n\r\n if (attrCondition.values.length > 0) {\r\n if (!Array.isArray(attrCondition.values[0]) && typeof (attrCondition.values[0]) === \"object\") {\r\n for (const conditionValue of attrCondition.values) {\r\n if (!conditionValue)\r\n continue;\r\n results.push(FilterValidator._validateObjectSchema(conditionValue as object, IFilterAttrConditionObjectValue as object));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n\r\n private static _validateObjectSchema<T extends object>(object: object, schema: IBaseDynamicSchemaInterfaceClass<T>): ISchemaValidationResult<T> {\r\n return ObjectSchemaValidator.validateObjectSchema(object, schema, true);\r\n }\r\n\r\n public static validateColumnDataTypes(filterObject: IFilterData, columnDataTypes: CaseInsensitiveMap<{ dataType: string; locKey: string }>): boolean {\r\n let success: boolean = true;\r\n const missingColumns: string[] = [];\r\n for (const attr of filterObject.attrs) {\r\n if (!columnDataTypes.get(attr.attrName)) {\r\n success = false;\r\n missingColumns.push(attr.attrName);\r\n }\r\n }\r\n if (!success) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-674762\", [missingColumns.join(\", \")]), \"GUI-674376\"); //Nelze aplikovat filtr. Sloupec nebo sloupce: '@0' neexistují na aktuálním formuláři. | Vložit filtr\r\n }\r\n return success;\r\n }\r\n\r\n /**\r\n * Provede validaci podmínky z pokročilého filtru\r\n * @param condition Podmínka k vyhodnocení\r\n * @param className Název třídy, nad kterou je podmínka vyhodnocována\r\n * @param attrNameToDataType Lokalizované názvy atributů tak, jak je vidí uživatel\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public static async validateAdvancedFilterCondition(condition: string, className: string, attrNameToDataType: CaseInsensitiveMap<{ dataType: string; locKey: string }>,\r\n requestContext?: RequestContext): Promise<string> {\r\n const attrNameToCaption: ILocalizedAttributeData = {};\r\n\r\n await Promise.all(Array.from(attrNameToDataType, async ([key, data]) => {\r\n attrNameToCaption[await Localization.getTextPromise(data.locKey)] = key;\r\n }));\r\n\r\n const result = await OWManager.validateCondition(condition ? condition.replace(/\\u00A0/g, \" \") : condition, className, attrNameToCaption, requestContext);\r\n\r\n if (!result.isValid) {\r\n ErrorHandler.instance.handleError(new InvalidConditionException(result.invalidValues));\r\n }\r\n\r\n return result.validCondition;\r\n }\r\n}\r\n\r\nexport interface IFilterData {\r\n attrs: IFilterAttrData[];\r\n\r\n enabled?: boolean;\r\n componentId?: string;\r\n advancedCondition?: string;\r\n}\r\n\r\nexport class IFilterData extends IBaseDynamicSchemaInterfaceClass<IFilterData> {\r\n public static readonly requiredFields: (IFieldType<IFilterData>)[] = [\r\n { name: \"attrs\", type: FieldType.object },\r\n ];\r\n\r\n public static readonly optionalFields: (IFieldType<IFilterData>)[] = [\r\n { name: \"enabled\", type: FieldType.boolean },\r\n { name: \"componentId\", type: FieldType.string },\r\n { name: \"advancedCondition\", type: FieldType.string },\r\n ];\r\n}\r\n\r\nexport interface IFilterAttrData {\r\n attrName: string;\r\n conditions: IFilterAttrCondition[];\r\n\r\n operator?: string;\r\n enabled?: boolean;\r\n displayFormat?: string;\r\n}\r\n\r\nexport class IFilterAttrData extends IBaseDynamicSchemaInterfaceClass<IFilterAttrData> {\r\n public static readonly requiredFields: (IFieldType<IFilterAttrData>)[] = [\r\n { name: \"attrName\", type: FieldType.string },\r\n { name: \"conditions\", type: FieldType.array },\r\n ];\r\n\r\n public static readonly optionalFields: (IFieldType<IFilterAttrData>)[] = [\r\n { name: \"enabled\", type: FieldType.boolean },\r\n { name: \"operator\", type: FieldType.string, allowedValues: [\"and\", \"or\"] },\r\n { name: \"displayFormat\", type: FieldType.string },\r\n ];\r\n}\r\n\r\nexport interface IFilterAttrCondition {\r\n operation: string;\r\n values: (string | object | [])[]; // TODO: půjde víc specifikovat typ?\r\n\r\n operator?: string;\r\n subOperation?: string;\r\n enabled?: boolean;\r\n isMultiItem?: boolean;\r\n isValid?: boolean;\r\n}\r\n\r\nexport class IFilterAttrCondition extends IBaseDynamicSchemaInterfaceClass<IFilterAttrCondition> {\r\n public static readonly requiredFields: (IFieldType<IFilterAttrCondition>)[] = [\r\n { name: \"operation\", type: FieldType.string },\r\n { name: \"values\", type: FieldType.array },\r\n ];\r\n\r\n public static readonly optionalFields: (IFieldType<IFilterAttrCondition>)[] = [\r\n { name: \"subOperation\", type: FieldType.string },\r\n { name: \"enabled\", type: FieldType.boolean },\r\n { name: \"isMultiItem\", type: FieldType.boolean },\r\n { name: \"isValid\", type: FieldType.boolean },\r\n { name: \"operator\", type: FieldType.string, allowedValues: [\"and\", \"or\"] },\r\n ];\r\n}\r\n\r\nexport interface IFilterAttrConditionObjectValue {\r\n value: any;\r\n\r\n userValue?: any;\r\n additional?: any;\r\n fieldId?: string;\r\n fieldType?: string;\r\n subOperationId?: string;\r\n}\r\n\r\nexport class IFilterAttrConditionObjectValue extends IBaseDynamicSchemaInterfaceClass<IFilterAttrConditionObjectValue> {\r\n public static readonly requiredFields: (IFieldType<IFilterAttrConditionObjectValue>)[] = [\r\n { name: \"value\", type: FieldType.any },\r\n ];\r\n\r\n public static readonly optionalFields: (IFieldType<IFilterAttrConditionObjectValue>)[] = [\r\n { name: \"userValue\", type: FieldType.any },\r\n { name: \"additional\", type: FieldType.any },\r\n { name: \"fieldId\", type: FieldType.string },\r\n { name: \"fieldType\", type: FieldType.string },\r\n { name: \"subOperationId\", type: FieldType.string },\r\n ];\r\n}\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { CaseInsensitiveMap } from \"../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { Event } from \"../../../../../Global/Base/Events\";\r\nimport { CancellationToken } from \"../../../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { ConditionOperator, StringUtils } from \"../../../../../Global/Base/Utils/StringUtils\";\r\nimport { TimerUtils } from \"../../../../../Global/Base/Utils/TimerUtils\";\r\nimport { OWObject } from \"../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../../../../OW.Remoting/Remoting/OWManager\";\r\nimport { RequestContext } from \"../../../../../OW.Remoting/Remoting/RequestContext\";\r\nimport { Control } from \"../../../../UI.BaseControls/Control\";\r\nimport { GenericControl } from \"../../../../UI.BaseControls/GenericControl\";\r\nimport { IBooleanDetailValueEventData } from \"../../../../UI.BaseControls/IEvent\";\r\nimport { registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { convertContextFromFrameToRequest } from \"../../../Utilities/SharedUIMethods\";\r\nimport { LocalizedStringBuilder } from \"../../DataBuilders/LocalizedStringBuilder\";\r\nimport { MessageWindow } from \"../../MessageWindow\";\r\nimport { UIManager } from \"../../UIManager\";\r\nimport { FrameContext } from \"../../UIManagerInterfaces\";\r\nimport { AdvancedFilterEdit } from \"./AdvancedFilters/AdvancedFilterEdit\";\r\nimport { FilterGroup } from \"./FilterGroup\";\r\nimport { FilterBlockAttrNameToData, FilterBlockAttrNameToDataMap, FilterTargetType, IFilterBlock, IFilterBlockExecutedEventArgs, IFilterJsonData, IFilterJsonDataAttr, IFilterJsonResultValue } from \"./FilterInterfaces\";\r\nimport { FilterRegistrations } from \"./FilterRegistrations\";\r\nimport { FilterValidator } from \"./FilterValidator\";\r\nimport { IFilterManager } from \"./IFilterManager\";\r\n\r\nexport class FilterBlock extends Control implements IFilterBlock {\r\n // #region Events\r\n /** Událost volaná při změně podmínky na frame */\r\n public frameConditionChanged: Event<IFilterManager, string> = new Event<IFilterManager, string>();\r\n /** Událost volaná při změně stavu filtru */\r\n public filterSaveStateChanged: Event<FilterBlock, boolean> = new Event<FilterBlock, boolean>();\r\n public filterExecuted: Event<FilterBlock, IFilterBlockExecutedEventArgs> = new Event<FilterBlock, IFilterBlockExecutedEventArgs>();\r\n /** Událost volaná při odstranění FilterGroup z FilterBlocku. Jako parametr se předává, zda jde o dočasné, nebo trvalé odstranění (při odstraňování FilterGroup je po určitý časový interval možné vrátit filtr zpět) */\r\n public filterGroupRemoved: Event<FilterGroup, {temporarily: boolean}> = new Event<FilterGroup, {temporarily: boolean}>();\r\n /** Událost volaná při obnově odstraněné FilterGroup, viz událost filterGroupRemoved s parametrem temporarily=true */\r\n public filterGroupRestored: Event<FilterGroup, void> = new Event<FilterGroup, void>();\r\n // #endregion Events\r\n\r\n private _advancedFilter: AdvancedFilterEdit;\r\n private _frameName: string = \"\";\r\n private _filterName: string;\r\n private _filterId: string;\r\n private _parentBind: FilterBlock;\r\n private _binding: FilterBlock;\r\n private _attrNameToDataType: FilterBlockAttrNameToDataMap;\r\n private _noUnsaveEventBinding: boolean;\r\n private _executeRequest: boolean = false;\r\n private _isUsed: boolean = false;\r\n private _isSaved: boolean = false;\r\n private _executeCount: number = 0;\r\n\r\n //#region Listeners\r\n private _saveStateListener: (filterBlock: FilterBlock, saved: boolean) => void;\r\n //#endregion Listeners\r\n\r\n /**\r\n * Nazev formulare\r\n */\r\n public formName: string = \"\";\r\n /** Kontext framu. (Setuje se ve `FilterManager`.) */\r\n public frameContext: FrameContext | undefined = undefined;\r\n public objectName: string = \"\";\r\n public frameCondition: string; //Podmínka framu z definice. Slouží k tomu, aby při načítání a vyhledvání hodnot se nevraceli data, které nesplňují podmínku framu.\r\n public frameConditionParams: ConditionParams;\r\n public disableValueShortening: boolean;\r\n public type: FilterTargetType;\r\n public currentUserId: number | null = null;\r\n\r\n private _isImplementationFilter: boolean = false;\r\n\r\n public get isImplementationFilter(): boolean {\r\n return this._isImplementationFilter;\r\n }\r\n public set isImplementationFilter(value: boolean) {\r\n this._isImplementationFilter = value;\r\n }\r\n\r\n public get executeCount(): number {\r\n if (this._parentBind) return this._parentBind._executeCount;\r\n return this._executeCount;\r\n }\r\n /**\r\n * Dočasný název před uložením\r\n */\r\n public tempName: string = \"\";\r\n\r\n public get executeRequest(): boolean {\r\n return this._executeRequest;\r\n }\r\n\r\n public set executeRequest(v: boolean) {\r\n this._executeRequest = v;\r\n if (v) {\r\n TimerUtils.waitOrCancel(`_exec_req_combo_${this._innerId}`, () => { // `\r\n if (this._executeRequest) {\r\n this._executeRequest = false;\r\n\r\n this.execute();\r\n }\r\n }, 500);\r\n }\r\n }\r\n\r\n /** Seznam atributů propoujících datový typ a lokalizaci */\r\n public get attrNameToDataType(): FilterBlockAttrNameToDataMap {\r\n return this._attrNameToDataType;\r\n }\r\n\r\n public set attrNameToDataType(v: FilterBlockAttrNameToDataMap) {\r\n this._attrNameToDataType = v;\r\n\r\n if (this._binding && this._attrNameToDataType !== this._binding._attrNameToDataType) {\r\n this._binding._attrNameToDataType = this._attrNameToDataType;\r\n }\r\n }\r\n\r\n public get bindingFilterBlock(): FilterBlock {\r\n return this._binding;\r\n }\r\n\r\n /**\r\n * Nazev Framu z formulare\r\n */\r\n public set frameName(v: string) {\r\n this._frameName = v;\r\n this.setAttribute(\"frame-name\", v);\r\n }\r\n\r\n public get frameName(): string {\r\n return this._frameName;\r\n }\r\n\r\n /**\r\n * ID filtru jako ID objektu z UserProfile\r\n */\r\n public set filterId(v: string) {\r\n this._filterId = v;\r\n }\r\n\r\n public get filterId(): string {\r\n return this._filterId;\r\n }\r\n\r\n /**\r\n * Indikator, zda je block vybran jako aktivni\r\n */\r\n public set isUsed(v: boolean) {\r\n this._isUsed = v;\r\n this.callEvent(\"filterSelected\", { value: v } as IBooleanDetailValueEventData);\r\n }\r\n\r\n public get isUsed(): boolean {\r\n return this._isUsed;\r\n }\r\n\r\n /**\r\n * Indikator ulozeni\r\n */\r\n public get isSaved(): boolean {\r\n return this._isSaved;\r\n }\r\n\r\n /**\r\n * Nazev filtru\r\n */\r\n public set filterName(v: string) {\r\n this._filterName = v;\r\n\r\n this.callEvent(\"filterNameChanged\", { name: v });\r\n }\r\n\r\n public get filterName(): string {\r\n return this._filterName;\r\n }\r\n\r\n /**\r\n * Seznam filtracnich skupin v bloku\r\n */\r\n public get groups(): FilterGroup[] {\r\n return Array.from(this.querySelectorAll(\"tsc-FilterGroup\")) as FilterGroup[];\r\n }\r\n\r\n public get parentFilterBlock(): FilterBlock {\r\n return this._parentBind;\r\n }\r\n\r\n /** Zda je nastaven pokročilý filtr */\r\n public get hasActiveAdvancedFilter(): boolean {\r\n return !StringUtils.isNullOrEmpty(this._advancedFilter.condition);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.type = FilterTargetType.inPanel;\r\n this.classList.add(\"FilterBlock\");\r\n this._noUnsaveEventBinding = false;\r\n this._attrNameToDataType = new CaseInsensitiveMap<FilterBlockAttrNameToData>();\r\n\r\n this._advancedFilter = new AdvancedFilterEdit();\r\n this.appendChild(this._advancedFilter);\r\n\r\n this.afterAttach(() => {\r\n GenericControl.registerEventListener(this._advancedFilter, \"executeFilter\", () => {\r\n this.unsave();\r\n this.execute();\r\n });\r\n\r\n GenericControl.registerEventListener(this._advancedFilter, \"filterChanged\", () => this.unsave());\r\n });\r\n\r\n /**\r\n * FilterBlock je sdílené pro více sloupců. Zobrazují se ale v PopupMenu, které sdílené není a při zavření se odstraňuje z DOM.\r\n * FilterBlock je v tu chvíli potomkem, takže by se disposovala také, pokud by zůstal disposeOnDetach nastavený na true.\r\n */\r\n this.disposeOnDetach = false;\r\n }\r\n\r\n /**\r\n * Provede pribindovani k jinemu filterblocku, tzn. k vyovlani filtrovani se pouzije hlavni blok, ale filtry lze nastavovat i tady\r\n * @param block\r\n */\r\n public binding(block: FilterBlock): void {\r\n block._parentBind = this;\r\n this._binding = block;\r\n block.attrNameToDataType = this.attrNameToDataType;\r\n block.type = FilterTargetType.column;\r\n block._loadFromJson(this.getFilterData(this.type));\r\n\r\n this._saveStateListener = (_filterBlock, saved) => {\r\n if (this._noUnsaveEventBinding) {\r\n this._noUnsaveEventBinding = false;\r\n return;\r\n }\r\n\r\n if (!saved) {\r\n block._loadFromJson(this.getFilterData(this.type));\r\n }\r\n };\r\n\r\n this.filterSaveStateChanged.add(this._saveStateListener);\r\n\r\n block.filterSaveStateChanged.add((_filterBlock, saved) => {\r\n if (!saved) {\r\n this._loadFromJson(block.getFilterData(this.type));\r\n this._noUnsaveEventBinding = true;\r\n this.unsave();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Přidá skupinu filtrů do bloku\r\n * @param group Přidávaná skupina\r\n */\r\n public addGroup(item: FilterGroup): void {\r\n item.parent = this;\r\n this.appendChild(item);\r\n\r\n // pridava se nova skupina nacte se vychozi typ operace, ktery se prida jako prvni polozka pro trideni, aby nezustala skupina prazdna\r\n item.createFilterItem(item.filterStructure.multiOperation ?\r\n { operation: item.filterStructure.multiOperation, isUsed: true } :\r\n { operation: FilterRegistrations.getDefaultOperation(item.filterStructure.dataType), isUsed: true });\r\n }\r\n\r\n public async execute(): Promise<void> {\r\n if (this._parentBind) { // Zajišťuje, že je filtrování spuštěno z bloku na panelu, na který reagují frame komponenty\r\n this._parentBind._execute(this.getFilterData(this._parentBind.type)); // Na _parentBind ještě nejsou data, takže je musíme předat\r\n } else {\r\n this._execute();\r\n }\r\n }\r\n\r\n public async getCurrentFilterData(): Promise<IFilterBlockExecutedEventArgs> {\r\n return this._execute(null, false);\r\n }\r\n\r\n /**\r\n * Vyvolá událost filterExecuted pro spuštění filtrování\r\n * @param filterData Data filtru\r\n */\r\n private async _execute(filterData: IFilterJsonData = this.getFilterData(this.type), withEvent = true): Promise<IFilterBlockExecutedEventArgs> {\r\n const advancedFilterCondition = await FilterValidator.validateAdvancedFilterCondition(this._advancedFilter.condition, this.objectName, this.attrNameToDataType, this._getRequestContext());\r\n this._executeCount++;\r\n\r\n if (filterData.attrs.length === 0) {\r\n this.filterExecuted.trigger(this, {\r\n condition: advancedFilterCondition,\r\n filteredAttrNames: null,\r\n filterData: filterData,\r\n });\r\n // this.callEvent(\"filterExecuted\", {\r\n // condition: advancedFilterCondition,\r\n // columns: {},\r\n // result: filterData\r\n // });\r\n\r\n return null;\r\n }\r\n\r\n const cond = FilterRegistrations.getServerCondition((s: string) => {\r\n return this.attrNameToDataType.get(s).dataType;\r\n }, filterData.attrs);\r\n\r\n let showErrorMessage: boolean = false;\r\n\r\n // nacteni seznamu sloupcu, pro informaci o tom, dle kterych sloupcu se filtruje\r\n const attrNamesToFilterBy: Map<string, boolean> = new Map<string, boolean>();\r\n for (const attr of filterData.attrs) {\r\n if (!attr.enabled)\r\n continue;\r\n let isUsed = false;\r\n // provadi se kontrola pokud jsou ve skupine zakazany vsechny polozky, nebo jsou nevyplneny ignoruji se\r\n for (const item of attr.conditions) {\r\n if (item.enabled) {\r\n if (item.isValid) {\r\n if (item.values && item.values.length > 0) {\r\n for (const val of item.values) {\r\n if (val.value) {\r\n isUsed = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n isUsed = true;\r\n }\r\n //break;\r\n } else {\r\n showErrorMessage = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (!isUsed)\r\n continue;\r\n\r\n attrNamesToFilterBy.set(attr.attrName, attr.enabled);\r\n //#region Pridani attributu bez vazby\r\n const point = attr.attrName.indexOf(\".\");\r\n if (point > 0) {\r\n const attrName = attr.attrName.substring(0, point);\r\n attrNamesToFilterBy.set(attrName, true);\r\n }\r\n //#endregion\r\n }\r\n\r\n if (showErrorMessage) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-762112\")); // Zadejte platnou hodnotu filtru.\r\n }\r\n\r\n if (withEvent) {\r\n this.filterExecuted.trigger(this, {\r\n condition: StringUtils.combineConditions(ConditionOperator.and, cond, advancedFilterCondition),\r\n filteredAttrNames: attrNamesToFilterBy,\r\n filterData: filterData,\r\n });\r\n }\r\n\r\n return {\r\n condition: StringUtils.combineConditions(ConditionOperator.and, cond, advancedFilterCondition),\r\n filteredAttrNames: attrNamesToFilterBy,\r\n filterData: filterData,\r\n };\r\n }\r\n\r\n /**\r\n * Zpracuje data z filtru\r\n * @param isForExport Vrácený objekt, nebude mít definované property, které jsou defaultně true. (např. enabled)\r\n */\r\n public getFilterData(filterTargetType: FilterTargetType, isForExport: boolean = false, withAdvancedFilter: boolean = true): IFilterJsonData {\r\n const attrGroups: IFilterJsonDataAttr[] = [];\r\n\r\n for (const grp of this.groups) {\r\n if (grp.isRemoving)\r\n continue; // pokud je ve fazi odebirani nebude do dat pridan\r\n attrGroups.push(grp.getResult(isForExport, filterTargetType));\r\n }\r\n\r\n const filterData: IFilterJsonData = {\r\n saveInfo: !isForExport && (this._filterId || this.filterName) ? {\r\n id: this._filterId,\r\n name: this.filterName,\r\n } : undefined,\r\n attrs: attrGroups,\r\n };\r\n\r\n if (withAdvancedFilter) {\r\n filterData.advancedCondition = this._advancedFilter.condition;\r\n }\r\n\r\n return filterData;\r\n }\r\n\r\n /**\r\n * Uložení filtru na server\r\n * @param newName Název pro uložení\r\n * @param saveAs Uložit jako nový filtr\r\n *\r\n * @return ID objektu\r\n */\r\n public async save(newName: string, filterManager: IFilterManager, saveAs: boolean = false): Promise<FilterBlock> {\r\n if (!this._filterId) saveAs = false; // pokud filter neni jeste ulozen prepneme na standartni ukladani\r\n if (!saveAs && !filterManager.canEditImplementationFilters && this.isImplementationFilter)\r\n return this;\r\n\r\n let obj: OWObject = null;\r\n const sValueArr: Array<Promise<OWObject>> = [];\r\n const oldName = this.filterName;\r\n this.filterName = newName;\r\n\r\n UIManager.instance.showLoader();\r\n try {\r\n const editContextIdRequest = convertContextFromFrameToRequest(this.frameContext);\r\n const userID: number | null = filterManager.canEditImplementationFilters && this.isImplementationFilter ? 0 : this.currentUserId;\r\n\r\n // Vytvoří nebo načte záznam z tabulky UserProfile\r\n if (this._filterId && !saveAs) {\r\n obj = await OWManager.getObject(this._filterId, \"UserProfile\", undefined);\r\n } else {\r\n obj = await OWManager.newObject(\"UserProfile\", undefined);\r\n\r\n sValueArr.push(obj.setValue(\"DataType\", \"FilterInfo\"));\r\n sValueArr.push(obj.setValue(\"FormName\", this.formName));\r\n sValueArr.push(obj.setValue(\"Name\", this.frameName));\r\n }\r\n\r\n sValueArr.push(obj.setValue(\"User\", userID));\r\n\r\n const advancedCondition = await FilterValidator.validateAdvancedFilterCondition(this._advancedFilter.condition, this.objectName, this.attrNameToDataType, editContextIdRequest);\r\n const withAdvancedFilter = this.hasActiveAdvancedFilter && !StringUtils.isNullOrEmpty(advancedCondition);\r\n const filterData = this.getFilterData(this.type, undefined, withAdvancedFilter);\r\n const filterJSONData = JSON.stringify(filterData);\r\n\r\n sValueArr.push(obj.setValue(\"Data\", filterJSONData));\r\n sValueArr.push(obj.setValue(\"IsDefault\", this._isUsed));\r\n\r\n await Promise.all(sValueArr);\r\n await obj.applyUpdates();\r\n\r\n const retId = obj.id;\r\n\r\n if (saveAs) {\r\n this._isSaved = true;\r\n await filterManager.getSavedFilterById(this.filterId);\r\n const filterBlock = filterManager.createNew(true) as FilterBlock;\r\n filterBlock._loadFromJson(filterData);\r\n filterBlock.isImplementationFilter = this.isImplementationFilter && filterManager.canEditImplementationFilters;\r\n filterBlock.filterName = newName;\r\n filterBlock._isSaved = true;\r\n filterBlock._filterId = retId;\r\n this.filterName = oldName;\r\n return filterBlock;\r\n } else {\r\n this._filterId = retId;\r\n this._isSaved = true;\r\n this.filterSaveStateChanged.trigger(this, this._isSaved);\r\n return this;\r\n }\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n obj.dispose();\r\n }\r\n }\r\n\r\n /** Označí filtr jako modifikovaný a vyvolá událost o změně */\r\n public unsave(): void {\r\n this._isSaved = false;\r\n this.filterSaveStateChanged.trigger(this, this._isSaved);\r\n }\r\n\r\n /**\r\n * Nahraje filter s JSONu do tohoto i provázaného bloku\r\n */\r\n public loadData(json: string | IFilterJsonData): void {\r\n this._loadFromJson(json);\r\n this._binding._loadFromJson(json);\r\n }\r\n\r\n /**\r\n * Nahraje filter s JSONu do tohoto filter bloku\r\n */\r\n protected _loadFromJson(json: string | IFilterJsonData): void {\r\n let obj: IFilterJsonData;\r\n if (typeof json === \"string\")\r\n obj = JSON.parse(json as string);\r\n else\r\n obj = json as IFilterJsonData;\r\n\r\n for (let i = this.childNodes.length - 1; i >= 0; i--) {\r\n const node = this.childNodes[i];\r\n\r\n if (node instanceof FilterGroup) {\r\n this.removeChild(node);\r\n }\r\n }\r\n\r\n if (obj.enabled == undefined)\r\n obj.enabled = true;\r\n if (obj.saveInfo && obj.saveInfo.name) {\r\n this.filterName = obj.saveInfo.name;\r\n if (!this._isSaved) {\r\n this._isSaved = true;\r\n this.filterSaveStateChanged.trigger(this, this._isSaved);\r\n }\r\n }\r\n\r\n if (obj.advancedCondition && this.type === FilterTargetType.inPanel) {\r\n this._advancedFilter.showFilter(obj.advancedCondition);\r\n }\r\n\r\n for (const item of obj.attrs) {\r\n const dataTypeInfo = this.attrNameToDataType.get(item.attrName);\r\n const struct = FilterRegistrations.getDataTypeFilter(dataTypeInfo); // nacte struktury na zaklade datoveho typu\r\n if (struct == undefined)\r\n continue;\r\n const fgroup = new FilterGroup();\r\n fgroup.frameContext = this.frameContext;\r\n fgroup.attrName = item.attrName;\r\n fgroup.operator = item.operator;\r\n fgroup.parent = this;\r\n fgroup.setLocKey(dataTypeInfo.locKey, dataTypeInfo.locParams);\r\n fgroup.filterStructure = struct;\r\n fgroup.enabled = item.enabled == undefined ? true : item.enabled;\r\n fgroup.displayFormat = item.displayFormat;\r\n if (item.conditions) {\r\n for (const iitem of item.conditions) {\r\n if (!struct.multiOperation) {\r\n const struct_oper = FilterRegistrations.getOperationByOperationId(struct.dataType, iitem.operation);\r\n if (struct_oper == undefined)\r\n continue;\r\n\r\n struct_oper.subId = iitem.subOperation;\r\n\r\n const valuesLoad: { [id: string]: IFilterJsonResultValue } = {};\r\n\r\n for (const val of iitem.values) {\r\n valuesLoad[val.fieldId] = val;\r\n }\r\n\r\n fgroup.createFilterItem({\r\n operation: struct_oper,\r\n values: valuesLoad,\r\n operator: iitem.operator,\r\n isUsed: iitem.enabled == undefined ? true : iitem.enabled,\r\n subOperationID: iitem.subOperation,\r\n });\r\n } else {\r\n const valuesLoad: { [id: string]: IFilterJsonResultValue } = {};\r\n\r\n for (const val of iitem.values) {\r\n valuesLoad[val.fieldId] = val;\r\n }\r\n\r\n fgroup.createFilterItem({\r\n operation: struct.multiOperation,\r\n values: valuesLoad,\r\n operator: iitem.operator,\r\n isUsed: iitem.enabled == undefined ? true : iitem.enabled,\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.appendChild(fgroup);\r\n }\r\n }\r\n\r\n /** Zobrazí ve filtrovacím panelu vstup pro pokročilý filtr */\r\n public showAdvancedFilter(): void {\r\n this._advancedFilter.showFilter();\r\n }\r\n\r\n protected _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContext {\r\n return convertContextFromFrameToRequest(this.frameContext, cancellationToken);\r\n }\r\n\r\n public override dispose(): void {\r\n GenericControl.unregisterEventListener(this._advancedFilter, \"filter\");\r\n GenericControl.unregisterEventListener(this._advancedFilter, \"filterChanged\");\r\n this.filterSaveStateChanged.removeAll();\r\n this.frameConditionChanged.removeAll();\r\n this._advancedFilter?.dispose();\r\n this._attrNameToDataType?.clear();\r\n this.frameConditionParams = [];\r\n\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-FilterBlock\", FilterBlock);\r\n","import { IHasFrameContext } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { IKeyValueItem } from \"../../../../../../Global/Base/DataSources/Interfaces\";\r\nimport { IAttrStringValue } from \"../../../../../../Global/Base/DataTypes/IAttrValue\";\r\nimport { Event } from \"../../../../../../Global/Base/Events\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { IValidatable, IValidationResult } from \"../../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { GenericControl } from \"../../../../../UI.BaseControls/GenericControl\";\r\nimport { DropDownButtonItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownButtonItem\";\r\nimport { DropDownMenu } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { FrameContext } from \"../../../UIManagerInterfaces\";\r\nimport { DropDownMenuCheckedDGItem } from \"../DropDownMenuItems/DropDownMenuCheckedDGItem\";\r\nimport { FilterBlock } from \"../FilterBlock\";\r\nimport { FilterGroup } from \"../FilterGroup\";\r\nimport { IKeyValueItemExtended } from \"./ValueList\";\r\n\r\nexport class ValueListButton extends Control implements IValidatable, IHasFrameContext {\r\n public validityChanged: Event<IValidatable, IValidationResult> = new Event<IValidatable, IValidationResult>();\r\n public currentValidity: IValidationResult;\r\n public isInRequiredInvalidState: boolean;\r\n\r\n private _isValid = false;\r\n\r\n public get isValid(): boolean {\r\n return this._isValid;\r\n }\r\n protected _valueList: DropDownMenuCheckedDGItem;\r\n protected _menu: DropDownMenu;\r\n protected _appendValueSection: HTMLElement;\r\n protected _selectedItems: Array<IKeyValueItem>;\r\n protected _init: boolean;\r\n public frameContext: FrameContext | undefined = undefined;\r\n\r\n public get value(): any {\r\n return this._selectedItems;\r\n }\r\n\r\n public set value(v: any) {\r\n if (v instanceof IKeyValueItem)\r\n this._selectedItems = [v];\r\n else if (v instanceof Array) {\r\n this._selectedItems = [];\r\n for (const v1 of v) {\r\n this._selectedItems.push(v1 instanceof IKeyValueItem ? v1 : v1 instanceof IAttrStringValue ?\r\n { key: v1.valueOf(), value: v1.valueOf(), shortenedValue: v1.shortened } as IKeyValueItemExtended : { value: v1, key: v1 });\r\n }\r\n } else\r\n this._selectedItems = v;\r\n\r\n this._appendSelectedValue();\r\n }\r\n\r\n public validate(): boolean {\r\n if (this._selectedItems.length == 0) this.setInvalid(\"GUI-55627\");\r\n else this.setValid();\r\n\r\n return this._isValid;\r\n }\r\n public setValid(): void {\r\n if (this._isValid)\r\n return;\r\n\r\n this._isValid = true;\r\n\r\n this.validityChanged.trigger(this, { valid: true });\r\n }\r\n public setInvalid(_locKey: string, _message?: string): void {\r\n if (!this._isValid)\r\n return;\r\n\r\n this._isValid = false;\r\n\r\n this.validityChanged.trigger(this, { valid: false });\r\n }\r\n\r\n public async loadItems(): Promise<void> {\r\n if (this._init)\r\n return;\r\n this._init = true;\r\n const fgroup = GenericControl.findParent(this as HTMLElement, (item) => item instanceof FilterGroup);\r\n this._valueList = new DropDownMenuCheckedDGItem();\r\n\r\n if (fgroup instanceof FilterGroup) {\r\n this.initializeValueList(fgroup);\r\n (fgroup.parent as FilterBlock).frameConditionChanged.add((_sender, value) => {\r\n this._reloadItems(value);\r\n });\r\n }\r\n\r\n this._menu.addItem(this._valueList);\r\n this._valueList.valueList.selectedValues = this._selectedItems;\r\n\r\n const m = new DropDownButtonItem();\r\n m.addItem(\"GUI-311684\", () => { // Vybrat\r\n /*V případě že se jedná o zkrácenou hodnotu, je potřeba ji brát z klíče, tam je totiž hodnota bez přidaných tří teček. Nemám teď jinou možnost jak z ValueListu\r\n * získat původní hodnotu. */\r\n this._selectedItems = this._valueList.valueList.selectedValues.map((v) => {\r\n if (v instanceof IKeyValueItemExtended && v.shortenedValue)\r\n v.value = v.key;\r\n\r\n return v;\r\n });\r\n\r\n this._appendSelectedValue();\r\n\r\n m.parent.close();\r\n\r\n this.callEvent(\"change\");\r\n });\r\n\r\n this._menu.addItem(m);\r\n }\r\n\r\n protected initializeValueList(fgroup: FilterGroup): void {\r\n this._valueList.init(fgroup.parent.objectName, [fgroup.attrName], this.frameContext, fgroup.parent.frameCondition, fgroup.parent.frameConditionParams, fgroup.parent.disableValueShortening);\r\n }\r\n\r\n private async _reloadItems(frameCondition: string): Promise<void> {\r\n this._selectedItems = [];\r\n this._valueList.valueList.changeFrameConditionAndLoad(frameCondition);\r\n }\r\n\r\n //public unselectedAll() {\r\n // this._selectedItems = [];\r\n\r\n // for (let item of this._selectedItems) {\r\n // if (item instanceof DropDownMenuCheckboxItem) {\r\n // item.IsChecked = false;\r\n // }\r\n // }\r\n\r\n // this.appendValueSection.innerHTML = \"\";\r\n //}\r\n\r\n protected _appendSelectedValue(): void {\r\n this._appendValueSection.innerHTML = \"\";\r\n\r\n // kompatibilita z duvodu starych profilu - drive to byl string, ted je to pole stringu, tohle zparsuje stary string na nove pole\r\n if (typeof this._selectedItems === \"string\") {\r\n this._selectedItems = (this._selectedItems as string).split(\",\").map((item) => {\r\n let s = item.trim();\r\n if (s.startsWith(\"'\")) {\r\n s = s.substr(1);\r\n } if (s.endsWith(\"'\")) {\r\n s = s.substr(s.length - 1);\r\n }\r\n return s as any as IKeyValueItem;\r\n });\r\n }\r\n\r\n for (const si of this._selectedItems) {\r\n const exist = this._appendValueSection.querySelector(`[data-id='${si}']`); // `\r\n if (exist != null)\r\n continue;\r\n\r\n const item = createElement({\r\n classes: \"FilterValue\",\r\n attrs: { \"data-id\": si.key },\r\n });\r\n\r\n const rem = createElement({ classes: \"Icon Remove\" });\r\n const span = createElement({ type: \"span\" });\r\n\r\n this.renderElement(span, si);\r\n\r\n rem.addEventListener(\"click\",\r\n () => {\r\n let i = 0;\r\n for (const it of this._selectedItems) {\r\n if (it == si) {\r\n break;\r\n }\r\n i++;\r\n }\r\n this._valueList.valueList.removeSelectedValue(this._selectedItems[i].key);\r\n item.remove();\r\n });\r\n item.appendChild(span);\r\n item.appendChild(rem);\r\n\r\n this._appendValueSection.appendChild(item);\r\n }\r\n }\r\n\r\n protected renderElement(span: HTMLElement, selectedItem: IKeyValueItem): void {\r\n span.textContent = selectedItem.value;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._selectedItems = [];\r\n const btnSection = createElement({ classes: \"BtnSection\" });\r\n const icon = createElement({ classes: \"Icon FilterMultiItem\" });\r\n const arrow = createElement({ classes: \"icon ui-chevron-bottom arrow-down-btn\" });\r\n const text = createElement({ type: \"span\", classes: \"Text\", value: \"Zobrazit seznam hodnot\", attrs: { \"data-lkd\": \"GUI-620639\" } });\r\n this._appendValueSection = createElement({ classes: \"AppendValueSection\" });\r\n\r\n Localization.addLocData(text, \"GUI-620639\");\r\n\r\n btnSection.appendChild(icon);\r\n btnSection.appendChild(arrow);\r\n arrow.appendChild(text);\r\n\r\n this.appendChild(btnSection);\r\n this.appendChild(this._appendValueSection);\r\n\r\n this._menu = new DropDownMenu();\r\n\r\n // ReSharper disable once Html.EventNotResolved\r\n this._menu.addEventListener(\"open\", () => {\r\n // Prázdná arrow funkce\r\n });\r\n\r\n btnSection.addEventListener(\"click\", (e) => {\r\n this._valueList.valueList.selectedValues = this._selectedItems;\r\n this._menu.show(btnSection, e);\r\n });\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n this.loadItems();\r\n }\r\n\r\n protected override disconnectedCallback(): void {\r\n this._menu.close();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-ValueListButton\", ValueListButton);\r\n","import { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { CaseInsensitiveMap } from \"../../../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { StringUtils } from \"../../../../../../Global/Base/Utils/StringUtils\";\r\nimport { ModelDescriptionsManager } from \"../../../../../../OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { EnumType } from \"../../../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { OWManager } from \"../../../../../../OW.Remoting/Remoting/OWManager\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { GenericControl } from \"../../../../../UI.BaseControls/GenericControl\";\r\nimport { ArrayDataSource } from \"../../../../../UI.Controls/DataSource/ArrayDataSource\";\r\nimport { DropDownButtonItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownButtonItem\";\r\nimport { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DropDownMenuCheckedDGItem } from \"../DropDownMenuItems/DropDownMenuCheckedDGItem\";\r\nimport { FilterGroup } from \"../FilterGroup\";\r\nimport { IFilterUserValue } from \"../FilterInterfaces\";\r\nimport { logger } from \"../logger\";\r\nimport { ValueListButton } from \"./ValueListButton\";\r\n\r\nexport class EnumValueListButton extends ValueListButton implements IFilterUserValue {\r\n private _attrName: string;\r\n private _className: string;\r\n private _enumType: EnumType;\r\n\r\n public get userValue(): any {\r\n return this._selectedItems;\r\n }\r\n\r\n public set userValue(v: any) {\r\n this.value = v;\r\n }\r\n\r\n public override set value(val: any) {\r\n this._selectedItems = val;\r\n }\r\n\r\n public override get value(): any {\r\n if (!this._loadSyncEnumInfo())\r\n return this._selectedItems;\r\n else {\r\n if (!this._selectedItems)\r\n return [\"-1\"]; //pomocná hodnota pro použití v podmínce. Ošetřuje situace, kdy není vybraná žádná hodnota a podmínka by obsahovala prázdnou množinu, což by vedlo k chybě.\r\n const vals: string[] = [\"-1\"];\r\n for (const val of this._selectedItems) {\r\n if (!val)\r\n return null;\r\n if (!this._enumType)\r\n return vals.join(\", \");\r\n const enumId = this._getEnumIdForValue(val.value);\r\n if (enumId != undefined)\r\n vals.push(enumId.toString());\r\n }\r\n return vals;\r\n }\r\n }\r\n\r\n protected _compareFnc(value: string, enumValue: string): boolean {\r\n enumValue = StringUtils.removeAccents(enumValue.toUpperCase());\r\n value = StringUtils.removeAccents(value.toUpperCase());\r\n return enumValue === value;\r\n }\r\n\r\n private _getEnumIdForValue(val: string): number | undefined {\r\n for (const item of this._enumType.descriptions) {\r\n if (this._compareFnc(val, item.Description))\r\n return item.IntValue;\r\n }\r\n return undefined;\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"data-classname\", \"data-attrname\"].concat(Control.observedAttributes);\r\n }\r\n\r\n private static _enumsType: CaseInsensitiveMap<EnumType> = new CaseInsensitiveMap<EnumType>();\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"data-classname\":\r\n this._className = newVal;\r\n if (!this._loadSyncEnumInfo())\r\n this._loadEnumInfo();\r\n break;\r\n case \"data-attrname\":\r\n this._attrName = newVal;\r\n if (!this._loadSyncEnumInfo())\r\n this._loadEnumInfo();\r\n break;\r\n }\r\n }\r\n\r\n private _loadSyncEnumInfo(): boolean {\r\n if (!this._attrName || !this._className)\r\n return false;\r\n const index = `${this._className}|${this._attrName}`; // `\r\n if (EnumValueListButton._enumsType.has(index)) {\r\n this._enumType = EnumValueListButton._enumsType.get(index);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private async _loadEnumInfo(): Promise<void> {\r\n if (!this._attrName || !this._className)\r\n return;\r\n\r\n const attrInfo = await ModelDescriptionsManager.instance.getAttributesInfo(this._className, [this._attrName]);\r\n\r\n if (!attrInfo || attrInfo.length == 0) {\r\n logger.error(\"Attribute info not loaded\");\r\n return;\r\n }\r\n\r\n if (attrInfo[0].type !== OWDataType.enum) {\r\n logger.error(\"Input type is not enum (%s)\", attrInfo[0].type);\r\n return;\r\n }\r\n\r\n const enumName = attrInfo[0].additionalTypeName;\r\n\r\n this._enumType = await OWManager.getEnum(enumName);\r\n EnumValueListButton._enumsType.set(`${this._className}|${this._attrName}`, this._enumType);\r\n }\r\n\r\n public override async loadItems(): Promise<void> {\r\n if (this._init)\r\n return;\r\n this._init = true;\r\n const fgroup = GenericControl.findParent(this as HTMLElement, (item) => item instanceof FilterGroup);\r\n this._valueList = new DropDownMenuCheckedDGItem();\r\n\r\n if (fgroup instanceof FilterGroup) {\r\n this._className = (fgroup as FilterGroup).parent.objectName;\r\n this._attrName = (fgroup as FilterGroup).attrName;\r\n await this._loadEnumInfo();\r\n const enumDataSource = new ArrayDataSource();\r\n enumDataSource.init(this._enumType.descriptions, \"IntValue\");\r\n enumDataSource.setAttrs([\"description\"]);\r\n await this._valueList.valueList.initializeByDS(enumDataSource);\r\n }\r\n\r\n this._menu.addItem(this._valueList);\r\n this._valueList.valueList.selectedValues = this._selectedItems;\r\n\r\n const m = new DropDownButtonItem();\r\n this._appendSelectedValue();\r\n\r\n m.addItem(\"GUI-311684\", () => { //Vybrat\r\n this._selectedItems = this._valueList.valueList.selectedValues;\r\n\r\n this._appendSelectedValue();\r\n\r\n m.parent.close();\r\n\r\n this.callEvent(\"change\");\r\n });\r\n\r\n this._menu.addItem(m);\r\n }\r\n}\r\nregisterCustomElement(\"tsc-EnumValueListButton\", EnumValueListButton);\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport { FlagGroup, IFlagGroupColor } from \"@multiweb/reactComponents\";\r\nimport { FlagUtils } from \"Global/Base/Utils/FlagUtils\";\r\nimport { Enum } from \"OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Flags } from \"OW.Remoting/Remoting/DataTypes/Flags\";\r\nimport { registerCustomElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\n\r\n/** Zobrazuje seznam všech dostupných flagů a umožňuje jejich výběr */\r\nexport class FlagFilter extends Control {\r\n //#region Fields\r\n /** Aktuálně vybrané barvy */\r\n private _selectedFlags: Array<Enum> = new Array<Enum>();\r\n /** Seznam všech dostupných barev */\r\n private _flagList: Array<string> = [];\r\n /** Slovník lokalizovaných názvů barev */\r\n private _flagColorsNameMap: Map<string, string> = new Map;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get value(): string {\r\n return this._selectedFlags.map((item) => Number(item)).join(\",\");\r\n }\r\n\r\n public set value(value: string) {\r\n this._selectedFlags = value.split(\",\").map((item) => Flags.flags[item]);\r\n this._render();\r\n }\r\n //#endregion Properties\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n Flags.loadingPromise.then(async (loadedFlags) => {\r\n if (loadedFlags) {\r\n this._flagList = Object.keys(loadedFlags);\r\n this._updateTitles();\r\n }\r\n });\r\n }\r\n\r\n //#region Methods\r\n /** Aktualizuje popisky flagů */\r\n private async _updateTitles(): Promise<void> { // [JB] TODO: Předělat na i18n jakmile bude dostupné\r\n const promises = this._flagList.map(\r\n async (flag) =>\r\n this._flagColorsNameMap.set(flag, await Flags.get(flag).getLocalizedName()),\r\n );\r\n\r\n await Promise.all(promises);\r\n this._render();\r\n }\r\n\r\n /** Aktualizuje vizuální stav komponenty */\r\n private _render(): void {\r\n const flags: Array<IFlagGroupColor> = this._flagList.map((color) => ({\r\n color: FlagUtils.flagToCss(color),\r\n isSelected: this._selectedFlags.includes(Flags.flags[color]),\r\n title: this._flagColorsNameMap.get(color),\r\n } as IFlagGroupColor));\r\n\r\n ReactDOM.render(React.createElement(FlagGroup, { flags, onChange: (color, isSelected) => this._onFlagSelectionChanged(color, isSelected) }), this);\r\n }\r\n\r\n /**\r\n * Handler, aktualizující seznam aktuálně vybraných flagů při kliku\r\n * @param color Flag, u kterého došlo ke změně\r\n * @param isSelected Zda byl označen/odznačen\r\n */\r\n private _onFlagSelectionChanged(color: string, isSelected: boolean): void {\r\n const changedFlag = this._flagList.find(flagColor => flagColor.toLowerCase().includes(color));\r\n if (isSelected) {\r\n this._selectedFlags.push(Flags.flags[changedFlag]);\r\n } else {\r\n this._selectedFlags.splice(this._selectedFlags.findIndex((item) => item.getName() === changedFlag), 1);\r\n }\r\n\r\n this._render();\r\n\r\n this.callEvent(\"change\");\r\n }\r\n //#endregion Methods\r\n}\r\n\r\nregisterCustomElement(\"tsc-FlagFilter\", FlagFilter);\r\n","import { IconCode } from \"../../../../../../contracts/iconCode\";\r\nimport { IKeyValueItem } from \"../../../../../../Global/Base/DataSources/Interfaces\";\r\nimport { EnumUtils } from \"../../../../../../Global/Base/Utils/EnumUtils\";\r\nimport { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { CaseInsensitiveMap } from \"../../../../../UI.React/types/multiweb\";\r\nimport { FilterGroup } from \"../FilterGroup\";\r\nimport { ValueListButton } from \"./ValueListButton\";\r\n\r\nexport class IconValueListButton extends ValueListButton {\r\n protected override initializeValueList(fgroup: FilterGroup): void {\r\n const dataType: CaseInsensitiveMap<string> = new CaseInsensitiveMap<string>([[fgroup.attrName, \"Icon\"]]);\r\n this._valueList.init(fgroup.parent.objectName, [fgroup.attrName], this.frameContext, fgroup.parent.frameCondition, fgroup.parent.frameConditionParams, fgroup.parent.disableValueShortening, dataType);\r\n }\r\n\r\n protected override renderElement(span: HTMLElement, selectedItem: IKeyValueItem): void {\r\n if (EnumUtils.hasEnumValue(IconCode, selectedItem.key.toString().trim())) {\r\n if (!selectedItem.value) {\r\n selectedItem.value = selectedItem.key;\r\n }\r\n span.classList.add(\"Icon\", selectedItem.value.toString().trim());\r\n } else {\r\n span.textContent = selectedItem.value;\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-IconValueListButton\", IconValueListButton);\r\n","import { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { BaseAdvancedFilters } from \"./BaseAdvancedFilters\";\r\n\r\nexport class MonthListAdvancedFilter extends BaseAdvancedFilters {\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.addItems([\r\n { value: 1, id: \"January\", lockey: \"GUI-643669\", valueType: \"monthlist\" }, //leden\r\n { value: 2, id: \"February\", lockey: \"GUI-643670\", valueType: \"monthlist\" }, //Únor\r\n { value: 3, id: \"March\", lockey: \"GUI-643671\", valueType: \"monthlist\" }, //Březen\r\n { value: 4, id: \"April\", lockey: \"GUI-643672\", valueType: \"monthlist\" }, //Duben\r\n { value: 5, id: \"May\", lockey: \"GUI-643673\", valueType: \"monthlist\" }, //Květen\r\n { value: 6, id: \"June\", lockey: \"GUI-643674\", valueType: \"monthlist\" }, //Červen\r\n { value: 7, id: \"July\", lockey: \"GUI-643675\", valueType: \"monthlist\" }, //Červenec\r\n { value: 8, id: \"August\", lockey: \"GUI-643676\", valueType: \"monthlist\" }, //Srpen\r\n { value: 9, id: \"September\", lockey: \"GUI-643677\", valueType: \"monthlist\" }, //Září\r\n { value: 10, id: \"October\", lockey: \"GUI-643678\", valueType: \"monthlist\" }, //Říjen\r\n { value: 11, id: \"November\", lockey: \"GUI-643679\", valueType: \"monthlist\" }, //Listopad\r\n { value: 12, id: \"December\", lockey: \"GUI-643680\", valueType: \"monthlist\" }, //Prosinec\r\n ]);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-MonthListAdvancedFilter\", MonthListAdvancedFilter);\r\n","import { Control } from \"UI/UI.BaseControls/Control\";\r\nimport { EditableControl } from \"../../../../../UI.BaseControls/EditableControl\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\n\r\nexport class MultiValueEdit extends EditableControl {\r\n protected override _innerElement: HTMLInputElement;\r\n\r\n //#region Properties\r\n public override set value(val: any) {\r\n this._innerElement.value = val;\r\n }\r\n\r\n public override get value(): any {\r\n return this._getValue().join(\", \");\r\n }\r\n\r\n public set maxLength(val: number) {\r\n if (val && val > 0)\r\n this._innerElement.maxLength = val;\r\n }\r\n\r\n public get maxLength(): number {\r\n return this._innerElement.maxLength;\r\n }\r\n\r\n //#region controlValue\r\n public get controlValue(): string {\r\n return this._innerElement.value;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public set controlValue(value: string) {\r\n const el = this._innerElement;\r\n\r\n if (this.maxLength > 0 && value && value.length > this.maxLength) {\r\n el.value = value.substr(0, this.maxLength);\r\n //this.alertOnLength();\r\n } else {\r\n el.value = value;\r\n }\r\n //this.Validate(el);\r\n }\r\n //#endregion controlValue\r\n //#endregion Properties\r\n\r\n private _getValue(): Array<string> {\r\n const originalValue = this._innerElement.value;\r\n const finalValueList: string[] = [];\r\n const baseValues = originalValue.replace(/\\s/ig, \"\").split(\";\");\r\n\r\n const f_parseList = (val: string) => {\r\n const s = val.split(\"-\");\r\n if (s.length < 2)\r\n return;\r\n const startIndex = parseInt(s[0]);\r\n const endIndex = parseInt(s[1]);\r\n\r\n if (isNaN(startIndex) || isNaN(endIndex))\r\n return;\r\n\r\n if (startIndex > endIndex) {\r\n for (let i = endIndex; i <= startIndex; i++) {\r\n finalValueList.push(i.toString());\r\n }\r\n } else {\r\n for (let i = startIndex; i <= endIndex; i++) {\r\n finalValueList.push(i.toString());\r\n }\r\n }\r\n };\r\n for (const val of baseValues) {\r\n if (val) {\r\n if (/^[0-9]+\\s*-\\s*\\d+$/.test(val))\r\n f_parseList(val);\r\n else {\r\n const s = parseInt(val);\r\n if (isNaN(s))\r\n continue;\r\n finalValueList.push(s.toString());\r\n }\r\n }\r\n }\r\n\r\n return finalValueList;\r\n }\r\n\r\n public override focus(): void {\r\n this._innerElement.focus();\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n const tcont: string = this.textContent.trim();\r\n this.innerHTML = \"\";\r\n\r\n this._innerElement = createElement({ type: \"input\" }) as HTMLInputElement;\r\n this.appendChild(this._innerElement);\r\n this.classList.add(\"Edit\");\r\n\r\n if (tcont.length > 0) {\r\n this.value = tcont;\r\n }\r\n }\r\n\r\n protected override connectedCallback(): void {\r\n super.connectedCallback();\r\n\r\n if (this._innerElement) {\r\n Control.registerEventListener(this._eventGroup, this._innerElement, \"change\", (e) => {\r\n e.stopPropagation();\r\n this.callEvent(\"change\");\r\n });\r\n }\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-MultiValueEdit\", MultiValueEdit);\r\n","import { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { BaseAdvancedFilters } from \"./BaseAdvancedFilters\";\r\n\r\nexport class QuarterListAdvancedFilter extends BaseAdvancedFilters {\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.addItems([\r\n { value: 1, id: \"1_q\", lockey: \"GUI-670794\", valueType: \"quarterlist\" }, //1. kvartál\r\n { value: 2, id: \"2_q\", lockey: \"GUI-670795\", valueType: \"quarterlist\" }, //2. kvartál\r\n { value: 3, id: \"3_q\", lockey: \"GUI-670796\", valueType: \"quarterlist\" }, //3. kvartál\r\n { value: 4, id: \"4_q\", lockey: \"GUI-670797\", valueType: \"quarterlist\" }, //4. kvartál\r\n ]);\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-QuarterListAdvancedFilter\", QuarterListAdvancedFilter);\r\n","import { Event as GlobalEvent } from \"../../../../../../Global/Base/Events\";\r\nimport { ValidationErrorType } from \"../../../../../../OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { IValidatable, IValidationResult } from \"../../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\n\r\nexport class TimeAgeCombo extends Control implements IValidatable {\r\n private _combo: HTMLSelectElement;\r\n\r\n public set value(v: any) {\r\n switch (v) {\r\n case \"quarter\":\r\n this._combo.selectedIndex = 1;\r\n break;\r\n case \"year\":\r\n this._combo.selectedIndex = 2;\r\n break;\r\n case \"month\":\r\n this._combo.selectedIndex = 3;\r\n break;\r\n case \"week\":\r\n this._combo.selectedIndex = 4;\r\n break;\r\n case \"day\":\r\n this._combo.selectedIndex = 5;\r\n break;\r\n }\r\n }\r\n\r\n public get value(): any {\r\n return this._combo.value;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._combo = createElement({ type: \"select\" }) as HTMLSelectElement;\r\n this._combo.innerHTML = \"\";\r\n\r\n this.disposeOnDetach = false;\r\n\r\n this.appendChild(this._combo);\r\n\r\n this._combo.appendChild(createElement({\r\n type: \"option\",\r\n html: \"-\", // vyberte\r\n attrs: { value: \"\" },\r\n }));\r\n\r\n let element: HTMLElement;\r\n\r\n this._combo.appendChild(element = createElement({ type: \"option\", attrs: { value: \"quarter\" } }));\r\n Localization.addLocTxtData(element, \"GUI-603263\"), // čtvrtletích\r\n\r\n this._combo.appendChild(element = createElement({ type: \"option\", attrs: { value: \"year\" } }));\r\n Localization.addLocTxtData(element, \"GUI-603257\"), // letech\r\n\r\n this._combo.appendChild(element = createElement({ type: \"option\", attrs: { value: \"month\" } }));\r\n Localization.addLocTxtData(element, \"GUI-603258\"), // měsících\r\n\r\n this._combo.appendChild(element = createElement({ type: \"option\", attrs: { value: \"week\" } }));\r\n Localization.addLocTxtData(element, \"GUI-603259\"), // týdnech\r\n\r\n this._combo.appendChild(element = createElement({ type: \"option\", attrs: { value: \"day\" } }));\r\n Localization.addLocTxtData(element, \"GUI-603260\"); // dnech\r\n\r\n this._eventsController.addListener(this._combo, \"click\", (event: MouseEvent) => {\r\n event.stopImmediatePropagation(); // zamezení nechtěného zavření celého filtračního okna po kliknutí na položku comboboxu\r\n });\r\n }\r\n\r\n private _localizationsForInThisOption: Map<string, string> =\r\n new Map([\r\n [\"quarter\", \"GUI-603264\"], // čtvrtletí\r\n [\"year\", \"GUI-603265\"], // roce\r\n [\"month\", \"GUI-603266\"], // měsíci\r\n [\"week\", \"GUI-603267\"], // týdnu\r\n [\"day\", \"GUI-603268\"], // dnu\r\n ]);\r\n\r\n public setLocalizationsForInThisOption(): void {\r\n for (const option of this._combo.options) {\r\n Localization.addLocTxtData(option, this._localizationsForInThisOption.get(option.value));\r\n }\r\n }\r\n\r\n public isValid: boolean = true;\r\n public validityChanged = new GlobalEvent<IValidatable, IValidationResult>();\r\n public isInRequiredInvalidState: boolean = false;\r\n public readonly currentValidity: IValidationResult = null;\r\n\r\n public validate(): boolean {\r\n return this._combo.selectedIndex > 0;\r\n }\r\n\r\n public setValid(): void {\r\n throw new Error(\"Not implemented\");\r\n }\r\n\r\n public setInvalid(_locKey: string, _message?: string, _errorType?: ValidationErrorType): void {\r\n throw new Error(\"Not implemented\");\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-TimeAgeCombo\", TimeAgeCombo);\r\n","import { Edit } from \"../../../../UI.BaseControls/Edit\";\r\nimport { NumEdit } from \"../../../../UI.BaseControls/NumEdit\";\r\nimport { TimeEdit } from \"../../../../UI.BaseControls/TimeEdit\";\r\nimport { DateTimeWithInclude } from \"./AdvancedFilters/DateTimeWithInclude\";\r\nimport { DateWithInclude } from \"./AdvancedFilters/DateWithInclude\";\r\nimport { DaysListAdvancedFilter } from \"./AdvancedFilters/DaysListAdvancedFilter\";\r\nimport { EnumFilterEdit } from \"./AdvancedFilters/EnumFilterEdit\";\r\nimport { EnumValueListButton } from \"./AdvancedFilters/EnumValueListButton\";\r\nimport { ExtendedFilterEdit } from \"./AdvancedFilters/ExtendedFilterEdit\";\r\nimport { FlagFilter } from \"./AdvancedFilters/FlagFilter\";\r\nimport { IconValueListButton } from \"./AdvancedFilters/IconValueListButton\";\r\nimport { MonthListAdvancedFilter } from \"./AdvancedFilters/MonthListAdvancedFilter\";\r\nimport { MultiValueEdit } from \"./AdvancedFilters/MultiValueEdit\";\r\nimport { QuarterListAdvancedFilter } from \"./AdvancedFilters/QuarterListAdvancedFilter\";\r\nimport { TimeAgeCombo } from \"./AdvancedFilters/TimeAgeCombo\";\r\nimport { ValueListButton } from \"./AdvancedFilters/ValueListButton\";\r\nimport { FilterConvertFunction, FilterEmptyType } from \"./FilterInterfaces\";\r\nimport { FilterRegistrations } from \"./FilterRegistrations\";\r\n\r\nconst timeFromJsonFormatter = (datetime: string) => new Date(datetime).toTimeString(); //funkce, které se použije při parsování datového typu \"time\" z JSON, kde je uložen celý dateTime, ale TimeEdit počítá jen s TimeStringem\r\n\r\n//#region Registrace struktur\r\n//#region Základní registrace fieldu\r\n//Structure.RegisterField(\"DateTimeEdit\", DateTimeEdit, undefined,\r\nFilterRegistrations.registerField(\"DateTimeEdit\", DateTimeWithInclude, undefined, undefined,\r\n (v: any, type: FilterConvertFunction): string => {\r\n if (type == FilterConvertFunction.sql) {\r\n //return v.toISOString().slice(0, 19).replace('T', ' ');\r\n if (!v)\r\n return null;\r\n return v.getFullYear() + \"-\" +\r\n (\"00\" + (v.getMonth() + 1)).slice(-2) + \"-\" +\r\n (\"00\" + v.getDate()).slice(-2) + \"T\" +\r\n (\"00\" + v.getHours()).slice(-2) + \":\" +\r\n (\"00\" + v.getMinutes()).slice(-2) + \":\" +\r\n (\"00\" + v.getSeconds()).slice(-2);\r\n }\r\n return v;\r\n });\r\nFilterRegistrations.registerField(\"TimeEdit\", TimeEdit, undefined, undefined,\r\n (v: any, type: FilterConvertFunction): string => {\r\n if (type == FilterConvertFunction.sql) {\r\n //return v.toISOString().slice(0, 19).replace('T', ' ');\r\n if (!v)\r\n return null;\r\n return (\"00\" + v.getHours()).slice(-2) + \":\" +\r\n (\"00\" + v.getMinutes()).slice(-2) + \":\" +\r\n (\"00\" + v.getSeconds()).slice(-2);\r\n }\r\n return v;\r\n });\r\nFilterRegistrations.registerField(\"DateEdit\", DateWithInclude, undefined, undefined,\r\n (v: any, type: FilterConvertFunction): string => {\r\n if (type == FilterConvertFunction.sql) {\r\n //return v.toISOString().slice(0, 10).replace('T', ' ');\r\n if (!v)\r\n return null;\r\n return v.getFullYear() + \"-\" +\r\n (\"00\" + (v.getMonth() + 1)).slice(-2) + \"-\" +\r\n (\"00\" + v.getDate()).slice(-2);\r\n }\r\n return v;\r\n });\r\nFilterRegistrations.registerField(\"Edit\", Edit);\r\nFilterRegistrations.registerField(\"EnumEdit\", EnumFilterEdit);\r\nFilterRegistrations.registerField(\"NumEdit\", NumEdit, (control: NumEdit) => control.innerElement.setAttribute(\"displayformat\", \"\"));\r\nFilterRegistrations.registerField(\"IntEdit\", NumEdit, (control: NumEdit) => {\r\n control.wholeNumbers = true; control.customValidation = (value => value > 0);\r\n});\r\nFilterRegistrations.registerField(\"Boolean\", undefined);\r\nFilterRegistrations.registerField(\"TimeAgeCombo\", TimeAgeCombo);\r\nFilterRegistrations.registerField(\"TimeAgeComboForInThisOption\", TimeAgeCombo, (control: TimeAgeCombo) => control.setLocalizationsForInThisOption());\r\nFilterRegistrations.registerField(\"DaysListAdvancedFilter\", DaysListAdvancedFilter);\r\nFilterRegistrations.registerField(\"MonthListAdvancedFilter\", MonthListAdvancedFilter);\r\nFilterRegistrations.registerField(\"QuarterListAdvancedFilter\", QuarterListAdvancedFilter);\r\nFilterRegistrations.registerField(\"MultiValueEdit\", MultiValueEdit);\r\nFilterRegistrations.registerField(\"ValueListButton\", ValueListButton);\r\nFilterRegistrations.registerField(\"EnumValueListButton\", EnumValueListButton);\r\nFilterRegistrations.registerField(\"IconValueListButton\", IconValueListButton);\r\nFilterRegistrations.registerField(\"FlagFilter\", FlagFilter);\r\nFilterRegistrations.registerField(\"ExtendedFilterEdit\", ExtendedFilterEdit);\r\n\r\n//#endregion Základní registrace fieldu\r\n\r\n//#region Registrace struktury Date\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(\"date\", {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} = {value}\" },\r\n },\r\n },\r\n \"not_is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} <> {value}\" },\r\n },\r\n },\r\n \"after\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" } },\r\n },\r\n },\r\n \"before\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n },\r\n },\r\n \"in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" } },\r\n \"input2\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" }, sign: \"and\" },\r\n },\r\n },\r\n \"not_in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n \"input2\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" }, sign: \"or\" },\r\n },\r\n },\r\n \"today\": {\r\n beginCondition: \"{attrName} = DB.GetDate()\",\r\n noBeginValueParameters: true,\r\n },\r\n \"tomorrow\": {\r\n beginCondition: \"{attrName} = DBDate.DateAdd('day', 1, 'SYSDATE')\",\r\n noBeginValueParameters: true,\r\n },\r\n \"yesterday\": {\r\n beginCondition: \"{attrName} = DBDate.DateAdd('day', -1, 'SYSDATE')\",\r\n noBeginValueParameters: true,\r\n },\r\n \"in_the_next\": {\r\n beginCondition: \"{attrName} > DB.GetDate() AND {attrName} <= DBDate.DateAdd('{value:input2}', {value:input15}, 'SYSDATE')\", //DBDate.DateAdd({value:input2}, 1, 'SYSDATE')\r\n },\r\n \"in_past\": {\r\n beginCondition: \"{attrName} >= DBDate.DateAdd('{value:input2}', -{value:input15}, 'SYSDATE') AND {attrName} < DB.GetDate()\", //DBDate.DateAdd({value:input2}, -1, 'SYSDATE')\r\n },\r\n \"in_this\": {\r\n beginCondition: \"DBDate.DatePart('{value:input2}', {attrName}) = DBDate.DatePart('{value:input2}', 'SYSDATE')\",\r\n },\r\n \"days\": {\r\n beginCondition: \"DBDate.DatePart('weekday', {attrName}) ∈ { {value:input3} }\",\r\n },\r\n \"months\": {\r\n beginCondition: \"DBDate.DatePart('month', {attrName}) ∈ { {value:input4} }\",\r\n },\r\n \"quarter\": {\r\n beginCondition: \"DBDate.DatePart('quarter', {attrName}) ∈ { {value:input5} }\",\r\n },\r\n \"weeks\": {\r\n beginCondition: \"DBDate.DatePart('week', {attrName}) ∈ { {value:input6} }\",\r\n },\r\n \"years\": {\r\n beginCondition: \"DBDate.DatePart('year', {attrName}) ∈ { {value:input6} }\",\r\n },\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"date\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-146850\", [// Je\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_is\", \"GUI-146852\", [// Není\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"after\", \"GUI-452752\", [// Po\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\", { including: true }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"before\", \"GUI-452750\", [// Před\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\", { including: true }),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"in_range\", \"GUI-280032\", [// V rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\", { including: true }),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"DateEdit\", { including: true }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_in_range\", \"GUI-598878\", [// Mimo rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateEdit\", { including: true }),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"DateEdit\", { including: true }),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"tomorrow\", \"GUI-598879\"), // Zítra\r\n FilterRegistrations.getIOperation(\"today\", \"GUI-452754\"), // Dnes\r\n FilterRegistrations.getIOperation(\"yesterday\", \"GUI-452756\"), // Včera\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"in_the_next\", \"GUI-598880\", [// V přístích\r\n FilterRegistrations.getIFilterFieldInfo(\"input15\", \"IntEdit\"),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeCombo\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"in_this\", \"GUI-598881\", [// V tomto\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeComboForInThisOption\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"in_past\", \"GUI-598882\", [// V minulých\r\n FilterRegistrations.getIFilterFieldInfo(\"input15\", \"IntEdit\"),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeCombo\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"days\", \"GUI-598883\", [// Dny\r\n FilterRegistrations.getIFilterFieldInfo(\"input3\", \"DaysListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"weeks\", \"GUI-86328\", [// Týdny\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"MultiValueEdit\", undefined, (value: string) => value.replace(/,/g, \";\")),\r\n ]),\r\n FilterRegistrations.getIOperation(\"months\", \"GUI-86326\", [// Měsíce\r\n FilterRegistrations.getIFilterFieldInfo(\"input4\", \"MonthListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"quarter\", \"GUI-598884\", [// Čtvrtletí\r\n FilterRegistrations.getIFilterFieldInfo(\"input5\", \"QuarterListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"years\", \"GUI-86324\", [// Roky\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"MultiValueEdit\", undefined, (value: string) => value.replace(/,/g, \";\")),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury Date\r\n\r\n//#region Registrace struktury DateTime\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(\"datetime\", {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= {value} AND {attrName} < DBDate.DateAdd('{span}', 1, {value})\", span: \"second\" },\r\n },\r\n subOperation: {\r\n \"day\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= {value} AND {attrName} < DBDate.DateAdd('day', 1, {value})\" },\r\n },\r\n },\r\n },\r\n },\r\n \"not_is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value} OR {attrName} >= DBDate.DateAdd('{span}', 1, {value})\", span: \"second\" },\r\n },\r\n subOperation: {\r\n \"day\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value} OR {attrName} >= DBDate.DateAdd('day', 1, {value})\" },\r\n },\r\n },\r\n },\r\n },\r\n \"after\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" }, span: \"second\" },\r\n },\r\n },\r\n \"before\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n },\r\n },\r\n \"in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" } },\r\n \"input2\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" }, sign: \"and\" },\r\n },\r\n },\r\n \"not_in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n \"input2\": { condition: \"{attrName} > {value}\", additional: { including: \"{attrName} >= {value}\" }, sign: \"or\" },\r\n },\r\n },\r\n \"today\": {\r\n beginCondition: \"{attrName} >= DBDate.DateAdd('day', 0, 'SYSDATE') AND {attrName} < DBDate.DateAdd('day', 1, 'SYSDATE')\",\r\n noBeginValueParameters: true,\r\n },\r\n \"tomorrow\": {\r\n beginCondition: \"{attrName} >= DBDate.DateAdd('day', 1, 'SYSDATE') AND {attrName} < DBDate.DateAdd('day', 2, 'SYSDATE')\",\r\n noBeginValueParameters: true,\r\n },\r\n \"yesterday\": {\r\n beginCondition: \"{attrName} >= DBDate.DateAdd('day', -1, 'SYSDATE') AND {attrName} < DBDate.DateAdd('day', 0, 'SYSDATE')\",\r\n noBeginValueParameters: true,\r\n },\r\n \"in_the_next\": {\r\n beginCondition: \"{attrName} > DB.GetDateTime() AND {attrName} < DBDate.DateAdd('{value:input2}', {value:input15}, DB.GetDateTime())\",\r\n },\r\n \"in_past\": {\r\n beginCondition: \"{attrName} > DBDate.DateAdd('{value:input2}', -{value:input15}, DB.GetDateTime()) AND {attrName} < DB.GetDateTime()\",\r\n },\r\n \"in_this\": {\r\n beginCondition: \"DBDate.DatePart('{value:input2}', {attrName}) = DBDate.DatePart('{value:input2}', 'SYSDATE')\",\r\n },\r\n \"days\": {\r\n beginCondition: \"DBDate.DatePart('weekday', {attrName}) ∈ { {value:input3} }\",\r\n },\r\n \"months\": {\r\n beginCondition: \"DBDate.DatePart('month', {attrName}) ∈ { {value:input4} }\",\r\n },\r\n \"quarter\": {\r\n beginCondition: \"DBDate.DatePart('quarter', {attrName}) ∈ { {value:input5} }\",\r\n },\r\n \"weeks\": {\r\n beginCondition: \"DBDate.DatePart('week', {attrName}) ∈ { {value:input6} }\",\r\n },\r\n \"years\": {\r\n beginCondition: \"DBDate.DatePart('year', {attrName}) ∈ { {value:input6} }\",\r\n },\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"datetime\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-146850\", [// Je\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: false }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_is\", \"GUI-146852\", [// Není\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: false }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"after\", \"GUI-452752\", [// Po\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: true }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"before\", \"GUI-452750\", [// Před\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: true, defaultValue: \"00:00:00\" }),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"in_range\", \"GUI-280032\", [// V rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: true }),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"DateTimeEdit\", { including: true, defaultValue: \"00:00:00\" }),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_in_range\", \"GUI-598878\", [// Mimo rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"DateTimeEdit\", { including: true, defaultValue: \"23:59:59\" }),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"DateTimeEdit\", { including: true }),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"tomorrow\", \"GUI-598879\"), // Zítra\r\n FilterRegistrations.getIOperation(\"today\", \"GUI-452754\"), // Dnes\r\n FilterRegistrations.getIOperation(\"yesterday\", \"GUI-452756\"), // Včera\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"in_the_next\", \"GUI-598880\", [// V přístích\r\n FilterRegistrations.getIFilterFieldInfo(\"input15\", \"IntEdit\"),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeCombo\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"in_this\", \"GUI-598881\", [// V tomto\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeComboForInThisOption\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"in_past\", \"GUI-598882\", [// V minulých\r\n FilterRegistrations.getIFilterFieldInfo(\"input15\", \"IntEdit\"),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeAgeCombo\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"days\", \"GUI-598883\", [// Dny\r\n FilterRegistrations.getIFilterFieldInfo(\"input3\", \"DaysListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"weeks\", \"GUI-86328\", [// Týdny\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"MultiValueEdit\", undefined, (value: string) => value.replace(/,/g, \";\")),\r\n ]),\r\n FilterRegistrations.getIOperation(\"months\", \"GUI-86326\", [// Měsíce\r\n FilterRegistrations.getIFilterFieldInfo(\"input4\", \"MonthListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"quarter\", \"GUI-598884\", [// Čtvrtletí\r\n FilterRegistrations.getIFilterFieldInfo(\"input5\", \"QuarterListAdvancedFilter\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"years\", \"GUI-86324\", [// Roky\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"MultiValueEdit\", undefined, (value: string) => value.replace(/,/g, \";\")),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury DateTime\r\n\r\n//#region Registrace struktury Time\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(\"time\", {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= {value} AND {attrName} < DBDate.DateAdd('{span}', 1, {value})\", span: \"second\" },\r\n },\r\n },\r\n \"not_is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value} OR {attrName} >= DBDate.DateAdd('{span}', 1, {value})\", span: \"second\" },\r\n },\r\n },\r\n \"after\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= DBDate.DateAdd('{span}', 1, {value})\", additional: { including: \"{attrName} >= {value}\" }, span: \"second\" },\r\n },\r\n },\r\n \"before\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n },\r\n },\r\n \"in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= {value}\", additional: { including: \"{attrName} >= {value}\" } },\r\n \"input2\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" }, sign: \"and\" },\r\n },\r\n },\r\n \"not_in_range\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\", additional: { including: \"{attrName} <= {value}\" } },\r\n \"input2\": { condition: \"{attrName} >= {value}\", additional: { including: \"{attrName} >= {value}\" }, sign: \"or\" },\r\n },\r\n },\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"time\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-146850\", [// Je\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: false }, timeFromJsonFormatter),\r\n ], undefined, true),\r\n FilterRegistrations.getIOperation(\"not_is\", \"GUI-146852\", [// Není\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: false }, timeFromJsonFormatter),\r\n ]),\r\n FilterRegistrations.getIOperation(\"after\", \"GUI-452752\", [// Po\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n ]),\r\n FilterRegistrations.getIOperation(\"before\", \"GUI-452750\", [// Před\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"in_range\", \"GUI-280032\", [// V rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_in_range\", \"GUI-598878\", [// Mimo rozmezí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n FilterRegistrations.getIFilterFieldInfo(\"input2\", \"TimeEdit\", { including: true }, timeFromJsonFormatter),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury Time\r\n//#region Registrace struktury String\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation([\"string\", \"strnum\", \"text\"], {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": {\r\n condition: \":Linguistic.Equal({attrName},'{value}')\",\r\n escapeValue: false,\r\n conditionalOperation: [\r\n { containsValue: \"*\", condition: \":Linguistic.LIKE({attrName},'{value}')\", isForReplace: true },\r\n { containsValue: \"?\", condition: \":Linguistic.LIKE({attrName},'{value}')\", isForReplace: true },\r\n ],\r\n },\r\n },\r\n },\r\n \"not_is\": {\r\n inputs: {\r\n \"input1\": {\r\n condition: \"NOT :Linguistic.Equal({attrName},'{value}')\",\r\n escapeValue: false,\r\n conditionalOperation: [\r\n { containsValue: \"*\", condition: \"NOT :Linguistic.LIKE({attrName},'{value}')\", isForReplace: true },\r\n { containsValue: \"?\", condition: \"NOT :Linguistic.LIKE({attrName},'{value}')\", isForReplace: true },\r\n ],\r\n },\r\n },\r\n },\r\n \"start_with\": {\r\n inputs: {\r\n \"input1\": { condition: \":Linguistic.LIKE({attrName},'{value}%')\" },\r\n },\r\n },\r\n \"not_start_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"NOT :Linguistic.LIKE({attrName},'{value}%')\" },\r\n },\r\n },\r\n \"end_with\": {\r\n inputs: {\r\n \"input1\": { condition: \":Linguistic.LIKE({attrName},'%{value}')\" },\r\n },\r\n },\r\n \"not_end_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"NOT :Linguistic.LIKE({attrName},'%{value}')\" },\r\n },\r\n },\r\n \"contain\": {\r\n inputs: {\r\n \"input1\": { condition: \":Linguistic.LIKE({attrName},'%{value}%')\" },\r\n },\r\n },\r\n \"not_contain\": {\r\n inputs: {\r\n \"input1\": { condition: \"NOT :Linguistic.LIKE({attrName},'%{value}%')\" },\r\n },\r\n },\r\n \"value_is\": {\r\n beginCondition: \"{attrName} ∈ { {value:input6} }\",\r\n useForShortenedValues: false,\r\n inputs: {\r\n \"input6\": {\r\n condition: \":Linguistic.LIKE({attrName},'{value}%')\", useForShortenedValues: true, signForBeginCondition: \"or\",\r\n },\r\n },\r\n },\r\n \"value_not_is\": {\r\n beginCondition: \"{attrName} ∉ { {value:input6} }\",\r\n useForShortenedValues: false,\r\n inputs: {\r\n \"input6\": {\r\n condition: \"NOT :Linguistic.LIKE({attrName},'{value}%')\", useForShortenedValues: true, signForBeginCondition: \"or\",\r\n },\r\n },\r\n },\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerMultiTypeFilter({\r\n dataType: \"string\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-146850\", [// Je\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_is\", \"GUI-146852\", [// Není\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"start_with\", \"GUI-452738\", [// Začíná\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ], undefined, true),\r\n FilterRegistrations.getIOperation(\"not_start_with\", \"GUI-598885\", [// Nezačíná\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"end_with\", \"GUI-280002\", [// Končí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_end_with\", \"GUI-598955\", [// Nekončí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"contain\", \"GUI-452736\", [// Obsahuje\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_contain\", \"GUI-279998\", [// Neobsahuje\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"Edit\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"value_is\", \"GUI-598886\", [// Hodnoty jsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"ValueListButton\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"value_not_is\", \"GUI-598887\", [// Hodnoty nejsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"ValueListButton\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"extended\", \"GUI-685188\", [// Rozšířené\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"ExtendedFilterEdit\"),\r\n ]),\r\n ],\r\n },\r\n ],\r\n}, FilterRegistrations.stringTypes);\r\n//#endregion Registrace struktury String\r\n\r\n//#endregion Registrace struktury Icon\r\nFilterRegistrations.registerServerOperation(\"icon\", {\r\n \"value_is\": {\r\n beginCondition: \"{attrName} ∈ { {value:input6} }\",\r\n },\r\n \"value_not_is\": {\r\n beginCondition: \"{attrName} ∉ { {value:input6} }\",\r\n },\r\n\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"icon\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"value_is\", \"GUI-598886\", [ // Hodnoty jsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"IconValueListButton\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"value_not_is\", \"GUI-598887\", [ // Hodnoty nejsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"IconValueListButton\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury Icon\r\n\r\n//#region Registrace struktury Enum\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(\"enum\", {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∈ { {value} }\" },\r\n },\r\n },\r\n \"not_is\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∉ { {value} }\" },\r\n },\r\n },\r\n \"start_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∈ { {value} }\" },\r\n },\r\n },\r\n \"not_start_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∉ { {value} }\" },\r\n },\r\n },\r\n \"end_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∈ { {value} }\" },\r\n },\r\n },\r\n \"not_end_with\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∉ { {value} }\" },\r\n },\r\n },\r\n \"contain\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∈ { {value} }\" },\r\n },\r\n },\r\n \"not_contain\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} ∉ { {value} }\" },\r\n },\r\n },\r\n \"value_is\": {\r\n beginCondition: \"{attrName} ∈ { {value:input6} }\",\r\n },\r\n \"value_not_is\": {\r\n beginCondition: \"{attrName} ∉ { {value:input6} }\",\r\n },\r\n\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"enum\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-146850\", [// Je\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_is\", \"GUI-146852\", [// Není\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"start_with\", \"GUI-452738\", [// Začíná\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ], undefined, true),\r\n FilterRegistrations.getIOperation(\"not_start_with\", \"GUI-598885\", [// Nezačíná\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"end_with\", \"GUI-280002\", [// Končí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_end_with\", \"GUI-598955\", [// Nekončí\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"contain\", \"GUI-452736\", [// Obsahuje\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"not_contain\", \"GUI-279998\", [// Neobsahuje\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"EnumEdit\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"value_is\", \"GUI-598886\", [ // Hodnoty jsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"EnumValueListButton\"),\r\n ]),\r\n FilterRegistrations.getIOperation(\"value_not_is\", \"GUI-598887\", [ // Hodnoty nejsou\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"EnumValueListButton\"),\r\n ]),\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"extended\", \"GUI-685188\", [// Rozšířené\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"ExtendedFilterEdit\"),\r\n ]),\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury Enum\r\n\r\n//#region Registrace struktury Number\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(FilterRegistrations.numericTypes, {\r\n \"is_equal\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} = {value}\" },\r\n },\r\n },\r\n \"not_is_equal\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} <> {value}\" },\r\n },\r\n },\r\n \"greater_than\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} > {value}\" },\r\n },\r\n },\r\n \"greater_or_equal_than\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} >= {value}\" },\r\n },\r\n },\r\n \"less_than\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} < {value}\" },\r\n },\r\n },\r\n \"less_or_equal_than\": {\r\n inputs: {\r\n \"input1\": { condition: \"{attrName} <= {value}\" },\r\n },\r\n },\r\n \"is_empty\": {\r\n emptyFilter: FilterEmptyType.empty,\r\n },\r\n \"is_not_empty\": {\r\n emptyFilter: FilterEmptyType.notEmpty,\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerMultiTypeFilter({\r\n dataType: \"integer\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_equal\", \"GUI-598888\", [// Je rovno\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599242\"), // =\r\n FilterRegistrations.getIOperation(\"not_is_equal\", \"GUI-598889\", [// Není rovno\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599241\"), // ≠\r\n FilterRegistrations.getIOperation(\"greater_than\", \"GUI-280018\", [// Větší než\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599243\"), // >\r\n FilterRegistrations.getIOperation(\"greater_or_equal_than\", \"GUI-598891\", [// Větší nebo rovno než\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599244\"), // ≥\r\n FilterRegistrations.getIOperation(\"less_than\", \"GUI-280020\", [// Menší než\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599245\"), // <\r\n FilterRegistrations.getIOperation(\"less_or_equal_than\", \"GUI-598890\", [// Menší nebo rovno než\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"NumEdit\"),\r\n ], undefined, undefined, undefined, \"GUI-599246\"), // ≤\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is_empty\", \"GUI-487654\"), // Je prázdný\r\n FilterRegistrations.getIOperation(\"is_not_empty\", \"GUI-487656\"), // Není prázdný\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"extended\", \"GUI-685188\", [// Rozšířené\r\n FilterRegistrations.getIFilterFieldInfo(\"input6\", \"ExtendedFilterEdit\"),\r\n ]),\r\n ],\r\n },\r\n ],\r\n}, FilterRegistrations.numericTypes);\r\n//#endregion Registrace struktury Number\r\n\r\n//#region Registrace struktury Boolean\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation([\"Boolean\"], {\r\n \"boolean\": {\r\n \"inputs\": {\r\n \"true\": {\r\n condition: \"{attrName} = {value}\",\r\n },\r\n \"false\": {\r\n condition: \"{attrName} = {value}\",\r\n },\r\n \"is_empty\": {\r\n condition: \"{attrName} = NULL\",\r\n },\r\n \"is_not_empty\": {\r\n condition: \"{attrName} <> NULL\",\r\n },\r\n },\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"boolean\",\r\n groupList: [],\r\n multiOperation: {\r\n id: \"boolean\",\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIMultiOperation(\"true\", \"GUI-146844\", \"true\", \"✔\"), // Pravda\r\n FilterRegistrations.getIMultiOperation(\"false\", \"GUI-146846\", \"false\", \"✖\"), // Nepravda\r\n ],\r\n },\r\n {\r\n operationList: [\r\n FilterRegistrations.getIMultiOperation(\"is_empty\", \"GUI-487654\", \"\", \"GUI-487654\"), // Nevyplněno\r\n FilterRegistrations.getIMultiOperation(\"is_not_empty\", \"GUI-487656\", \"\", \"GUI-487656\"), // Vyplněno\r\n ],\r\n },\r\n ],\r\n },\r\n});\r\n//#endregion Registrace struktury Booelan\r\n\r\n//#region Registrace struktury FlagColor\r\n//#region Registrace serverovych operaci\r\nFilterRegistrations.registerServerOperation(\"flags\", {\r\n \"is\": {\r\n inputs: {\r\n \"input1\": {\r\n condition: \"{attrName} in [{value}]\",\r\n conditionalOperation: [\r\n { containsValue: \"0\", separator: \",\", condition: \"{attrName} = NULL\" },\r\n ],\r\n },\r\n },\r\n },\r\n});\r\n//#endregion Registrace serverovych operaci\r\nFilterRegistrations.registerDataTypeFilter({\r\n dataType: \"flags\",\r\n basicMultiOperation: true,\r\n groupList: [\r\n {\r\n operationList: [\r\n FilterRegistrations.getIOperation(\"is\", \"GUI-690552\", [ // Výběr barev\r\n FilterRegistrations.getIFilterFieldInfo(\"input1\", \"FlagFilter\"),\r\n ]),\r\n ],\r\n },\r\n ],\r\n});\r\n//#endregion Registrace struktury FlagColor\r\n\r\n//#endregion Registrace struktur\r\n","import { IAttrValue, IconCode } from \"@multiweb/types/contracts\";\r\nimport { EnumUtils } from \"Global/Base/Utils/EnumUtils\";\r\nimport { AttrValueReader } from \"OW.Remoting/Remoting/AttrValueReader\";\r\nimport { ItemTemplate } from \"../ItemTemplate\";\r\n\r\nexport class IconTemplate extends ItemTemplate {\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n item.innerHTML = \"\";\r\n item.className = \"icon-column\";\r\n const data = AttrValueReader.read(this._getDataFromSet(dataSet));\r\n\r\n if (data !== null) {\r\n if (EnumUtils.hasEnumValue(IconCode, data.toString().trim())) {\r\n item.classList.add(\"Icon\", data.toString().trim());\r\n } else {\r\n item.textContent = data;\r\n }\r\n }\r\n }\r\n}\r\n","import { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IconTemplate } from \"../Templates/DataTypeTemplates/IconTemplate\";\r\nimport { Column } from \"./Column\";\r\n\r\nexport class IconColumn extends Column {\r\n //#region Fields\r\n //#endregion\r\n\r\n //#region Methods\r\n\r\n //#endregion Methods\r\n\r\n //#region dispose\r\n\r\n //#endregion dispose\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.itemTemplate = new IconTemplate();\r\n }\r\n //#endregion HTMLElement\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-iconcolumn\", IconColumn);\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { AttrValueReader } from \"../../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { createElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { ItemTemplate } from \"../ItemTemplate\";\r\n\r\nexport class LOVTemplate extends ItemTemplate {\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n // v needitaci sem prijde pole primitivnich hodnot, ktere se maji rovnou zobrazit\r\n // v editaci (a pri oznaceni radku) sem prijde pole s jednim prvkem, ktery je OWObject\r\n if (dataSet === undefined || !(dataSet instanceof Array) || dataSet.length === 0 || (dataSet.length === 1 && (dataSet[0] === undefined || AttrValueReader.read(dataSet[0]) === undefined))) // chyba dat\r\n return;\r\n\r\n if (dataSet[0] || dataSet.length > 1)\r\n item.innerHTML = await this.parentColumn.formatValue(dataSet);\r\n else\r\n item.innerHTML = \"\";\r\n }\r\n\r\n protected override _createContentElement(): HTMLElement {\r\n if (this.parentColumn.isEditable) {\r\n return createElement({ type: \"span\" });\r\n }\r\n\r\n const innerElement = createElement({ type: \"a\", classes: \"lovTemplate\", attrs: { \"role\": \"button\" } });\r\n innerElement.addEventListener(\"click\", () => {\r\n this.parentColumn.callEvent(\"openDetailForm\", {\r\n id: innerElement.closest(\".DataRow\").getAttribute(\"datakey\"),\r\n });\r\n });\r\n return innerElement;\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { Globalization } from \"../../../../Global/Dom/Globalization\";\r\nimport { AttrValueReader } from \"../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { IOWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DefaultEditTemplate } from \"../Templates/DataTypeEditTemplates/DefaultEditTemplate\";\r\nimport { LOVTemplate } from \"../Templates/DataTypeTemplates/LOVTemplate\";\r\nimport { Column } from \"./Column\";\r\nimport { IColumnDefinition, IColumnParameters, ILovColumnParameters } from \"./ColumnFactory\";\r\n\r\nexport class LovColumn extends Column {\r\n //#region Methods\r\n private _showAttrs: string[];\r\n\r\n public get showAttrs(): string[] {\r\n return this._showAttrs;\r\n }\r\n\r\n protected static override get observedAttributes(): string[] {\r\n return [\"data-showattrs\"].concat(Column.observedAttributes);\r\n }\r\n\r\n public override async formatValue(data: IAttrValue | IAttrValue[]): Promise<string> {\r\n let frmVal: string;\r\n if (data instanceof Array) {\r\n let values: IAttrValue[];\r\n if (data.length === 1) {\r\n const firstValue = AttrValueReader.read(data[0]);\r\n values = firstValue instanceof IOWObject ? await firstValue.getValues(this._showAttrs) : data;\r\n } else {\r\n values = data;\r\n }\r\n frmVal = values.map((item) => StringUtils.stringToHTMLText(Globalization.formatValue(AttrValueReader.read(item)))).filter((item) => item.trim().length > 0)\r\n .join(\"</span><span> | </span><span class='lov-attribute'>\");\r\n } else {\r\n frmVal = StringUtils.stringToHTMLText(Globalization.formatValue(AttrValueReader.read(data)));\r\n }\r\n return `<span class='lov-attribute first-attr'>${frmVal}</span>`;\r\n }\r\n\r\n /**\r\n * Zinicializuje data sloupce\r\n * @param definition - definice sloupce\r\n * @param params - dodatečné parametry\r\n */\r\n public override initialize(definition: IColumnDefinition, params?: IColumnParameters): void {\r\n super.initialize(definition, params);\r\n\r\n if (params != null && params instanceof ILovColumnParameters)\r\n this._additionalParameters = params;\r\n\r\n // Zpracujeme ihned, šahá se na něj během vytváření sloupců při plnění dataSource (ještě nemusel proběhnout attributeChangedCallback)\r\n this._parseShowAttrs(definition.showAttrs);\r\n }\r\n\r\n /**\r\n * Zpracuje vstupní pole atributů ke zobrazení\r\n * @param showAttrs\r\n */\r\n protected _parseShowAttrs(showAttrs: string[]): void {\r\n if (showAttrs == null) {\r\n return;\r\n }\r\n\r\n if (showAttrs.length === 0) {\r\n this.attrNames = [this.attrName];\r\n\r\n return;\r\n }\r\n\r\n const attributes: string[] = [];\r\n\r\n for (const subattr of showAttrs) {\r\n attributes.push(`${this.attrName}.${subattr}`);\r\n }\r\n\r\n this.attrNames = attributes;\r\n this._showAttrs = showAttrs;\r\n\r\n this.dispatchEvent(new CustomEvent(\"dataColumnRefresh\", {\r\n detail: {\r\n attrName: this.attrName,\r\n attrNames: this.attrNames,\r\n column: this,\r\n },\r\n }));\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this._showAttrs = [];\r\n this.itemTemplate = new LOVTemplate();\r\n this.editItemTemplate = new DefaultEditTemplate();\r\n }\r\n\r\n protected override attributeChangedCallback(attrName: string, oldVal: string, newVal: string): void {\r\n super.attributeChangedCallback(attrName, oldVal, newVal);\r\n\r\n switch (attrName) {\r\n case \"data-showattrs\":\r\n {\r\n this._parseShowAttrs(newVal ? newVal.split(\";\") : null);\r\n break;\r\n }\r\n }\r\n }\r\n //#endregion HTMLElement\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-lovcolumn\", LovColumn);\r\n","import { IMasterObjectRequest } from \"./LOVColumn\";\r\n\r\nexport interface IRequiresMasterObject {\r\n //registerEventListener(type: \"masterObjectRequest\", listener: (ev: IMasterObjectRequest) => any, customId?: string): void;\r\n registerEventListener(type: string, listener: (ev: Event) => any, customId?: string): void;\r\n\r\n addEventListener(type: \"masterObjectRequest\", listener: (ev: IMasterObjectRequest) => any, useCapture?: boolean): void;\r\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;\r\n\r\n requiresMasterObject: boolean; // pouze pomocná property, jinak by nešlo rozhraní identifikovat\r\n}\r\n\r\nexport class IRequiresMasterObject {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n typeof instance.registerEventListener === \"function\" &&\r\n typeof instance.addEventListener === \"function\" &&\r\n Reflect.has(instance, \"requiresMasterObject\");\r\n }\r\n}\r\n","export interface IRecordIdentification {\r\n readonly className: string;\r\n readonly id: number | string; // TODO: OWObjectId\r\n}\r\n\r\nexport class IRecordIdentification {\r\n private static _properties: (keyof IRecordIdentification)[] = [\"className\", \"id\"];\r\n private static _methods: (keyof IRecordIdentification)[] = [];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" &&\r\n this._properties.every((value) => Reflect.has(instance, value)) &&\r\n this._methods.every(value => typeof instance[value] === \"function\");\r\n }\r\n}\r\n","import throttle, { debounce as lodashDebounce } from \"lodash.throttle\";\r\n\r\nimport { GlobalContext } from \"../GlobalContext\";\r\nimport { Deferred, PromiseUtils } from \"../Promises/PromiseUtils\";\r\n\r\n/**\r\n * Synchronní callback funkce\r\n * @includeToDoc\r\n */\r\nexport interface ISyncCallbackFunction {\r\n (...args: any[]): void;\r\n}\r\n\r\n/**\r\n * Asynchronní callback funkce\r\n * @includeToDoc\r\n */\r\nexport interface IAsyncCallbackFunction {\r\n (...args: any[]): Promise<void>;\r\n}\r\n\r\n/**\r\n * Asynchronní callback funkce, s možností pozdějíšho zrušení volání\r\n * @includeToDoc\r\n */\r\nexport interface IAsyncCancelableCallbackFunction {\r\n callback: (...args: any[]) => Promise<void>;\r\n cancel: () => void;\r\n}\r\n\r\n/**\r\n * Pomocné metody pro práci s funkcemi\r\n * @includeToDoc\r\n */\r\nexport class FunctionUtils {\r\n /**\r\n * Zabalí funkci do debounced volání. Limituje tak počet volání stejné funkce v určitém časovém úseku na jediné.\r\n * Pokud byla funkce volána poprvé spustí se časovač pro její provedení. Pokud je funkce zavolána znovu v během tohoto limitu je časovač vynulován a funkce se odloží o stejnou dobu. Teprve pokud v časovém intervalu nepřijde další nové volání, je funkce provedena.\r\n * @param callback Funkce, která má být zavolána\r\n * @param wait Časový limit v ms.\r\n * @deprecated použít debounce z lodash.throttle\r\n */\r\n public static debouncedFunction(callback: ISyncCallbackFunction, wait: number = 50): ISyncCallbackFunction {\r\n const wrapper = new DebouncedFunction(callback, wait);\r\n return (args) => wrapper.callback(args);\r\n }\r\n\r\n /**\r\n * Zabalí asynchronní funkci do debounced volání. Limituje tak počet volání stejné funkce v určitém časovém úseku na jediné. Umožňuje čekat na skutečné doběhnutí asynchronní funkce.\r\n * Pokud byla funkce volána poprvé spustí se časovač pro její provedení. Pokud je funkce zavolána znovu v během tohoto limitu je časovač vynulován a funkce se odloží o stejnou dobu. Teprve pokud v časovém intervalu nepřijde další nové volání, je funkce provedena.\r\n * @param callback Funkce, která má být zavolána\r\n * @param wait Časový limit v ms.\r\n */\r\n public static debouncedFunctionAsync(callback: IAsyncCallbackFunction, wait: number = 50): IAsyncCallbackFunction {\r\n const wrapper = new DebouncedFunctionAsync(callback, wait);\r\n return (args) => wrapper.callback(args);\r\n }\r\n\r\n /**\r\n * Zabalí asynchronní funkci do debounced volání. Limituje tak počet volání stejné funkce v určitém časovém úseku na jediné. Umožňuje čekat na skutečné doběhnutí asynchronní funkce.\r\n * Pokud byla funkce volána poprvé spustí se časovač pro její provedení. Pokud je funkce zavolána znovu v během tohoto limitu je časovač vynulován a funkce se odloží o stejnou dobu. Teprve pokud v časovém intervalu nepřijde další nové volání, je funkce provedena.\r\n * Umožňuje zrušit volání callbacku pomocí vrácené funkce cancel()\r\n * @param callback Funkce, která má být zavolána\r\n * @param wait Časový limit v ms.\r\n * @returns volaný callback + funkci pro zrušení jeho volání\r\n */\r\n public static debouncedCancelableFunctionAsync(callback: IAsyncCallbackFunction, wait: number = 50): IAsyncCancelableCallbackFunction {\r\n const wrapper = new DebouncedFunctionAsync(callback, wait);\r\n return { callback: (args) => wrapper.callback(args), cancel: () => wrapper.cancel() };\r\n }\r\n\r\n /**\r\n * Limituje volání funkce max jednou za zadaný interval\r\n * @param wait Interval, v kterém funkce bude volána pouze jednou\r\n * @param immediate Příznak zda funkci provést na začátku intervalu nebo na konci\r\n */\r\n public static limitFunctionPerCall(callback: ISyncCallbackFunction, wait: number = 50, immediate: boolean = true): ISyncCallbackFunction {\r\n const wrapper = new LimitedCallFunction(callback, wait, immediate);\r\n return (args) => wrapper.callback(args);\r\n }\r\n\r\n /**\r\n * Limituje volání asynchronní funkce max jednou za zadaný interval\r\n * @param wait Interval, v kterém funkce bude volána pouze jednou\r\n * @param immediate Příznak zda funkci provést na začátku intervalu nebo na konci\r\n */\r\n public static limitFunctionPerCallAsync(callback: IAsyncCallbackFunction, wait: number = 50, immediate: boolean = true): IAsyncCallbackFunction {\r\n const wrapper = new LimitedCallFunctionAsync(callback, wait, immediate);\r\n return (args) => wrapper.callback(args);\r\n }\r\n /**\r\n * Limituje volání funkce maximálně jednou za daný interval.\r\n * @param fn Volaná funkce.\r\n * @param wait Interval v ms, ve kterém bude funkce volána pouze jednou.\r\n * @param options Umožňuje nastavit chování throttle. Nastavuje kdy se má funkce spustit - leading and/or trealing edge of timeout.\r\n */\r\n public static throttleFunctionBounded(fn: any, wait: number): { (): any; cancel: () => void; flush: () => any } {\r\n return throttle(fn, wait, { \"leading\": true, \"trailing\": true });\r\n }\r\n}\r\n/**\r\n * Abstraktní třída pro obalení funkce\r\n */\r\nabstract class FunctionWrapper {\r\n protected _timeoutToken: number | undefined | null;\r\n protected readonly _delay: number;\r\n\r\n constructor(waitDelay: number = 50) {\r\n this._delay = waitDelay;\r\n }\r\n\r\n public abstract callback(...args: any[]): void;\r\n}\r\n\r\n/**\r\n * Obal pro synchronní funkci\r\n */\r\nabstract class SyncFunctionWrapper extends FunctionWrapper {\r\n protected readonly _callback: ISyncCallbackFunction;\r\n\r\n constructor(callback: ISyncCallbackFunction, waitDelay: number = 50) {\r\n super(waitDelay);\r\n this._callback = callback;\r\n }\r\n}\r\n\r\n/**\r\n * Obal pro asynchronní funkci\r\n */\r\nabstract class AsyncFunctionWrapper extends FunctionWrapper {\r\n protected readonly _callback: IAsyncCallbackFunction;\r\n protected _deferred: Deferred<void> | undefined = undefined;\r\n\r\n constructor(callback: IAsyncCallbackFunction, waitDelay: number = 50) {\r\n super(waitDelay);\r\n this._callback = callback;\r\n }\r\n}\r\n\r\nclass DebouncedFunction extends SyncFunctionWrapper {\r\n public override callback(...args: any[]): void {\r\n if (this._timeoutToken)\r\n this._timeoutToken = null;\r\n\r\n this._timeoutToken = self.setTimeout(this._callback, this._delay, ...args);\r\n }\r\n}\r\n\r\nclass DebouncedFunctionAsync extends AsyncFunctionWrapper {\r\n public override callback(...args: any[]): Promise<void> {\r\n if (this._deferred === undefined)\r\n this._deferred = PromiseUtils.defer<void>();\r\n\r\n if (this._timeoutToken)\r\n this._timeoutToken = null;\r\n\r\n this._timeoutToken = self.setTimeout(() => {\r\n this._callback(...args)\r\n .then(() => {\r\n if (this._deferred) this._deferred.resolve();\r\n this._deferred = undefined;\r\n }).catch(e => {\r\n if (this._deferred) this._deferred.reject(e);\r\n this._deferred = undefined;\r\n });\r\n }, this._delay);\r\n\r\n return this._deferred.promise;\r\n }\r\n\r\n /**\r\n * SLouží pro zrušení volání callbacku\r\n */\r\n public cancel(): void {\r\n if (this._timeoutToken) {\r\n self.clearTimeout(this._timeoutToken);\r\n this._timeoutToken = null;\r\n if (this._deferred) {\r\n this._deferred.resolve();\r\n }\r\n this._deferred = undefined;\r\n }\r\n }\r\n}\r\n\r\nclass LimitedCallFunction extends SyncFunctionWrapper {\r\n protected readonly _immediate: boolean;\r\n\r\n constructor(callback: ISyncCallbackFunction, waitDelay: number = 50, immediate: boolean = true) {\r\n super(callback, waitDelay);\r\n this._immediate = immediate;\r\n }\r\n\r\n public override callback(...args: any[]): void {\r\n if (this._timeoutToken) //běží ochranný timer během kterého nelze opakovat volání metody\r\n return;\r\n\r\n this._timeoutToken = self.setTimeout(() => {\r\n this._timeoutToken = null;\r\n if (!this._immediate) //zavolá metodu na konci\r\n this._callback(...args);\r\n }, this._delay);\r\n if (this._immediate) //zavolá metodu na začátku\r\n this._callback(...args);\r\n }\r\n}\r\n\r\nclass LimitedCallFunctionAsync extends AsyncFunctionWrapper {\r\n protected readonly _immediate: boolean;\r\n\r\n constructor(callback: IAsyncCallbackFunction, waitDelay: number = 50, immediate: boolean = true) {\r\n super(callback, waitDelay);\r\n this._immediate = immediate;\r\n }\r\n\r\n public override callback(...args: any[]): Promise<void> {\r\n if (this._deferred === undefined)\r\n this._deferred = PromiseUtils.defer<void>();\r\n\r\n if (!this._timeoutToken) { //běží ochranný timer během kterého nelze opakovat volání metody\r\n const call = () => {\r\n this._callback(...args)\r\n .then(() => {\r\n if (this._deferred) this._deferred.resolve();\r\n this._deferred = undefined;\r\n }).catch(e => {\r\n if (this._deferred) this._deferred.reject(e);\r\n this._deferred = undefined;\r\n });\r\n };\r\n\r\n this._timeoutToken = self.setTimeout(() => {\r\n this._timeoutToken = null;\r\n if (!this._immediate) { //zavolá metodu na konci\r\n call();\r\n }\r\n }, this._delay);\r\n if (this._immediate) {\r\n call();\r\n }\r\n }\r\n return this._deferred.promise;\r\n }\r\n}\r\n\r\n//#region decorators\r\n\r\n/**\r\n * Dekorátor limituje volání funkce max jednou za zadaný interval\r\n * @param wait Interval, v kterém funkce bude volána pouze jednou\r\n * @param immediate Příznak zda funkci provést na začátku intervalu nebo na konci\r\n */\r\nexport function limitCallPerInterval(wait: number, immediate: boolean = false) {\r\n return (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\r\n //originální funkce se nebude volat\r\n if (wait <= 0) {\r\n descriptor.value = () => {\r\n // do nothing\r\n };\r\n return descriptor;\r\n }\r\n\r\n let timeout: number | null;\r\n const originalMethod = descriptor.value;\r\n descriptor.value = function(...args: any) {\r\n if (timeout) //běží ochranný timer během kterého nelze opakovat volání metody\r\n return;\r\n const later = (...args: any) => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n timeout = null;\r\n if (!immediate) //zavolá metodu na konci\r\n originalMethod.apply(this, args);\r\n };\r\n timeout = self.setTimeout(later, wait);\r\n if (immediate) //zavolá metodu na začátku\r\n originalMethod.apply(this, args);\r\n };\r\n return descriptor;\r\n };\r\n}\r\n\r\n/**\r\n * Dekorátor, který udělá funkci debounced. Pokud je taková funkce opakovaně volána v zadaném intervalu, její opakované volání se vždy odloží o zadaný interval.\r\n * @param wait Interval, o který bude další volání funkce odloženo.\r\n * @param immediate Příznak jestli funkce má být spuštěna na začátku intervalu nebo na konci.\r\n */\r\nexport function debounce(wait: number, immediate: boolean = false) {\r\n return (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\r\n descriptor.value = lodashDebounce(descriptor.value, wait, { leading: immediate, trailing: !immediate });\r\n return descriptor;\r\n };\r\n}\r\n//#endregion\r\n\r\nGlobalContext.registerType(FunctionUtils);\r\n","import { ConditionParam } from \"@multiweb/clients/dataReader\";\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport {\r\n IAttrValue,\r\n IOWClassAttributeDescription,\r\n IOWEnumAttributeDescription,\r\n IResultMessage,\r\n IRunMethodResult,\r\n} from \"@multiweb/types/contracts\";\r\nimport { CancellationToken, RequestContext } from \"@multiweb/types/multiweb\";\r\nimport { ISignatureTemplate } from \"Global/Base/Crypto/ISignatureInfo\";\r\nimport { CaseInsensitiveMap } from \"Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { Event } from \"Global/Base/Events\";\r\nimport { InvalidArgumentException } from \"Global/Base/Exceptions\";\r\nimport { UUID } from \"Global/Base/IDs/UUID\";\r\nimport { ValidationErrorType } from \"OW.Remoting/Basic/EOWExceptionsInterfaces\";\r\nimport { EOWRightEvaluationException } from \"OW.Remoting/Basic/OWExceptions\";\r\nimport {\r\n AttributeDescription,\r\n BasicDataType,\r\n IDataTypeSerialization,\r\n IOWClassDescription,\r\n} from \"OW.Remoting/Remoting/Cache/ClassDescriptionCache/Interfaces\";\r\nimport { ModelDescriptionsManager } from \"OW.Remoting/Remoting/Cache/ClassDescriptionCache/ModelDescriptionsManager\";\r\nimport { IChangedAttr, IOWObject } from \"OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { IValidationDataSimple } from \"OW.Remoting/Remoting/DataTypes/IValidationDataObject\";\r\nimport { IWorkflowMenuItem } from \"OW.Remoting/Remoting/IWorkflowManager\";\r\nimport { OWClassDescription } from \"OW.Remoting/Remoting/OWDescriptions\";\r\nimport {\r\n IImplicitFormInfo,\r\n RunMethodBaseParams,\r\n RunMethodWithParamsBaseParams,\r\n} from \"OW.Remoting/Remoting/OWManagerInterfaces\";\r\nimport { ClassItemRightTypes, ClassItemType, IClassItemRights } from \"OW.Remoting/Remoting/Rights\";\r\nimport { SerializeFuncs } from \"OW.Remoting/Remoting/Serializers\";\r\nimport { SerializerParams } from \"OW.Remoting/Remoting/types\";\r\nimport { ObjectContext } from \"UI/UI/UI/UIManagerInterfaces\";\r\nimport { convertContextFromFrameToRequest } from \"UI/UI/Utilities/SharedUIMethods\";\r\nimport { DateUtils } from \"../../../../Global/Base/Utils/DateUtils\";\r\nimport { AttrValueReader } from \"../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { Enum } from \"../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { NullOWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { OWManager } from \"../../../../OW.Remoting/Remoting/OWManager\";\r\nimport { MULTI_OBJECT_ID, MULTI_OBJECT_INSTANCE_PREFIX } from \"./types\";\r\n\r\nconst modelLogger = LazyLoadingSectionLogger.create(LoggingSection.modelDescription);\r\n\r\n/**\r\n * Objekt reprezentující vícero záznamů\r\n * @internal\r\n */\r\nexport class MEOWObject implements IMultiEditObject {\r\n private _values: CaseInsensitiveMap<any> = new CaseInsensitiveMap<IAttrValue>();\r\n private _objCache: CaseInsensitiveMap<IOWObject> = new CaseInsensitiveMap<IOWObject>();\r\n private _validationErrors: IValidationDataSimple[] = [];\r\n\r\n /** Chain promisů s probihajicimi updaty dat */\r\n private _waitForUpdatesTask: Promise<void> = Promise.resolve();\r\n private _classInfo: OWClassDescription;\r\n /** Kolekce kompozitních atributů a jejich tříd */\r\n private readonly _composites: CaseInsensitiveMap<string>;\r\n\r\n public readonly objectName: string;\r\n public readonly objectIdentity: string | undefined = undefined;\r\n public readonly instanceID: string | undefined = undefined;\r\n public readonly id: any | undefined = MULTI_OBJECT_ID;\r\n public readonly isServerSideEncrypted: boolean | undefined = undefined;\r\n public readonly isEncryptionFinalized: boolean | undefined = undefined;\r\n public readonly isClientSideEncrypted: boolean | undefined = undefined;\r\n public canEdit: boolean | undefined = undefined;\r\n public canDelete: boolean | undefined = undefined;\r\n public canExecuteActions: boolean | undefined = undefined;\r\n public isNew: boolean = false;\r\n public isChanged: boolean = false;\r\n public isTempObject: boolean = false;\r\n public isDisposed: boolean = false;\r\n private _roleIds: any[];\r\n private _editRoleIds: any[];\r\n private _deleteRoleIds: any[];\r\n\r\n public get roleIds(): any[] {\r\n return this._roleIds;\r\n }\r\n public get editRoleIds(): any[] {\r\n return this._editRoleIds;\r\n }\r\n public get deleteRoleIds(): any[] {\r\n return this._deleteRoleIds;\r\n }\r\n public hasEncryptionPassword: boolean | undefined = undefined;\r\n public attributeOnParentObject: string | undefined = undefined;\r\n public isInstanceUpdateInProgress: boolean = false;\r\n public readonly valueSet: Event<IOWObject, IChangedAttr> = new Event<IOWObject, IChangedAttr>();\r\n public readonly attributeChanged: Event<IOWObject, string> = new Event<IOWObject, string>();\r\n public readonly attributesChanged: Event<IOWObject, string[]> = new Event<IOWObject, string[]>();\r\n public readonly newSaved: Event<IOWObject, void> = new Event<IOWObject, void>();\r\n public readonly beforeSave: Event<IOWObject, void> = new Event<IOWObject, void>();\r\n public readonly saved: Event<IOWObject, void> = new Event<IOWObject, void>();\r\n public readonly dataRefreshed: Event<IOWObject, boolean> = new Event<IOWObject, boolean>();\r\n public readonly objectDecrypted: Event<IOWObject, undefined> = new Event<IOWObject, undefined>();\r\n public readonly disposed: Event<IOWObject, undefined> = new Event<IOWObject, undefined>();\r\n public readonly deleted: Event<IOWObject, undefined> = new Event<IOWObject, undefined>();\r\n public readonly validityChange: Event<any, boolean> = new Event<IOWObject, boolean>();\r\n\r\n public get isMultiEditObject(): boolean {\r\n return true;\r\n }\r\n public get classInfo(): OWClassDescription {\r\n return this._classInfo;\r\n }\r\n\r\n //@ts-ignore zatím nepodporujeme hromadnou editaci v rámci editačního kontextu\r\n private readonly _context: ObjectContext;\r\n\r\n private constructor(context: ObjectContext, objectName: string, composites: CaseInsensitiveMap<string>) {\r\n this._context = context;\r\n this.objectName = objectName;\r\n this._composites = composites;\r\n this.instanceID = MULTI_OBJECT_INSTANCE_PREFIX + UUID.generate();\r\n }\r\n\r\n private async _init(): Promise<void> {\r\n //TODO: šlo by přesunout do RM? a mělo by to význam? c1: možná to tady bude výhodnější, volá se to při každé změně výběru?? pokud ano, tak se musí dát jinam, nebo kešovat\r\n this._classInfo = await ModelDescriptionsManager.instance.getClassInfo(this.objectName) as OWClassDescription;\r\n //TODO: kešovat, asi nemá smysl ptát se to pořád dokola, když objectName se na framu nemění.\r\n const firmlyDisabledRights = await OWManager.firmlyDisabledRights(this.objectName, this._getRequestContext());\r\n const classInterfaceManipulativeRoles = await OWManager.classInterfaceManipulativeRoles(this.objectName, this._getRequestContext());\r\n this._roleIds = classInterfaceManipulativeRoles.roleIds;\r\n this._editRoleIds = classInterfaceManipulativeRoles.editRoleIds;\r\n this._deleteRoleIds = classInterfaceManipulativeRoles.deleteRoleIds;\r\n this.canEdit = !firmlyDisabledRights.edit;\r\n this.canDelete = !firmlyDisabledRights.delete;\r\n this.canExecuteActions = true; //TODO: tohle taky za normálních okolností chodí v owobjectu, co s tím? Napevno true?\r\n }\r\n\r\n private _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContext {\r\n return convertContextFromFrameToRequest(this._context, cancellationToken);\r\n }\r\n\r\n public static async createObject(context: ObjectContext, objectName: string, composites: CaseInsensitiveMap<string>): Promise<IOWObject> {\r\n const obj = new MEOWObject(context, objectName, composites);\r\n await obj._init();\r\n return obj;\r\n }\r\n\r\n public async getSerializers(ai: AttributeDescription, params?: SerializerParams): Promise<IDataTypeSerialization> {\r\n return SerializeFuncs.getTypeSerializers(ai.type, (ai as IOWEnumAttributeDescription).enumName, params);\r\n }\r\n public getEncryptionKey(_cancellationToken?: CancellationToken): Promise<CryptoKey> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public refresh(): Promise<void> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public reload(): Promise<void> {\r\n return Promise.resolve();\r\n }\r\n public waitForPendingUpdates(): Promise<void> {\r\n return this._waitForUpdatesTask;\r\n }\r\n public enqueuePendingUpdateTask(task: Promise<void>): Promise<void> {\r\n return this._waitForUpdatesTask = this._waitForUpdatesTask.then(() => task);\r\n }\r\n public decrypt(): Promise<boolean> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public async getObjectAttributeClass(attributeName: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<string> {\r\n try {\r\n const attrInfo = await MEOWObject.getAttributeInfo(this._classInfo, attributeName, this._composites, cancellationToken);\r\n\r\n if (attrInfo.basicType === BasicDataType.OWObject) {\r\n return (attrInfo as IOWClassAttributeDescription).className;\r\n }\r\n } catch (e) {\r\n // Vyjimky jsou ignorovany, atributy, ktere nebyly nalezeny nemuseli byt nalezeny z duvodu pretypovani, ktere neni mozne zjistit\r\n }\r\n\r\n return null;\r\n }\r\n public async getAttributeMetadata(attributePath: string, cancellationToken: CancellationToken = CancellationToken.none): Promise<AttributeDescription | null> {\r\n try {\r\n return await MEOWObject.getAttributeInfo(this._classInfo, attributePath, this._composites, cancellationToken);\r\n } catch (e) {\r\n // Vyjimky jsou ignorovany, atributy, ktere nebyly nalezeny nemuseli byt nalezeny z duvodu pretypovani, ktere neni mozne zjistit\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Vrátí informace o atributu dané třídy\r\n * @param startClassInfo Předá ClassDescription nebo název třídy\r\n * @param attributePath Kompletní cesta k atributu, vč. přetypování (a.b.c|d.kod)\r\n * @param cancellationToken\r\n */\r\n public static async getAttributeInfo(startClassInfo: IOWClassDescription | string, attributePath: string, composites: CaseInsensitiveMap<string>, cancellationToken: CancellationToken = CancellationToken.none): Promise<AttributeDescription> {\r\n let attrInfo: AttributeDescription = null;\r\n let classInfo: IOWClassDescription = null;\r\n\r\n if (!startClassInfo) throw new InvalidArgumentException(\"startClassInfo can't be null\");\r\n if (typeof startClassInfo === \"string\") {\r\n classInfo = await ModelDescriptionsManager.instance.getClassInfo(startClassInfo) as IOWClassDescription;\r\n } else classInfo = startClassInfo;\r\n\r\n const firstClassInfo = classInfo;\r\n const attrsList = attributePath.includes(\".\") ? attributePath.split(\".\").reverse() : [ attributePath ];\r\n\r\n while (attrsList.length > 0) {\r\n const attrNameFull = attrsList.pop();\r\n const [ attrName, typeCastClassName ] = attrNameFull.split(\"|\");\r\n\r\n if (typeCastClassName != null) { // pri pretypovani musime nacist informace z jine tridy\r\n classInfo = await ModelDescriptionsManager.instance.getClassInfo(typeCastClassName, cancellationToken);\r\n }\r\n\r\n try {\r\n attrInfo = await classInfo.getAttributeInfo(attrName);\r\n } catch (e) {\r\n attrInfo = null;\r\n }\r\n\r\n if (!attrInfo) {\r\n modelLogger.warn(`Attribute path \"${attributePath}\" on \"${firstClassInfo.className}\" not found!`);\r\n return null;//throw new EOWException(`Attribute path \"${attributePath}\" on \"${firstClassInfo.className}\" not found!`); //`\r\n }\r\n\r\n if (attrInfo.basicType === BasicDataType.OWObject) {\r\n const className = composites.get(attrName) ?? (attrInfo as IOWClassAttributeDescription).className;\r\n classInfo = await ModelDescriptionsManager.instance.getClassInfo(className, cancellationToken);\r\n } else break;\r\n }\r\n\r\n if (attrsList.length > 0) {\r\n //throw new EOWException(`Attribute path \"${attributePath}\" on \"${firstClassInfo.className}\" not found!`);\r\n modelLogger.warn(`Attribute path \"${attributePath}\" on \"${firstClassInfo.className}\" not found!`);\r\n return null;\r\n }\r\n\r\n return attrInfo;\r\n }\r\n public validate(): Promise<void> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public postponedValidate(): Promise<void> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public async getValue(attributeName: string): Promise<IAttrValue> {\r\n let value = this._values.get(attributeName);\r\n const attrInfo = await MEOWObject.getAttributeInfo(this.classInfo, attributeName, this._composites, CancellationToken.none);\r\n if (attrInfo?.basicType === BasicDataType.OWObject) {\r\n if (!(value == null || value instanceof IOWObject)) {\r\n let cacheValue = this._objCache.get(attributeName);\r\n\r\n if (cacheValue?.id !== value) cacheValue = null;\r\n if (cacheValue) value = cacheValue;\r\n else {\r\n const obj = await OWManager.getObject(value, (attrInfo as IOWClassAttributeDescription).className);\r\n this._objCache.set(attributeName, obj);\r\n\r\n value = obj;\r\n }\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n public getValues(attrNames: string[]): Promise<IAttrValue[]> {\r\n return Promise.resolve(attrNames.filter(a => this._values.has(a)).map(i => this._values.get(i) as IAttrValue));\r\n }\r\n public async getParameters(attrNames: readonly string[]): Promise<readonly ConditionParam[]> {\r\n if (attrNames == null)\r\n return null;\r\n\r\n const promises = new Array<Promise<ConditionParam>>();\r\n for (const attr of attrNames) {\r\n const prom = this.getValue(attr).then((value) => {\r\n value = AttrValueReader.read(value);\r\n\r\n if (value instanceof Date) {\r\n return DateUtils.toXsdDateTime(value);\r\n }\r\n if (value instanceof Enum) {\r\n return Number(value);\r\n }\r\n if (value instanceof NullOWObject)\r\n return null;\r\n\r\n if (value instanceof IOWObject)\r\n return value.id;\r\n\r\n return value;\r\n });\r\n promises.push(prom);\r\n }\r\n\r\n return Promise.all(promises);\r\n }\r\n public async waitForUpdateInstance(_cancellationToken?: CancellationToken): Promise<void> {\r\n // při hromadné editaci se updaty atributů neposílají samostatně, tedy není potřeba na jejich doběhnutí čekat\r\n }\r\n public setValue(attributeName: string, value: any): Promise<IOWObject> {\r\n this._values.set(attributeName, value);\r\n this.valueSet.trigger(this, { attributeName, value });\r\n this.isChanged = true;\r\n return Promise.resolve(this);\r\n }\r\n public undo(): Promise<void> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public redo(): Promise<void> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public getLinkNamesForInstance(_instanceID: string): Promise<string[]> {\r\n return Promise.resolve([]);\r\n }\r\n public delete(): Promise<IResultMessage[]> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public applyUpdates(): Promise<IResultMessage[]> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public itemRights(itemName: string, type: ClassItemType, evalRights: ClassItemRightTypes, cancellationToken: CancellationToken = CancellationToken.none): Promise<IClassItemRights> {\r\n //TODO: udělat kešování\r\n //TODO: doplnit aktivní role do requestu\r\n if (!itemName) {\r\n throw new EOWRightEvaluationException(\"\", \"Unable to evaluate rights for attribute. Attribute name is empty!\");\r\n }\r\n\r\n return OWManager.classItemsRights(this.classInfo.className, this._applyCompositeCastings(itemName), type, evalRights, this._getRequestContext(cancellationToken)).then((result) => {\r\n if (result.ExceptionText)\r\n throw new EOWRightEvaluationException(itemName, result.ExceptionText, \"\", this.objectName);\r\n return result;\r\n });\r\n }\r\n\r\n private _applyCompositeCastings(fullAttrName: string): string {\r\n if (!fullAttrName.includes(\".\"))\r\n return fullAttrName;\r\n\r\n let result = \"\";\r\n let rest = fullAttrName;\r\n\r\n do {\r\n const attrName = rest.substring(0, rest.indexOf(\".\"));\r\n rest = rest.substring(rest.indexOf(\".\") + 1, rest.length);\r\n if (this._composites.has(attrName))\r\n result = result.concat(`${attrName}|${this._composites.get(attrName)}.`);\r\n else\r\n result = result.concat(`${attrName}.`);\r\n } while (rest.includes(\".\"));\r\n\r\n return result.concat(rest);\r\n }\r\n\r\n public evaluateCondition(_conditionID: string): Promise<boolean> {\r\n return Promise.resolve(true); //TODO-rites: je to ok? Prověřit\r\n }\r\n public cancelUpdatesInProgress(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public run(_config: RunMethodBaseParams): Promise<IRunMethodResult> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public runWithParams(_config: RunMethodWithParamsBaseParams): Promise<IRunMethodResult> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public mapSignDataToTemplate(_template: ISignatureTemplate, _serializationFormat: string): Promise<object> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public wfMenu(_sort?: boolean): Promise<IWorkflowMenuItem[]> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public createCopy(): Promise<IOWObject> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public hasWf(): Promise<boolean> {\r\n return Promise.resolve(false);\r\n }\r\n public getObjectAttributeID(_attributeName: string, _cancellationToken?: CancellationToken): Promise<string> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public getImplicitForm(_attrName?: string, _conditionParameters?: string): Promise<IImplicitFormInfo> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public isAttributeReadOnly(_attrName: string): Promise<boolean> {\r\n return Promise.resolve(false);\r\n }\r\n public isAttributeEncrypted(_attrName: string): Promise<boolean> {\r\n return Promise.resolve(false);\r\n }\r\n public createSignature(_signature: string, _signedData: string, _profileId: string, _providerType: string, _providerVersion: string,\r\n _signatureSourcesEncrypted?: boolean): Promise<string> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public get isValid(): boolean {\r\n return this._validationErrors.length === 0;\r\n }\r\n\r\n public getValidationErrors(): IValidationDataSimple[] {\r\n return this._validationErrors.slice(); // shallow copy\r\n }\r\n /**\r\n * Přidá novou validační chybu\r\n * @param error Informace o validační chybě\r\n */\r\n public addError(error: IValidationDataSimple): void {\r\n const isFirstValidationError = error.error.type !== ValidationErrorType.recommendedError && !this._validationErrors.some((e) => e.error.type !== ValidationErrorType.recommendedError);\r\n\r\n this._validationErrors.push(error);\r\n //prvni validacni chyba, ktera znemoznuje ulozeni (nepatri zde recommended)\r\n if (isFirstValidationError)\r\n this.validityChange.trigger(this, false);\r\n }\r\n\r\n /**\r\n * Odstraní validační chybu\r\n * @param error chyba k odstranění\r\n */\r\n public removeError(error: IValidationDataSimple): void {\r\n const pos = this._validationErrors.findIndex((e) => e === error);\r\n if (pos < 0)\r\n return;\r\n\r\n this._validationErrors.splice(pos, 1);\r\n if (this.isValid)\r\n this.validityChange.trigger(this, true);\r\n }\r\n\r\n /**\r\n * Odstraní všechny validační chyby\r\n */\r\n public clearErrors(): void {\r\n const isValid = this.isValid;\r\n this._validationErrors = [];\r\n if (!isValid)\r\n this.validityChange.trigger(this, true);\r\n }\r\n\r\n public valueOf(): any {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public toString(): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n public async dispose(): Promise<void> {\r\n for (const obj of this._objCache.values()) {\r\n obj.dispose();\r\n }\r\n }\r\n public compare(_value: any): boolean {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n\r\n/**\r\n * Zástupný objekt, který reprezentuje vícero objektů současně (třeba při hromadném výběru)\r\n * @includeToDoc\r\n */\r\nexport interface IMultiEditObject extends IOWObject {\r\n /** Příznak, jestli se jedná o objekt zastupující skupinu objektů */\r\n readonly isMultiEditObject: boolean;\r\n}\r\n\r\nexport class IMultiEditObject {\r\n private static _properties: (keyof IMultiEditObject)[] = [\"isMultiEditObject\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && typeof instance === \"object\" && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && instance instanceof IOWObject;\r\n }\r\n}\r\n","import { IOWObject } from \"OW.Remoting/Remoting/DataTypes/IOWObject\";\r\nimport { IRecordIdentification } from \"OW.Remoting/Remoting/DataTypes/RecordIdentification\";\r\n\r\nexport class FormResult {\r\n public readonly resultType: FormResultType;\r\n public readonly resultValue: IRecordIdentification | IOWObject;\r\n\r\n constructor(resultValue: IRecordIdentification | IOWObject, formResultType: FormResultType = FormResultType.ok) {\r\n this.resultValue = resultValue;\r\n this.resultType = formResultType;\r\n }\r\n}\r\n\r\nexport enum FormResultType {\r\n ok,\r\n cancel,\r\n}\r\n","export type DeepReadonly<T> =\r\n T extends (infer R)[] ? DeepReadonlyArray<R> :\r\n T extends Function ? T :\r\n T extends object ? DeepReadonlyObject<T> :\r\n T;\r\n\r\nexport interface DeepReadonlyArray<T> extends Array<DeepReadonly<T>> {}\r\n\r\nexport type DeepReadonlyObject<T> = {\r\n readonly [P in keyof T]: DeepReadonly<T[P]>;\r\n};\r\n\r\nexport type Mutable<T> = {\r\n -readonly [P in keyof T]: T[P];\r\n};\r\n\r\nexport type DeepMutable<T> = {\r\n -readonly [P in keyof T]: T[P] extends readonly (infer U)[] ? U[] : T[P];\r\n};\r\n\r\nexport type AnyFunction<A = any> = (...input: any[]) => A;\r\nexport type AnyConstructor<A = object> = new (...input: any[]) => A;\r\nexport type Mixin<T extends AnyFunction> = InstanceType<ReturnType<T>>;\r\n","import { OpenEditWindowParams, ReactAction, ReactActionId } from \"@multiweb/types/react\";\r\nimport { IAction } from \"UI/UI.Controls/Actions/IAction\";\r\nimport { IControl } from \"UI/UI/UI/Controls/ControlInterfaces\";\r\nimport { IDisposable } from \"../../Global/Base/IDisposable\";\r\nimport { IMultiselectComponent } from \"../UI/UI/XGControls/Frames/FrameInterfaces\";\r\nimport { IFrame } from \"../UI/UI/XGControls/IFrame\";\r\n\r\nexport type AnyFunction<A = any> = (...input: any[]) => A;\r\nexport type AnyConstructor<A = object> = new (...input: any[]) => A;\r\n\r\nexport type Mixin<T extends AnyFunction> = InstanceType<ReturnType<T>>;\r\n\r\n/**\r\n * Rozhraní pro konektor propojující aplikaci a frame.\r\n */\r\nexport interface IReactFrameConnector extends IFrame, IDisposable {\r\n /** Název detail formu z definice formuláře. */\r\n readonly detailFormName: string;\r\n /** Nainicializované akce */\r\n readonly objectActions: ReadonlyArray<IAction>;\r\n /** Značí, zdali je umožněno dočítání dalších dat. */\r\n loadOnScroll: boolean;\r\n /** Inicializuje celý frame. Musí být zavoláno před jeho prvním použitím. Je možné spouštět asynchronní procesy. */\r\n initializeVisual(): Promise<void>;\r\n /** Inicializuje akce v toolbaru */\r\n initializeActions(): Promise<void>;\r\n /**\r\n * Nastaví viditelnost refresh akce.\r\n * @param isVisible Hodnota, zda je akce viditelná.\r\n */\r\n setRefreshActionVisibility(isVisible: boolean): void;\r\n /**\r\n * Nastaví viditelnost jedné akce z toolbaru.\r\n * Viditelnost akcí pro režim hromadného výběru se nastavuje v mixinu {@link HasMultiselect},\r\n * v metodě {@link HasMultiSelect.setToolbarActionEnabledVisual}.\r\n *\r\n * @param action Akce z toolbaru.\r\n * @param value Hodnota, zda je akce viditelná.\r\n */\r\n setToolbarActionEnabledVisual(action: IAction, value: boolean): void;\r\n /** Vytvoří ze seznamu akcí typu IAction nový seznam akcí typu ReactActions a vrátí jej. */\r\n getReactRowActions(): ReactAction[];\r\n /**\r\n * Zavolání execute metody na dané akci.\r\n *\r\n * @param actionId Identifikátor akce, která se má provést.\r\n * @param ids Identifikátory záznamů, pro které se má akce provést.\r\n * @param className Třída, na které se má akce provést.\r\n */\r\n executeAction(actionId: ReactActionId, ids: ReactActionId[], className: string): void;\r\n /** Zobrazení dialogu s informacemi o záznamu. Nic neprovede, pokud na frame není určen 'detailFormName'. */\r\n openDetailForm(dataObjectId: string): Promise<void>;\r\n}\r\n\r\nexport class IReactFrameConnector {\r\n private static _properties: (keyof IReactFrameConnector)[] = [\"detailFormName\", \"objectActions\", \"loadOnScroll\"];\r\n private static _methods: (keyof IReactFrameConnector)[] = [\"getReactRowActions\", \"executeAction\", \"openDetailForm\"];\r\n private static _interfaces = [IFrame, IDisposable];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._properties.every((value) => Reflect.has(instance, value)) &&\r\n this._methods.every((value) => typeof instance[value] === \"function\") &&\r\n this._interfaces.every((_interface) => instance instanceof _interface);\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro GridLayout konektor, slouží k vyrenderování elementů i když ještě nejsou ve viditelné části aplikace.\r\n */\r\nexport interface IPostInitialize {\r\n /** Funkce, která se zavolá po inicializaci vnitřních komponent. */\r\n postInitialize(): void;\r\n}\r\n\r\nexport class IPostInitialize {\r\n private static _methods: (keyof IPostInitialize)[] = [\"postInitialize\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._methods.every((value) => typeof instance[value] === \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní pro LiteListFrame konektor propojující aplikaci a frame.\r\n */\r\nexport interface ILiteListFrameConnector extends IReactFrameConnector {\r\n /** Funkce, která otevře editačního okno daného atributu v záznamu. */\r\n openAttributeEditWindow(params: OpenEditWindowParams): Promise<void>;\r\n}\r\n\r\nexport class ILiteListFrameConnector {\r\n private static _methods: (keyof ILiteListFrameConnector)[] = [\"openAttributeEditWindow\"];\r\n private static _interfaces = [IReactFrameConnector];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._methods.every((value) => typeof instance[value] === \"function\") &&\r\n this._interfaces.every((_interface) => instance instanceof _interface);\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní frame konektoru s režimem výběru více záznamů.\r\n */\r\nexport interface IReactFrameConnectorWithMultiselect extends IReactFrameConnector, IHasMultiselect\r\n{}\r\n\r\nexport class IReactFrameConnectorWithMultiselect {\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return (\r\n instance != null && instance instanceof IReactFrameConnector && instance instanceof IHasMultiselect\r\n );\r\n }\r\n}\r\n\r\nexport interface IGeneralReactFrameConnector extends IControl {\r\n renderComponent(rootElement: HTMLElement, onForm: boolean): void;\r\n}\r\n\r\nexport class IGeneralReactFrameConnector {\r\n private static _methods: (keyof IGeneralReactFrameConnector)[] = [\"renderComponent\"];\r\n private static _interfaces = [IControl];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null &&\r\n this._methods.every((value) => typeof instance[value] === \"function\") &&\r\n this._interfaces.every((_interface) => instance instanceof _interface);\r\n }\r\n}\r\n\r\n/**\r\n * Rozhraní mixinu pro režim výběru více záznamů.\r\n */\r\nexport interface IHasMultiselect extends IMultiselectComponent {\r\n /** Určuje, zda je Frame v režimu výběru více záznamů. */\r\n multiselectMode: boolean;\r\n /** Příznak, zda je označen alespoň jeden záznam. */\r\n atLeastOneRowChecked: boolean;\r\n /** Určuje, zda je na Frame povolen režim hromadného výběru. */\r\n allowMultiSelect: boolean;\r\n /**\r\n * Nastavení MultiselectModu pro connector.\r\n * Při změně MultiselectMode se aktualizuje viditelnost akcí (objectActions, multiObjectActions, ale také akcí v toolbaru).\r\n *\r\n * @param multiselectMode Nová hodnota MultiselectMódu.\r\n * @param dispatchActions určuje, zda se má změna promítnout do store. (Pokud se volá z **reactí části, musí být false**, aby nevznikl infinite loop).\r\n */\r\n setMultiselectMode(multiselectMode: boolean, dispatchActions: boolean): void;\r\n /** Přidá toolbar akce pro operace nad více záznamy. */\r\n addMultiSelectActions(): void;\r\n}\r\n\r\nexport class IHasMultiselect {\r\n private static _properties: (keyof IHasMultiselect)[] = [\r\n \"multiselectMode\",\r\n \"atLeastOneRowChecked\",\r\n ];\r\n private static _methods: (keyof IHasMultiselect)[] = [\r\n \"setMultiselectMode\",\r\n \"addMultiSelectActions\",\r\n ];\r\n private static _interfaces = [IMultiselectComponent];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && this._properties.every((value) => Reflect.has(instance, value))\r\n && this._methods.every((method) => typeof instance[method] === \"function\")\r\n && this._interfaces.every((_interface) => instance instanceof _interface);\r\n }\r\n}\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { createSetDisableLoadingAction, createUpdateMasterFrameDataSourceConditionAction } from \"@multiweb/reactCore/datasource\";\r\nimport { DataConverter } from \"Global/Base/Converters/DataConverter\";\r\nimport { IListener } from \"Global/Base/Events\";\r\nimport { AnyConstructor, Mixin } from \"Global/Base/types\";\r\nimport { ConditionOperator, StringUtils } from \"Global/Base/Utils/StringUtils\";\r\nimport { OWObject } from \"OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IActualObjectChangedEventArgs } from \"UI/UI/UI/XGControls/Frames\";\r\nimport { FrameSharedMethods } from \"UI/UI/UI/XGControls/Frames/FrameSharedMethods\";\r\nimport { IMasterableBase, IMasterableFrame } from \"../../UI/UI/XGControls/Frames/FrameInterfaces\";\r\nimport { IReactFrameConnector } from \"../types\";\r\n\r\nconst { dispatchAction } = bridge;\r\n\r\n/**\r\n * Mixin, který přidává masterFrame na ConnectorFrame.\r\n *\r\n * @param Base Base třída rozšiřující IConnectorFrame.\r\n */\r\nexport const HasMasterFrame = <T extends AnyConstructor<IReactFrameConnector & IMasterableBase>>(Base: T) =>\r\n class HasMasterFrame extends Base {\r\n /**\r\n * Obsahuje master současného framu.\r\n */\r\n public _masterFrame: IMasterableFrame = undefined;\r\n\r\n public _masterObject: OWObject;\r\n /**\r\n * Název nadřízeného framu, musí se shodovat s frameName jiného framu nebo bude prázdný.\r\n */\r\n public override masterFrameName: string | null = undefined;\r\n /**\r\n * Název vazby na nadřízený objekt.\r\n */\r\n public override masterLinkToAttr: string | null = undefined;\r\n /**\r\n * Název vazby z nadřízeného objektu, pokud není vyplněn použije se původně vybraný objekt.\r\n */\r\n public override masterAttr: string | null = undefined;\r\n /**\r\n * Názvy aplikačních atributů, v nichž jsou hodnoty k argumentům podmínky.\r\n */\r\n public conditionParamsAttrs: string[] | null = undefined;\r\n\r\n public override get masterFrame(): IMasterableFrame {\r\n return this._masterFrame;\r\n }\r\n\r\n public override set masterFrame(masterFrame: IMasterableFrame) {\r\n if (this.element == null) // disposed\r\n return;\r\n\r\n this.masterFrame?.actualObjectChanged.remove(this._masterObjectChangeListener);\r\n\r\n this._masterFrame = masterFrame;\r\n\r\n this.masterFrame?.actualObjectChanged.add(this._masterObjectChangeListener);\r\n }\r\n\r\n public override get masterObject(): OWObject {\r\n if (this.masterFrame) {\r\n return this.masterFrame.actualObject;\r\n }\r\n if (this.isMainFrame && this.ownerForm?.masterObject) {\r\n return this.ownerForm.masterObject;\r\n }\r\n return this._masterObject;\r\n }\r\n\r\n public override set masterObject(v: OWObject) {\r\n this._masterObject = v;\r\n }\r\n\r\n /** Určuje, zda je na masterovi vybrán nějaký záznam */\r\n public get isMasterRecordSelected(): boolean {\r\n return this.masterFrame?.actualObject && !this.masterFrame.actualObject.isNew;\r\n }\r\n\r\n public _masterObjectChangeListener: IListener = async (\r\n _sender: IMasterableFrame,\r\n _e: IActualObjectChangedEventArgs,\r\n refreshOnChange: boolean = true,\r\n ) => {\r\n if (!this.isInitialized)\r\n return;\r\n\r\n let condition = \"\";\r\n if (this.isMainFrame) {\r\n // přidá se podmínka vazby na nadřízený záznam\r\n if (this.ownerForm.masterLinkToAttr && this.ownerForm.masterObject && !this.ownerForm.masterObject.isNew)\r\n condition = this.ownerForm.masterLinkToAttr + \"=\" + this.ownerForm.masterObject.id; // v masterObject uz je koncovy objekt po uplatneni pripadneho MasterAttr\r\n\r\n // přidá se podmínka čtení pro formulář, pokud je nastavená (má přednost)\r\n if (this.ownerForm.formCondition)\r\n condition = StringUtils.combineConditions(ConditionOperator.and, condition, this.ownerForm.formCondition);\r\n\r\n this._dispatchMasterFrameConditionChange(FrameSharedMethods.appendReadRightCondition(condition, this), true, refreshOnChange);\r\n } else {\r\n if (this.masterFrame && this.masterFrame.actualObject == null) {\r\n this._dispatchDisableLoadingChange(true);\r\n return;\r\n }\r\n\r\n if (this.isMasterRecordSelected) {\r\n const masterId = await this._getMasterId();\r\n const conditionParams = await FrameSharedMethods.createReaderConditionParams(this);\r\n this._dispatchMasterFrameConditionChange(`${this.masterLinkToAttr}=${masterId}`, true, refreshOnChange, conditionParams);\r\n }\r\n }\r\n };\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n this.masterFrameName = this.element.getAttribute(\"data-masterframe\");\r\n this.masterAttr = this.element.getAttribute(\"data-masterattr\");\r\n this.useMasterContext = DataConverter.toBoolean(this.element.getAttribute(\"data-UseMasterContext\"));\r\n this.masterLinkToAttr = this.element.getAttribute(\"data-masterlinktoattr\") || \"ID\";\r\n\r\n const conditionParamsString = this.element.getAttribute(\"data-conditionparamsstring\");\r\n if (conditionParamsString) {\r\n this.conditionParamsAttrs = conditionParamsString.split(\";\");\r\n }\r\n }\r\n\r\n public async _getMasterId(): Promise<any> {\r\n if (this.masterAttr && this.masterAttr !== \"\") {\r\n return await this.masterFrame.actualObject.getValue(this.masterAttr + \".ID\");\r\n }\r\n return this.masterFrame.actualObject.id;\r\n }\r\n\r\n public _getConditionParamsAttributes(): string[] {\r\n if (this.masterAttr && this.masterAttr !== \"\") {\r\n return this.conditionParamsAttrs.map(attr => this.masterAttr + \".\" + attr);\r\n }\r\n return this.conditionParamsAttrs;\r\n }\r\n\r\n public async _getConditionParamsValues(): Promise<ConditionParams> {\r\n const conditionParamsAttrs = this._getConditionParamsAttributes();\r\n const attrValues = await this.masterFrame.actualObject.getValues(conditionParamsAttrs);\r\n return attrValues.map(param => param.toString());\r\n }\r\n\r\n public _dispatchMasterFrameConditionChange(condition: string, isMasterRecordSelected: boolean, refreshOnChange: boolean, conditionParams?: ConditionParams): void {\r\n dispatchAction(createUpdateMasterFrameDataSourceConditionAction(this.element.id, condition, conditionParams, isMasterRecordSelected, refreshOnChange));\r\n }\r\n\r\n public _dispatchDisableLoadingChange(value: boolean): void {\r\n dispatchAction(createSetDisableLoadingAction(this.element.id, value));\r\n }\r\n\r\n public override async initializeVisual(): Promise<void> {\r\n await super.initializeVisual();\r\n\r\n this._masterObjectChangeListener(undefined, undefined, false);\r\n }\r\n\r\n public override dispose(): void {\r\n this.masterFrame?.actualObjectChanged.remove(this._masterObjectChangeListener);\r\n super.dispose();\r\n }\r\n };\r\n\r\nexport type HasMasterFrame = Mixin<typeof HasMasterFrame>;\r\n","/**\r\n * Úložiště všech podmínek z různých míst,\r\n * zatím implementováno v paměti, ale časem se to může změnit\r\n */\r\nexport class ConditionStore {\r\n private static _allConditions: Map<string, string> = new Map<string, string>();\r\n private static _localEvaluable: Set<string> = new Set();\r\n\r\n /**\r\n * Vloží podmínku do úložiště\r\n * @param id identifikátor podmínky\r\n * @param expression tělo podmínky\r\n * @param localEvaluable zda lze vyhodnocovat lokálně na klientovi\r\n */\r\n public static addCondition(id: string, expression: string, localEvaluable: boolean): void {\r\n if (localEvaluable)\r\n ConditionStore._localEvaluable.add(id);\r\n\r\n ConditionStore._allConditions.set(id, expression);\r\n }\r\n\r\n /**\r\n * Zjišťuje, zda podmínka lze vyhodnocovat lokálně na klientovi\r\n * @param id identifikátor podmínky\r\n */\r\n public static isLocalEvaluable(id: string): boolean {\r\n return ConditionStore._localEvaluable.has(id);\r\n }\r\n\r\n /**\r\n * Získá tělo podmínky\r\n * @param id identifikátor podmínky\r\n */\r\n public static getCondition(id: string): string | undefined {\r\n return this._allConditions.get(id);\r\n }\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { HeadersBuilder } from \"Global/Base/Comunication/HeadersBuilder\";\r\nimport { ErrorHandler } from \"UI/Errors\";\r\nimport { HTTPRequest, IHTTPResult } from \"../../Global/Base/Comunication/HTTPRequest\";\r\nimport { HTTPStatus } from \"../../Global/Base/Comunication/HTTPStatus\";\r\nimport { InjectedProperty } from \"../../Global/Base/DIContainer\";\r\nimport { InvalidOperationException } from \"../../Global/Base/Exceptions\";\r\nimport { GlobalContext } from \"../../Global/Base/GlobalContext\";\r\nimport { PromiseUtils } from \"../../Global/Base/Promises/PromiseUtils\";\r\nimport { DateUtils } from \"../../Global/Base/Utils/DateUtils\";\r\nimport { StringUtils } from \"../../Global/Base/Utils/StringUtils\";\r\nimport { createElement } from \"../../UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { LocalizedStringBuilder } from \"../../UI/UI/UI/DataBuilders/LocalizedStringBuilder\";\r\nimport { MessageWindow } from \"../../UI/UI/UI/MessageWindow\";\r\nimport { UIManager } from \"../../UI/UI/UI/UIManager\";\r\nimport { ApplicationStorage, AppStorageItemType } from \"./ApplicationStorage\";\r\nimport { HEADER_ROLES_NAME, HEADER_TRANSACTION_CONTEXT_ID_NAME } from \"./Constants\";\r\nimport { ITableExportParams } from \"./OWManagerInterfaces\";\r\nimport { EMPTY_REQUEST_CONTEXT, RequestContext } from \"./RequestContext\";\r\n\r\n/**\r\n * Podporované typy tisku\r\n */\r\nexport enum SupportedReportFormats {\r\n PDF,\r\n Word,\r\n Excel,\r\n}\r\n\r\n/**\r\n * Podporované typy exportu\r\n */\r\nexport enum SupportedExportFormats {\r\n CSV,\r\n Excel2007,\r\n}\r\n\r\nconst API_REPORT_URL_PART = \"api/v01/as/reports\";\r\n\r\nexport class ExportManagerWorker implements IExportManagerWorker {\r\n /**\r\n * Interval čekání mezi jednotlivými dotazy na zjištění výsledku tisku\r\n */\r\n private readonly _backoffInterval = 3000;\r\n private readonly _webServiceUrl: string;\r\n private readonly _useLeagecyApi: boolean;\r\n\r\n /**\r\n * @param webServiceUrl Url webové služby, která provádí exporty\r\n * @param useLeagecyApi Zda se má komunikovat se starým rozhraním služby\r\n */\r\n constructor(webServiceUrl: string, useLeagecyApi: boolean) {\r\n this._webServiceUrl = webServiceUrl;\r\n this._useLeagecyApi = useLeagecyApi;\r\n }\r\n\r\n protected _createApiUrl(handlerUrlPart: string, parameters?: string): string {\r\n return `${this._webServiceUrl}/${handlerUrlPart}${parameters ? `?${parameters}` : \"\"}`;\r\n }\r\n\r\n /**\r\n * Tisk sestavy, spuštěný z komponenty ReportAction\r\n * @param instanceID Instance master objektu\r\n * @param reportName Název reportu, ze kterého bude vytvářen výstup\r\n * @param reportLanguage Použitý jazyk (cs, en, ...)\r\n * @param outputType pdf, docx, ...\r\n * @param readVersioned Zda bude použit verzovaný záznam\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public printReport(instanceID: string, reportName: string, reportLanguage: string, outputType: string, readVersioned?: boolean, requestContext?: RequestContext): Promise<void> {\r\n let urlParameters = `iid=${instanceID}&file=${encodeURIComponent(reportName)}`;\r\n\r\n if (reportLanguage) {\r\n urlParameters += `&languagename=${reportLanguage}`;\r\n } else if (ApplicationStorage.get(AppStorageItemType.reportLanguage)) {\r\n urlParameters += `&languagename=${ApplicationStorage.get(AppStorageItemType.reportLanguage)}`;\r\n }\r\n\r\n if (outputType)\r\n urlParameters += `&output=${outputType}`;\r\n\r\n if (readVersioned)\r\n urlParameters += `&readVersioned=${readVersioned}`;\r\n\r\n urlParameters = ExportManagerWorker._appendRequestContextParam(urlParameters, requestContext, true);\r\n\r\n const url = this._createApiUrl(this._useLeagecyApi ? \"handlers/exports/report.aspx\" : `${API_REPORT_URL_PART}/report`, urlParameters);\r\n return this._sendPrintRequest(url, StringUtils.compareCaseInsensitive(outputType, SupportedReportFormats[SupportedReportFormats.PDF]), undefined, requestContext);\r\n }\r\n\r\n /**\r\n * Tisk jednoho konkrétního záznamu\r\n * @param id Id záznamu\r\n * @param frameName Název framu\r\n * @param formName Název formu, na kterém záznam leží\r\n * @param readVersioned Zda bude použit verzovaný záznam\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public printRecord(id: string, className: string, frameName: string, formName: string, readVersioned?: boolean, requestContext?: RequestContext): Promise<void> {\r\n const reportType = ApplicationStorage.get(AppStorageItemType.reportType);\r\n let urlParameters = `detailObjects=${frameName}:${id}&objectName=${className}&formName=${encodeURIComponent(formName)}&readVersioned=${readVersioned}&mode=1&reportType=${reportType}`;\r\n\r\n urlParameters = ExportManagerWorker._appendRequestContextParam(urlParameters, requestContext, true);\r\n\r\n const url = this._createApiUrl(this._useLeagecyApi ? \"handlers/exports/detailReport.aspx\" : `${API_REPORT_URL_PART}/detail-report`, urlParameters);\r\n\r\n return this._sendPrintRequest(url, StringUtils.compareCaseInsensitive(reportType, SupportedReportFormats[SupportedReportFormats.PDF]), undefined, requestContext);\r\n }\r\n\r\n /**\r\n * Tisk seznamu\r\n * @param params Data nutná pro spuštění tisku\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n // Pro předání dat na server je vytvořen dočasný formulář s inputem \"data\", který je po odeslání smazán\r\n public printFrame(params: ITableExportParams, requestContext?: RequestContext): Promise<void> {\r\n const urlParameters = ExportManagerWorker._appendRequestContextParam(\"\", requestContext, false);\r\n\r\n const url = this._createApiUrl(this._useLeagecyApi ? \"handlers/exports/frameReport.aspx\" : `${API_REPORT_URL_PART}/frame-report`, urlParameters);\r\n\r\n return this._sendPrintRequest(url, StringUtils.compareCaseInsensitive(params.exportType, SupportedReportFormats[SupportedReportFormats.PDF]), params, requestContext);\r\n }\r\n\r\n /**\r\n * Pošle dotaz na vytvoření sestavy, počká na její vytvoření a zobrazí ji nebo nabídne ke stažení\r\n * @param printUrl Adresa dotazu pro zahájení tisku\r\n * @param openInNewWindow Zda se má výsledek otevřít v novém okně\r\n * @param params Volitelné parametry dotazu na zahájení tisku\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n protected async _sendPrintRequest(printUrl: string, openInNewWindow: boolean, params?: object, requestContext: RequestContext = EMPTY_REQUEST_CONTEXT): Promise<void> {\r\n try {\r\n UIManager.instance.showLoader();\r\n const { cancellationToken } = requestContext;\r\n let request: IHTTPResult = null;\r\n try {\r\n request = await HTTPRequest.universalRequest({\r\n requestMethod: params != null ? \"POST\" : \"GET\",\r\n url: printUrl,\r\n data: JSON.stringify(params),\r\n readResponseInfos: true,\r\n okStatusSet: [HTTPStatus.ok, HTTPStatus.preconditionFailed],\r\n headers: ExportManagerWorker._createHeaders(requestContext),\r\n }, cancellationToken);\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n }\r\n\r\n if (request == null)\r\n throw new InvalidOperationException(`Request to url '${printUrl}' failed but didn't end with an exception`); //\r\n\r\n if (request.status === HTTPStatus.preconditionFailed) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-665842\"), \"GUI-665841\"); // Tisk nelze dokončit; Požadovaná sestava obsahuje příliš mnoho sloupců\r\n return;\r\n }\r\n\r\n const response: IPrintInfoDTO | null = request.response ? JSON.parse(request.response) as IPrintInfoDTO : null;\r\n\r\n if (!response || response.reportInDispatcher == null)\r\n throw new InvalidOperationException(`Received invalid response from url '${printUrl}'`); //`\r\n\r\n let fileUrl: string;\r\n\r\n if (response.reportInDispatcher) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-665801\"), \"GUI-665800\"); // Tisk se připravuje; Po dokončení bude sestava automaticky stažena\r\n\r\n // u tisku na dispatcheru se čeká pomocí handleru taskresult na dokončení úkolu\r\n let urlParameters = `taskId=${response.taskID}`;\r\n urlParameters = ExportManagerWorker._appendRequestContextParam(urlParameters, requestContext, true);\r\n fileUrl = this._createApiUrl(this._useLeagecyApi ? \"handlers/exports/taskresult.aspx\" : \"api/v01/as/data-trans/task-result\", urlParameters);\r\n params = undefined;\r\n\r\n if (!(await this._waitForPrintDone(fileUrl, requestContext)))\r\n return;\r\n } else {\r\n // jinak se tiskne přímo na aplikáči\r\n fileUrl = printUrl + (printUrl.indexOf(\"?\") !== -1 ? \"&\" : \"?\") + \"printReport=true\"; // zařídí, že se tisk začne opravdu provádět\r\n }\r\n\r\n if (openInNewWindow) {\r\n this._openWindow(fileUrl, params);\r\n } else {\r\n this._downloadResponse(fileUrl, params);\r\n }\r\n } catch (e) {\r\n ErrorHandler.instance.handleError(e);\r\n }\r\n }\r\n\r\n protected _openWindow(url: string, params?: object): void {\r\n if (params == null) {\r\n window.open(url, undefined, \"toolbar=no,menubar=no,resizable=yes\");\r\n return;\r\n }\r\n\r\n // pokud je potřeba posílat dodatečné parametry, tak se musí výsledek do okna posílat přes form, který odešle potřebná dodatečná data\r\n const target = Date.now().toString(36); // Aby se nepřepisoval obsah již otevřených oken\r\n const form = this._createForm(url, params);\r\n form.target = target;\r\n document.body.appendChild(form);\r\n\r\n window.open(\"\", target, \"toolbar=no,menubar=no,resizable=yes\"); // Pokud by se otevíralo přímo na formu přes \"_blank\" nebo atribut action, tak se otevře v tabu a ne v okně\r\n (form as HTMLFormElement).submit();\r\n document.body.removeChild(form);\r\n }\r\n\r\n protected _downloadResponse(url: string, params?: object): void {\r\n const iframe = document.createElement(\"iframe\");\r\n iframe.style.display = \"none\";\r\n document.body.appendChild(iframe);\r\n\r\n if (params == null) {\r\n iframe.src = url;\r\n return;\r\n }\r\n\r\n // pokud je potřeba posílat dodatečné parametry, tak se musí dotaz udělat přes form, který odešle potřebná dodatečná data\r\n const form = this._createForm(url, params);\r\n\r\n iframe.contentDocument.body.appendChild(form);\r\n\r\n (form as HTMLFormElement).submit();\r\n }\r\n\r\n /**\r\n * Vytvoří form element s jedním inputem\r\n * @param url Adresa pro odeslání formuláře\r\n * @param params Parametry předané do inputu\r\n */\r\n protected _createForm(url: string, params?: object): HTMLFormElement {\r\n const form = createElement({ type: \"form\", attrs: { \"action\": url, \"method\": \"POST\" }, css: { display: \"none\" } }) as HTMLFormElement;\r\n\r\n const input = createElement({ type: \"input\", attrs: { \"type\": \"hidden\", \"name\": \"data\" } }) as HTMLInputElement;\r\n input.value = JSON.stringify(params);\r\n\r\n form.appendChild(input);\r\n\r\n return form;\r\n }\r\n\r\n /**\r\n * Čeká na dokončení tisku na dispatcheru\r\n * @param url Adresa pro dotazování\r\n * @param ct Umožňuje stornování čekání\r\n */\r\n protected async _waitForPrintDone(url: string, requestContext: RequestContext = EMPTY_REQUEST_CONTEXT): Promise<boolean> {\r\n try {\r\n for (;;) {\r\n // nejdříve se udělá preflight HEAD dotaz na stav tisku\r\n const response = await HTTPRequest.universalRequest({\r\n requestMethod: \"HEAD\",\r\n url: url,\r\n readResponseInfos: true,\r\n okStatusSet: [HTTPStatus.ok, HTTPStatus.accepted],\r\n headers: ExportManagerWorker._createHeaders(requestContext),\r\n\r\n }, requestContext.cancellationToken);\r\n\r\n if (response.status === HTTPStatus.accepted) {\r\n await PromiseUtils.delay(this._backoffInterval, requestContext.cancellationToken);\r\n continue;\r\n }\r\n\r\n return true;\r\n }\r\n } catch (e) {\r\n ErrorHandler.instance.handleError(e);\r\n return false;\r\n }\r\n }\r\n\r\n private static _createHeaders(requestContext: RequestContext = EMPTY_REQUEST_CONTEXT): HeadersBuilder {\r\n const roles = AppContext.instance.configuration.legacyActiveRoles ? AppContext.instance.activeUserRolesIds : requestContext.roles;\r\n const getTransactionContextId = requestContext.getTransactionContextId;\r\n const transationContextId = getTransactionContextId ? getTransactionContextId() : undefined;\r\n if (roles?.length || transationContextId) {\r\n const headers = new HeadersBuilder(HTTPRequest.jsonHeaders);\r\n if (roles?.length) {\r\n headers.set(HEADER_ROLES_NAME, roles.join(\";\"));\r\n }\r\n if (transationContextId) {\r\n headers.set(HEADER_TRANSACTION_CONTEXT_ID_NAME, transationContextId);\r\n }\r\n return headers;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Export seznamu\r\n * @param params Data nutná pro spuštění exportu\r\n * @param ct Umožňuje stornování\r\n * @param requestContext Viz {@link RequestContext}\r\n */\r\n public async exportFrame(params: ITableExportParams, requestContext?: RequestContext): Promise<void> {\r\n let response: IHTTPResult = null;\r\n\r\n UIManager.instance.showLoader();\r\n\r\n const url = this._useLeagecyApi ? \"handlers/exports/export.aspx\" : \"api/v01/as/exports/export\";\r\n const urlParameters = ExportManagerWorker._appendRequestContextParam(\"\", requestContext, false);\r\n\r\n try {\r\n response = await HTTPRequest.universalRequest({\r\n requestMethod: \"POST\",\r\n url: this._createApiUrl(url, urlParameters),\r\n readResponseInfos: true,\r\n data: JSON.stringify(params),\r\n responseType: \"blob\",\r\n headers: ExportManagerWorker._createHeaders(requestContext),\r\n }, requestContext?.cancellationToken);\r\n } catch (exception) {\r\n ErrorHandler.instance.handleError(exception);\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n }\r\n\r\n if (response == null) {\r\n return;\r\n }\r\n\r\n const contentHeader = response.getResponseHeader(\"Content-Disposition\");\r\n let fileName = DateUtils.getSpecificDate(0); // Default, když nic nepřijde v hlavičce \"Content-Disposition\"\r\n\r\n if (contentHeader) {\r\n const headerParts = contentHeader.split(\"filename=\");\r\n\r\n if (headerParts.length === 2) {\r\n fileName = headerParts[1].substr(1).slice(0, -1); // Nalezený název souboru bez uvozovek\r\n }\r\n }\r\n\r\n const link = createElement({ type: \"a\", attrs: { \"href\": window.URL.createObjectURL(new File([response.response], fileName, { type: response.contentType })), \"download\": fileName } }) as HTMLLinkElement;\r\n\r\n top.document.body.appendChild(link); // Pokud by byl vložený do iframe, tak nebude fungovat ve FF bez přidání \"blob:\" do CSP (testováno ve verzi 61)\r\n\r\n link.click();\r\n\r\n top.document.body.removeChild(link);\r\n }\r\n\r\n private static _appendRequestContextParam(paramUrl: string, requestContext: RequestContext, withAmpersand: boolean): string {\r\n if (requestContext?.getTransactionContextId()) {\r\n paramUrl += `${withAmpersand ? \"&\" : \"\"}ContextID=${requestContext.getTransactionContextId()}`;\r\n }\r\n return paramUrl;\r\n }\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n */\r\nexport interface IExportManagerWorker {\r\n printReport(instanceID: string, reportName: string, reportLanguage: string, outputType: string, readVersioned?: boolean, requestContext?: RequestContext): Promise<void>;\r\n printRecord(id: string, className: string, frameName: string, formName: string, readVersioned?: boolean, requestContext?: RequestContext): void;\r\n printFrame(params: ITableExportParams, requestContext?: RequestContext): void;\r\n exportFrame(params: ITableExportParams, requestContext?: RequestContext): Promise<void>;\r\n}\r\n\r\nexport class IExportManagerWorker {\r\n private static _properties = [\"printReport\", \"printRecord\", \"printFrame\", \"exportFrame\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !IExportManagerWorker._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\nexport class ExportManager {\r\n private static get _instance(): IExportManagerWorker {\r\n return {} as any;\r\n }\r\n\r\n /**\r\n * Instance v kontextu současného okna\r\n */\r\n public static get instance(): IExportManagerWorker {\r\n return ExportManager._instance;\r\n }\r\n}\r\n\r\nInjectedProperty.bindProperty(ExportManager, \"_instance\", IExportManagerWorker);\r\nGlobalContext.registerType(ExportManager);\r\n\r\ninterface IPrintInfoDTO {\r\n reportInDispatcher: boolean;\r\n taskID: string | null;\r\n}\r\n","import { Action } from \"./Action\";\r\nimport { IActionWithData, IDataForAction } from \"./IAction\";\r\n\r\nexport class ActionWithData extends Action implements IActionWithData {\r\n public data: IDataForAction;\r\n}\r\n","import { GlobalContext } from \"../GlobalContext\";\r\n\r\nexport class SetUtils {\r\n /**\r\n * Vrátí poslední objekt z předané sady. Pokud je sada prázdná vrací undefined\r\n * @param set Sada\r\n */\r\n public static last<R>(set: Set<R> | ReadonlySet<R>): R | undefined {\r\n let retValue: R | undefined = undefined;\r\n for (retValue of set) ;\r\n return retValue;\r\n }\r\n\r\n /**\r\n * Vrátí první objekt z předané sady. Pokud je sada prázdná vrací undefined\r\n * @param set Sada\r\n */\r\n public static first<R>(set: Set<R> | ReadonlySet<R>): R | undefined {\r\n let retValue: R | undefined = undefined;\r\n for (retValue of set) break;\r\n return retValue;\r\n }\r\n\r\n /**\r\n * Vrátí objekt na zadaném indexu z předané sady. Pokud je sada prázdná vrací nebo je index neplatný undefined\r\n * @param set Sada\r\n * @param index Požadovaný index\r\n */\r\n public static index<R>(set: Set<R> | ReadonlySet<R>, index: number): R | undefined {\r\n if (index < 0 || set.size < index) return undefined;\r\n let retValue: R | undefined = undefined;\r\n let i = 0;\r\n for (retValue of set) if (i++ == index) break;\r\n return retValue;\r\n }\r\n\r\n /**\r\n * Vrátí Set, jenž obsahuje objekty z obou setů\r\n * @param setA\r\n * @param setB\r\n * @see @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\r\n */\r\n public static union<T>(setA: Set<T>, setB: Set<T>): Set<T> {\r\n return new Set([...setA, ...setB]);\r\n }\r\n\r\n /**\r\n * Vrátí Set, jenž obsahuje totožné objekty z obou setů.\r\n * @param setA\r\n * @param setB\r\n * @see @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\r\n */\r\n public static intersection<T>(setA: Set<T>, setB: Set<T>): Set<T> {\r\n return new Set([...setA].filter(i => setB.has(i)));\r\n }\r\n\r\n /**\r\n * Vrátí Set, jenž obsahuje objekty z prvního setu, které nejsou v druhém\r\n * @param setA\r\n * @param setB\r\n * @see @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set\r\n */\r\n public static difference<T>(setA: Set<T>, setB: Set<T>): Set<T> {\r\n const difference = new Set(setA);\r\n for (const elem of setB) {\r\n difference.delete(elem);\r\n }\r\n return difference;\r\n }\r\n}\r\n\r\nGlobalContext.registerType(SetUtils);\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport { FlagGroup, IFlagGroupColor } from \"@multiweb/reactComponents\";\r\nimport { TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils/constants\";\r\nimport { FlagColor } from \"@multiweb/types/react\";\r\nimport { ITextBuilder } from \"Global/Base/Builders/ITextBuilder\";\r\nimport { Key } from \"Global/Base/Utils/EventUtils\";\r\nimport { FlagUtils } from \"Global/Base/Utils/FlagUtils\";\r\nimport { SetUtils } from \"Global/Base/Utils/SetUtils\";\r\nimport { Enum } from \"OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Flags } from \"OW.Remoting/Remoting/DataTypes/Flags\";\r\nimport { createElement, ICreateElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { PopupMenu2, PopupMenuOptions } from \"../PopupMenu2\";\r\nimport { ControlParams } from \"./ControlInterfaces\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport type FlagEditParams = ControlParams & {\r\n attrName?: string;\r\n};\r\n\r\nexport class FlagEdit extends EditableControl {\r\n private _permanentVisible: boolean = false;\r\n private _multiselect: boolean = false;\r\n private _inputElement: HTMLElement;\r\n private _flagCirclePopup: PopupMenu2;\r\n private _flagList: Array<string> = [];\r\n private _flagColorsNameMap: Map<string, string> = new Map;\r\n\r\n private readonly _hideValues: string[] = [];\r\n\r\n private _controlValues: Set<string> = new Set;\r\n\r\n public override get controlValue(): Enum {\r\n if (this._controlValues.size > 0) return Flags.get(SetUtils.first(this._controlValues));\r\n\r\n return null;\r\n }\r\n\r\n public override set controlValue(value: Enum) {\r\n this._controlValues.clear();\r\n\r\n if (value != null) this._controlValues.add(value.getName());\r\n\r\n this._updateSelectedValues();\r\n }\r\n\r\n public override readonly attrName: string;\r\n\r\n /**\r\n * Zobrazena hodnota v komponente\r\n */\r\n public override get displayedValue(): ITextBuilder {\r\n return SetUtils.first(this._controlValues);\r\n }\r\n\r\n public override set displayedValue(v: ITextBuilder) {\r\n this._controlValues.add(v.toString());\r\n if (this.validate()) {\r\n this._updateSelectedValues();\r\n }\r\n }\r\n\r\n constructor({ attrName, ...otherParams }: FlagEditParams) {\r\n super(otherParams);\r\n\r\n this.element.classList.add(\"flag-edit\");\r\n this._createElements();\r\n this.attrName = attrName;\r\n\r\n if (this.element.getAttribute(\"data-hideValues\"))\r\n this._hideValues = this.getDataAttr(\"hideValues\").split(/\\s*;\\s*/);\r\n\r\n Flags.loadingPromise.then(loadedFlags => {\r\n if (loadedFlags) {\r\n this._flagList = Object.keys(loadedFlags);\r\n this.initializeTitles();\r\n }\r\n });\r\n }\r\n\r\n public parse(value: string): void {\r\n this.controlValue = Flags.get(value);\r\n }\r\n\r\n /** Vraci true - krome Editu pouzitelne pro vsechny inputy */\r\n public override validate(): boolean {\r\n this.setValid();\r\n for (const color of this._controlValues) {\r\n if (!this._flagList.includes(color) || this._hideValues.includes(color)) return false;\r\n }\r\n return true;\r\n }\r\n\r\n private _onColorSelectedChange(color: string, state: boolean): void {\r\n if (!this._multiselect) this._controlValues.clear();\r\n\r\n const colorName = this._flagList.find(f => f.toLowerCase().includes(color));\r\n\r\n if (state) this._controlValues.add(colorName);\r\n else this._controlValues.delete(colorName);\r\n\r\n this._updateSelectedValues();\r\n if (this._flagCirclePopup) this._flagCirclePopup.close();\r\n this.valueChanged.trigger(this, { Sender: this });\r\n }\r\n\r\n private _updateSelectedValues(): void {\r\n this._inputElement.innerHTML = \"\";\r\n for (const flagColor of this._controlValues) {\r\n const color = FlagUtils.flagToCss(flagColor);\r\n this._inputElement.appendChild(createElement({\r\n attrs: {\r\n \"data-color\": color,\r\n },\r\n }));\r\n }\r\n }\r\n\r\n public initializeTitles(): void { // [JB] TODO: Předělat na i18n jakmile bude dostupné\r\n this._flagList.forEach(\r\n async (color) =>\r\n this._flagColorsNameMap.set(color, await Flags.get(color).getLocalizedName()),\r\n );\r\n }\r\n\r\n private _createElements(): void {\r\n if (this._permanentVisible) this.element.classList.add(\"flag-edit--permanent-visible\");\r\n this._inputElement = createElement({ classes: \"flag-edit__input-element\" });\r\n this._inputElement.tabIndex = TAB_INDEX_FOCUSABLE_TAB_SEQUENCE;\r\n\r\n this._inputElement.addEventListener(\"focus\", () => {\r\n this.element.classList.add(\"focused\");\r\n });\r\n this._inputElement.addEventListener(\"blur\", () => {\r\n this.element.classList.remove(\"focused\");\r\n });\r\n\r\n const params = { type: \"button\", classes: \"valuepicker\" } as ICreateElement;\r\n if (this._captionLabel != null) { // pokud je komponenta na DF, chceme provázat label s input elementem\r\n params.id = this._captionLabel.getAttribute(\"for\");\r\n }\r\n const pickerButton = createElement(params);\r\n\r\n this.element.addEventListener(\"click\", (e) => {\r\n this._showPopup(e);\r\n });\r\n\r\n this.element.addEventListener(\"keydown\", (e) => {\r\n if (e.key === Key.Enter || e.key === Key.Space) {\r\n this._showPopup(e);\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n this.element.appendChild(this._inputElement);\r\n this.element.appendChild(pickerButton);\r\n }\r\n\r\n private _showPopup(e: MouseEvent | KeyboardEvent): void {\r\n if (!this.enabledVisual || e.ctrlKey || e.metaKey) {\r\n return;\r\n }\r\n if (this._flagCirclePopup && this._flagCirclePopup.visible) {\r\n this._flagCirclePopup.dispose();\r\n this._flagCirclePopup = null;\r\n return;\r\n }\r\n\r\n const popup = createElement({ classes: \"flag-edit__popup\" });\r\n const selectedValue = SetUtils.first(this._controlValues);\r\n const flags: Array<IFlagGroupColor> = new Array<IFlagGroupColor>();\r\n\r\n for (const color of this._flagList) {\r\n const isSelected = (selectedValue == null && color === \"fNone\") ? true : this._controlValues.has(color);\r\n\r\n if (this._hideValues.includes(color) && !isSelected) {\r\n continue;\r\n }\r\n\r\n flags.push({ color: (color[0] === \"f\" ? color.substring(1) : color).toLowerCase() as FlagColor, isSelected: isSelected, title: this._flagColorsNameMap.get(color) });\r\n }\r\n\r\n ReactDOM.render(React.createElement(FlagGroup, { flags, focusFirstItem: e instanceof KeyboardEvent, onChange: (color, isSelected) => this._onColorSelectedChange(color, isSelected) }), popup);\r\n\r\n if (this._flagCirclePopup) {\r\n this._flagCirclePopup.dispose();\r\n this._flagCirclePopup = null;\r\n }\r\n this._flagCirclePopup = new PopupMenu2({\r\n target: this.element,\r\n content: popup,\r\n } as PopupMenuOptions);\r\n this._flagCirclePopup.show(e);\r\n }\r\n\r\n /**\r\n * Zahájí editaci otevřením nabídky FlagEditu.\r\n *\r\n * @see IStartEdit\r\n */\r\n public override startEdit(): void {\r\n /**\r\n * Událost z fake komponenty, která spouští startEdit, musí být zpracovaná před tím, než je vytvořený popup na základě volání\r\n * this.element.click(). V opačném případě se událost dostane k window, kde ji zachytí _outsideClickListener z Popupu, což má\r\n * za následek, že se Popup po otevření ihned zase zavře.\r\n */\r\n setTimeout(() => {\r\n this.element.click();\r\n }, 0);\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { EMPTY_ITEM_RIGHTS_COLLECTION } from \"Global/Base/Rights/RightTypes\";\r\nimport { ElementUtils } from \"UI/UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { FlagEdit } from \"UI/UI/UI/Controls/FlagEdit\";\r\nimport { IValidatable } from \"../../../../UI.BaseControls/ControlInterfaces\";\r\nimport { ValidatableControl } from \"../../../../UI.BaseControls/ValidatableControl\";\r\nimport { Column } from \"../../Columns/Column\";\r\nimport { EditItemTemplate } from \"../EditItemTemplate\";\r\n\r\nexport class FlagEditTemplate extends EditItemTemplate {\r\n protected override _createEditElement(column: Column, dataSet: IAttrValue[], parentItem: HTMLElement): { element: HTMLElement; validatableControl: IValidatable } {\r\n const feElement = document.createElement(\"div\");\r\n const fe = new FlagEdit({\r\n element: feElement,\r\n originalRightsDefinition: EMPTY_ITEM_RIGHTS_COLLECTION,\r\n attrName: column.attrName,\r\n });\r\n fe.enabledVisual = false; //předejde se tak možnosti editovat hodnotu dříve než to povolí práva\r\n const data = this._getDataFromSet(dataSet);\r\n fe.parse(data ? data.toString() : \"\");\r\n fe.valueChanged.add((sender) => {\r\n ElementUtils.callEvent(parentItem, \"valuechanged\", { value: sender.controlValue, column: this.parentColumn });\r\n });\r\n return { element: feElement as HTMLElement, validatableControl: new ValidatableControl(feElement as HTMLElement) };\r\n }\r\n\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement): Promise<void> {\r\n ((item as any).tscControl as FlagEdit).parse(await this.parentColumn.formatValue(this._getDataFromSet(dataSet)));\r\n }\r\n}\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { Enum } from \"../../../../../OW.Remoting/Remoting/DataTypes/Enums\";\r\nimport { Column } from \"../../Columns/Column\";\r\nimport { ItemTemplate } from \"../ItemTemplate\";\r\n\r\nexport class FlagTemplates extends ItemTemplate {\r\n public override async updateData(dataSet: IAttrValue[], item: HTMLElement, forGrouping?: boolean): Promise<void> {\r\n const content = await this._createFlagElement(dataSet, this.parentColumn, forGrouping);\r\n item.innerHTML = \"\";\r\n item.appendChild(content);\r\n }\r\n\r\n private async _createFlagElement(dataSet: IAttrValue[], column: Column, forGrouping: boolean): Promise<HTMLDivElement> {\r\n const innerElement = document.createElement(\"div\");\r\n const flagElement = document.createElement(\"div\");\r\n const spanElement = document.createElement(\"span\");\r\n let flagColor = await this._getJoinData(dataSet, column);\r\n flagColor = flagColor.trim();\r\n\r\n if (flagColor.length > 0)\r\n flagElement.classList.add(\"flag\", flagColor);\r\n\r\n // Pro potřeby automatických testů, aby se u flagcolumnu vždy přidala třída fNone podle které jde ověřit že není vybrána žádná barva\r\n if (!dataSet || !dataSet[0])\r\n flagElement.classList.add(\"flag\", \"fNone\");\r\n\r\n innerElement.classList.add(\"flags\");\r\n\r\n spanElement.appendChild(flagElement);\r\n innerElement.appendChild(spanElement);\r\n\r\n // V případě groupování přidáme ke kolečku i text s lokalizací\r\n if (forGrouping && dataSet.length > 0 && dataSet[0] instanceof Enum) {\r\n const descriptionElement = document.createElement(\"span\");\r\n const flagText = await (dataSet[0] as Enum).getLocalizedName();\r\n descriptionElement.innerText = flagText;\r\n flagElement.classList.add(\"flags-group\");\r\n innerElement.classList.add(\"flags-group\");\r\n innerElement.appendChild(descriptionElement);\r\n }\r\n\r\n return innerElement;\r\n }\r\n}\r\n","import { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { FlagEditTemplate } from \"../Templates/DataTypeEditTemplates/FlagEditTemplate\";\r\nimport { FlagTemplates } from \"../Templates/DataTypeTemplates/FlagTemplates\";\r\nimport { Column } from \"./Column\";\r\n\r\nexport class FlagColumn extends Column {\r\n //#region Fields\r\n //#endregion\r\n\r\n //#region Methods\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.itemTemplate = new FlagTemplates();\r\n this.editItemTemplate = new FlagEditTemplate();\r\n }\r\n //#endregion HTMLElement\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-flagolumn\", FlagColumn);\r\n","import { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { DateUtils } from \"../../../../Global/Base/Utils/DateUtils\";\r\nimport { AttrValueReader } from \"../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { TimeEdit } from \"../../../UI.BaseControls/TimeEdit\";\r\nimport { registerCustomElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { DefaultEditTemplate } from \"../Templates/DataTypeEditTemplates/DefaultEditTemplate\";\r\nimport { ItemTemplate } from \"../Templates/ItemTemplate\";\r\nimport { DateTimeColumn } from \"./DateTimeColumn\";\r\n\r\nexport class TimeColumn extends DateTimeColumn {\r\n //#region Fields\r\n //#endregion\r\n\r\n //#region Methods\r\n\r\n public override async formatValue(data: IAttrValue | IAttrValue[]): Promise<string> {\r\n if (data instanceof Array)\r\n return \"\";\r\n\r\n const val = AttrValueReader.read(data);\r\n if (!(val instanceof Date))\r\n return \"\";\r\n\r\n if (!this.displayFormat || this.displayFormat.length == 0)\r\n this.displayFormat = \"t\";\r\n\r\n if (!DateTimeColumn._formatFncs.has(this.displayFormat))\r\n DateTimeColumn._formatFncs.set(this.displayFormat, DateUtils.getDateToStringFunction(this.displayFormat));\r\n\r\n const fncs = DateTimeColumn._formatFncs.get(this.displayFormat);\r\n\r\n // Přidáno z důvodu, že pokud se jednalo o time, tak ve většině případů měl nastavený nízky rok a dochazelo k zápornému timestamp a tím\r\n // ve většině prohlížečů docházelo k špatnému formatování času, resp. přičítání minut\r\n\r\n try {\r\n if (val.getFullYear() < 0)\r\n val.setFullYear(0);\r\n } catch (e) {\r\n // Prázdný catch\r\n }\r\n\r\n return fncs.format(val);\r\n }\r\n\r\n //#endregion Methods\r\n\r\n //#region HTMLElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.itemTemplate = new ItemTemplate();\r\n this.editItemTemplate = new DefaultEditTemplate(TimeEdit);\r\n }\r\n //#endregion HTMLElement\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n} //end Column\r\n\r\nregisterCustomElement(\"tsc-timecolumn\", TimeColumn);\r\n","import { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IBaseAction } from \"../Actions/IAction\";\r\nimport { DropDownMenu } from \"./DropDownMenu\";\r\nimport { SeparatorMenuItem } from \"./SeparatorItem\";\r\n\r\nexport class SeparatorMenuItemWithText extends SeparatorMenuItem {\r\n private _locKey: string;\r\n\r\n protected override _isRendered: boolean = false;\r\n\r\n public override icon: string;\r\n public override priority: number = 15;\r\n public override action: IBaseAction;\r\n public override parent: DropDownMenu;\r\n public override isOpened: boolean;\r\n\r\n public set locKey(v: string) {\r\n this._locKey = v;\r\n\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._textElement.textContent = locItem;\r\n });\r\n }\r\n }\r\n\r\n public get locKey(): string {\r\n return this._locKey;\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n this.priority = 15;\r\n }\r\n\r\n public static createSeparatorWithText(locKey: string): SeparatorMenuItemWithText {\r\n const elem = new SeparatorMenuItemWithText();\r\n elem.locKey = locKey;\r\n Localization.addLocTxtData(elem._textElement, locKey, undefined, undefined, true);\r\n return elem;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"SeparatorText\");\r\n this._textElement = document.createElement(\"div\");\r\n\r\n this._textElement.classList.add(\"Text\");\r\n\r\n this.appendChild(this._textElement);\r\n super._createElement();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-SeparatorMenuItemWithText\", SeparatorMenuItemWithText);\r\n","import { IItemRightsCollection, ItemRights } from \"../../../Global/Base/Rights/RightTypes\";\r\nimport { MutableItemRightsCollection } from \"./MutableItemRightsCollection\";\r\n\r\n/**\r\n * Načítač práv, tak jak jsou definovány v XML definicích. Určeno pouze pro potřeby implementace {@link loadOriginalRightsDefinition}.\r\n * - K říjnu 2020 jsou tato práva uchovávána v dceřiných HTML elementech. Např. `<span data-tscitem=\"Rights.Required\">`.\r\n * - Z těchto HTML elementů jsou načítána.\r\n * - Pozor: Reactí controls mažou tyto HTML elementy. Proto je třeba práva načíst ještě před jejich instanciací.\r\n */\r\nexport class OriginalRightsDefinitionLoaderFromHTML {\r\n public static load(element: HTMLElement): IItemRightsCollection {\r\n const rights = new MutableItemRightsCollection();\r\n\r\n const elementID = element.getAttribute(\"id\");\r\n\r\n {\r\n //V elementu najdu první výskyt nastavení práv pro Visible\r\n const visible = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Visible']\");\r\n //Hledám ve všech úrovních elementu, proto je potřeba zkontrolovat jestli výsledek patří k aktuálnímu elementu\r\n if (visible)\r\n rights.visible = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(visible);\r\n\r\n const showIfDef = element.getAttribute(\"rights.showifdefault\");\r\n rights.showIfDefault = showIfDef == null ? false : showIfDef.toLowerCase() == \"true\";\r\n }\r\n\r\n {\r\n const enabled = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Enabled']\");\r\n if (enabled)\r\n rights.enabled = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(enabled);\r\n }\r\n\r\n {\r\n const required = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Required']\");\r\n if (required)\r\n rights.required = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(required);\r\n }\r\n\r\n {\r\n const postponedRequired = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.PostponedRequired']\");\r\n if (postponedRequired)\r\n rights.postponedRequired = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(postponedRequired);\r\n }\r\n\r\n {\r\n const recommended = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Recommended']\");\r\n if (recommended)\r\n rights.recommended = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(recommended);\r\n }\r\n\r\n {\r\n const closeForm = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.CloseForm']\");\r\n if (closeForm)\r\n rights.closeForm = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(closeForm);\r\n }\r\n\r\n {\r\n const validateIf = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Validate']\");\r\n if (validateIf)\r\n rights.validateIf = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(validateIf);\r\n }\r\n\r\n {\r\n const confirmIf = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.Confirm']\");\r\n if (confirmIf)\r\n rights.confirmIf = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(confirmIf);\r\n }\r\n\r\n {\r\n const useDigitalSign = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.UseDigitalSign']\");\r\n if (useDigitalSign)\r\n rights.useDigitalSign = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(useDigitalSign);\r\n }\r\n\r\n {\r\n const useEncryption = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.UseEncryption']\");\r\n if (useEncryption)\r\n rights.useEncryption = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(useEncryption);\r\n }\r\n\r\n {\r\n const useDecryption = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.UseDecryption']\");\r\n if (useDecryption)\r\n rights.useDecryption = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(useDecryption);\r\n }\r\n\r\n {\r\n const openAsEnabled = element.querySelector(\"#\" + elementID + \"> span[data-tscitem='Rights.OpenAsEnabled']\");\r\n if (openAsEnabled)\r\n rights.openAsEnabled = OriginalRightsDefinitionLoaderFromHTML._extractRightsFromElementDefinition(openAsEnabled);\r\n }\r\n\r\n return rights;\r\n }\r\n\r\n private static _extractRightsFromElementDefinition(node: Element): ItemRights[] {\r\n const newItemRights = new Array<ItemRights>();\r\n\r\n for (let j = 0; j < node.childNodes.length; j++) {\r\n const aktNode: Element = node.childNodes[j] as Element;\r\n newItemRights.push(new ItemRights(aktNode));\r\n }\r\n\r\n return newItemRights;\r\n }\r\n}\r\n","import { OriginalRightsDefinitionLoaderFromHTML } from \"./OriginalRightsDefinitionLoaderFromHTML\";\r\n\r\n/**\r\n * Funkce pro načtení práv z XML definic.\r\n * - Určeno pro potřeby naplnění {@link IWithOriginalRightsDefinition.originalRightsDefinition}.\r\n * - Snahou je omezit použití této funkce na minimum. Ideálně jen v Registratoru. A všude jinde pracovat již s {@link IWithOriginalRightsDefinition}.\r\n * - Pozor: Práva je třeba načíst ještě před instanciací (react) control. Důvod - viz {@link OriginalRightsDefinitionLoaderFromHTML}.\r\n *\r\n * @param controlElement HTML element potřebný pro vytvoření a inicializaci control.\r\n */\r\nexport const loadOriginalRightsDefinition = (controlElement: HTMLElement) => OriginalRightsDefinitionLoaderFromHTML.load(controlElement);\r\n","import { ISectionLogger } from \"@multiweb/logging\";\r\nimport { OWDataType } from \"@multiweb/types/contracts\";\r\nimport { IItemRightsCollection } from \"../../../../Global/Base/Rights/RightTypes\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { PopupMenu } from \"../PopupMenu\";\r\nimport { IMaxLength } from \"./ControlInterfaces\";\r\nimport { EditableControl } from \"./EditableControl\";\r\n\r\nexport type ContainerEditableControlParams = {\r\n elementCreator?: new() => HTMLInputElement;\r\n copyAttrs?: Map<string, string>;\r\n onSetDataType?: (element: HTMLElement, dataType: OWDataType | string) => void;\r\n parentElement: HTMLElement;\r\n originalRightsDefinition: IItemRightsCollection;\r\n attrSourceElement?: HTMLElement;\r\n logger: ISectionLogger;\r\n};\r\n\r\nexport class ContainerEditableControl extends EditableControl implements IMaxLength {\r\n //#region Fields\r\n public override innerElement: HTMLInputElement;\r\n\r\n protected _value: string;\r\n\r\n protected _validationString: string;\r\n protected _validationExpr: RegExp;\r\n private _attrSourceElement: HTMLElement;\r\n private _elementCreator: new() => HTMLInputElement;\r\n private _copyAttrs: Map<string, string>;\r\n private readonly _logger: ISectionLogger;\r\n\r\n //Listeners\r\n private _listenerFocus: EventListener;\r\n private _listenerBlur: EventListener;\r\n private _listenerClick: EventListener;\r\n private _listenerChange: EventListener;\r\n private _listenerDblclick: EventListener;\r\n private _listenerPaste: EventListener;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n constructor({ elementCreator, copyAttrs, onSetDataType, parentElement, originalRightsDefinition, logger, attrSourceElement = null }: ContainerEditableControlParams) {\r\n super({ element: parentElement, originalRightsDefinition });\r\n this._logger = logger;\r\n\r\n this._onSetDataType = onSetDataType;\r\n if (elementCreator) {\r\n this._elementCreator = elementCreator;\r\n }\r\n this._copyAttrs = copyAttrs ? copyAttrs : new Map();\r\n // pro kopírování atributů se použije attrSourceElement pokud je specifikovaný, jinak se vezme rodičovský element - často mohou být různé a takto je možné je rozlišit\r\n this._attrSourceElement = attrSourceElement != null ? attrSourceElement : parentElement;\r\n this.element.classList.add(\"Edit\");\r\n this.maxLength = this.getNumDataAttr(\"maxLength\");\r\n this._validationString = this.getDataAttr(\"ValidationExpr\");\r\n\r\n if (this._validationString) {\r\n try {\r\n this._validationExpr = new RegExp(this._validationString);\r\n } catch (err) {\r\n this._validationExpr = null;\r\n this._logger.warn(`Invalid validation pattern '${this._validationString} on component '${this.componentName}'`);\r\n }\r\n }\r\n\r\n this._createInput();\r\n this.setListeners();\r\n this._setCaptionReference(this.innerElement);\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Properties\r\n //#region controlValue\r\n public override get controlValue(): string {\r\n return this.innerElement.value;\r\n }\r\n\r\n /**\r\n * Nastavi hodnotu editu\r\n */\r\n public override set controlValue(value: string) {\r\n const el = this.innerElement;\r\n\r\n if (this.maxLength && value && value.length > this.maxLength) {\r\n el.value = value.substr(0, this.maxLength);\r\n this._alertOnLength();\r\n } else {\r\n el.value = value;\r\n }\r\n this.validate();\r\n }\r\n //#endregion controlValue\r\n\r\n protected _maxLength: number;\r\n\r\n public get maxLength(): number {\r\n return this._maxLength;\r\n }\r\n\r\n public set maxLength(value: number) {\r\n if (value && value > 0 && !this._maxLength) {\r\n this._maxLength = value;\r\n if ((this._maxLength || this.maxLength == 0) && this.innerElement) {\r\n this.innerElement.maxLength = this.maxLength;\r\n }\r\n }\r\n }\r\n //#endregion Properties\r\n\r\n //#region Methods\r\n\r\n /** Pokud je zadan regexp, pak validuje podle nej, jinak vraci true. */\r\n public override validate(): boolean {\r\n const el = this.innerElement;\r\n\r\n if (el.value.length === 0 || el.checkValidity()) {\r\n this.setValid();\r\n return true;\r\n } else {\r\n this.setInvalid(null, el.validationMessage);\r\n return false;\r\n }\r\n }\r\n\r\n public override setValid(): void {\r\n super.setValid();\r\n }\r\n\r\n /** Vytvori samotny input */\r\n protected _createInput(): void {\r\n const input = new this._elementCreator();\r\n\r\n for (const attr of Array.from(this._attrSourceElement.attributes)) {\r\n if (this._copyAttrs.has(attr.name)) {\r\n input.setAttribute(this._copyAttrs.get(attr.name), attr.value);\r\n }\r\n }\r\n\r\n if (this._placeholderLocKey) {\r\n Localization.addLocTxtData(input, this._placeholderLocKey, \"placeholder\");\r\n }\r\n\r\n this.innerElement = input;\r\n this.element.appendChild(this.innerElement);\r\n\r\n if (this._language != null)\r\n this.innerElement.setAttribute(\"lang\", this._language); //nastaveni jazyka pro kontrolu pravopisu language/data-lang\r\n }\r\n\r\n public setListeners(): void {\r\n this.innerElement.addEventListener(\"focus\", this._listenerFocus = (e: FocusEvent) => {\r\n this.getFocus.trigger(this, e);\r\n this._focusEventHandler();\r\n });\r\n\r\n this.innerElement.addEventListener(\"blur\", this._listenerBlur = (e: FocusEvent) => {\r\n this.lostFocus.trigger(this, e);\r\n this._blurEventHandler();\r\n });\r\n\r\n this.innerElement.addEventListener(\"change\", this._listenerChange = () => {\r\n this._changeEventHandler();\r\n });\r\n\r\n if (this.maxLength) {\r\n // vyhazovani hlasky pri preteceni pri paste\r\n this.innerElement.addEventListener(\"paste\", this._listenerPaste = () => {\r\n this._pasteEventHandler(event);\r\n });\r\n }\r\n }\r\n\r\n // oriznuti paste pro IE 10\r\n private _cutText(): void {\r\n if (this.innerElement.value.length > this.maxLength) {\r\n // nepouzije se oriznuti konce celeho textu, ale standardni chovani paste do omezeneho inputu = urizne se konec pastovaneho textu\r\n const pos = this._getCaretPosition();\r\n this.innerElement.value = this.innerElement.value.slice(0, pos - 1) + this.innerElement.value.slice(pos);\r\n this._alertOnLength();\r\n }\r\n this.innerElement.maxLength = this.maxLength;\r\n }\r\n\r\n /* Returns the caret (cursor) position of the specified text field.\r\n * Return value range is 0-oField.value.length.\r\n * http://stackoverflow.com/questions/2897155/get-cursor-position-within-a-text-input-field\r\n */\r\n private _getCaretPosition(): number {\r\n const iCaretPos = this.innerElement.value.length; // priradime na konec, v pripade ze neni podpora document.selection tak se vrati maxlength + 1\r\n\r\n return iCaretPos;\r\n }\r\n\r\n private _alertOnLength(): void {\r\n if (!this._errorPopup)\r\n this._errorPopup = new PopupMenu(this._errorElement, false, this.element.clientWidth + \"px\", \"auto\");\r\n\r\n if (this._errorElement.textContent.indexOf(\":\") == 0) {\r\n const spanErr = document.createElement(\"span\"); //kvuli lokalizaci je pred cislo maximalni delky retezce pridan element s lok.popiskem\r\n Localization.addLocData(spanErr, \"GUI-452712\");\r\n this._errorElement.appendChild(spanErr);\r\n this._errorElement.textContent = this.maxLength + \"\";\r\n } else {\r\n const locText = this._errorElement.textContent.split(\":\");\r\n this._errorElement.textContent = locText + \": \" + this.maxLength;\r\n }\r\n\r\n this._errorElement.style.display = \"block\";\r\n this._errorPopup.setVisibility(true);\r\n\r\n self.setTimeout(() => {\r\n if (this.validate()) {\r\n this._errorPopup.setVisibility(false);\r\n this._errorElement.style.display = \"none\";\r\n }\r\n }, 5000);\r\n }\r\n\r\n //events handlers\r\n protected _focusEventHandler(): void {\r\n if (this.enabled)\r\n this.element.classList.add(\"focused\");\r\n }\r\n\r\n protected _blurEventHandler(): void {\r\n this.element.classList.remove(\"focused\");\r\n }\r\n\r\n protected _changeEventHandler(): void {\r\n // pokud komponenta není ve validním stavu, tak se její změna dál nepropaguje\r\n if (!this.validate())\r\n return;\r\n\r\n this.valueChanged.trigger(this, { Sender: this });\r\n }\r\n\r\n protected _pasteEventHandler(e: Event): void {\r\n const ev: ClipboardEvent = e as ClipboardEvent;\r\n if (ev.clipboardData) {\r\n const newDataLen = ev.clipboardData.getData(\"text/plain\").length;\r\n if (newDataLen + this.innerElement.value.length > this.maxLength) {\r\n self.setTimeout(() => {\r\n this._alertOnLength();\r\n });\r\n }\r\n } else { // IE 10\r\n this.innerElement.maxLength = this.maxLength + 1;\r\n self.setTimeout(() => {\r\n this._cutText();\r\n }, 0);\r\n }\r\n }\r\n\r\n // slouzi pro nastaveni property na komponente pri zmene DataType\r\n private _onSetDataType: (element: HTMLElement, dataType: OWDataType | string) => void;\r\n\r\n public override get dataType(): OWDataType | string {\r\n return super.dataType;\r\n }\r\n\r\n public override set dataType(value: OWDataType | string) {\r\n super.dataType = value;\r\n if (this.innerElement && this._onSetDataType) {\r\n this._onSetDataType(this.innerElement, value);\r\n }\r\n }\r\n\r\n //destruktor\r\n public override dispose(): void {\r\n if (this.innerElement != null) {\r\n this.innerElement.removeEventListener(\"focus\", this._listenerFocus);\r\n this.innerElement.removeEventListener(\"blur\", this._listenerBlur);\r\n this.innerElement.removeEventListener(\"click\", this._listenerClick);\r\n this.innerElement.removeEventListener(\"change\", this._listenerChange);\r\n this.innerElement.removeEventListener(\"dblclick\", this._listenerDblclick);\r\n this.innerElement.removeEventListener(\"paste\", this._listenerPaste);\r\n }\r\n\r\n super.dispose();\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { ContainerEditableControl } from \"./ContainerEditableControl\";\r\nimport { ControlParams } from \"./ControlInterfaces\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.edit);\r\n\r\nexport class Edit extends ContainerEditableControl {\r\n //#region Constructors\r\n constructor(params: ControlParams) {\r\n super({ parentElement: params.element, originalRightsDefinition: params.originalRightsDefinition, logger });\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n\r\n /** Pokud je zadan regexp, pak validuje podle nej, jinak vraci true. */\r\n public override validate(): boolean {\r\n if (this._validationExpr) {\r\n const el = this.innerElement;\r\n if (el.value.length === 0 || this._validationExpr.test(el.value)) {\r\n this.setValid();\r\n return true;\r\n } else {\r\n this.setInvalid(\"GUI-214428\");\r\n return false;\r\n }\r\n } else {\r\n this.setValid();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public override setValid(): void {\r\n super.setValid();\r\n }\r\n\r\n /** Vytvori samotny input */\r\n protected override _createInput(): void {\r\n const input = createElement({ type: \"input\", attrs: { \"type\": \"text\" } }) as HTMLInputElement;\r\n\r\n if (this.maxLength) {\r\n input.maxLength = this.maxLength;\r\n }\r\n\r\n if (this._placeholderLocKey) {\r\n Localization.addLocTxtData(input, this._placeholderLocKey, \"placeholder\");\r\n }\r\n\r\n this.innerElement = input;\r\n this.innerElement.setAttribute(\"autocomplete\", \"off\");\r\n this.element.appendChild(this.innerElement);\r\n\r\n if (this._language != null)\r\n this.innerElement.setAttribute(\"lang\", this._language); //nastaveni jazyka pro kontrolu pravopisu language/data-lang\r\n }\r\n\r\n //events handlers\r\n protected override _pasteEventHandler(_e: Event): void {\r\n // Prázdná metoda\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n","import { EMPTY_ITEM_RIGHTS_COLLECTION } from \"Global/Base/Rights/RightTypes\";\r\nimport { Localization } from \"OW.Remoting/Remoting/Localization\";\r\nimport { Key } from \"../../../../Global/Base/Utils/EventUtils\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { ControlParams } from \"./ControlInterfaces\";\r\nimport { Edit } from \"./Edit\";\r\n\r\nexport class PasswordEdit extends Edit {\r\n //#region Fields\r\n private _isPassword: boolean;\r\n private _showButton: HTMLElement;\r\n private _showButtonVisible: boolean = true;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n public static createWithEmptyRights(element: HTMLElement): PasswordEdit {\r\n return new PasswordEdit({ element, originalRightsDefinition: EMPTY_ITEM_RIGHTS_COLLECTION });\r\n }\r\n\r\n constructor(params: ControlParams) {\r\n super(params);\r\n this.element.classList.add(\"password\");\r\n this._isPassword = true;\r\n this.innerElement.type = \"password\";\r\n this._createShowButton();\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Properties\r\n /**\r\n * Příznak, zda se má zobrazovat tlačítko na dočasné odkrytí znaků hesla\r\n */\r\n public get showButtonVisible(): boolean {\r\n return this._showButtonVisible;\r\n }\r\n\r\n public set showButtonVisible(value: boolean) {\r\n if (this._showButtonVisible && !value && this._showButton && this.element.contains(this._showButton)) {\r\n this.element.removeChild(this._showButton);\r\n } else if (!this._showButtonVisible && value && this._showButton != null && !this.element.contains(this._showButton)) {\r\n this.element.appendChild(this._showButton);\r\n }\r\n this._showButtonVisible = value;\r\n }\r\n //#endregion Properties\r\n\r\n //#region Methods\r\n private _setPasswordVisibilityState(visible: boolean): void {\r\n if (this._showButton.classList.contains(\"Disabled\")) {\r\n return;\r\n }\r\n this._setIsPassword(!visible);\r\n this._showButton.classList.toggle(\"mouse-down\", visible);\r\n !visible && this.innerElement.focus();\r\n }\r\n /**\r\n * Vytvoří tlačítko pro odkrytí hesla\r\n */\r\n private _createShowButton(): void {\r\n if (this._showButtonVisible && this._isPassword) {\r\n const buttonElement = createElement({ type: \"button\", attrs: { \"type\": \"button\" }, classes: \"valuepicker unhide-password\" });\r\n // oprava unhide passwordu\r\n buttonElement.addEventListener(\"touchstart\", (e: TouchEvent) => {\r\n e.preventDefault();\r\n if (buttonElement === document.activeElement) {\r\n buttonElement.blur();\r\n } else {\r\n buttonElement.focus();\r\n }\r\n this._setIsPassword(!this._isPassword);\r\n });\r\n buttonElement.addEventListener(\"mousedown\", (e) => {\r\n if (e.button === 0) { // Levé tlačítko myši\r\n this._setPasswordVisibilityState(true);\r\n }\r\n });\r\n buttonElement.addEventListener(\"mouseup\", (e) => {\r\n if (e.button === 0) { // Levé tlačítko myši\r\n this._setPasswordVisibilityState(false);\r\n }\r\n });\r\n buttonElement.addEventListener(\"keydown\", (e) => {\r\n if (e.key === Key.Enter || e.key === Key.Space) {\r\n this._setPasswordVisibilityState(true);\r\n }\r\n });\r\n buttonElement.addEventListener(\"keyup\", (e) => {\r\n if (e.key === Key.Enter || e.key === Key.Space) {\r\n this._setPasswordVisibilityState(false);\r\n }\r\n });\r\n buttonElement.addEventListener(\"mouseout\", (e) => {\r\n if (e.target === buttonElement && !this._isPassword) {\r\n this._setPasswordVisibilityState(false);\r\n }\r\n });\r\n Localization.addLocData(buttonElement, \"GUI-798679\", [\"title\", \"ariaLabel\"]); // Přepnout viditelnost hesla\r\n this._showButton = buttonElement;\r\n\r\n this.element.appendChild(buttonElement);\r\n }\r\n }\r\n\r\n /**\r\n * Přepíná mód hesla - skrytí znaků\r\n */\r\n private _setIsPassword(value: boolean): void {\r\n this._isPassword = value;\r\n //chrome zrusi change event pri zmene typu inputu - neposle se setValue\r\n setTimeout(() => {\r\n this.innerElement.type = (this._isPassword) ? \"password\" : \"text\";\r\n }, 0);\r\n }\r\n\r\n //#endregion Methods\r\n}\r\n","import { ISectionLogger } from \"@multiweb/logging\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { PasswordEdit } from \"../Controls/PasswordEdit\";\r\nimport { MessageWindow } from \"../MessageWindow\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n\r\n/**\r\n * Builder, který sestaví dialog vložení hesla pro (de)šifrování objektu.\r\n * @internal\r\n */\r\nexport class PasswordDialogBuilder implements IContentBuilder {\r\n private _element: HTMLElement;\r\n private _input: HTMLElement;\r\n private _inputConfirm: HTMLElement;\r\n private _passwordEdit: PasswordEdit;\r\n private _passwordConfirmEdit: PasswordEdit;\r\n private _inputCaption: HTMLLabelElement;\r\n private _inputConfirmCaption: HTMLLabelElement;\r\n private _parent: MessageWindow;\r\n private _textLocKey: string;\r\n private _object: OWObject;\r\n private _passwordDialogType: PasswordDialogBuilderType;\r\n private _okAction: (password: string) => Promise<boolean>;\r\n private _closeAction: () => Promise<boolean>;\r\n private readonly _logger: ISectionLogger;\r\n\r\n private get _passwordValue(): string {\r\n return this._passwordEdit ? this._passwordEdit.controlValue : \"\";\r\n }\r\n\r\n /**\r\n * Vytvoří dialog pro zadání hesla pro šifrování/dešifrování záznamu.\r\n * @param parent Instance MessageWindow.\r\n * @param textLocKey Lokalizační klíč, který bude zobrazen jako zpráva dialogu.\r\n * @param obj Refence objektu, který se má (de)šifrovat.\r\n * @param passwordDialogType Určuje k jakému účelu má být builder určen - k nastavení nebo ověření hesla\r\n */\r\n constructor(parent: MessageWindow, textLocKey: string, obj: OWObject, passwordDialogType: PasswordDialogBuilderType, okAction: (password: string) => Promise<boolean>,\r\n closeAction: () => Promise<boolean>, logger: ISectionLogger) {\r\n this._textLocKey = textLocKey;\r\n this._parent = parent;\r\n this._object = obj;\r\n this._passwordDialogType = passwordDialogType;\r\n this._logger = logger;\r\n if (okAction)\r\n this._okAction = async (password: string): Promise<boolean> => {\r\n return await okAction(password);\r\n };\r\n if (closeAction)\r\n this._closeAction = async (): Promise<boolean> => {\r\n return await closeAction();\r\n };\r\n }\r\n\r\n private async _build(): Promise<void> {\r\n if (!this._element) {\r\n const passwordLockey = \"GUI-462928\"; //Heslo\r\n const passwordConfirmLockey = \"GUI-735909\"; //Potvrzení hesla\r\n const passwordConfirmErrorLockey = \"GUI-735910\"; //Hesla se neshodují\r\n\r\n const content = createElement();\r\n this._input = createElement({ attrs: { \"data-ispassword\": \"true\" } });\r\n this._passwordEdit = PasswordEdit.createWithEmptyRights(this._input);\r\n\r\n const text = StringUtils.format(await Localization.getTextPromise(this._textLocKey), [this._object.objectIdentity]);\r\n const textElement = createElement({ value: text, classes: \"message\" });\r\n this._inputCaption = createElement({ type: \"label\", classes: \"Caption\" }) as HTMLLabelElement;\r\n\r\n Localization.addLocData(this._inputCaption, passwordLockey);\r\n\r\n const onPasswordInput = (passwordEdit: PasswordEdit, captionElement: HTMLElement, lockey: string) =>\r\n () => {\r\n passwordEdit.setValid();\r\n this._toggleOkDisabled();\r\n captionElement.classList.remove(\"invalid\");\r\n Localization.addLocData(captionElement, lockey);\r\n };\r\n\r\n const onKeyPress = (passwordEdit: PasswordEdit, captionElement: HTMLElement, lockey: string) =>\r\n (event: KeyboardEvent) => {\r\n if (event.key === \"Enter\") //při stisknutí enter zavolá stisk OK na dialogu.\r\n this._parent.okButton.click();\r\n else\r\n onPasswordInput(passwordEdit, captionElement, lockey);\r\n };\r\n\r\n this._input.addEventListener(\"input\", onPasswordInput(this._passwordEdit, this._inputCaption, passwordLockey));\r\n this._input.addEventListener(\"paste\", onPasswordInput(this._passwordEdit, this._inputCaption, passwordLockey));\r\n\r\n this._input.addEventListener(\"keypress\", onKeyPress(this._passwordEdit, this._inputCaption, passwordLockey));\r\n\r\n this._parent.okCallback = async (): Promise<boolean> => {\r\n return await this._okClickedCallback();\r\n };\r\n this._parent.otherCallback = async (): Promise<boolean> => {\r\n return await this._closeClickedCallback();\r\n };\r\n this._parent.focusElement = this._passwordEdit;\r\n\r\n content.appendChild(textElement);\r\n content.appendChild(this._inputCaption);\r\n content.appendChild(this._input);\r\n\r\n if (this._object.isNew) {\r\n this._inputConfirm = createElement({ attrs: { \"data-ispassword\": \"true\" } });\r\n this._passwordConfirmEdit = PasswordEdit.createWithEmptyRights(this._inputConfirm);\r\n\r\n this._inputConfirmCaption = createElement({\r\n type: \"label\",\r\n classes: [\"Caption\", \"password-confirm\"],\r\n }) as HTMLLabelElement;\r\n Localization.addLocData(this._inputConfirmCaption, passwordConfirmLockey);\r\n\r\n this._inputConfirm.addEventListener(\"keypress\", onKeyPress(this._passwordConfirmEdit, this._inputConfirmCaption, passwordConfirmLockey));\r\n\r\n this._input.addEventListener(\"input\", onPasswordInput(this._passwordConfirmEdit, this._inputConfirmCaption, passwordConfirmLockey));\r\n this._inputConfirm.addEventListener(\"input\", onPasswordInput(this._passwordConfirmEdit, this._inputConfirmCaption, passwordConfirmLockey));\r\n\r\n const passSameCheck = () => {\r\n if (this._passwordEdit.controlValue !== this._passwordConfirmEdit.controlValue) {\r\n this._passwordConfirmEdit.setInvalid(null);\r\n this._inputConfirmCaption.classList.add(\"invalid\");\r\n Localization.addLocData(this._inputConfirmCaption, passwordConfirmErrorLockey);\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this._parent.okCallback = async (): Promise<boolean> => {\r\n return passSameCheck() && await this._okClickedCallback();\r\n };\r\n\r\n this._input.addEventListener(\"change\", passSameCheck);\r\n this._inputConfirm.addEventListener(\"change\", passSameCheck);\r\n\r\n content.appendChild(this._inputConfirmCaption);\r\n content.appendChild(this._inputConfirm);\r\n }\r\n\r\n this._toggleOkDisabled();\r\n\r\n this._element = content;\r\n }\r\n }\r\n\r\n /**\r\n * Metoda, která se zavolá při stisknutí OK tlačítka. Pokud bylo zadáno špatné heslo, dialog místo zavření zobrazí chybu.\r\n */\r\n private async _okClickedCallback(): Promise<boolean> {\r\n if (!this._okAction)\r\n return false;\r\n switch (this._passwordDialogType) {\r\n case PasswordDialogBuilderType.enter:\r\n return await this._okAction(this._passwordValue);\r\n case PasswordDialogBuilderType.verify: {\r\n this._passwordEdit.enabledVisual = false;\r\n const verificationResult = await this._okAction(this._passwordValue);\r\n this._passwordEdit.enabledVisual = true;\r\n if (!verificationResult)\r\n this._setInvalid();\r\n return verificationResult;\r\n }\r\n default:\r\n this._logger.error(\"Invalid passwordDialogType.\");\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Metoda, která se zavolá při stisknutí tlačítka Zavřít.\r\n */\r\n private async _closeClickedCallback(): Promise<boolean> {\r\n if (!this._closeAction)\r\n return true;\r\n return await this._closeAction();\r\n }\r\n\r\n /**\r\n * Pokud je heslo prázdné, přepne OK tlačítko do neaktivního stavu.\r\n */\r\n private _toggleOkDisabled(): void {\r\n const passEmpty = !this._passwordEdit.controlValue || this._passwordEdit.controlValue.length === 0;\r\n const passConfirmEmpty = this._object.isNew && (!this._passwordConfirmEdit.controlValue || this._passwordConfirmEdit.controlValue.length === 0);\r\n\r\n if (passEmpty || passConfirmEmpty) {\r\n this._parent.okButton.setAttribute(\"disabled\", \"disabled\");\r\n this._parent.okButton.classList.add(\"Disabled\");\r\n } else {\r\n this._parent.okButton.removeAttribute(\"disabled\");\r\n this._parent.okButton.classList.remove(\"Disabled\");\r\n }\r\n }\r\n\r\n /**\r\n * Nastaví stav pří naplatném heslu\r\n */\r\n private _setInvalid(): void {\r\n this._passwordEdit.setInvalid(null);\r\n this._inputCaption.classList.add(\"invalid\");\r\n Localization.addLocData(this._inputCaption, \"GUI-596950\"); //Chybné heslo\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._build();\r\n return this._element;\r\n }\r\n}\r\n\r\n/**\r\n * Určuje k jakému účelu má být builder určen - k nastavení nebo ověření hesla\r\n */\r\nexport enum PasswordDialogBuilderType {\r\n enter, // nastavení hesla\r\n verify, // ověření hesla\r\n}\r\n","import { IRecordsInfo } from \"Global/Base/DataSources/Interfaces\";\r\nimport { BEMClassNameCreator, setupBem } from \"Global/Dom/bem\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * Builder, který sestaví dialog pro zobrazení informací o počtu záznamů v seznamu\r\n * @internal\r\n */\r\nexport class RecordsInfoDialogBuilder implements IContentBuilder {\r\n private _content: HTMLElement;\r\n private _info: IRecordsInfo;\r\n constructor(info: IRecordsInfo) {\r\n this._info = info;\r\n }\r\n\r\n private _createRow(block: BEMClassNameCreator, locKey: string, value: number): HTMLElement {\r\n const row = createElement({ classes: block.element(\"row\") });\r\n const textSpan = createElement({ type: \"span\", classes: block.element(\"row-text\") });\r\n const valueSpan = createElement({ type: \"span\", classes: block.element(\"row-value\") });\r\n Localization.addLocData(textSpan, locKey);\r\n valueSpan.textContent = value.toString();\r\n row.appendChild(textSpan);\r\n row.appendChild(valueSpan);\r\n return row;\r\n }\r\n\r\n private async _buildMessageElement(): Promise<void> {\r\n const className = setupBem(\"records-info-dialog\");\r\n const contentDiv = createElement({ classes: className() });\r\n contentDiv.appendChild(this._createRow(className, \"GUI-702262\", this._info.totalCount)); //Počet všech záznamů:\r\n if (this._info.isFiltered)\r\n contentDiv.appendChild(this._createRow(className, \"GUI-52647\", this._info.filteredCount));//Počet záznamů odpovídajících filtru:\r\n this._content = contentDiv;\r\n }\r\n\r\n public async build(): Promise<HTMLElement> {\r\n await this._buildMessageElement();\r\n return this._content;\r\n }\r\n}\r\n","import { IFRMParams } from \"../Controls/FormParameters\";\r\nimport { FrameContext, IWindowable } from \"../UIManagerInterfaces\";\r\n/**\r\n * Rozhraní, které sestaví formuláře pro verze dokumentu.\r\n * @includeToDoc\r\n */\r\nexport interface IFormBuilder {\r\n /**\r\n * Sestaví generický formulář\r\n */\r\n build(...params: any): Promise<IWindowable> ;\r\n}\r\n\r\n/**\r\n * Rozhraní, které sestaví formuláře pro verze dokumentu.\r\n * @includeToDoc\r\n */\r\nexport interface IShowArchiveVersionsFormBuilder extends IFormBuilder {\r\n /**\r\n * Sestaví formulář pro zobrazení verzí dokumentu\r\n * @param className Třída objektu\r\n * @param id ID objektu\r\n * @param instanceID Instance objektu\r\n * @param attrName Atribut objektu\r\n * @param parametricData Volitelné parametry formuláře\r\n * @param frameContext Viz {@link IFrameContext}\r\n */\r\n build(className: string, id: string, instanceID: string, attrName: string, parametricData: IFRMParams, frameContext?: FrameContext): Promise<IWindowable>;\r\n}\r\n\r\nexport class IShowArchiveVersionsFormBuilder {\r\n private static _methods = [\"build\"];\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Sestaví modální formulář pro zobrazení ChartFrame\r\n * @includeToDoc\r\n */\r\nexport interface IChartFrameFormBuilder extends IFormBuilder {\r\n /**\r\n * Sestaví modální formulář pro ChartFrame\r\n * @param parametricData Volitelné parametry formuláře\r\n */\r\n build(parametricData?: IFRMParams): Promise<IWindowable>;\r\n}\r\n\r\nexport class IChartFrameFormBuilder {\r\n private static _methods = [\"build\"];\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IOpenedFormHistoryInfo } from \"@multiweb/types/contracts\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { IWindowable } from \"../UIManagerInterfaces\";\r\n\r\n/**\r\n * Umožňuje spravovat - ukládat a načítat - data historie otevřených formulářů.\r\n * @includeToDoc\r\n */\r\nexport interface IOpenedFormsHistoryManager {\r\n /**\r\n * Událost vyvolávaná při změně historie formulářů. Parametrem je nová historie.\r\n */\r\n readonly formHistoryUpdated: Event<IOpenedFormsHistoryManager, readonly Readonly<IOpenedFormHistoryInfo>[]>;\r\n\r\n /**\r\n * Přidání a mazání formuláře do/z historie. Historie je automaticky ihned uložena.\r\n * @param form Formulář k uložení do historie\r\n * @param menuItemId Id položky menu, ke které formulář patří\r\n */\r\n updateOpenedFormsHistory(form: IWindowable, menuItemId: number): Promise<void>;\r\n /**\r\n * Získá historii otevřených formulářů z úložiště.\r\n */\r\n getOpenedFormsHistory(): Promise<readonly IOpenedFormHistoryInfo[]>;\r\n /**\r\n * Označí ke smazání položku nebo profil patřící k formuláři `form`.\r\n * Pokud je definováno `menuItemId`, označí ke smazání položku s tímto id.\r\n * Pokud je definováno `profileId`, označí ke smazání profil s tímto id.\r\n * @param form Formulář jehož položky budeme z historie odstraňovat.\r\n * @param menuItemId Id položky menu.\r\n * @param profileId Id profilu.\r\n * @return Promise s hodnotou `true` pokud se odstranila nějaká položka, jinak s hodnotou `false`.\r\n */\r\n markOpenedFormsHistoryItemToBeRemovedOnFormClose(form: IWindowable, menuItemId?: number, profileId?: number): boolean;\r\n}\r\n\r\nexport class IOpenedFormsHistoryManager {\r\n private static _properties: (keyof IOpenedFormsHistoryManager)[] = [\"formHistoryUpdated\"];\r\n private static _methods: (keyof IOpenedFormsHistoryManager)[] = [\"updateOpenedFormsHistory\", \"getOpenedFormsHistory\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { IFRMParams } from \"../Controls/FormParameters\";\r\nimport { IWindowable } from \"../UIManagerInterfaces\";\r\nimport { FormResult } from \"./Forms/FormResult\";\r\n\r\n/**\r\n * Varianta IWindowable s parametric data typovanými na IFRMParameters.\r\n * IFRMParameters nemohou být součástí IWindowable jako takového, protože je využívána\r\n * reactovou částí aplikace, se kterou není IFRMParameters kompatibilní. Problém s kompatibilitou\r\n * může být strict mód a případně cyklické závislosti.\r\n */\r\nexport interface IWindowableWithIFRMParams extends IWindowable {\r\n setParametricData(parametricData: IFRMParams): void;\r\n}\r\n\r\nexport enum ModalWindowType {\r\n parametricForm,\r\n lov,\r\n errorMsg,\r\n modalForm,\r\n}\r\n\r\nexport interface IModalWindowConfiguration {\r\n resizeable: boolean;\r\n showFooter: boolean;\r\n showHeader: boolean;\r\n closeAble?: boolean;\r\n}\r\n\r\n/**\r\n * Nastavení pro zobrazení modálního okna\r\n * @includeToDoc\r\n */\r\nexport interface IShowModalParams {\r\n /** Okno, které má být zobrazeno */\r\n readonly window: IWindowableWithIFRMParams;\r\n /** Typ modálního okna */\r\n readonly type: ModalWindowType;\r\n /** Metoda provedena při zavření modálního okna */\r\n onClose?: (sender?: IWindowable, result?: FormResult) => void;\r\n /** Příznak, jestli se má zobrazit overlay vrstva */\r\n readonly showOverlay?: boolean;\r\n /** Konfigurace modální okna */\r\n modalConfig?: IModalWindowConfiguration;\r\n /** Příznak jestli se má zobrazit v drobečkové navigaci */\r\n readonly showBreadcrumbNav?: boolean;\r\n}\r\n","import { Event } from \"../../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../../Global/Base/IDisposable\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { UIManager } from \"../UIManager\";\r\nimport { FormResult, FormResultType } from \"./Forms/FormResult\";\r\nimport { IShowModalParams, IWindowableWithIFRMParams, ModalWindowType } from \"./ModalWindowInterfaces\";\r\n\r\nexport class ModalWindow implements IDisposable {\r\n //#region Events\r\n public readonly close: Event<ModalWindow, void> = new Event<ModalWindow, void>();\r\n /** Událost zavření okna */\r\n public readonly onClose: Event<ModalWindow, void> = new Event<ModalWindow, void>();\r\n //#endregion Events\r\n public readonly onDispose: Event<ModalWindow, void> = new Event<ModalWindow, void>();\r\n\r\n public readonly window: IWindowableWithIFRMParams;\r\n //#region Fields\r\n public container: HTMLDivElement;\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private _maximized: boolean;\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n constructor(config: IShowModalParams) {\r\n this.container = createElement({ classes: [ \"ModalWindow\", ModalWindowType[config.type] ], id: UIManager.instance.generateElementID() }) as HTMLDivElement;\r\n this.window = config.window;\r\n\r\n config.window.closed.add((sender, e) => {\r\n if (config.onClose) {\r\n config.onClose(sender, e);\r\n }\r\n\r\n this.onClose.trigger(this, null);\r\n\r\n this.dispose();\r\n });\r\n\r\n const fmenu = document.getElementById(\"formsMenu\");\r\n if (fmenu)\r\n this.container.style.left = (fmenu.clientWidth) + \"px\";\r\n else\r\n this.container.style.left = \"0\";\r\n\r\n //Inicializace Headeru\r\n if (config && config.modalConfig.showHeader) {\r\n const modalWindowHeader: ModalWindowHeader = new ModalWindowHeader(config.window.titleLocKey, config.modalConfig.closeAble, config.modalConfig.resizeable);\r\n if (config.modalConfig.closeAble !== undefined && config.modalConfig.closeAble !== null && config.modalConfig.closeAble == true) {\r\n if (!config.onClose) {\r\n config.onClose = () => {\r\n $(this.container).slideUp();\r\n self.setTimeout(() => {\r\n this.container.remove();\r\n }, 400);\r\n };\r\n }\r\n modalWindowHeader.close.add((_sender, value) => {\r\n if (config.onClose) {\r\n config.onClose(config.window, new FormResult(value, FormResultType.cancel));\r\n }\r\n\r\n this.onClose.trigger(this, null);\r\n\r\n if (document.getElementsByClassName(\"ModalWindow\").length == 1)\r\n UIManager.instance.showOverlay(false);\r\n });\r\n }\r\n if (config.modalConfig.resizeable == true) {\r\n modalWindowHeader.minimize.add((_sender, _value) => {\r\n this._maximized = false;\r\n this.container.classList.remove(\"Minimize\");\r\n this.container.classList.add(\"Maximize\");\r\n });\r\n modalWindowHeader.maximize.add((_sender, _value) => {\r\n this._maximized = true;\r\n this.container.classList.remove(\"Maximize\");\r\n this.container.classList.add(\"Minimize\");\r\n });\r\n }\r\n this.container.appendChild(modalWindowHeader.container);\r\n }\r\n\r\n this.container.appendChild(config.window.getElement());\r\n let headAndFootHeight: number = 0; //vyska hlavicky a paticky\r\n if (config) {\r\n //if (config.showHeader)\r\n // headAndFootHeight += 30;\r\n if (config.modalConfig.showFooter)\r\n headAndFootHeight += 30;\r\n }\r\n config.window.getElement().style.height = \"calc(100% - \" + headAndFootHeight + \"px)\";\r\n //#region Inicializace Footeru\r\n if (config && config.modalConfig.showFooter) {\r\n const modalWindowFooter: ModalWindowFooter = new ModalWindowFooter(null);\r\n this.container.appendChild(modalWindowFooter.container);\r\n }\r\n //#endregion Inicializace Footeru\r\n }\r\n //#endregion Constructors\r\n\r\n //#region IDisposable\r\n public dispose(): void {\r\n this.container.parentElement?.removeChild(this.container);\r\n }\r\n\r\n //#endregion IDisposable\r\n}\r\n\r\n/**\r\n * Reexport pro zpětnou kompatibilitu. Nově by se mělo importovat z ModalWindowInterfaces.\r\n */\r\nexport { IModalWindowConfiguration, ModalWindowType } from \"./ModalWindowInterfaces\";\r\n\r\nexport class ModalWindowHeader {\r\n //#region Events\r\n /**Udalost zavreni okna*/\r\n public close: Event<ModalWindowHeader, any> = new Event<ModalWindowHeader, any>();\r\n\r\n /**Udalost minimalizace okna*/\r\n public minimize: Event<ModalWindowHeader, any> = new Event<ModalWindowHeader, any>();\r\n\r\n /**Udalost maximalizace okna*/\r\n public maximize: Event<ModalWindowHeader, any> = new Event<ModalWindowHeader, any>();\r\n //#endregion Events\r\n\r\n //#region Fields\r\n public container: HTMLDivElement;\r\n private _closeButton: HTMLLabelElement;\r\n private _resizeButton: HTMLLabelElement;\r\n\r\n //#endregion Fields\r\n\r\n //#region Constructors\r\n constructor(_captionLocKey: string, showCloseButton: boolean, showMaxButton: boolean) {\r\n this.container = document.createElement(\"div\");\r\n this.container.classList.add(\"Header\");\r\n\r\n if (showCloseButton) {\r\n this._closeButton = document.createElement(\"label\");\r\n this._closeButton.classList.add(\"closeButton\");\r\n this._closeButton.title = \"Close\";\r\n this._closeButton.onclick = (() => {\r\n this.close.trigger(this, null);\r\n });\r\n\r\n this.container.appendChild(this._closeButton);\r\n }\r\n if (showMaxButton) {\r\n this._resizeButton = document.createElement(\"label\");\r\n this._resizeButton.classList.add(\"maxButton\");\r\n this._resizeButton.classList.add(\"resizeButton\");\r\n this._resizeButton.title = \"Maximize\";\r\n this._resizeButton.onclick = (() => {\r\n const el = this._resizeButton;\r\n if (el.classList.contains(\"maxButton\")) {\r\n this.minimize.trigger(this, null);\r\n el.classList.remove(\"maxButton\");\r\n el.classList.add(\"minButton\");\r\n } else {\r\n this.maximize.trigger(this, null);\r\n el.classList.remove(\"minButton\");\r\n el.classList.add(\"maxButton\");\r\n }\r\n });\r\n this.container.appendChild(this._resizeButton);\r\n }\r\n }\r\n\r\n //#endregion Constructors\r\n}\r\n\r\nexport class ModalWindowFooter {\r\n public container: HTMLDivElement;\r\n\r\n //#region Constructors\r\n constructor(content: HTMLDivElement) {\r\n if (!content)\r\n this.container = document.createElement(\"div\");\r\n else\r\n this.container = content;\r\n this.container.classList.add(\"Footer\");\r\n }\r\n\r\n //#endregion Constructors\r\n}\r\n","import { OWObject } from \"OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { FormGroupContainer } from \"UI/UI/DefaultInterface/FormGroupContainer\";\r\nimport { Event } from \"../../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../../Global/Base/IDisposable\";\r\nimport { IFRMParams } from \"../Controls/FormParameters\";\r\nimport { IWindowable } from \"../UIManagerInterfaces\";\r\nimport { FormResult } from \"../XGControls/Forms/FormResult\";\r\nimport { IForm } from \"../XGControls/IForm\";\r\nimport { ModalWindow, ModalWindowType } from \"../XGControls/ModalWindow\";\r\n\r\n/**\r\n * Položka FormManageru, obsahuje kolekci otevřených formulářů skládající se z hlavního formuláře a všech jeho podřízených\r\n * @includeToDoc\r\n */\r\nexport interface IFormGroup extends IDisposable {\r\n /** Událost volaná při otevření podřízeného formuláře */\r\n readonly formOpened: Event<IFormGroup, FormEvent>;\r\n /** Událost volaná při zavření podřízeného formuláře */\r\n readonly formClosed: Event<IFormGroup, FormEvent>;\r\n /** Událost volána při změně viditelnosti skupiny formulářů. */\r\n readonly formGroupVisibilityChanged: Event<IFormGroup, FormEventVisibilityChanged>;\r\n /** Událost volána při změně viditelnosti samotného formuláře. */\r\n readonly formVisibilityChanged: Event<IFormGroup, FormEventVisibilityChanged>;\r\n\r\n /** Název hlavního formuláře */\r\n readonly formName: string;\r\n /** identifikator otevřeného formuláře, který se naplní po otevření pro jednoznačnou identifikaci */\r\n readonly formInstanceId: string;\r\n /** Odkaz na formulář */\r\n readonly form: IWindowable;\r\n /** Aktualni modalni okno */\r\n readonly currentModal: ModalWindow;\r\n /** Kontejner obsahujici hlavni formular */\r\n readonly container: FormGroupContainer;\r\n\r\n /**\r\n * Otevře vlastní instanci formuláře\r\n *\r\n * @param form Vlastní form, který má byt zobrazen\r\n * @param init Nepovinná inicializační metoda, které je předáno aktuální IFormUI\r\n */\r\n openCustomModalForm<F extends IWindowable>(form: F): Promise<F>;\r\n\r\n /** Otevře nové modální okno */\r\n openForm(param: IFormGroupOpenModalParams): Promise<IForm>;\r\n /** Otevře hlavní formulář */\r\n openMainForm(): Promise<void>;\r\n /** Zavře celou skupinu */\r\n close(): Promise<void>;\r\n\r\n /** Zobrazí celou skupinu */\r\n show(): void;\r\n /** Skryje celou skupinu */\r\n hide(): void;\r\n}\r\n\r\nexport class IFormGroup {\r\n private static _properties: (keyof (IFormGroup))[] = [\"formOpened\", \"formClosed\", \"formVisibilityChanged\", \"formGroupVisibilityChanged\", \"currentModal\", \"formName\", \"formInstanceId\", \"form\", \"container\"];\r\n private static _methods: (keyof (IFormGroup))[] = [\"openCustomModalForm\", \"openForm\", \"openMainForm\", \"close\", \"show\", \"hide\"];\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport interface FormEventVisibilityChanged extends FormEvent {\r\n isVisible: boolean;\r\n}\r\n\r\nexport interface FormEvent {\r\n parentForm: IWindowable;\r\n form: IWindowable;\r\n}\r\n\r\ninterface IFormGroupOpenModalParamsData {\r\n parametricData?: IFRMParams;\r\n onClose?: (sender?: IWindowable, result?: FormResult) => void;\r\n type?: ModalWindowType;\r\n showBreadcrumbNav?: boolean;\r\n parentFormId?: string;\r\n}\r\n\r\ninterface IFormGroupOpenModalParamsFormName extends IFormGroupOpenModalParamsData {\r\n formName: string;\r\n}\r\n\r\ninterface IFormGroupOpenModalParamsIForm<F extends IWindowable> extends IFormGroupOpenModalParamsData {\r\n form: F;\r\n}\r\n\r\n/** Parametry pro otevření modálního okna s detailem objektu ve vazbě. */\r\nexport interface IFormGroupOpenModalAssociationParams extends IFormGroupOpenModalParamsFormName {\r\n object: OWObject;\r\n attrName: string;\r\n}\r\n\r\nexport type IFormGroupOpenModalParams = IFormGroupOpenModalParamsFormName | IFormGroupOpenModalParamsIForm<IWindowable>;\r\n","import { Event } from \"Global/Base/Events\";\r\nimport { GlobalContext } from \"Global/Base/GlobalContext\";\r\nimport { setupBem } from \"Global/Dom/bem\";\r\nimport { registerCustomElement } from \"UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IFormGroup } from \"../UI/FormManager/IFormGroup\";\r\n\r\nconst className = setupBem(\"form-group-container\");\r\n\r\n/**\r\n * Třída obsahující skupinu formulářů.\r\n */\r\nexport class FormGroupContainer extends HTMLElement {\r\n private _formName: string;\r\n private _id: string;\r\n private _formGroup: IFormGroup;\r\n private _isHomePage: boolean = false;\r\n\r\n public readonly visibilityChange: Event<FormGroupContainer, boolean> = new Event;\r\n\r\n public get visible(): boolean {\r\n return !this.classList.contains(className.modifier(\"hidden\")) && !this.classList.contains(className.modifier(\"initially-hidden\"));\r\n }\r\n public set visible(v: boolean) {\r\n if (!this.classList.contains(className.modifier(\"hidden\"))\r\n && !this.classList.contains(className.modifier(\"initially-hidden\")) == v) return;\r\n\r\n this.classList.toggle(className.modifier(\"hidden\"), !v);\r\n\r\n if (v)\r\n this.classList.remove(className.modifier(\"initially-hidden\"));\r\n\r\n this.visibilityChange.trigger(this, v);\r\n }\r\n\r\n public get formName(): string {\r\n return this._formName;\r\n }\r\n public set formName(v: string) {\r\n this._formName = v; this.setAttribute(\"data-form\", v);\r\n }\r\n\r\n public get formGroup(): IFormGroup {\r\n return this._formGroup;\r\n }\r\n public set formGroup(v: IFormGroup) {\r\n this._formGroup = v;\r\n }\r\n\r\n public get isHomePage(): boolean {\r\n return this._isHomePage;\r\n }\r\n public set isHomePage(v: boolean) {\r\n this._isHomePage = v; this.classList.toggle(className.modifier(\"homepage\"), !v);\r\n }\r\n\r\n public get formId(): string {\r\n return this._id;\r\n }\r\n public set formId(v: string) {\r\n this._id = v; this.setAttribute(\"data-form-id\", v);\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this.classList.add(className());\r\n this.classList.add(className.modifier(\"initially-hidden\"));\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-formgroupcontainer\", FormGroupContainer);\r\nGlobalContext.registerType(FormGroupContainer);\r\n","import { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { BreadcrumbNavItem } from \"./BreadcrumbNavItem\";\r\nimport { IWindowable } from \"./UIManagerInterfaces\";\r\n\r\n/**\r\n * Interface obstarávající obsluhu drobečkové navigace\r\n * @includeToDoc\r\n */\r\nexport interface IBreadcrumbNav extends IDisposable {\r\n /**\r\n * Přidá položku do drobečkové navigace\r\n * @param form Odkaz na formulář\r\n */\r\n addNavigationItem(form: IWindowable): BreadcrumbNavItem;\r\n /**\r\n * Odstraní nejvyšší položku z drobečkové navigace\r\n */\r\n removeTopItem(): void;\r\n /** Nainicializuje drobečkovou navigaci */\r\n initialize(): Promise<void>;\r\n\r\n /** Skryje drobečkovou navigaci */\r\n hide(): void;\r\n /** Zobrazí drobečkovou navigaci */\r\n show(): void;\r\n /** Vrátí html element obsahující breadcrumbs */\r\n readonly element: HTMLElement;\r\n\r\n /**\r\n * Položky v navigaci\r\n */\r\n items: BreadcrumbNavItem[];\r\n}\r\n\r\nexport class IBreadcrumbNav {\r\n private static _methods: (keyof(IBreadcrumbNav))[] = [\"addNavigationItem\", \"removeTopItem\", \"initialize\", \"hide\", \"show\"];\r\n private static _properties: (keyof(IBreadcrumbNav))[] = [\"element\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null\r\n && !this._properties.some((value) => !Reflect.has(instance, value))\r\n && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\nexport enum BreadcrumbNavItemIconType {\r\n arrow = \"ui-chevron-right\",\r\n close = \"ui-circle-cross\",\r\n view = \"ui-eye\",\r\n}\r\n","import { EventsController } from \"Global/Dom/EventsController\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../Global/Base/IDisposable\";\r\nimport { EnumUtils } from \"../../../Global/Base/Utils/EnumUtils\";\r\nimport { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI/UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { EventHelper } from \"../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { ElementUtils } from \"../../UI.ElementarControls/Helpers/ElementUtils\";\r\nimport { BreadcrumbNavItemIconType } from \"./IBreadcrumbNav\";\r\nimport { IWindowable, WindowState } from \"./UIManagerInterfaces\";\r\nimport { IForm } from \"./XGControls/IForm\";\r\n\r\nconst ENUM_VALUE_LIST = EnumUtils.getEnumAsArray(BreadcrumbNavItemIconType);\r\n\r\nexport class BreadcrumbNavItem implements IDisposable {\r\n //#region Events\r\n public readonly onSelectedEvent: Event<BreadcrumbNavItem, BreadcrumbNavItem> = new Event<BreadcrumbNavItem, BreadcrumbNavItem>();\r\n public readonly onViewEvent: Event<BreadcrumbNavItem, BreadcrumbNavItem> = new Event<BreadcrumbNavItem, BreadcrumbNavItem>();\r\n public readonly onCloseEvent: Event<BreadcrumbNavItem, void> = new Event<BreadcrumbNavItem, void>();\r\n\r\n private _eventsController: EventsController = new EventsController();\r\n //#endregion Events\r\n\r\n //#region Listeners\r\n private _onClickListener: EventListener;\r\n private _onMouseOverListener: EventListener;\r\n private _onMouseOutListener: EventListener;\r\n private _iconElementClickListener: EventListener;\r\n private _keyDownListener: EventListener;\r\n private _keyUpListener: EventListener;\r\n private _onFocusListener: EventListener;\r\n private _onFocusOutListener: EventListener;\r\n private _onIconFocusListener: EventListener;\r\n //#endregion Listeners\r\n\r\n //#region Fields\r\n public element: HTMLElement;\r\n private _iconElement: HTMLElement;\r\n private _textElement: HTMLElement;\r\n private _canClose = true;\r\n private _isDisposed = false;\r\n\r\n private readonly _breadcrumbItemStyleClass = \"breadcrumbnav__item\";\r\n //#endregion Fields\r\n\r\n //#region Property\r\n public get isLast(): boolean {\r\n return this._iconElement.classList.contains(BreadcrumbNavItemIconType.close);\r\n }\r\n\r\n public get canClose(): boolean {\r\n return this._canClose;\r\n }\r\n\r\n public get isPreviewAllowed(): boolean {\r\n return this._iconElement.classList.contains(BreadcrumbNavItemIconType.view);\r\n }\r\n\r\n public get form(): IWindowable {\r\n return this._form;\r\n }\r\n\r\n public get isActive(): boolean {\r\n return this.element.classList.contains(this._breadcrumbItemStyleClass + \"--active\");\r\n }\r\n //#endregion Property\r\n\r\n //#region Constructors\r\n constructor(private _form: IWindowable, private _lockey: string, private _allowViewMode: boolean, private _formName?: string, public itemId?: number) {\r\n this._initialize();\r\n\r\n if (this.form instanceof IForm)\r\n this._eventsController.add(this.form.titleChanged, (_form: IForm, text: string) => ElementUtils.updateElementTextContent(this._textElement, text, _lockey));\r\n }\r\n //#endregion Constructors\r\n\r\n //#region Methods\r\n private _initialize(): void {\r\n this.element = createElement({ type: \"span\", classes: [this._breadcrumbItemStyleClass, this._breadcrumbItemStyleClass + \"--active\"] });\r\n this.element.tabIndex = 0;\r\n this._textElement = createElement({ type: \"span\", classes: [this._breadcrumbItemStyleClass + \"__text\"] });\r\n this._iconElement = createElement({ type: \"span\", classes: [this._breadcrumbItemStyleClass + \"__icon\", \"icon\", BreadcrumbNavItemIconType.close] });\r\n this._iconElement.tabIndex = 0;\r\n\r\n ElementUtils.updateElementTextContent(this._textElement, this.form instanceof IForm ? this.form.customTitle : undefined, this._lockey);\r\n\r\n if (this._formName) {\r\n this._textElement.setAttribute(\"data-formname\", this._formName);\r\n }\r\n\r\n this.element.appendChild(this._textElement);\r\n this.element.appendChild(this._iconElement);\r\n\r\n if (this.form instanceof IForm && !this.form.canClose) {\r\n this._iconElement.classList.remove(BreadcrumbNavItemIconType.close);\r\n this._canClose = false;\r\n }\r\n\r\n this._initListeners();\r\n }\r\n\r\n private async _initListeners(): Promise<void> {\r\n if (this._iconElementClickListener) {\r\n this._iconElement.removeEventListener(\"click\", this._iconElementClickListener);\r\n this._iconElementClickListener = null;\r\n }\r\n\r\n if (!this._onClickListener) {\r\n this.element.addEventListener(\"click\", this._onClickListener = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n this.setNavItemActive();\r\n });\r\n }\r\n // Pokud máme povolenou sys. operaci ADVBRDCRMB, a tato položka není aktivní ani poslední,\r\n // tak nastavíme listenery pro zobrazení ikony \"oka\" a pro \"oko\" samotné\r\n if (this._allowViewMode && !this.isActive && !this.isLast) {\r\n if (!this._onMouseOverListener) {\r\n this.element.addEventListener(\"mouseover\", this._onMouseOverListener = (_e: MouseEvent) => {\r\n this._addViewClickListener();\r\n });\r\n }\r\n if (!this._onMouseOutListener) {\r\n this.element.addEventListener(\"mouseout\", this._onMouseOutListener = (_e: MouseEvent) => {\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.arrow, false);\r\n this._iconElement.removeEventListener(\"click\", this._iconElementClickListener);\r\n this._iconElementClickListener = null;\r\n });\r\n }\r\n if (!this._onFocusListener) {\r\n this.element.addEventListener(\"focus\", this._onFocusListener = (_e: FocusEvent) => {\r\n this._addViewClickListener();\r\n });\r\n }\r\n if (!this._onFocusOutListener) {\r\n this.element.addEventListener(\"focusout\", this._onFocusOutListener = (e: FocusEvent) => {\r\n const leaving = !this.element.contains(e.relatedTarget as HTMLElement); // Když přechází focus na potomka (ikonu \"oka\"), tak nechci rušit listener\r\n if (leaving) {\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.arrow, false);\r\n this._iconElement.removeEventListener(\"click\", this._iconElementClickListener);\r\n this._iconElementClickListener = null;\r\n }\r\n });\r\n }\r\n if (!this._onIconFocusListener) {\r\n this._iconElement.addEventListener(\"focus\", this._onIconFocusListener = (_e: FocusEvent) => {\r\n if (!this.isLast) {\r\n this._addViewClickListener();\r\n }\r\n });\r\n }\r\n } else {\r\n if (!this._iconElementClickListener) {\r\n this._iconElement.addEventListener(\"click\", this._iconElementClickListener = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n this._closeNavItem();\r\n });\r\n }\r\n // Odstranění listenerů pro zobrazení ikony \"oka\"\r\n if (this._onMouseOverListener) {\r\n this.element.removeEventListener(\"mouseover\", this._onMouseOverListener);\r\n this._onMouseOverListener = null;\r\n }\r\n if (this._onMouseOutListener) {\r\n this.element.removeEventListener(\"mouseout\", this._onMouseOutListener);\r\n this._onMouseOutListener = null;\r\n }\r\n if (this._onFocusListener) {\r\n this.element.removeEventListener(\"focus\", this._onFocusListener);\r\n this._onFocusListener = null;\r\n }\r\n if (this._onFocusOutListener) {\r\n this.element.removeEventListener(\"focusout\", this._onFocusOutListener);\r\n this._onFocusOutListener = null;\r\n }\r\n }\r\n this.element.addEventListener(\"keydown\", this._keyDownListener = (e: KeyboardEvent) => {\r\n EventHelper.stopImmediatePropagation(e);\r\n if (e.key == \"Enter\") {\r\n if (e.target == this._iconElement) {\r\n if (this.isLast) {\r\n this._closeNavItem();\r\n } else if (this.isPreviewAllowed) {\r\n this._setNavItemToView();\r\n }\r\n } else {\r\n this.setNavItemActive();\r\n }\r\n }\r\n if (e.key == \"Escape\") {\r\n this._closeNavItem();\r\n }\r\n });\r\n this.element.addEventListener(\"keyup\", this._keyUpListener = (e: KeyboardEvent) => {\r\n EventHelper.stopImmediatePropagation(e); // Některé další části poslouhají na keyup a pak to dělá neplechu\r\n });\r\n\r\n this._eventsController.add(this.form.stateChanged, (_, data) => {\r\n if (data.state == WindowState.closeDisabled) {\r\n this._iconElement.classList.toggle(BreadcrumbNavItemIconType.close, !data.value);\r\n this._canClose = !data.value;\r\n }\r\n });\r\n }\r\n\r\n private _closeNavItem(): void {\r\n this.onCloseEvent.trigger(this, null);\r\n }\r\n\r\n private _setNavItemToView(): void {\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.arrow);\r\n this.onViewEvent.trigger(this, this);\r\n\r\n this.showCurrentForm();\r\n }\r\n\r\n public setNavItemActive(): void {\r\n this.onSelectedEvent.trigger(this, this);\r\n\r\n this.showCurrentForm();\r\n }\r\n\r\n public showCurrentForm(): void {\r\n this.setActiveState(true);\r\n }\r\n\r\n public changeBreadcrumbNavItemIconType(value: BreadcrumbNavItemIconType, initListeners: boolean = true): void {\r\n this._iconElement.classList.remove(...ENUM_VALUE_LIST);\r\n //Odstraneni icony pokud se jedna o posledni item a ma hideCloseButton\r\n if (value == null) {\r\n return;\r\n }\r\n\r\n if (value != BreadcrumbNavItemIconType.close || this._canClose)\r\n this._iconElement.classList.add(value); //Oteviram dalsi formular a aktualni ma nastaveno hideCloseButton tak mu musim pridat iconu\r\n\r\n if (value === BreadcrumbNavItemIconType.close) {\r\n this._setIconTitle(\"GUI-508347\"); // Zavřít\r\n } else if (value === BreadcrumbNavItemIconType.view) {\r\n this._setIconTitle(\"GUI-597156\"); // Náhled\r\n } else {\r\n this._setIconTitle();\r\n }\r\n\r\n if (initListeners) {\r\n this._initListeners();\r\n }\r\n }\r\n\r\n private async _setIconTitle(titleLockey?: string): Promise<void> {\r\n if (!titleLockey) {\r\n this._iconElement.title = \"\";\r\n return;\r\n }\r\n const title = await Localization.getLocalizationItem(titleLockey);\r\n\r\n if (this.isDisposed()) { // Než doběhne await pro načtení lokalizace, může mezi tím proběhnout dispose, proto je třeba zkontrolovat.\r\n return;\r\n }\r\n\r\n this._iconElement.title = title.primaryText;\r\n }\r\n\r\n private _addViewClickListener(): void {\r\n if (this.isActive) {\r\n return;\r\n }\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.view, false);\r\n if (!this._iconElementClickListener) {\r\n this._iconElement.addEventListener(\"click\", this._iconElementClickListener = (e: MouseEvent) => {\r\n EventHelper.stopPropagation(e);\r\n this._setNavItemToView();\r\n });\r\n }\r\n }\r\n\r\n public setActiveState(isActive: boolean, changeIkon: boolean = false): void {\r\n if (isActive) {\r\n if (!this.isActive) {\r\n this.element.classList.add(this._breadcrumbItemStyleClass + \"--active\");\r\n }\r\n if (changeIkon) {\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.close);\r\n }\r\n } else {\r\n if (this.isActive) {\r\n this.element.classList.remove(this._breadcrumbItemStyleClass + \"--active\");\r\n if (changeIkon) {\r\n this.changeBreadcrumbNavItemIconType(BreadcrumbNavItemIconType.arrow);\r\n }\r\n }\r\n }\r\n }\r\n //#endregion Methods\r\n\r\n //#region Dispose\r\n\r\n /**\r\n * Vrací true pokud je instance již v disposed stavu.\r\n */\r\n public isDisposed(): boolean {\r\n return this._isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n this.onSelectedEvent.removeAll();\r\n this.onViewEvent.removeAll();\r\n this.onCloseEvent.removeAll();\r\n\r\n this._iconElement?.removeEventListener(\"focus\", this._onIconFocusListener);\r\n this._iconElement?.removeEventListener(\"click\", this._iconElementClickListener);\r\n this._iconElement?.remove();\r\n\r\n this.element?.removeEventListener(\"click\", this._onClickListener);\r\n this.element?.removeEventListener(\"mouseover\", this._onMouseOverListener);\r\n this.element?.removeEventListener(\"mouseout\", this._onMouseOutListener);\r\n this.element?.removeEventListener(\"keydown\", this._keyDownListener);\r\n this.element?.removeEventListener(\"keyup\", this._keyUpListener);\r\n this.element?.removeEventListener(\"focus\", this._onFocusListener);\r\n this.element?.removeEventListener(\"focusout\", this._onFocusOutListener);\r\n this.element?.removeEventListener(\"focusout\", this._onIconFocusListener);\r\n this.element?.remove();\r\n\r\n this._eventsController.dispose();\r\n this._isDisposed = true;\r\n }\r\n //#endregion Dispose\r\n}\r\n","import { DataConverter } from \"../../Global/Base/Converters/DataConverter\";\r\nimport { InvalidArgumentException } from \"../../Global/Base/Exceptions\";\r\nimport { IDisposable } from \"../../Global/Base/IDisposable\";\r\nimport { EnumUtils } from \"../../Global/Base/Utils/EnumUtils\";\r\nimport { FunctionUtils } from \"../../Global/Base/Utils/FunctionUtils\";\r\nimport { ElementUtils } from \"./Helpers/ElementUtils\";\r\nimport { createElement, registerCustomElement } from \"./Utils/CustomElementUtils\";\r\n/**\r\n * Orientace SplitPanelu\r\n * @includeToDoc\r\n */\r\nexport enum SplitterOrientation {\r\n /**\r\n * Panely jsou pod sebou a splitter je na šířku\r\n */\r\n vertical,\r\n /**\r\n * Panely jsou vedle sebe a splitter je na výšku\r\n */\r\n horizontal,\r\n}\r\n\r\n/**\r\n * Stav minimalizace části SplitPanelu\r\n * @includeToDoc\r\n */\r\nexport enum SplitPanelMinimalizationState {\r\n /**\r\n * Žádná část není minimalizovaná\r\n */\r\n none,\r\n /**\r\n * Obsah je minimalizovaný k začátku (levé nebo horní části), takže je vidět jen pravá nebo dolní část\r\n */\r\n beginning,\r\n /**\r\n * Obsah je minimalizovaný ke konci (pravé nebo dolní části), takže je vidět jen levá nebo horní část\r\n */\r\n end,\r\n}\r\n\r\n/**\r\n * Kontejnerová komponenta umožňující dynamickou uživatelskou změnu rozměrů vnořených komponent. Musí obsahovat právě dvě komponenty.\r\n * @includeToDoc\r\n */\r\nexport class SplitPanel extends HTMLElement {\r\n public static readonly is = \"tsc-splitpanel\";\r\n\r\n private _firstPanel: HTMLElement;\r\n private _secondPanel: HTMLElement;\r\n private _splitter: HTMLElement;\r\n private _splitterMinimize: SplitPanelMinimizeButton;\r\n private _orientation?: SplitterOrientation;\r\n private _minSize?: number | null;\r\n private _splitterPosition?: number;\r\n private _inverseSubcomponents?: boolean;\r\n private _controller: SplitterController;\r\n private _componentsInversed?: boolean;\r\n private _minimalized: SplitPanelMinimalizationState;\r\n private _splitterMovedDebounced: Function;\r\n private _lastSplitterPositionPct?: number;\r\n private _isAttached: boolean;\r\n\r\n // @ts-ignore // nečteno, ale ponecháno\r\n private _minimizeListener?: EventListener;\r\n\r\n /**\r\n * Zda je komponenta připojená v DOMu\r\n */\r\n public get isAttached(): boolean {\r\n return this._isAttached;\r\n }\r\n\r\n /**\r\n * Orientace komponent v kontejneru\r\n * horizontal - komponenty jsou vedle sebe a splitter je na výšku (výchozí)\r\n * vertical - komponenty jsou pod sebou a splitter je na šířku\r\n */\r\n public get orientation(): SplitterOrientation {\r\n if (this._orientation === undefined) {\r\n const o = this.getAttribute(\"orientation\");\r\n if (EnumUtils.hasEnumValue(SplitterOrientation, o)) {\r\n this._orientation = EnumUtils.getEnumValueFromName(SplitterOrientation, o, false);\r\n } else {\r\n this._orientation = SplitterOrientation.horizontal;\r\n }\r\n }\r\n\r\n return this._orientation as SplitterOrientation;\r\n }\r\n\r\n public set orientation(v: SplitterOrientation) {\r\n if (this._orientation === v)\r\n return;\r\n\r\n this._orientation = v;\r\n this.classList.toggle(\"horizontal\", v === SplitterOrientation.horizontal);\r\n this.classList.toggle(\"vertical\", v === SplitterOrientation.vertical);\r\n this.setAttribute(\"orientation\", SplitterOrientation[v]);\r\n this._configure();\r\n }\r\n\r\n /**\r\n * Minimální rozměry, pod které nelze zmenšit vnořené komponenty\r\n * Hodnota null toto nastavení vypíná a je defaultní\r\n */\r\n public get minSize(): number | null {\r\n if (this._minSize === undefined) {\r\n const s = this.getAttribute(\"min-size\");\r\n this._minSize = s && !isNaN(+s) ? +s : null;\r\n }\r\n\r\n return this._minSize;\r\n }\r\n\r\n public set minSize(v: number | null) {\r\n if (v !== null && isNaN(v))\r\n return;\r\n if (this._minSize === v)\r\n return;\r\n\r\n this._minSize = v;\r\n if (v)\r\n this.setAttribute(\"min-size\", v.toString());\r\n else\r\n this.removeAttribute(\"min-size\");\r\n this._configure();\r\n }\r\n\r\n /**\r\n * Výchozí procentuální pozice umístění splitteru\r\n * Defaultní hodnotou je 50 (50% - stejná velikost obou komponent a splitter mezi nimi)\r\n */\r\n public get splitterPosition(): number {\r\n if (this._splitterPosition === undefined) {\r\n const s = this.getAttribute(\"splitter-position\");\r\n this._splitterPosition = s && !isNaN(+s) ? +s : 50;\r\n }\r\n\r\n return this._splitterPosition;\r\n }\r\n\r\n public set splitterPosition(v: number) {\r\n if (isNaN(v) || v < 0 || v > 100)\r\n return;\r\n\r\n if (this._splitterPosition === v)\r\n return;\r\n\r\n this._splitterPosition = v;\r\n if (v)\r\n this.setAttribute(\"splitter-position\", v.toString());\r\n else\r\n this.removeAttribute(\"splitter-position\");\r\n this._configure();\r\n }\r\n\r\n /**\r\n * Současná procentuální pozice umístění splitteru\r\n */\r\n public get currentSplitterPosition(): number {\r\n return this.isAttached ? this._controller.splitterPositionPct : this._splitterPosition;\r\n }\r\n\r\n public set currentSplitterPosition(v: number) {\r\n if (this.isAttached)\r\n this._controller.splitterPositionPct = v;\r\n else\r\n this.splitterPosition = v;\r\n }\r\n\r\n /**\r\n * Komponenty vložené ve SplitPanelu budou zobrazeny v opačném pořadí. Tzn. druhá přidaná komponenta bude zobrazena jako první.\r\n */\r\n public get inverseSubcomponents(): boolean {\r\n if (this._inverseSubcomponents === undefined) {\r\n this._inverseSubcomponents = DataConverter.toBoolean(this.getAttribute(\"inverse-subcomponents\"));\r\n }\r\n\r\n return this._inverseSubcomponents;\r\n }\r\n\r\n public set inverseSubcomponents(v: boolean) {\r\n if (this._inverseSubcomponents === v)\r\n return;\r\n\r\n this._inverseSubcomponents = v;\r\n this.setAttribute(\"inverse-subcomponents\", this._inverseSubcomponents.toString());\r\n this._configure();\r\n }\r\n\r\n /**\r\n * Stav minimalizace části panelu\r\n */\r\n public get minimalized(): SplitPanelMinimalizationState {\r\n if (this._minimalized === undefined) {\r\n const m = this.getAttribute(\"minimalized\");\r\n this._minimalized = m && EnumUtils.getEnumValueFromName(SplitPanelMinimalizationState, m) || SplitPanelMinimalizationState.none;\r\n }\r\n\r\n return this._minimalized;\r\n }\r\n\r\n public set minimalized(v: SplitPanelMinimalizationState) {\r\n if (this._minimalized === v)\r\n return;\r\n\r\n this._minimalized = v;\r\n this.setAttribute(\"minimalized\", SplitPanelMinimalizationState[v]);\r\n\r\n if (this._minimalized !== SplitPanelMinimalizationState.none && this._controller)\r\n this._controller.collapse(this._minimalized);\r\n }\r\n\r\n protected static get observedAttributes(): string[] {\r\n return [\"orientation\", \"min-size\", \"splitter-position\", \"inverse-subcomponents\", \"minimalized\"];\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this.classList.add(\"split-panel\", this.orientation === SplitterOrientation.vertical ? \"vertical\" : \"horizontal\");\r\n this.minimalized = SplitPanelMinimalizationState.none;\r\n this._splitterMovedDebounced = FunctionUtils.debouncedFunction(() => ElementUtils.callEvent(this, \"splittermove\", undefined, true), 300);\r\n }\r\n\r\n private _configure(): void {\r\n if (!this.isAttached) // u nepřipojeného elementu nefunguje minSize, protože se nedá vypočítat současná velikost\r\n return;\r\n\r\n if (this.inverseSubcomponents && !this._componentsInversed && this._firstPanel && this._secondPanel) {\r\n this._checkSubcomponentSwitch();\r\n this._componentsInversed = true;\r\n }\r\n\r\n //this._firstPanel.style.width = this.orientation === SplitterOrientation.horizontal ? this.splitterPosition + \"%\" : \"100%\";\r\n //this._firstPanel.style.height = this.orientation === SplitterOrientation.horizontal ? \"100%\" : this.splitterPosition + \"%\";\r\n\r\n if (this._controller != null)\r\n this._controller.dispose();\r\n\r\n // spravuje logiku změny velikosti\r\n this._controller = new SplitterController(this, this._splitter, this._firstPanel, this._secondPanel, this.orientation,\r\n [this.splitterPosition, 100 - this.splitterPosition], this.minSize != null ? this.minSize : 0,\r\n (state: SplitPanelMinimalizationState) => this.minimalized = state, () => this._splitterMovedDebounced());\r\n }\r\n\r\n private _createPanelElement(element: HTMLElement): void {\r\n if (this._firstPanel && this._secondPanel)\r\n throw new InvalidArgumentException(\"[SplitPanel] Count of child elements can be at most 2\");\r\n\r\n if (!this._firstPanel) {\r\n this._firstPanel = element;\r\n this._firstPanel.classList.add(\"split-panel-container\", \"split-panel-container-first\");\r\n return;\r\n }\r\n\r\n if (!this._secondPanel) {\r\n this._secondPanel = element;\r\n this._secondPanel.classList.add(\"split-panel-container\", \"split-panel-container-second\");\r\n\r\n if (!this._splitter) {\r\n this._splitter = createElement({ classes: \"splitter\" });\r\n this._splitterMinimize = new SplitPanelMinimizeButton();\r\n this._splitterMinimize.addEventListener(\"minimize\", this._minimizeListener = (e: IMinimizeEvent) => {\r\n if (e.detail.style === SplitPanelMinimalizationState.none)\r\n return;\r\n\r\n this.classList.add(\"transition\");\r\n this._firstPanel.addEventListener(\"transitionend\", () => this.classList.remove(\"transition\"), { once: true });\r\n\r\n if ((this._minimalized === SplitPanelMinimalizationState.beginning && e.detail.style === SplitPanelMinimalizationState.end) || // úplně zprava úplně doleva\r\n (this._minimalized === SplitPanelMinimalizationState.end && e.detail.style === SplitPanelMinimalizationState.beginning)) { // úplně zleva úplně doprava\r\n this._controller.splitterPositionPct = this._lastSplitterPositionPct || 50; // vrátím se do poslední polohy nebo do půlky\r\n } else {\r\n this._lastSplitterPositionPct = this.currentSplitterPosition;\r\n this._controller.collapse(e.detail.style);\r\n }\r\n\r\n this._splitterMovedDebounced();\r\n });\r\n\r\n this._splitter.appendChild(this._splitterMinimize);\r\n }\r\n this._firstPanel.insertAdjacentElement(\"afterend\", this._splitter);\r\n }\r\n }\r\n\r\n /**\r\n * Přehodí pořadí obou panelů\r\n */\r\n private _checkSubcomponentSwitch(): void {\r\n this._secondPanel.remove();\r\n this._splitter.remove();\r\n\r\n this._firstPanel.insertAdjacentElement(\"beforebegin\", this._secondPanel);\r\n this._firstPanel.insertAdjacentElement(\"beforebegin\", this._splitter);\r\n\r\n const second = this._secondPanel;\r\n this._secondPanel = this._firstPanel;\r\n this._firstPanel = second;\r\n }\r\n\r\n protected connectedCallback(): void {\r\n this._isAttached = true;\r\n\r\n if (this.children.length > 0 && !this._firstPanel && !this._secondPanel) {\r\n this._createPanelElement(this.children[0] as HTMLElement);\r\n if (this.children.length > 1) {\r\n this._createPanelElement(this.children[1] as HTMLElement);\r\n }\r\n\r\n if (this.children.length > 3) // třetí element je splitter\r\n for (let i = 3; i < this.children.length; ++i) // pokud by tam někdo naskládal víc elementů (nebo by se tam vygenerovaly elementy pro práva), tak se skryjí a ignorují\r\n (this.children[i] as HTMLElement).style.display = \"none\";\r\n }\r\n\r\n this._configure();\r\n }\r\n\r\n protected disconnectedCallback(): void {\r\n this._isAttached = false;\r\n\r\n if (this._controller != null)\r\n this._controller.dispose();\r\n }\r\n\r\n protected attributeChangedCallback(attrName: string, _oldVal: string, newVal: string): void {\r\n switch (attrName) {\r\n case \"orientation\":\r\n this.orientation = SplitterOrientation[newVal as \"vertical\" | \"horizontal\"] || SplitterOrientation.vertical;\r\n break;\r\n case \"min-size\":\r\n this.minSize = +newVal;\r\n break;\r\n case \"splitter-position\":\r\n this.splitterPosition = +newVal;\r\n break;\r\n case \"inverse-subcomponents\":\r\n this.inverseSubcomponents = newVal != null && newVal.toLowerCase() === \"true\";\r\n break;\r\n case \"minimalized\":\r\n this.minimalized = newVal && EnumUtils.getEnumValueFromName(SplitPanelMinimalizationState, newVal) || SplitPanelMinimalizationState.none;\r\n break;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Událost minimalizace subkomponenty SplitPanelu\r\n */\r\ninterface IMinimizeEvent extends CustomEvent {\r\n detail: IMinimizeEventData;\r\n}\r\n\r\n/**\r\n * Data událost minimalizace subkomponenty SplitPanelu\r\n */\r\ninterface IMinimizeEventData {\r\n style: SplitPanelMinimalizationState;\r\n}\r\n\r\nclass SplitPanelMinimizeButton extends HTMLElement {\r\n public static readonly is = \"tsc-splitpanel-minimizebutton\";\r\n\r\n private _menu?: HTMLElement;\r\n private _minimizeBeginningElement?: HTMLElement;\r\n private _minimizeEndElement?: HTMLElement;\r\n\r\n private _minimizeBeginningListener?: EventListener;\r\n private _minimizeEndListener?: EventListener;\r\n private _mouseenterListener?: EventListener;\r\n private _mouseleaveListener?: EventListener;\r\n private _cancelEventListener?: EventListener;\r\n\r\n protected static get observedAttributes(): string[] {\r\n return [\"minimalized\"];\r\n }\r\n\r\n constructor(self?: any) {\r\n super();\r\n self ? self._constructor() : this._constructor(); // polyfill\r\n }\r\n\r\n protected _constructor(): void {\r\n this.classList.add(\"minimize-button\", \"icon\", \"ui-more\");\r\n }\r\n\r\n protected connectedCallback(): void {\r\n if (this.children.length === 0) {\r\n this._menu = createElement({ classes: \"minimize-menu\", css: { opacity: 0, display: \"none\" } });\r\n this._minimizeBeginningElement = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"ui-chevron-top-small\"] });\r\n this._minimizeEndElement = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"ui-chevron-bottom-small\"] });\r\n\r\n this._menu.appendChild(this._minimizeBeginningElement);\r\n this._menu.appendChild(this._minimizeEndElement);\r\n this.appendChild(this._menu);\r\n }\r\n\r\n this._minimizeBeginningElement.addEventListener(\"click\", this._minimizeBeginningListener = () => {\r\n if (this._minimizeBeginningElement.classList.contains(\"Disabled\"))\r\n return;\r\n this._hide(false);\r\n ElementUtils.callEvent(this, \"minimize\", { style: SplitPanelMinimalizationState.beginning } as IMinimizeEventData);\r\n });\r\n this._minimizeEndElement.addEventListener(\"click\", this._minimizeEndListener = () => {\r\n if (this._minimizeEndElement.classList.contains(\"Disabled\"))\r\n return;\r\n this._hide(false);\r\n ElementUtils.callEvent(this, \"minimize\", { style: SplitPanelMinimalizationState.end } as IMinimizeEventData);\r\n });\r\n\r\n this.addEventListener(\"mouseenter\", this._mouseenterListener = (_e) => {\r\n this._show();\r\n });\r\n this._menu.addEventListener(\"mouseleave\", this._mouseleaveListener = (_e) => {\r\n this._hide();\r\n });\r\n\r\n // tažení za šipky nebude nic dělat\r\n this._cancelEventListener = (e: Event) => e.stopPropagation();\r\n this._menu.addEventListener(\"mousedown\", this._cancelEventListener);\r\n this._menu.addEventListener(\"touchstart\", this._cancelEventListener, { passive: false });\r\n }\r\n\r\n protected disconnectedCallback(): void {\r\n if (this._mouseenterListener)\r\n this.removeEventListener(\"mouseenter\", this._mouseenterListener);\r\n if (this._mouseleaveListener)\r\n this._menu.removeEventListener(\"mouseleave\", this._mouseleaveListener);\r\n if (this._minimizeBeginningElement && this._minimizeBeginningListener)\r\n this._minimizeBeginningElement.removeEventListener(\"click\", this._minimizeBeginningListener);\r\n if (this._minimizeEndElement && this._minimizeEndListener)\r\n this._minimizeEndElement.removeEventListener(\"click\", this._minimizeEndListener);\r\n if (this._cancelEventListener) {\r\n this._menu.removeEventListener(\"mousedown\", this._cancelEventListener);\r\n this._menu.removeEventListener(\"touchstart\", this._cancelEventListener);\r\n }\r\n }\r\n\r\n private _hide(soft: boolean = true): void {\r\n if (soft) {\r\n this._menu.classList.add(\"transition\");\r\n this._menu.addEventListener(\"transitionend\", () => {\r\n this._menu.classList.remove(\"transition\");\r\n if (this._menu.style.opacity === \"0\")\r\n this._menu.style.display = \"none\";\r\n }, { once: true });\r\n }\r\n\r\n this._menu.style.opacity = \"0\";\r\n }\r\n\r\n private _show(soft: boolean = true): void {\r\n if (soft) {\r\n this._menu.classList.add(\"transition\");\r\n this._menu.addEventListener(\"transitionend\", () => {\r\n this._menu.classList.remove(\"transition\");\r\n }, { once: true });\r\n }\r\n\r\n this._menu.style.display = \"\";\r\n this._menu.style.opacity = \"1\";\r\n }\r\n}\r\n\r\n/**\r\n * Logická komponenta ovládající posun splitteru a změnu rozměrů komponent\r\n */\r\nclass SplitterController implements IDisposable {\r\n private _split: Split | null;\r\n private _minimalized: SplitPanelMinimalizationState;\r\n\r\n public set splitterPositionPct(position: number) {\r\n this._split.setSizes([position, 100 - position]);\r\n }\r\n\r\n public get splitterPositionPct(): number {\r\n return this._split.getSizes()[0];\r\n }\r\n\r\n constructor(_splitPanel: HTMLElement, splitter: HTMLElement, element1: HTMLElement, element2: HTMLElement, orientation: SplitterOrientation, sizes: number[],\r\n minSize?: number, onMinimalization?: (state: SplitPanelMinimalizationState) => void, onDrag?: Function) {\r\n this._minimalized = SplitPanelMinimalizationState.none;\r\n this._split = new Split([element1, element2], {\r\n sizes: sizes,\r\n gutter: () => splitter,\r\n gutterSize: 12, // hodnota by měla odpovídat proměnné @gutter z ControlsVarabless.less\r\n direction: orientation === SplitterOrientation.horizontal ? \"horizontal\" : \"vertical\",\r\n minSize: [minSize, minSize],\r\n onDrag: () => {\r\n window.dispatchEvent(new CustomEvent(\"resizecomponent\"));\r\n if (onDrag)\r\n onDrag();\r\n }, // událost oznamuje změnu rozměrů, na které mohou reagovat další komponenty\r\n onMinimalization: (state: SplitPanelMinimalizationState) => {\r\n this._minimalized = state;\r\n window.dispatchEvent(new CustomEvent(\"resizecomponent\"));\r\n if (onMinimalization)\r\n onMinimalization(state);\r\n },\r\n });\r\n }\r\n\r\n public collapse(minimalizedState: number, respectMinSize: boolean = true): void {\r\n if (this._minimalized === minimalizedState)\r\n return;\r\n\r\n this._minimalized = minimalizedState;\r\n this._split.collapse(this._minimalized === SplitPanelMinimalizationState.beginning ? 0 : 1, respectMinSize);\r\n }\r\n\r\n public dispose(): void {\r\n this._split?.destroy();\r\n }\r\n}\r\n\r\ninterface ISplitPair {\r\n a: number;\r\n b: number;\r\n size?: number;\r\n aMin?: number;\r\n bMin?: number;\r\n dragging: boolean;\r\n parent: HTMLElement;\r\n isFirst: boolean;\r\n isLast: boolean;\r\n direction: \"horizontal\" | \"vertical\";\r\n gutter?: HTMLElement;\r\n aGutterSize?: number;\r\n bGutterSize?: number;\r\n gutterListener?: EventListener;\r\n}\r\n\r\n/**\r\n * Split.js - v1.3.5\r\n * https://github.com/nathancahill/Split.js\r\n * License\r\n * Copyright (c) 2017 Nathan Cahill\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nclass Split {\r\n // ReSharper disable InconsistentNaming\r\n\r\n // The programming goals of Split.js are to deliver readable, understandable and\r\n // maintainable code, while at the same time manually optimizing for tiny minified file size,\r\n // browser compatibility without additional requirements, graceful fallback (IE8 is supported)\r\n // and very few assumptions about the user's page layout.\r\n private NOOP = function() {\r\n return false;\r\n };\r\n\r\n private pairs: ISplitPair[];\r\n private elements: {\r\n element: any;\r\n size: number;\r\n minSize: number | string;\r\n }[];\r\n private dimension: \"width\" | \"height\";\r\n private position: \"left\" | \"top\";\r\n private onMinimalization?: (state: SplitPanelMinimalizationState) => void;\r\n\r\n // This library only needs two helper functions:\r\n //\r\n // The first determines which prefixes of CSS calc we need.\r\n // We only need to do this once on startup, when this anonymous function is called.\r\n //\r\n // Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\r\n // http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\r\n private calc = ([\"\", \"-webkit-\", \"-moz-\", \"-o-\"].filter(function(prefix) {\r\n const el = document.createElement(\"div\");\r\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\r\n\r\n return (!!el.style.length);\r\n }).shift())! + \"calc\";\r\n\r\n private elementStyle: (dim: any, size: any, gutSize: any) => any;\r\n\r\n // The second helper function allows elements and string selectors to be used\r\n // interchangeably. In either case an element is returned. This allows us to\r\n // do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\r\n private elementOrSelector = function(el: any) {\r\n if (typeof el === \"string\") {\r\n return document.querySelector(el);\r\n }\r\n\r\n return el;\r\n };\r\n\r\n // The main function to initialize a split. Split.js thinks about each pair\r\n // of elements as an independant pair. Dragging the gutter between two elements\r\n // only changes the dimensions of elements in that pair. This is key to understanding\r\n // how the following functions operate, since each function is bound to a pair.\r\n //\r\n // A pair object is shaped like this:\r\n //\r\n // {\r\n // a: DOM element,\r\n // b: DOM element,\r\n // aMin: Number,\r\n // bMin: Number,\r\n // dragging: Boolean,\r\n // parent: DOM element,\r\n // isFirst: Boolean,\r\n // isLast: Boolean,\r\n // direction: 'horizontal' | 'vertical'\r\n // }\r\n //\r\n // The basic sequence:\r\n //\r\n // 1. Set defaults to something sane. `options` doesn't have to be passed at all.\r\n // 2. Initialize a bunch of strings based on the direction we're splitting.\r\n // A lot of the behavior in the rest of the library is paramatized down to\r\n // rely on CSS strings and classes.\r\n // 3. Define the dragging helper functions, and a few helpers to go with them.\r\n // 4. Loop through the elements while pairing them off. Every pair gets an\r\n // `pair` object, a gutter, and special isFirst/isLast properties.\r\n // 5. Actually size the pair elements, insert gutters and attach event listeners.\r\n constructor(ids: HTMLElement[], options: { [key: string]: any } = {}) {\r\n let clientAxis: any;\r\n\r\n // All DOM elements in the split should have a common parent. We can grab\r\n // the first elements parent and hope users read the docs because the\r\n // behavior will be whacky otherwise.\r\n const parent = this.elementOrSelector(ids[0]).parentNode;\r\n const parentFlexDirection = getComputedStyle(parent).flexDirection;\r\n\r\n // Set default options.sizes to equal percentages of the parent element.\r\n const sizes = options.sizes || ids.map(function() {\r\n return 100 / ids.length;\r\n });\r\n\r\n // Standardize minSize to an array if it isn't already. This allows minSize\r\n // to be passed as a number.\r\n const minSize = options.minSize !== undefined ? options.minSize : 100;\r\n const minSizes = Array.isArray(minSize) ? minSize : ids.map(function() {\r\n return minSize;\r\n });\r\n const gutterSize = options.gutterSize !== undefined ? options.gutterSize : 10;\r\n const snapOffset = options.snapOffset !== undefined ? options.snapOffset : 30;\r\n const direction = options.direction || \"horizontal\";\r\n const cursor = options.cursor || (direction === \"horizontal\" ? \"ew-resize\" : \"ns-resize\");\r\n const gutter = options.gutter || (function(_i: any, gutterDirection: any) {\r\n const gut = document.createElement(\"div\");\r\n gut.className = \"gutter gutter-\" + gutterDirection;\r\n return gut;\r\n });\r\n this.onMinimalization = options.onMinimalization;\r\n this.elementStyle = options.elementStyle || ((dim: any, size: any, gutSize: any) => {\r\n const style: { [key: string]: any } = {};\r\n\r\n if (typeof size !== \"string\") {\r\n style[dim] = this.calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\r\n } else {\r\n style[dim] = size;\r\n }\r\n\r\n return style;\r\n });\r\n const gutterStyle = options.gutterStyle || (function(dim: any, gutSize: any) {\r\n let obj: { [key: string]: any };\r\n return ((obj = {}, obj[dim] = (gutSize + \"px\"), obj));\r\n });\r\n\r\n // 2. Initialize a bunch of strings based on the direction we're splitting.\r\n // A lot of the behavior in the rest of the library is paramatized down to\r\n // rely on CSS strings and classes.\r\n if (direction === \"horizontal\") {\r\n this.dimension = \"width\";\r\n clientAxis = \"clientX\";\r\n this.position = \"left\";\r\n } else if (direction === \"vertical\") {\r\n this.dimension = \"height\";\r\n clientAxis = \"clientY\";\r\n this.position = \"top\";\r\n }\r\n\r\n // 3. Define the dragging helper functions, and a few helpers to go with them.\r\n // Each helper is bound to a pair object that contains it's metadata. This\r\n // also makes it easy to store references to listeners that that will be\r\n // added and removed.\r\n //\r\n // Even though there are no other functions contained in them, aliasing\r\n // this to self saves 50 bytes or so since it's used so frequently.\r\n //\r\n // The pair object saves metadata like dragging state, position and\r\n // event listener references.\r\n\r\n const setGutterSize = (gutterElement: any, gutSize: any) => {\r\n const style = gutterStyle(this.dimension, gutSize);\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n Object.keys(style).forEach(function(prop) {\r\n return (gutterElement.style[prop] = style[prop]);\r\n });\r\n };\r\n\r\n // drag, where all the magic happens. The logic is really quite simple:\r\n //\r\n // 1. Ignore if the pair is not dragging.\r\n // 2. Get the offset of the event.\r\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\r\n // 4. Actually adjust each element in the pair to offset.\r\n //\r\n // ---------------------------------------------------------------------\r\n // | | <- a.minSize || b.minSize -> | |\r\n // | | | <- this.snapOffset || this.snapOffset -> | | |\r\n // | | | || | | |\r\n // | | | || | | |\r\n // ---------------------------------------------------------------------\r\n // | <- this.start this.size -> |\r\n const drag = (pair: any, e: any) => {\r\n let offset: any;\r\n\r\n if (!pair.dragging) {\r\n return;\r\n }\r\n\r\n // Get the offset of the event from the first side of the\r\n // pair `this.start`. Supports touch events, but not multitouch, so only the first\r\n // finger `touches[0]` is counted.\r\n if (\"touches\" in e) {\r\n offset = e.touches[0][clientAxis] - pair.start;\r\n } else {\r\n offset = e[clientAxis] - pair.start;\r\n }\r\n\r\n // If within snapOffset of min or max, set offset to min or max.\r\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\r\n // Include the appropriate gutter sizes to prevent overflows.\r\n if (offset <= this.elements[pair.a].minSize + snapOffset + pair.aGutterSize) {\r\n offset = this.elements[pair.a].minSize + pair.aGutterSize;\r\n } else if (offset >= pair.size - (this.elements[pair.b].minSize + snapOffset + pair.bGutterSize)) {\r\n offset = pair.size - (this.elements[pair.b].minSize + pair.bGutterSize);\r\n }\r\n\r\n // Actually adjust the size.\r\n this.adjust(pair, offset);\r\n\r\n // Call the drag callback continously. Don't do anything too intensive\r\n // in this callback.\r\n if (options.onDrag) {\r\n options.onDrag();\r\n }\r\n };\r\n\r\n // stopDragging is very similar to startDragging in reverse.\r\n const stopDragging = (pair: any) => {\r\n const a = this.elements[pair.a].element;\r\n const b = this.elements[pair.b].element;\r\n\r\n if (pair.dragging && options.onDragEnd) {\r\n options.onDragEnd();\r\n }\r\n\r\n pair.dragging = false;\r\n\r\n // Remove the stored event listeners. This is why we store them.\r\n removeEventListener(\"mouseup\", pair.stop);\r\n removeEventListener(\"touchend\", pair.stop);\r\n removeEventListener(\"touchcancel\", pair.stop);\r\n\r\n removeEventListener(\"mousemove\", pair.move);\r\n removeEventListener(\"touchmove\", pair.move);\r\n\r\n // Delete them once they are removed. I think this makes a difference\r\n // in memory usage with a lot of splits on one page. But I don't know for sure.\r\n delete pair.stop;\r\n delete pair.move;\r\n\r\n a.removeEventListener(\"selectstart\", this.NOOP);\r\n a.removeEventListener(\"dragstart\", this.NOOP);\r\n b.removeEventListener(\"selectstart\", this.NOOP);\r\n b.removeEventListener(\"dragstart\", this.NOOP);\r\n\r\n a.style.userSelect = \"\";\r\n a.style.webkitUserSelect = \"\";\r\n a.style.MozUserSelect = \"\";\r\n a.style.pointerEvents = \"\";\r\n\r\n b.style.userSelect = \"\";\r\n b.style.webkitUserSelect = \"\";\r\n b.style.MozUserSelect = \"\";\r\n b.style.pointerEvents = \"\";\r\n\r\n pair.gutter.style.cursor = \"\";\r\n pair.parent.style.cursor = \"\";\r\n };\r\n\r\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\r\n // It also adds event listeners for mouse/touch events,\r\n // and prevents selection while dragging so avoid the selecting text.\r\n const startDragging = (pair: any, e: any) => {\r\n // Alias frequently used variables to save space. 200 bytes.\r\n const a = this.elements[pair.a].element;\r\n const b = this.elements[pair.b].element;\r\n\r\n // Call the onDragStart callback.\r\n if (!pair.dragging && options.onDragStart) {\r\n options.onDragStart();\r\n }\r\n\r\n // Don't actually drag the element. We emulate that in the drag function.\r\n e.preventDefault();\r\n\r\n // Set the dragging property of the pair object.\r\n pair.dragging = true;\r\n\r\n // Create two event listeners bound to the same pair object and store\r\n // them in the pair object.\r\n pair.move = (e: DragEvent) => drag(pair, e);\r\n pair.stop = () => stopDragging(pair);\r\n\r\n // All the binding. `window` gets the stop events in case we drag out of the elements.\r\n addEventListener(\"mouseup\", pair.stop);\r\n addEventListener(\"touchend\", pair.stop);\r\n addEventListener(\"touchcancel\", pair.stop);\r\n\r\n addEventListener(\"mousemove\", pair.move);\r\n addEventListener(\"touchmove\", pair.move);\r\n\r\n // Disable selection. Disable!\r\n a.addEventListener(\"selectstart\", this.NOOP);\r\n a.addEventListener(\"dragstart\", this.NOOP);\r\n b.addEventListener(\"selectstart\", this.NOOP);\r\n b.addEventListener(\"dragstart\", this.NOOP);\r\n\r\n a.style.userSelect = \"none\";\r\n a.style.webkitUserSelect = \"none\";\r\n a.style.MozUserSelect = \"none\";\r\n a.style.pointerEvents = \"none\";\r\n\r\n b.style.userSelect = \"none\";\r\n b.style.webkitUserSelect = \"none\";\r\n b.style.MozUserSelect = \"none\";\r\n b.style.pointerEvents = \"none\";\r\n\r\n // Set the cursor, both on the gutter and the parent element.\r\n // Doing only a, b and gutter causes flickering.\r\n pair.gutter.style.cursor = cursor;\r\n pair.parent.style.cursor = cursor;\r\n\r\n // Cache the initial sizes of the pair.\r\n this.calculateSizes(pair);\r\n };\r\n\r\n // 5. Create pair and element objects. Each pair has an index reference to\r\n // elements `a` and `b` of the pair (first and second elements).\r\n // Loop through the elements while pairing them off. Every pair gets a\r\n // `pair` object, a gutter, and isFirst/isLast properties.\r\n //\r\n // Basic logic:\r\n //\r\n // - Starting with the second element `i > 0`, create `pair` objects with\r\n // `a = i - 1` and `b = i`\r\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\r\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\r\n // - Create gutter elements and add event listeners.\r\n // - Set the size of the elements, minus the gutter sizes.\r\n //\r\n // -----------------------------------------------------------------------\r\n // | i=0 | i=1 | i=2 | i=3 |\r\n // | | isFirst | | isLast |\r\n // | pair 0 pair 1 pair 2 |\r\n // | | | | |\r\n // -----------------------------------------------------------------------\r\n this.pairs = [];\r\n this.elements = ids.map((id, i) => {\r\n // Create the element object.\r\n const element = {\r\n element: this.elementOrSelector(id),\r\n size: sizes[i],\r\n minSize: minSizes[i],\r\n };\r\n\r\n let pair: ISplitPair | null = null;\r\n\r\n if (i > 0) {\r\n // Create the pair object with it's metadata.\r\n pair = {\r\n a: i - 1,\r\n b: i,\r\n dragging: false,\r\n isFirst: (i === 1),\r\n isLast: (i === ids.length - 1),\r\n direction: direction,\r\n parent: parent,\r\n } as ISplitPair;\r\n\r\n // For first and last pairs, first and last gutter width is half.\r\n pair.aGutterSize = gutterSize;\r\n pair.bGutterSize = gutterSize;\r\n\r\n if (pair.isFirst) {\r\n pair.aGutterSize = gutterSize / 2;\r\n }\r\n\r\n if (pair.isLast) {\r\n pair.bGutterSize = gutterSize / 2;\r\n }\r\n\r\n // if the parent has a reverse flex-direction, switch the pair elements.\r\n if (parentFlexDirection === \"row-reverse\" || parentFlexDirection === \"column-reverse\") {\r\n const temp = pair.a;\r\n pair.a = pair.b;\r\n pair.b = temp;\r\n }\r\n\r\n // Determine the size of the current element. IE8 is supported by\r\n // staticly assigning sizes without draggable gutters. Assigns a string\r\n // to `size`.\r\n //\r\n // IE9 and above\r\n // Create gutter elements for each pair.\r\n\r\n const gutterElement = gutter(i, direction);\r\n setGutterSize(gutterElement, gutterSize);\r\n\r\n pair.gutterListener = (e: MouseEvent) => startDragging(pair, e);\r\n\r\n gutterElement.addEventListener(\"mousedown\", pair.gutterListener);\r\n gutterElement.addEventListener(\"touchstart\", pair.gutterListener);\r\n\r\n parent.insertBefore(gutterElement, element.element);\r\n\r\n pair.gutter = gutterElement;\r\n }\r\n\r\n // Set the element size to our determined size.\r\n // Half-size gutters for first and last elements.\r\n if (i === 0 || i === ids.length - 1) {\r\n this.setElementSize(element.element, element.size, gutterSize / 2);\r\n } else {\r\n this.setElementSize(element.element, element.size, gutterSize);\r\n }\r\n\r\n const computedSize = element.element.getBoundingClientRect()[this.dimension];\r\n\r\n if (computedSize > 0 && computedSize < element.minSize) {\r\n element.minSize = computedSize;\r\n }\r\n\r\n // After the first iteration, and we have a pair object, append it to the\r\n // list of pairs.\r\n if (i > 0 && pair) {\r\n this.pairs.push(pair);\r\n\r\n if (this.onMinimalization) {\r\n if (element.size === 100) // velikost druhého elementu je 100%\r\n this.onMinimalization(SplitPanelMinimalizationState.beginning);\r\n else if (element.size === 0)// velikost druhého elementu je 0%\r\n this.onMinimalization(SplitPanelMinimalizationState.end);\r\n }\r\n }\r\n\r\n return element;\r\n });\r\n }\r\n\r\n private calculateSizes(pair: any): void {\r\n const a = this.elements[pair.a].element;\r\n const b = this.elements[pair.b].element;\r\n pair.size = a.getBoundingClientRect()[this.dimension] + b.getBoundingClientRect()[this.dimension] + pair.aGutterSize + pair.bGutterSize;\r\n pair.start = a.getBoundingClientRect()[this.position];\r\n }\r\n\r\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\r\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\r\n // which allows the viewport to be resized without additional logic.\r\n // Element a's size is the same as offset. b's size is total size - a size.\r\n // Both sizes are calculated from the initial parent percentage,\r\n // then the gutter size is subtracted.\r\n private adjust(pair: any, offset: number): void {\r\n const a = this.elements[pair.a];\r\n const b = this.elements[pair.b];\r\n const percentage = a.size + b.size;\r\n\r\n a.size = (offset / pair.size) * percentage;\r\n b.size = (percentage - ((offset / pair.size) * percentage));\r\n\r\n this.setElementSize(a.element, a.size, pair.aGutterSize);\r\n this.setElementSize(b.element, b.size, pair.bGutterSize);\r\n\r\n this._triggerMinimalizationChanged(pair, offset);\r\n }\r\n\r\n private setElementSize(el: any, size: any, gutSize: any): void {\r\n // Split.js allows setting sizes via numbers (ideally), or if you must,\r\n // by string, like '300px'. This is less than ideal, because it breaks\r\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\r\n // make sure you calculate the gutter size by hand.\r\n const style = this.elementStyle(this.dimension, size, gutSize);\r\n\r\n // eslint-disable-next-line no-param-reassign\r\n Object.keys(style).forEach((prop) => {\r\n return (el.style[prop] = style[prop]);\r\n });\r\n }\r\n\r\n public setSizes(newSizes: any[]): void {\r\n newSizes.forEach((newSize: any, i: any) => {\r\n if (i > 0) {\r\n const pair = this.pairs[i - 1];\r\n const a = this.elements[pair.a];\r\n const b = this.elements[pair.b];\r\n\r\n this.calculateSizes(pair); // při prvním volání nemusí být vypočítaná velikost elementů\r\n\r\n a.size = newSizes[i - 1];\r\n b.size = newSize;\r\n\r\n this.setElementSize(a.element, a.size, pair.aGutterSize);\r\n this.setElementSize(b.element, b.size, pair.bGutterSize);\r\n\r\n this._triggerMinimalizationChanged(pair, pair.size * a.size / 100);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Vypočítá v jakém stavu (minimalizovaný vlevo/vpravo/neminimalizovaný) teď splitter je a zavolá callback při jeho změně\r\n * @param pair Dvojice elementů ve SplitPanelu spolu s daty\r\n * @param offset Posunutí splitteru zleva (pixely)\r\n */\r\n private _triggerMinimalizationChanged(pair: any, offset: number): void {\r\n if (!this.onMinimalization)\r\n return;\r\n\r\n if (Math.floor(offset) <= this.elements[pair.a].minSize + pair.aGutterSize + 1) // velikost prvního elementu je menší než minimální velikost\r\n this.onMinimalization(SplitPanelMinimalizationState.beginning);\r\n else if (Math.floor(pair.size) - Math.floor(offset) - pair.bGutterSize - 1 <= this.elements[pair.b].minSize) // velikost posledního elementu je menší než minimální velikost\r\n this.onMinimalization(SplitPanelMinimalizationState.end);\r\n else\r\n this.onMinimalization(SplitPanelMinimalizationState.none);\r\n }\r\n\r\n public destroy(): void {\r\n this.pairs.forEach((pair) => {\r\n pair.parent.removeChild(pair.gutter);\r\n pair.gutter.style[this.dimension] = \"\";\r\n pair.gutter.removeEventListener(\"mousedown\", pair.gutterListener);\r\n pair.gutter.removeEventListener(\"touchstart\", pair.gutterListener);\r\n this.elements[pair.a].element.style[this.dimension] = \"\";\r\n this.elements[pair.b].element.style[this.dimension] = \"\";\r\n });\r\n }\r\n\r\n public getSizes(): any[] {\r\n return this.elements.map(function(element: any) {\r\n return element.size;\r\n });\r\n }\r\n\r\n public collapse(indexOfCollapsedPair: number, respectMinSize: boolean): void {\r\n if (indexOfCollapsedPair === this.pairs.length) { // poslední se zavře doprava/dolu\r\n const pair = this.pairs[indexOfCollapsedPair - 1];\r\n\r\n this.calculateSizes(pair);\r\n let size = pair.size - pair.bGutterSize;\r\n if (respectMinSize) {\r\n const minSize = this.elements[pair.b].minSize;\r\n if (typeof minSize === \"number\")\r\n size -= minSize;\r\n }\r\n this.adjust(pair, size);\r\n } else if (indexOfCollapsedPair < this.pairs.length) { // ostatní doleva/nahoru\r\n const pair = this.pairs[indexOfCollapsedPair];\r\n\r\n this.calculateSizes(pair);\r\n let size = pair.bGutterSize;\r\n if (respectMinSize) {\r\n const minSize = this.elements[pair.a].minSize;\r\n if (typeof minSize === \"number\")\r\n size += minSize;\r\n }\r\n this.adjust(pair, size);\r\n }\r\n }\r\n // ReSharper restore InconsistentNaming\r\n}\r\n\r\nregisterCustomElement(SplitPanelMinimizeButton.is, SplitPanelMinimizeButton);\r\nregisterCustomElement(SplitPanel.is, SplitPanel);\r\n","/**\r\n * Trida pro pocitani sirky Align Panelu.\r\n * Sirku pocita z definice posilane ze serveru.\r\n */\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport class AlignPanelWidthCounter {\r\n /** Ziska prvni align panel v elementu (muze byt i samotny element) */\r\n public static getFirstAlignPanel(el: HTMLElement): HTMLElement {\r\n return helper.getAttr(el, \"tsccontrol\") === \"alignpanel\" ? el : el.querySelector(\"[data-TSCControl=\\\"AlignPanel\\\"]\") as HTMLElement;\r\n }\r\n\r\n /** Spocita min. sirku Align Panelu */\r\n public static countAlignPanel(div: HTMLElement): number {\r\n if (AlignPanelWidthCounter.isPositionedAp(div))\r\n return AlignPanelWidthCounter.countPositionedAp(div);\r\n else\r\n return AlignPanelWidthCounter.countDockedAp(div);\r\n }\r\n\r\n /** Spocita minimalni sirku dokovaneho Align Panelu */\r\n public static countDockedAp(div: HTMLElement): number {\r\n const lefts: number[] = [];\r\n const rights: number[] = [];\r\n let client: number = 0;\r\n const others: number[] = [];\r\n const widths: number[] = [];\r\n\r\n for (let i = 0; i < div.children.length; i++) {\r\n const child = div.children[i] as HTMLElement;\r\n let align = helper.getAttr(child, \"align\");\r\n align = align != null ? align.toLocaleLowerCase() : align;\r\n if (align == \"alleft\") {\r\n lefts.push(helper.getNumAttr(child, \"width\"));\r\n widths.push(helper.getNumAttr(child, \"width\"));\r\n } else if (align == \"alright\") {\r\n rights.push(helper.getNumAttr(child, \"width\"));\r\n widths.push(helper.getNumAttr(child, \"width\"));\r\n } else {\r\n const w = AlignPanelWidthCounter.countDockApSubcomponent(child);\r\n others.push(w);\r\n widths.push(w);\r\n\r\n if (align == \"alclient\")\r\n client = w;\r\n }\r\n }\r\n\r\n //helper.log('dokovany Align Panel', div, lefts, rights, client, others,\r\n //lefts.concat(rights, others).reduce((total, num) => { return total + num }, 0));\r\n return AlignPanelWidthCounter.countMinWidthOfDockedAp(div, widths, lefts, rights, client);\r\n }\r\n\r\n /** Zkombinuje sirky komponent dokovaneho Align Panelu a vrati minimalni potrebnou sirku */\r\n public static countMinWidthOfDockedAp(div: HTMLElement, widths: number[], lefts: number[], rights: number[], client: number): number {\r\n let firstLeftIndex: number;\r\n const topsInsideLefts: number[] = []; // indexy top/bottom uvnitr left/right\r\n\r\n for (let i = 0; i < div.children.length; i++) {\r\n const child = div.children[i] as HTMLElement;\r\n let align = helper.getAttr(child, \"align\");\r\n align = align != null ? align.toLocaleLowerCase() : align;\r\n if ((align == \"alleft\" || align == \"alright\" || align == \"alclient\") && isNaN(firstLeftIndex)) {\r\n firstLeftIndex = i;\r\n } else if ((align == \"altop\" || align == \"albottom\") && isFinite(firstLeftIndex)) { // indexy alTop/alBottom uvnitr alLeft/alRight\r\n topsInsideLefts.push(i);\r\n }\r\n }\r\n\r\n if (isNaN(firstLeftIndex))\r\n firstLeftIndex = widths.length;\r\n\r\n // soucet vsech alLeft + alRight + alClient = jedna moznost minimalni sirky panelu\r\n const leftsRightsClientWidth = lefts.concat(rights).reduce((prev, cur) => {\r\n return prev + cur;\r\n }, 0) + client;\r\n // maximum ze vsech alTop/alBottom, ktere jsou pred alLeft/alRight = druha moznost minimalni sirky panelu\r\n const topsBeforeLeftsMaxWidth = firstLeftIndex > 0 ? Math.max.apply(null, widths.filter((_val, index) => {\r\n return index < firstLeftIndex;\r\n })) : 0;\r\n\r\n const topsWidths: number[] = [];\r\n\r\n if (topsInsideLefts.length) {\r\n topsInsideLefts.forEach((val) => { // pro kazdy top/bottom uvnitr left/right se secte jeho sirka + soucet vsech left a right pred nim\r\n let width: number = widths[val];\r\n for (let i = val - 1; i >= firstLeftIndex; i--) {\r\n let align = helper.getAttr(div.children[i], \"align\");\r\n align = align != null ? align.toLocaleLowerCase() : align;\r\n if (align == \"alleft\" || align == \"alright\")\r\n width += widths[i];\r\n }\r\n topsWidths.push(width);\r\n });\r\n }\r\n\r\n // topy/bottomy za (uvnitr) left/right = treti moznost minimalni sirky panelu\r\n const topsInsideLeftsMaxWidth = topsInsideLefts.length ? Math.max.apply(null, topsWidths) : 0;\r\n\r\n //helper.log('minimum z dokovaneho panelu', div, topsBeforeLeftsMaxWidth, leftsRightsClientWidth, topsInsideLeftsMaxWidth);\r\n return Math.max(topsBeforeLeftsMaxWidth, leftsRightsClientWidth, topsInsideLeftsMaxWidth);\r\n }\r\n\r\n /** Spocita min. sirku top/bottom/client komponenty pozicovaneho Align Panelu */\r\n public static countDockApSubcomponent(div: HTMLElement): number {\r\n let width = 0;\r\n const type = helper.getAttr(div, \"tsccontrol\");\r\n\r\n switch (type) {\r\n case \"wrappanel\":\r\n width = this.countWrapPanel(div);\r\n break;\r\n case \"alignpanel\":\r\n width = this.countAlignPanel(div);\r\n break;\r\n case \"verticalscrollviewer\":\r\n width = this.countVerticalScrollViewer(div);\r\n break;\r\n }\r\n\r\n // helper.log('top|bottom|client', div, width);\r\n return width;\r\n }\r\n\r\n /** Spocita minimalni sirku childu */\r\n public static countMinWidthOfChildren(div: HTMLElement): number {\r\n const widths: number[] = [];\r\n\r\n for (let i = 0; i < div.children.length; i++) {\r\n const type = helper.getAttr(div.children[i], \"tsccontrol\");\r\n\r\n switch (type) {\r\n case \"wrappanel\":\r\n widths[i] = this.countWrapPanel(div.children[i] as HTMLElement);\r\n break;\r\n case \"alignpanel\":\r\n widths[i] = this.countAlignPanel(div.children[i] as HTMLElement);\r\n break;\r\n case \"verticalscrollviewer\":\r\n widths[i] = this.countVerticalScrollViewer(div.children[i] as HTMLElement);\r\n break;\r\n }\r\n }\r\n\r\n //helper.log('rekurze', div, widths, maxWidth);\r\n return Math.max.apply(null, widths);\r\n }\r\n\r\n /** Spocita minimalni potrebnou sirku pro zobrazeni Vertical Scroll Vieweru */\r\n public static countVerticalScrollViewer(scroll: HTMLElement): number {\r\n const parent = scroll.parentElement;\r\n const vsvWidth = helper.getNumAttr(scroll, \"width\");\r\n let width = 0;\r\n\r\n if (helper.getAttr(parent, \"tsccontrol\") == \"wrappanel\")\r\n width = vsvWidth;\r\n else // parent je AlignPanel\r\n if (AlignPanelWidthCounter.isPositionedAp(parent))\r\n width = vsvWidth;\r\n else // parent je dokovany AP\r\n if (helper.getAttr(scroll, \"align\").toLocaleLowerCase() == \"alleft\" || helper.getAttr(scroll, \"align\").toLocaleLowerCase() == \"alright\")\r\n width = vsvWidth;\r\n else\r\n width = this.countMinWidthOfChildren(scroll);\r\n\r\n //helper.log('vertical', scroll, width);\r\n return width;\r\n }\r\n\r\n /** Spocita minimalni potrebnou sirku Wrap Panelu (jak horizontal tak vertikal wrap) */\r\n public static countWrapPanel(div: HTMLElement): number {\r\n const widths = helper.toArray<HTMLElement>(div.children).map((child) => {\r\n return helper.getNumAttr(child, \"width\");\r\n });\r\n\r\n // helper.log('wrap', div, widths, Math.max.apply(null, widths));\r\n return Math.max.apply(null, widths);\r\n }\r\n\r\n /** Jestli je Align Panel pozicovany */\r\n public static isPositionedAp(div: HTMLElement): boolean {\r\n const e = div.firstElementChild;\r\n if (e) {\r\n if (!helper.getAttr(e, \"align\") || helper.getAttr(e, \"align\").toLocaleLowerCase() == \"alnone\")\r\n return true;\r\n else\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /** Jestli je primo pod Align Panelem ListFrame */\r\n public static isListFrameParent(div: HTMLElement): boolean {\r\n return helper.toArray<HTMLElement>(div.children).some((child) => {\r\n return helper.getAttr(child, \"tsccontrol\") === \"listframe\";\r\n });\r\n }\r\n\r\n /** Spocita min. sirku pozicovaneho Align Panelu */\r\n public static countPositionedAp(div: HTMLElement): number {\r\n const widths = helper.toArray<HTMLElement>(div.children).map((child) => {\r\n return helper.getNumAttr(child, \"width\") + helper.getNumAttr(child, \"left\");\r\n });\r\n\r\n //helper.log('pozicovany AP', div, maxWidth);\r\n return Math.max.apply(null, widths);\r\n }\r\n\r\n /** Spocita min. VYSKU pozicovaneho Align Panelu */\r\n public static countPositionedApHeight(div: HTMLElement): number {\r\n const heights = helper.toArray<HTMLElement>(div.children).map((child) => {\r\n return helper.getNumAttr(child, \"height\") + helper.getNumAttr(child, \"top\");\r\n });\r\n\r\n //helper.log('pozicovany AP vyska', div, Math.max.apply(null, widths));\r\n return Math.max.apply(null, heights);\r\n }\r\n}\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.alignPanel);\r\n\r\nexport class helper {\r\n /** Prevede cokoliv indexovatelneho na Array, aby se na tom mohly pouzivat Array metody (pouzitelne pro HTMLCollection, NodeList, ...) */\r\n public static toArray<T>(coll: Indexable): T[] {\r\n return Array.prototype.slice.call(coll) as T[];\r\n }\r\n\r\n /** Nacita hodnotu data atributu, vraci ji jako lower case string, orezany. Pokud atribut neexistuje, vraci null. */\r\n public static getAttr(element: Element, attr: string): string {\r\n const val = element.getAttribute(\"data-\" + attr);\r\n return val == null ? val : val.trim().toLowerCase();\r\n }\r\n\r\n /** Vraci hodnotu data atributu jako cislo; pokud atribut neexistuje, je prazdny nebo NaN, vraci null */\r\n public static getNumAttr(element: Element, attr: string): number {\r\n const val = this.getAttr(element, attr);\r\n if (val == null || val == \"\" || isNaN(+val))\r\n return null;\r\n return +val;\r\n }\r\n\r\n /** logovaci funkce */\r\n public static log(title: string, ...args: any[]): void {\r\n logger.log(\"START \" + title + \"_________________\");\r\n args.forEach((val) => {\r\n logger.log(val);\r\n });\r\n logger.log(\"END \" + title + \"*****************\");\r\n }\r\n}\r\n\r\nexport interface Indexable {\r\n length: number;\r\n [index: number]: any;\r\n}\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { CaseInsensitiveMap } from \"../../../../Global/Base/DataTypes/CaseInsensitiveMap\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { IPostInitialize } from \"../../../UI.ReactControlConnectors/types\";\r\nimport { loadOriginalRightsDefinition } from \"../../Rights/OriginalRightsDefinitionLoader\";\r\nimport { IForm } from \"../XGControls/IForm\";\r\nimport { ControlParams, FormControlParams, IControl, IHTMLElementWithControl } from \"./ControlInterfaces\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.dependencyInjection);\r\n\r\n/** Předpis metody pro kontrolu, zda se má komponenta zinicializovat */\r\nexport interface IRegistratorInitializeControlPredicate {\r\n (el: HTMLElement): boolean;\r\n}\r\n\r\n/** Předpis konstruktoru pro vytváření komponent */\r\nexport interface IConstructorSignature {\r\n new(params: ControlParams): IControl;\r\n}\r\n\r\n/** Předpis tovární metody pro vytváření komponent */\r\nexport interface IFactoryMethodSignature {\r\n (params: FormControlParams): IControl | Promise<IControl>;\r\n}\r\n\r\n/**\r\n * Registrátor umožňuje registrování implementací pro různé Control-y a umožňuje jejich vytváření a iniciování\r\n * @includeToDoc\r\n */\r\nexport class Registrator {\r\n private static _controls = new CaseInsensitiveMap<IFactoryMethodSignature>();\r\n\r\n public static add(controlName: string, controlClass: (IFactoryMethodSignature | IConstructorSignature)): void {\r\n const controlFactoryFunction: IFactoryMethodSignature = Registrator._isConstructorSignature(controlClass)\r\n ? (params: FormControlParams) => new controlClass(params)\r\n : controlClass;\r\n\r\n Registrator._controls.set(controlName.toLowerCase(), controlFactoryFunction);\r\n }\r\n\r\n public static get(controlName: string): IFactoryMethodSignature {\r\n return Registrator._controls.get(controlName.toLowerCase());\r\n }\r\n\r\n /**\r\n * K predanym elementum na formulari vytvori a ziniciuje Controly, umoznuje definovat, ktere elementy se mají zinicializovat\r\n * @param form fomular, ktery se ma predat do inicializace FormControlu\r\n * @param initializeElementPredicate pri splneni predikatu je element zinicializován\r\n * @param elements elementy ke ziniciovani\r\n */\r\n public static async initializeFormControlsWithFilter(form: IForm, initializeElementPredicate: IRegistratorInitializeControlPredicate, ...elements: HTMLElement[]): Promise<void> {\r\n for (const e of elements) {\r\n await Registrator._initializeControls(form, e, initializeElementPredicate);\r\n }\r\n }\r\n\r\n /**\r\n * K predanym elementum na formulari vytvori a ziniciuje Controly\r\n * @param form fomular, ktery se ma predat do inicializace FormControlu\r\n * @param elements elementy ke ziniciovani\r\n */\r\n public static async initializeFormControls(form: IForm, ...elements: HTMLElement[]): Promise<void> {\r\n await Registrator.initializeFormControlsWithFilter(form, undefined, ...elements);\r\n }\r\n\r\n /**\r\n * K predanym elementum vytvori a ziniciuje Controly, lze pouzit pro libovolne elementy, umoznuje definovat, ktere elementy se mají zinicializovat\r\n * @param initializeElementPredicate pri splneni predikatu je element zinicializován\r\n * @param elements elementy ke ziniciovani\r\n */\r\n public static async initializeControlsWithFilter(initializeElementPredicate: IRegistratorInitializeControlPredicate, ...elements: HTMLElement[]): Promise<void> {\r\n for (const e of elements) {\r\n await Registrator._initializeControls(null, e, initializeElementPredicate);\r\n }\r\n }\r\n\r\n /**\r\n * K predanym elementum vytvori a ziniciuje Controly, lze pouzit pro libovolne elementy\r\n * @param elements elementy ke ziniciovani\r\n */\r\n public static async initializeControls(...elements: HTMLElement[]): Promise<void> {\r\n await Registrator.initializeControlsWithFilter(undefined, ...elements);\r\n }\r\n\r\n /**\r\n * Rozhoduje, jestli se jedná o konstruktor nebo tovární metodu\r\n * @param value Funkce, která je buď konstruktor nebo tovární metoda\r\n */\r\n private static _isConstructorSignature(value: IConstructorSignature | IFactoryMethodSignature): value is IConstructorSignature { // Some kind of magic happens here\r\n return !StringUtils.isNullOrEmpty((value as IConstructorSignature).name);\r\n }\r\n\r\n private static async _initializeControls(\r\n form: IForm,\r\n element: HTMLElement,\r\n initializeElementPredicate?: IRegistratorInitializeControlPredicate,\r\n ctrlNameAttribute: string = \"tsccontrol\",\r\n ): Promise<void> {\r\n const elToInits: Array<HTMLElement | IHTMLElementWithControl> = [\r\n ...element.querySelectorAll<HTMLElement | IHTMLElementWithControl>(`[data-${ctrlNameAttribute}]`),\r\n element,\r\n ];\r\n\r\n for (const elToInit of elToInits) {\r\n // kontrola elementů, které se mají přeskočit\r\n if (initializeElementPredicate != null && !initializeElementPredicate(elToInit)) {\r\n continue;\r\n }\r\n\r\n if (elToInit instanceof IHTMLElementWithControl) {\r\n continue;\r\n }\r\n\r\n const ctrlName = elToInit.dataset[ctrlNameAttribute];\r\n if (ctrlName) {\r\n const controlFactoryFunction = Registrator.get(ctrlName.toLowerCase());\r\n if (controlFactoryFunction) {\r\n await this._initializeControl(form, elToInit, controlFactoryFunction);\r\n } else {\r\n logger.warn(\"Definition for control with class %s was not found. Skipping initialization.\", ctrlName.toLowerCase());\r\n }\r\n }\r\n }\r\n\r\n elToInits\r\n .forEach(elToInit => {\r\n if (elToInit instanceof IHTMLElementWithControl && elToInit.tscControl instanceof IPostInitialize)\r\n elToInit.tscControl.postInitialize();\r\n });\r\n }\r\n\r\n /**\r\n * Vytvoří a vrátí instanci {@link IControl}.\r\n * @private\r\n */\r\n private static async _initializeControl(\r\n form: IForm,\r\n elToInit: HTMLElement,\r\n controlFactoryFunction: IFactoryMethodSignature,\r\n ): Promise<IControl> {\r\n // Musí se načíst tu - ještě před instanciací control. Viz jsdoc k loadOriginalRightsDefinition/OriginalRightsDefinitionLoaderFromHTML.\r\n const originalRightsDefinition = loadOriginalRightsDefinition(elToInit);\r\n\r\n // Pozn. controlInstance nemusí být potomek FormControl, ale jen Control. Pak \"ownerForm\" nevyužije.\r\n // Ale to, že ho předáme, ničemu nevadí.\r\n const controlParams: FormControlParams = {\r\n ownerForm: form,\r\n element: elToInit,\r\n originalRightsDefinition,\r\n };\r\n\r\n const controlOrPromise = controlFactoryFunction(controlParams);\r\n const controlInstance: IControl = (controlOrPromise instanceof Promise) ? await controlOrPromise : controlOrPromise;\r\n form?.addDisposable?.(controlInstance);\r\n\r\n extendElementWithTscControl(elToInit, controlInstance);\r\n return controlInstance;\r\n }\r\n}\r\n\r\n/**\r\n * Rozšíří HTML prvek o property `tscControl` s referencí na instanci controlu/connectoru.\r\n * @param element HTML element.\r\n * @param tscControl Instance controlu/connectoru.\r\n * @returns Původní HTML prvek rozšířený o `tscControl`.\r\n */\r\nexport const extendElementWithTscControl = (element: HTMLElement, tscControl: IControl): IHTMLElementWithControl => {\r\n (element as IHTMLElementWithControl).tscControl = tscControl;\r\n return element as IHTMLElementWithControl;\r\n};\r\n","import { DeviceInfo } from \"../../../Device/Info/DeviceInfo\";\r\nimport { Event } from \"../../../Global/Base/Events\";\r\nimport { AlignPanelWidthCounter, helper } from \"./AlignPanelWidthCounter\";\r\n/** Pomocna trida pro nastavovani resize listeneru na detail framy. */\r\nexport class FormSizeComparer {\r\n public static listeners: any[] = [];\r\n\r\n /**\r\n * Nastavi resize listenery na minimalni potrebnou vysku a sirku pro kazdy DetailFrame.\r\n * Pro Pages bere nejvetsi sirku/vysku ze vsech zalozek.\r\n */\r\n public static setResizeListeners(element: HTMLElement, _compareImmediately: boolean, _resizedEvent: Event<any, any>, _horizontalLayout: boolean = true): void {\r\n let containers: HTMLElement[] = [];\r\n if (element) {\r\n containers = helper.toArray<HTMLElement>(element.querySelectorAll(\"[data-tsccontrol=\\\"DetailFrame\\\"]\"));\r\n }\r\n\r\n if (!containers.length) { // kdyz form neobsahuje Detail, vezme se prvni align panel\r\n containers = [AlignPanelWidthCounter.getFirstAlignPanel(element)]; //tu\r\n }\r\n\r\n if (containers[0] !== null && containers.length > 0) {\r\n containers.forEach((container) => { // muze byt vic Detailu ve formu\r\n const containerAlignPanel: HTMLElement = AlignPanelWidthCounter.getFirstAlignPanel(container);\r\n if (!containerAlignPanel) {\r\n return;\r\n }\r\n\r\n containerAlignPanel.classList.add(\"counted\");\r\n\r\n if (DeviceInfo.deviceProperties.phone) { // telefon bude mit vzdy sloupcove zobrazeni detailu\r\n return;\r\n }\r\n\r\n containerAlignPanel.classList.add(\"fits\");\r\n });\r\n }\r\n }\r\n}\r\n","import { IFormUI } from \"./FormUI/FormUI\";\r\nimport { IForm } from \"./XGControls/IForm\";\r\n/**\r\n * Účel otvíraného formuláře\r\n * @includeToDoc\r\n */\r\nexport enum FormPurpose {\r\n standard,\r\n lov,\r\n}\r\n\r\n/**\r\n * Rozhraní tovární metody, kterou je možné použít pro vytváření FormUI\r\n * @includeToDoc\r\n */\r\nexport interface IFormUIFactory {\r\n /**\r\n * Tovární metodě je předán formulář, pro které se má vytvořit FormUI a jeho účel, který je možné zohlednit\r\n * @param form Formulář, pro které se má vytvořit FormUI\r\n * @param formPurpose Účel otvíraného formuláře\r\n * @returns Nové FormUI\r\n */\r\n (form: IForm, formPurpose: FormPurpose | string): IFormUI;\r\n}\r\n","import { AnyAction, combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { createInstanceMapReducer, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { ExtendedPropertiesType, TagsType } from \"@multiweb/types/multiweb\";\r\nimport { FormsMapState, IDeleteFormAction, IFormMappedAction, IFormState, IInitFormAction } from \"./types\";\r\n\r\nconst extendedProperties: Reducer<ExtendedPropertiesType> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IInitFormAction) {\r\n return action.payload.extendedProperties;\r\n }\r\n return state;\r\n};\r\n\r\nconst tags: Reducer<TagsType> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IInitFormAction) {\r\n return action.payload.tags;\r\n }\r\n return state;\r\n};\r\n\r\nconst formsReducer: Reducer<IFormState> = combineReducers({\r\n extendedProperties,\r\n tags,\r\n});\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n return action instanceof IFormMappedAction ? action.meta.formKey : undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(formsReducer, instanceKeyResolver);\r\n\r\nexport const reducer: Reducer<FormsMapState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IDeleteFormAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.formKey];\r\n });\r\n }\r\n\r\n const formKey = instanceKeyResolver(action);\r\n if (formKey && (state[formKey] || action instanceof IInitFormAction)) {\r\n return instanceMapReducer(state, action);\r\n }\r\n\r\n return state;\r\n};\r\n","import { ExtendedPropertiesType, TagsType } from \"@multiweb/types/multiweb\";\r\nimport { DELETE_FORM, INIT_FORM } from \"./constants\";\r\nimport { IDeleteFormAction, IInitFormAction } from \"./types\";\r\n\r\n/**\r\n * Akce pro inicializaci formuláře.\r\n *\r\n * @param formKey Klíč formláře.\r\n * @param extendedProperties Extended properties formuláře.\r\n * @param tags Tags formuláře.\r\n */\r\nexport const createInitFormAction = (\r\n formKey: string,\r\n extendedProperties: ExtendedPropertiesType,\r\n tags: TagsType,\r\n): IInitFormAction => ({\r\n type: INIT_FORM,\r\n payload: {\r\n extendedProperties,\r\n tags,\r\n },\r\n meta: {\r\n formKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání formuláře ze store.\r\n *\r\n * @param formKey Klíč formláře.\r\n */\r\nexport const createDeleteFormAction = (formKey: string): IDeleteFormAction => ({\r\n type: DELETE_FORM,\r\n meta: {\r\n formKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { ExtendedPropertiesType, TagsType } from \"@multiweb/types/multiweb\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { IFormState } from \"./types\";\r\n\r\n/**\r\n * Získá z globálního stavu formuláře podle `formKey`.\r\n * Pokud pro daný klíč neexistuje instance, vrací undefined.\r\n *\r\n * @param state\r\n * @param formKey Klíč formláře.\r\n */\r\nexport const getFormInstance: Selector<IAppState, Readonly<IFormState> | undefined, string> = (\r\n state,\r\n formKey,\r\n) => state.forms[formKey];\r\n\r\n/**\r\n * Vrací extended properties pro formulář daný klíčem.\r\n * Pokud pro daný klíč neexistuje registrovaný formulář, vrací undefined.\r\n *\r\n * @param state\r\n * @param formKey Klíč formuláře.\r\n */\r\nexport const getFormExtendedProperties: Selector<IAppState, Readonly<ExtendedPropertiesType> | undefined, string> = (\r\n state,\r\n formKey,\r\n) => getFormInstance(state, formKey)?.extendedProperties;\r\n\r\n/**\r\n * Vrací tagy pro formulář daný klíčem.\r\n * Pokud pro daný klíč neexistuje registrovaný formulář, vrací undefined.\r\n *\r\n * @param state\r\n * @param formKey Klíč formuláře.\r\n * @returns\r\n */\r\nexport const getFormTags: Selector<IAppState, Readonly<TagsType> | undefined, string> = (\r\n state,\r\n formKey,\r\n) => getFormInstance(state, formKey)?.tags;\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { FormsMapState } from \"./types\";\r\n\r\nexport {\r\n createDeleteFormAction,\r\n createInitFormAction,\r\n} from \"./actions\";\r\nexport {\r\n DELETE_FORM,\r\n INIT_FORM,\r\n} from \"./constants\";\r\nexport {\r\n getFormExtendedProperties,\r\n getFormInstance,\r\n getFormTags,\r\n} from \"./selector\";\r\nexport {\r\n FormsMapState,\r\n IDeleteFormAction,\r\n IInitFormAction,\r\n} from \"./types\";\r\n\r\nexport const formsModule: ApplicationStatefulModule<typeof NAME, Reducer<FormsMapState>> = {\r\n NAME,\r\n reducer,\r\n};\r\n","import { createCreateFetchingKey } from \"@multiweb/reactUtils\";\r\n\r\n/**\r\n * Jméno modulu auth. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"auth\";\r\n\r\n/**\r\n * Klíč pro indikaci načítání uživatele v fetching modulu.\r\n */\r\nexport const FETCHING_KEY_USER = createCreateFetchingKey(NAME)(\"user\");\r\n","import { Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { IUserInfoLoadedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { IAuthState } from \"./types\";\r\n\r\nconst INITIAL_STATE: IAuthState = {\r\n userId: null,\r\n userName: null,\r\n displayName: null,\r\n};\r\n\r\nexport const reducer: Reducer<IAuthState> = (state = INITIAL_STATE, action) =>\r\n produce(state, (draft) => {\r\n if (action instanceof IUserInfoLoadedAction) {\r\n const { userId, userName, displayName } = action.payload.userInfo;\r\n draft.userId = userId;\r\n draft.userName = userName;\r\n draft.displayName = displayName;\r\n }\r\n });\r\n","import { put, take } from \"redux-saga/effects\";\r\n\r\nimport { createHideLoadingIndicatorAction, createLoadUserInfoAction, createShowLoadingIndicatorAction, USER_INFO_LOADED } from \"@multiweb/reactCore/bridge\";\r\nimport { createSetFetchingAction } from \"@multiweb/reactCore/fetching\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { FETCHING_KEY_USER } from \"./constants\";\r\n\r\nexport const saga: SagaWithReturnType = function* authSaga() {\r\n yield put(createShowLoadingIndicatorAction());\r\n yield put(createSetFetchingAction(FETCHING_KEY_USER, true));\r\n yield put(createLoadUserInfoAction());\r\n yield take(USER_INFO_LOADED);\r\n yield put(createSetFetchingAction(FETCHING_KEY_USER, false));\r\n yield put(createHideLoadingIndicatorAction());\r\n};\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící auth modulu.\r\n */\r\nconst getModel = (state: IAppState) => state.core.auth;\r\n\r\n/**\r\n * Získá přihlašovací jméno přihlášeného uživatele.\r\n */\r\nexport const getUserName: Selector<IAppState, string | null> = (state) => getModel(state).userName;\r\n\r\n/**\r\n * Získá jméno přihlášeného uživatele.\r\n */\r\nexport const getDisplayName: Selector<IAppState, string | null> = (state) => getModel(state).displayName;\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IAuthState } from \"./types\";\r\n\r\nexport { FETCHING_KEY_USER, NAME } from \"./constants\";\r\nexport { getDisplayName, getUserName } from \"./selectors\";\r\nexport { IAuthState } from \"./types\";\r\n\r\nexport const authModule: ApplicationStatefulModule<typeof NAME, Reducer<IAuthState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","/**\r\n * Jméno modulu core. Slouží pro jednoznačnou identifikaci modulu.\r\n */\r\nexport const NAME = \"core\";\r\n","// Bridge modul musí být importován absolutně, aby fungovalo jeho mockování při strict buildech (compile:react:dry, testy, storybook).\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { ApplicationModule } from \"@multiweb/types/react\";\r\nimport { authModule } from \"./auth\";\r\nimport { dataSourceModule } from \"./datasource\";\r\nimport { enumsModule } from \"./enums\";\r\nimport { fetchingModule } from \"./fetching\";\r\nimport { i18nModule } from \"./i18n\";\r\nimport { themeModule } from \"./theme\";\r\n\r\nconst { module: bridgeModule } = bridge;\r\n\r\nexport { NAME } from \"./constants\";\r\n\r\n/**\r\n * Seznam core modulů. Pokud modul obsahuje ságu, je automaticky spuštěna. Pokud modul obsahuje reducer, je pod jménem modulu automaticky zapojen do core části stavu.\r\n */\r\nexport const coreModules: Array<ApplicationModule<string>> = [\r\n authModule,\r\n bridgeModule,\r\n i18nModule,\r\n fetchingModule,\r\n themeModule,\r\n dataSourceModule,\r\n enumsModule,\r\n];\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { ISearchedTextChangedAction, ISearchState, ISetSearchResultsAction, SearchResult } from \"./types\";\r\n\r\nexport const searchedText: Reducer<string> = (state = \"\", action) => {\r\n if (action instanceof ISearchedTextChangedAction) {\r\n return action.payload.searchedText;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const searchResults: Reducer<ReadonlyArray<SearchResult>> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ISetSearchResultsAction) {\r\n return action.payload.searchResults;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<ISearchState> = combineReducers({\r\n searchedText,\r\n searchResults,\r\n});\r\n","import { createContext } from \"react\";\r\nimport OverlayScrollbars from \"overlayscrollbars\";\r\n\r\n/**\r\n * Kontext pro nastavení barvy pozadí pro ActionItem komponenty. Výchozí hodnota je false = barva pozadí menu. Submenu poskytuje\r\n * pro všechny své potomky hodnotu true = barva pozadí submenu.\r\n */\r\nexport const ActionItemBackgroundContext = createContext(false);\r\n\r\nexport type ScrollContextType = OverlayScrollbars[\"scroll\"] | null;\r\n\r\n/**\r\n * Kontext pro předání funkce scroll z OverlayScrollbars. Umožňuje scrollovat na element s nastavením \"center\".\r\n * Nativní funkce scrollIntoView nepodporuje nastavením \"center\" v prohlížeči Safari.\r\n */\r\nexport const ScrollContext = createContext<ScrollContextType>(null);\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nexport const logger = LazyLoadingSectionLogger.create(LoggingSection.mainMenu);\r\n","import { KeyboardEvent, KeyboardEventHandler, MouseEvent as ReactMouseEvent, MouseEventHandler } from \"react\";\r\nimport { Action } from \"redux\";\r\n\r\nimport { bridge, FormOpenMethod, IFormOpenedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { isActivatingKeyEvent, isArray, isLeftButtonEvent, toSerializableKeyEvent, toSerializableMouseEvent } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData, INotificationGroup, INotificationItem, MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { IFormContext } from \"@multiweb/types/multiweb\";\r\nimport { MouseButton, SerializableMouseEvent, TypedObject } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"./actions\";\r\nimport { ScrollContextType } from \"./context\";\r\nimport { logger } from \"./logger\";\r\nimport { NavigationSection } from \"./navigation\";\r\nimport { FlatNotificationGroups, IMenuItemDefaultActionAllowedAction, IMenuPanelItem, MenuItemActivatedType, MenuPanelItems, MenuPanelItemType, NotificationItems } from \"./types\";\r\n\r\nconst { logUserInteractionEvent, stopPropagation, getAppConfiguration } = bridge;\r\n\r\n/**\r\n * Transformuje pole notifikačních položek na objekt klíčovaný přes jejich identifikátory. Takto se s daty notifikačních položek lépe pracuje.\r\n * @param notificationItems Pole notifikačních položek\r\n */\r\nexport const transformNotificationItems = (notificationItems: readonly INotificationItem[]): NotificationItems => (\r\n notificationItems.slice().reduce((result, notificationItem) => ({\r\n ...result,\r\n [notificationItem.id]: notificationItem,\r\n }), {})\r\n);\r\n\r\n/**\r\n * Transformuje pole notifikačních skupin na plochý objekt klíčovaný přes jejich identifikátory. Takto se s daty notifikačních skupin lépe pracuje.\r\n * @param notificationGroups Pole notifikačních skupin\r\n */\r\nexport const normalizeNotificationGroups = (notificationGroups: readonly INotificationGroup[]): FlatNotificationGroups => (\r\n notificationGroups.reduce((result, { unread, type }) => {\r\n const { name, ...restTypeParams } = type;\r\n return {\r\n ...result,\r\n [name]: {\r\n unread,\r\n id: name,\r\n ...restTypeParams,\r\n },\r\n };\r\n }, {})\r\n);\r\n\r\n/**\r\n * Převede data notifikačních skupin na data položek levého panelu menu.\r\n * @param notificationGroups Plochá struktura notifikačních skupin\r\n */\r\nexport const notificationGroupsToPanelItems = (notificationGroups: FlatNotificationGroups): MenuPanelItems => (\r\n Object.values(notificationGroups).reduce((result, { id, titleLocKey, iconCode, unread }) => {\r\n const panelItemId = createNotificationGroupPanelItemId(id);\r\n return {\r\n ...result,\r\n [panelItemId]: {\r\n id: panelItemId,\r\n iconCode,\r\n locKey: titleLocKey,\r\n itemId: id,\r\n highlighted: unread,\r\n type: MenuPanelItemType.notificationGroup,\r\n activationType: MenuItemActivatedType.notificationGroup,\r\n },\r\n };\r\n }, {})\r\n);\r\n\r\nexport type IsOpenInTabEvent = (\r\n /** Událost vyvolaná myší. */\r\n event: ReactMouseEvent | SerializableMouseEvent,\r\n) => boolean;\r\n\r\n/**\r\n * Zjistí, zda-li událost odpovídá události pro otevření nové karty prohlížeče.\r\n * @see IsOpenInTabEvent\r\n */\r\nexport const isOpenInTabEvent: IsOpenInTabEvent = (event) => (\r\n (event.ctrlKey && event.button === MouseButton.leftButton) || event.button === MouseButton.middleButton\r\n);\r\n\r\n/**\r\n * Získá metodu otevření pro položku formuláře nebo profilu na základě akce, která ji aktivovala.\r\n * @param action Akce aktivace položky formuláře nebo profilu. Tato funkce již neprovádí kontrolu typu aktivované položky.\r\n * @return Vrací {@link FormOpenMethod.inTab}, pokud byla položka aktivována myší a zároveň odpovídá specifikaci ve funkci isOpenInTabEvent.\r\n * Ve všech ostatních případech vrací {@link FormOpenMethod.newOrExisting}.\r\n */\r\nexport const getFormOpenMethodFromActivationAction = (action: IMenuItemDefaultActionAllowedAction): FormOpenMethod => {\r\n const { mouseEvent } = action.payload;\r\n return mouseEvent && isOpenInTabEvent(mouseEvent) ? FormOpenMethod.inTab : FormOpenMethod.newOrExisting;\r\n};\r\n\r\n/**\r\n * Určí, zda událost myši vyvolává aktivaci položky menu, která může být otevřena v nové záložce. Narozdíl od běžné položky může být tato položka aktivována prostředním\r\n * tlačítkem myši.\r\n * @param event\r\n * @see isMenuItemActivatedByMouse\r\n */\r\nexport const isOpenableInTabItemActivatedByMouse = (event: ReactMouseEvent) => event.button === MouseButton.leftButton || event.button === MouseButton.middleButton;\r\n\r\n/**\r\n * Určí, zda událost myši vyvolává aktivaci položky menu. Používá se pouze pro položky, které nelze otevřít v nové záložce.\r\n * @param event\r\n * @see isOpenableInTabItemActivatedByMouse\r\n */\r\nexport const isMenuItemActivatedByMouse = isLeftButtonEvent;\r\n\r\n/**\r\n * Určí, zda událost klávesnice vyvolává aktivaci položky menu.\r\n * @param event\r\n */\r\nexport const isMenuItemActivatedByKey = isActivatingKeyEvent;\r\n\r\n/**\r\n * Vytvoří obalující handler pro událost myši, který zajistí zastavení propagace události, pokud se jedná o aktivační událost. Zabraňuje aktivaci\r\n * rodičovských položek, kterou by jinak propagace aktivační události způsobila.\r\n * Pokud dojde k potlačení události, informuje aplikaci interakci uživatele, na základě které aplikaci může prodloužit vypršení session.\r\n *\r\n * Zabraňuje také výchozímu chování, z důvodu popsaného u {@link activationMouseBlockHandler}.\r\n *\r\n * @param mouseHandler Handler, který je obalen. Volá se vždy, nezávisle na typu události.\r\n */\r\nexport const createActivationMouseHandler = (mouseHandler?: MouseEventHandler) => (event: ReactMouseEvent) => {\r\n if (isOpenableInTabItemActivatedByMouse(event) || isMenuItemActivatedByMouse(event)) {\r\n logUserInteractionEvent(event.nativeEvent);\r\n stopPropagation(event);\r\n event.preventDefault();\r\n }\r\n if (mouseHandler) {\r\n mouseHandler(event);\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří obalující handler pro událost stisknutí klávesy, který zajistí zastavení propagace události, pokud se jedná o aktivační událost. Zabraňuje aktivaci\r\n * rodičovských položek, kterou by jinak propagace aktivační události způsobila.\r\n * Pokud dojde k potlačení události, informuje aplikaci interakci uživatele, na základě které aplikaci může prodloužit vypršení session.\r\n *\r\n * Zabraňuje také výchozímu chování, z důvodu popsaného u {@link activationKeyBlockHandler}.\r\n *\r\n * @param keyHandler Handler, který je obalen. Volá se vždy, nezávisle na typu události.\r\n */\r\nexport const createActivationKeyHandler = (keyHandler?: KeyboardEventHandler) => (event: KeyboardEvent) => {\r\n if (isMenuItemActivatedByKey(event)) {\r\n logUserInteractionEvent(event.nativeEvent);\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n if (keyHandler) {\r\n keyHandler(event);\r\n }\r\n};\r\n\r\n/**\r\n * Pomocný handler pro událost stisknutí klávesy. Zabraňuje výchozímu chování a propagaci události při stisku aktivačních kláves.\r\n *\r\n * Používá se v onKeyDown jako doplněk k onKeyUp. I tam je nutné zabránit propagaci a výchozímu chování, jinak stisknutí mezerníku způsobuje kromě aktivace také\r\n * nechtěné posunutí scrollbaru v nadřazeném scrollovatelném elementu.\r\n */\r\nexport const activationKeyBlockHandler = createActivationKeyHandler();\r\n\r\n/**\r\n * Pomocný handler pro událost tlačítek myši. Zabraňuje výchozímu chování a propagaci události při stisku aktivačních tlačítek.\r\n *\r\n * Používá se v onMouseDown jako doplněk k onMouseUp. I tam je nutné zabránit propagaci a výchozímu chování, jinak stisknutí prostředního tlačítka způsobuje kromě\r\n * aktivace také přechod do scroll režimu (v chrome v menu notifikací).\r\n */\r\nexport const activationMouseBlockHandler = createActivationMouseHandler();\r\n\r\n/**\r\n * Vytvoří obslužnou funkci pro vyvolání obecné akce aktivace položky menu, kterou lze otvírat v nové záložce. Tento typ položek může mít odlišné aktivační podmínky.\r\n * @param id Identifikátor položky unikátní v rámci typu.\r\n * @param type Typ položky.\r\n * @param section Sekce, ve které je položka vykreslená.\r\n * @param menuItemActivated Dispatch funkce pro MenuItemActivated akci.\r\n * @see createMenuItemMouseActivationHandler\r\n */\r\nexport const createOpenableInTabItemMouseActivationHandler = (id: number | string, type: MenuItemActivatedType, section: NavigationSection, menuItemActivated: typeof createMenuItemActivatedAction) => (mouseEvent: ReactMouseEvent) => {\r\n if (isOpenableInTabItemActivatedByMouse(mouseEvent)) {\r\n menuItemActivated(id, type, section, toSerializableMouseEvent(mouseEvent));\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří obslužnou funkci pro vyvolání obecné akce aktivace položky menu při aktivaci myší.\r\n * @param id Identifikátor položky unikátní v rámci typu.\r\n * @param type Typ položky.\r\n * @param section Sekce, ve které je položka vykreslená.\r\n * @param menuItemActivated Dispatch funkce pro MenuItemActivated akci.\r\n * @see createOpenableInTabItemMouseActivationHandler\r\n */\r\nexport const createMenuItemMouseActivationHandler = (id: number | string, type: MenuItemActivatedType, section: NavigationSection, menuItemActivated: typeof createMenuItemActivatedAction, profileId?: number) => (mouseEvent: ReactMouseEvent) => {\r\n if (isMenuItemActivatedByMouse(mouseEvent)) {\r\n menuItemActivated(id, type, section, toSerializableMouseEvent(mouseEvent), undefined, undefined, profileId);\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří obslužnou funkci pro vyvolání obecné akce aktivace položky menu při stisku aktivační klávesy.\r\n * @param id Identifikátor položky unikátní v rámci typu.\r\n * @param type Typ položky.\r\n * @param section Sekce, ve které je položka vykreslená.\r\n * @param menuItemActivated Dispatch funkce pro MenuItemActivated akci.\r\n */\r\nexport const createMenuItemKeyActivationHandler = (id: number | string, type: MenuItemActivatedType, section: NavigationSection, menuItemActivated: typeof createMenuItemActivatedAction) => (keyboardEvent: KeyboardEvent) => {\r\n if (isMenuItemActivatedByKey(keyboardEvent)) {\r\n menuItemActivated(id, type, section, undefined, toSerializableKeyEvent(keyboardEvent));\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří funkci obalující scroll funkci z OverlayScrollbars, která přijímá element, na který se scrolluje\r\n * s nastaveným vycentrováním. Centrování scrollu je nutné kvůli kompatibilitě s absolutně pozicovanou hlavičkou/patičkou.\r\n * @param scroll Funkce scroll z OverlayScrollbars obalující element.\r\n * @param margin Odsazení použité při scrollování.\r\n */\r\nexport const createMenuCustomScroll = <T extends HTMLElement>(scroll: ScrollContextType, margin: number) => (element: T) => {\r\n if (scroll) {\r\n // Scroll se nemůže volat hned, jinak správně nefunguje scroll přes začátek ve virtualizovaném listu. Hodnota 100ms je určena pomocí experimentování.\r\n setTimeout(() => {\r\n scroll({\r\n el: element,\r\n scroll: \"ifneeded\",\r\n block: \"nearest\",\r\n margin: [margin, 0],\r\n });\r\n }, 100);\r\n } else {\r\n logger.warn(\"Scroll function is not defined. Cannot scroll to element.\");\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří identifikátor formulářové položky panelu menu.\r\n * @param formItemId Identifikátor formulářové položky\r\n */\r\nexport const createFormPanelItemId = (formItemId: number) => addPrefix(formItemId, MenuPanelItemType.form);\r\n\r\n/**\r\n * Vytvoří identifikátor položky panelu menu reprezentující notifikační skupinu.\r\n * @param notificationGroupId Identifikátor notifikační skupiny\r\n */\r\nexport const createNotificationGroupPanelItemId = (notificationGroupId: string) => (\r\n addPrefix(notificationGroupId, MenuPanelItemType.notificationGroup)\r\n);\r\n\r\n/**\r\n * Vrací hodnotu rozšířenou o zadaný prefix.\r\n * @param value Rozšiřovaná hodnota\r\n * @param prefix Přidávaný prefix\r\n */\r\nexport const addPrefix = (value: string | number, prefix: string) => `${prefix}${value}`;\r\n\r\n/**\r\n * Zjistí, zda položka panelu menu reprezentuje formulářovou položku.\r\n * @param panelItem Položka panelu menu\r\n */\r\nexport const isFormPanelItem = (panelItem: IMenuPanelItem) => panelItem.type === MenuPanelItemType.form;\r\n\r\n/**\r\n * Zjistí, zda položka panelu menu reprezentuje notifikační skupinu.\r\n * @param panelItem Položka panelu menu\r\n */\r\nexport const isNotificationGroupPanelItem = (panelItem: IMenuPanelItem) => panelItem.type === MenuPanelItemType.notificationGroup;\r\n\r\n/**\r\n * Transformuje data položek menu na položky panelu menu.\r\n * @param menuItems Položky menu\r\n */\r\nexport const menuItemsToPanelItems = (menuItems: TypedObject<IMenuItemData>): MenuPanelItems => (\r\n Object.values(menuItems)\r\n .map(({ id, icon, locKey, type }) => ({\r\n id: createFormPanelItemId(id),\r\n iconCode: icon,\r\n locKey,\r\n itemId: id,\r\n highlighted: false,\r\n type: MenuItemType.form,\r\n activationType: menuItemTypeToActivationType(type),\r\n }))\r\n .reduce((result, item) => ({\r\n ...result,\r\n [item.id]: item,\r\n }), {})\r\n);\r\n\r\n/**\r\n * Převádí {@link MenuItemType} na {@link MenuItemActivatedType}.\r\n * @param menuItemType Typ pro převedení.\r\n */\r\nconst menuItemTypeToActivationType = (menuItemType: MenuItemType): MenuItemActivatedType => {\r\n switch (menuItemType) {\r\n case MenuItemType.form: return MenuItemActivatedType.panelItemForm;\r\n case MenuItemType.folder: return MenuItemActivatedType.panelItemFormFolder;\r\n case MenuItemType.combined: return MenuItemActivatedType.panelItemCombinedItemForm;\r\n default: throw new Error(`[MainMenu] Unrecognized menu item type: ${menuItemType}. Cannot create menu panel item.`);\r\n }\r\n};\r\n\r\n/**\r\n * Převede akci aktivace položky na id sekce. Pokud aktivovaná položka není z menu panelu a nereprezentuje sekci, vrací undefined.\r\n * @param action Akce aktivace pro převedení.\r\n * @return Id sekce nebo undefined, pokud byla aktivována položka bez sekce.\r\n */\r\nexport const activationActionToMenuPanelItemId = (action: IMenuItemDefaultActionAllowedAction): string | undefined => {\r\n const { itemId, itemType } = action.payload;\r\n switch (itemType) {\r\n case MenuItemActivatedType.staticPanelItem:\r\n return itemId as string;\r\n case MenuItemActivatedType.panelItemForm:\r\n case MenuItemActivatedType.panelItemFormFolder:\r\n case MenuItemActivatedType.panelItemCombinedItemForm:\r\n case MenuItemActivatedType.panelItemCombinedItemFolder:\r\n return createFormPanelItemId(itemId as number);\r\n case MenuItemActivatedType.notificationGroup:\r\n return createNotificationGroupPanelItemId(itemId as string);\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří vzor pro rozpoznávání akcí povolujících výchozí chování pro zadané typy položek.\r\n * @param actionTypes Hledaný typ položek. Může být konkrétní typ nebo pole odpovídajících typů.\r\n */\r\nexport const createAllowedDefaultActionPattern = (actionTypes: MenuItemActivatedType | readonly MenuItemActivatedType[]) => (action: Action): boolean => {\r\n if (action instanceof IMenuItemDefaultActionAllowedAction) {\r\n const { itemType } = action.payload;\r\n if (isArray(actionTypes)) {\r\n return actionTypes.includes(itemType);\r\n } else {\r\n return itemType === actionTypes;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n/**\r\n * Vytvoří identifikátor pro položku profilu. Jeden profil může být vykreslený vícekrát u různých položek formuláře. V takových případech\r\n * nestačí k jednoznačné identifikaci profileId. Řeší se přidáním id rodičovské položky formuláře.\r\n * @param profileId Id profilu.\r\n * @param parentFormItemId Id položky formuláře, pod kterým je profil vykreslený.\r\n */\r\nexport const createItemIdForProfile = (profileId: number, parentFormItemId?: number): string => {\r\n if (parentFormItemId) {\r\n return `${profileId}-${parentFormItemId}`;\r\n } else {\r\n return `${profileId}`;\r\n }\r\n};\r\n\r\n/**\r\n * Zjistí, zda zadaná akce je akcí aktivující formulářovou část kombinované položky menu panelu.\r\n * @param action Akce ke zkontrolování.\r\n */\r\nexport const isCombinedItemFormPartActivatedAction = (action: Action): boolean => action instanceof IMenuItemDefaultActionAllowedAction &&\r\n action.payload.itemType === MenuItemActivatedType.panelItemCombinedItemForm;\r\n\r\n/**\r\n * V konfiguraci zjisti, jaký má být počet v minulosti otevřených formulářů přečtením parametru `openedFormsHistoryCount`.\r\n * Pokud je číslo uložené v parametru vyšší než nula, vrací `true`, v opačném případě `false`.\r\n */\r\nexport const hasOpenedFormsHistoryCountSet = (): boolean => {\r\n return getAppConfiguration().openedFormsHistoryCount > 0;\r\n};\r\n\r\n/**\r\n * Vytvoří kontext formuláře z položky menu\r\n * @param formItem Položka menu\r\n */\r\nexport const createFormContext = (formItem: IMenuItemData): Promise<IFormContext | undefined> => {\r\n if (formItem?.roles?.length) {\r\n return Promise.resolve({\r\n roles: formItem.roles,\r\n });\r\n } else {\r\n return Promise.resolve(undefined);\r\n }\r\n};\r\n\r\n/**\r\n * Vzor pro rozpoznání akce {@link IFormOpenedAction} s parametrem showInMenu nastaveným na true. Umožňuje odfiltrovat akce otevření formuláře, které nemají vliv na hlavní menu.\r\n * @param action Akce k ověření.\r\n */\r\nexport const formOpenedAndShowInMenuActionPattern = (action: Action): boolean => action instanceof IFormOpenedAction && !!action.payload.openedFormInfo.showInMenu;\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { IFormClosedAction, IFormCustomTitleChangedAction, IFormSwitchedAction, ISelectedProfileChangedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IOpenedFormInfo } from \"@multiweb/types/multiweb\";\r\nimport { TypedObject } from \"@multiweb/types/react\";\r\nimport { IMenuItemDefaultActionAllowedAction, MenuItemActivatedType } from \"../types\";\r\nimport { formOpenedAndShowInMenuActionPattern } from \"../utils\";\r\nimport {\r\n CustomTitles,\r\n FormInstanceGroupMap,\r\n IMenuOpenedItemsState,\r\n InstanceNumberMap,\r\n INumbering,\r\n IRemoveGroupMapItemAction,\r\n IRemoveLabelInfoAction,\r\n IRemoveNumberingGroupAction,\r\n IRemoveOpenedItemNumberAction,\r\n ISetGroupMapItemAction,\r\n ISetLabelInfoAction,\r\n ISetNumberingGroupAction,\r\n ISetOpenedItemNumberAction,\r\n LabelValues,\r\n NumberingGroups,\r\n} from \"./types\";\r\n\r\nexport const openedFormInstanceId: Reducer<string | null> = (state = null, action) => {\r\n if (action instanceof IFormSwitchedAction) {\r\n return action.payload.switchedFormInfo.formInstanceId;\r\n } else if (formOpenedAndShowInMenuActionPattern(action)) {\r\n if (action.payload.openInBackground)\r\n return state;\r\n return action.payload.openedFormInfo.formInstanceId;\r\n } else if (action instanceof IMenuItemDefaultActionAllowedAction && action.payload.itemType === MenuItemActivatedType.logoButton) {\r\n return null;\r\n } else if (action instanceof IFormClosedAction) {\r\n if (state === action.payload.closedFormInfo.formInstanceId) {\r\n return null;\r\n } else {\r\n return state;\r\n }\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const openedFormsIds: Reducer<readonly string[]> = (state = EMPTY_ARRAY, action) => {\r\n if (formOpenedAndShowInMenuActionPattern(action)) {\r\n const { formInstanceId } = action.payload.openedFormInfo;\r\n return [formInstanceId, ...state.filter((filteredFormInstanceId) => filteredFormInstanceId !== formInstanceId)];\r\n } else if (action instanceof IFormClosedAction) {\r\n const closedFormId = action.payload.closedFormInfo.formInstanceId;\r\n return state.filter((filteredFormInstanceId) => closedFormId !== filteredFormInstanceId);\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const openedFormsInfo: Reducer<TypedObject<IOpenedFormInfo>> = (state = EMPTY_OBJECT, action) => {\r\n if (formOpenedAndShowInMenuActionPattern(action)) {\r\n return produce(state, (draft) => {\r\n const { openedFormInfo } = action.payload;\r\n draft[openedFormInfo.formInstanceId] = openedFormInfo;\r\n });\r\n } else if (action instanceof IFormClosedAction) {\r\n return produce(state, (draft) => {\r\n const { closedFormInfo } = action.payload;\r\n delete draft[closedFormInfo.formInstanceId];\r\n });\r\n } else if (action instanceof ISelectedProfileChangedAction) {\r\n return produce(state, (draft) => {\r\n const { profile, formInstanceId } = action.payload;\r\n const openedFormInfo = draft[formInstanceId];\r\n if (openedFormInfo) {\r\n openedFormInfo.profileId = profile?.id;\r\n draft[formInstanceId] = openedFormInfo;\r\n }\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const customTitles: Reducer<CustomTitles> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IFormCustomTitleChangedAction) {\r\n return produce(state, (draft) => {\r\n const { formInstanceId, customTitle } = action.payload;\r\n draft[formInstanceId] = customTitle;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const labelValues: Reducer<LabelValues> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetLabelInfoAction) {\r\n return produce(state, (draft) => {\r\n const { formInstanceId, labelValue, isLocKey } = action.payload;\r\n draft[formInstanceId] = {\r\n labelValue,\r\n isLocKey,\r\n };\r\n });\r\n } else if (action instanceof IRemoveLabelInfoAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.payload.formInstanceId];\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const numbers: Reducer<InstanceNumberMap> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetOpenedItemNumberAction) {\r\n return produce(state, (draft) => {\r\n const { formInstanceId, number } = action.payload;\r\n draft[formInstanceId] = number;\r\n });\r\n } else if (action instanceof IRemoveOpenedItemNumberAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.payload.formInstanceId];\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const groups: Reducer<NumberingGroups> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetNumberingGroupAction) {\r\n return produce(state, (draft) => {\r\n const { groupKey, groupData } = action.payload;\r\n draft[groupKey] = groupData;\r\n });\r\n } else if (action instanceof IRemoveNumberingGroupAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.payload.groupKey];\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const groupMap: Reducer<FormInstanceGroupMap> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetGroupMapItemAction) {\r\n return produce(state, (draft) => {\r\n const { formInstanceId, groupKey } = action.payload;\r\n draft[formInstanceId] = groupKey;\r\n });\r\n } else if (action instanceof IRemoveGroupMapItemAction) {\r\n return produce(state, (draft) => {\r\n delete draft[action.payload.formInstanceId];\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const numbering: Reducer<INumbering> = combineReducers({\r\n numbers,\r\n groups,\r\n groupMap,\r\n});\r\n\r\nexport const reducer: Reducer<IMenuOpenedItemsState> = combineReducers({\r\n openedFormInstanceId,\r\n openedFormsIds,\r\n openedFormsInfo,\r\n customTitles,\r\n labelValues,\r\n numbering,\r\n});\r\n","import { IconCode } from \"@multiweb/types/contracts\";\r\nimport { LOC_KEY_MENU_PANEL_QUICK_ACCESS, LOC_KEY_MENU_PANEL_USER } from \"./locKeys\";\r\nimport { MenuItemActivatedType, MenuPanelItems, MenuPanelItemType } from \"./types\";\r\n\r\nexport const UNKNOWN_ITEM_ICON_CODE = IconCode.uiHelp;\r\n\r\nexport enum MenuPanelItemId {\r\n logo = \"LOGO\",\r\n quickAccess = \"QUICK_ACCESS\",\r\n user = \"USER\",\r\n expandButton = \"EXPAND_BUTTON\",\r\n}\r\n\r\nexport const STATIC_MENU_PANEL_ITEMS: MenuPanelItems = {\r\n [MenuPanelItemId.quickAccess]: {\r\n id: MenuPanelItemId.quickAccess,\r\n locKey: LOC_KEY_MENU_PANEL_QUICK_ACCESS,\r\n iconCode: IconCode.uiChevronRightTripple,\r\n type: MenuPanelItemType.static,\r\n activationType: MenuItemActivatedType.staticPanelItem,\r\n },\r\n [MenuPanelItemId.user]: {\r\n id: MenuPanelItemId.user,\r\n locKey: LOC_KEY_MENU_PANEL_USER,\r\n iconCode: IconCode.user,\r\n type: MenuPanelItemType.static,\r\n activationType: MenuItemActivatedType.staticPanelItem,\r\n },\r\n};\r\n\r\nexport const ICON_CODE_EXPAND_MENU = IconCode.webCollapseRight;\r\nexport const ICON_CODE_COLLAPSE_MENU = IconCode.webCollapseLeft;\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { isFetching } from \"@multiweb/reactCore/fetching\";\r\nimport { createGetTextCompareFn, getPrimaryText, getSecondaryText, UNKNOWN_KEY_TEXT } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { AllowedMenuItemCodes, IconCode, IFormProfile, IMenuItemData, INotificationItem, MenuItemType, NotificationGroupId, NotificationItemId } from \"@multiweb/types/contracts\";\r\nimport { IAppState, MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport {\r\n FETCHING_KEY_MENU_ITEMS,\r\n FETCHING_KEY_NOTIFICATION_ITEMS,\r\n NO_NOTIFICATION_ITEM_ACTIVE_COLOR,\r\n NO_NOTIFICATION_ITEM_CREATED_DATE,\r\n NO_NOTIFICATION_ITEM_ICON_CODE,\r\n NO_NOTIFICATION_ITEM_TEXT,\r\n NO_NOTIFICATION_ITEM_TITLE,\r\n NOTIFICATIONS_PAGE_SIZE,\r\n ROOT_ITEM_PARENT_ID,\r\n UNKNOWN_FORM_ICON_CODE,\r\n} from \"./constants\";\r\nimport { LOC_KEY_COLLAPSE_MENU, LOC_KEY_EXPAND_MENU } from \"./locKeys\";\r\nimport { logger } from \"./logger\";\r\nimport { ICON_CODE_COLLAPSE_MENU, ICON_CODE_EXPAND_MENU, MenuPanelItemId, UNKNOWN_ITEM_ICON_CODE } from \"./panelItems\";\r\nimport {\r\n FlatNotificationGroups,\r\n FormCodeMap,\r\n Forms,\r\n IFlatNotificationGroup,\r\n IMenuItems,\r\n IMenuPanelItem,\r\n IMenuState,\r\n MenuItemActivatedType,\r\n MenuPanelItems,\r\n MenuVisibility,\r\n NotificationItems,\r\n Notifications,\r\n ProfileFormRelationship,\r\n ProfileFormRelationships,\r\n Profiles,\r\n SectionId,\r\n VisualAutomatState,\r\n} from \"./types\";\r\nimport { createFormPanelItemId, createNotificationGroupPanelItemId, isFormPanelItem, isNotificationGroupPanelItem } from \"./utils\";\r\n\r\n// ----- Obecné selektory -------------------------------------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící menu modulu.\r\n * @param state\r\n */\r\nconst getModel: Selector<IAppState, IMenuState> = (state) => state.menu;\r\n\r\n// ----- Selektory pro menu jako celek ------------------------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Získá pole lokalizačních klíčů pro všechny položky formulářů ve stavu.\r\n * Nevyužívá reselect, protože není potřeba tento selector volat často a výsledné pole může být velké. Ušetří se tak paměť.\r\n * @param state\r\n */\r\nexport const getFormItemsLocalizationKeys: Selector<IAppState, readonly string[]> = (state) => (\r\n Object.values(getFormItems(state))\r\n .map((formItem) => formItem.locKey)\r\n);\r\n\r\n/**\r\n * Získá viditelnost menu.\r\n */\r\nexport const getMenuVisibility: Selector<IAppState, MenuVisibility> = (state) => getModel(state).menuVisibility;\r\n\r\n/**\r\n * Zjistí, zda je viditelné nepřekrývající menu.\r\n */\r\nexport const isMenuExpanded: Selector<IAppState, boolean> = (state) => getMenuVisibility(state) === MenuVisibility.expanded;\r\n\r\n/**\r\n * Zjistí, zda je viditelné překrývající menu.\r\n */\r\nexport const isMenuFloated: Selector<IAppState, boolean> = (state) => getMenuVisibility(state) === MenuVisibility.floated;\r\n\r\n/**\r\n * Zjistí, zda je menu viditelné - ať už překrývající nebo nepřekrývající.\r\n */\r\nexport const isMenuVisible: Selector<IAppState, boolean> = (state) => getMenuVisibility(state) !== MenuVisibility.hidden;\r\n\r\n/**\r\n * Zjistí, zda je expandované alespoň jedno submenu.\r\n * @param state\r\n */\r\nexport const isSubmenuListExpanded: Selector<IAppState, boolean> = (state) => getModel(state).activeSubmenuId !== null;\r\n\r\n/**\r\n * Zjistí, jestli zadané submenu patří mezi právě aktivní položky. Za aktivní položky se považují kromě nejzanořenější aktivní položky, která je uložena ve stavu, také\r\n * všechny její rodiče.\r\n * @param state\r\n * @param submenuId Id submenu, které se kontroluje.\r\n */\r\nexport const isSubmenuActive: Selector<IAppState, boolean, number> = (state, submenuId) => getActiveSubmenuIds(state).includes(submenuId);\r\n\r\n/**\r\n * Získá id aktivního submenu, nebo null pokud není aktivní žádné.\r\n */\r\nexport const getActiveSubmenuId: Selector<IAppState, number | null> = (state) => getModel(state).activeSubmenuId;\r\n\r\n/**\r\n * Získá id rodiče položky menu. Vrací undefined, pokud položka rodiče nemá.\r\n * @param state\r\n * @param menuItemId Id položky menu, pro kterou získáváme rodiče.\r\n */\r\nexport const getMenuItemParentId: Selector<IAppState, number | undefined, number> = (state, menuItemId) => {\r\n const menuItem = getFormItem(state, menuItemId);\r\n if (menuItem && menuItem.parent !== ROOT_ITEM_PARENT_ID) {\r\n return menuItem.parent;\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Získá funkci pro porovnávání textu podle pravidel aktivní lokalizace. Funkce je sdílená pro celé menu a neobsahuje žádné speciální nastavení.\r\n */\r\nexport const getTextCompareFn = createGetTextCompareFn();\r\n\r\n/**\r\n * Zjistí, zda probíhá načítání položek menu.\r\n * @param state\r\n */\r\nexport const areMenuItemsLoading: Selector<IAppState, boolean> = (state) => isFetching(state, FETCHING_KEY_MENU_ITEMS);\r\n\r\n// ----- Selektory pro menu panel -----------------------------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Získá id aktivní sekce menu. Pokud není žádná sekce aktivní, vrací null.\r\n * @param state\r\n */\r\nexport const getActiveSectionId: Selector<IAppState, SectionId> = (state) => getModel(state).activeSectionId;\r\n\r\n/**\r\n * Zjistí, zda je položka menu panelu se zadaným id aktivní.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu. Identifikátory statických položek jsou definovaný v konstantách v panelItems.ts.\r\n */\r\nexport const isPanelItemActive: Selector<IAppState, boolean, string> = (state, panelItemId) => getActiveSectionId(state) === panelItemId;\r\n\r\n/**\r\n * Zjistí, zda je položka menu se zadaným id zvýrazněná.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu.\r\n */\r\nexport const isPanelItemHighlighted: Selector<IAppState, boolean, string> = (state, panelItemId) => {\r\n const panelItem = getPanelItem(state, panelItemId);\r\n\r\n if (!panelItem) {\r\n return false;\r\n }\r\n\r\n return !!panelItem.highlighted;\r\n};\r\n\r\n/**\r\n * Získá položky panelu menu.\r\n * @param state\r\n */\r\nexport const getPanelItems: Selector<IAppState, MenuPanelItems> = (state) => getModel(state).panelItems;\r\n\r\n/**\r\n * Získá položku panelu menu. Vrací undefined, pokud není položka ve stavu.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu.\r\n */\r\nexport const getPanelItem: Selector<IAppState, IMenuPanelItem | undefined, string> = (state, panelItemId) => getPanelItems(state)[panelItemId];\r\n\r\n/**\r\n * Získá kód ikony pro položku menu panelu podle jejího identifikátoru. Vrací výchozí hodnotu, pokud není položka ve stavu.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu. Identifikátory statických položek jsou definovaný v konstantách v panelItems.ts\r\n */\r\nexport const getPanelItemIconCode: Selector<IAppState, IconCode, string> = (state, panelItemId) => {\r\n const panelItem = getPanelItem(state, panelItemId);\r\n if (panelItem) {\r\n return panelItem.iconCode;\r\n }\r\n\r\n return UNKNOWN_ITEM_ICON_CODE;\r\n};\r\n\r\n/**\r\n * Získá nápovědu pro položku menu panelu podle jejího identifikátoru. Aby byla nápověda k dispozici, je nutné ji načíst do i18n modulu.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu. Identifikátory statických položek jsou definovány v konstantách v panelItems.ts\r\n * @return Vrací nápovědu pro položku menu panelu.\r\n * - Pro nenačtená data v i18n modulu vrací prázdný řetězec.\r\n * - Vrací konstantu pro neznámou lokalizaci, pokud je zadáno neznámé id nebo je načtená nápověda nedefinovaná.\r\n * - Pokud probíhá načítání položek menu, vrací prázdný řetězec.\r\n */\r\nexport const getPanelItemTitle: Selector<IAppState, string | undefined, string> = (state, panelItemId) => {\r\n const panelItem = getPanelItem(state, panelItemId);\r\n if (!panelItem) {\r\n if (areMenuItemsLoading(state)) {\r\n return \"\";\r\n }\r\n logger.warn(\"Cannot get panel item title because panel item with id %s does not exist!\", panelItemId);\r\n return UNKNOWN_KEY_TEXT;\r\n }\r\n return getSecondaryText(state, panelItem.locKey) || \"\";\r\n};\r\n\r\n/**\r\n * Vrátí příznak, zda mají být zobrazeny popisky položek v menu panelu.\r\n * @param state\r\n */\r\nexport const areMenuPanelCaptionsVisible: Selector<IAppState, boolean> = (state) => getModel(state).menuPanelCaptionsVisible;\r\n\r\n/**\r\n * Zjistí, zda se má zobrazit popisek pro danou položku menu panelu. Vrací false, pokud není nastaveno zobrazování popisků v menu panelu,\r\n * nebo pokud není povoleno zobrazení popisku u dané položky.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu.\r\n */\r\nexport const isPanelItemCaptionEnabled: Selector<IAppState, boolean, string> = (state, panelItemId) => {\r\n if (!areMenuPanelCaptionsVisible(state)) {\r\n return false;\r\n }\r\n return panelItemId !== MenuPanelItemId.user;\r\n};\r\n\r\n/**\r\n * Získá popisek pro položku menu panelu podle jejího identifikátoru. Aby byl popisek k dispozici, je nutné ho načíst do i18n modulu.\r\n * @param state\r\n * @param panelItemId Identifikátor položky panelu menu. Identifikátory statických položek jsou definovány v konstantách v panelItems.ts\r\n * @return Vrací popisek pro položku menu panelu.\r\n * - Vrací undefined v případe, že není zobrazování popisku povoleno.\r\n * - Pokud probíhá načítání položek menu nebo nejsou načtená data v i18n modulu, vrací prázdný řetězec.\r\n * - Vrací konstantu pro neznámou lokalizaci, pokud je zadáno neznámé id nebo je načtený popisek nedefinovaný.\r\n */\r\nexport const getPanelItemCaption: Selector<IAppState, string | undefined, string> = (state, panelItemId) => {\r\n if (!isPanelItemCaptionEnabled(state, panelItemId)) {\r\n return undefined;\r\n }\r\n const panelItem = getPanelItem(state, panelItemId);\r\n if (!panelItem) {\r\n if (areMenuItemsLoading(state)) {\r\n return \"\";\r\n }\r\n logger.warn(\"Cannot get panel item caption because panel item with id %s does not exist!\", panelItemId);\r\n return UNKNOWN_KEY_TEXT;\r\n }\r\n return getPrimaryText(state, panelItem.locKey) || \"\";\r\n};\r\n\r\n/**\r\n * Vrací id položky reprezentované v položce menu panelu. Pokud se jedná o statickou položku, vrací id menu panel položky jako takové.\r\n * @param state\r\n * @param panelItemId Id položky menu panelu, pro který se získává id reprezentované položky.\r\n */\r\nexport const getPanelItemItemId: Selector<IAppState, number | string, string> = (state, panelItemId) => (\r\n getPanelItem(state, panelItemId)?.itemId ?? panelItemId\r\n);\r\n\r\n/**\r\n * Získá aktivační typ položky menu panelu. Slouží pro custom akce a má větší granularitu než typ položky menu panelu.\r\n * @param state\r\n * @param panelItemId Id položky menu panelu, pro který se získává aktivační typ.\r\n */\r\nexport const getPanelItemActivationType: Selector<IAppState, MenuItemActivatedType | undefined, string> = (state, panelItemId) => (\r\n getPanelItem(state, panelItemId)?.activationType\r\n);\r\n\r\n/**\r\n * Získá Id naposledy otevřeného podmenu položky menu panelu.\r\n * @param state\r\n * @param panelItemId Id položky menu panelu, pro který se získává Id podmenu.\r\n */\r\nexport const getPanelItemLastSubmenuId: Selector<IAppState, number | undefined, string> = (state, panelItemId) => (\r\n getPanelItem(state, panelItemId)?.lastSubmenuId\r\n);\r\n\r\n/**\r\n * Zjistí, zda položka menu panelu je typu kombinované položky, která slouží zároveň jako formulář i složka.\r\n * @param state\r\n * @param panelItemId Id položky menu panelu, pro který se zjišťuje, zda je kombinovaný.\r\n */\r\nexport const isPanelItemCombinedType: Selector<IAppState, boolean, string> = (state, panelItemId) => getPanelItemActivationType(state, panelItemId) === MenuItemActivatedType.panelItemCombinedItemForm;\r\n\r\n/**\r\n * Získá kód ikony pro MenuExpandButton v závislosti na tom, jestli je menu viditelné nebo skryté.\r\n * @param state\r\n */\r\nexport const getExpandButtonIconCode: Selector<IAppState, IconCode> = (state) => isMenuExpanded(state) ? ICON_CODE_COLLAPSE_MENU : ICON_CODE_EXPAND_MENU;\r\n\r\n/**\r\n * Získá popisek pro MenuExpandButton v závislosti na tom, jestli je menu viditelné nebo skryté. Aby byl popisek k dispozici,\r\n * je nutné ho načíst do i18n modulu.\r\n * @param state\r\n */\r\nexport const getExpandButtonTitle: Selector<IAppState, string | undefined> = (state) => (\r\n getSecondaryText(state, isMenuExpanded(state) ? LOC_KEY_COLLAPSE_MENU : LOC_KEY_EXPAND_MENU)\r\n);\r\n\r\n// ----- Selektory pro formulářové položky --------------------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící položkám menu modulu.\r\n * @param state\r\n */\r\nconst getItemsModel: Selector<IAppState, IMenuItems> = (state) => getModel(state).items;\r\n\r\n/**\r\n * Vrací všechny formulářové položky.\r\n * @param state\r\n */\r\nexport const getFormItems: Selector<IAppState, Forms> = (state) => getItemsModel(state).forms;\r\n\r\n/**\r\n * Vrací všechny položky profilů.\r\n * @param state\r\n */\r\nexport const getProfiles: Selector<IAppState, Profiles> = (state) => getItemsModel(state).profiles;\r\n\r\n/**\r\n * Získá menu položku formuláře podle zadaného id. Pokud formulář pro zadané id neexistuje, vrací undefined.\r\n * @param state\r\n * @param formItemId Id formuláře, který chceme získat.\r\n */\r\nexport const getFormItem: Selector<IAppState, IMenuItemData | undefined, number> = (state, formItemId) => getFormItems(state)[formItemId];\r\n\r\n/**\r\n * Získá profil formuláře podle zadaného id.\r\n * @param state\r\n * @param profileId Id profilu formuláře, který chceme získat. Pokud profil pro zadané id neexistuje, vrací undefined.\r\n */\r\nexport const getFormProfile: Selector<IAppState, IFormProfile | undefined, number> = (state, profileId) => getProfiles(state)[profileId];\r\n\r\n/**\r\n * Získá pole povolených aliasů kořenových uzlů hlavního navigačního menu. Vrací null, pokud nejsou alisy omezeny.\r\n * @state\r\n */\r\nexport const getAllowedMenuItemCodes: Selector<IAppState, AllowedMenuItemCodes> = (state) => getItemsModel(state).allowedMenuItemCodes;\r\n\r\n/**\r\n * Získá identifikátory kořenových forlumářových položek.\r\n * @param state\r\n */\r\nexport const getRootFormItemIds: Selector<IAppState, readonly number[]> = (state) => getItemsModel(state).rootFormItemIds;\r\n\r\n/**\r\n * Získá objekt s kořenovými formulářovými položkami. Obejkt je klíčovaný přes identifikátory formulářů.\r\n * @param state\r\n */\r\nexport const getRootFormItems = createSelector<IAppState, ReturnType<typeof getFormItems>, ReturnType<typeof getRootFormItemIds>, Forms>(\r\n getFormItems,\r\n getRootFormItemIds,\r\n (formItems, rootFormItemIds) => (\r\n rootFormItemIds.reduce((acc, id) => ({\r\n ...acc,\r\n [id]: formItems[id],\r\n }), {})\r\n ),\r\n);\r\n\r\n/**\r\n * Získá pole identifikátorů kořenových formulářových položek pro menu formulářů.\r\n * Položky jsou případně filtrovány na základě povolených aliasů v souboru initParams.json.\r\n * @param state\r\n */\r\nexport const getAllowedRootFormItemIds = createSelector<IAppState, ReturnType<typeof getRootFormItems>, ReturnType<typeof getAllowedMenuItemCodes>, ReturnType<typeof getRootFormItemIds>, readonly number[]>(\r\n getRootFormItems,\r\n getAllowedMenuItemCodes,\r\n getRootFormItemIds,\r\n (rootFormItems, allowedMenuItemCodes, rootFormItemIds) => {\r\n if (!allowedMenuItemCodes) {\r\n return rootFormItemIds;\r\n }\r\n\r\n return Object.values(rootFormItems)\r\n .filter(({ code }) => code ? allowedMenuItemCodes.includes(code) : false)\r\n .map(({ id }) => id);\r\n },\r\n);\r\n\r\n/**\r\n * Získá identifikátory formulářových položek panelu menu\r\n */\r\nexport const getFormPanelItemIds = createSelector<IAppState, ReturnType<typeof getAllowedRootFormItemIds>, SectionId[]>(\r\n getAllowedRootFormItemIds,\r\n (allowedRootFormItemIds) => allowedRootFormItemIds.map((id) => createFormPanelItemId(id)),\r\n);\r\n\r\n/**\r\n * Získá identifikátor formulářové položky právě aktivní sekce.\r\n * @param state\r\n * @return Identifikátor formulářové položky - vrací undefined v případě, že vybraná sekce nereprezentuje formulářovou položku.\r\n */\r\nexport const getActiveSectionFormItemId: Selector<IAppState, number | undefined> = (state) => {\r\n const activeSectionId = getActiveSectionId(state);\r\n\r\n const panelItem = getPanelItem(state, activeSectionId);\r\n if (!panelItem || !isFormPanelItem(panelItem) || !panelItem.itemId) {\r\n return undefined;\r\n }\r\n\r\n return panelItem.itemId as number;\r\n};\r\n\r\n/**\r\n * Získá id potomků zadaného formuláře. Pokud formulář neexistuje, nebo nemá potomky, vrací prázdné pole.\r\n * @param state\r\n * @param formId Id formuláře, jehož potomky chceme získat.\r\n */\r\nexport const getFormChildIds: Selector<IAppState, readonly number[], number> = (state, formId) => {\r\n const form = getFormItem(state, formId);\r\n return form && form.children ? form.children : EMPTY_ARRAY;\r\n};\r\n\r\n/**\r\n * Vytvoří cachovaný selektor pro získání identifikátorů všech profilů patřících k formuláři se zadaným id.\r\n */\r\nexport const createGetProfileIdsForForm = () => createSelector(\r\n getFormItemCode,\r\n getProfiles,\r\n (formCode, profiles) => Object.values(profiles)\r\n .filter((profile) => profile.formCode === formCode && profile.showInNavigationTree === true)\r\n .sort((first, second) => (first.title.localeCompare(second.title)))\r\n .map((profile) => profile.id),\r\n);\r\n\r\n/**\r\n * Získá kód ikony pro formulář se zadaným id. Pokud formulář neexistuje, nebo nemá ikonu, vrací náhradní ikonu\r\n * definovanou konstantou UNKNOWN_FORM_ICON_CODE.\r\n * @param state\r\n * @param formId Id formuláře.\r\n */\r\nexport const getFormItemIconCode: Selector<IAppState, IconCode | undefined, number> = (state, formId) => {\r\n const form = getFormItem(state, formId);\r\n return form ? form.icon : UNKNOWN_FORM_ICON_CODE;\r\n};\r\n\r\n/**\r\n * Získá přeložený název formuláře se zadaným id.\r\n * @param state\r\n * @param formItemId Id menu položky formuláře.\r\n * @return Vrací název formuláře.\r\n * - Vrací hodnotu z konstanty UNKNOWN_KEY_TEXT, pokud formulář neexistuje nebo nemá validní lokalizační klíč.\r\n * - Pokud probíhá načítání položek menu, vrací prázdný řetězec.\r\n */\r\nexport const getFormItemTitle: Selector<IAppState, string | undefined, number> = (state, formItemId) => {\r\n const form = getFormItem(state, formItemId);\r\n if (!form) {\r\n if (areMenuItemsLoading(state)) {\r\n return \"\";\r\n }\r\n logger.warn(\"Cannot get form item title because form item with id %s does not exist!\", formItemId);\r\n return UNKNOWN_KEY_TEXT;\r\n }\r\n return getPrimaryText(state, form.locKey);\r\n};\r\n\r\n/**\r\n * Pokusí se získat formulářovou položku pro profil navázanou přes kód formuláře. Vazba mezi formulářem a položkami formuláře je 1:N. Můžou tedy nastat případy,\r\n * kdy je vyhledáno více položek. V takovém případě se vybere první nalezená. Vrací undefined, pokud neexistuje žádná položka.\r\n * @param state\r\n * @param profileId Id profilu, pro který se získá formulář.\r\n */\r\nexport const getFormItemByProfileId: Selector<IAppState, IMenuItemData | undefined, number> = (state, profileId) => {\r\n const profile = getFormProfile(state, profileId);\r\n if (!profile) {\r\n return undefined;\r\n }\r\n const formItemId = getFormItemId(state, profile.formCode);\r\n if (!formItemId) {\r\n return undefined;\r\n } else {\r\n return getFormItem(state, formItemId);\r\n }\r\n};\r\n\r\n/**\r\n * Získá identifikátor formuláře pro zadaný kód formuláře.\r\n * - Vrací undefined v případě, že nebyl identifikátor nalezen.\r\n * - Vrací některý z nalezených identifikátorů, pokud jich existuje více.\r\n * @param state\r\n * @param formCode Kód formuláře\r\n */\r\nexport const getFormItemId: Selector<IAppState, number | undefined, string> = (state, formCode) => {\r\n const formItemIds = getFormItemIds(state, formCode);\r\n\r\n if (!formItemIds || formItemIds.length === 0) {\r\n return undefined;\r\n }\r\n\r\n if (formItemIds.length !== 1) {\r\n logger.warn(\"Cannot get unique form item identifier for a form code %s, because more form items are related \" +\r\n \"to the same form code. Random identifier has been used.\", formCode);\r\n }\r\n\r\n return formItemIds[0];\r\n};\r\n\r\n/**\r\n * Získá mapu pro převod kódu formuláře na jeho id.\r\n * @param state\r\n */\r\nexport const getFormCodeMap: Selector<IAppState, FormCodeMap> = (state) => getItemsModel(state).formCodeMap;\r\n\r\n/**\r\n * Získá id všech formulářových položek navázaných na formulář se zadaným kódem. Pro neznámý kód formuláře vrací undefined.\r\n * @param state\r\n * @param formCode Kód formuláře.\r\n */\r\nexport const getFormItemIds: Selector<IAppState, readonly number[] | undefined, string> = (state, formCode) => getFormCodeMap(state)[formCode];\r\n\r\n/**\r\n * Získá jméno profilu podle jeho id. Pokud profil neexistuje, vrací hodnotu konstanty UNKNOWN_KEY_TEXT.\r\n * @param state\r\n * @param profileId Id profilu, pro který se získává jméno.\r\n */\r\nexport const getProfileTitle: Selector<IAppState, string, number> = (state, profileId) => {\r\n const profile = getFormProfile(state, profileId);\r\n return profile ? profile.title : UNKNOWN_KEY_TEXT;\r\n};\r\n\r\n/**\r\n * Získá kód formuláře z profilu se zadaným id.\r\n * @param state\r\n * @param profileId\r\n */\r\nexport const getProfileFormCode: Selector<IAppState, string | undefined, number> = (state, profileId) => getFormProfile(state, profileId)?.formCode;\r\n\r\n/**\r\n * Získá kód formuláře podle jeho id. Pokud formulář se zadaným id neexistuje, vrací undefined.\r\n * @param state\r\n * @param formId\r\n */\r\nexport const getFormItemCode: Selector<IAppState, string | undefined, number> = (state, formId) => getFormItem(state, formId)?.formCode;\r\n\r\n/**\r\n * Získá podstrom stavu reprezentující propojení mezi profily a formulářovými položkami.\r\n * @param state\r\n */\r\nexport const getProfileFormRelationshipModel: Selector<IAppState, ProfileFormRelationships> = (state) => getItemsModel(state).profileFormRelationships;\r\n\r\n/**\r\n * Získá objekt reprezentující spojení mezi profilem a položkou formuláře podle složeného id generovaného z {@link createItemIdForProfile}.\r\n * @param state\r\n * @param itemId\r\n */\r\nexport const getProfileFormRelationship: Selector<IAppState, ProfileFormRelationship | undefined, string> = (state, itemId) => getProfileFormRelationshipModel(state)[itemId];\r\n\r\n/**\r\n * Vytvoří cachovaný selector pro získání mapování id formuláře na jeho lokalizované jméno.\r\n * Selector se přepočítá, pokud se změní lokalizace pro některý ze zadaných formulářů.\r\n * @param formIds Id formulářů, pro které se vytvoří objekt s lokalizovanými názvy.\r\n */\r\nexport const createGetFormNameMap = (formIds: readonly number[]) => createSelector(\r\n formIds.map((formId) => (state: IAppState) => getFormItemTitle(state, formId)),\r\n (...formNames) => formNames.reduce((accumulator, formName, index) => {\r\n const formId = formIds[index];\r\n if (formId !== undefined && formName !== undefined) {\r\n accumulator[formId] = formName;\r\n }\r\n return accumulator;\r\n }, {} as MutableTypedObject<string>) as TypedObject<string>,\r\n);\r\n\r\n/**\r\n * Zjistí, zda je položka typu kombinované položky.\r\n * @param state\r\n * @param formId Id zkoumané položky menu.\r\n */\r\nexport const isCombinedItem: Selector<IAppState, boolean, number> = (state, formId) => getFormItem(state, formId)?.type === MenuItemType.combined;\r\n// ----- Selektory pro notifikace ----------------------------------------------------------------------------------------------------------\r\n\r\n/**\r\n * Získá z globálního stavu podstrom patřící notifikacím menu modulu.\r\n * @param state\r\n */\r\nconst getNotificationsModel: Selector<IAppState, Notifications> = (state) => getItemsModel(state).notifications;\r\n\r\n/**\r\n * Získá notifikační skupinu. Vrací undefined, pokud není skupina ve stavu.\r\n * @param state\r\n * @param notificationGroupId Identifikátor notifikační skupiny\r\n */\r\nexport const getNotificationGroup: Selector<IAppState, IFlatNotificationGroup | undefined, NotificationGroupId> = (state, notificationGroupId) => (\r\n getNotificationGroups(state)[notificationGroupId]\r\n);\r\n\r\n/**\r\n * Získá identifikátory notifikačních položek. Identifikátory jsou seřazeny podle okamžiku vzniku jejich notifikačních položek\r\n * od nejnovějších po nejstarší. Změna doby běhu funkce při použití reselectu je zanedbatelná.\r\n * @param state\r\n */\r\nexport const getNotificationItemIds: Selector<IAppState, NotificationItemId[]> = (state) => (\r\n Object.values(getNotificationItems(state))\r\n .sort((a, b) => b.createdDate.getTime() - a.createdDate.getTime())\r\n .map(({ id }) => id)\r\n);\r\n\r\n/**\r\n * Získá počet načtených stránek notifikačních položek.\r\n * @param state\r\n */\r\nexport const getNotificationsPageCount: Selector<IAppState, number> = (state) => getNotificationsModel(state).pageCount;\r\n\r\n/**\r\n * Získá počáteční index pro načítání další stránky notifikačních položek.\r\n * @param state\r\n */\r\nexport const getNotificationsStartIndex: Selector<IAppState, number> = (state) => getNotificationsPageCount(state) * NOTIFICATIONS_PAGE_SIZE;\r\n\r\n/**\r\n * Zjistí, zda jsou již načteny všechny notifikační položky. Použití reselectu by nezvýšilo výkon.\r\n * @param state\r\n */\r\nexport const allNotificationItemsLoaded: Selector<IAppState, boolean> = (state) => {\r\n const notificationItemsCount = getNotificationItemIds(state).length;\r\n const pageCount = getNotificationsPageCount(state);\r\n const isNextPageLoading = isFetching(state, FETCHING_KEY_NOTIFICATION_ITEMS);\r\n\r\n return !isNextPageLoading && (notificationItemsCount < pageCount * NOTIFICATIONS_PAGE_SIZE);\r\n};\r\n\r\n/**\r\n * Získá notifikační položky.\r\n * @param state\r\n */\r\nexport const getNotificationItems: Selector<IAppState, Readonly<NotificationItems>> = (state) => getNotificationsModel(state).items;\r\n\r\n/**\r\n * Zjistí, zda jsou ve stavu dostupné nějaké notifikační položky.\r\n * @param state\r\n */\r\nexport const areNotificationItemsAvailable: Selector<IAppState, Readonly<boolean>> = (state) => getNotificationItemIds(state).length !== 0;\r\n\r\n/**\r\n * Získá notifikační skupiny.\r\n * @param state\r\n */\r\nexport const getNotificationGroups: Selector<IAppState, Readonly<FlatNotificationGroups>> = (state) => getNotificationsModel(state).groups;\r\n\r\n/**\r\n * Získá překladové klíče notifikačních skupin. Použití reselectu by nezvýšilo výkon.\r\n * @param state\r\n */\r\nexport const getNotificationGroupsLocalizationKeys: Selector<IAppState, ReadonlyArray<NotificationGroupId>> = (state) => {\r\n const notificationGroups = getNotificationGroups(state);\r\n return Object.values(notificationGroups).map((notificationGroup) => notificationGroup.titleLocKey);\r\n};\r\n\r\n/**\r\n * Cacheovaný selektor, který získá identifikátory notifikačních skupin.\r\n * @param state\r\n */\r\nexport const getNotificationGroupIds = createSelector<IAppState, ReturnType<typeof getNotificationGroups>, NotificationGroupId[]>(\r\n state => getNotificationGroups(state),\r\n (notificationGroups) => Object.keys(notificationGroups),\r\n);\r\n\r\n/**\r\n * Cacheovaný selektor, který získá identifikátory položek panelu menu reprezentujících notifikační skupiny.\r\n * @param state\r\n */\r\nexport const getNotificationGroupPanelItemIds = createSelector<IAppState, ReturnType<typeof getNotificationGroupIds>, NotificationGroupId[]>(\r\n state => getNotificationGroupIds(state),\r\n (notificationGroupIds) => notificationGroupIds.map((id) => createNotificationGroupPanelItemId(id)),\r\n);\r\n\r\n/**\r\n * Zjistí, zda-li je zadaná hodnota identifikátorem notifikační skupiny.\r\n * @param state\r\n * @param value Hodnota pro kontrolu\r\n */\r\nexport const isNotificationGroupId: Selector<IAppState, boolean, string> = (state, value) => (\r\n getNotificationGroupIds(state).includes(value)\r\n);\r\n\r\n/**\r\n * Zjistí, zda je zadaná sekce prázdná. Tedy že se pro ni nemá otevírat menu.\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n * @param state\r\n */\r\nexport const isEmptySection: Selector<IAppState, boolean, string> = (state, menuPanelItemId) => {\r\n const panelItem = getPanelItem(state, menuPanelItemId);\r\n if (!panelItem) {\r\n return true;\r\n }\r\n if (isFormPanelItem(panelItem)) {\r\n const formItem = getFormItem(state, panelItem.itemId as number);\r\n if (!formItem || formItem.type === MenuItemType.form) {\r\n return true;\r\n }\r\n if (formItem.type === MenuItemType.folder || formItem.type === MenuItemType.combined) {\r\n if (!formItem.children || formItem.children.length === 0) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Zjistí, zda se má po vybrání položky panelu menu provést změna aktivní sekce.\r\n * @param state\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n */\r\nexport const shouldChangeActiveSection: Selector<IAppState, boolean, string> = (state, menuPanelItemId) => {\r\n const activeSectionId = getActiveSectionId(state);\r\n if (activeSectionId !== menuPanelItemId) {\r\n return !isEmptySection(state, menuPanelItemId);\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Zjistí, zda je zadaná hodnota identifikátorem položky panelu menu reprezentující notifikační skupinu.\r\n * @param state\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n */\r\nexport const isNotificationGroupPanelItemId: Selector<IAppState, boolean, string> = (state, menuPanelItemId) => {\r\n const panelItem = getPanelItem(state, menuPanelItemId);\r\n if (!panelItem) {\r\n return false;\r\n }\r\n return isNotificationGroupPanelItem(panelItem);\r\n};\r\n\r\n/**\r\n * Získá nadpis aktivní notifikační sekce. V případě, že není aktivní notifikační sekce nebo sekce neexistuje se vrací předem definovaný řetězec.\r\n * @param state\r\n */\r\nexport const getActiveNotificationGroupTitle: Selector<IAppState, string | undefined> = (state) => {\r\n const activeSectionId = getActiveSectionId(state);\r\n\r\n const panelItem = getPanelItem(state, activeSectionId);\r\n if (!panelItem || !isNotificationGroupPanelItem(panelItem)) {\r\n return UNKNOWN_KEY_TEXT;\r\n }\r\n\r\n return getPrimaryText(state, panelItem.locKey);\r\n};\r\n\r\n/**\r\n * Zjistí, zda je notifikační skupina zvýrazněná / zda skupina obsahuje nepřečtenou notifikaci. Vrací false, pokud zadaná notifikační skupina neexistuje.\r\n * @param notificationGroupId Identifikátor notifikační skupiny\r\n * @param state\r\n */\r\nexport const isNotificationGroupHighlighted: Selector<IAppState, boolean, NotificationGroupId> = (state, notificationGroupId) => {\r\n const notificationGroup = getNotificationGroup(state, notificationGroupId);\r\n if (!notificationGroup) {\r\n return false;\r\n }\r\n\r\n return notificationGroup.unread;\r\n};\r\n\r\n/**\r\n * Získá notifikační položku. Vrací undefined, pokud hledaná notifikační položka neexistuje.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItem: Selector<IAppState, INotificationItem | undefined, NotificationItemId> = (state, notificationItemId) => (\r\n getNotificationItems(state)[notificationItemId]\r\n);\r\n\r\n/**\r\n * Získá barvu aktivní notifikační položky. Vrací předem definovanou výchozí barvu, pokud notifikační položka nebyla nalezena.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItemActiveColorHex: Selector<IAppState, string, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n\r\n if (!notificationItem) {\r\n return NO_NOTIFICATION_ITEM_ACTIVE_COLOR;\r\n }\r\n\r\n return notificationItem.type.color;\r\n};\r\n\r\n/**\r\n * Získá kód ikony notifikační položky. Vrací předem definovaný kód ikony, pokud notifikační položka nebyla nalezena.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItemIconCode: Selector<IAppState, IconCode, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n\r\n if (!notificationItem) {\r\n return NO_NOTIFICATION_ITEM_ICON_CODE;\r\n }\r\n\r\n return notificationItem.type.iconCode;\r\n};\r\n\r\n/**\r\n * Získá obsah zprávy notifikační položky. Vrací předem definovaný řetězec, pokud nebyla nalezena notifikační položka.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItemText: Selector<IAppState, string | undefined, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n\r\n if (!notificationItem) {\r\n return NO_NOTIFICATION_ITEM_TEXT;\r\n }\r\n\r\n return notificationItem.text;\r\n};\r\n\r\n/**\r\n * Získá nadpis notifikační položky. Vrací předem definovaný řetězec, pokud nebyla nalezena notifikační položka.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItemTitle: Selector<IAppState, string | undefined, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n\r\n if (!notificationItem) {\r\n return NO_NOTIFICATION_ITEM_TITLE;\r\n }\r\n\r\n return notificationItem.title;\r\n};\r\n\r\n/**\r\n * Získá datum vytvoření notifikační položky. Vrací předem definovanou hodnotu, pokud nebyla nalezena notifikační položka.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const getNotificationItemCreatedDate: Selector<IAppState, Date, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n if (!notificationItem) {\r\n logger.warn(\"Selected notification item with id %d does not exist! Default date considered as created for a notification\" +\r\n \" item component.\", notificationItemId);\r\n return NO_NOTIFICATION_ITEM_CREATED_DATE;\r\n }\r\n\r\n return notificationItem.createdDate;\r\n};\r\n\r\n/**\r\n * Zjistí, zda je notifikace nepřečtená. Vrací false, pokud nebyla položka nalezena.\r\n * @param state\r\n * @param notificationItemId Identifikátor notifikační položky.\r\n */\r\nexport const isNotificationItemUnread: Selector<IAppState, boolean, NotificationItemId> = (state, notificationItemId) => {\r\n const notificationItem = getNotificationItem(state, notificationItemId);\r\n if (!notificationItem) {\r\n return false;\r\n }\r\n\r\n return notificationItem.unread;\r\n};\r\n\r\n/**\r\n * Zjistí, zda je notifikační skupina prázdná.\r\n * @param state\r\n */\r\nexport const isNotificationGroupEmpty: Selector<IAppState, boolean> = (state) => {\r\n const notificationItemsAvailable = areNotificationItemsAvailable(state);\r\n const hasNextPage = !allNotificationItemsLoaded(state);\r\n\r\n return !hasNextPage && !notificationItemsAvailable;\r\n};\r\n\r\n/**\r\n * Zjistí, zda jsou pro formulářovou položku se zadaným id povoleny akce pro otevření nové instance.\r\n * @param state\r\n * @param formItemId Id formulářové položky menu.\r\n */\r\nexport const areFormItemWindowActionsEnabled: Selector<IAppState, boolean, number> = (state, formItemId) => !getItemsModel(state).restrictions.formItemHideWindowActions[formItemId];\r\n\r\n/**\r\n * Zjistí, zda jsou pro profilovou položku se zadaným id povoleny akce pro otevření nové instance.\r\n * @param state\r\n * @param profileId Id profilové položky menu.\r\n */\r\nexport const areProfileWindowActionsEnabled: Selector<IAppState, boolean, number> = (state, profileId) => !getItemsModel(state).restrictions.profileHideWindowActions[profileId];\r\n\r\n/**\r\n * Zjistí, zda je pro danou instanci povolena akce zavření.\r\n * @param state\r\n * @param formInstanceId Id otevřené instance formuláře.\r\n */\r\nexport const isFormItemInstanceCloseActionEnabled: Selector<IAppState, boolean, string> = (state, formInstanceId) => !getItemsModel(state).restrictions.formItemInstanceHideCloseAction[formInstanceId];\r\n\r\n/**\r\n * Zjistí, zda je zadaná položka menu aktivní.\r\n * @param state\r\n * @param formItemId Id formulářové položky menu.\r\n */\r\nexport const isMenuItemActive: Selector<IAppState, boolean, number> = (state, formItemId) => getActiveSubmenuIds(state).includes(formItemId);\r\n\r\n/**\r\n * Získá pole id submenu prvků od aktivního prvku, přes jeho rodiče, až po potomka kořenového prvku. Pole je seřazené tak, že začíná\r\n * potomkem kořenového prvku a končí aktivním prvkem. Pokud není žádný prvek aktivní, vrací prázdné pole. Jsou použity pouze id\r\n * existujících položek.\r\n */\r\nexport const getActiveSubmenuIds = createSelector<\r\n IAppState,\r\n ReturnType<typeof getActiveSubmenuId>,\r\n ReturnType<typeof getAllowedRootFormItemIds>,\r\n ReturnType<typeof getFormItems>,\r\n readonly number[]\r\n>(\r\n getActiveSubmenuId,\r\n getAllowedRootFormItemIds,\r\n getFormItems,\r\n (activeSubmenuId, allowedRootFormItemIds, formItems) => {\r\n let currentSubmenuId = activeSubmenuId;\r\n if (currentSubmenuId) {\r\n const activeSubmenuIds = [];\r\n do {\r\n if (!currentSubmenuId) {\r\n break;\r\n }\r\n const submenuItem: IMenuItemData | undefined = formItems[currentSubmenuId];\r\n if (!submenuItem) {\r\n break;\r\n }\r\n activeSubmenuIds.push(currentSubmenuId);\r\n currentSubmenuId = submenuItem.parent;\r\n } while (!allowedRootFormItemIds.includes(currentSubmenuId));\r\n return activeSubmenuIds.reverse();\r\n } else {\r\n return EMPTY_ARRAY;\r\n }\r\n },\r\n);\r\n\r\n/**\r\n * Zjistí, zda je viditelná překryvná vrsta formulářové oblasti.\r\n */\r\nexport const isFormOverlayVisible: Selector<IAppState, boolean> = (state) => getModel(state).formOverlayVisible;\r\n\r\n/**\r\n * Získá aktuální stav vizuálního automatu reprezentovaný řetězcovou hodnotou.\r\n */\r\nexport const getVisualAutomatState: Selector<IAppState, VisualAutomatState | undefined> = (state) => {\r\n const formOverlayVisible = isFormOverlayVisible(state);\r\n const menuVisibility = getMenuVisibility(state);\r\n const submenuListExpanded = isSubmenuListExpanded(state);\r\n\r\n if (!formOverlayVisible && menuVisibility === MenuVisibility.hidden && !submenuListExpanded) {\r\n return \"000\";\r\n }\r\n if (!formOverlayVisible && menuVisibility === MenuVisibility.expanded && !submenuListExpanded) {\r\n return \"020\";\r\n }\r\n if (formOverlayVisible && menuVisibility === MenuVisibility.expanded && submenuListExpanded) {\r\n return \"121\";\r\n }\r\n if (formOverlayVisible && menuVisibility === MenuVisibility.floated && !submenuListExpanded) {\r\n return \"110\";\r\n }\r\n if (formOverlayVisible && menuVisibility === MenuVisibility.floated && submenuListExpanded) {\r\n return \"111\";\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Získá příznak, zda je aktviní float přechod menu\r\n */\r\nexport const isMenuFloatTransitionActive: Selector<IAppState, boolean> = (state) => getModel(state).menuFloatTransitionActive;\r\n","import {\r\n REMOVE_GROUP_MAP_ITEM,\r\n REMOVE_LABEL_INFO,\r\n REMOVE_NUMBERING_GROUP,\r\n REMOVE_OPENED_ITEM_NUMBER,\r\n SET_GROUP_MAP_ITEM,\r\n SET_LABEL_INFO,\r\n SET_NUMBERING_GROUP,\r\n SET_OPENED_ITEM_NUMBER,\r\n} from \"./constants\";\r\nimport {\r\n IRemoveGroupMapItemAction,\r\n IRemoveLabelInfoAction,\r\n IRemoveNumberingGroupAction,\r\n IRemoveOpenedItemNumberAction,\r\n ISetGroupMapItemAction,\r\n ISetLabelInfoAction,\r\n ISetNumberingGroupAction,\r\n ISetOpenedItemNumberAction,\r\n NumberingGroupInfo,\r\n} from \"./types\";\r\n\r\n/**\r\n * Nastaví údaje o popisku pro otevřenou položku.\r\n * @param formInstanceId Id otevřené položky, pro kterou se popisek nastaví.\r\n * @param labelValue Hodnota popisku.\r\n * @param isLocKey Indikátor, zda je hodnota popisku lokalizační klíč.\r\n */\r\nexport const createSetLabelInfoAction = (formInstanceId: string, labelValue: string | undefined, isLocKey: boolean): ISetLabelInfoAction => ({\r\n type: SET_LABEL_INFO,\r\n payload: {\r\n formInstanceId,\r\n labelValue,\r\n isLocKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní údaje o popisku pro zadanou otevřenou položku.\r\n * @param formInstanceId\r\n */\r\nexport const createRemoveLabelInfoAction = (formInstanceId: string): IRemoveLabelInfoAction => ({\r\n type: REMOVE_LABEL_INFO,\r\n payload: {\r\n formInstanceId,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví záznam pro mapování formInstanceId => groupKey.\r\n * @param formInstanceId Id otevřené položky.\r\n * @param groupKey Klíč skupiny pro číslování otevřených položek.\r\n */\r\nexport const createSetGroupMapItemAction = (formInstanceId: string, groupKey: string): ISetGroupMapItemAction => ({\r\n type: SET_GROUP_MAP_ITEM,\r\n payload: {\r\n formInstanceId,\r\n groupKey,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní záznam z mapování formInstanceId => groupKey.\r\n * @param formInstanceId Id otevřené položky, pro kterou se odstraní záznam.\r\n */\r\nexport const createRemoveGroupMapItemAction = (formInstanceId: string): IRemoveGroupMapItemAction => ({\r\n type: REMOVE_GROUP_MAP_ITEM,\r\n payload: {\r\n formInstanceId,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví pořadové číslo pro zadanou otevřenou položku.\r\n * @param formInstanceId Id otevřené položky.\r\n * @param number Pořadové číslo.\r\n */\r\nexport const createSetOpenedItemNumberAction = (formInstanceId: string, number: number): ISetOpenedItemNumberAction => ({\r\n type: SET_OPENED_ITEM_NUMBER,\r\n payload: {\r\n formInstanceId,\r\n number,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní záznam s pořadovým číslem pro zadanou otevřenou položku.\r\n * @param formInstanceId Id otevřené položky.\r\n */\r\nexport const createRemoveOpenedItemNumberAction = (formInstanceId: string): IRemoveOpenedItemNumberAction => ({\r\n type: REMOVE_OPENED_ITEM_NUMBER,\r\n payload: {\r\n formInstanceId,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví údaje pro skupinu číslování otevřených položek.\r\n * @param groupKey Klíč skupiny.\r\n * @param groupData Údaje o skupině.\r\n */\r\nexport const createSetNumberingGroupAction = (groupKey: string, groupData: NumberingGroupInfo): ISetNumberingGroupAction => ({\r\n type: SET_NUMBERING_GROUP,\r\n payload: {\r\n groupKey,\r\n groupData,\r\n },\r\n});\r\n\r\n/**\r\n * Odstraní skupinu číslování.\r\n * @param groupKey Klíč skupiny k odstranění.\r\n */\r\nexport const createRemoveNumberingGroupAction = (groupKey: string): IRemoveNumberingGroupAction => ({\r\n type: REMOVE_NUMBERING_GROUP,\r\n payload: {\r\n groupKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { getPrimaryText, hasLocalization } from \"@multiweb/reactCore/i18n\";\r\nimport { IOpenedFormInfo } from \"@multiweb/types/multiweb\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { logger } from \"../logger\";\r\nimport { LabelInfo, NumberingGroupInfo } from \"./types\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom pro otevřené položky.\r\n */\r\nconst getModel = (state: IAppState) => state.menu.openedItems;\r\n\r\n/**\r\n * Získá z globálního stavu podstrom pro číslování otevřených položek.\r\n */\r\nconst getNumberingModel = (state: IAppState) => getModel(state).numbering;\r\n\r\n/**\r\n * Získá seznam id aktuálně otevřených položek formulářů a profilů v menu.\r\n * @param state\r\n */\r\nexport const getOpenedFormsIds: Selector<IAppState, readonly string[]> = (state) => getModel(state).openedFormsIds;\r\n\r\n/**\r\n * Získá údaje o otevřené položce formuláře nebo profilu v menu podle zadaného identifikátoru jeho instance.\r\n * @param state\r\n * @param formInstanceId Identifikátor instance\r\n */\r\nexport const getOpenedFormInfo: Selector<IAppState, IOpenedFormInfo | undefined, string> = (state, formInstanceId) => getModel(state).openedFormsInfo[formInstanceId];\r\n\r\n/**\r\n * Získá kód formuláře patřící k otevřené položce se zadaným id.\r\n * @param state\r\n * @param formInstanceId\r\n */\r\nexport const getOpenedFormFormCode: Selector<IAppState, string | undefined, string> = (state, formInstanceId) => getOpenedFormInfo(state, formInstanceId)?.formCode;\r\n\r\n/**\r\n * Získá údaje o všech aktuálně otevřených položkách.\r\n * @param state\r\n */\r\nexport const getOpenedFormsInfo: Selector<IAppState, readonly IOpenedFormInfo[]> = (state) => Object.values(getModel(state).openedFormsInfo);\r\n\r\n/**\r\n * Získá aktuálně otevřené položky v opačném pořadí otevření (poslední otevřená položka je první). Není použit reselect, protože otevřených položek bývá jen malé množství.\r\n */\r\nexport const getOrderedOpenedFormsInfo: Selector<IAppState, readonly IOpenedFormInfo[]> = (state) => getOpenedFormsIds(state)\r\n .map((openedFormId) => getOpenedFormInfo(state, openedFormId))\r\n .filter((openedFormInfo): openedFormInfo is IOpenedFormInfo => !!openedFormInfo);\r\n\r\n/**\r\n * Získá hodnotu identifikátoru instance právě aktivního formuláře. Ignoruje aktivní formuláře bez otevřené položky v menu (formuláře otevřené s showInMenu=false).\r\n * @param state\r\n */\r\nexport const getOpenedFormInstanceId: Selector<IAppState, string | null> = (state) => getModel(state).openedFormInstanceId;\r\n\r\n/**\r\n * Zjistí, zdali má být zadaná položka reprezentující otevřený formulář aktivní. Ignoruje aktivní formuláře bez otevřené položky v menu (formuláře otevřené s showInMenu=false).\r\n * @param state\r\n * @param formInstanceId Identifikátor instance formuláře\r\n */\r\nexport const isOpenedItemActive: Selector<IAppState, boolean, string> = (state, formInstanceId) => (\r\n getOpenedFormInstanceId(state) === formInstanceId\r\n);\r\n\r\n/**\r\n * Získá custom title pro zadanou otevřenou položku, pokud existuje.\r\n * @param state\r\n * @param formInstanceId Identifikátor instance formuláře.\r\n */\r\nexport const getCustomTitle: Selector<IAppState, string | undefined, string> = (state, formInstanceId) => getModel(state).customTitles[formInstanceId];\r\n\r\n/**\r\n * Získá popisek pro otevřenou položku, včetně případného pořadového čísla. Pokud popisek nelze získat, vrací undefined.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const getFormInstanceLabel: Selector<IAppState, string | undefined, string> = (state, formInstanceId) => {\r\n const baseLabel = getFormInstanceBaseLabel(state, formInstanceId);\r\n if (!baseLabel) {\r\n return undefined;\r\n }\r\n const instanceNumberIsVisible = isInstanceNumberVisible(state, formInstanceId);\r\n const instanceNumber = getInstanceNumber(state, formInstanceId);\r\n return instanceNumberIsVisible && instanceNumber !== undefined ? `(${instanceNumber}) ${baseLabel}` : baseLabel;\r\n};\r\n\r\n/**\r\n * Zjistí, zda se má zobrazovat pořadové číslo pro zadanou otevřenou položku.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const isInstanceNumberVisible: Selector<IAppState, boolean | undefined, string> = (state, formInstanceId) => {\r\n const groupKey = getGroupKey(state, formInstanceId);\r\n if (!groupKey) {\r\n logger.warn(\"Group key was not found for instance id %s. Cannot determine visibility of instance number.\", formInstanceId);\r\n return undefined;\r\n }\r\n const group = getGroup(state, groupKey);\r\n if (!group) {\r\n logger.warn(\"Group with key %s was not found. Cannot determine visibility of instance number for instance id.\", groupKey, formInstanceId);\r\n return undefined;\r\n }\r\n return group.hadMoreMembers;\r\n};\r\n\r\n/**\r\n * Získá pořadové číslo otevřené položky. Vypíše varování pokud hodnotu nelze získat.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const getInstanceNumber: Selector<IAppState, number | undefined, string> = (state, formInstanceId) => {\r\n const instanceNumber = getNumberingModel(state).numbers[formInstanceId];\r\n if (instanceNumber === undefined) {\r\n logger.warn(\"Cannot get numbering for opened item with id %s.\", formInstanceId);\r\n }\r\n return instanceNumber;\r\n};\r\n\r\n/**\r\n * Získá základní část popisku pro otevřenou položku (název bez pořadového čísla). Pokud nelze popisek získat, vrací undefined a vypisuje varování s příčinou.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const getFormInstanceBaseLabel: Selector<IAppState, string | undefined, string> = (state, formInstanceId) => {\r\n const labelInfo = getFormInstanceLabelInfo(state, formInstanceId);\r\n if (!labelInfo) {\r\n logger.warn(\"Label info was not found for instance id %s. Cannot create label for opened item.\", formInstanceId);\r\n return undefined;\r\n }\r\n const { labelValue, isLocKey } = labelInfo;\r\n if (!labelValue) {\r\n logger.warn(\"Grouping info does not contain label value for instance id %s. Cannot create label for opened item.\", formInstanceId);\r\n return undefined;\r\n }\r\n if (isLocKey) {\r\n const locKeyIsLoaded = hasLocalization(state, labelValue);\r\n if (locKeyIsLoaded) {\r\n return getPrimaryText(state, labelValue);\r\n } else {\r\n logger.warn(\"Localization for localization key %s is not loaded. Cannot create label for opened item %s.\", labelValue, formInstanceId);\r\n return undefined;\r\n }\r\n } else {\r\n return labelValue;\r\n }\r\n};\r\n\r\n/**\r\n * Získá informace o popisku pro zadanou otevřenou položku.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const getFormInstanceLabelInfo: Selector<IAppState, LabelInfo | undefined, string> = (state, formInstanceId) => getModel(state).labelValues[formInstanceId];\r\n\r\n/**\r\n * Získá klíč skupiny odpovídající zadané otevřené položce.\r\n * @param state\r\n * @param formInstanceId Id instance otevřené položky.\r\n */\r\nexport const getGroupKey: Selector<IAppState, string | undefined, string> = (state, formInstanceId) => getNumberingModel(state).groupMap[formInstanceId];\r\n\r\n/**\r\n * Získá skupinu číslování podle klíče.\r\n * @param state\r\n * @param groupKey Klíč skupiny.\r\n */\r\nexport const getGroup: Selector<IAppState, NumberingGroupInfo | undefined, string> = (state, groupKey: string) => getNumberingModel(state).groups[groupKey];\r\n\r\n/**\r\n * Získá počet otevřených položek patřících do zadané skupiny. Selector není cachovaný, protože slouží pouze pro účely změn v ságách.\r\n * @param state\r\n * @param groupKey Klíč skupiny, pro kterou se počítají položky.\r\n */\r\nexport const getNumberOfItemsInGroup: Selector<IAppState, number, string> = (state, groupKey) => Object.values(getNumberingModel(state).groupMap)\r\n .filter((filteredGroup) => filteredGroup === groupKey)\r\n .length;\r\n\r\n/**\r\n * Získá nejvyšší číslo otevřené položky v rámci zadané skupiny. Selector není cachovaný, protože slouží pouze pro účely změn v ságách.\r\n * @param state\r\n * @param groupKey Klíč skupiny.\r\n */\r\nexport const getMaxInstanceNumberForGroup: Selector<IAppState, number, string> = (state, groupKey) => Object.entries(getNumberingModel(state).groupMap)\r\n .filter(([_formInstanceId, filteredGroup]) => filteredGroup === groupKey)\r\n .map(([formInstanceId, _filteredGroup]) => getInstanceNumber(state, formInstanceId))\r\n .reduce((actualMaximum: number, instanceNumber) => {\r\n return instanceNumber && instanceNumber > actualMaximum ? instanceNumber : actualMaximum;\r\n }, 0);\r\n","import { call, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport {\r\n FORM_CLOSED,\r\n FORM_CUSTOM_TITLE_CHANGED,\r\n FORM_PROFILE_CHANGED,\r\n IFormClosedAction,\r\n IFormCustomTitleChangedAction,\r\n IFormOpenedAction,\r\n IFormProfileChangedAction,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport { ProfileChangeType } from \"@multiweb/uiShared/ProfileChangeType\";\r\nimport { logger } from \"../logger\";\r\nimport { getFormItem, getFormProfile } from \"../selectors\";\r\nimport { formOpenedAndShowInMenuActionPattern } from \"../utils\";\r\nimport {\r\n createRemoveGroupMapItemAction,\r\n createRemoveLabelInfoAction,\r\n createRemoveNumberingGroupAction,\r\n createRemoveOpenedItemNumberAction,\r\n createSetGroupMapItemAction,\r\n createSetLabelInfoAction,\r\n createSetNumberingGroupAction,\r\n createSetOpenedItemNumberAction,\r\n} from \"./actions\";\r\nimport { NO_MENU_ITEM_LABEL } from \"./constants\";\r\nimport {\r\n getCustomTitle,\r\n getFormInstanceLabelInfo,\r\n getGroup,\r\n getGroupKey,\r\n getMaxInstanceNumberForGroup,\r\n getNumberOfItemsInGroup,\r\n getOpenedFormInfo,\r\n getOpenedFormsInfo,\r\n} from \"./selectors\";\r\nimport { LabelInfo, NumberingGroupInfo } from \"./types\";\r\n\r\nexport const saga: SagaWithReturnType = function* openedItemsSaga() {\r\n yield takeEvery(formOpenedAndShowInMenuActionPattern, formOpenedSaga);\r\n yield takeEvery(FORM_CLOSED, formClosedSaga);\r\n yield takeEvery(FORM_CUSTOM_TITLE_CHANGED, customTitleChangedSaga);\r\n yield takeEvery(FORM_PROFILE_CHANGED, formProfileChangedSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje událost otevření formuláře, jehož otevřená položka má být viditelná v menu (má nastaveno showInMenu=true). Pro nově otevřený formulář vytvoří informace o popisku a číslování.\r\n * @param action\r\n */\r\nexport const formOpenedSaga: SagaWithReturnType<[IFormOpenedAction]> = function* formOpenedSaga(action) {\r\n const { formInstanceId } = action.payload.openedFormInfo;\r\n yield call(createAndSetLabelInfoSaga, formInstanceId);\r\n yield call(addOpenedItemToNumberingGroupSaga, formInstanceId);\r\n};\r\n\r\n/**\r\n * Obsluhuje událost zavření formuláře. Vyčistí informace o popisku a číslování pro zavřený formulář.\r\n * @param action\r\n */\r\nexport const formClosedSaga: SagaWithReturnType<[IFormClosedAction]> = function* formClosedSaga(action) {\r\n const { formInstanceId } = action.payload.closedFormInfo;\r\n yield put(createRemoveLabelInfoAction(formInstanceId));\r\n yield call(removeOpenedItemFromNumberingGroupSaga, formInstanceId);\r\n};\r\n\r\n/**\r\n * Obsluhuje událost změny custom title. Aktualizuje popisek a číslování pro odpovídající otevřenou položku.\r\n * @param action\r\n */\r\nexport const customTitleChangedSaga: SagaWithReturnType<[IFormCustomTitleChangedAction]> = function* customTitleChangedSaga(action) {\r\n const { formInstanceId } = action.payload;\r\n yield call(createAndSetLabelInfoSaga, formInstanceId);\r\n yield call(changeNumberingGroupOfOpenedItemSaga, formInstanceId);\r\n};\r\n\r\n/**\r\n * Obsluhuje událost změny profilu. Aktualizuje popisek a číslování pro všechny otevřené položky upraveného profilu.\r\n * Při odebrání profilu zůstává jeho otevřená položka v původním stavu.\r\n * @param action\r\n */\r\nexport const formProfileChangedSaga: SagaWithReturnType<[IFormProfileChangedAction]> = function* (action) {\r\n const { type, profile } = action.payload;\r\n if (type === ProfileChangeType.update) {\r\n const openedFormsInfo: ReturnType<typeof getOpenedFormsInfo> = yield select(getOpenedFormsInfo);\r\n const affectedOpenedProfiles = openedFormsInfo\r\n .filter(({ profileId }) => profileId === profile.id)\r\n .reverse(); // Musí být otočené, protože pořadí vykreslování je opačné než pořadí otevření. Takto se zachovají čísla při změně skupiny.\r\n for (const { formInstanceId } of affectedOpenedProfiles) {\r\n yield call(createAndSetLabelInfoSaga, formInstanceId);\r\n yield call(changeNumberingGroupOfOpenedItemSaga, formInstanceId);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří klíč skupiny pro číslování pro zadanou otevřenou položku. Prerekvizitou je, že otevřená položka již má ve stavu informace o svém popisku.\r\n * V případě, že nelze získat potřebná data pro vytvoření klíče vrací undefined a vypisuje chybovou hlášku.\r\n * @param formInstanceId\r\n */\r\nexport const createGroupKeySaga: SagaWithReturnType<[string], string | undefined> = function* createGroupKeySaga(formInstanceId) {\r\n const openedFormInfo: ReturnType<typeof getOpenedFormInfo> = yield select(getOpenedFormInfo, formInstanceId);\r\n if (!openedFormInfo) {\r\n yield call(logger.error, \"Cannot get opened form info for opened item with id %s. Opened item numbering may be in inconsistent state.\", formInstanceId);\r\n return undefined;\r\n }\r\n const { formCode } = openedFormInfo;\r\n const labelInfo: ReturnType<typeof getFormInstanceLabelInfo> = yield select(getFormInstanceLabelInfo, formInstanceId);\r\n if (!labelInfo) {\r\n yield call(logger.error, \"Cannot get label info for opened item with id %s. Opened item numbering may be in inconsistent state.\", formInstanceId);\r\n return undefined;\r\n }\r\n return `${formCode}-${labelInfo.labelValue}`;\r\n};\r\n\r\n/**\r\n * Přesune zadanou otevřenou položku do jiné skupiny číslování. Prerekvizitou je, že otevřená položka má nastavené ve stavu aktuální informace o popisku.\r\n * @param formInstanceId\r\n */\r\nexport const changeNumberingGroupOfOpenedItemSaga: SagaWithReturnType<[string]> = function* changeNumberingGroupOfOpenedItemSaga(formInstanceId) {\r\n yield call(removeOpenedItemFromNumberingGroupSaga, formInstanceId);\r\n yield call(addOpenedItemToNumberingGroupSaga, formInstanceId);\r\n};\r\n\r\n/**\r\n * Přidá zadanou otevřenou položku do skupiny číslování. Prerekvizitou je, že otevřená položka má nastavené ve stavu aktuální informace o popisku.\r\n * @param formInstanceId\r\n */\r\nexport const addOpenedItemToNumberingGroupSaga: SagaWithReturnType<[string]> = function* addOpenedItemToGroupSaga(formInstanceId) {\r\n const groupKey: SagaYieldReturn<typeof createGroupKeySaga> = yield call(createGroupKeySaga, formInstanceId);\r\n if (!groupKey) {\r\n return;\r\n }\r\n const group: NumberingGroupInfo | undefined = yield select(getGroup, groupKey);\r\n if (group) {\r\n const { counter } = group;\r\n const newNumber = counter + 1;\r\n yield put(createSetNumberingGroupAction(groupKey, { counter: newNumber, hadMoreMembers: true }));\r\n yield put(createSetOpenedItemNumberAction(formInstanceId, newNumber));\r\n } else {\r\n const initialNumber = 1;\r\n yield put(createSetNumberingGroupAction(groupKey, { counter: initialNumber, hadMoreMembers: false }));\r\n yield put(createSetOpenedItemNumberAction(formInstanceId, initialNumber));\r\n }\r\n yield put(createSetGroupMapItemAction(formInstanceId, groupKey));\r\n};\r\n\r\n/**\r\n * Odebere zadanou otevřenou položku ze skupiny číslování. Prerekvizitou je, že otevřená položka má nastavené ve stavu aktuální informace o popisku.\r\n * @param formInstanceId\r\n */\r\nexport const removeOpenedItemFromNumberingGroupSaga: SagaWithReturnType<[string]> = function* removeOpenedItemFromNumberingGroupSaga(formInstanceId) {\r\n const groupKey: ReturnType<typeof getGroupKey> = yield select(getGroupKey, formInstanceId);\r\n if (!groupKey) {\r\n yield call(logger.error, \"Cannot get numbering group key for opened item %s. Opened item numbering may be in inconsistent state.\", formInstanceId);\r\n return;\r\n }\r\n yield put(createRemoveOpenedItemNumberAction(formInstanceId));\r\n yield put(createRemoveGroupMapItemAction(formInstanceId));\r\n\r\n const numberOfItemsInGroup: ReturnType<typeof getNumberOfItemsInGroup> = yield select(getNumberOfItemsInGroup, groupKey);\r\n if (numberOfItemsInGroup > 0) { // skupina má jiné položky, aktualizace skupiny\r\n const maxInstanceNumber: ReturnType<typeof getMaxInstanceNumberForGroup> = yield select(getMaxInstanceNumberForGroup, groupKey);\r\n yield put(createSetNumberingGroupAction(groupKey, { counter: maxInstanceNumber, hadMoreMembers: true }));\r\n } else { // skupina již nemá žádnou položku, zrušení celé skupiny\r\n yield put(createRemoveNumberingGroupAction(groupKey));\r\n }\r\n};\r\n\r\n/**\r\n * Zajistí vytvoření informací o popisku a jejich vložení do stavu.\r\n * @param formInstanceId Id otevřené položky, pro které se vytváří popisek.\r\n */\r\nexport const createAndSetLabelInfoSaga: SagaWithReturnType<[string]> = function* createAndSetLabelInfoSaga(formInstanceId) {\r\n const labelInfo: SagaYieldReturn<typeof getLabelValueSaga> = yield call(getLabelValueSaga, formInstanceId);\r\n if (labelInfo) {\r\n const { labelValue, isLocKey } = labelInfo;\r\n yield put(createSetLabelInfoAction(formInstanceId, labelValue, isLocKey));\r\n }\r\n};\r\n\r\n/**\r\n * Získá informace o popisku pro otevřenou položku. Definuje priority zdrojů pro získání popisku.\r\n * @param formInstanceId\r\n */\r\nexport const getLabelValueSaga: SagaWithReturnType<[string], LabelInfo | undefined> = function* getLabelForInstanceSaga(formInstanceId) {\r\n const openedFormInfo: ReturnType<typeof getOpenedFormInfo> = yield select(getOpenedFormInfo, formInstanceId);\r\n if (!openedFormInfo) {\r\n yield call(logger.error, \"Opened form info was not found for instance id %s. Cannot create LabelValue for opened item.\", formInstanceId);\r\n return undefined;\r\n }\r\n const { profileId, menuItemId, titleLocKey } = openedFormInfo;\r\n\r\n let isLocKey;\r\n let labelValue;\r\n\r\n const customTitle: ReturnType<typeof getCustomTitle> = yield select(getCustomTitle, formInstanceId);\r\n if (customTitle) {\r\n labelValue = customTitle;\r\n isLocKey = false;\r\n } else if (profileId) {\r\n const profile: ReturnType<typeof getFormProfile> = yield select(getFormProfile, profileId);\r\n labelValue = profile?.title;\r\n isLocKey = false;\r\n } else if (menuItemId) {\r\n const formItem: ReturnType<typeof getFormItem> = yield select(getFormItem, menuItemId);\r\n labelValue = formItem?.locKey;\r\n isLocKey = true;\r\n } else if (titleLocKey) {\r\n labelValue = titleLocKey;\r\n isLocKey = true;\r\n } else {\r\n labelValue = NO_MENU_ITEM_LABEL;\r\n isLocKey = false;\r\n }\r\n\r\n return { labelValue, isLocKey };\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IMenuOpenedItemsState } from \"./types\";\r\n\r\nexport { REMOVE_LABEL_INFO, SET_LABEL_INFO } from \"./constants\";\r\nexport {\r\n getFormInstanceBaseLabel,\r\n getFormInstanceLabel,\r\n getOpenedFormFormCode,\r\n getOpenedFormInfo,\r\n getOpenedFormInstanceId,\r\n getOpenedFormsIds,\r\n getOpenedFormsInfo,\r\n getOrderedOpenedFormsInfo,\r\n isOpenedItemActive,\r\n} from \"./selectors\";\r\nexport { OpenedFormItemInfo, OpenedProfileInfo } from \"./types\";\r\n\r\nexport const openedItemsModule: ApplicationStatefulModule<typeof NAME, Reducer<IMenuOpenedItemsState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { SEARCHED_TEXT_CHANGED, SET_SEARCH_RESULTS } from \"./constants\";\r\nimport { ISearchedTextChangedAction, ISetSearchResultsAction, SearchResult } from \"./types\";\r\n\r\n/**\r\n * Akce reprezentující změnu vyhledávaného textu.\r\n * @param searchedText Nová hodnota vyhledávaného textu.\r\n */\r\nexport const createSearchedTextChangedAction = (searchedText: string): ISearchedTextChangedAction => ({\r\n type: SEARCHED_TEXT_CHANGED,\r\n payload: {\r\n searchedText,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení výsledků vyhledávání do stavu, ze kterého se zobrazují.\r\n * @param searchResults Výsledky vyhledávání seřazené podle abecedy.\r\n */\r\nexport const createSetSearchResultsAction = (searchResults: ReadonlyArray<SearchResult>): ISetSearchResultsAction => ({\r\n type: SET_SEARCH_RESULTS,\r\n payload: {\r\n searchResults,\r\n },\r\n});\r\n","export const NAME = \"favoriteItems\";\r\n","import { combineReducers, Reducer } from \"redux\";\r\n\r\nimport { IFavoriteFormsLoadedAction, IFavoriteFormUpdatedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { FavoriteMenuItems, IFavoriteItemsState } from \"./types\";\r\n\r\nexport const favoriteForms: Reducer<FavoriteMenuItems> = (state: FavoriteMenuItems = [], action) => {\r\n if (action instanceof IFavoriteFormsLoadedAction) {\r\n // v akci mohou přijít duplicitní kódy, je nutné se jich tu explicitně zbavit\r\n return action.payload.favoriteForms.map(f => ({\r\n formId: f.menuId,\r\n profileId:f.profileId,\r\n }));\r\n } else if (action instanceof IFavoriteFormUpdatedAction) {\r\n const { menuId, isFavorite, profile } = action.payload;\r\n if (isFavorite) {\r\n return state.some(favoriteItem => favoriteItem.formId === menuId && favoriteItem.profileId == profile?.id) ? state : [...state, { formId: menuId, profileId: profile?.id }];\r\n } else {\r\n return state.some(favoriteItem => favoriteItem.formId === menuId && favoriteItem.profileId == profile?.id) ? state.filter(favoriteItem => favoriteItem.formId !== menuId || favoriteItem.profileId != profile?.id) : state;\r\n }\r\n }\r\n return state;\r\n};\r\n\r\nexport const reducer: Reducer<IFavoriteItemsState> = combineReducers({\r\n favoriteForms,\r\n});\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { logger } from \"../logger\";\r\nimport { getOpenedFormInfo } from \"../openedItems\";\r\nimport { createGetFormNameMap, getFormItems, getProfiles, getTextCompareFn } from \"../selectors\";\r\nimport { IsFormItemOrInstanceFavoriteSelectorParams, MenuItemActivatedType } from \"../types\";\r\nimport { FavoriteMenuItem, FavoriteMenuItems } from \"./types\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom pro oblíbené položky.\r\n */\r\nconst getModel = (state: IAppState) => state.menu.favoriteItems;\r\n\r\n/**\r\n * Získá id položek menu oblíbených formulářů.\r\n * @param state\r\n */\r\nconst getFavoriteForms: Selector<IAppState, FavoriteMenuItems> = (state) => getModel(state).favoriteForms;\r\n\r\n/**\r\n * Zjistí, zda je formulář se zadaným kódem oblíbený.\r\n * @param state\r\n * @param formCode Kód formuláře.\r\n * @param profileId Id profilu\r\n */\r\nexport const isFormFavorite: Selector<IAppState, boolean, FavoriteMenuItem> = (state, { formId, profileId }) =>\r\n getModel(state).favoriteForms.some(favoriteItem => favoriteItem.formId === formId && favoriteItem.profileId == profileId);\r\n\r\n/**\r\n * Zjistí, zda položka nebo instance formuláře patří mezi oblíbené.\r\n *\r\n * @param state\r\n * @param itemId Id položky nebo instance formuláře.\r\n * @param type Typ položky.\r\n * @param profileId Id profilu\r\n */\r\nexport const isFormItemOrInstanceFavorite: Selector<IAppState, boolean, IsFormItemOrInstanceFavoriteSelectorParams> = (state, { formId, type, profileId }) => {\r\n if (type === MenuItemActivatedType.formFavoriteActionItem) {\r\n const formIdNumber = formId as number;\r\n return isFormFavorite(state, { formId: formIdNumber, profileId });\r\n }\r\n if (type === MenuItemActivatedType.openedInstanceFavoriteActionItem) {\r\n const openedForm = getOpenedFormInfo(state, formId as string);\r\n if (openedForm?.menuItemId) {\r\n return isFormFavorite(state, { formId: openedForm.menuItemId, profileId: openedForm.profileId });\r\n } else {\r\n logger.warn(\"Cannot determine if opened form instance is favorite. Opened form instance with id %s was not found.\", formId);\r\n return false;\r\n }\r\n }\r\n logger.warn(\"Cannot check if the form is favorite because the item activated type %s is invalid\", type);\r\n return false;\r\n};\r\n\r\n/**\r\n * Získá ids všech položek menu, jejichž formulář je oblíbený. Selector je cachovaný.\r\n */\r\nexport const getFavoriteMenuItemIds = createSelector(\r\n getFavoriteForms,\r\n getFormItems,\r\n (favoriteForms, formItems) => favoriteForms.filter((favoriteFormId) => !!formItems[favoriteFormId.formId]),\r\n);\r\n\r\n/**\r\n * Pomocný selector pro vytvoření mapování mezi id oblíbených položek menu a jejich lokalizovanými názvy.\r\n * Tento selector vrací selector pro získání mapování. Vytváří nový selector pokud se změní oblíbené formuláře.\r\n * @param state\r\n */\r\nconst getFavoriteMenuItemsNameMap = createSelector(\r\n getFavoriteMenuItemIds,\r\n (favoriteMenuItemIds) => createGetFormNameMap(Array.from(favoriteMenuItemIds, favoriteItem => favoriteItem.formId)),\r\n);\r\n\r\n/**\r\n * Získá seznam oblíbených položek menu, které jsou seřazeny podle názvu. Selektor je cachovaný.\r\n * @param state\r\n */\r\nexport const getOrderedFavoriteMenuItems = createSelector(\r\n (state: IAppState) => getFavoriteMenuItemsNameMap(state)(state),\r\n getProfiles,\r\n getFormItems,\r\n getFavoriteForms,\r\n getTextCompareFn,\r\n (localizedFormObject, profiles, forms, favoriteItems, textCompareFn) => {\r\n const favoriteMenuItems = favoriteItems.filter(item => !!forms[item.formId] && ((item.profileId != undefined && !!profiles[item.profileId]) || item.profileId == undefined));\r\n const entries: [FavoriteMenuItem, string][] = favoriteMenuItems.map(favoriteItem => favoriteItem.profileId == undefined ? [favoriteItem, localizedFormObject[favoriteItem.formId]] : [favoriteItem, profiles[favoriteItem.profileId]?.title]);\r\n return entries.sort(([_favoriteItem1, localizedName1]: [any, string], [_favoriteItem2, localizedName2]: [any, string]) => textCompareFn(localizedName1, localizedName2))\r\n // Identifikátory formulářů a profilů jsou použity jako klíče objektu – jako klíč však není možné použít číslo a proto je nutná zpětná konverze.\r\n .map(([favoriteItem, _localizedName]) => favoriteItem);\r\n },\r\n);\r\n\r\n/**\r\n * Zjistí, zda je pro zkoumanou instanci formuláře povolena akce oblíbených.\r\n *\r\n * Prozatím je v rámci 27523 domluveno, že správné identifikování podporovaných typů formulářů je příliš složité a nevyplatí se řešit.\r\n * Proto zůstanou oblíbené akce pro všechny formuláře bez položky v menu zakázané. Proto se tu vrací vždy false. Selector se zatím ponechá pro případné budoucí řešení.\r\n * @param _state\r\n * @param _formInstanceId Id instance otevřeného formuláře.\r\n */\r\nexport const isFormItemInstanceFavoriteActionEnabled: Selector<IAppState, boolean, string> = (_state, _formInstanceId) => false;\r\n","import { call, put, select, take, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { createHideLoadingIndicatorAction, createLoadFavoriteFormsAction, createSetFormAsFavoriteRequestAction, createShowLoadingIndicatorAction, FAVORITE_FORMS_LOADED } from \"@multiweb/reactCore/bridge\";\r\nimport { IFormProfile } from \"@multiweb/types/contracts/menu\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { logger } from \"../logger\";\r\nimport { getOpenedFormInfo } from \"../openedItems\";\r\nimport { getFormItemCode, getFormProfile } from \"../selectors\";\r\nimport { IMenuItemDefaultActionAllowedAction, MenuItemActivatedType } from \"../types\";\r\nimport { createAllowedDefaultActionPattern } from \"../utils\";\r\nimport { isFormFavorite } from \"./selectors\";\r\n\r\nexport const saga: SagaWithReturnType = function* favoriteItemsSaga() {\r\n const { formFavoriteActionItem, openedInstanceFavoriteActionItem } = MenuItemActivatedType;\r\n yield takeEvery(createAllowedDefaultActionPattern(formFavoriteActionItem), formFavoriteActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openedInstanceFavoriteActionItem), openedInstanceFavoriteActionItemActivatedSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje načítání oblíbených formulářů. Zajišťuje zaslání požadavku a zobrazení loading indikátoru.\r\n * Data si zpracuje přímo reducer, proto není třeba tu s nimi nijak manipulovat.\r\n */\r\nexport const loadFavoriteFormsSaga: SagaWithReturnType = function* loadFavoriteFormsSaga() {\r\n yield put(createShowLoadingIndicatorAction());\r\n yield put(createLoadFavoriteFormsAction());\r\n yield take(FAVORITE_FORMS_LOADED);\r\n yield put(createHideLoadingIndicatorAction());\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku nastavení oblíbeného formuláře.\r\n * @param action\r\n */\r\nexport const formFavoriteActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* formFavoriteActionItemActivatedSaga(action) {\r\n const formItemId = action.payload.itemId as number; // položky formulářů mají číselné id, jedná se o formItemId, sága je spuštěná jen pro tento typ položek\r\n const profileId = action.payload.profileId;\r\n const formCode: ReturnType<typeof getFormItemCode> = yield select(getFormItemCode, formItemId);\r\n yield call(toggleFavoriteFormSaga, formItemId, formCode, profileId);\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku nastavení oblíbeného formuláře v otevřených položkách menu.\r\n * @param action\r\n */\r\nexport const openedInstanceFavoriteActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openedInstanceFavoriteActionItemActivatedSaga(action) {\r\n const formInstanceId = action.payload.itemId as string; // otevřené formuláře mají id typu string, jedná se o formInstanceId, sága je spuštěná jen pro tento typ položek\r\n const openedForm: ReturnType<typeof getOpenedFormInfo> = yield select(getOpenedFormInfo, formInstanceId);\r\n if (!openedForm) {\r\n yield call(logger.warn, \"Unable to set form as favorite because form with instance id %s cannot be found\", formInstanceId);\r\n return;\r\n }\r\n yield call(toggleFavoriteFormSaga, openedForm?.menuItemId, openedForm?.formCode, openedForm?.profileId);\r\n};\r\n\r\n/**\r\n * Obsluhuje nastavení oblíbeného formuláře. Změní stav oblíbenosti - pokud byl formulář oblíbený, již nebude a naopak.\r\n * @param menuId ID položky menu.\r\n * @param formCode Kód formuláře.\r\n */\r\nexport const toggleFavoriteFormSaga: SagaWithReturnType<[number | undefined, string | undefined, number | undefined]> = function* setFavoriteFormSaga(formId, formCode, profileId) {\r\n if (!formId || !formCode) {\r\n yield call(logger.warn, \"Unable to toggle favorite form because menu id or form code is undefined\");\r\n return;\r\n }\r\n const isFavorite: ReturnType<typeof isFormFavorite> = yield select(isFormFavorite, { formId, profileId });\r\n const profile = (profileId) ? yield select(getFormProfile, profileId) : undefined;\r\n yield put(createSetFormAsFavoriteRequestAction(formId as number, formCode as string, !isFavorite, profile as IFormProfile | undefined));\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IFavoriteItemsState } from \"./types\";\r\n\r\nexport { loadFavoriteFormsSaga } from \"./saga\";\r\nexport { getFavoriteMenuItemIds, getOrderedFavoriteMenuItems, isFormItemInstanceFavoriteActionEnabled, isFormItemOrInstanceFavorite } from \"./selectors\";\r\n\r\nexport const favoriteItemsModule: ApplicationStatefulModule<typeof NAME, Reducer<IFavoriteItemsState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getOpenedFormsInfo } from \"../openedItems\";\r\nimport { getFormItems, getProfiles } from \"../selectors\";\r\nimport { IMenuItems, OpenedFormHistoryInfoArray } from \"../types\";\r\n\r\nconst getModel: Selector<IAppState, IMenuItems> = (state) => state.menu.items;\r\n\r\n/**\r\n * Získá celou historii otevřených formulářů.\r\n * @param state\r\n */\r\nconst getHistoryFormsInfo: Selector<IAppState, OpenedFormHistoryInfoArray> = (state) => getModel(state).historyFormsInfo;\r\n\r\n/**\r\n * Získá historii otevřených formulářů filtrovanou podle položek a profilů, na které má uživatel oprávnění.\r\n */\r\nconst getAllowedFormsHistoryInfo = createSelector<\r\n IAppState,\r\n ReturnType<typeof getHistoryFormsInfo>,\r\n ReturnType<typeof getFormItems>,\r\n ReturnType<typeof getProfiles>,\r\n OpenedFormHistoryInfoArray\r\n>(\r\n getHistoryFormsInfo,\r\n getFormItems,\r\n getProfiles,\r\n (historyFormsInfo, formItems, profiles) => {\r\n return historyFormsInfo\r\n .filter((historyForm) => {\r\n const formItem = formItems[historyForm.menuItemId];\r\n if (formItem) {\r\n return true;\r\n }\r\n return historyForm.profileId ? !!profiles[historyForm.profileId] : false;\r\n });\r\n },\r\n);\r\n\r\n/**\r\n * Získá seznam id formulářů a profilů otevřených v minulosti. Výsledek je filtrován, aby neobsahoval aktuálně otevřené položky.\r\n * @param state\r\n */\r\nexport const getOpenedFormsHistoryInfo = createSelector<IAppState,\r\n ReturnType<typeof getAllowedFormsHistoryInfo >,\r\n ReturnType<typeof getOpenedFormsInfo>,\r\n OpenedFormHistoryInfoArray\r\n>(\r\n getAllowedFormsHistoryInfo,\r\n getOpenedFormsInfo,\r\n (historyFormsInfo, openedFormsInfo) =>\r\n historyFormsInfo\r\n .filter((historyForm) =>\r\n !openedFormsInfo.find((openedForm) =>\r\n openedForm.menuItemId === historyForm.menuItemId && openedForm.profileId === historyForm.profileId)),\r\n\r\n);\r\n","export { getOpenedFormsHistoryInfo } from \"./selectors\";\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData, MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { Forms } from \"../types\";\r\nimport { SearchData, SearchGroup, SearchResult, SearchResultType, SubtreeIds } from \"./types\";\r\n\r\nconst { removeAccents } = bridge;\r\n\r\ntype StringCompareFn = (firstString: string, secondString: string) => number;\r\n\r\n/**\r\n * Vytvoří funkci pro prioritní řazení výsledků vyhledávání. Přesná shoda s vyhledávaným textem se řadí jako první. Poté následují položky začínající vyhledávaným textem.\r\n * Nakonec zbytek.\r\n *\r\n * @param upperCaseAccentsFreeSearchedText Vyhledávaný text převedený na velká písmena a s odstraněnou diakritikou.\r\n * @param textCompareFn Funkce pro porovnání textu.\r\n */\r\nexport const createCompareSearchResults = (upperCaseAccentsFreeSearchedText: string, textCompareFn: StringCompareFn) => (firstResult: SearchResult, secondResult: SearchResult) => {\r\n const firstText = firstResult.text;\r\n const secondText = secondResult.text;\r\n const firstTextExactMatch = firstText === upperCaseAccentsFreeSearchedText;\r\n const secondTextExactMatch = secondText === upperCaseAccentsFreeSearchedText;\r\n const firstTextStartsWith = firstText.startsWith(upperCaseAccentsFreeSearchedText);\r\n const secondTextStartsWith = secondText.startsWith(upperCaseAccentsFreeSearchedText);\r\n\r\n if (firstTextExactMatch && secondTextExactMatch) {\r\n return 0;\r\n } else if (firstTextExactMatch) {\r\n return -1;\r\n } else if (secondTextExactMatch) {\r\n return 1;\r\n } else if (firstTextStartsWith && secondTextStartsWith) {\r\n return textCompareFn(firstText, secondText);\r\n } else if (firstTextStartsWith) {\r\n return -1;\r\n } else if (secondTextStartsWith) {\r\n return 1;\r\n } else {\r\n return textCompareFn(firstText, secondText);\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří data pro vyhledávání pro položku se zadaným textem a kódem formuláře.\r\n * @param id Id položky.\r\n * @param text Zobrazovaný název položky.\r\n * @param formCode Kód formuláře položky.\r\n * @param sourceType Typ zdroje položky. Využívá se pro mapování vyhledaných položek na SearchResult.\r\n */\r\nexport const createSearchData = (id: string | number, text: string | undefined, formCode: string | undefined, sourceType: SearchResultType): SearchData => ({\r\n id,\r\n text: text ?? \"\",\r\n upperCaseAccentsFreeText: text ? removeAccents(text.toLocaleUpperCase()) : \"\",\r\n upperCaseAccentsFreeFormCode: formCode ? removeAccents(formCode.toLocaleUpperCase()) : \"\",\r\n sourceType,\r\n});\r\n\r\n/**\r\n * Vytvoří funkci pro filtrování dat pro vyhledávání pomocí zadaného textu. Data splňují podmínku filtrování, pokud název nebo kód formuláře obsahuje hledaný text.\r\n * @param upperCaseAccentsFreeSearchedText Vyhledávaný text bez diakritiky převedený na velká písmena.\r\n */\r\nexport const createSearchDataFilter = (upperCaseAccentsFreeSearchedText: string) => (searchData: SearchData | undefined): boolean => {\r\n if (searchData) {\r\n const { upperCaseAccentsFreeText, upperCaseAccentsFreeFormCode } = searchData;\r\n return upperCaseAccentsFreeText.includes(upperCaseAccentsFreeSearchedText) ||\r\n upperCaseAccentsFreeFormCode.includes(upperCaseAccentsFreeSearchedText);\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří mapper pro převod SearchData na SearchResult pro zadanou skupinu vyhledávání.\r\n * @param searchGroup Skupina vyhledávání použitá pro sestavení unikátního klíče při vykreslování výsledků.\r\n */\r\nexport const createSearchDataToResultMapper = (searchGroup: SearchGroup) => ({ id, upperCaseAccentsFreeText, sourceType }: SearchData): SearchResult => ({\r\n id,\r\n text: upperCaseAccentsFreeText,\r\n type: sourceType,\r\n searchGroup,\r\n});\r\n\r\n/**\r\n * Vytvoří výsledek vyhledávání pro nadpis skupiny vyhledávání.\r\n * @param locKey Lokalizační klíč skupiny.\r\n */\r\nexport const createGroupHeaderResult = (locKey: SearchGroup): SearchResult => ({\r\n id: locKey,\r\n text: \"\",\r\n type: SearchResultType.groupHeader,\r\n searchGroup: locKey,\r\n});\r\n\r\n/**\r\n * Vytvoří konečný výsledek vyhledávání pro zadanou skupinu. Pokud skupina neobsahuje žádné výsledky, vrací prázdné pole. V opačném případě výsledky seřadí\r\n * podle zobrazovaného textu a jako první záznam poté přidá nadpis skupiny. Řazení probíhá na zadaném poli, neprovádí se jeho kopie.\r\n * @param groupLocKey Lokalizační klíč skupiny vyhledávání.\r\n * @param searchGroupResult Vyhledané položky ve skupině.\r\n * @param upperCaseAccentsFreeSearchedText Vyhledávaný text. Používá se pro prioritní řazení.\r\n * @param textCompareFn Funkce pro porovnání textu.\r\n */\r\nexport const sortAndFinalizeSearchGroup = (groupLocKey: SearchGroup, searchGroupResult: SearchResult[], upperCaseAccentsFreeSearchedText: string, textCompareFn: StringCompareFn): readonly SearchResult[] => {\r\n if (searchGroupResult.length > 0) {\r\n searchGroupResult.sort(createCompareSearchResults(upperCaseAccentsFreeSearchedText, textCompareFn));\r\n return [\r\n createGroupHeaderResult(groupLocKey),\r\n ...searchGroupResult,\r\n ];\r\n } else {\r\n return EMPTY_ARRAY;\r\n }\r\n};\r\n\r\n/**\r\n * Získá id profilů a formulářů nacházejících se v podstromu formulářů definovaným počátečním id. Nezískává id pro složky formulářů.\r\n * Pokud označuje počáteční id formulář, je také přidáno do výsledku.\r\n * @param subtreeRootId Id počátečního formuláře pro hledání.\r\n * @param formItems Data formulářů.\r\n */\r\nexport const getIdsForSubtree = (subtreeRootId: number, formItems: Forms): SubtreeIds => {\r\n const { type, children, profiles }: IMenuItemData = formItems[subtreeRootId];\r\n if (type === MenuItemType.form) {\r\n return {\r\n formItemIds: [subtreeRootId],\r\n profileIds: profiles ? profiles : EMPTY_ARRAY,\r\n };\r\n } else if (children) {\r\n return children.reduce((result, formItemId) => {\r\n const { formItemIds, profileIds } = getIdsForSubtree(formItemId, formItems);\r\n return {\r\n formItemIds: result.formItemIds.concat(formItemIds),\r\n profileIds: result.profileIds.concat(profileIds),\r\n };\r\n }, { formItemIds: [], profileIds: [] } as SubtreeIds);\r\n } else {\r\n return { formItemIds: EMPTY_ARRAY, profileIds: EMPTY_ARRAY };\r\n }\r\n};\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IMenuItemData, MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { IAppState, MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { getFavoriteMenuItemIds } from \"../favoriteItems\";\r\nimport { getOpenedFormsHistoryInfo } from \"../historyItems\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES, LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS, LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS } from \"../locKeys\";\r\nimport { getFormInstanceBaseLabel, getOpenedFormsIds, getOrderedOpenedFormsInfo } from \"../openedItems\";\r\nimport {\r\n createGetFormNameMap,\r\n getAllowedRootFormItemIds,\r\n getFormItems,\r\n getProfiles,\r\n getTextCompareFn,\r\n} from \"../selectors\";\r\nimport { SearchData, SearchResult, SearchResultType } from \"./types\";\r\nimport {\r\n createGroupHeaderResult,\r\n createSearchData,\r\n createSearchDataFilter,\r\n createSearchDataToResultMapper,\r\n getIdsForSubtree,\r\n sortAndFinalizeSearchGroup,\r\n} from \"./utils\";\r\n\r\nconst { removeAccents } = bridge;\r\n\r\n/**\r\n * Získá z globálního stavu podstrom pro vyhledávání.\r\n */\r\nconst getModel = (state: IAppState) => state.menu.search;\r\n\r\n/**\r\n * Získá text pro vyhledávání formulářů.\r\n * @param state\r\n */\r\nexport const getSearchedText: Selector<IAppState, string> = (state) => getModel(state).searchedText;\r\n\r\n/**\r\n * Získá text pro vyhledávání formulářů zbavený diakritiky a převedený na velká písmena.\r\n */\r\nconst getUpperCaseAccentsFreeSearchedText = createSelector(\r\n getSearchedText,\r\n (searchedText) => removeAccents(searchedText.toLocaleUpperCase()),\r\n);\r\n\r\n/**\r\n * Zjisti, zda je aktivní vyhledávání formulářových položek.\r\n * @param state\r\n */\r\nexport const isSearchActive: Selector<IAppState, boolean> = (state) => !!getSearchedText(state);\r\n\r\n/**\r\n * Získá vyhledané výsledky. Výsledky nemusí odpovídat vyhledávanému textu, protože vyhledávání se spustí až ve chvíli, kdy uživatel přestane zadávat text.\r\n * Vyhledávání jako takové provádí selector getSearchedItems.\r\n */\r\nexport const getSearchResults: Selector<IAppState, readonly SearchResult[]> = (state) => getModel(state).searchResults;\r\n\r\n/**\r\n * Získá všechny listové formuláře - odfiltruje položky formulářových submenu. Selector je cachovaný.\r\n * @param state\r\n */\r\nexport const getLeafForms = createSelector<IAppState, ReturnType<typeof getFormItems>, IMenuItemData[]>(\r\n getFormItems,\r\n (forms) => Object.values(forms).filter((form: IMenuItemData) => form.type === MenuItemType.form),\r\n);\r\n\r\n/**\r\n * Získá mapu lokalizovaných názvů pro listové formuláře. Selector je cachovaný.\r\n * @param state\r\n */\r\nconst getLeafFormsNameMap = createSelector(\r\n getLeafForms,\r\n (leafForms) => createGetFormNameMap(leafForms.map((form) => form.id)),\r\n);\r\n\r\n/**\r\n * Vytvoří datovou strukturu vhodnou pro vyhledávání formulářů. Obsahuje pouze listové formuláře. Submenu formulářů se nevyhledávají. Struktura je indexovaná\r\n * podle id položky, aby bylo možné ji znovupoužít při vyhledávání v různých kategoriích.\r\n * Struktura obsahuje:\r\n * id - Id formuláře.\r\n * text - Lokalizovaný název formuláře - vhodný pro řazení výsledků.\r\n * upperCaseAccentsFreeText - Lokalizovaný název formuláře převedený na velká písmena s odstraněnou diakritikou - vhodný pro case-insensitive vyhledávání.\r\n * upperCaseAccentsFreeFormCode - Kód formuláře převedený na velká písmena s odstraněnou diakritikou - vhodný pro case-insensitive vyhledávání.\r\n *\r\n * Selector je cachovaný. Přepočítává se při změně listových formulářů nebo jejich lokalizací.\r\n *\r\n * @param state\r\n * @return Vrací objekt obsahující objekty s výše popsanou strukturou indexované podle id.\r\n */\r\nconst getFormsForSearch = createSelector(\r\n getLeafForms,\r\n (state) => getLeafFormsNameMap(state)(state),\r\n (leafForms, leafFormsNameMap) => leafForms.reduce((result, { id, formCode }) => {\r\n result[id] = createSearchData(id, leafFormsNameMap[id], formCode, SearchResultType.form);\r\n return result;\r\n }, {} as MutableTypedObject<SearchData>) as TypedObject<SearchData>,\r\n);\r\n\r\n/**\r\n * Vytvoří datovou strukturu vhodnou pro vyhledávání profilů. Struktura je indexovaná podle id profilu. Struktura obsahuje:\r\n * id - Id profilu.\r\n * text - Název profilu - vhodný pro řazení výsledků.\r\n * upperCaseAccentsFreeTitle - Název profilu převedený na velká písmena s odstraněnou diakritikou - vhodný pro case-insensitive vyhledávání.\r\n * upperCaseAccentsFreeFormCode - Kód rodičovského formuláře převedený na velká písmena s odstraněnou diakritikou - vhodný pro case-insensitive vyhledávání.\r\n *\r\n * Selector je cachovaný. Přepočítává se při změně profilů.\r\n *\r\n * @param state\r\n * @return Vrací objekt obsahující objekty s výše popsanou strukturou indexované podle id profilu.\r\n */\r\nconst getProfilesForSearch = createSelector(\r\n getProfiles,\r\n (profiles) => Object.values(profiles).reduce((result, { id, title, formCode }) => ({\r\n ...result,\r\n [id]: createSearchData(id, title, formCode, SearchResultType.profile),\r\n }), {} as TypedObject<SearchData>),\r\n);\r\n\r\n/**\r\n * Cachovaný selector pro získání údajů sloužících k vyhledávání ve skupině otevřených formulářů.\r\n */\r\nexport const getOpenedFormsForSearch = createSelector(\r\n getOrderedOpenedFormsInfo,\r\n (state: IAppState) => getOpenedFormsBaseLabelMapSelector(state)(state),\r\n (openedForms, openedFormsBaseLabelMap) => openedForms.map(\r\n ({ formInstanceId, formCode }) => createSearchData(formInstanceId, openedFormsBaseLabelMap[formInstanceId], formCode, SearchResultType.formInstance),\r\n ),\r\n);\r\n\r\n/**\r\n * Získá selector pro získání objektu mapujícího id instance otevřeného formuláře na základ jeho popisku (číslování není součástí).\r\n * Nový selector se vytváří pouze v případě změny v otevřených formulářích.\r\n */\r\nconst getOpenedFormsBaseLabelMapSelector = createSelector(\r\n getOpenedFormsIds,\r\n (openedFormsInfo) => createGetOpenedFormsBaseLabelMap(openedFormsInfo),\r\n);\r\n\r\n/**\r\n * Vytvoří cachovaný selector pro získání objektu mapujícího id instance otevřeného formuláře na základ jeho popisku (číslování není součástí). Selector se přepočítává\r\n * při změně základu popisku libovolného ze zadaných otevřených formulářů.\r\n * @param openedFormsIds Otevřené formuláře, pro které se selector vytváří.\r\n */\r\nconst createGetOpenedFormsBaseLabelMap = (openedFormsIds: readonly string[]) => createSelector(\r\n openedFormsIds.map((formInstanceId) => (state: IAppState) => getFormInstanceBaseLabel(state, formInstanceId)),\r\n (...openedFormBaseLabels) => openedFormBaseLabels.reduce((result, baseLabel, index) => ({\r\n ...result,\r\n [openedFormsIds[index]]: baseLabel,\r\n }), {} as TypedObject<string | undefined>),\r\n);\r\n\r\n/**\r\n * Získá výsledky vyhledávání pro skupinu otevřených formulářů. Otevřené formuláře nepodléhají vyhledávání, viz task 31650.\r\n * Výsledky se však i tak vracejí přes tento selector, aby se zobrazily jednotně ve virtualizovaném listu s ostatními vyhledanými položkami.\r\n */\r\nexport const getSearchedOpenedForms = createSelector(\r\n getOpenedFormsForSearch,\r\n (openedFormsForSearch) => {\r\n const openedFormsSearchResults: SearchResult[] = openedFormsForSearch\r\n .map(createSearchDataToResultMapper(LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS));\r\n\r\n return [\r\n createGroupHeaderResult(LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS),\r\n ...openedFormsSearchResults,\r\n ];\r\n },\r\n);\r\n\r\n/**\r\n * Získá výsledky vyhledávání pro skupinu historicky otevřených formulářů.\r\n */\r\nexport const getSearchedHistoricForms = createSelector(\r\n getUpperCaseAccentsFreeSearchedText,\r\n getOpenedFormsHistoryInfo,\r\n getFormsForSearch,\r\n getProfilesForSearch,\r\n getTextCompareFn,\r\n (upperCaseAccentsFreeSearchedText, openedFormsHistoryInfo, formsForSearch, profilesForSearch, textCompareFn) => {\r\n const searchResults: SearchResult[] = openedFormsHistoryInfo\r\n .map(({ profileId, menuItemId }) => profileId ? profilesForSearch[profileId] : formsForSearch[menuItemId])\r\n .filter(createSearchDataFilter(upperCaseAccentsFreeSearchedText))\r\n .map(createSearchDataToResultMapper(LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS));\r\n\r\n return sortAndFinalizeSearchGroup(LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS, searchResults, upperCaseAccentsFreeSearchedText, textCompareFn);\r\n },\r\n);\r\n\r\n/**\r\n * Získá výsledky vyhledávání pro skupinu oblíbených formulářů.\r\n */\r\nexport const getSearchedFavoriteForms = createSelector(\r\n getUpperCaseAccentsFreeSearchedText,\r\n getFavoriteMenuItemIds,\r\n getFormsForSearch,\r\n getTextCompareFn,\r\n (upperCaseAccentsFreeSearchedText, favoriteFormIds, formsForSearch, textCompareFn) => {\r\n const searchResults: SearchResult[] = favoriteFormIds\r\n .map((formItemId) => formsForSearch[formItemId.formId])\r\n .filter(createSearchDataFilter(upperCaseAccentsFreeSearchedText))\r\n .map(createSearchDataToResultMapper(LOC_KEY_QUICK_ACCESS_MENU_FAVORITES));\r\n\r\n return sortAndFinalizeSearchGroup(LOC_KEY_QUICK_ACCESS_MENU_FAVORITES, searchResults, upperCaseAccentsFreeSearchedText, textCompareFn);\r\n },\r\n);\r\n\r\n/**\r\n * Získá skupiny kořenových formulářů pro vyhledávání včetně ids všech formulářů a profilů, které do dané skupiny patří.\r\n * Obsažená ids jsou unikátní v rámci skupiny.\r\n */\r\nexport const getFormSearchGroups = createSelector(\r\n getAllowedRootFormItemIds,\r\n getFormItems,\r\n (rootItemsIds, formItems) => rootItemsIds.map((rootItemId) => {\r\n const { locKey } = formItems[rootItemId];\r\n const { formItemIds, profileIds } = getIdsForSubtree(rootItemId, formItems);\r\n return {\r\n locKey,\r\n formItemIds: [...new Set(formItemIds)],\r\n profileIds: [...new Set(profileIds)],\r\n };\r\n }),\r\n);\r\n\r\n/**\r\n * Získá výsledky vyhledávání pro skupiny kořenových formulářů.\r\n */\r\nexport const getSearchedForms = createSelector(\r\n getUpperCaseAccentsFreeSearchedText,\r\n getFormSearchGroups,\r\n getFormsForSearch,\r\n getProfilesForSearch,\r\n getTextCompareFn,\r\n (upperCaseAccentsFreeSearchedText, formSearchGroups, formsForSearch, profilesForSearch, textCompareFn) => {\r\n const searchDataFilter = createSearchDataFilter(upperCaseAccentsFreeSearchedText);\r\n return formSearchGroups\r\n .map(({ locKey, formItemIds, profileIds }) => {\r\n const searchDataToResultMapper = createSearchDataToResultMapper(locKey);\r\n const searchedForms: SearchResult[] = formItemIds\r\n .map((formItemId) => formsForSearch[formItemId])\r\n .filter(searchDataFilter)\r\n .map(searchDataToResultMapper);\r\n const searchedProfiles: SearchResult[] = profileIds\r\n .map((profileId) => profilesForSearch[profileId])\r\n .filter(searchDataFilter)\r\n .map(searchDataToResultMapper);\r\n\r\n return {\r\n locKey,\r\n searchResults: searchedForms.concat(searchedProfiles),\r\n };\r\n })\r\n .reduce((result, { locKey, searchResults }) => ([\r\n ...result,\r\n ...sortAndFinalizeSearchGroup(locKey, searchResults, upperCaseAccentsFreeSearchedText, textCompareFn),\r\n ]), [] as SearchResult[]);\r\n },\r\n);\r\n\r\n/**\r\n * Získá kompletní výsledky vyhledávání spojením výsledků z jednotlivých skupin.\r\n */\r\nexport const getSearchedItems = createSelector(\r\n getSearchedOpenedForms,\r\n getSearchedHistoricForms,\r\n getSearchedFavoriteForms,\r\n getSearchedForms,\r\n (searchedOpenedForms, searchedHistoricForms, searchedFavoriteForms, searchedForms) => [\r\n ...searchedOpenedForms,\r\n ...searchedHistoricForms,\r\n ...searchedFavoriteForms,\r\n ...searchedForms,\r\n ],\r\n);\r\n","import { all, call, debounce, fork, put, select, take, takeEvery, takeLatest } from \"redux-saga/effects\";\r\n\r\nimport {\r\n FAVORITE_FORM_UPDATED,\r\n FAVORITE_FORMS_LOADED,\r\n FORM_CLOSED,\r\n HISTORY_FORMS_INFO_UPDATED,\r\n MENU_ITEMS_LOADED,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { createAreLocalizationKeysLoadedActionPattern } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport {\r\n ADD_PROFILE_TO_RELATIONSHIPS,\r\n FETCHING_KEY_FORM_ITEMS_LOCALIZATION,\r\n RELOAD_MENU,\r\n REMOVE_PROFILE_FORM_RELATIONSHIPS,\r\n} from \"../constants\";\r\nimport { REMOVE_LABEL_INFO, SET_LABEL_INFO } from \"../openedItems\";\r\nimport { formOpenedAndShowInMenuActionPattern } from \"../utils\";\r\nimport { createSetSearchResultsAction } from \"./actions\";\r\nimport { SEARCHED_TEXT_CHANGED } from \"./constants\";\r\nimport { getSearchedItems, isSearchActive } from \"./selectors\";\r\n\r\nexport const saga: SagaWithReturnType = function* searchModuleSaga() {\r\n yield fork(prepareMenuItemSearchSaga);\r\n yield debounce(200, SEARCHED_TEXT_CHANGED, searchSaga);\r\n yield takeEvery([\r\n formOpenedAndShowInMenuActionPattern,\r\n FORM_CLOSED,\r\n FAVORITE_FORM_UPDATED,\r\n SET_LABEL_INFO,\r\n REMOVE_LABEL_INFO,\r\n REMOVE_PROFILE_FORM_RELATIONSHIPS,\r\n ADD_PROFILE_TO_RELATIONSHIPS,\r\n ], searchSaga);\r\n yield takeLatest(RELOAD_MENU, refreshSearchAfterMenuReloadSaga);\r\n};\r\n\r\n/**\r\n * Po spuštění čeká na akci načtení lokalizací pro položky menu. Poté naplní cache používané pro vyhledávání položek menu, aby první vyhledání proběhlo s optimální\r\n * rychlostí.\r\n */\r\nexport const prepareMenuItemSearchSaga: SagaWithReturnType = function* prepareMenuItemSearchSaga() {\r\n yield take(createAreLocalizationKeysLoadedActionPattern(FETCHING_KEY_FORM_ITEMS_LOCALIZATION));\r\n yield select(getSearchedItems);\r\n};\r\n\r\n/**\r\n * Obnovuje výsledky vyhledávání po znovunačtení menu.\r\n * Výsledky jsou znovunačteny poté, co jsou dokončeny následující akce:\r\n * - načtení lokalizací pro položky menu\r\n * - načtení historicky otevřených formulářů\r\n * - načtení oblíbených formulářů\r\n * - načtení položek menu\r\n */\r\nexport const refreshSearchAfterMenuReloadSaga: SagaWithReturnType = function* refreshSearchAfterMenuReloadSaga() {\r\n yield all([\r\n take(createAreLocalizationKeysLoadedActionPattern(FETCHING_KEY_FORM_ITEMS_LOCALIZATION)),\r\n take(HISTORY_FORMS_INFO_UPDATED),\r\n take(FAVORITE_FORMS_LOADED),\r\n take(MENU_ITEMS_LOADED),\r\n ]);\r\n yield call(searchSaga);\r\n};\r\n\r\n/**\r\n * Spouští vyhledávání a nastavuje výsledky do stavu.\r\n */\r\nexport const searchSaga: SagaWithReturnType = function* searchSaga() {\r\n const searchIsActive: ReturnType<typeof isSearchActive> = yield select(isSearchActive);\r\n const searchedItems: ReturnType<typeof getSearchedItems> | typeof EMPTY_ARRAY = searchIsActive ? yield select(getSearchedItems) : EMPTY_ARRAY;\r\n yield put(createSetSearchResultsAction(searchedItems));\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { ISearchState } from \"./types\";\r\n\r\nexport { createSearchedTextChangedAction } from \"./actions\";\r\nexport { SET_SEARCH_RESULTS } from \"./constants\";\r\nexport { getSearchedText, getSearchResults, isSearchActive } from \"./selectors\";\r\nexport { SearchGroup, SearchResult, SearchResultType } from \"./types\";\r\n\r\nexport const searchModule: ApplicationStatefulModule<typeof NAME, Reducer<ISearchState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { Action } from \"redux\";\r\n\r\nimport { FormOpenMethod } from \"@multiweb/reactCore/bridge\";\r\nimport { isArray, Key } from \"@multiweb/reactUtils\";\r\nimport { IMenuNavigationConfig } from \"@multiweb/types/multiweb\";\r\nimport { SerializableKeyEvent } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES, LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS, LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS } from \"../locKeys\";\r\nimport { SearchGroup, SearchResultType } from \"../search\";\r\nimport { IMenuItemActivatedAction, MenuItemActivatedType } from \"../types\";\r\nimport { CompleteNavigationConfig, FocusableItemType, MenuFocusableItemType, MenuNavigationSectionType, MutableNavigationNode, NavigationNode, NavigationSection } from \"./types\";\r\n\r\n/**\r\n * Vytvoří id pro zaměřitelnou položku z kombinace typu a id položky.\r\n * @param itemId Id položky.\r\n * @param type Typ položky.\r\n * @param section Sekce navigace, do které položka patří.\r\n */\r\nexport const createFocusableItemId = (itemId: string | number, type: FocusableItemType, section: NavigationSection) => `${section}-${type}-${itemId}`;\r\n\r\n/**\r\n * Vytvoří navigační uzel pro položku daného typu a id. Uzel neobsahuje žádné sousedy.\r\n * @param itemId Id položky. Nemusí být unikátní napříč typy, stačí je v rámci typu.\r\n * @param type Typ položky.\r\n * @param section Sekce navigace, do které položka patří.\r\n */\r\nexport const createNavigationNode = (itemId: string | number, type: FocusableItemType, section: NavigationSection): MutableNavigationNode => ({\r\n self: {\r\n id: createFocusableItemId(itemId, type, section),\r\n itemId,\r\n type,\r\n section,\r\n },\r\n});\r\n\r\n/**\r\n * Vytvoří navigační uzly daného typu pro položky se zadanými identifikátory.\r\n * @param itemIds Identifikátory položek.\r\n * @param type Typ položek.\r\n * @param section Sekce navigace, do které položky patří.\r\n */\r\nexport const createMultipleNavigationNodes = (itemIds: ReadonlyArray<string | number>, type: FocusableItemType, section: NavigationSection): MutableNavigationNode[] => (\r\n itemIds.map((itemId) => createNavigationNode(itemId, type, section))\r\n);\r\n\r\n/**\r\n * Propojí navzájem dva navigační uzly vertikálně. Propojuje předané uzly, nevytváří jejich kopii.\r\n * @param topNode Horní uzel.\r\n * @param bottomNode Spodní uzel.\r\n */\r\nexport const connectVertically = (topNode: MutableNavigationNode, bottomNode: MutableNavigationNode) => {\r\n topNode.downId = bottomNode.self.id;\r\n bottomNode.upId = topNode.self.id;\r\n};\r\n\r\n/**\r\n * Propojí navzájem dva navigační uzly horizontálně. Propojuje předané uzly, nevytváří jejich kopii.\r\n * @param leftNode Levý uzel.\r\n * @param rightNode Pravý uzel.\r\n */\r\nexport const connectHorizontally = (leftNode: MutableNavigationNode, rightNode: MutableNavigationNode) => {\r\n leftNode.rightId = rightNode.self.id;\r\n rightNode.leftId = leftNode.self.id;\r\n};\r\n\r\n/**\r\n * Vytvoří mělkou kopii navigačního uzlu. Umožňuje měnit sousední uzly v kopii.\r\n * @param sourceNode Uzel ke zkopírování.\r\n */\r\nexport const copyNode = (sourceNode: NavigationNode): MutableNavigationNode => ({ ...sourceNode });\r\n\r\n/**\r\n * Propojí vertikálně zadané navigační uzly. Propojení odpovídá pořadí prvků v poli. Propojuje předané uzly, nevytváří jejich kopii.\r\n * @param navigationNodes Uzly pro vertikální propojení.\r\n */\r\nexport const connectMultipleVertically = (navigationNodes: readonly MutableNavigationNode[]) => {\r\n for (let index = 0; index < navigationNodes.length - 1; index++) {\r\n connectVertically(navigationNodes[index], navigationNodes[index + 1]);\r\n }\r\n};\r\n\r\n/**\r\n * Propojí vertikálně zadané navigační uzly. Propojení odpovídá pořadí prvků v poli. Zároveň propojí první a poslední uzel. Propojuje předané uzly, nevytváří jejich\r\n * kopii.\r\n * Pozn. Pokud by byl v _navigationNodes_ jediný uzel, tak napojen (sám se sebou) nebude.\r\n * @param navigationNodes\r\n */\r\nexport const connectMultipleVerticallyCyclic = (navigationNodes: readonly MutableNavigationNode[]) => {\r\n connectMultipleVertically(navigationNodes);\r\n if (navigationNodes.length >= 2) {\r\n connectVertically(navigationNodes[navigationNodes.length - 1], navigationNodes[0]);\r\n }\r\n};\r\n\r\n/**\r\n * Propojí horizontálně zadané navigační uzly. Propojení odpovídá pořadí prvků v poli. Propojuje předané uzly, nevytváří jejich kopii.\r\n * @param navigationNodes Uzly pro horizontální propojení.\r\n */\r\nexport const connectMultipleHorizontally = (navigationNodes: readonly MutableNavigationNode[]) => {\r\n for (let index = 0; index < navigationNodes.length - 1; index++) {\r\n connectHorizontally(navigationNodes[index], navigationNodes[index + 1]);\r\n }\r\n};\r\n\r\n/**\r\n * Propojí jednosměrně všechny zadané navigační uzly vlevo na zadaný levý uzel. Propojuje předané uzly, nevytváří jejich kopii. Levý uzel není modifikován.\r\n * @param navigationNodes Navigační uzly, kterým se jako levý soused nastaví zadaný leftNode.\r\n * @param leftNode Cílový uzel, na který se má navigovat.\r\n */\r\nexport const connectMultipleToLeftNode = (navigationNodes: readonly MutableNavigationNode[], leftNode: NavigationNode) => {\r\n navigationNodes.forEach((navigationNode) => {\r\n navigationNode.leftId = leftNode.self.id;\r\n });\r\n};\r\n\r\n/**\r\n * Propojí jednosměrně všechny zadané navigační uzly na zadaný únikový uzel. Propojuje předané uzly, nevytváří jejich kopii. Únikový uzel není modifikován.\r\n * @param navigationNodes Navigační uzly, kterým se jako únikový uzel nastaví zadaný escNode.\r\n * @param escNode Cílový uzel, na který se má navigovat v případě stisku klávesy escape.\r\n */\r\nexport const connectMultipleToEsc = (navigationNodes: readonly MutableNavigationNode[], escNode: NavigationNode) => {\r\n navigationNodes.forEach((navigationNode) => {\r\n navigationNode.escId = escNode.self.id;\r\n });\r\n};\r\n\r\n/**\r\n * Získá id následující zaměřené položky na základě aktuální zaměřené položky a stisknuté klávesy.\r\n * @param keyEvent Událost stisku klávesy.\r\n * @param focusedNode Aktuálně zaměřený navigační uzel.\r\n */\r\nexport const getNextFocusedItemId = (keyEvent: SerializableKeyEvent, focusedNode: NavigationNode) => {\r\n switch (keyEvent.key) {\r\n case Key.ArrowUp: return focusedNode.upId;\r\n case Key.ArrowDown: return focusedNode.downId;\r\n case Key.ArrowRight: return focusedNode.rightId;\r\n case Key.ArrowLeft: return focusedNode.leftId;\r\n case Key.Escape: return focusedNode.escId;\r\n default: return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Převede metodu otevření formuláře na typ zaměřitelné položky pro akční položky otvírání formulářů.\r\n * @param openMethod Metoda otevření formuláře.\r\n */\r\nexport const getFocusableTypeByOpenMethod = (openMethod: FormOpenMethod) => {\r\n switch (openMethod) {\r\n case FormOpenMethod.inTab: return MenuFocusableItemType.openInTabActionItem;\r\n case FormOpenMethod.newOrExisting:\r\n case FormOpenMethod.new:\r\n default: return MenuFocusableItemType.openActionItem;\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří vzor pro rozpoznávání akcí aktivujících položku menu pomocí myši pro zadané typy položek.\r\n * @param actionTypes Hledaný typ položek. Může být konkrétní typ nebo pole odpovídajících typů.\r\n */\r\nexport const createMenuItemActivatedByMousePattern = (actionTypes: MenuItemActivatedType | readonly MenuItemActivatedType[]) => (action: Action): boolean => {\r\n if (action instanceof IMenuItemActivatedAction && action.payload.mouseEvent) {\r\n const { itemType } = action.payload;\r\n if (isArray(actionTypes)) {\r\n return actionTypes.includes(itemType);\r\n } else {\r\n return itemType === actionTypes;\r\n }\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Převede MenuItemActivatedType na MenuFocusableItemType.\r\n * @param menuItemActivatedType\r\n */\r\nexport const menuItemActivatedTypeToFocusableItemType = (menuItemActivatedType: MenuItemActivatedType): MenuFocusableItemType | undefined => {\r\n switch (menuItemActivatedType) {\r\n case MenuItemActivatedType.formFavoriteActionItem:\r\n case MenuItemActivatedType.openedInstanceFavoriteActionItem:\r\n return MenuFocusableItemType.favoriteActionItem;\r\n case MenuItemActivatedType.openFormActionItem:\r\n case MenuItemActivatedType.openProfileActionItem:\r\n case MenuItemActivatedType.openFormInstanceActionItem:\r\n return MenuFocusableItemType.openActionItem;\r\n case MenuItemActivatedType.openFormInTabActionItem:\r\n case MenuItemActivatedType.openProfileInTabActionItem:\r\n case MenuItemActivatedType.openFormInstanceInTabActionItem:\r\n return MenuFocusableItemType.openInTabActionItem;\r\n case MenuItemActivatedType.closeActionItem:\r\n return MenuFocusableItemType.closeActionItem;\r\n case MenuItemActivatedType.logoutButton:\r\n case MenuItemActivatedType.settingsButton:\r\n case MenuItemActivatedType.toggleThemeButton:\r\n return MenuFocusableItemType.userMenuItem;\r\n case MenuItemActivatedType.staticPanelItem:\r\n case MenuItemActivatedType.notificationGroup:\r\n case MenuItemActivatedType.panelItemForm:\r\n case MenuItemActivatedType.panelItemFormFolder:\r\n return MenuFocusableItemType.panelItem;\r\n case MenuItemActivatedType.form:\r\n return MenuFocusableItemType.formItem;\r\n case MenuItemActivatedType.formFolder:\r\n return MenuFocusableItemType.folderItem;\r\n case MenuItemActivatedType.profile:\r\n return MenuFocusableItemType.profile;\r\n case MenuItemActivatedType.notificationItem:\r\n return MenuFocusableItemType.notificationItem;\r\n case MenuItemActivatedType.openedForm:\r\n return MenuFocusableItemType.openedItem;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Mapuje podřízené hodnoty z MenuNavigationSectionType na svůj rodičovský typ. Hodnoty, které nejsou podřízené vrací nezměněné.\r\n * @param section\r\n */\r\nexport const collapseMenuNavigationSectionType = (section: NavigationSection) => {\r\n switch (section) {\r\n case MenuNavigationSectionType.quickAccessOpened:\r\n case MenuNavigationSectionType.quickAccessHistoric:\r\n case MenuNavigationSectionType.quickAccessFavorite:\r\n return MenuNavigationSectionType.quickAccess;\r\n case MenuNavigationSectionType.searchResultsOpened:\r\n case MenuNavigationSectionType.searchResultsHistoric:\r\n case MenuNavigationSectionType.searchResultsFavorite:\r\n return MenuNavigationSectionType.searchResults;\r\n default:\r\n return section;\r\n }\r\n};\r\n\r\n/**\r\n * Převede skupinu vyhledávání na sekci navigace.\r\n * @param searchGroup Skupina vyhledávání pro převod.\r\n */\r\nexport const searchGroupToNavigationSection = (searchGroup: SearchGroup): NavigationSection => {\r\n switch (searchGroup) {\r\n case LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS:\r\n return MenuNavigationSectionType.searchResultsOpened;\r\n case LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS:\r\n return MenuNavigationSectionType.searchResultsHistoric;\r\n case LOC_KEY_QUICK_ACCESS_MENU_FAVORITES:\r\n return MenuNavigationSectionType.searchResultsFavorite;\r\n default:\r\n return searchGroup;\r\n }\r\n};\r\n\r\n/**\r\n * Převede typ zaměřitelné položky na typ výsledku vyhledávání. Pro položky, které nemají ekvivalent ve výsledcích vyhledávání vrací undefined.\r\n * @param focusableItemType Typ zaměřitelné položky pro převedení.\r\n */\r\nexport const focusableItemTypeToSearchResultType = (focusableItemType: FocusableItemType): SearchResultType | undefined => {\r\n switch (focusableItemType) {\r\n case MenuFocusableItemType.formItem: return SearchResultType.form;\r\n case MenuFocusableItemType.profile: return SearchResultType.profile;\r\n case MenuFocusableItemType.openedItem: return SearchResultType.formInstance;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Získá výsledné nastavení navigace složenou z požadovaného nastavení a výchozího nastavení.\r\n * @param config\r\n * @param defaultConfig Výchozí konfigurace, která se použije pro vlastnosti, které nejsou specifikované v parametru <code>config</code>.\r\n */\r\nexport const mergeNavigationConfig = (config: IMenuNavigationConfig | undefined, defaultConfig: CompleteNavigationConfig): CompleteNavigationConfig => {\r\n if (!config) {\r\n return defaultConfig;\r\n }\r\n\r\n return {\r\n enableNavigation: config.enableNavigation,\r\n optionalFeatures: {\r\n ...defaultConfig.optionalFeatures,\r\n ...config.optionalFeatures,\r\n },\r\n nodeDefinitions: {\r\n ...defaultConfig.nodeDefinitions,\r\n ...config.nodeDefinitions,\r\n },\r\n };\r\n};\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils/constants\";\r\nimport { ISearchedTextChangedAction, ISetSearchResultsAction } from \"../search/types\";\r\nimport {\r\n FocusableItemId,\r\n IClearFocusedItemAction,\r\n IClearNavigationSectionAction,\r\n IMenuNavigationState,\r\n ISetFocusedItemAction,\r\n ISetNavigationNodesAction,\r\n MenuNavigationSectionType,\r\n NavigationNodes,\r\n} from \"./types\";\r\nimport { collapseMenuNavigationSectionType } from \"./utils\";\r\n\r\nexport const focusedItemId: Reducer<FocusableItemId | null> = (state = null, action) => {\r\n if (action instanceof ISetFocusedItemAction) {\r\n return action.payload.focusedItemId;\r\n } else if (action instanceof IClearFocusedItemAction) {\r\n return null;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst INITIAL_NAVIGATION_STATE = {\r\n [MenuNavigationSectionType.static]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.forms]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.panelForms]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.searchResults]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.quickAccess]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.notifications]: EMPTY_OBJECT,\r\n [MenuNavigationSectionType.notificationGroups]: EMPTY_OBJECT,\r\n};\r\n\r\nexport const navigationNodes: Reducer<NavigationNodes> = (state = INITIAL_NAVIGATION_STATE, action) => {\r\n if (action instanceof ISetNavigationNodesAction) {\r\n return produce(state, (draft) => {\r\n const { section, navigationNodes } = action.payload;\r\n const collapsedSection = collapseMenuNavigationSectionType(section);\r\n if (!draft[collapsedSection]) {\r\n draft[collapsedSection] = {};\r\n }\r\n navigationNodes.forEach((navigationNode) => {\r\n draft[collapsedSection][navigationNode.self.id] = navigationNode;\r\n });\r\n });\r\n } else if (action instanceof IClearNavigationSectionAction) {\r\n return produce(state, (draft) => {\r\n draft[collapseMenuNavigationSectionType(action.payload.section)] = EMPTY_OBJECT;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const firstQuickAccessFocusableItemId: Reducer<FocusableItemId | null> = (state = null, action) => {\r\n if (action instanceof ISetNavigationNodesAction) {\r\n const { section, navigationNodes } = action.payload;\r\n if (section === MenuNavigationSectionType.quickAccess && navigationNodes.length > 0) {\r\n return navigationNodes[0].self.id;\r\n }\r\n } else if (action instanceof IClearNavigationSectionAction) {\r\n const { section } = action.payload;\r\n if (section === MenuNavigationSectionType.quickAccess) {\r\n return null;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport const lastQuickAccessFocusableItemId: Reducer<FocusableItemId | null> = (state = null, action) => {\r\n if (action instanceof ISetNavigationNodesAction) {\r\n const { section, navigationNodes } = action.payload;\r\n if (section === MenuNavigationSectionType.quickAccess && navigationNodes.length > 0) {\r\n // poslední položky jsou action itemy, proto se použije rodič získaný přes escId\r\n return navigationNodes[navigationNodes.length - 1].escId ?? null;\r\n }\r\n } else if (action instanceof IClearNavigationSectionAction) {\r\n const { section } = action.payload;\r\n if (section === MenuNavigationSectionType.quickAccess) {\r\n return null;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport const searchInputSelectAllText: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof ISearchedTextChangedAction) {\r\n return action.payload.searchedText?.length !== 1;\r\n } else if (action instanceof ISetSearchResultsAction) {\r\n return true;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const reducer: Reducer<IMenuNavigationState> = combineReducers({\r\n focusedItemId,\r\n firstQuickAccessFocusableItemId,\r\n lastQuickAccessFocusableItemId,\r\n searchInputSelectAllText,\r\n navigationNodes,\r\n});\r\n","import { SerializableKeyEvent } from \"@multiweb/types/react\";\r\nimport {\r\n ACTION_ITEM_FOCUSED,\r\n CLEAR_FOCUSED_ITEM,\r\n CLEAR_NAVIGATION_SECTION,\r\n FOCUS_DEFAULT_ITEM,\r\n KEY_PRESSED,\r\n MENU_FOCUS_LOST,\r\n NAVIGATION_NODES_UPDATED,\r\n SET_FOCUSED_ITEM,\r\n SET_NAVIGATION_NODES,\r\n} from \"./constants\";\r\nimport {\r\n FocusableItemId,\r\n IActionItemFocusedAction,\r\n IClearFocusedItemAction,\r\n IClearNavigationSectionAction,\r\n IFocusDefaultItemAction,\r\n IKeyPressedAction,\r\n IMenuFocusLostAction,\r\n INavigationNodesUpdatedAction,\r\n ISetFocusedItemAction,\r\n ISetNavigationNodesAction,\r\n NavigationNode,\r\n NavigationSection,\r\n} from \"./types\";\r\n\r\n/**\r\n * Akce pro nastavení zaměřené položky v menu.\r\n * @param focusedItemId Id zaměřitelné položky, která má být zaměřená.\r\n */\r\nexport const createSetFocusedItemAction = (focusedItemId: FocusableItemId): ISetFocusedItemAction => ({\r\n type: SET_FOCUSED_ITEM,\r\n payload: {\r\n focusedItemId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení zaměření na výchozí hodnotu, pokud není nic zaměřené.\r\n */\r\nexport const createFocusDefaultItemAction = (): IFocusDefaultItemAction => ({\r\n type: FOCUS_DEFAULT_ITEM,\r\n});\r\n\r\n/**\r\n * Akce pro zrušení zaměření.\r\n */\r\nexport const createClearFocusedItemAction = (): IClearFocusedItemAction => ({\r\n type: CLEAR_FOCUSED_ITEM,\r\n});\r\n\r\n/**\r\n * Akce pro nastavení navigačních uzlů do stavu.\r\n * @param section Navigační sekce, do které uzly patří.\r\n * @param navigationNodes Navigační uzly k nastavení.\r\n */\r\nexport const createSetNavigationNodesAction = (section: NavigationSection, ...navigationNodes: NavigationNode[]): ISetNavigationNodesAction => ({\r\n type: SET_NAVIGATION_NODES,\r\n payload: {\r\n section,\r\n navigationNodes,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání všech navigačních uzlů v zadané sekci.\r\n * @param section Navigační sekce k vyčištění.\r\n */\r\nexport const createClearNavigationSectionAction = (section: NavigationSection): IClearNavigationSectionAction => ({\r\n type: CLEAR_NAVIGATION_SECTION,\r\n payload: {\r\n section,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že byla dokončena aktualizace navigačních uzlů pro danou sekci.\r\n * @param sectionType\r\n */\r\nexport const createNavigationNodesUpdatedAction = (sectionType: NavigationSection): INavigationNodesUpdatedAction => ({\r\n type: NAVIGATION_NODES_UPDATED,\r\n payload: {\r\n sectionType,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující stisknutí klávesy v menu.\r\n * @param event Serializovatelná událost stisku klávesy.\r\n */\r\nexport const createKeyPressedAction = (event: SerializableKeyEvent): IKeyPressedAction => ({\r\n type: KEY_PRESSED,\r\n payload: {\r\n event,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující ztrátu zaměření celého menu.\r\n * @param documentHidden Příznak, zda je dokument skrytý nebo viditelný.\r\n */\r\nexport const createMenuFocusLostAction = (documentHidden: boolean): IMenuFocusLostAction => ({\r\n type: MENU_FOCUS_LOST,\r\n payload: {\r\n documentHidden,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující, že proběhlo zaměření akční položky.\r\n * @param focusableItemId Identifikátor zaměřené položky z pohledu navigace.\r\n */\r\nexport const createActionItemFocusedAction = (focusableItemId: FocusableItemId): IActionItemFocusedAction => ({\r\n type: ACTION_ITEM_FOCUSED,\r\n payload: {\r\n focusableItemId,\r\n },\r\n});\r\n","import {\r\n FORM_SEARCH_INPUT_ID,\r\n SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID,\r\n SHOW_ALL_NOTIFICATIONS_BUTTON_ID,\r\n USER_MENU_LOGOUT_ITEM_ID,\r\n USER_MENU_SETTINGS_ITEM_ID,\r\n USER_MENU_TOGGLE_THEME_ITEM_ID,\r\n} from \"../constants\";\r\nimport { MenuPanelItemId } from \"../panelItems\";\r\nimport { FocusableItemId, MenuFocusableItemType, MenuNavigationSectionType } from \"./types\";\r\nimport { createFocusableItemId } from \"./utils\";\r\n\r\n/**\r\n * Id navigačního uzlu pro logo.\r\n */\r\nexport const LOGO_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(MenuPanelItemId.logo, MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro sekci Rychlý přístup.\r\n */\r\nexport const QUICK_ACCESS_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(MenuPanelItemId.quickAccess, MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro pole vyhledávání formulářů.\r\n */\r\nexport const FORM_SEARCH_INPUT_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(FORM_SEARCH_INPUT_ID, MenuFocusableItemType.searchInput, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro sekci menu uživatele.\r\n */\r\nexport const USER_MENU_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(MenuPanelItemId.user, MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro tlačítko odhlášení v menu uživatele.\r\n */\r\nexport const LOGOUT_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(USER_MENU_LOGOUT_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro tlačítko nastavení v menu uživatele.\r\n */\r\nexport const SETTINGS_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(USER_MENU_SETTINGS_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro tlačítko změny tématu.\r\n */\r\nexport const TOGGLE_THEME_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(USER_MENU_TOGGLE_THEME_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro položku tlačítka pro zobrazení všech notifikací.\r\n */\r\nexport const SHOW_ALL_NOTIFICATIONS_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(SHOW_ALL_NOTIFICATIONS_BUTTON_ID, MenuFocusableItemType.showAllNotificationsButton, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro položku tlačítka pro označení všech notifikací skupiny jako přečtených.\r\n */\r\nexport const SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID, MenuFocusableItemType.setGroupNotificationsAsReadButton, MenuNavigationSectionType.static);\r\n\r\n/**\r\n * Id navigačního uzlu pro tlačítko rozbalení menu.\r\n */\r\nexport const MENU_EXPAND_BUTTON_FOCUSABLE_ID: FocusableItemId =\r\n createFocusableItemId(MenuPanelItemId.expandButton, MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n","import { EMPTY_ARRAY } from \"@multiweb/reactUtils/constants\";\r\nimport { IMenuItemData, IOpenedFormHistoryInfo, MenuItemType, NotificationItemId } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { isFormItemInstanceFavoriteActionEnabled } from \"../favoriteItems\";\r\nimport { FavoriteMenuItem } from \"../favoriteItems/types\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS } from \"../locKeys\";\r\nimport { logger } from \"../logger\";\r\nimport { getOpenedFormInfo } from \"../openedItems\";\r\nimport { SearchResult, SearchResultType } from \"../search\";\r\nimport {\r\n areFormItemWindowActionsEnabled,\r\n areProfileWindowActionsEnabled,\r\n createGetProfileIdsForForm,\r\n getFormItem,\r\n getPanelItem,\r\n isFormItemInstanceCloseActionEnabled,\r\n} from \"../selectors\";\r\nimport { createItemIdForProfile } from \"../utils\";\r\nimport { MenuFocusableItemType, MenuNavigationSectionType, MutableNavigationNode, NavigationNode, NavigationSection } from \"./types\";\r\nimport {\r\n connectHorizontally,\r\n connectMultipleHorizontally,\r\n connectMultipleToEsc,\r\n connectMultipleToLeftNode,\r\n connectMultipleVerticallyCyclic,\r\n createMultipleNavigationNodes,\r\n createNavigationNode,\r\n searchGroupToNavigationSection,\r\n} from \"./utils\";\r\n\r\n/**\r\n * Vytvoří navigační uzly pro kontextové menu formulářové položky menu. Navigační sekce, do které vytvořené navigační\r\n * uzly spadají, je převzata ze zadaného navigačního uzlu, pro který se vytváří.\r\n * @param formItemNavigationNode Navigační uzel rodičovské formulářové položky.\r\n * @param windowActionsEnabled Příznak, zda jsou povolené akce pro otvírání nových instancí formuláře.\r\n * @param openActionEnabled Příznak, zda je povolené zobrazení kontextové akce pro otevření.\r\n *\r\n */\r\nexport const createFormItemActionNavigationNodes = (formItemNavigationNode: MutableNavigationNode, windowActionsEnabled: boolean, openActionEnabled: boolean): MutableNavigationNode[] => {\r\n const formItemId = formItemNavigationNode.self.itemId;\r\n const section = formItemNavigationNode.self.section;\r\n const favoriteActionNode = createNavigationNode(formItemId, MenuFocusableItemType.favoriteActionItem, section);\r\n const actionNodes = [favoriteActionNode];\r\n if (windowActionsEnabled) {\r\n if (openActionEnabled) {\r\n const openActionNode = createNavigationNode(formItemId, MenuFocusableItemType.openActionItem, section);\r\n actionNodes.push(openActionNode);\r\n }\r\n const openInTabActionNode = createNavigationNode(formItemId, MenuFocusableItemType.openInTabActionItem, section);\r\n actionNodes.push(openInTabActionNode);\r\n connectMultipleHorizontally(actionNodes);\r\n }\r\n connectHorizontally(formItemNavigationNode, favoriteActionNode);\r\n connectMultipleToEsc(actionNodes, formItemNavigationNode);\r\n return actionNodes;\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro kontextové menu profilové položky menu. Navigační sekce, do které vytvořené navigační\r\n * uzly spadají, je převzata ze zadaného navigačního uzlu, pro který se vytváří.\r\n * @param profileNavigationNode Navigační uzel rodičovské profilové položky.\r\n * @param windowActionsEnabled Indikátor, zda jsou povolené akce pro otvírání nových instancí formuláře.\r\n * @param openActionEnabled Příznak, zda je povolené zobrazení kontextové akce pro otevření.\r\n */\r\nexport const createProfileActionNavigationNodes = (profileNavigationNode: MutableNavigationNode, windowActionsEnabled: boolean, openActionEnabled: boolean): MutableNavigationNode[] => {\r\n const profileId = profileNavigationNode.self.itemId;\r\n const section = profileNavigationNode.self.section;\r\n if (windowActionsEnabled) {\r\n const actionNodes = [];\r\n if (openActionEnabled) {\r\n const openActionNode = createNavigationNode(profileId, MenuFocusableItemType.openActionItem, section);\r\n actionNodes.push(openActionNode);\r\n }\r\n const openInTabActionNode = createNavigationNode(profileId, MenuFocusableItemType.openInTabActionItem, section);\r\n actionNodes.push(openInTabActionNode);\r\n connectMultipleHorizontally(actionNodes);\r\n connectHorizontally(profileNavigationNode, actionNodes[0]);\r\n connectMultipleToEsc(actionNodes, profileNavigationNode);\r\n return actionNodes;\r\n } else {\r\n return EMPTY_ARRAY as MutableNavigationNode[];\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro kontextové menu otevřeného formuláře bez položky v menu. Navigační sekce, do které vytvořené navigační\r\n * uzly spadají, je převzata ze zadaného navigačního uzlu, pro který se vytváří.\r\n * @param formInstanceNavigationNode Navigační uzel rodičovské položky otevřeného formuláře.\r\n * @param isFavoriteActionEnabled Příznak, zda je povolená akce pro oblíbené.\r\n * @param isCloseActionEnabled Příznak, zda je povolená akce pro zavření.\r\n */\r\nexport const createOpenedFormActionNavigationNodes = (formInstanceNavigationNode: MutableNavigationNode, isFavoriteActionEnabled: boolean, isCloseActionEnabled: boolean): MutableNavigationNode[] => {\r\n const section = formInstanceNavigationNode.self.section;\r\n const actionNodes = isFavoriteActionEnabled ? [createNavigationNode(formInstanceNavigationNode.self.itemId, MenuFocusableItemType.favoriteActionItem, section)] : [];\r\n return createAndConnectSharedActionItemNavigationNodes(actionNodes, formInstanceNavigationNode, true, isCloseActionEnabled);\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro kontextové menu otevřeného formuláře. Navigační sekce, do které vytvořené navigační\r\n * uzly spadají, je převzata ze zadaného navigačního uzlu, pro který se vytváří.\r\n * @param formInstanceNavigationNode Navigační uzel rodičovské položky otevřeného formuláře.\r\n * @param windowActionsEnabled Indikátor, zda jsou povolené akce pro otvírání nových instancí formuláře.\r\n * @param isCloseActionEnabled Indikátor, zda je povolená akce pro zavření instance.\r\n */\r\nexport const createOpenedFormItemActionNavigationNodes = (formInstanceNavigationNode: MutableNavigationNode, windowActionsEnabled: boolean, isCloseActionEnabled: boolean): MutableNavigationNode[] => {\r\n const section = formInstanceNavigationNode.self.section;\r\n const favoriteActionNode = createNavigationNode(formInstanceNavigationNode.self.itemId, MenuFocusableItemType.favoriteActionItem, section);\r\n return createAndConnectSharedActionItemNavigationNodes([favoriteActionNode], formInstanceNavigationNode, windowActionsEnabled, isCloseActionEnabled);\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro kontextové menu otevřeného profilu. Navigační sekce, do které vytvořené navigační\r\n * uzly spadají, je převzata ze zadaného navigačního uzlu, pro který se vytváří.\r\n * @param formInstanceNavigationNode Navigační uzel rodičovské položky otevřeného formuláře.\r\n * @param windowActionsEnabled Indikátor, zda jsou povolené akce pro otvírání nových instancí formuláře.\r\n * @param isCloseActionEnabled Indikátor, zda je povolená akce pro zavření instance.\r\n */\r\nexport const createOpenedProfileActionNavigationNodes = (formInstanceNavigationNode: MutableNavigationNode, windowActionsEnabled: boolean, isCloseActionEnabled: boolean) => (\r\n createAndConnectSharedActionItemNavigationNodes([], formInstanceNavigationNode, windowActionsEnabled, isCloseActionEnabled)\r\n);\r\n\r\n/**\r\n * Obsahuje společný kód pro tvorbu akčních položek pro otevřené formulářové položky a profilové položky. Vytváří položky pro otevření, pokud je otvírání povoleno.\r\n * Vytváří položku pro zavření instance. Spojí vstupní a nově vytvořené položky horizontálně. Spojí vstupní a nově vytvořené položky na esc klávesu na rodičovský\r\n * uzel. Propojí první akční položku horizontálně s rodičovskou položkou.\r\n * @param actionNodes Vstupní uzly akčních položek. Pro položku formuláře obsahuje akční položku přidat/odebrat do/z oblíbených. Pro profily prázdné pole.\r\n * @param parentNode Rodičovský navigační uzel položky otevřeného formuláře/profilu.\r\n * @param windowActionsEnabled Indikátor, zda jsou povolené akce pro otvírání nových instancí formuláře.\r\n * @param isCloseActionEnabled Indikátor, zda je povolená akce pro zavření instance.\r\n */\r\nconst createAndConnectSharedActionItemNavigationNodes = (actionNodes: MutableNavigationNode[], parentNode: MutableNavigationNode, windowActionsEnabled: boolean, isCloseActionEnabled: boolean) => {\r\n const formInstanceId = parentNode.self.itemId;\r\n const section = parentNode.self.section;\r\n if (windowActionsEnabled) {\r\n const openActionNode = createNavigationNode(formInstanceId, MenuFocusableItemType.openActionItem, section);\r\n const openInTabActionNode = createNavigationNode(formInstanceId, MenuFocusableItemType.openInTabActionItem, section);\r\n actionNodes.push(openActionNode, openInTabActionNode);\r\n }\r\n if (isCloseActionEnabled) {\r\n const closeActionNode = createNavigationNode(formInstanceId, MenuFocusableItemType.closeActionItem, section);\r\n actionNodes.push(closeActionNode);\r\n }\r\n if (actionNodes.length > 0) {\r\n connectMultipleHorizontally(actionNodes);\r\n connectMultipleToEsc(actionNodes, parentNode);\r\n connectHorizontally(parentNode, actionNodes[0]);\r\n }\r\n return actionNodes;\r\n};\r\n\r\n/**\r\n * Rekurzivně vytvoří navigační uzly pro položky submenu a všechny další zanořené položky.\r\n * Vytváří uzly pro navigační sekci formulářů.\r\n *\r\n * @param folderMenuItemId Id položky submenu.\r\n * @param submenuItemIds Identifikátory potomků submenu v první úrovni.\r\n * @param state Stav, ze kterého se získávají data o položkách.\r\n */\r\nexport const createSubmenuNodes = (folderMenuItemId: number, submenuItemIds: readonly number[] | undefined, state: IAppState) => {\r\n const folderNode = createNavigationNode(folderMenuItemId, MenuFocusableItemType.folderItem, MenuNavigationSectionType.forms);\r\n const submenuNodes: MutableNavigationNode[] = [];\r\n const actionItemNodes: MutableNavigationNode[] = [];\r\n const nestedNodes: MutableNavigationNode[] = [];\r\n\r\n if (!submenuItemIds || submenuItemIds.length === 0) {\r\n return { folderNode, submenuNodes, actionItemNodes, nestedNodes };\r\n }\r\n\r\n for (const submenuItemId of submenuItemIds) {\r\n const submenuItem = getFormItem(state, submenuItemId);\r\n if (!submenuItem) {\r\n logger.error(\"Cannot find submenu item with id: %s\", submenuItemId);\r\n continue;\r\n }\r\n\r\n if (submenuItem.type === MenuItemType.form) {\r\n const formItemNodes = createFormItemNavigationNodesWithProfiles(submenuItem, state, MenuNavigationSectionType.forms, true);\r\n submenuNodes.push(...formItemNodes.verticalNodes);\r\n actionItemNodes.push(...formItemNodes.actionItemNodes);\r\n } else if (submenuItem.type === MenuItemType.folder) {\r\n const nestedSubmenu = createSubmenuNodes(submenuItem.id, submenuItem.children, state);\r\n submenuNodes.push(nestedSubmenu.folderNode);\r\n actionItemNodes.push(...nestedSubmenu.actionItemNodes);\r\n nestedNodes.push(...nestedSubmenu.submenuNodes, ...nestedSubmenu.nestedNodes);\r\n } else {\r\n logger.error(\"Cannot create navigation node for unknown menu item type: %s\", submenuItem.type);\r\n }\r\n }\r\n\r\n connectChildrenAndParent(folderNode, submenuNodes);\r\n\r\n return { folderNode, submenuNodes, actionItemNodes, nestedNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro položku formuláře, včetně jeho akčních položek. Nevytváří uzly pro\r\n * profily dané položky formuláře, k tomu slouží funkce:\r\n * @see createFormItemNavigationNodesWithProfiles\r\n *\r\n * @param formItemId Id položky formuláře, pro kterou se vytváří navigační uzly.\r\n * @param state Stav pro získání restrikcí pro otevírání nových instancí formuláře.\r\n * @param section Sekce, pro kterou se navigační uzly vytváří.\r\n * @param openActionEnabled Příznak, zda je povolené zobrazení kontextové akce pro otevření.\r\n */\r\nexport const createFormItemNavigationNodes = (formItemId: number, state: IAppState, section: NavigationSection, openActionEnabled: boolean) => {\r\n const formItemNode = createNavigationNode(formItemId, MenuFocusableItemType.formItem, section);\r\n const areWindowActionsEnabled = areFormItemWindowActionsEnabled(state, formItemId);\r\n const formItemActionNodes: MutableNavigationNode[] = createFormItemActionNavigationNodes(formItemNode, areWindowActionsEnabled, openActionEnabled);\r\n return { formItemNode, formItemActionNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro položku formuláře, včetně jeho akčních položek, napojených profilů a jejich\r\n * akčních položek.\r\n *\r\n * @param formItem Položka formuláře, pro kterou se vytváří navigační uzly.\r\n * @param state Stav pro získání restrikcí pro otevírání nových instancí formuláře.\r\n * @param section Sekce, pro kterou se navigační uzly vytváří.\r\n * @param openActionEnabled Příznak, zda je povolené zobrazení kontextové akce pro otevření.\r\n */\r\nexport const createFormItemNavigationNodesWithProfiles = (formItem: IMenuItemData, state: IAppState, section: NavigationSection, openActionEnabled: boolean) => {\r\n const { formItemNode, formItemActionNodes } = createFormItemNavigationNodes(formItem.id, state, section, openActionEnabled);\r\n const verticalNodes = [formItemNode];\r\n const actionItemNodes = [...formItemActionNodes];\r\n const getProfileIdsForForm = createGetProfileIdsForForm();\r\n\r\n if (formItem.profiles) {\r\n const profileIds = getProfileIdsForForm(state, formItem.id);\r\n for (const profileId of profileIds) {\r\n const { profileNode, profileActionNodes } = createProfileNavigationNodes(profileId, state, section, openActionEnabled, formItem.id);\r\n verticalNodes.push(profileNode);\r\n actionItemNodes.push(...profileActionNodes);\r\n }\r\n }\r\n\r\n return { verticalNodes, actionItemNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro položku profilu, včetně jeho akčních položek.\r\n * @param profileId Id profilu, pro který se vytváří navigační uzly.\r\n * @param state Stav pro získání restrikcí pro otevírání nových instancí formuláře.\r\n * @param section Sekce, pro kterou se navigační uzly vytváří.\r\n * @param parentFormItemId Id formulářové položky, pod kterou je profil vykreslený.\r\n * @param openActionEnabled Příznak, zda je povolené zobrazení kontextové akce pro otevření.\r\n */\r\nexport const createProfileNavigationNodes = (profileId: number, state: IAppState, section: NavigationSection, openActionEnabled: boolean, parentFormItemId?: number) => {\r\n const itemId = createItemIdForProfile(profileId, parentFormItemId);\r\n const profileNode = createNavigationNode(itemId, MenuFocusableItemType.profile, section);\r\n const areWindowActionsEnabled = areProfileWindowActionsEnabled(state, profileId);\r\n const profileActionNodes = createProfileActionNavigationNodes(profileNode, areWindowActionsEnabled, openActionEnabled);\r\n return { profileNode, profileActionNodes };\r\n};\r\n\r\n/**\r\n * Propojí rodičovský navigační uzel s jeho potomky následujícím způsobem:\r\n * 1. Vertikálně propojí všechny potomky.\r\n * 2. Propojí rodičovský uzel jako levého souseda pro všechny potomky.\r\n * 3. Propojí rodičovský uzel jako esc pro všechny potomky.\r\n * 4. Propojí prvního potomka jako pravého souseda rodičovského uzlu.\r\n *\r\n * @param parentNode Rodičovský navigační uzel.\r\n * @param childNodes Pole navigačních uzlů potomků.\r\n */\r\nexport const connectChildrenAndParent = (parentNode: MutableNavigationNode, childNodes: readonly MutableNavigationNode[]) => {\r\n connectMultipleVerticallyCyclic(childNodes);\r\n connectMultipleToLeftNode(childNodes, parentNode);\r\n connectMultipleToEsc(childNodes, parentNode);\r\n if (childNodes.length > 0) {\r\n parentNode.rightId = childNodes[0].self.id;\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro otevřené položky v sekci Rychlý přístup (bez aktivního vyhledávání), včetně akcí v jejich kontextové nabídce.\r\n *\r\n * @param openedItemIds Identifikátory otevřených položek, pro které se generují navigační uzly.\r\n * @param section Sekce, pro kterou se navigační uzly vytváří.\r\n * @param state Stav pro získání restrikcí pro otevírání nových instancí formuláře.\r\n */\r\nexport const createOpenedItemNavigationNodes = (openedItemIds: readonly string[], section: NavigationSection, state: IAppState) => {\r\n const verticalNodes: MutableNavigationNode[] = [];\r\n const actionItemNodes: MutableNavigationNode[] = [];\r\n for (const openedItemId of openedItemIds) {\r\n const openedFormInfo = getOpenedFormInfo(state, openedItemId);\r\n if (!openedFormInfo) {\r\n logger.warn(\"Navigation node generation failed. Cannot get opened form info for form instance %s\", openedItemId);\r\n continue;\r\n }\r\n const { formInstanceId, profileId, menuItemId } = openedFormInfo;\r\n const openedItemNode = createNavigationNode(formInstanceId, MenuFocusableItemType.openedItem, section);\r\n const isCloseActionEnabled = isFormItemInstanceCloseActionEnabled(state, formInstanceId);\r\n let openedItemActionItemNodes;\r\n if (profileId && menuItemId) { // otevřená položka profilu\r\n const areWindowActionsEnabled = areProfileWindowActionsEnabled(state, profileId);\r\n openedItemActionItemNodes = createOpenedProfileActionNavigationNodes(openedItemNode, areWindowActionsEnabled, isCloseActionEnabled);\r\n } else if (menuItemId) { // otevřená položka formuláře\r\n const areWindowActionsEnabled = areFormItemWindowActionsEnabled(state, menuItemId);\r\n openedItemActionItemNodes = createOpenedFormItemActionNavigationNodes(openedItemNode, areWindowActionsEnabled, isCloseActionEnabled);\r\n } else { // otevřený formulář bez položky v menu\r\n const isFavoriteActionEnabled = isFormItemInstanceFavoriteActionEnabled(state, formInstanceId);\r\n openedItemActionItemNodes = createOpenedFormActionNavigationNodes(openedItemNode, isFavoriteActionEnabled, isCloseActionEnabled);\r\n }\r\n verticalNodes.push(openedItemNode);\r\n actionItemNodes.push(...openedItemActionItemNodes);\r\n }\r\n return { verticalNodes, actionItemNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro historické položky v sekci Rychlý přístup (bez aktivního vyhledávání), včetně akcí v jejich kontextové nabídce.\r\n *\r\n * @param historyItems Historické položky, pro které se generují navigační uzly.\r\n * @param state Stav pro získání restrikcí pro otevírání nových instancí formuláře.\r\n */\r\nexport const createHistoryItemNavigationNodes = (historyItems: readonly IOpenedFormHistoryInfo[], state: IAppState) => {\r\n const verticalNodes: MutableNavigationNode[] = [];\r\n const actionItemNodes: MutableNavigationNode[] = [];\r\n for (const { profileId, menuItemId } of historyItems) {\r\n const id = profileId ? createItemIdForProfile(profileId) : menuItemId;\r\n const type = profileId ? MenuFocusableItemType.profile : MenuFocusableItemType.formItem;\r\n const historyItemNode = createNavigationNode(id, type, MenuNavigationSectionType.quickAccessHistoric);\r\n verticalNodes.push(historyItemNode);\r\n if (profileId) {\r\n const areWindowActionsEnabled = areProfileWindowActionsEnabled(state, profileId);\r\n const profileActionNodes = createProfileActionNavigationNodes(historyItemNode, areWindowActionsEnabled, false);\r\n actionItemNodes.push(...profileActionNodes);\r\n } else {\r\n const areWindowActionsEnabled = areFormItemWindowActionsEnabled(state, menuItemId);\r\n const formItemActionNodes: MutableNavigationNode[] = createFormItemActionNavigationNodes(historyItemNode, areWindowActionsEnabled, false);\r\n actionItemNodes.push(...formItemActionNodes);\r\n }\r\n }\r\n return { verticalNodes, actionItemNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro sekci Rychlý přístup a provede jejich propojení.\r\n * @param openedItemIds Položky otevřených formulářů.\r\n * @param historyItems Položky historicky otevřených formulářů.\r\n * @param favoriteItemIds Identifikátory položek oblíbených formulářů s profily.\r\n * @param quickAccessSectionNode Navigační uzel sekce Rychlý přístup, ke kterému se napojí vytvořené uzly.\r\n * @param searchInputNode Navigační uzel pole pro vyhledávání.\r\n * @param state Stav pro získání omezení pro otvírání nových instancí formulářů.\r\n */\r\nexport const createQuickAccessMenuNavigationNodes = (\r\n openedItemIds: readonly string[],\r\n historyItems: readonly IOpenedFormHistoryInfo[],\r\n favoriteItemIds: readonly FavoriteMenuItem[],\r\n quickAccessSectionNode: NavigationNode,\r\n searchInputNode: MutableNavigationNode,\r\n state: IAppState,\r\n) => {\r\n const openedItemNodes = createOpenedItemNavigationNodes(openedItemIds, MenuNavigationSectionType.quickAccessOpened, state);\r\n const historyItemNodes = createHistoryItemNavigationNodes(historyItems, state);\r\n const favoriteItemsNodes = createFavoriteMenuNavigationNodes(favoriteItemIds, state);\r\n\r\n const verticalNodes: MutableNavigationNode[] = [\r\n ...openedItemNodes.verticalNodes,\r\n ...historyItemNodes.verticalNodes,\r\n ...favoriteItemsNodes.verticalNodes,\r\n ];\r\n connectMultipleVerticallyCyclic([searchInputNode, ...verticalNodes]);\r\n connectMultipleToLeftNode(verticalNodes, quickAccessSectionNode);\r\n connectMultipleToEsc(verticalNodes, quickAccessSectionNode);\r\n\r\n return [...verticalNodes, ...openedItemNodes.actionItemNodes, ...historyItemNodes.actionItemNodes, ...favoriteItemsNodes.actionItemNodes];\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro oblíbené formuláře v sekci Rychlý přístup (bez aktivního vyhledávání).\r\n * @param favoriteFormIds Identifikátory oblíbených položek formulářů.\r\n * @param state Stav pro získání omezení pro otvírání nových instancí formulářů.\r\n */\r\nexport const createFavoriteMenuNavigationNodes = (favoriteFormIds: readonly FavoriteMenuItem[], state: IAppState) => {\r\n const actionItemNodes: NavigationNode[] = [];\r\n const verticalNodes: NavigationNode[] = [];\r\n for (const favoriteForm of favoriteFormIds) {\r\n const formItem = getFormItem(state, favoriteForm.formId);\r\n if (!formItem) {\r\n logger.error(\"Cannot find favorite form item with id: %s. Skipping creation of keyboard navigation node.\", favoriteForm.formId);\r\n continue;\r\n }\r\n\r\n const formItemNodes = createFormItemNavigationNodesWithProfiles(formItem, state, MenuNavigationSectionType.quickAccessFavorite, true);\r\n verticalNodes.push(...formItemNodes.verticalNodes);\r\n actionItemNodes.push(...formItemNodes.actionItemNodes);\r\n }\r\n return { verticalNodes, actionItemNodes };\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro formulářové položky, které nejsou kořenové. Provede jejich propojení na kořenové položky.\r\n * @param rootFormNodes Navigační uzly kořenových formulářových položek, které se zobrazují v panelu menu.\r\n * @param state Stav pro získání omezení pro otvírání nových instancí formulářů.\r\n */\r\nexport const createFormMenuNavigationNodes = (rootFormNodes: MutableNavigationNode[], state: IAppState) => {\r\n return rootFormNodes.reduce((result, rootFormNode) => {\r\n const panelItem = getPanelItem(state, rootFormNode.self.itemId as string);\r\n const formItemId = panelItem?.itemId as number | undefined;\r\n if (!formItemId) {\r\n return result;\r\n }\r\n const formItem = getFormItem(state, formItemId);\r\n if (formItem?.type === MenuItemType.folder || formItem?.type === MenuItemType.combined) {\r\n const submenuNodes = createSubmenuNodes(formItemId, formItem.children, state);\r\n rootFormNode.rightId = submenuNodes.submenuNodes.length > 0 ? submenuNodes.submenuNodes[0].self.id : undefined;\r\n connectMultipleToLeftNode(submenuNodes.submenuNodes, rootFormNode);\r\n connectMultipleToEsc(submenuNodes.submenuNodes, rootFormNode);\r\n return [\r\n ...result,\r\n ...submenuNodes.submenuNodes,\r\n ...submenuNodes.actionItemNodes,\r\n ...submenuNodes.nestedNodes,\r\n ];\r\n } else {\r\n return result;\r\n }\r\n }, [] as MutableNavigationNode[]);\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro výsledky vyhledávání a provede jejich propojení.\r\n * @param searchResults Výsledky vyhledávání.\r\n * @param quickAccessSectionNode Navigační uzel sekce Rychlý přístup.\r\n * @param searchInputNode Navigační uzel vyhledávacího pole, ke kterému se napojí vytvořené uzly.\r\n * @param state Stav pro získání omezení pro otvírání nových instancí formulářů.\r\n */\r\nexport const createSearchResultNavigationNodes = (searchResults: readonly SearchResult[], quickAccessSectionNode: NavigationNode, searchInputNode: MutableNavigationNode, state: IAppState): readonly NavigationNode[] => {\r\n if (searchResults.length === 0) {\r\n searchInputNode.upId = undefined;\r\n searchInputNode.downId = undefined;\r\n return EMPTY_ARRAY as readonly NavigationNode[];\r\n }\r\n const actionItemNodes: NavigationNode[] = [];\r\n const verticalNodes: NavigationNode[] = [];\r\n\r\n for (const { id, type, searchGroup } of searchResults) {\r\n const openActionEnabled = searchGroup !== LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS;\r\n const section = searchGroupToNavigationSection(searchGroup);\r\n if (type === SearchResultType.form) {\r\n const { formItemNode, formItemActionNodes } = createFormItemNavigationNodes(id as number, state, section, openActionEnabled);\r\n verticalNodes.push(formItemNode);\r\n actionItemNodes.push(...formItemActionNodes);\r\n } else if (type === SearchResultType.profile) {\r\n const { profileNode, profileActionNodes } = createProfileNavigationNodes(id as number, state, section, openActionEnabled);\r\n verticalNodes.push(profileNode);\r\n actionItemNodes.push(...profileActionNodes);\r\n } else if (type === SearchResultType.formInstance) {\r\n const openedItemNodes = createOpenedItemNavigationNodes([id as string], MenuNavigationSectionType.searchResultsOpened, state);\r\n verticalNodes.push(...openedItemNodes.verticalNodes);\r\n actionItemNodes.push(...openedItemNodes.actionItemNodes);\r\n } else if (type === SearchResultType.groupHeader) {\r\n continue; // Nadpisy vyhledávacích skupin nejsou navigovatelné.\r\n } else {\r\n logger.error(\"Unknown type of search result: %s\", type);\r\n }\r\n }\r\n\r\n connectMultipleVerticallyCyclic([searchInputNode, ...verticalNodes]);\r\n connectMultipleToLeftNode(verticalNodes, quickAccessSectionNode);\r\n connectMultipleToEsc(verticalNodes, quickAccessSectionNode);\r\n\r\n return verticalNodes.concat(actionItemNodes);\r\n};\r\n\r\n/**\r\n * Vytvoří navigační uzly pro menu notifikací a propojí je.\r\n */\r\nexport const createNotificationMenuNavigationNodes = (notificationItemIds: readonly NotificationItemId[], notificationGroupNode: MutableNavigationNode) => {\r\n const notificationNodes = createMultipleNavigationNodes(notificationItemIds, MenuFocusableItemType.notificationItem, MenuNavigationSectionType.notifications);\r\n connectChildrenAndParent(notificationGroupNode, notificationNodes);\r\n return notificationNodes;\r\n};\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { IAppState, TypedObject } from \"@multiweb/types/react\";\r\nimport { getSearchResults, isSearchActive } from \"../search\";\r\nimport {\r\n getActiveSectionFormItemId,\r\n getFormChildIds,\r\n getFormItem,\r\n getFormItems,\r\n getNotificationItemIds,\r\n getPanelItem,\r\n} from \"../selectors\";\r\nimport { MenuPanelItemType } from \"../types\";\r\nimport { createItemIdForProfile } from \"../utils\";\r\nimport {\r\n FocusableActionItemTypes,\r\n FocusableItemId,\r\n IsItemFocusedSelectorParams,\r\n MenuFocusableItemType,\r\n MenuNavigationSectionType,\r\n NavigationNode,\r\n NavigationSection,\r\n} from \"./types\";\r\nimport { collapseMenuNavigationSectionType, createFocusableItemId, focusableItemTypeToSearchResultType, searchGroupToNavigationSection } from \"./utils\";\r\n\r\n/**\r\n * Získá z globálního stavu podstrom pro navigaci pomocí klávesnice v menu.\r\n */\r\nconst getModel = (state: IAppState) => state.menu.navigation;\r\n\r\n/**\r\n * Získá navigační uzel podle id.\r\n * @param state\r\n * @param focusableItemId Id zaměřitelné položky menu, pro kterou se získá navigační uzel.\r\n */\r\nexport const getNavigationNode: Selector<IAppState, NavigationNode | undefined, FocusableItemId> = (state, focusableItemId) => {\r\n const navigationNodes = getModel(state).navigationNodes;\r\n for (const section of Object.keys(navigationNodes)) {\r\n const matchingNode = navigationNodes[collapseMenuNavigationSectionType(section)][focusableItemId];\r\n if (matchingNode) {\r\n return matchingNode;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Získá navigační sekci, ve které je uložený uzel aktuálně zaměřené položky.\r\n * @param state\r\n */\r\nexport const getFocusedItemStoreSection: Selector<IAppState, NavigationSection | undefined> = (state) => {\r\n const focusedItemId = getFocusedItemId(state);\r\n if (!focusedItemId) {\r\n return undefined;\r\n }\r\n const navigationNodes = getModel(state).navigationNodes;\r\n for (const section of Object.keys(navigationNodes)) {\r\n const searchedSection = collapseMenuNavigationSectionType(section);\r\n const matchingNode = navigationNodes[searchedSection][focusedItemId];\r\n if (matchingNode) {\r\n return searchedSection;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Získá navigační uzel pro aktuálně zaměřenou položku.\r\n * @param state\r\n */\r\nexport const getFocusedNavigationNode: Selector<IAppState, NavigationNode | undefined> = (state) => {\r\n const focusedItemId = getFocusedItemId(state);\r\n return focusedItemId ? getNavigationNode(state, focusedItemId) : undefined;\r\n};\r\n\r\n/**\r\n * Získá navigační uzel pro položku sekce podle jejího id. Podporuje i notifikační skupiny.\r\n * @param state\r\n * @param sectionId Id sekce nebo notifikační skupiny.\r\n */\r\nexport const getSectionNavigationNode: Selector<IAppState, NavigationNode | undefined, string> = (state, sectionId) => {\r\n const panelItem = getPanelItem(state, sectionId);\r\n if (!panelItem) {\r\n return undefined;\r\n }\r\n\r\n const section = getSectionOfPanelItemId(state, sectionId);\r\n if (!section) {\r\n return undefined;\r\n }\r\n\r\n return getNavigationNode(state, createFocusableItemId(sectionId, MenuFocusableItemType.panelItem, section));\r\n};\r\n\r\n/**\r\n * Získá navigační sekci, do které patří položka panelu menu se zadaným id.\r\n * @param state\r\n * @param panelItemId Id položky panelu menu.\r\n */\r\nexport const getSectionOfPanelItemId: Selector<IAppState, MenuNavigationSectionType | undefined, string> = (state, panelItemId) => {\r\n const panelItem = getPanelItem(state, panelItemId);\r\n if (!panelItem) {\r\n return undefined;\r\n }\r\n if (panelItem.type === MenuPanelItemType.notificationGroup) {\r\n return MenuNavigationSectionType.notificationGroups;\r\n } else if (panelItem.type === MenuPanelItemType.form) {\r\n return MenuNavigationSectionType.panelForms;\r\n } else {\r\n return MenuNavigationSectionType.static;\r\n }\r\n};\r\n\r\n/**\r\n * Získá id zaměřitelné položky, která je aktuálně zaměřená.\r\n * @param state\r\n */\r\nexport const getFocusedItemId: Selector<IAppState, FocusableItemId | null> = (state) => getModel(state).focusedItemId;\r\n\r\n/**\r\n * Zjistí, zda je zaměřitelná položka aktuálně zaměřená.\r\n * @param state\r\n * @param focusableItemId Id kontrolované zaměřitelné položky.\r\n */\r\nexport const isFocused: Selector<IAppState, boolean, FocusableItemId> = (state, focusableItemId) => getFocusedItemId(state) === focusableItemId;\r\n\r\n/**\r\n * Zjistí, zda je položka daného typu aktuálně zaměřena.\r\n * @param state\r\n * @param itemId Id položky.\r\n * @param type Typ položky.\r\n * @param section Sekce položky.\r\n */\r\nexport const isItemFocused: Selector<IAppState, boolean, IsItemFocusedSelectorParams> = (state, { itemId, type, section }) =>\r\n isFocused(state, createFocusableItemId(itemId, type, section));\r\n\r\n/**\r\n * Zjisti, zda je položka formuláře nebo složky formulářů zaměřená.\r\n * @param state\r\n * @param formItemId Id položky formuláře.\r\n * @param section Sekce položky.\r\n */\r\nexport const isFormItemFocused: Selector<IAppState, boolean, {formItemId: number; section: NavigationSection}> = (state, { formItemId, section }) => {\r\n const formItem = getFormItem(state, formItemId);\r\n if (formItem) {\r\n const type = formItem.type === MenuItemType.form ? MenuFocusableItemType.formItem : MenuFocusableItemType.folderItem;\r\n return isItemFocused(state, { itemId: formItemId, type, section });\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\n/**\r\n * Zjistí, zda je zaměřená některá z akčních položek patřící k položce se zadaným id.\r\n * @param state\r\n * @param parentItemId Id rodičovské položky akční položky.\r\n * @param section Sekce, ve které se nachází rodičovská položka.\r\n */\r\nexport const isActionItemFocused: Selector<IAppState, boolean, {parentItemId: number | string; section: NavigationSection}> = (state, { parentItemId, section }) => {\r\n const focusedNavigationNode = getFocusedNavigationNode(state);\r\n return !!focusedNavigationNode &&\r\n parentItemId === focusedNavigationNode.self.itemId &&\r\n section === focusedNavigationNode.self.section &&\r\n FocusableActionItemTypes.includes(focusedNavigationNode.self.type);\r\n};\r\n\r\n/**\r\n * Získá index zaměřené položky výsledků vyhledávání nebo formuláře z menu.\r\n * @param state\r\n */\r\nexport const getFocusedFormItemIndex: Selector<IAppState, number | undefined> = (state) => {\r\n const focusedNode = getFocusedNavigationNode(state);\r\n if (!focusedNode) {\r\n return undefined;\r\n }\r\n if (isSearchActive(state)) {\r\n return getFocusedSearchResultIndex(state, focusedNode);\r\n } else if (focusedNode.self.section === MenuNavigationSectionType.forms) {\r\n const activeSectionFormItemId = getActiveSectionFormItemId(state);\r\n if (!activeSectionFormItemId) {\r\n return undefined;\r\n }\r\n return getMenuFormItemIndexMap(state, activeSectionFormItemId)[focusedNode.self.itemId];\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Pomocný cachovaný selector pro tvorbu indexové mapy složené z formulářů a jejich profilů. Profily musí mít shodný index s rodičovským formulářem, protože\r\n * se vykreslují v rámci stejné položky ve virtualizovaném listu.\r\n */\r\nconst getMenuFormItemIndexMap = createSelector<IAppState, number, ReturnType<typeof getFormChildIds>, ReturnType<typeof getFormItems>, TypedObject<number>>(\r\n (state, activeSectionFormItemId) => getFormChildIds(state, activeSectionFormItemId),\r\n getFormItems,\r\n (menuFormsIds, formItems) => menuFormsIds.reduce((indexMap, formId, index) => {\r\n const profileIds = formItems[formId]?.profiles ?? EMPTY_ARRAY;\r\n const profileIndexMap = profileIds.reduce((profileIndexMap, profileId) => {\r\n return {\r\n ...profileIndexMap,\r\n [createItemIdForProfile(profileId, formId)]: index,\r\n };\r\n }, {});\r\n return {\r\n ...indexMap,\r\n [formId]: index,\r\n ...profileIndexMap,\r\n };\r\n }, {}),\r\n);\r\n\r\n/**\r\n * Pomocný cachovaný selector pro získání indexu pro selector getFocusedFormItemIndex v případě, že je aktivní vyhledávání.\r\n */\r\nconst getFocusedSearchResultIndex = createSelector<IAppState, NavigationNode, NavigationNode, ReturnType<typeof getSearchResults>, number | undefined>(\r\n (_state, focusedNode) => focusedNode,\r\n getSearchResults,\r\n (focusedNode, searchResults) => {\r\n const { itemId: focusedItemId, type: focusedNodeType, section } = focusedNode.self;\r\n const focusedNodeSearchResultType = focusableItemTypeToSearchResultType(focusedNodeType);\r\n const index = searchResults.findIndex(({ id, type, searchGroup }) =>\r\n id === focusedItemId &&\r\n type === focusedNodeSearchResultType &&\r\n section === searchGroupToNavigationSection(searchGroup),\r\n );\r\n return index === -1 ? undefined : index;\r\n },\r\n);\r\n\r\n/**\r\n * Získá index zaměřené položky notifikace, pokud existuje.\r\n * @param state\r\n *\r\n * Poznámka pro vývojáře:\r\n * Selector nemůže používat navigační uzly, protože při aktualizaci notifikací se nejdříve všechny smažou, než se nastaví nové.\r\n * To pak vede k vrácení undefined v době aktualizace. To má pak za následek nechtěné překreslení položky ve virtualizovaném listu.\r\n */\r\nexport const getFocusedNotificationIndex: Selector<IAppState, number | undefined> = createSelector(\r\n getFocusedItemId,\r\n getNotificationItemIds,\r\n (focusedItemId, notificationIds) => {\r\n if (focusedItemId === null) {\r\n return undefined;\r\n }\r\n const focusableNotificationIds = notificationIds.map((notificationId) => createFocusableItemId(notificationId, MenuFocusableItemType.notificationItem, MenuNavigationSectionType.notifications));\r\n const index = focusableNotificationIds.indexOf(focusedItemId);\r\n return index === -1 ? undefined : index;\r\n },\r\n);\r\n\r\n/**\r\n * Získá id první zaměřitelné položky ze sekce Rychlý přístup (bez aktivního vyhledávání).\r\n * @param state\r\n */\r\nexport const getFirstQuickAccessFocusableItemId: Selector<IAppState, FocusableItemId | undefined> = (state) => getModel(state).firstQuickAccessFocusableItemId ?? undefined;\r\n\r\n/**\r\n * Získá id poslední zaměřitelné položky ze sekce Rychlý přístup (bez aktivního vyhledávání).\r\n * @param state\r\n */\r\nexport const getLastQuickAccessFocusableItemId: Selector<IAppState, FocusableItemId | undefined> = (state) => getModel(state).lastQuickAccessFocusableItemId ?? undefined;\r\n\r\n/**\r\n * Získá příznak, zda se má při zaměření vyhledávacího pole označit celý text. Řeší případ, kdy se po napsání prvního písmene vymění komponenty a tím se nechtěně\r\n * označí text.\r\n * @param state\r\n */\r\nexport const getSelectAllTextInSearchInput: Selector<IAppState, boolean> = (state) => getModel(state).searchInputSelectAllText;\r\n","import { all, call, debounce, delay, fork, put, select, take, takeEvery, takeLatest } from \"redux-saga/effects\";\r\n\r\nimport {\r\n bridge,\r\n FAVORITE_FORM_UPDATED,\r\n FAVORITE_FORMS_LOADED,\r\n FORM_CLOSED,\r\n FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED,\r\n FORM_SWITCHED,\r\n FormOpenMethod,\r\n HISTORY_FORMS_INFO_UPDATED,\r\n IOpenFormAction,\r\n ISwitchToFormAction,\r\n OPEN_FORM,\r\n SWITCH_TO_FORM,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { createAreLocalizationKeysLoadedActionPattern } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY, EVENT_POSTPROCESS_DELAY, invariant, Key } from \"@multiweb/reactUtils\";\r\nimport { NodeDefinitionConfig } from \"@multiweb/types/multiweb\";\r\nimport { IAppState, SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction, createSetVisualAutomatStateAction, createToggleSubmenuAction } from \"../actions\";\r\nimport {\r\n CONCAT_NOTIFICATION_ITEMS,\r\n FETCHING_KEY_FORM_ITEMS_LOCALIZATION,\r\n FORM_SEARCH_INPUT_ID,\r\n RESET_NOTIFICATION_ITEMS,\r\n SET_FORM_ITEM_ACTION_RESTRICTIONS,\r\n SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID,\r\n SET_MENU_ITEMS,\r\n SET_NOTIFICATION_GROUPS,\r\n SET_PROFILE_ACTION_RESTRICTIONS,\r\n SHOW_ALL_NOTIFICATIONS_BUTTON_ID,\r\n USER_MENU_LOGOUT_ITEM_ID,\r\n USER_MENU_SETTINGS_ITEM_ID,\r\n USER_MENU_TOGGLE_THEME_ITEM_ID,\r\n VISUAL_AUTOMAT_PROCESSED,\r\n} from \"../constants\";\r\nimport { getOrderedFavoriteMenuItems } from \"../favoriteItems\";\r\nimport { getOpenedFormsHistoryInfo } from \"../historyItems\";\r\nimport { logger } from \"../logger\";\r\nimport { getOpenedFormInstanceId, getOpenedFormsIds } from \"../openedItems\";\r\nimport { MenuPanelItemId } from \"../panelItems\";\r\nimport { getSearchResults, isSearchActive, isSearchActive as isSearchActiveSelector, SET_SEARCH_RESULTS } from \"../search\";\r\nimport {\r\n getActiveSectionId,\r\n getAllowedRootFormItemIds,\r\n getNotificationGroupIds,\r\n getNotificationItemIds,\r\n isCombinedItem,\r\n isMenuExpanded,\r\n isMenuFloated,\r\n isMenuVisible,\r\n isNotificationGroupId,\r\n isNotificationGroupPanelItemId,\r\n} from \"../selectors\";\r\nimport { IMenuItemActivatedAction, MenuItemActivatedType } from \"../types\";\r\nimport { createFormPanelItemId, createNotificationGroupPanelItemId, formOpenedAndShowInMenuActionPattern } from \"../utils\";\r\nimport {\r\n createClearFocusedItemAction,\r\n createClearNavigationSectionAction,\r\n createNavigationNodesUpdatedAction,\r\n createSetFocusedItemAction,\r\n createSetNavigationNodesAction,\r\n} from \"./actions\";\r\nimport { ACTION_ITEM_FOCUSED, FOCUS_DEFAULT_ITEM, KEY_PRESSED, MENU_FOCUS_LOST } from \"./constants\";\r\nimport { FORM_SEARCH_INPUT_FOCUSABLE_ID, QUICK_ACCESS_FOCUSABLE_ID, USER_MENU_FOCUSABLE_ID } from \"./menuNavigationConstants\";\r\nimport {\r\n createFormMenuNavigationNodes,\r\n createNotificationMenuNavigationNodes,\r\n createQuickAccessMenuNavigationNodes,\r\n createSearchResultNavigationNodes,\r\n} from \"./menuNavigationUtils\";\r\nimport {\r\n getFirstQuickAccessFocusableItemId,\r\n getFocusedItemId,\r\n getFocusedItemStoreSection,\r\n getFocusedNavigationNode,\r\n getLastQuickAccessFocusableItemId,\r\n getNavigationNode,\r\n getSectionNavigationNode,\r\n} from \"./selectors\";\r\nimport {\r\n CompleteNavigationConfig,\r\n FocusableItemId,\r\n IActionItemFocusedAction,\r\n IKeyPressedAction,\r\n IMenuFocusLostAction,\r\n MenuFocusableItemType,\r\n MenuNavigationSectionType,\r\n MutableNavigationNode,\r\n NavigationNode,\r\n NavigationSection,\r\n} from \"./types\";\r\nimport {\r\n connectMultipleToEsc,\r\n connectMultipleToLeftNode,\r\n connectMultipleVertically,\r\n connectMultipleVerticallyCyclic,\r\n connectVertically,\r\n copyNode,\r\n createFocusableItemId,\r\n createMenuItemActivatedByMousePattern,\r\n createMultipleNavigationNodes,\r\n createNavigationNode,\r\n getNextFocusedItemId,\r\n menuItemActivatedTypeToFocusableItemType,\r\n mergeNavigationConfig,\r\n} from \"./utils\";\r\n\r\nconst { getMenuNavigationConfig } = bridge;\r\n\r\nexport const saga: SagaWithReturnType = function* navigationSaga() {\r\n const customConfig: SagaYieldReturn<typeof getMenuNavigationConfig> = yield call(getMenuNavigationConfig);\r\n const navigationConfig: SagaYieldReturn<typeof mergeNavigationConfig> = yield call(mergeNavigationConfig, customConfig, DEFAULT_NAVIGATION_CONFIG);\r\n if (!navigationConfig.enableNavigation) {\r\n logger.info(\"Navigation submodule is disabled by custom configuration.\");\r\n return;\r\n }\r\n logger.info(\"Navigation submodule saga has been started.\");\r\n\r\n yield fork(navigationNodeTreeSaga, navigationConfig);\r\n yield fork(actionItemMouseFocusSaga);\r\n yield takeEvery(KEY_PRESSED, keyNavigationSaga, navigationConfig);\r\n yield takeLatest(FOCUS_DEFAULT_ITEM, defaultFocusSaga);\r\n yield takeLatest(MENU_FOCUS_LOST, menuFocusLostSaga);\r\n\r\n if (navigationConfig.optionalFeatures.enableAutoFocusOpenedForms) {\r\n yield takeLatest(OPEN_FORM, updateFocusOnFormOpenedSaga);\r\n yield takeLatest(SWITCH_TO_FORM, updateFocusOnFormSwitchedSaga);\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví zaměření na uzel se zadaným id, pokud již není zaměřený. Může ušetřit zbytečné vyslání akce, pokud je již požadovaný uzel zaměřený.\r\n * @param focusableItemId Id uzlu, který se má zaměřit.\r\n */\r\nexport const focusIfNotFocusedSaga: SagaWithReturnType<[FocusableItemId]> = function* focusIfNotFocusedSaga(focusableItemId) {\r\n const focusedItemId: ReturnType<typeof getFocusedItemId> = yield select(getFocusedItemId);\r\n if (focusedItemId !== focusableItemId) {\r\n yield put(createSetFocusedItemAction(focusableItemId));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje navigaci pomocí klávesnice.\r\n * @param navigationConfig Nastavení navigačního modulu.\r\n * @param action Akce stisku klávesy.\r\n */\r\nexport const keyNavigationSaga: SagaWithReturnType<[CompleteNavigationConfig, IKeyPressedAction]> = function* keyNavigationSaga(navigationConfig, action) {\r\n const focusedNavigationNode: ReturnType<typeof getFocusedNavigationNode> = yield select(getFocusedNavigationNode);\r\n if (!focusedNavigationNode) {\r\n return;\r\n }\r\n const nextFocusedItemId: ReturnType<typeof getNextFocusedItemId> = yield call(getNextFocusedItemId, action.payload.event, focusedNavigationNode);\r\n if (!nextFocusedItemId) {\r\n return;\r\n }\r\n yield put(createSetFocusedItemAction(nextFocusedItemId));\r\n\r\n if (navigationConfig.optionalFeatures.enableSubmenuAutoOpenAndClose) {\r\n yield call(submenuAutoCloseSaga, action, focusedNavigationNode);\r\n yield call(submenuRightArrowActivationSaga, action, focusedNavigationNode);\r\n }\r\n if (navigationConfig.optionalFeatures.enableMenuAutoClose) {\r\n yield call(menuAutoCloseSaga, action, nextFocusedItemId);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje nastavení výchozí zaměřené položky menu. Používá zpoždění před nastavením hodnoty. Řeší se tím případ, kdy menu získá zaměření pomocí kliknutí myší na\r\n * konkrétní položku. Jelikož je již zaměřená položka, na kterou se kliklo, není třeba nastavovat výchozí hodnotu. Jelikož však událost získání zaměření přijde dříve,\r\n * než se ve stavu aktualizuje zaměřená položka, je třeba použít zpoždění.\r\n */\r\nexport const defaultFocusSaga: SagaWithReturnType = function* defaultFocusSaga() {\r\n yield delay(EVENT_POSTPROCESS_DELAY);\r\n const focusedItemId: ReturnType<typeof getFocusedItemId> = yield select(getFocusedItemId);\r\n if (!focusedItemId) {\r\n yield put(createSetFocusedItemAction(createFocusableItemId(\r\n MenuPanelItemId.quickAccess,\r\n MenuFocusableItemType.panelItem,\r\n MenuNavigationSectionType.static,\r\n )));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje ztrátu zaměření menu. Pokud se přesouvá zaměření v rámci dokumentu vyčistí zaměřený prvek v menu, aby se při opětovném získání zaměření začínalo\r\n * s výchozím zaměřeným prvkem. Pokud se zaměření přesouvá mimo dokument (např. na jinou záložku prohlížeče), zachová původně zaměřenou položku, aby se po získání\r\n * zaměření pokračovalo tam, kde se skončilo.\r\n * @param action Akce ztráty zaměření.\r\n */\r\nexport const menuFocusLostSaga: SagaWithReturnType<[IMenuFocusLostAction]> = function* menuFocusLostSaga(action) {\r\n if (!action.payload.documentHidden) {\r\n yield put(createClearFocusedItemAction());\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví zaměření na aktivní sekci.\r\n */\r\nexport const setFocusToActiveSectionSaga: SagaWithReturnType = function* setFocusToActiveSectionSaga() {\r\n const activeSectionId: ReturnType<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n const sectionNode: ReturnType<typeof getSectionNavigationNode> = yield select(getSectionNavigationNode, activeSectionId);\r\n const focusedItemId = yield select(getFocusedItemId);\r\n if (sectionNode && focusedItemId !== sectionNode.self.id) {\r\n yield put(createSetFocusedItemAction(sectionNode.self.id));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje zaměření nově otevřeného formuláře v sekci Rychlý přístup, pokud je menu otevřené. Pokud je menu ve float módu, přenese zaměření na aktivní sekci.\r\n * @param action Akce žádosti o otevření formuláře.\r\n */\r\nexport const updateFocusOnFormOpenedSaga: SagaWithReturnType<[IOpenFormAction]> = function* updateFocusOnFormOpenedSaga(action) {\r\n const menuItemId = action.payload.openFormData?.menuItemId;\r\n const isCombinedItemType = menuItemId && (yield select(isCombinedItem, menuItemId));\r\n if (isCombinedItemType) { // kombinované položky otevírají kromě formuláře i menu, proto se nepřepíná na sekci Rychlý přístup a ani není třeba tu měnit focus\r\n return;\r\n }\r\n\r\n if (action.payload.openMethod === FormOpenMethod.inTab) {\r\n // Pokud se formulář otvírá v nové záložce, tak v této záložce už nedorazí akce dokončení operace. Proto se čeká pouze na automat.\r\n yield take(VISUAL_AUTOMAT_PROCESSED);\r\n } else {\r\n yield all([\r\n take([formOpenedAndShowInMenuActionPattern, FORM_SWITCHED]), // Požadavek na otevření formuláře může skončit otevřením nebo přepnutím. Je třeba sledovat obě akce.\r\n take(VISUAL_AUTOMAT_PROCESSED),\r\n ]);\r\n }\r\n\r\n if (yield select(isMenuVisible)) {\r\n const openedFormInstanceId: ReturnType<typeof getOpenedFormInstanceId> = yield select(getOpenedFormInstanceId);\r\n if (openedFormInstanceId) {\r\n const searchIsActive: ReturnType<typeof isSearchActiveSelector> = yield select(isSearchActiveSelector);\r\n const section = searchIsActive ? MenuNavigationSectionType.searchResultsOpened : MenuNavigationSectionType.quickAccessOpened;\r\n const newFocusedId: SagaYieldReturn<typeof createFocusableItemId> = yield call(createFocusableItemId, openedFormInstanceId, MenuFocusableItemType.openedItem, section);\r\n yield call(focusIfNotFocusedSaga, newFocusedId);\r\n }\r\n } else {\r\n yield call(setFocusToActiveSectionSaga);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje zaměření přepnutého formuláře v sekci historie.\r\n * @param action Akce přepnutí aktivního formuláře.\r\n */\r\nexport const updateFocusOnFormSwitchedSaga: SagaWithReturnType<[ISwitchToFormAction]> = function* updateFocusOnFormSwitchedSaga(action) {\r\n yield all([\r\n take(FORM_SWITCHED),\r\n take(VISUAL_AUTOMAT_PROCESSED),\r\n ]);\r\n if (yield select(isMenuVisible)) {\r\n const { formInstanceId } = action.payload;\r\n const searchIsActive: ReturnType<typeof isSearchActiveSelector> = yield select(isSearchActiveSelector);\r\n const section = searchIsActive ? MenuNavigationSectionType.searchResultsOpened : MenuNavigationSectionType.quickAccessOpened;\r\n const newFocusedId: ReturnType<typeof createFocusableItemId> = yield call(createFocusableItemId, formInstanceId, MenuFocusableItemType.openedItem, section);\r\n yield call(focusIfNotFocusedSaga, newFocusedId);\r\n } else {\r\n yield call(setFocusToActiveSectionSaga);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje aktivaci submenu klávesou pravé šipky.\r\n * Nelze použít přímé volání otevření submenu, protože výchozí chování může být změněno v modulu custom akcí. Proto musí být použita akce obecné aktivace.\r\n * @param action Akce stisku klávesy.\r\n * @param focusedNavigationNode Navigační uzel zaměřený v době stisku klávesy.\r\n */\r\nexport const submenuRightArrowActivationSaga: SagaWithReturnType<[IKeyPressedAction, NavigationNode]> = function* submenuRightArrowActivationSaga(action, focusedNavigationNode) {\r\n const { event } = action.payload;\r\n const { itemId, type, section } = focusedNavigationNode.self;\r\n if (type === MenuFocusableItemType.folderItem && section === MenuNavigationSectionType.forms && event.key === Key.ArrowRight) {\r\n yield put(createMenuItemActivatedAction(itemId, MenuItemActivatedType.formFolder, MenuNavigationSectionType.forms, undefined, event));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje automatické zavírání submenu při navigaci klávesnicí v menu formulářů.\r\n * Reaguje na klávesu escape a levou šipku.\r\n * @param action Akce stisku klávesy\r\n * @param actionSourceNavigationNode Navigační uzel položky, na které se stiskla klávesa.\r\n */\r\nexport const submenuAutoCloseSaga: SagaWithReturnType<[IKeyPressedAction, NavigationNode]> = function* submenuAutoCloseSaga(action, actionSourceNavigationNode) {\r\n if (actionSourceNavigationNode.self.section !== MenuNavigationSectionType.forms) {\r\n return;\r\n }\r\n const { key } = action.payload.event;\r\n if (key !== Key.Escape && key !== Key.ArrowLeft) {\r\n return;\r\n }\r\n const targetFocusableId = key === Key.Escape ? actionSourceNavigationNode.escId : actionSourceNavigationNode.leftId;\r\n if (!targetFocusableId) {\r\n return;\r\n }\r\n const targetNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, targetFocusableId);\r\n if (!targetNode || targetNode.self.type !== MenuFocusableItemType.folderItem || targetNode.self.section === MenuNavigationSectionType.panelForms) {\r\n return;\r\n }\r\n yield put(createToggleSubmenuAction(targetNode.self.itemId as number));\r\n};\r\n\r\n/**\r\n * Obsluhuje zavírání menu při navigaci klávesnicí ve float režimu menu.\r\n * @param action\r\n * @param nextFocusedItemId\r\n */\r\nexport const menuAutoCloseSaga: SagaWithReturnType<[IKeyPressedAction, FocusableItemId]> = function* menuAutoCloseSaga(action, nextFocusedItemId) {\r\n const menuIsFloating: ReturnType<typeof isMenuFloated> = yield select(isMenuFloated);\r\n const { key } = action.payload.event;\r\n if (menuIsFloating && (key === Key.Escape || key === Key.ArrowLeft)) {\r\n const newFocusedNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, nextFocusedItemId);\r\n if (newFocusedNode?.self.type === MenuFocusableItemType.panelItem) {\r\n yield put(createSetVisualAutomatStateAction(\"000\"));\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje aktualizaci zaměření při změně aktivní sekce. Nastaví zaměření na první položku aktivní sekce. Pokud sekce nemá žádné položky, nastaví zaměření na\r\n * položku sekce jako takové.\r\n *\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n */\r\nexport const updateSelectedSectionNavigationSaga: SagaWithReturnType<[string]> = function* updateSelectedSectionNavigationSaga(menuPanelItemId) {\r\n const sectionNode: ReturnType<typeof getSectionNavigationNode> = yield select(getSectionNavigationNode, menuPanelItemId);\r\n if (!sectionNode) {\r\n yield call(logger.error, \"Cannot find keyboard navigation node for section with id: %s\", menuPanelItemId);\r\n return;\r\n }\r\n\r\n let newFocusedItemId: FocusableItemId;\r\n const menuIsVisible = yield select(isMenuVisible);\r\n const isNotificationGroup = sectionNode.self.section === MenuNavigationSectionType.notificationGroups;\r\n if (!menuIsVisible) { // pokud bylo menu po aktivaci sekce skryto, zaměřujeme vždy položku sekce\r\n newFocusedItemId = sectionNode.self.id;\r\n } else if (isNotificationGroup) {\r\n /* Sekce notifikací nesmějí používat pravého souseda. */\r\n newFocusedItemId = sectionNode.self.id;\r\n } else {\r\n newFocusedItemId = sectionNode.rightId || sectionNode.self.id;\r\n }\r\n\r\n yield put(createSetFocusedItemAction(newFocusedItemId));\r\n};\r\n\r\n/**\r\n * Čas v ms pro debounce při generování uzlů. Debounce je nutný z důvodu udržení konzistence. Sága generující uzly může být spuštěna více akcemi, jenže není atomická.\r\n * Sága tak může běžet vícekrát najednou a jejich efekty se mohou prolínat, což vede k nekonzistenci výsledného stavu. Debounce zabrání souběžnému spuštění v daném\r\n * intervalu a navíc funguje jako optimalizace, aby generování neprobíhalo několikrát za sebou.\r\n *\r\n * Stanovená hodnota je experimentální.\r\n */\r\nconst NODE_GENERATION_DEBOUNCE = 20;\r\n\r\n/**\r\n * Obsluhuje tvorbu a aktualizace navigačního stromu pro navigaci pomocí klávesnice v menu.\r\n *\r\n * Implementační poznámka:\r\n * Využívá rozgenerování (https://redux-saga.js.org/docs/advanced/SequencingSagas.html) ságy {@link setupNodeGenerationSaga} pomocí operátoru yield*. To umožňuje zajistit, aby call efekty pro generování statických uzlů\r\n * probíhaly sekvenčně a zároveň aby se zpracovalo generování statických i dynamických uzlů pro danou část v jedné sáze. Sekvenční volání pro statické uzly je\r\n * nutné kvůli závislostem mezi sekcemi a propojování jejich uzlů. Např. generování uzlů uživatelského menu vyžaduje existenci uzlu User menu z menu panelu, aby\r\n * se na něj mohly napojit.\r\n *\r\n * Alternativou by bylo nespouštět generování po sekcích, ale ze sekcí vyfiltrovat zvlášť statické a dynamické části a spouštět je zvlášť.\r\n *\r\n * @param navigationConfig Konfigurace navigace.\r\n */\r\nexport const navigationNodeTreeSaga: SagaWithReturnType<[CompleteNavigationConfig]> = function* navigationNodeTreeSaga(navigationConfig) {\r\n const { menuPanel, quickAccess, notificationList, searchResults, userMenu } = navigationConfig.nodeDefinitions;\r\n\r\n yield* setupNodeGenerationSaga(menuPanel);\r\n yield* setupNodeGenerationSaga(userMenu);\r\n yield* setupNodeGenerationSaga(quickAccess);\r\n yield* setupNodeGenerationSaga(searchResults);\r\n yield* setupNodeGenerationSaga(notificationList);\r\n};\r\n\r\n/**\r\n * Nastaví generování uzlů podle zadané konfigurace sekce.\r\n * Pokud je definovaná sága pro statické uzly, spustí ji rovnou v blokujícím režimu.\r\n * Pokud je definované dynamické generování uzlů, nastaví poslouchání akcí přes debounce. Použitá hodnota pro debounce je {@link NODE_GENERATION_DEBOUNCE}.\r\n *\r\n * Sága je určená pro rozgenerování pomocí operátoru yield*, viz dokumentace {@link navigationNodeTreeSaga}.\r\n *\r\n * @param nodeDefinitionConfig Nastavení pro generování uzlů.\r\n */\r\nexport const setupNodeGenerationSaga: SagaWithReturnType<[NodeDefinitionConfig]> = function* (nodeDefinitionConfig) {\r\n const { staticSaga, dynamic } = nodeDefinitionConfig;\r\n if (staticSaga) {\r\n yield call(staticSaga);\r\n }\r\n if (dynamic) {\r\n const { actionPatterns, saga } = dynamic;\r\n invariant(actionPatterns.length > 0, \"[MainMenu] Action pattern array for dynamic navigation node generation cannot be empty.\");\r\n // Typování pro debounce nezvládá readonly variantu, proto není možné použít actionPatterns přímo\r\n yield debounce(NODE_GENERATION_DEBOUNCE, [...actionPatterns], saga);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu navigačních uzlů nezávislých na datech pro sekci Rychlý přístup (ve stavu neaktivního vyhledávání).\r\n * @see createQuickAccessNavigationNodesSaga\r\n */\r\nexport const createStaticQuickAccessNavigationNodesSaga: SagaWithReturnType = function* createStaticQuickAccessNavigationNodesSaga() {\r\n const quickAccessNode: SagaYieldReturn<typeof getNavigationNode> = yield select(getNavigationNode, QUICK_ACCESS_FOCUSABLE_ID);\r\n invariant(quickAccessNode, `[MainMenu] Cannot create navigation nodes for Quick Access, because node for menu panel item Quick Access (${QUICK_ACCESS_FOCUSABLE_ID}) does not exist.`);\r\n\r\n const newQuickAccessNode: SagaYieldReturn<typeof copyNode> = yield call(copyNode, quickAccessNode);\r\n const searchInputNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, FORM_SEARCH_INPUT_ID, MenuFocusableItemType.searchInput, MenuNavigationSectionType.static);\r\n newQuickAccessNode.rightId = searchInputNode.self.id;\r\n searchInputNode.escId = newQuickAccessNode.self.id;\r\n yield put(createSetNavigationNodesAction(MenuNavigationSectionType.static, searchInputNode, newQuickAccessNode));\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu navigačních uzlů závislých na datech pro sekci Rychlý přístup (ve stavu neaktivního vyhledávání).\r\n * @see createStaticQuickAccessNavigationNodesSaga\r\n */\r\nexport const createQuickAccessNavigationNodesSaga: SagaWithReturnType = function* createQuickAccessNavigationNodesSaga() {\r\n // 1. získání sousedních uzlů z panelu menu + kontrola\r\n const quickAccessNavigationNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, QUICK_ACCESS_FOCUSABLE_ID);\r\n if (!quickAccessNavigationNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", QUICK_ACCESS_FOCUSABLE_ID);\r\n return;\r\n }\r\n\r\n const oldSearchInputNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, FORM_SEARCH_INPUT_FOCUSABLE_ID);\r\n if (!oldSearchInputNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", FORM_SEARCH_INPUT_FOCUSABLE_ID);\r\n return;\r\n }\r\n const newSearchInputNode: SagaYieldReturn<typeof copyNode> = yield call(copyNode, oldSearchInputNode);\r\n\r\n // 2. získání položek v pořadí vykreslení\r\n const openedFormIds: ReturnType<typeof getOpenedFormsIds> = yield select(getOpenedFormsIds);\r\n const openedFormsHistoryInfo: ReturnType<typeof getOpenedFormsHistoryInfo> = yield select(getOpenedFormsHistoryInfo);\r\n const favoriteForms: ReturnType<typeof getOrderedFavoriteMenuItems> = yield select(getOrderedFavoriteMenuItems);\r\n\r\n // 3. vytvoření navigačních uzlů\r\n const state: IAppState = yield select();\r\n const quickAccessNodes: ReturnType<typeof createQuickAccessMenuNavigationNodes> = yield call(createQuickAccessMenuNavigationNodes, openedFormIds, openedFormsHistoryInfo, favoriteForms, quickAccessNavigationNode, newSearchInputNode, state);\r\n\r\n // 4. vložení uzlů do stavu\r\n const searchIsActive: ReturnType<typeof isSearchActive> = yield select(isSearchActive);\r\n // Vazby na pole vyhledávání nepřepisujeme, pokud je aktivní vyhledávání. V takovém případě si to řeší sága pro uzly vyhledávání.\r\n const additionalNodes = searchIsActive ? EMPTY_ARRAY : [newSearchInputNode];\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.quickAccess, quickAccessNodes, quickAccessNavigationNode, MenuNavigationSectionType.static, additionalNodes);\r\n};\r\n\r\n/**\r\n * Zajišťuje synchronizaci mezi generováním uzlů pro formuláře a pro notifikační skupiny a jejich následné propojení v menu panelu.\r\n */\r\nexport const createFormsAndNotificationGroupsNavigationNodesSaga: SagaWithReturnType = function* createFormsAndNotificationGroupsNavigationNodesSaga() {\r\n const rootFormNodes: SagaYieldReturn<typeof createFormsNavigationNodesSaga> = yield call(createFormsNavigationNodesSaga);\r\n const notificationGroupNodes: SagaYieldReturn<typeof createNotificationGroupsNavigationNodesSaga> = yield call(createNotificationGroupsNavigationNodesSaga);\r\n yield call(connectPanelItemFormsAndNotificationGroupsSaga, rootFormNodes, notificationGroupNodes);\r\n};\r\n\r\n/**\r\n * Propojí a nastaví uzly formulářů a notifikačních skupin v menu panelu.\r\n * @param rootFormNodes Navigační uzly formulářů pro menu panel.\r\n * @param notificationGroupNodes Navigační uzly notifikačních skupin.\r\n */\r\nexport const connectPanelItemFormsAndNotificationGroupsSaga: SagaWithReturnType<[readonly MutableNavigationNode[], readonly MutableNavigationNode[]]> = function* connectPanelItemFormsAndNotificationGroupsSaga(\r\n rootFormNodes,\r\n notificationGroupNodes,\r\n) {\r\n // 1. získání sousedních uzlů z panelu menu + kontrola\r\n const oldQuickAccessSectionNode: ReturnType<typeof getSectionNavigationNode> = yield select(getSectionNavigationNode, MenuPanelItemId.quickAccess);\r\n if (!oldQuickAccessSectionNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", MenuPanelItemId.quickAccess);\r\n return;\r\n }\r\n const oldUserSectionNode: ReturnType<typeof getSectionNavigationNode> = yield select(getSectionNavigationNode, MenuPanelItemId.user);\r\n if (!oldUserSectionNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", MenuPanelItemId.user);\r\n return;\r\n }\r\n const newQuickAccessSectionNode: ReturnType<typeof copyNode> = yield call(copyNode, oldQuickAccessSectionNode);\r\n const newUserSectionNode: ReturnType<typeof copyNode> = yield call(copyNode, oldUserSectionNode);\r\n // 2. propojení uzlů\r\n yield call(connectMultipleVertically, [newQuickAccessSectionNode, ...rootFormNodes, ...notificationGroupNodes, newUserSectionNode]);\r\n // 3. vložení do stavu\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.panelForms, rootFormNodes, newQuickAccessSectionNode, MenuNavigationSectionType.static, EMPTY_ARRAY, newQuickAccessSectionNode.self.id);\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.notificationGroups, notificationGroupNodes, newQuickAccessSectionNode, MenuNavigationSectionType.static, [newUserSectionNode], newQuickAccessSectionNode.self.id);\r\n};\r\n\r\n/**\r\n * Vytvoří a propojí navigační uzly pro menu panel.\r\n */\r\nexport const createMenuPanelNavigationNodesSaga: SagaWithReturnType = function* createMenuPanelNavigationNodesSaga() {\r\n const panelNavigationNodes: SagaYieldReturn<typeof createMultipleNavigationNodes> = yield call(createMultipleNavigationNodes, [\r\n MenuPanelItemId.logo,\r\n MenuPanelItemId.quickAccess,\r\n MenuPanelItemId.user,\r\n MenuPanelItemId.expandButton,\r\n ], MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n yield call(connectMultipleVerticallyCyclic, panelNavigationNodes);\r\n yield put(createSetNavigationNodesAction(MenuNavigationSectionType.static, ...panelNavigationNodes));\r\n};\r\n\r\n/**\r\n * Vytvoří a propojí navigační uzly pro menu uživatele. Prerekvizitou je existence uzlu menu uživatele v menu panelu.\r\n */\r\nexport const createUserMenuNavigationNodesSaga: SagaWithReturnType = function* createUserMenuNavigationNodesSaga() {\r\n const userPanelItemNode: SagaYieldReturn<typeof getNavigationNode> = yield select(getNavigationNode, USER_MENU_FOCUSABLE_ID);\r\n invariant(userPanelItemNode, `[MainMenu] Cannot create navigation nodes for user menu, because node for menu panel item user menu (${USER_MENU_FOCUSABLE_ID}) does not exist.`);\r\n const newUserPanelItemNode: SagaYieldReturn<typeof copyNode> = yield call(copyNode, userPanelItemNode);\r\n\r\n const settingsItemNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, USER_MENU_SETTINGS_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n const themeItemNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, USER_MENU_TOGGLE_THEME_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n const logoutItemNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, USER_MENU_LOGOUT_ITEM_ID, MenuFocusableItemType.userMenuItem, MenuNavigationSectionType.static);\r\n const userMenuNodes = [settingsItemNode, themeItemNode, logoutItemNode];\r\n yield call(connectMultipleVerticallyCyclic, userMenuNodes);\r\n yield call(connectMultipleToLeftNode, userMenuNodes, newUserPanelItemNode);\r\n yield call(connectMultipleToEsc, userMenuNodes, newUserPanelItemNode);\r\n newUserPanelItemNode.rightId = settingsItemNode.self.id;\r\n yield put(createSetNavigationNodesAction(MenuNavigationSectionType.static, ...userMenuNodes, newUserPanelItemNode));\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu a aktualizaci navigačních uzlů pro výsledky vyhledávání v sekci Rychlý přístup.\r\n */\r\nexport const createSearchResultsNavigationNodesSaga: SagaWithReturnType = function* createSearchResultsNavigationNodesSaga() {\r\n // 1. získání kořenového uzlu pro danou sekci navigace + kontrola\r\n const quickAccessSectionNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, QUICK_ACCESS_FOCUSABLE_ID);\r\n if (!quickAccessSectionNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", MenuPanelItemId.quickAccess);\r\n return;\r\n }\r\n\r\n const oldSearchInputNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, FORM_SEARCH_INPUT_FOCUSABLE_ID);\r\n if (!oldSearchInputNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", FORM_SEARCH_INPUT_FOCUSABLE_ID);\r\n return;\r\n }\r\n const newSearchInputNode: ReturnType<typeof copyNode> = yield call(copyNode, oldSearchInputNode);\r\n // 1.b kontrola aktivnosti vyhledávání\r\n const isSearchActive: ReturnType<typeof isSearchActiveSelector> = yield select(isSearchActiveSelector);\r\n if (!isSearchActive) {\r\n const firstQuickAccessFocusableItemId: ReturnType<typeof getFirstQuickAccessFocusableItemId> = yield select(getFirstQuickAccessFocusableItemId);\r\n const lastQuickAccessFocusableItemId: ReturnType<typeof getLastQuickAccessFocusableItemId> = yield select(getLastQuickAccessFocusableItemId);\r\n newSearchInputNode.upId = lastQuickAccessFocusableItemId;\r\n newSearchInputNode.downId = firstQuickAccessFocusableItemId;\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.searchResults, EMPTY_ARRAY, newSearchInputNode, MenuNavigationSectionType.static);\r\n return;\r\n }\r\n // 2. Získání stavu vyhledávání a položek v pořadí vykreslení.\r\n const searchResults: ReturnType<typeof getSearchResults> = yield select(getSearchResults);\r\n // 3. vytvoření a propojení navigačních uzlů, napojení na kořenový uzel\r\n const state: IAppState = yield select();\r\n const searchResultNodes: ReturnType<typeof createSearchResultNavigationNodes> = yield call(createSearchResultNavigationNodes, searchResults, quickAccessSectionNode, newSearchInputNode, state);\r\n // 4. vyčištění stavu a vložení nových uzlů do stavu, kontrola validity zaměřené položky po aktualizaci\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.searchResults, searchResultNodes, quickAccessSectionNode, MenuNavigationSectionType.static, [newSearchInputNode]);\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu a aktualizaci navigačních uzlů pro menu formulářů.\r\n */\r\nexport const createFormsNavigationNodesSaga: SagaWithReturnType<[], readonly MutableNavigationNode[]> = function* createFormsNavigationNodesSaga() {\r\n // 1. získání položek v pořadí vykreslení\r\n const rootFormItemIds: ReturnType<typeof getAllowedRootFormItemIds> = yield select(getAllowedRootFormItemIds);\r\n // 2. pokud nejsou položky pro navigaci, vyčistit stav, kontrola validity zaměřené položky po aktualizaci\r\n const focusedNavigationNode: ReturnType<typeof getFocusedNavigationNode> = yield select(getFocusedNavigationNode);\r\n if (!rootFormItemIds || rootFormItemIds.length === 0) {\r\n yield put(createClearNavigationSectionAction(MenuNavigationSectionType.forms));\r\n yield call(checkValidityOfFocusedItemAfterFormNodesUpdateSaga, focusedNavigationNode);\r\n return EMPTY_ARRAY;\r\n }\r\n // 3. vytvoření a propojení navigačních uzlů, napojení na kořenový uzel\r\n const rootFormPanelItemIds = rootFormItemIds.map((formItemId) => createFormPanelItemId(formItemId));\r\n const rootFormNodes: ReturnType<typeof createMultipleNavigationNodes> = yield call(createMultipleNavigationNodes, rootFormPanelItemIds, MenuFocusableItemType.panelItem, MenuNavigationSectionType.panelForms);\r\n const state: IAppState = yield select();\r\n const formNodes: ReturnType<typeof createFormMenuNavigationNodes> = yield call(createFormMenuNavigationNodes, rootFormNodes, state);\r\n // 4. vyčištění stavu a vložení nových uzlů do stavu, kontrola validity zaměřené položky po aktualizaci\r\n yield put(createClearNavigationSectionAction(MenuNavigationSectionType.forms));\r\n yield put(createSetNavigationNodesAction(MenuNavigationSectionType.forms, ...formNodes));\r\n yield call(checkValidityOfFocusedItemAfterFormNodesUpdateSaga, focusedNavigationNode);\r\n return rootFormNodes;\r\n};\r\n\r\n/**\r\n * Provádí kontrolu zaměřeného prvku po aktualizaci navigačních uzlů formulářů mimo menu panel. Pokud byl původně zaměřený formulář, který po aktualizaci\r\n * již neexistuje, nastaví zaměření na položku aktivní sekce.\r\n * @param focusedNode\r\n */\r\nexport const checkValidityOfFocusedItemAfterFormNodesUpdateSaga: SagaWithReturnType<[NavigationNode | undefined]> = function* checkValidityOfFocusedItemAfterFormNodesUpdateSaga(\r\n focusedNode,\r\n) {\r\n if (focusedNode?.self.section === MenuNavigationSectionType.forms) {\r\n const focusedNodeAfterUpdate = yield select(getFocusedNavigationNode);\r\n if (!focusedNodeAfterUpdate) {\r\n yield call(setFocusToActiveSectionSaga);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu navigačních uzlů pro notifikační skupiny.\r\n */\r\nexport const createNotificationGroupsNavigationNodesSaga: SagaWithReturnType<[], readonly MutableNavigationNode[]> = function* createNotificationGroupsNavigationNodesSaga() {\r\n // 2. získání položek v pořadí vykreslení\r\n const notificationGroupIds: ReturnType<typeof getNotificationGroupIds> = yield select(getNotificationGroupIds);\r\n // 4. vytvoření a propojení navigačních uzlů, napojení na sousední uzly\r\n const notificationGroupPanelItemIds = notificationGroupIds.map((notificationGroupId) => createNotificationGroupPanelItemId(notificationGroupId));\r\n const multipleNavigationNodes: SagaYieldReturn<typeof createMultipleNavigationNodes> = yield call(createMultipleNavigationNodes, notificationGroupPanelItemIds, MenuFocusableItemType.panelItem, MenuNavigationSectionType.notificationGroups);\r\n return multipleNavigationNodes;\r\n};\r\n\r\n/**\r\n * Obsluhuje tvorbu navigačních uzlů pro položky notifikací.\r\n */\r\nexport const createNotificationsNavigationNodesSaga: SagaWithReturnType = function* createNotificationsNavigationNodesSaga() {\r\n // 1. získání kořenového uzlu pro danou sekci navigace + kontrola\r\n const activeSectionId: ReturnType<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n if (!activeSectionId) {\r\n return;\r\n }\r\n const isNotificationGroupActive: ReturnType<typeof isNotificationGroupId> = yield select(isNotificationGroupPanelItemId, activeSectionId);\r\n if (!isNotificationGroupActive) {// pokud uživatel přepnul na jinou sekci, než se dokončilo načtení notifikací\r\n yield call(logger.warn, \"Cannot create navigation nodes for notifications when notification group is not active.\");\r\n return;\r\n }\r\n const oldNotificationGroupNode: ReturnType<typeof getSectionNavigationNode> = yield select(getSectionNavigationNode, activeSectionId);\r\n if (!oldNotificationGroupNode) {\r\n yield call(logger.error, \"Cannot find navigation node for id: %s\", activeSectionId);\r\n return;\r\n }\r\n const newNotificationGroupNode: ReturnType<typeof copyNode> = yield call(copyNode, oldNotificationGroupNode);\r\n // 2. získání položek v pořadí vykreslení\r\n const notificationItemIds: ReturnType<typeof getNotificationItemIds> = yield select(getNotificationItemIds);\r\n // 3. pokud nejsou položky pro navigaci, vyčistit stav a upravit kořenový uzel, kontrola validity zaměřené položky po aktualizaci\r\n if (notificationItemIds.length === 0) {\r\n newNotificationGroupNode.rightId = undefined;\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.notifications, EMPTY_ARRAY, newNotificationGroupNode, MenuNavigationSectionType.notificationGroups);\r\n return;\r\n }\r\n // 4. vytvoření a propojení navigačních uzlů, napojení na kořenový uzel\r\n const showAllNotificationsButtonNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, SHOW_ALL_NOTIFICATIONS_BUTTON_ID, MenuFocusableItemType.showAllNotificationsButton, MenuNavigationSectionType.static);\r\n const setGroupNotificationsAsReadButtonNode: SagaYieldReturn<typeof createNavigationNode> = yield call(createNavigationNode, SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_ID, MenuFocusableItemType.setGroupNotificationsAsReadButton, MenuNavigationSectionType.static);\r\n const notificationNodes: ReturnType<typeof createNotificationMenuNavigationNodes> = yield call(createNotificationMenuNavigationNodes, notificationItemIds, newNotificationGroupNode);\r\n yield call(connectVertically, setGroupNotificationsAsReadButtonNode, notificationNodes[0]);\r\n yield call(connectVertically, showAllNotificationsButtonNode, setGroupNotificationsAsReadButtonNode);\r\n yield call(connectVertically, notificationNodes[notificationNodes.length - 1], showAllNotificationsButtonNode);\r\n // 5. vyčištění stavu a vložení nových uzlů do stavu, kontrola validity zaměřené položky po aktualizaci\r\n yield call(setNavigationNodesForSectionSaga, MenuNavigationSectionType.notifications, notificationNodes, newNotificationGroupNode, MenuNavigationSectionType.notificationGroups, [showAllNotificationsButtonNode, setGroupNotificationsAsReadButtonNode]);\r\n // 6. pokud je zaměřená sekce skupiny notifikací, přepne zaměření na její první položku\r\n const focusedItemId: ReturnType<typeof getFocusedItemId> = yield select(getFocusedItemId);\r\n if (focusedItemId === newNotificationGroupNode.self.id && newNotificationGroupNode.rightId) {\r\n yield put(createSetFocusedItemAction(newNotificationGroupNode.rightId));\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví zadané navigační uzly do stavu. Před nastavením smaže původní uzly.\r\n * Provede kontrolu aktuálně zaměřeného prvku. Pokud byl zaměřený prvek při aktualizaci\r\n * smazán, nastaví zaměření buď na pravého souseda rodičovského uzlu, nebo pokud neexistuje,\r\n * tak na rodičovský uzel samotný.\r\n * @param section Sekce, do které se vkládají uzly.\r\n * @param sectionNodes Uzly, které se nastaví do zadané sekce.\r\n * @param panelItemNode Rodičovský uzel z levého menu panelu sekcí, který se aktualizuje.\r\n * @param panelItemNodeSection Sekce, do které se vkládá rodičovský uzel. Nemůže být získáno z uzlu, protože ten může obsahovat i dynamickou sekci. Dynamické sekce se\r\n * ale pro ukládání nepoužívají.\r\n * @param additionalStaticNodes Doplňující uzly, které se vloží do statické sekce.\r\n * @param fallbackFocusedItemId Id zaměřitelné položky, která se nastaví jako zaměřená, pokud při aktualizaci uzlů byla původní zaměřená položka smazána.\r\n * Pokud není tento parametr zadaný:\r\n * - a) Použije se pravý soused uzlu panelItem, pokud takový soused existuje a pokud je menu expandované.\r\n * - b) Použije se panelItem samotný, pokud takový soused neexistuje nebo je menu skryté.\r\n */\r\nexport const setNavigationNodesForSectionSaga: SagaWithReturnType<[NavigationSection, readonly NavigationNode[], NavigationNode, NavigationSection, (readonly NavigationNode[])?, FocusableItemId?]> = function* setNavigationNodesForSectionSaga(\r\n section,\r\n sectionNodes,\r\n panelItemNode,\r\n panelItemNodeSection,\r\n additionalStaticNodes = EMPTY_ARRAY,\r\n fallbackFocusedItemId?,\r\n) {\r\n const focusedItemSection: ReturnType<typeof getFocusedItemStoreSection> = yield select(getFocusedItemStoreSection);\r\n yield put(createClearNavigationSectionAction(section));\r\n yield put(createSetNavigationNodesAction(section, ...sectionNodes));\r\n yield put(createSetNavigationNodesAction(panelItemNodeSection, panelItemNode));\r\n if (additionalStaticNodes && additionalStaticNodes.length > 0) {\r\n yield put(createSetNavigationNodesAction(MenuNavigationSectionType.static, ...additionalStaticNodes));\r\n }\r\n\r\n if (focusedItemSection === section) {\r\n const focusedNode: ReturnType<typeof getFocusedNavigationNode> = yield select(getFocusedNavigationNode);\r\n if (!focusedNode) {\r\n const menuIsExpanded: ReturnType<typeof isMenuExpanded> = yield select(isMenuExpanded);\r\n const newFocusedItemId = fallbackFocusedItemId || (menuIsExpanded && panelItemNode.rightId) || panelItemNode.self.id;\r\n yield put(createSetFocusedItemAction(newFocusedItemId));\r\n }\r\n }\r\n yield put(createNavigationNodesUpdatedAction(section));\r\n};\r\n\r\n/**\r\n * Řeší synchronizaci zaměření v prohlížeči se stavem v reduxu při kliknutí myší na akční položky (u kterých je třeba to řešit).\r\n */\r\nexport const actionItemMouseFocusSaga: SagaWithReturnType = function* actionItemMouseFocusSaga() {\r\n const { openProfileActionItem, openProfileInTabActionItem, openFormActionItem, openFormInTabActionItem, openFormInstanceActionItem, openFormInstanceInTabActionItem, formFavoriteActionItem, openedInstanceFavoriteActionItem, closeActionItem } = MenuItemActivatedType;\r\n yield takeLatest(createMenuItemActivatedByMousePattern([\r\n openProfileActionItem, openProfileInTabActionItem, openFormActionItem, openFormInTabActionItem, openFormInstanceActionItem, openFormInstanceInTabActionItem, formFavoriteActionItem, openedInstanceFavoriteActionItem,\r\n ]), focusActionItemAndParentSaga);\r\n yield takeLatest(createMenuItemActivatedByMousePattern([closeActionItem]), focusActionItemParentSaga);\r\n};\r\n\r\n/**\r\n * Nastaví zaměření na rodiče akční položky.\r\n * @param action Akce aktivace položky menu.\r\n */\r\nexport const focusActionItemParentSaga: SagaWithReturnType<[IMenuItemActivatedAction]> = function* focusActionItemParentSaga(action) {\r\n const focusableItemId: SagaYieldReturn<typeof menuItemToFocusableItemSaga> = yield call(menuItemToFocusableItemSaga, action);\r\n if (!focusableItemId) {\r\n return;\r\n }\r\n const clickedNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, focusableItemId);\r\n if (clickedNode?.escId) {\r\n yield put(createSetFocusedItemAction(clickedNode.escId));\r\n }\r\n};\r\n\r\n/**\r\n * Nastaví zaměření na akční položku a následně na její rodiče.\r\n * @param action Akce aktivace položky menu.\r\n */\r\nexport const focusActionItemAndParentSaga: SagaWithReturnType<[IMenuItemActivatedAction]> = function* focusActionItemAndParentSaga(action) {\r\n const focusableItemId: SagaYieldReturn<typeof menuItemToFocusableItemSaga> = yield call(menuItemToFocusableItemSaga, action);\r\n if (!focusableItemId) {\r\n return;\r\n }\r\n yield put(createSetFocusedItemAction(focusableItemId));\r\n const actionItemFocusedAction: IActionItemFocusedAction = yield take(ACTION_ITEM_FOCUSED);\r\n if (actionItemFocusedAction.payload.focusableItemId !== focusableItemId) {\r\n return;\r\n }\r\n const clickedNode: ReturnType<typeof getNavigationNode> = yield select(getNavigationNode, focusableItemId);\r\n if (clickedNode?.escId) {\r\n yield put(createSetFocusedItemAction(clickedNode.escId));\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří id pro zaměřitelnou položku z kombinace typu a id položky. Pokud se jedná o otevřenou položku s definovaným\r\n * id instance, k vytvoření se použije toto id.\r\n * @param action\r\n * @return Vrací id zaměřitelné položky.\r\n */\r\nexport const menuItemToFocusableItemSaga: SagaWithReturnType<[IMenuItemActivatedAction], FocusableItemId | undefined> = function* menuItemToFocusableItemSaga(action) {\r\n const { itemId, itemType, section } = action.payload;\r\n const focusableItemType: ReturnType<typeof menuItemActivatedTypeToFocusableItemType> = yield call(menuItemActivatedTypeToFocusableItemType, itemType);\r\n if (!focusableItemType) {\r\n logger.warn(\"Focusable item type not found. Item type: \" + itemType);\r\n return undefined;\r\n }\r\n const focusableItemId: FocusableItemId = yield call(createFocusableItemId, itemId, focusableItemType, section);\r\n return focusableItemId;\r\n};\r\n\r\n/**\r\n * Vzory akcí, které mají vliv na data formulářů, podle kterých se generují jejich navigační uzly.\r\n */\r\nconst sharedFormActionPatterns = [createAreLocalizationKeysLoadedActionPattern(FETCHING_KEY_FORM_ITEMS_LOCALIZATION), SET_FORM_ITEM_ACTION_RESTRICTIONS, SET_PROFILE_ACTION_RESTRICTIONS];\r\n\r\n/**\r\n * Výchozí nastavení navigace.\r\n *\r\n * (Nemůže být v ./constants.ts, protože obsahuje reference na ságy)\r\n */\r\nexport const DEFAULT_NAVIGATION_CONFIG: CompleteNavigationConfig = {\r\n enableNavigation: true,\r\n optionalFeatures: {\r\n enableAutoFocusOpenedForms: true,\r\n enableMenuAutoClose: true,\r\n enableSubmenuAutoOpenAndClose: true,\r\n },\r\n nodeDefinitions: {\r\n menuPanel: {\r\n staticSaga: createMenuPanelNavigationNodesSaga,\r\n dynamic: {\r\n actionPatterns: [\r\n ...sharedFormActionPatterns,\r\n SET_MENU_ITEMS,\r\n SET_NOTIFICATION_GROUPS,\r\n ],\r\n saga: createFormsAndNotificationGroupsNavigationNodesSaga,\r\n },\r\n },\r\n quickAccess: {\r\n staticSaga: createStaticQuickAccessNavigationNodesSaga,\r\n dynamic: {\r\n actionPatterns: [\r\n ...sharedFormActionPatterns,\r\n HISTORY_FORMS_INFO_UPDATED,\r\n formOpenedAndShowInMenuActionPattern,\r\n FORM_CLOSED,\r\n FORM_ITEM_INSTANCE_CLOSE_RESTRICTIONS_UPDATED,\r\n FAVORITE_FORMS_LOADED,\r\n FAVORITE_FORM_UPDATED,\r\n ],\r\n saga: createQuickAccessNavigationNodesSaga,\r\n },\r\n },\r\n searchResults: {\r\n dynamic: {\r\n actionPatterns: [\r\n SET_SEARCH_RESULTS,\r\n ],\r\n saga: createSearchResultsNavigationNodesSaga,\r\n },\r\n },\r\n notificationList: {\r\n dynamic: {\r\n actionPatterns: [\r\n RESET_NOTIFICATION_ITEMS,\r\n CONCAT_NOTIFICATION_ITEMS,\r\n ],\r\n saga: createNotificationsNavigationNodesSaga,\r\n },\r\n },\r\n userMenu: {\r\n staticSaga: createUserMenuNavigationNodesSaga,\r\n },\r\n },\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IMenuNavigationState } from \"./types\";\r\n\r\nexport {\r\n createActionItemFocusedAction,\r\n createClearNavigationSectionAction,\r\n createFocusDefaultItemAction,\r\n createKeyPressedAction,\r\n createMenuFocusLostAction,\r\n createSetFocusedItemAction,\r\n createSetNavigationNodesAction,\r\n} from \"./actions\";\r\nexport {\r\n FORM_SEARCH_INPUT_FOCUSABLE_ID,\r\n LOGO_FOCUSABLE_ID,\r\n LOGOUT_BUTTON_FOCUSABLE_ID,\r\n MENU_EXPAND_BUTTON_FOCUSABLE_ID,\r\n QUICK_ACCESS_FOCUSABLE_ID,\r\n SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_FOCUSABLE_ID,\r\n SETTINGS_BUTTON_FOCUSABLE_ID,\r\n SHOW_ALL_NOTIFICATIONS_BUTTON_FOCUSABLE_ID,\r\n TOGGLE_THEME_BUTTON_FOCUSABLE_ID,\r\n USER_MENU_FOCUSABLE_ID,\r\n} from \"./menuNavigationConstants\";\r\nexport { connectChildrenAndParent } from \"./menuNavigationUtils\";\r\nexport { focusIfNotFocusedSaga, setNavigationNodesForSectionSaga, updateSelectedSectionNavigationSaga } from \"./saga\";\r\nexport {\r\n getFocusedFormItemIndex,\r\n getFocusedNotificationIndex,\r\n getNavigationNode,\r\n getSelectAllTextInSearchInput,\r\n isActionItemFocused,\r\n isFocused,\r\n isFormItemFocused,\r\n isItemFocused,\r\n} from \"./selectors\";\r\nexport {\r\n FocusableItem,\r\n FocusableItemId,\r\n FocusableItemType,\r\n MenuFocusableItemType,\r\n MenuNavigationSectionType,\r\n MutableNavigationNode,\r\n NavigationNode,\r\n NavigationSection,\r\n} from \"./types\";\r\nexport {\r\n connectHorizontally,\r\n connectMultipleHorizontally,\r\n connectMultipleToEsc,\r\n connectMultipleToLeftNode,\r\n connectMultipleVertically,\r\n connectMultipleVerticallyCyclic,\r\n connectVertically,\r\n copyNode,\r\n createFocusableItemId,\r\n createMultipleNavigationNodes,\r\n createNavigationNode,\r\n getFocusableTypeByOpenMethod,\r\n searchGroupToNavigationSection,\r\n} from \"./utils\";\r\n\r\nexport const navigationModule: ApplicationStatefulModule<typeof NAME, Reducer<IMenuNavigationState>> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { AllowedMenuItemCodes, IMenuData } from \"@multiweb/types/contracts\";\r\nimport { SerializableKeyEvent, SerializableMouseEvent } from \"@multiweb/types/react\";\r\nimport {\r\n ADD_PROFILE_TO_RELATIONSHIPS,\r\n CLEAR_LAST_SUBMENU,\r\n CLOSE_SUBMENUS,\r\n CONCAT_NOTIFICATION_ITEMS,\r\n CONCAT_PANEL_ITEMS,\r\n INCREASE_NOTIFICATIONS_PAGE_COUNT,\r\n LOAD_NEXT_NOTIFICATION_ITEMS_PAGE,\r\n MENU_ITEM_ACTIVATED,\r\n MENU_ITEM_DEFAULT_ACTION_ALLOWED,\r\n RELOAD_MENU,\r\n REMOVE_PROFILE_FORM_RELATIONSHIPS,\r\n REMOVE_PROFILE_FROM_FORMS,\r\n RESET_NOTIFICATION_ITEMS,\r\n RESET_NOTIFICATIONS_PAGE_COUNT,\r\n SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ,\r\n SET_ACTIVE_SECTION,\r\n SET_ACTIVE_SUBMENU,\r\n SET_ALLOWED_MENU_ITEM_CODES,\r\n SET_FORM_ITEM_ACTION_RESTRICTIONS,\r\n SET_MENU_FLOAT_TRANSITION_ACTIVE,\r\n SET_MENU_ITEMS,\r\n SET_MENU_PANEL_CAPTIONS_VISIBILITY,\r\n SET_MENU_VISIBILITY,\r\n SET_NOTIFICATION_GROUPS,\r\n SET_NOTIFICATION_GROUPS_PANEL_ITEMS,\r\n SET_PROFILE_ACTION_RESTRICTIONS,\r\n SET_VISUAL_AUTOMAT_STATE,\r\n SHOW_GROUP_NOTIFICATIONS,\r\n TOGGLE_SUBMENU,\r\n VISUAL_AUTOMAT_PROCESSED,\r\n} from \"./constants\";\r\nimport { NavigationSection } from \"./navigation\";\r\nimport {\r\n FlatNotificationGroups,\r\n IAddProfileToRelationshipsAction,\r\n IClearLastSubmenuAction,\r\n ICloseSubmenusAction,\r\n IConcatNotificationItemsAction,\r\n IConcatPanelItemsAction,\r\n IIncreaseNotificationsPageCountAction,\r\n ILoadNextNotificationItemsPageAction,\r\n IMenuItemActivatedAction,\r\n IMenuItemDefaultActionAllowedAction,\r\n IReloadMenuAction,\r\n IRemoveProfileFormRelationshipsAction,\r\n IRemoveProfileFromFormsAction,\r\n IResetNotificationItemsAction,\r\n IResetNotificationsPageCountAction,\r\n ISetActiveGroupNotificationsAsReadAction,\r\n ISetActiveSectionAction,\r\n ISetActiveSubmenuAction,\r\n ISetAllowedMenuItemCodesAction,\r\n ISetFormItemActionRestrictionsAction,\r\n ISetMenuFloatTransitionActive,\r\n ISetMenuItemsAction,\r\n ISetMenuPanelCaptionsVisibilityAction,\r\n ISetMenuVisibilityAction,\r\n ISetNotificationGroupsAction,\r\n ISetNotificationGroupsPanelItemsAction,\r\n ISetProfileActionRestrictionsAction,\r\n ISetVisualAutomatStateAction,\r\n IShowGroupNotificationsAction,\r\n IToggleSubmenuAction,\r\n IVisualAutomatProcessedAction,\r\n MenuItemActivatedType,\r\n MenuPanelItems,\r\n MenuVisibility,\r\n NotificationItems,\r\n SectionId,\r\n VisualAutomatState,\r\n} from \"./types\";\r\n\r\n/**\r\n * Nastaví položky menu do stavu.\r\n *\r\n * @param menuItems Data položek menu.\r\n */\r\nexport const createSetMenuItemsAction = (menuItems: IMenuData): ISetMenuItemsAction => ({\r\n type: SET_MENU_ITEMS,\r\n payload: {\r\n menuItems,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví viditelnost menu.\r\n * @param menuVisibility Viditelnost menu\r\n */\r\nexport const createSetMenuVisibilityAction = (menuVisibility: MenuVisibility): ISetMenuVisibilityAction => ({\r\n type: SET_MENU_VISIBILITY,\r\n payload: {\r\n menuVisibility,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví submenu se zadaným id jako nejzanořenější aktivní submenu (všichni jeho předci jsou automaticky aktivní).\r\n * @param submenuId\r\n * @param sectionId Id položky na hlavním panelu, v rámci které má být aktivováno dané podmenu.\r\n */\r\nexport const createSetActiveSubmenuAction = (submenuId: number, sectionId: SectionId): ISetActiveSubmenuAction => ({\r\n type: SET_ACTIVE_SUBMENU,\r\n payload: {\r\n submenuId,\r\n sectionId,\r\n },\r\n});\r\n\r\n/**\r\n * Zavře všechna aktivní submenu.\r\n */\r\nexport const createCloseSubmenusAction = (): ICloseSubmenusAction => ({\r\n type: CLOSE_SUBMENUS,\r\n});\r\n\r\n/**\r\n * Vymaže z reduxu informaci o naposledy otevřeném podmenu v sekci `sectionId`.\r\n * @param sectionId Id položky na hlavním panelu, v rámce které má být informace o `lastSubmenuId` vymazána.\r\n */\r\nexport const createClearLastSubmenuAction = (sectionId: SectionId): IClearLastSubmenuAction => ({\r\n type: CLEAR_LAST_SUBMENU,\r\n payload: {\r\n sectionId,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví zadanou sekci v levém panelu menu jako aktivní.\r\n * @param activeSectionId Id sekce, která se stane aktivní.\r\n */\r\nexport const createSetActiveSectionAction = (activeSectionId: SectionId): ISetActiveSectionAction => ({\r\n type: SET_ACTIVE_SECTION,\r\n payload: {\r\n activeSectionId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce reprezentující interakci uživatele se submenu.\r\n * @param submenuId\r\n */\r\nexport const createToggleSubmenuAction = (submenuId: number): IToggleSubmenuAction => ({\r\n type: TOGGLE_SUBMENU,\r\n payload: {\r\n submenuId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro aktualizaci aliasů povolených kořenových uzlů hlavního navigačního menu.\r\n *\r\n * @param allowedMenuItemCodes Aliasy povolených kořenových uzlů.\r\n */\r\nexport const createSetAllowedMenuItemCodesAction = (allowedMenuItemCodes: AllowedMenuItemCodes): ISetAllowedMenuItemCodesAction => ({\r\n type: SET_ALLOWED_MENU_ITEM_CODES,\r\n payload: {\r\n allowedMenuItemCodes,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro rozšíření stavu notifikačních položek o další položky.\r\n * @param notificationItems Notifikační položky\r\n */\r\nexport const createConcatNotificationItemsAction = (notificationItems: NotificationItems): IConcatNotificationItemsAction => ({\r\n type: CONCAT_NOTIFICATION_ITEMS,\r\n payload: {\r\n notificationItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro vyprázdnění stavu notifikačních položek.\r\n */\r\nexport const createResetNotificationItemsAction = (): IResetNotificationItemsAction => ({\r\n type: RESET_NOTIFICATION_ITEMS,\r\n});\r\n\r\n/**\r\n * Akce pro uložení notifikačních skupin do stavu.\r\n */\r\nexport const createSetNotificationGroupsAction = (notificationGroups: FlatNotificationGroups): ISetNotificationGroupsAction => ({\r\n type: SET_NOTIFICATION_GROUPS,\r\n payload: {\r\n notificationGroups,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro požadavek na načtení další stránky notifikačních položek.\r\n */\r\nexport const createLoadNextNotificationItemsPageAction = (): ILoadNextNotificationItemsPageAction => ({\r\n type: LOAD_NEXT_NOTIFICATION_ITEMS_PAGE,\r\n});\r\n\r\n/**\r\n * Akce pro zvýšení počtu načtených stránek notifikačních položek.\r\n */\r\nexport const createIncreaseNotificationsPageCountAction = (): IIncreaseNotificationsPageCountAction => ({\r\n type: INCREASE_NOTIFICATIONS_PAGE_COUNT,\r\n});\r\n\r\n/**\r\n * Akce pro resetování počtu načtených stránek notifikačních položek.\r\n */\r\nexport const createResetNotificationsPageCountAction = (): IResetNotificationsPageCountAction => ({\r\n type: RESET_NOTIFICATIONS_PAGE_COUNT,\r\n});\r\n\r\n/**\r\n * Akce pro zobrazení formuláře s přehledem všech notifikací aktivní notifikační skupiny.\r\n */\r\nexport const createShowGroupNotificationsAction = (): IShowGroupNotificationsAction => ({\r\n type: SHOW_GROUP_NOTIFICATIONS,\r\n});\r\n\r\n/**\r\n * Akce pro označení všech notifikací aktivní notifikační skupiny jako přečtené.\r\n */\r\nexport const createSetActiveGroupNotificationsAsReadedAction = (): ISetActiveGroupNotificationsAsReadAction => ({\r\n type: SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ,\r\n});\r\n\r\n/**\r\n * Akce pro nastavení omezení pro zobrazení akčních položek, které otevírají novou instanci formulářové položky.\r\n * @param formItemId Id formulářové položky, pro kterou se nastaví omezení.\r\n * @param hideWindowActions True zapne omezení akcí, false vypne.\r\n */\r\nexport const createSetFormItemActionRestrictionsAction = (formItemId: number, hideWindowActions: boolean): ISetFormItemActionRestrictionsAction => ({\r\n type: SET_FORM_ITEM_ACTION_RESTRICTIONS,\r\n payload: {\r\n formItemId,\r\n hideWindowActions,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení omezení pro zobrazení akčních položek, které otevírají novou instanci profilové položky.\r\n * @param profileId Id profilové položky, pro kterou se nastaví omezení.\r\n * @param hideWindowActions True zapne omezení akcí, false vypne.\r\n */\r\nexport const createSetProfileActionRestrictionsAction = (profileId: number, hideWindowActions: boolean): ISetProfileActionRestrictionsAction => ({\r\n type: SET_PROFILE_ACTION_RESTRICTIONS,\r\n payload: {\r\n profileId,\r\n hideWindowActions,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro rozšíření stavu položek panelu menu\r\n * @param panelItems\r\n */\r\nexport const createConcatPanelItemsAction = (panelItems: MenuPanelItems): IConcatPanelItemsAction => ({\r\n type: CONCAT_PANEL_ITEMS,\r\n payload: {\r\n panelItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nahrazení položek notifikačních skupin pro panel menu. Původní položky notifikačních skupin jsou zahozeny.\r\n * Položky jiných typů než {@link MenuPanelItemType.notificationGroup} nejsou ovlivněny. Nové položky se řadí na konec.\r\n * Pokud ve stavu nebyly žádné notifikační skupiny, chová se stejně jako {@link createConcatPanelItemsAction}.\r\n * @param notificationGroupsPanelItems Položky nových notifikačních skupin.\r\n */\r\nexport const createSetNotificationGroupsPanelItemsAction = (notificationGroupsPanelItems: MenuPanelItems): ISetNotificationGroupsPanelItemsAction => ({\r\n type: SET_NOTIFICATION_GROUPS_PANEL_ITEMS,\r\n payload: {\r\n notificationGroupsPanelItems,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro nastavení příznaku pro zobrazení popisků v menu panelu.\r\n * @param visible Příznak, který se má nastavit.\r\n */\r\nexport const createSetMenuPanelCaptionsVisibilityAction = (visible: boolean): ISetMenuPanelCaptionsVisibilityAction => ({\r\n type: SET_MENU_PANEL_CAPTIONS_VISIBILITY,\r\n payload: {\r\n visible,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující aktivaci položky menu.\r\n * @param itemId Identifikátor položky unikátní v rámci svého typu.\r\n * @param itemType Typ položky.\r\n * @param section Sekce, ve které je aktivovaná položka vykreslená.\r\n * @param mouseEvent Událost kliknutí myši, pokud byla aktivace vyvolána myší.\r\n * @param keyEvent Událost stisku klávesy, pokud byla událost vyvolána klávesnicí.\r\n */\r\nexport const createMenuItemActivatedAction = (itemId: string | number, itemType: MenuItemActivatedType, section: NavigationSection, mouseEvent?: SerializableMouseEvent, keyEvent?: SerializableKeyEvent, preventFormDefault?: boolean, profileId?: number): IMenuItemActivatedAction => ({\r\n type: MENU_ITEM_ACTIVATED,\r\n payload: {\r\n itemId,\r\n itemType,\r\n profileId,\r\n section,\r\n mouseEvent,\r\n keyEvent,\r\n preventFormDefault,\r\n },\r\n});\r\n\r\n/**\r\n * Akce indikující povolení výchozího chování po aktivaci položky menu. Akce je nezbytná kvůli možnosti potlačit výchozí chování.\r\n * @param menuItemActivatedAction Akce aktivace položky menu.\r\n */\r\nexport const createMenuItemDefaultActionAllowedAction = (menuItemActivatedAction: IMenuItemActivatedAction): IMenuItemDefaultActionAllowedAction => ({\r\n type: MENU_ITEM_DEFAULT_ACTION_ALLOWED,\r\n payload: menuItemActivatedAction.payload,\r\n});\r\n\r\n/**\r\n * Akce indikující dokončení zpracování vizuálního automatu pro viditelnost menu.\r\n */\r\nexport const createVisualAutomatProcessedAction = (): IVisualAutomatProcessedAction => ({\r\n type: VISUAL_AUTOMAT_PROCESSED,\r\n});\r\n\r\n/**\r\n * Nastaví požadovaný stav ve vizuálním automatu.\r\n * @param state\r\n */\r\nexport const createSetVisualAutomatStateAction = (state: VisualAutomatState): ISetVisualAutomatStateAction => ({\r\n type: SET_VISUAL_AUTOMAT_STATE,\r\n payload: {\r\n state,\r\n },\r\n});\r\n\r\n/**\r\n * Akce nastavující příznak, zda je aktivní float přechod menu\r\n * @param menuFloatTransitionActive Příznak, zda je aktivní float přechod menu\r\n */\r\nexport const createSetMenuFloatTransitionActiveAction = (menuFloatTransitionActive: boolean): ISetMenuFloatTransitionActive => ({\r\n type: SET_MENU_FLOAT_TRANSITION_ACTIVE,\r\n payload: {\r\n menuFloatTransitionActive,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání profilu odkazovaného v položkách formulářů. Reducer neprovádí vyhledávání, ale dostane rovnou id formulářových položek,\r\n * protože toto hledání je nutné provést v sáze kvůli aktualizaci dalších souvisejících stavů.\r\n * @param profileId Id profilu, který byl smazán.\r\n * @param formItemIds Ids formulářových položek, které se na tento profil odkazují.\r\n */\r\nexport const createRemoveProfileFromFormsAction = (profileId: number, formItemIds: number[]): IRemoveProfileFromFormsAction => ({\r\n type: REMOVE_PROFILE_FROM_FORMS,\r\n payload: {\r\n profileId,\r\n formItemIds,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro odstranění položek definujících vazby mezi profily a formuláři.\r\n * @param ids Id položek k odstranění.\r\n */\r\nexport const createRemoveProfileFormRelationshipsAction = (ids: string[]): IRemoveProfileFormRelationshipsAction => ({\r\n type: REMOVE_PROFILE_FORM_RELATIONSHIPS,\r\n payload: {\r\n ids,\r\n },\r\n});\r\n\r\n/**\r\n * Přidá profil se zadaným id do stavu definujícího vazby mezi profily a položkami formulářů. Profil je přidán jako samostatná položka, není napojen\r\n * na žádnou položku formuláře.\r\n * @param profileId\r\n */\r\nexport const createAddProfileToRelationshipsAction = (profileId: number): IAddProfileToRelationshipsAction => ({\r\n type: ADD_PROFILE_TO_RELATIONSHIPS,\r\n payload: {\r\n profileId,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro reload menu. Na začátku akce se zobrazí indikátor značící procesování akce a následně se přenačte historie položek menu, položky menu, lokalizace pro statické položky menu a položky notifikací.\r\n * Po ukončení procesování indikátor zmizí.\r\n */\r\nexport const createReloadMenuAction = (): IReloadMenuAction => ({\r\n type: RELOAD_MENU,\r\n});\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type FloatMenuPanelProps = {\r\n /** Příznak, zda je zakázáno překrývání okolního obsahu */\r\n disabled?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"float-menu-panel\");\r\n\r\n/** Plovoucí panel menu pro překrývání formulářové oblasti. */\r\nexport const FloatMenuPanel: FunctionComponent<FloatMenuPanelProps> = ({\r\n children,\r\n disabled = false,\r\n}) => (\r\n <div className={classNames()}>\r\n <div className={classNames(\"content\", { disabled })}>\r\n {children}\r\n </div>\r\n </div>\r\n);\r\n","export * from \"./FloatMenuPanel\";\r\n","export type FormMenuComponentProps = {\r\n /** Identifikátory položek k zobrazení */\r\n formItemIds: ReadonlyArray<number>;\r\n /** Index zaměřené položky */\r\n focusedItemIndex: number | undefined;\r\n /** Nadpis sekce */\r\n title: string | undefined;\r\n};\r\n","export type MenuPanelComponentProps = {\r\n /** Příznak, zda se má menu panel vykreslit v širší variantě */\r\n wider?: boolean;\r\n};\r\n","import { NotificationItemId } from \"@multiweb/types/contracts\";\r\n\r\nexport type NotificationListComponentProps = {\r\n /** Identifikátory notifikačních položek. */\r\n notificationItemIds: readonly NotificationItemId[];\r\n /** Příznak, zda jsou dostupné další notifikační položky. */\r\n hasNextPage: boolean;\r\n /** Příznak, zda se aktuálně načítá stránka notifikačních položek. */\r\n isNextPageLoading: boolean;\r\n /** Funkce pro načtení další stránky notifikačních položek. */\r\n loadNextPage: () => void;\r\n /** Příznak, zda vybraná notifikační skupina neobsahuje notifikační položky. */\r\n emptyNotificationGroup: boolean;\r\n /** Nadpis sekce menu. */\r\n title: string | undefined;\r\n /** Index zaměřené položky. */\r\n focusedItemIndex: number | undefined;\r\n};\r\n","export type QuickAccessMenuComponentProps = {\r\n /** Příznak aktivního vyhledávání */\r\n isSearchActive: boolean;\r\n};\r\n","export type SubmenuListComponentProps = {\r\n /** Identifikátory otevřených podmenu */\r\n submenuIds: readonly number[];\r\n};\r\n","import { MouseEventHandler } from \"react\";\r\n\r\nexport type UserMenuComponentProps = {\r\n /** Nadpis sekce */\r\n title: string;\r\n /** Uživatelské jméno */\r\n userName?: string;\r\n /** Funkce pro otevření fromuláře po kliknutí na hlavičku menu */\r\n onMenuTitleClick: MouseEventHandler;\r\n};\r\n","import React, { createRef, FunctionComponent, KeyboardEventHandler, MouseEventHandler, useEffect } from \"react\";\r\n\r\nimport { BooleanSwitcher, BooleanSwitcherChildrenProps, Icon, IconColor } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_ONLY, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ActionItemHoverType } from \"../../types\";\r\nimport { activationKeyBlockHandler, activationMouseBlockHandler, createActivationKeyHandler, createActivationMouseHandler } from \"../../utils\";\r\n\r\nexport type ActionItemComponentProps = {\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /** Kód ikony */\r\n iconCode: IconCode;\r\n /** Příznak, zda má tlačítko vypadat jako po najetí myši */\r\n isActive?: boolean;\r\n /** Callback volaný při kliknutí. Reaguje na primární i ostatní tlačítka myši (přidává se na onClick i onAuxClick). */\r\n onClick?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při uvolnění klávesy */\r\n onKeyUp?: KeyboardEventHandler<HTMLButtonElement>;\r\n /** Popis pole zobrazený po najetí myši */\r\n title?: string;\r\n /** Typ tlačítka udává barvu po najetí myši */\r\n hoverType?: ActionItemHoverType;\r\n /** Příznak, zda je komponenta zaměřená. */\r\n isFocused: boolean;\r\n /** Vyšle akci indikující, že proběhlo zaměření položky. Viz dokumentace v menu/navigation. */\r\n actionItemFocused?: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"action-item-component\");\r\n\r\n/** Tlačítko pro hover menu jednotlivých položek v menu */\r\nexport const ActionItemComponent: FunctionComponent<ActionItemComponentProps> = ({\r\n hasSubmenuBackground = false,\r\n iconCode,\r\n isActive = false,\r\n onClick,\r\n onKeyUp,\r\n title,\r\n hoverType = ActionItemHoverType.primary,\r\n isFocused,\r\n actionItemFocused,\r\n}) => {\r\n const ref = createRef<HTMLButtonElement>();\r\n /* Vyšle akci kvůli opravě zaměření. Viz dokumentaci v menu/navigation. */\r\n useEffect(() => {\r\n if (isFocused && actionItemFocused) {\r\n actionItemFocused();\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isFocused]);\r\n useSetFocus<HTMLButtonElement>(isFocused, ref);\r\n const handleClick = createActivationMouseHandler(onClick);\r\n const handleKeyUp = createActivationKeyHandler(onKeyUp);\r\n\r\n return (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => (\r\n <div\r\n className={classNames({ \"submenu-background\": hasSubmenuBackground, \"clickable\": !!onClick })}\r\n onFocus={onMouseEnter}\r\n onBlur={onMouseLeave}\r\n onMouseMove={onMouseEnter}\r\n {...{ onMouseEnter, onMouseLeave }}\r\n >\r\n <div className={classNames(\"highlight\", { \"active\": isActive })}>\r\n <button\r\n className={classNames(\r\n \"button\",\r\n { \"type\": hoverType, \"hover\": isHovered },\r\n )}\r\n onClick={handleClick}\r\n onAuxClick={handleClick}\r\n onMouseDown={activationMouseBlockHandler}\r\n onKeyUp={handleKeyUp}\r\n onKeyDown={activationKeyBlockHandler}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n {...{ title, ref }}\r\n >\r\n <Icon\r\n iconCode={iconCode}\r\n color={(isHovered || isActive) ? IconColor.whiteFixed : IconColor.grey1}\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </BooleanSwitcher>\r\n );\r\n};\r\n","export * from \"./ActionItemComponent\";\r\n","import React, { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { BooleanSwitcher, BooleanSwitcherChildrenProps } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ActionItemBackgroundContext } from \"../../context\";\r\nimport { ActionItemComponent } from \"../ActionItemComponent\";\r\n\r\nexport type ActionMenuProps = {\r\n /** Jednotlivé prvky rozbaleného menu */\r\n children: ReactElement | ReactElement[];\r\n /** Kód rozbalující ikony */\r\n iconCode?: IconCode;\r\n /** Příznak, zda je ikona zvýrazněná - využívá se pro zvýraznění ikony při najetí myši na prvek menu */\r\n isActive?: boolean;\r\n /** Příznak, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"action-menu\");\r\n\r\n/** Komponenta slouží jako rozbalovací menu u jednotlivých položek menu. */\r\nexport const ActionMenu: FunctionComponent<ActionMenuProps> = ({\r\n children,\r\n iconCode = IconCode.uiMoreVertical,\r\n isActive = false,\r\n isActionItemFocused,\r\n}) => (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => (\r\n <div\r\n className={classNames()}\r\n onBlur={onMouseLeave}\r\n onFocus={onMouseEnter}\r\n /* Řeší situaci po odebrání položky, kdy kvůli pozici myši neproběhne onMouseEnter a menu se tak neotevře. */\r\n onMouseOver={onMouseEnter}\r\n {...{ onMouseEnter, onMouseLeave }}\r\n >\r\n <ActionItemBackgroundContext.Consumer>\r\n {(hasSubmenuBackground) => (\r\n <div className={classNames(\"content\", { \"submenu-background\": hasSubmenuBackground })}>\r\n <div className={classNames(\"highlight\", { active: isActive })}>\r\n {isHovered || isActionItemFocused ? (\r\n React.Children.map(children, (child: ReactElement) => child && React.cloneElement(child, { isActive, hasSubmenuBackground }))\r\n ) : (\r\n <ActionItemComponent\r\n isFocused={false}\r\n {...{ iconCode, isActive, hasSubmenuBackground }}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </ActionItemBackgroundContext.Consumer>\r\n </div>\r\n )}\r\n </BooleanSwitcher>\r\n);\r\n","export * from \"./ActionMenu\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isFormItemOrInstanceFavorite } from \"../../favoriteItems\";\r\nimport { LOC_KEY_ACTION_ITEM_FAVORITES_ADD, LOC_KEY_ACTION_ITEM_FAVORITES_REMOVE } from \"../../locKeys\";\r\nimport { createActionItemFocusedAction, createFocusableItemId, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { FavoriteActionItemActivatableTypes } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { ActionItemComponent, ActionItemComponentProps } from \"../ActionItemComponent\";\r\n\r\nexport type FavoriteActionItemProps = {\r\n /**\r\n * Id položky, pro kterou akční položka nastavuje oblíbenost.\r\n * Pro otevřené instance formulářů je typ string, pro formulářové položky menu a profily je typ number.\r\n */\r\n itemId: string | number;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /**\r\n * Typ aktivovatelné položky, kterou reprezentuje tato akční položka.\r\n */\r\n activatableItemType: FavoriteActionItemActivatableTypes;\r\n /** Příznak, zda má tlačítko vypadat jako po najetí myši. */\r\n isActive?: boolean;\r\n /** Id profilu */\r\n profileId?: number | undefined;\r\n};\r\n\r\ntype StateProps = {\r\n title: string | undefined;\r\n isFavorite: boolean;\r\n isFocused: boolean;\r\n};\r\n\r\ntype DispatchProps = {\r\n actionActivated: typeof createMenuItemActivatedAction;\r\n actionItemFocused: typeof createActionItemFocusedAction;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FavoriteActionItemProps, IAppState> = (state, { itemId, section, activatableItemType, profileId }) => {\r\n const isFavorite = isFormItemOrInstanceFavorite(state, { formId: itemId, type: activatableItemType, profileId: profileId });\r\n const locKey = isFavorite ? LOC_KEY_ACTION_ITEM_FAVORITES_REMOVE : LOC_KEY_ACTION_ITEM_FAVORITES_ADD;\r\n return {\r\n isFavorite,\r\n title: getSecondaryText(state, locKey),\r\n isFocused: isItemFocused(state, { itemId, type: MenuFocusableItemType.favoriteActionItem, section }),\r\n };\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, FavoriteActionItemProps> = {\r\n actionActivated: createMenuItemActivatedAction,\r\n actionItemFocused: createActionItemFocusedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, FavoriteActionItemProps, ActionItemComponentProps> = (\r\n { isFavorite, title, isFocused },\r\n { actionActivated, actionItemFocused },\r\n { itemId, activatableItemType, isActive, hasSubmenuBackground, section, profileId },\r\n) => ({\r\n title,\r\n onClick: createMenuItemMouseActivationHandler(itemId, activatableItemType, section, actionActivated, profileId),\r\n onKeyUp: createMenuItemKeyActivationHandler(itemId, activatableItemType, section, actionActivated),\r\n iconCode: isFavorite ? IconCode.uiStarFilled : IconCode.uiStar, /** První icon code je pro ikonu vyplněné hvězdy. */\r\n isActive,\r\n hasSubmenuBackground,\r\n isFocused,\r\n actionItemFocused: () => actionItemFocused(createFocusableItemId(itemId, MenuFocusableItemType.favoriteActionItem, section)),\r\n});\r\n\r\n/**\r\n * ActionItem pro přidání/odebrání formuláře do/z oblíbený.\r\n */\r\nexport const FavoriteActionItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ActionItemComponent);\r\n","export * from \"./FavoriteActionItem\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { LOC_KEY_ACTION_ITEM_OPEN_FORM } from \"../../locKeys\";\r\nimport { createActionItemFocusedAction, createFocusableItemId, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { ActionItemComponent, ActionItemComponentProps } from \"../ActionItemComponent\";\r\n\r\nexport type OpenActionItemActivatableTypes = MenuItemActivatedType.openFormActionItem\r\n | MenuItemActivatedType.openProfileActionItem\r\n | MenuItemActivatedType.openFormInstanceActionItem;\r\n\r\nexport type OpenActionItemProps = {\r\n /**\r\n * Id položky, kterou akční položka otvírá. Unikátní v rámci aktivovatelného typu. Pro otevřené instance formulářů je typ string, pro formulářové položky menu\r\n * a profily je typ number.\r\n */\r\n itemId: string | number;\r\n /**\r\n * Typ aktivovatelné položky, kterou reprezentuje tato akční položka.\r\n */\r\n activatableItemType: OpenActionItemActivatableTypes;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /** Příznak, zda má tlačítko vypadat jako po najetí myši. */\r\n isActive?: boolean;\r\n /** Pokud je zadáno, používá se toto id k ověření zaměření položky namísto itemId. */\r\n focusItemId?: string | number;\r\n};\r\n\r\ntype StateProps = {\r\n title: string | undefined;\r\n isFocused: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenActionItemProps, IAppState> = (state, { itemId, section, focusItemId = itemId }) => ({\r\n title: getSecondaryText(state, LOC_KEY_ACTION_ITEM_OPEN_FORM),\r\n isFocused: isItemFocused(state, { itemId: focusItemId, type: MenuFocusableItemType.openActionItem, section }),\r\n});\r\n\r\ntype DispatchProps = {\r\n actionActivated: typeof createMenuItemActivatedAction;\r\n actionItemFocused: typeof createActionItemFocusedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, OpenActionItemProps> = {\r\n actionActivated: createMenuItemActivatedAction,\r\n actionItemFocused: createActionItemFocusedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, OpenActionItemProps, ActionItemComponentProps> = (\r\n { title, isFocused },\r\n { actionActivated, actionItemFocused },\r\n { itemId, activatableItemType, isActive, hasSubmenuBackground, section },\r\n) => ({\r\n onClick: createMenuItemMouseActivationHandler(itemId, activatableItemType, section, actionActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(itemId, activatableItemType, section, actionActivated),\r\n iconCode: IconCode.docPlus,\r\n title,\r\n isFocused,\r\n isActive,\r\n hasSubmenuBackground,\r\n actionItemFocused: () => actionItemFocused(createFocusableItemId(itemId, MenuFocusableItemType.openActionItem, section)),\r\n});\r\n\r\nexport const OpenActionItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ActionItemComponent);\r\n","export * from \"./OpenActionItem\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { LOC_KEY_ACTION_ITEM_OPEN_FORM_IN_TAB } from \"../../locKeys\";\r\nimport { createActionItemFocusedAction, createFocusableItemId, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { ActionItemComponent, ActionItemComponentProps } from \"../ActionItemComponent\";\r\n\r\nexport type OpenInTabActionItemActivatableTypes = MenuItemActivatedType.openFormInTabActionItem\r\n | MenuItemActivatedType.openProfileInTabActionItem\r\n | MenuItemActivatedType.openFormInstanceInTabActionItem;\r\n\r\nexport type OpenInTabActionItemProps = {\r\n /**\r\n * Id položky, kterou akční položka otvírá. Unikátní v rámci aktivovatelného typu. Pro otevřené instance formulářů je typ string, pro formulářové položky menu\r\n * a profily je typ number.\r\n */\r\n itemId: string | number;\r\n /**\r\n * Typ aktivovatelné položky, kterou reprezentuje tato akční položka.\r\n */\r\n activatableItemType: OpenInTabActionItemActivatableTypes;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /** Příznak, zda má tlačítko vypadat jako po najetí myši. */\r\n isActive?: boolean;\r\n};\r\n\r\ntype StateProps = {\r\n title: string | undefined;\r\n isFocused: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenInTabActionItemProps, IAppState> = (state, { itemId, section }) => ({\r\n title: getSecondaryText(state, LOC_KEY_ACTION_ITEM_OPEN_FORM_IN_TAB),\r\n isFocused: isItemFocused(state, { itemId, type: MenuFocusableItemType.openInTabActionItem, section }),\r\n});\r\n\r\ntype DispatchProps = {\r\n actionActivated: typeof createMenuItemActivatedAction;\r\n actionItemFocused: typeof createActionItemFocusedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, OpenInTabActionItemProps> = {\r\n actionActivated: createMenuItemActivatedAction,\r\n actionItemFocused: createActionItemFocusedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, OpenInTabActionItemProps, ActionItemComponentProps> = (\r\n { title, isFocused },\r\n { actionActivated, actionItemFocused },\r\n { itemId, activatableItemType, isActive, hasSubmenuBackground, section },\r\n) => ({\r\n onClick: createMenuItemMouseActivationHandler(itemId, activatableItemType, section, actionActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(itemId, activatableItemType, section, actionActivated),\r\n iconCode: IconCode.uiOutLink,\r\n title,\r\n isFocused,\r\n isActive,\r\n hasSubmenuBackground,\r\n actionItemFocused: () => actionItemFocused(createFocusableItemId(itemId, MenuFocusableItemType.openInTabActionItem, section)),\r\n});\r\n\r\nexport const OpenInTabActionItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ActionItemComponent);\r\n","export * from \"./OpenInTabActionItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { ActionMenu } from \"../ActionMenu\";\r\nimport { FavoriteActionItem } from \"../FavoriteActionItem\";\r\nimport { OpenActionItem } from \"../OpenActionItem\";\r\nimport { OpenInTabActionItem } from \"../OpenInTabActionItem\";\r\n\r\nexport type FormItemRightPartComponentProps = {\r\n /** Viz. dokumentace v ActionMenu. */\r\n isActive?: boolean;\r\n /** Identifikátor položky formuláře. */\r\n formItemId: number;\r\n /** Povoluje zobrazení akcí otevírajících novou instanci formuláře. */\r\n windowActionsEnabled: boolean;\r\n /** Příznak umožňující povolit/zakázat zobrazení kontextové akce pro otevření. */\r\n openActionEnabled: boolean;\r\n /** Indikátor, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n};\r\n\r\n/** Komponenta slouží jako pravá část pro položky menu, které představují formulářové položky. */\r\nexport const FormItemRightPartComponent: FunctionComponent<FormItemRightPartComponentProps> = ({\r\n isActive,\r\n formItemId,\r\n windowActionsEnabled,\r\n openActionEnabled,\r\n isActionItemFocused,\r\n section,\r\n}) => {\r\n const actions = [\r\n <FavoriteActionItem key=\"favoriteAction\" itemId={formItemId} activatableItemType={MenuItemActivatedType.formFavoriteActionItem} section={section} />,\r\n ];\r\n if (windowActionsEnabled) {\r\n if (openActionEnabled) {\r\n actions.push(\r\n <OpenActionItem key=\"openAction\" itemId={formItemId} activatableItemType={MenuItemActivatedType.openFormActionItem} section={section} />,\r\n );\r\n }\r\n actions.push(\r\n <OpenInTabActionItem key=\"openInTabAction\" itemId={formItemId} activatableItemType={MenuItemActivatedType.openFormInTabActionItem} section={section} />,\r\n );\r\n }\r\n return (\r\n <ActionMenu {...{ isActive, isActionItemFocused }}>\r\n {actions}\r\n </ActionMenu>\r\n );\r\n};\r\n","export * from \"./FormItemRightPartComponent\";\r\n","/**\r\n * Určuje variantu stylů MenuItemComponent.\r\n */\r\nexport enum MenuItemComponentVariant {\r\n /** Základní zobrazení. */\r\n default = \"default\",\r\n /** Typ pro položky menu uživatele. */\r\n usermenu = \"usermenu\",\r\n /** Specifický typ pro tlačítko odhlásit. */\r\n logout = \"logout\",\r\n}\r\n","import React, { FunctionComponent, KeyboardEventHandler, MouseEventHandler, ReactNode, useContext, useRef } from \"react\";\r\n\r\nimport {\r\n AlignItems,\r\n BooleanSwitcher,\r\n BooleanSwitcherChildrenProps,\r\n Icon,\r\n IconColor,\r\n Layout,\r\n SpacingSize,\r\n} from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, createQA, TAB_INDEX_FOCUSABLE_ONLY, usePreventMiddleButtonScroll, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { FORMS_HEADER_HEIGHT, GROUP_HEADER_HEIGHT } from \"../../constants\";\r\nimport { ScrollContext } from \"../../context\";\r\nimport { activationKeyBlockHandler, activationMouseBlockHandler, createActivationKeyHandler, createActivationMouseHandler, createMenuCustomScroll } from \"../../utils\";\r\nimport { MenuItemComponentVariant } from \"./types\";\r\n\r\nexport type MenuItemComponentProps = {\r\n /** Kód ikony zobrazené na levé straně */\r\n iconCode?: IconCode;\r\n /** Příznak, zda má být komponenta vizuálně zvýrazněná (komponenta vypadá jako při najetí myši) */\r\n isActive?: boolean;\r\n /** Text zobrazovaný ve středové části */\r\n label: string | undefined;\r\n /**\r\n * Callback volaný při kliknutí, klikatelná je celá oblast komponenty kromě takové pravé části,\r\n * která má vlastní `onClick` callback.\r\n * Reaguje na primární i ostatní tlačítka myši (přidává se na onClick i onAuxClick).\r\n */\r\n onClick: MouseEventHandler;\r\n /** Funkce pro vytvoření komponenta zobrazované na pravé části položky menu. Jako parametr dostává příznak aktivnosti. */\r\n rightPartComponentCreator?: (isActive: boolean) => ReactNode;\r\n /** Příznak, zda je komponenta zaměřená. */\r\n isFocused: boolean;\r\n /** Callback volaný při uvolnění klávesy. */\r\n onKeyUp?: KeyboardEventHandler;\r\n /** Varianta, zatím použitá pro odlišení položek userMenu. */\r\n variant?: MenuItemComponentVariant;\r\n} & QAProps;\r\n\r\nconst classNames = bemClassNames(\"menu-item-component\");\r\n\r\n/**\r\n * Obecná komponenta pro zobrazení položky v menu (neslouží pro notifikace). Podporuje zobrazení ikony,\r\n * textu a konfigurovatelné pravé části (typicky použité pro kontextové hover menu).\r\n * */\r\nexport const MenuItemComponent: FunctionComponent<MenuItemComponentProps> = ({\r\n iconCode,\r\n isActive = false,\r\n label = \"\",\r\n onClick,\r\n rightPartComponentCreator,\r\n isFocused,\r\n onKeyUp,\r\n qa,\r\n variant = MenuItemComponentVariant.default,\r\n}) => {\r\n const ref = useRef<HTMLElement>(null);\r\n usePreventMiddleButtonScroll(ref);\r\n const scrollTo = useContext(ScrollContext);\r\n useSetFocus(isFocused, ref, createMenuCustomScroll(scrollTo, FORMS_HEADER_HEIGHT + GROUP_HEADER_HEIGHT));\r\n const handleClick = createActivationMouseHandler(onClick);\r\n const handleKeyUp = createActivationKeyHandler(onKeyUp);\r\n\r\n return (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => {\r\n const isActiveOrHovered = isHovered || isActive;\r\n // Nebyl použit element `button`, neboť není určen pro funkci flex kontejneru\r\n // @see https://github.com/rachelandrew/gridbugs#10-some-html-elements-cant-be-grid-containers\r\n return (\r\n <span\r\n role=\"button\"\r\n className={classNames({ active: isActiveOrHovered, variant })}\r\n onFocus={onMouseEnter}\r\n onBlur={onMouseLeave}\r\n onClick={handleClick}\r\n onAuxClick={handleClick}\r\n onMouseDown={activationMouseBlockHandler}\r\n onKeyUp={handleKeyUp}\r\n onKeyDown={activationKeyBlockHandler}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n {...{ onMouseEnter, onMouseLeave, ref }}\r\n {...createQA(qa)}\r\n >\r\n {iconCode ? (\r\n <Layout\r\n spacingSizeHorizontal={SpacingSize.m}\r\n alignItems={AlignItems.center}\r\n >\r\n <Icon\r\n color={isActiveOrHovered ? IconColor.whiteFixed : IconColor.whiteSecondaryFixed}\r\n {...{ iconCode }}\r\n />\r\n </Layout>\r\n ) : (\r\n <Layout spacingSize={SpacingSize.m} />\r\n )}\r\n <span className={classNames(\"label\", { active: isActiveOrHovered })}>\r\n {label}\r\n </span>\r\n {rightPartComponentCreator && (\r\n rightPartComponentCreator(isActiveOrHovered)\r\n )}\r\n </span>\r\n );\r\n }}\r\n </BooleanSwitcher>\r\n );\r\n};\r\n","export * from \"./MenuItemComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AlignItems, Icon, IconColor, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\nexport type SubmenuRightPartComponentProps = {\r\n /** Příznak, zda je ikona zvýrazněná - využívá se pro zvýraznění ikony při najetí myši na prvek menu */\r\n isActive?: boolean;\r\n};\r\n\r\n/** Komponenta slouží jako pravá část pro položky v menu, které představují rozbalovací submenu. */\r\nexport const SubmenuRightPartComponent: FunctionComponent<SubmenuRightPartComponentProps> = ({\r\n isActive = false,\r\n}) => (\r\n <Layout\r\n spacingSizeHorizontal={SpacingSize.xs}\r\n alignItems={AlignItems.center}\r\n >\r\n <Icon\r\n iconCode={IconCode.uiChevronRightSmall}\r\n color={isActive ? IconColor.whiteFixed : IconColor.grey1}\r\n />\r\n </Layout>\r\n);\r\n","export * from \"./SubmenuRightPartComponent\";\r\n","import React from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData, MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isActionItemFocused as isActionItemFocusedSelector, isFormItemFocused, NavigationSection } from \"../../navigation\";\r\nimport {\r\n areFormItemWindowActionsEnabled,\r\n getFormItem,\r\n getFormItemCode,\r\n getFormItemIconCode,\r\n getFormItemTitle,\r\n isMenuItemActive,\r\n} from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\nimport { FormItemRightPartComponent } from \"../FormItemRightPartComponent\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { SubmenuRightPartComponent } from \"../SubmenuRightPartComponent\";\r\n\r\nexport type MenuItemProps = {\r\n /** Id formuláře. */\r\n formItemId: number;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Příznak umožňující povolit/zakázat zobrazení kontextové akce pro otevření. Výchozí hodnota je true. */\r\n openActionEnabled?: boolean;\r\n} & QAProps;\r\n\r\ntype DispatchProps = {\r\n menuItemActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\ntype StateProps = {\r\n formItem?: IMenuItemData;\r\n formCode?: string;\r\n windowActionsEnabled: boolean;\r\n isActionItemFocused: boolean;\r\n} & Pick<MenuItemComponentProps, \"iconCode\" | \"label\" | \"isFocused\">\r\n & Required<Pick<MenuItemComponentProps, \"isActive\">>;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MenuItemProps, IAppState> = (state, { formItemId, section }) => ({\r\n formItem: getFormItem(state, formItemId),\r\n formCode: getFormItemCode(state, formItemId),\r\n iconCode: getFormItemIconCode(state, formItemId),\r\n label: getFormItemTitle(state, formItemId),\r\n windowActionsEnabled: areFormItemWindowActionsEnabled(state, formItemId),\r\n isActive: isMenuItemActive(state, formItemId),\r\n isFocused: isFormItemFocused(state, { formItemId, section }),\r\n isActionItemFocused: isActionItemFocusedSelector(state, { parentItemId: formItemId, section }),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MenuItemProps> = ({\r\n menuItemActivated: createMenuItemActivatedAction,\r\n});\r\n\r\nconst createRightPartComponent = (\r\n isActive: boolean,\r\n windowActionsEnabled: boolean,\r\n isActionItemFocused: boolean,\r\n openActionEnabled: boolean,\r\n section: NavigationSection,\r\n formItem?: IMenuItemData,\r\n) => {\r\n if (formItem) {\r\n if (formItem.type === MenuItemType.form) {\r\n return <FormItemRightPartComponent formItemId={formItem.id} {...{ isActive, windowActionsEnabled, isActionItemFocused, openActionEnabled, section }} />;\r\n } else if (formItem.type === MenuItemType.folder) {\r\n return <SubmenuRightPartComponent isActive={isActive} />;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, MenuItemProps, MenuItemComponentProps> = (\r\n { formItem, formCode, label, iconCode, windowActionsEnabled, isFocused, isActionItemFocused, isActive },\r\n { menuItemActivated },\r\n { formItemId, openActionEnabled = true, qa, section },\r\n) => {\r\n const isFolder = formItem?.type === MenuItemType.folder;\r\n const menuItemActivatedType = isFolder ? MenuItemActivatedType.formFolder : MenuItemActivatedType.form;\r\n return {\r\n label,\r\n iconCode,\r\n onClick: isFolder\r\n ? createMenuItemMouseActivationHandler(formItemId, menuItemActivatedType, section, menuItemActivated)\r\n : createOpenableInTabItemMouseActivationHandler(formItemId, menuItemActivatedType, section, menuItemActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(formItemId, menuItemActivatedType, section, menuItemActivated),\r\n rightPartComponentCreator: (isActive) => createRightPartComponent(isActive, windowActionsEnabled, isActionItemFocused, openActionEnabled, section, formItem),\r\n itemId: formItemId,\r\n qa: composeQA(composeQA(formItemId, formCode), qa),\r\n isFocused,\r\n isActive,\r\n };\r\n};\r\n\r\n/**\r\n * Získá kód ikony a přeložený název pro formulář se zadaným id. Vybere onClick akci a pravé kontextové menu, podle toho jestli se\r\n * jedná o listový formulář nebo submenu.\r\n */\r\nexport const MenuItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./MenuItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createItemIdForProfile } from \"../../utils\";\r\nimport { ActionMenu } from \"../ActionMenu\";\r\nimport { FavoriteActionItem } from \"../FavoriteActionItem\";\r\nimport { OpenActionItem } from \"../OpenActionItem\";\r\nimport { OpenInTabActionItem } from \"../OpenInTabActionItem\";\r\n\r\nexport type ProfileRightPartComponentProps = {\r\n /** Viz. dokumentace v ActionMenu. */\r\n isActive?: boolean;\r\n /** Indikátor, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n /** Id formuláře pod kterým je profil vykreslený, pokud není profil vykreslený samostatně. */\r\n parentFormItemId?: number;\r\n /** Povoluje zobrazení akcí otevírajících novou instanci formuláře s profilem. */\r\n windowActionsEnabled: boolean;\r\n /** Příznak umožňující povolit/zakázat zobrazení kontextové akce pro otevření. */\r\n openActionEnabled: boolean;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Id profilu */\r\n profileId: number;\r\n};\r\n\r\n/** Komponenta slouží jako pravá část pro položky v menu, které představují profil formuláře. */\r\nexport const ProfileRightPartComponent: FunctionComponent<ProfileRightPartComponentProps> = ({\r\n isActive,\r\n isActionItemFocused,\r\n windowActionsEnabled,\r\n openActionEnabled,\r\n section,\r\n profileId,\r\n parentFormItemId,\r\n}) => {\r\n if (!windowActionsEnabled) {\r\n return null;\r\n }\r\n\r\n const itemId = createItemIdForProfile(profileId, parentFormItemId);\r\n const actions = [];\r\n if (parentFormItemId && profileId) {\r\n actions.push(\r\n <FavoriteActionItem key=\"favoriteAction\" itemId={parentFormItemId} activatableItemType={MenuItemActivatedType.formFavoriteActionItem} section={section} profileId={profileId}/>,\r\n );\r\n }\r\n if (openActionEnabled) {\r\n actions.push(\r\n <OpenActionItem key=\"openAction\" {...{ itemId, section }} activatableItemType={MenuItemActivatedType.openProfileActionItem} />,\r\n );\r\n }\r\n actions.push(\r\n <OpenInTabActionItem key=\"openInTabAction\" {...{ itemId, section }} activatableItemType={MenuItemActivatedType.openProfileInTabActionItem} />,\r\n );\r\n return (\r\n <ActionMenu {...{ isActive, isActionItemFocused }}>\r\n {actions}\r\n </ActionMenu>\r\n );\r\n};\r\n","export * from \"./ProfileRightPartComponent\";\r\n","import React from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData } from \"@multiweb/types/contracts\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isActionItemFocused, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport {\r\n areProfileWindowActionsEnabled,\r\n getFormItemByProfileId,\r\n getProfileFormCode,\r\n getProfileTitle,\r\n} from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createItemIdForProfile, createMenuItemKeyActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { ProfileRightPartComponent } from \"../ProfileRightPartComponent\";\r\n\r\nexport type ProfileItemProps = {\r\n /** Identifikátor profilu. */\r\n profileId: number;\r\n /** Sekce, ve které je profil vykreslený. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Id formuláře pod kterým je profil vykreslený, pokud není profil vykreslený samostatně. */\r\n parentFormItemId?: number;\r\n /** Příznak umožňující povolit/zakázat zobrazení kontextové akce pro otevření. Výchozí hodnota je true. */\r\n openActionEnabled?: boolean;\r\n} & QAProps;\r\n\r\ntype StateProps = {\r\n formItem?: IMenuItemData;\r\n formCode?: string;\r\n label: string;\r\n windowActionsEnabled: boolean;\r\n isFocused: boolean;\r\n isActionItemFocused: boolean;\r\n};\r\n\r\ntype DispatchProps = {\r\n menuItemActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ProfileItemProps, IAppState> = (state, { profileId, parentFormItemId, section }) => {\r\n const itemId = createItemIdForProfile(profileId, parentFormItemId);\r\n return {\r\n formItem: getFormItemByProfileId(state, profileId),\r\n formCode: getProfileFormCode(state, profileId),\r\n label: getProfileTitle(state, profileId),\r\n windowActionsEnabled: areProfileWindowActionsEnabled(state, profileId),\r\n isFocused: isItemFocused(state, { itemId, type: MenuFocusableItemType.profile, section }),\r\n isActionItemFocused: isActionItemFocused(state, { parentItemId: itemId, section }),\r\n };\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, ProfileItemProps> = ({\r\n menuItemActivated: createMenuItemActivatedAction,\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, ProfileItemProps, MenuItemComponentProps> = (\r\n { formItem, formCode, label, windowActionsEnabled, isFocused, isActionItemFocused },\r\n { menuItemActivated },\r\n { profileId, parentFormItemId, openActionEnabled = true, qa, section },\r\n) => {\r\n const menuItemActivatedType = MenuItemActivatedType.profile;\r\n const itemId = createItemIdForProfile(profileId, parentFormItemId);\r\n return {\r\n iconCode: formItem ? formItem.icon : undefined,\r\n label,\r\n onClick: createOpenableInTabItemMouseActivationHandler(itemId, menuItemActivatedType, section, menuItemActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(itemId, menuItemActivatedType, section, menuItemActivated),\r\n rightPartComponentCreator: (isActive) => <ProfileRightPartComponent {...{ isActive, isActionItemFocused, windowActionsEnabled, openActionEnabled, section, parentFormItemId, profileId }} />,\r\n isFocused,\r\n qa: composeQA(composeQA(profileId, formCode), qa),\r\n };\r\n};\r\n\r\n/**\r\n * Získává údaje pro zobrazení položky profilu formuláře. Využívá ikonu rodičovského formuláře.\r\n */\r\nexport const ProfileItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./ProfileItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, FlexGrow, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItem } from \"../MenuItem\";\r\nimport { ProfileItem } from \"../ProfileItem\";\r\n\r\nexport type FormItemComponentProps = {\r\n /** Identifikátor formuláře */\r\n formItemId: number;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Identifikátory profilů formuláře */\r\n profileIds?: readonly number[];\r\n} & QAProps;\r\n\r\n/**\r\n * Komponenta slouží jako položka menu reprezentující formulář.\r\n * Komponenta zobrazuje i jednotlivé profily – pokud jimi formulář disponuje.\r\n */\r\nexport const FormItemComponent: FunctionComponent<FormItemComponentProps> = ({ formItemId, section, profileIds, qa }) => (\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n flexGrow={FlexGrow.one}\r\n >\r\n <MenuItem {...{ formItemId, section, qa }} />\r\n <Layout\r\n spacingSizeLeft={SpacingSize.l}\r\n flexDirection={FlexDirection.column}\r\n >\r\n {profileIds && profileIds.map((profileId) => (\r\n <ProfileItem key={profileId} parentFormItemId={formItemId} {...{ profileId, section }} qa={composeQA(formItemId, qa)} />\r\n ))}\r\n </Layout>\r\n </Layout>\r\n);\r\n","export * from \"./FormItemComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createGetProfileIdsForForm } from \"../../selectors\";\r\nimport { FormItemComponent, FormItemComponentProps } from \"../FormItemComponent\";\r\n\r\nexport type FormItemProps = {\r\n formItemId: number;\r\n} & QAProps;\r\n\r\nconst createMapStateToProps: () => MapStateToProps<Pick<FormItemComponentProps, \"profileIds\">, FormItemProps, IAppState> = () => {\r\n const getProfileIdsForForm = createGetProfileIdsForForm();\r\n return (state, { formItemId }) => ({\r\n profileIds: getProfileIdsForForm(state, formItemId),\r\n });\r\n};\r\n\r\n/**\r\n * Získá profily patřící k formuláři a zobrazí položku formuláře pomocí FormItemComponent.\r\n */\r\nexport const FormItem = connect(createMapStateToProps)(FormItemComponent);\r\n","export * from \"./FormItem\";\r\n","import OverlayScrollbars, { DirectionChangedArgs, OverflowAmountChangedArgs, OverflowChangedArgs, SizeChangedArgs, UpdatedArgs } from \"overlayscrollbars\";\r\n\r\nimport { doNothing } from \"@multiweb/reactUtils\";\r\n\r\ntype OverlayScrollbarsExtensionEventArgs = UIEvent | OverflowChangedArgs | OverflowAmountChangedArgs | DirectionChangedArgs | SizeChangedArgs | UpdatedArgs;\r\n\r\nexport const PADDING_EXTENSION_NAME = \"paddingExtension\";\r\n\r\n/**\r\n * Funkce zajišťující zobrazení/skrytí paddingu pro thumb scrollbaru\r\n */\r\nconst overlayScrollbarAdjuster = (osInstance: OverlayScrollbars, args?: OverlayScrollbarsExtensionEventArgs) => {\r\n let xScrollable: boolean;\r\n let yScrollable: boolean;\r\n\r\n if (!args) {\r\n const osInstanceState = osInstance.getState();\r\n\r\n if (!osInstanceState)\r\n return;\r\n\r\n xScrollable = osInstanceState.hasOverflow.x;\r\n yScrollable = osInstanceState.hasOverflow.y;\r\n } else {\r\n xScrollable = (args as any).xScrollable;\r\n yScrollable = (args as any).yScrollable;\r\n }\r\n\r\n const options = osInstance.options();\r\n const showXScrollbar = !(options && options.overflowBehavior && options.overflowBehavior.x === \"hidden\");\r\n const showYScrollbar = !(options && options.overflowBehavior && options.overflowBehavior.y === \"hidden\");\r\n\r\n const instanceElements = osInstance.getElements();\r\n const paddingElement = instanceElements.padding;\r\n\r\n const addClassNameMethod = paddingElement.classList.add;\r\n const removeClassNameMethod = paddingElement.classList.remove;\r\n\r\n const setClassName = (booleanValue: boolean, className: string) => {\r\n (booleanValue ? addClassNameMethod : removeClassNameMethod).bind(paddingElement.classList)(className);\r\n };\r\n\r\n setClassName(xScrollable && showXScrollbar, \"os-padding--horizontal-padding\");\r\n setClassName(yScrollable && showYScrollbar, \"os-padding--vertical-padding\");\r\n};\r\n\r\n/**\r\n * Zaregistruje rozšíření knihovny overlayscrollbars, které při změnách velikosti okna,\r\n * cílového elementu nebo změně overflow elementu dynamicky přidává nebo odebírá padding\r\n * na straně/spodu elementu, ve kterém se zobrazuje thumb scrollbaru.\r\n *\r\n * Pokud se má toto rozšíření použít, dá se předat cílovému elementu názvem (PADDING_EXTENSION_NAME)\r\n * při inicializaci přes prop `extensions`.\r\n */\r\nexport const registerPaddingExtension = () => {\r\n OverlayScrollbars.extension(PADDING_EXTENSION_NAME, function(_defaultOptions, _framework, _compatibility) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const osInstance = this;\r\n\r\n return {\r\n contract: (_global: any): boolean => {\r\n return true;\r\n },\r\n added: doNothing,\r\n removed: doNothing,\r\n on: (callbackName, args) => {\r\n switch (callbackName) {\r\n case \"overflowChanged\":\r\n overlayScrollbarAdjuster(osInstance, args);\r\n break;\r\n case \"updated\":\r\n overlayScrollbarAdjuster(osInstance);\r\n break;\r\n }\r\n },\r\n };\r\n });\r\n};\r\n","import React, { createRef, forwardRef, Fragment, KeyboardEvent, ReactNode, RefObject, useEffect, useState } from \"react\";\r\nimport { ScrollEventCallback, SizeChangedCallback } from \"overlayscrollbars\";\r\nimport { OverlayScrollbarsComponent } from \"overlayscrollbars-react\";\r\n\r\nimport { bemClassNames, combineRefs, Key } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { ScrollContext, ScrollContextType } from \"../../context\";\r\nimport { PADDING_EXTENSION_NAME, registerPaddingExtension } from \"./utils\";\r\n\r\n/**\r\n * Dostupná témata pro stylování scrollbaru.\r\n */\r\nexport enum ThumbTheme {\r\n /** Posuvník má tmavě šedou barvu. Předdefinované téma knihovny overlayscrollbars */\r\n dark = \"os-theme-dark\",\r\n /** Posuvník má světle šedou barvu. Předdefinované téma knihovny overlayscrollbars */\r\n light = \"os-theme-light\",\r\n}\r\n\r\nexport type MenuScrollLayoutComponentProps = {\r\n /** Obalovaná komponenta. */\r\n children: ReactNode;\r\n /** Fixní kladná výška rozložení v pixelech. */\r\n height?: number;\r\n /** Příznak, zda je aktivní horizontální scrollování. */\r\n horizontal?: boolean;\r\n /** Příznak, zda je aktivní vertikální scrollování. */\r\n vertical?: boolean;\r\n /** Fixní kladná šířka rozložení v pixelech. */\r\n width?: number;\r\n /** Téma posuvníků. */\r\n thumbTheme?: ThumbTheme;\r\n /** Callback pro událost scrollování. */\r\n onScroll?: ScrollEventCallback;\r\n /** Callback volaný při změně velikosti obsahu. */\r\n onContentSizeChanged?: SizeChangedCallback;\r\n /** Obsah hlavičky. */\r\n stickyHeaderContent?: ReactNode;\r\n /** Obsah patičky. */\r\n stickyFooterContent?: ReactNode;\r\n /**\r\n * Příznak, zda se mají scrollbary zobrazit v odsazeném prostoru místo překrývání komponent.\r\n * Odsazení se přidá pouze, pokud je scrollbar zobrazen. Tuto prop nelze měnit dynamicky, aplikuje\r\n * se pouze jednou, při vytvoření komponenty. Její následné změny nemají žádný vliv.\r\n */\r\n usePaddedScrollbars?: boolean;\r\n /** Příznak indikující, zda se jedná o použití pro virtualizovaný list. Při aktivaci obalí obsah komponentami, které umožní získat rozměr pro AutoSizer. */\r\n inVirtualizedList?: boolean;\r\n};\r\n\r\nconst classNames = bemClassNames(\"menu-scroll-layout-component\");\r\n\r\nconst OVERFLOW_HIDDEN = \"hidden\";\r\nconst OVERFLOW_SCROLL = \"scroll\";\r\n\r\nregisterPaddingExtension();\r\n\r\n/** Rozložení umožňující scrollování obsahu a nastavení fixní velikosti. Podporuje sticky hlavičku/patičku. */\r\nexport const MenuScrollLayoutComponent: ForwardRefType<OverlayScrollbarsComponent, MenuScrollLayoutComponentProps> = forwardRef<OverlayScrollbarsComponent, MenuScrollLayoutComponentProps>(({\r\n children,\r\n height,\r\n horizontal = true,\r\n vertical = true,\r\n width,\r\n thumbTheme = ThumbTheme.light,\r\n onScroll,\r\n onContentSizeChanged,\r\n stickyHeaderContent,\r\n stickyFooterContent,\r\n usePaddedScrollbars = false,\r\n inVirtualizedList = false,\r\n}, forwardRef) => {\r\n const innerRef = createRef<OverlayScrollbarsComponent>();\r\n const ref = combineRefs(innerRef, forwardRef);\r\n const [scroll, setScroll] = useState<ScrollContextType>(null);\r\n useEffect(() => {\r\n setScroll(() => getScroll(innerRef));\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n return (\r\n <div\r\n style={{ height, width }}\r\n className={classNames()}\r\n >\r\n {stickyHeaderContent && (\r\n <div className={classNames(\"sticky-header\")} >\r\n {stickyHeaderContent}\r\n </div>\r\n )}\r\n <OverlayScrollbarsComponent\r\n style={{ height, width }}\r\n className={classNames(\"custom-scroll\", { vertical, horizontal }, [`${thumbTheme}`])}\r\n options={{\r\n callbacks: { onScroll, onContentSizeChanged },\r\n overflowBehavior: {\r\n x: horizontal ? OVERFLOW_SCROLL : OVERFLOW_HIDDEN,\r\n y: vertical ? OVERFLOW_SCROLL : OVERFLOW_HIDDEN,\r\n },\r\n }}\r\n extensions={usePaddedScrollbars ? PADDING_EXTENSION_NAME : undefined}\r\n onKeyDown={preventDefaultScroll}\r\n ref={ref}\r\n >\r\n {inVirtualizedList ? (\r\n <div className={classNames(\"scrollable-container\")} >\r\n {stickyHeaderContent && renderInnerStickyHeader(stickyHeaderContent)}\r\n <div className={classNames(\"content-container\")} >\r\n <ScrollContext.Provider value={scroll}>\r\n {children}\r\n </ScrollContext.Provider>\r\n </div>\r\n {stickyFooterContent && renderInnerStickyFooter(stickyFooterContent)}\r\n </div>\r\n ) : (\r\n <Fragment>\r\n {renderInnerStickyHeader(stickyHeaderContent)}\r\n <ScrollContext.Provider value={scroll}>\r\n {children}\r\n </ScrollContext.Provider>\r\n {renderInnerStickyFooter(stickyFooterContent)}\r\n </Fragment>\r\n )}\r\n </OverlayScrollbarsComponent>\r\n {stickyFooterContent && (\r\n <div className={classNames(\"sticky-footer\")}>\r\n {stickyFooterContent}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Získá scroll funkci z OverlayScrollbarsComponent, pokud to je možné.\r\n * @param ref Objekt s referencí na komponentu.\r\n */\r\nconst getScroll = (ref: RefObject<OverlayScrollbarsComponent>) => {\r\n if (ref && ref.current) {\r\n const instance = ref.current.osInstance();\r\n return instance ? instance.scroll : null;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst renderInnerStickyHeader = (stickyHeaderContent?: ReactNode) => (\r\n <div className={classNames(\"inner-sticky-header\")} >\r\n {stickyHeaderContent}\r\n </div>\r\n);\r\n\r\nconst renderInnerStickyFooter = (stickyFooterContent?: ReactNode) => (\r\n <div className={classNames(\"inner-sticky-footer\")}>\r\n {stickyFooterContent}\r\n </div>\r\n);\r\n\r\nconst SUPPRESSED_KEYS: readonly string[] = [Key.ArrowUp, Key.ArrowDown, Key.ArrowLeft, Key.ArrowRight];\r\n\r\n/**\r\n * Zakáže výchozí chování scrollbarů pro klávesy šipek. O posunutí scrollbaru se stará useSetFocus hook při změně zaměřené položky.\r\n */\r\nconst preventDefaultScroll = (event: KeyboardEvent<HTMLDivElement>) => {\r\n if (SUPPRESSED_KEYS.includes(event.key)) {\r\n event.preventDefault();\r\n }\r\n};\r\n","export * from \"./MenuScrollLayoutComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { isDarkTheme } from \"@multiweb/reactCore/theme\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { MenuScrollLayoutComponent, MenuScrollLayoutComponentProps, ThumbTheme } from \"../MenuScrollLayoutComponent\";\r\n\r\nexport type MenuScrollLayoutProps = Omit<MenuScrollLayoutComponentProps, \"thumbTheme\">;\r\n\r\ntype StateProps = Pick<MenuScrollLayoutComponentProps, \"thumbTheme\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MenuScrollLayoutProps, IAppState> = (state) => ({\r\n thumbTheme: isDarkTheme(state) ? ThumbTheme.light : ThumbTheme.dark,\r\n});\r\n\r\nexport const MenuScrollLayout = connect(mapStateToProps, undefined, undefined, { forwardRef: true })(MenuScrollLayoutComponent);\r\n","export * from \"./MenuScrollLayout\";\r\n","import React, { FunctionComponent, ReactNode } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { MenuScrollLayout, MenuScrollLayoutProps } from \"../MenuScrollLayout\";\r\n\r\nexport type MenuComponentProps = {\r\n /** Obsah sekce */\r\n children: ReactNode;\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /**\r\n * Nastaví komponentu do jednoduchého zobrazení. V tomto módu komponenta neposkytuje hlavičku a scrollbar.\r\n * Typicky se používá v kombinaci s virtualizovaný listem.\r\n */\r\n isPlain?: boolean;\r\n /**\r\n * Obsah hlavičky. Je využit jen v případě, že není použitý mód jednoduchého zobrazení.\r\n * Hlavička je vykreslená vícekrát, kvůli sticky funkcionalitě, proto nemůže obsahovat unikátní prvky.\r\n * Více detailů v komponentě MenuScrollLayout.\r\n */\r\n headerContent?: MenuScrollLayoutProps[\"stickyHeaderContent\"];\r\n /** Nastavení zarovnání obsahu. */\r\n contentPosition?: MenuComponentContentPosition;\r\n};\r\n\r\nconst classNames = bemClassNames(\"menu-component\");\r\n\r\n/** Obecná komponenta reprezentující sekci menu. */\r\nexport const MenuComponent: FunctionComponent<MenuComponentProps> = ({\r\n children,\r\n headerContent,\r\n hasSubmenuBackground = false,\r\n isPlain = false,\r\n contentPosition = MenuComponentContentPosition.top,\r\n}) => (\r\n <div className={classNames({\r\n \"submenu-background\": hasSubmenuBackground,\r\n \"bottom\": contentPosition === MenuComponentContentPosition.bottom,\r\n \"center\": contentPosition === MenuComponentContentPosition.center,\r\n })}>\r\n {isPlain ? (\r\n children\r\n ) : (\r\n <MenuScrollLayout horizontal={false} stickyHeaderContent={headerContent} usePaddedScrollbars={true}>\r\n {children}\r\n </MenuScrollLayout>\r\n )}\r\n </div>\r\n);\r\n\r\nexport enum MenuComponentContentPosition {\r\n /** Defaultní zobrazení. */\r\n top = \"top\",\r\n /** Zarovnání ke spodnímu okraji. */\r\n bottom = \"bottom\",\r\n /** Vertikální zarovnání na střed. */\r\n center = \"center\",\r\n}\r\n","export * from \"./MenuComponent\";\r\n","import React, { createRef, FunctionComponent, MouseEventHandler } from \"react\";\r\n\r\nimport { AlignItems, FlexDirection, Layout } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_ONLY, useContentOverflows } from \"@multiweb/reactUtils\";\r\n\r\nexport type MenuTitleProps = {\r\n /** Zobrazovaný text */\r\n text: string | undefined;\r\n /** Podnadpis zobrazovaný pod hl. textem */\r\n subtitle?: string;\r\n /** onClick callback */\r\n onClick?: MouseEventHandler;\r\n};\r\n\r\nconst classNames = bemClassNames(\"menu-title\");\r\n\r\nexport const MenuTitle: FunctionComponent<MenuTitleProps> = ({ text, onClick, subtitle }) => {\r\n const ref = createRef<HTMLDivElement>();\r\n const contentOverflows = useContentOverflows<HTMLDivElement>(ref);\r\n\r\n return (\r\n <Layout>\r\n <div\r\n className={classNames({ clickable: onClick != null })}\r\n title={contentOverflows ? text : undefined}\r\n role={onClick ? \"button\" : undefined}\r\n tabIndex={onClick ? TAB_INDEX_FOCUSABLE_ONLY : undefined}\r\n onKeyDown={undefined}\r\n {...{ ref, onClick }}\r\n >\r\n {text && (\r\n <Layout alignItems={AlignItems.center}>\r\n <Layout flexDirection={FlexDirection.column}>\r\n <span>{text}</span>\r\n {subtitle ? <span className=\"subtitle\">{subtitle}</span> : undefined}\r\n </Layout>\r\n </Layout>\r\n )}\r\n </div>\r\n </Layout>\r\n );\r\n};\r\n","export * from \"./MenuTitle\";\r\n","import React, { CSSProperties, forwardRef, ReactNode } from \"react\";\r\nimport {\r\n AutoSizer,\r\n CellMeasurer,\r\n CellMeasurerCache,\r\n CellMeasurerCacheParams,\r\n defaultCellRangeRenderer,\r\n GridCellRangeProps,\r\n GridCellRangeRenderer,\r\n IndexRange,\r\n List,\r\n ScrollSync,\r\n} from \"react-virtualized\";\r\n\r\nimport { bemClassNames, EMPTY_ARRAY, useForceUpdate } from \"@multiweb/reactUtils\";\r\nimport { ForwardRefType } from \"@multiweb/types/react\";\r\nimport { logger } from \"../../logger\";\r\nimport { MenuScrollLayout } from \"../MenuScrollLayout\";\r\n\r\nexport type MenuVirtualizedListItemRenderer<T> = (item: T, index: number, items: ReadonlyArray<T>) => ReactNode;\r\nexport type MenuVirtualizedListKeyGenerator<T> = (item: T, index: number, items: ReadonlyArray<T>) => string;\r\n\r\nexport type MenuVirtualizedListProps<T> = {\r\n /** Data pro vykreslení položek. */\r\n items: ReadonlyArray<T>;\r\n /** Funkce pro generování klíčů položek. */\r\n keyGenerator: MenuVirtualizedListKeyGenerator<T>;\r\n /** Funkce pro vykreslení položek. */\r\n itemRenderer: MenuVirtualizedListItemRenderer<T>;\r\n /** Parametry pro cache rozměrů položek. */\r\n cellMeasureCacheParams: CellMeasurerCacheParams;\r\n /** Obsah hlavičky. */\r\n stickyHeaderContent?: ReactNode;\r\n /** Obsah patičky. */\r\n stickyFooterContent?: ReactNode;\r\n /** Viz MenuScrollLayout usePaddedScrollbars.*/\r\n usePaddedScrollbars?: boolean;\r\n /** Funkce volaná po vykreslení řádků - interní využití */\r\n onRowsRendered?: (indexRange: IndexRange) => void;\r\n /** Index zaměřené položky. Zaměřená položka je vždy vykreslená, nehledě na polohu scrollbaru. To umožňuje prohlížeči scrollovat na zaměřenou\r\n * položku. Například při navigaci z první položky na poslední. */\r\n focusedItemIndex?: number;\r\n};\r\n\r\nconst STICKY_FOOTER_KEY = \"menu-virtualized-list-sticky-footer\";\r\nconst classNames = bemClassNames(\"menu-virtualized-list\");\r\n\r\nexport const MenuVirtualizedList: ForwardRefType<List, MenuVirtualizedListProps<any>> = forwardRef<List, MenuVirtualizedListProps<any>>(({\r\n items,\r\n itemRenderer,\r\n keyGenerator,\r\n cellMeasureCacheParams,\r\n stickyHeaderContent,\r\n stickyFooterContent,\r\n usePaddedScrollbars = true,\r\n onRowsRendered,\r\n focusedItemIndex,\r\n}, ref) => {\r\n /* Cache má jako klíče indexy, proto se musí vytvořit znovu při změně dat, jinak by používala výšky nesprávných položek.\r\n Cache slouží pro jednu sadu položek při jejich scrollování. */\r\n const cache = new CellMeasurerCache(cellMeasureCacheParams);\r\n const rowCount = items.length + (stickyFooterContent ? 1 : 0);\r\n /* Po přidání paddingu v MenuScrollLayout je nutné překreslit virtualizovaný list pro správné zobrazení položek.\r\n Tím se opraví překrývání položek s dlouhým textem. */\r\n const forceUpdate = useForceUpdate();\r\n\r\n return (\r\n <div className={classNames()} >\r\n <ScrollSync>\r\n {({ clientHeight, clientWidth, onScroll, scrollHeight, scrollLeft, scrollTop, scrollWidth }) => (\r\n <MenuScrollLayout\r\n onContentSizeChanged={usePaddedScrollbars ? forceUpdate : undefined}\r\n onScroll={(scrollEvent) => {\r\n if (scrollEvent && scrollEvent.target) {\r\n const scrollTop = (scrollEvent.target as HTMLElement).scrollTop;\r\n onScroll({ scrollTop, clientHeight, clientWidth, scrollHeight, scrollLeft, scrollWidth });\r\n } else {\r\n logger.warn(\"Cannot get scrollTop property from scroll event.\");\r\n }\r\n }}\r\n inVirtualizedList={true}\r\n {...{ stickyHeaderContent, stickyFooterContent, usePaddedScrollbars }}\r\n >\r\n <AutoSizer>\r\n {({ height, width }) => {\r\n return (\r\n <List\r\n tabIndex={null}\r\n rowHeight={cache.rowHeight}\r\n deferredMeasurementCache={cache}\r\n className={classNames(\"list\")}\r\n cellRangeRenderer={createCellRangeRenderer(focusedItemIndex, items.length, !!stickyFooterContent)}\r\n {...{ rowCount, width, height, scrollTop, style, onRowsRendered, ref }}\r\n rowRenderer={({ index, style, parent }) => {\r\n const isFooter = stickyFooterContent && index === items.length;\r\n const key = isFooter ? STICKY_FOOTER_KEY : keyGenerator(items[index], index, items);\r\n return (\r\n <CellMeasurer\r\n key={key}\r\n cache={cache}\r\n parent={parent}\r\n index={index}\r\n >\r\n <div style={style} className={isFooter ? classNames(\"inner-sticky-footer\") : undefined}>\r\n {isFooter ? (\r\n stickyFooterContent\r\n ) : (\r\n itemRenderer(items[index], index, items)\r\n )}\r\n </div>\r\n </CellMeasurer>\r\n );\r\n }}\r\n />\r\n );\r\n }}\r\n </AutoSizer>\r\n </MenuScrollLayout>\r\n )}\r\n </ScrollSync>\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Nastaví inline styly pro zajištění kompatibility s custom scrollbar. Hodnoty se musí nastavit pomocí inline stylů, protože je tak nastavuje Grid komponenta, kterou\r\n * používá List. Inline styly není možné přepsat z css bez použití !important. Proto není toto stylování zajištěno přes css a BEM.\r\n *\r\n * Nastavení overflow skryje scrollbar listu, tím že je přesah viditelný. Musí být zadáno zvlášť pro X a Y, aby se správně přepsaly výchozí hodnoty v Grid komponentě.\r\n */\r\nconst style: CSSProperties = {\r\n overflowX: \"visible\",\r\n overflowY: \"visible\",\r\n};\r\n\r\n/**\r\n * Vytvoří vykreslovací funkci, které ve virtualizovaném listu vždy vykreslí zaměřený prvek, nezávisle na poloze scrollbaru. Upravuje pouze to, jaké položky se\r\n * vykreslují. Vykreslení samotné zajišťuje výchozí vykreslovací funkce defaultCellRangeRenderer z knihovny react-virtualized.\r\n *\r\n * Vykreslení zaměřeného prvku je důležité pro správnou funkci navigace přes klávesnici. Umožňuje zascrollovat na zaměřený prvek, i když je mimo viditelnou oblast.\r\n * @param focusedItemIndex Index zaměřeného prvku v listu. Pokud není zadaný, použije se výchozí vykreslování.\r\n * @param itemsCount Celkový počet prvků (patička se nezapočítává).\r\n * @param hasFooter Příznak, zda list zobrazuje patičku.\r\n */\r\nconst createCellRangeRenderer: (focusedItemIndex: number | undefined, itemsCount: number, hasFooter: boolean) => GridCellRangeRenderer =\r\n (focusedItemIndex, itemsCount, hasFooter) => {\r\n if (focusedItemIndex === undefined) {\r\n return defaultCellRangeRenderer;\r\n }\r\n\r\n return (params) => {\r\n const previousItems = renderPreviousItems(params, focusedItemIndex, defaultCellRangeRenderer);\r\n const focusedItems = renderFocusedItem(params, focusedItemIndex, defaultCellRangeRenderer);\r\n const nextItems = renderNextItems(params, focusedItemIndex, itemsCount, defaultCellRangeRenderer);\r\n const footer = renderFooter(hasFooter, params, itemsCount, defaultCellRangeRenderer);\r\n return [...previousItems, ...focusedItems, ...nextItems, ...footer];\r\n };\r\n };\r\n\r\ntype RenderFunction = typeof defaultCellRangeRenderer;\r\n\r\nexport const renderPreviousItems = (params: GridCellRangeProps, focusedItemIndex: number, renderFunction: RenderFunction) => {\r\n const { rowStartIndex, rowStopIndex } = params;\r\n if (focusedItemIndex > rowStartIndex) {\r\n const previousItemsParams = {\r\n ...params,\r\n rowStopIndex: Math.min(rowStopIndex, focusedItemIndex - 1),\r\n };\r\n return renderFunction(previousItemsParams);\r\n } else {\r\n return EMPTY_ARRAY;\r\n }\r\n};\r\n\r\nexport const renderFocusedItem = (params: GridCellRangeProps, focusedItemIndex: number, renderFunction: RenderFunction) => {\r\n const focusedItemParams = {\r\n ...params,\r\n rowStartIndex: focusedItemIndex,\r\n rowStopIndex: focusedItemIndex,\r\n };\r\n return renderFunction(focusedItemParams);\r\n};\r\n\r\nexport const renderNextItems = (params: GridCellRangeProps, focusedItemIndex: number, itemsCount: number, renderFunction: RenderFunction) => {\r\n const { rowStartIndex, rowStopIndex } = params;\r\n if (rowStopIndex > focusedItemIndex && focusedItemIndex < itemsCount - 1) {\r\n const nextItemsParams = {\r\n ...params,\r\n rowStartIndex: Math.max(rowStartIndex, focusedItemIndex + 1),\r\n rowStopIndex: Math.min(Math.max(rowStopIndex, focusedItemIndex + 1), itemsCount - 1),\r\n };\r\n return renderFunction(nextItemsParams);\r\n } else {\r\n return EMPTY_ARRAY;\r\n }\r\n};\r\n\r\nexport const renderFooter = (hasFooter: boolean, params: GridCellRangeProps, itemsCount: number, renderFunction: RenderFunction) => {\r\n const { rowStopIndex } = params;\r\n if (hasFooter && rowStopIndex === itemsCount) {\r\n const footerParams = {\r\n ...params,\r\n rowStartIndex: itemsCount,\r\n rowStopIndex: itemsCount,\r\n };\r\n return renderFunction(footerParams);\r\n } else {\r\n return EMPTY_ARRAY;\r\n }\r\n};\r\n","export * from \"./MenuVirtualizedList\";\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { CellMeasurerCacheParams } from \"react-virtualized\";\r\n\r\nimport { DEFAULT_FORM_ITEM_HEIGHT } from \"../../constants\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { FormItem } from \"../FormItem\";\r\nimport { MenuComponent } from \"../MenuComponent\";\r\nimport { MenuTitle } from \"../MenuTitle\";\r\nimport { MenuVirtualizedList, MenuVirtualizedListItemRenderer, MenuVirtualizedListKeyGenerator } from \"../MenuVirtualizedList\";\r\nimport { FormMenuComponentProps } from \"./FormMenuComponentProps\";\r\n\r\nexport { FormMenuComponentProps };\r\n\r\nconst cacheParams: CellMeasurerCacheParams = {\r\n defaultHeight: DEFAULT_FORM_ITEM_HEIGHT,\r\n minHeight: DEFAULT_FORM_ITEM_HEIGHT,\r\n fixedWidth: true,\r\n};\r\n\r\n/** Komponenta představuje sekci pro formuláře */\r\nexport const FormMenuComponent: FunctionComponent<FormMenuComponentProps> = ({\r\n formItemIds,\r\n focusedItemIndex,\r\n title,\r\n}) => (\r\n <MenuComponent isPlain={true} >\r\n <MenuVirtualizedList\r\n items={formItemIds}\r\n stickyHeaderContent={<MenuTitle text={title} />}\r\n cellMeasureCacheParams={cacheParams}\r\n {...{ keyGenerator, itemRenderer, focusedItemIndex }}\r\n />\r\n </MenuComponent>\r\n);\r\n\r\nconst itemRenderer: MenuVirtualizedListItemRenderer<number> = (formItemId) => (\r\n <FormItem {...{ formItemId }} section={MenuNavigationSectionType.forms} />\r\n);\r\n\r\nconst keyGenerator: MenuVirtualizedListKeyGenerator<number> = (formItemId) => formItemId.toString();\r\n","export * from \"./FormMenuComponent\";\r\n","import React, {\r\n createRef,\r\n FunctionComponent,\r\n KeyboardEventHandler,\r\n MouseEvent as ReactMouseEvent,\r\n MouseEventHandler,\r\n useContext,\r\n} from \"react\";\r\n\r\nimport {\r\n AlignItems,\r\n FlexDirection,\r\n FlexGrow,\r\n Icon,\r\n JustifyContent,\r\n Layout,\r\n SpacingSize,\r\n} from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, createQA, TAB_INDEX_FOCUSABLE_ONLY, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { MENU_PANEL_FOOTER_HEIGHT } from \"../../constants\";\r\nimport { ScrollContext } from \"../../context\";\r\nimport {\r\n createActivationKeyHandler,\r\n createActivationMouseHandler,\r\n createMenuCustomScroll,\r\n} from \"../../utils\";\r\n\r\nexport type MenuPanelItemComponentProps = {\r\n /** Kód zobrazené ikony */\r\n readonly iconCode?: IconCode;\r\n /** Příznak, zda je prvek aktivní - výchozí hodnota je false */\r\n readonly isActive?: boolean;\r\n /** Příznak, zda je prvek zvýrazněný - výchozí hodnota je false */\r\n readonly isHighlighted?: boolean;\r\n /** Callback volaný při kliknutí. Reaguje na primární i ostatní tlačítka myši (přidává se na onClick i onAuxClick). */\r\n readonly onClick: MouseEventHandler<HTMLDivElement>;\r\n /** Callback volaný při uvolnění klávesy */\r\n readonly onKeyUp?: KeyboardEventHandler<HTMLDivElement>;\r\n /** Popisek zobrazený po najetí kurzoru */\r\n readonly title?: string;\r\n /** Příznak, zda je prvek zaměřený */\r\n readonly isFocused: boolean;\r\n /** Popisek zobrazený pod ikonou */\r\n readonly caption?: string;\r\n /** Příznak, zda má prvek větší výšku */\r\n readonly higher?: boolean;\r\n /** Příznak, zda má být zobrazena rozbalovací šipka. */\r\n readonly isExpandArrowVisible: boolean;\r\n /** Příznak, zda-li zobrazit oddělovací čáru mezi ikonkou menu a rozbalovací šipkou. (Má vliv pouze pro `isExpandArrowVisible === true`.) */\r\n readonly showSeparator?: boolean;\r\n} & QAProps;\r\n\r\nconst classNames = bemClassNames(\"menu-panel-item-component\");\r\n\r\n/** Lokální jméno CSS třídy (bez BEM prefixů) reprezentující prvek s rozbalovací šipkou */\r\nconst EXPAND_ARROW_CLASS_NAME_BASE = \"right-part-wrapper\";\r\n/** CSS třída reprezentující prvek s rozbalovací šipkou. Používá se v {@link isRightPartEvent}. */\r\nconst EXPAND_ARROW_CLASS_NAME = classNames(EXPAND_ARROW_CLASS_NAME_BASE);\r\n/** Regulární výraz pro aplikaci na HTML atribut `class`. Matchuje, pokud daný atribut obsahuje také {@link EXPAND_ARROW_CLASS_NAME}. */\r\nconst EXPAND_ARROW_CLASS_NAME_REGEXP = new RegExp(`(^| )${EXPAND_ARROW_CLASS_NAME}($| )`);\r\n\r\n/** Tlačítko určené pro změnu sekce v bočním panelu menu, umožňuje zobrazení zvýrazňujícího prvku */\r\nexport const MenuPanelItemComponent: FunctionComponent<MenuPanelItemComponentProps> = ({\r\n iconCode,\r\n isActive = false,\r\n isHighlighted = false,\r\n onClick,\r\n title,\r\n isFocused,\r\n onKeyUp,\r\n caption,\r\n higher = false,\r\n isExpandArrowVisible,\r\n showSeparator,\r\n qa,\r\n}) => {\r\n const ref = createRef<HTMLDivElement>();\r\n const scroll = useContext(ScrollContext);\r\n useSetFocus<HTMLDivElement>(isFocused, ref, createMenuCustomScroll(scroll, MENU_PANEL_FOOTER_HEIGHT));\r\n const handleClick = createActivationMouseHandler(onClick);\r\n const handleKeyUp = createActivationKeyHandler(onKeyUp);\r\n return (\r\n <div\r\n role=\"button\" //Nemůže být button element, protože obsahuje layout, který není inline typ elementu\r\n className={classNames({\r\n \"hover-separated-panel\": showSeparator,\r\n \"hover-panel\": !showSeparator,\r\n higher,\r\n active: isActive,\r\n fullwidth: true,\r\n })}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n onClick={handleClick}\r\n onAuxClick={handleClick}\r\n onKeyUp={handleKeyUp}\r\n {...createQA(qa)}\r\n {...{ title, ref }}\r\n >\r\n <Layout\r\n flexDirection={FlexDirection.row}\r\n flexGrow={FlexGrow.one}\r\n justifyContent={JustifyContent.spaceBetween}\r\n >\r\n <div className={classNames({ \"hover-panel\": showSeparator })}>\r\n <Layout\r\n alignItems={AlignItems.center}\r\n justifyContent={JustifyContent.center}\r\n flexDirection={FlexDirection.column}\r\n spacingSizeLeft={SpacingSize.m}\r\n spacingSizeRight={isExpandArrowVisible || caption ? SpacingSize.none : SpacingSize.m}\r\n flexGrow={FlexGrow.one}\r\n >\r\n <span className={classNames(\"stripe\", { active: isActive })} />\r\n {iconCode && (\r\n <div className={classNames(\"icon-wrapper\")}>\r\n <Icon iconCode={iconCode} />\r\n <span className={classNames(\"highlight-dot\", { active: isHighlighted })} />\r\n </div>\r\n )}\r\n {caption && <span className={classNames(\"caption\")}>{caption}</span>}\r\n </Layout>\r\n </div>\r\n {isExpandArrowVisible ? (\r\n <div className={classNames(EXPAND_ARROW_CLASS_NAME_BASE, { showSeparator })}>\r\n <Icon iconCode={IconCode.uiChevronRightSmall} />\r\n </div>\r\n ) : (\r\n caption && <Layout spacingSize={SpacingSize.xs} />\r\n )}\r\n </Layout>\r\n </div>\r\n );\r\n};\r\n\r\n/**\r\n * Určí, zda událost pochází z elementů rozbalovací šipky. (Určeno pro potřeby kombinovaného tlačítka.)\r\n * @param event Událost pro kontrolu.\r\n */\r\nexport const isRightPartEvent = (event: ReactMouseEvent): boolean => {\r\n if (!(event.target instanceof HTMLElement)) {\r\n return false;\r\n }\r\n\r\n const targetElement: HTMLElement = event.target;\r\n return (\r\n EXPAND_ARROW_CLASS_NAME_REGEXP.test(targetElement.className) ||\r\n EXPAND_ARROW_CLASS_NAME_REGEXP.test(targetElement.parentElement?.className ?? \"\")\r\n );\r\n};\r\n","export * from \"./MenuPanelItemComponent\";\r\n","import { MenuPanelItemId } from \"../../panelItems\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\n\r\n/**\r\n * Vrací `true`, pokud se má u položky menu zobrazit rozbalivací šipka.\r\n *\r\n * Rozbalovací šipka se má zobrazit u všech položek, které mají submenu. Tj. u:\r\n * - kombinovaného tlačítka\r\n * - formulářové složky\r\n * - skupiny notifikací\r\n * - položky pro rychlý přístup\r\n * - položky pro uživatelské menu\r\n *\r\n * @param isCombinedItem `True`, pokud daná položka menu představuje kombinované tlačítko.\r\n * @param activationType Typ položky menu.\r\n * @param menuPanelItemId ID položky menu.\r\n */\r\nexport const isExpandArrowVisible = (isCombinedItem: boolean, activationType: MenuItemActivatedType | undefined, menuPanelItemId: string): boolean => (\r\n isCombinedItem ||\r\n activationType === MenuItemActivatedType.panelItemFormFolder ||\r\n activationType === MenuItemActivatedType.notificationGroup ||\r\n menuPanelItemId === MenuPanelItemId.quickAccess ||\r\n menuPanelItemId === MenuPanelItemId.user\r\n);\r\n","import { KeyboardEvent, MouseEvent as ReactMouseEvent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { doNothing, Key, toSerializableKeyEvent } from \"@multiweb/reactUtils\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport {\r\n areMenuPanelCaptionsVisible,\r\n getPanelItemActivationType,\r\n getPanelItemCaption,\r\n getPanelItemIconCode,\r\n getPanelItemItemId,\r\n getPanelItemTitle,\r\n isMenuVisible,\r\n isPanelItemActive,\r\n isPanelItemCombinedType,\r\n isPanelItemHighlighted,\r\n} from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemMouseActivationHandler, createOpenableInTabItemMouseActivationHandler, isMenuItemActivatedByKey } from \"../../utils\";\r\nimport { isRightPartEvent, MenuPanelItemComponent, MenuPanelItemComponentProps } from \"../MenuPanelItemComponent\";\r\nimport { isExpandArrowVisible } from \"./utils\";\r\n\r\nexport type MenuPanelItemProps = {\r\n /**\r\n * Identifikátor položky panelu menu. Statické identifikátory jsou dostupné ve výčtu\r\n * @see MenuPanelItemId\r\n */\r\n readonly id: string;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n readonly section: NavigationSection;\r\n} & QAProps;\r\n\r\ntype StateProps = {\r\n isMenuVisible: ReturnType<typeof isMenuVisible>;\r\n itemId: string | number;\r\n activationType: MenuItemActivatedType | undefined;\r\n isCombinedItem: boolean;\r\n} & Pick<MenuPanelItemComponentProps, \"iconCode\" | \"isFocused\" | \"isHighlighted\" | \"title\" | \"caption\" | \"higher\">\r\n & Required<Pick<MenuPanelItemComponentProps, \"isActive\">>;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MenuPanelItemProps, IAppState> = (state, { id, section }) => ({\r\n iconCode: getPanelItemIconCode(state, id),\r\n isActive: isPanelItemActive(state, id),\r\n isHighlighted: isPanelItemHighlighted(state, id),\r\n title: getPanelItemTitle(state, id),\r\n isFocused: isItemFocused(state, { itemId: id, type: MenuFocusableItemType.panelItem, section }),\r\n isMenuVisible: isMenuVisible(state),\r\n caption: getPanelItemCaption(state, id),\r\n higher: areMenuPanelCaptionsVisible(state),\r\n itemId: getPanelItemItemId(state, id),\r\n activationType: getPanelItemActivationType(state, id),\r\n isCombinedItem: isPanelItemCombinedType(state, id),\r\n});\r\n\r\ntype DispatchProps = {\r\n panelItemActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MenuPanelItemProps> = {\r\n panelItemActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, MenuPanelItemProps, MenuPanelItemComponentProps> = (\r\n { isActive, isMenuVisible, itemId, activationType, isCombinedItem, ...restStateProps },\r\n { panelItemActivated },\r\n { qa, section, id },\r\n) => {\r\n const expandArrowVisible = isExpandArrowVisible(isCombinedItem, activationType, id);\r\n return ({\r\n isActive,\r\n isExpandArrowVisible: expandArrowVisible,\r\n showSeparator: isCombinedItem,\r\n ...restStateProps,\r\n onClick: activationType ? createPanelItemMouseUpHandler(itemId, activationType, section, panelItemActivated, expandArrowVisible) : doNothing,\r\n onKeyUp: activationType ? createPanelItemActionKeyHandler(itemId, activationType, section, panelItemActivated, isActive, isMenuVisible, expandArrowVisible) : doNothing,\r\n qa,\r\n section,\r\n id,\r\n });\r\n};\r\n\r\n/**\r\n * Napojuje komponenty tlačítek levého panelu menu. Na základě id sekce pro ně získá ikonu, popisek a určí zda je dané tlačítko aktivní.\r\n * Definuje onClick akci, která vybírá aktivní sekci menu.\r\n */\r\nexport const MenuPanelItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuPanelItemComponent);\r\n\r\n/**\r\n * Vytvoří funkci pro zpracování událostí stisknutí kláves, která zavolá zadanou funkci, pokud byla stisknuta klávesa enter nebo šipka vpravo.\r\n * Určeno pouze pro položky levého panelu menu. Pokud je aktivace provedena pravou šipkou, rozhoduje se o jejím zpracování na základě aktivní položky a toho,\r\n * zda je otevřené menu. Pokud je položka aktivní a menu je otevřené, propaguje se událost dál a zpracuje se jako klasická navigační klávesa. V případě,\r\n * že je třeba aktivovat sekci, nebo otevřít menu, se chová jako aktivační klávesa. V tomto případě provede přesun zaměření sága obsluhující aktivaci sekce (kvůli\r\n * konzistenci mezi aktivací myší a aktivací klávesnicí). S propagací by se provedl dvojitý posun, druhý ze ságy zpracovávající události kláves na úrovni celého menu.\r\n * Položky formulářů v menu panelu nikdy nereagují na pravou šipku.\r\n *\r\n * V případě kombinovaného tlačítka se mohou vyslat i dvě akce najednou - pro levou i pravou část. Které akce se vyšlou záleží na způsobu aktivace a viditelnosti pravé části tlačítka.\r\n * Pro aktivaci pravou šipkou platí podmínky zmíněné výše, nezávisle na tom, že se jedná o kombinované tlačítko.\r\n *\r\n *| Tabulka aktivace | Pravá část viditelná | Pravá část skrytá |\r\n *|--------------------------------------|--------------------------|-------------------------------------------|\r\n *| Aktivace šipkou vpravo | Aktivace složky | Aktivace složky |\r\n *| Aktivace akční klávesou (ENTER/SPACE)| Aktivace formuláře | Aktivace formuláře + Aktivace složky |\r\n *\r\n * @param itemId Identifikátor položky unikátní v rámci jejího typu.\r\n * @param itemType Typ položky.\r\n * @param section Sekce, ve které je položka vykreslená.\r\n * @param onActivated Funkce, která se má zavolat při stisknutí klávesy enter, nebo šipky vpravo, pokud má fungovat jako enter.\r\n * @param isActive Příznak, zda je položka menu panelu aktivní.\r\n * @param isMenuVisible Příznak, zda je menu viditelné.\r\n * @param isExpandArrowVisible Příznak, zda je v položce menu zobrazená rozbalovací šipka.\r\n */\r\nexport const createPanelItemActionKeyHandler = (\r\n itemId: string | number,\r\n itemType: MenuItemActivatedType,\r\n section: NavigationSection,\r\n onActivated: typeof createMenuItemActivatedAction,\r\n isActive: boolean,\r\n isMenuVisible: boolean,\r\n isExpandArrowVisible: boolean,\r\n) => (event: KeyboardEvent) => {\r\n const activatedByRightArrowKey = event.key === Key.ArrowRight && (!isActive || !isMenuVisible) && itemType !== MenuItemActivatedType.panelItemForm;\r\n if (activatedByRightArrowKey) {\r\n event.stopPropagation();\r\n }\r\n const activatedByActionKey = isMenuItemActivatedByKey(event);\r\n if (activatedByActionKey || activatedByRightArrowKey) {\r\n const serializedKeyEvent = toSerializableKeyEvent(event);\r\n if (itemType === MenuItemActivatedType.panelItemCombinedItemForm) { // kombinované tlačítko\r\n if (activatedByActionKey) { // formulář se aktivuje jen akční klávesou, nikdy šipkou vpravo\r\n onActivated(itemId, MenuItemActivatedType.panelItemCombinedItemForm, section, undefined, serializedKeyEvent);\r\n }\r\n if (activatedByRightArrowKey || !isExpandArrowVisible) { // složka se aktivuje pravou šipkou, nebo i akční klávesou, pokud není viditelná pravá část tlačítka\r\n onActivated(itemId, MenuItemActivatedType.panelItemCombinedItemFolder, section, undefined, serializedKeyEvent);\r\n }\r\n } else { // klasický panel item\r\n onActivated(itemId, itemType, section, undefined, serializedKeyEvent);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří funkci pro zpracování události kliknutí myši. Rozlišuje zpracování události pro případ kombinovaného tlačítka, kdy vybere typ aktivované položky na základě původu události\r\n * a stavu viditelnosti pravé části tlačítka. Kliknutí na pravou část aktivuje část složky. Kliknutí na levou část záleží na viditelnosti pravé část. Pokud je viditelná, aktivuje část formuláře.\r\n * Pokud viditelná není, aktivuje část formuláře i část složky.\r\n * @param itemId Identifikátor položky unikátní v rámci jejího typu.\r\n * @param itemType Typ položky.\r\n * @param section Sekce, ve které je položka vykreslená.\r\n * @param onActivated Funkce, která vysílá akci aktivace položky.\r\n * @param isExpandArrowVisible Příznak, zda je v položce menu zobrazená rozbalovací šipka.\r\n */\r\nexport const createPanelItemMouseUpHandler = (\r\n itemId: string | number,\r\n itemType: MenuItemActivatedType,\r\n section: NavigationSection,\r\n onActivated: typeof createMenuItemActivatedAction,\r\n isExpandArrowVisible: boolean,\r\n) => {\r\n if (itemType === MenuItemActivatedType.panelItemForm) {\r\n return createOpenableInTabItemMouseActivationHandler(itemId, itemType, section, onActivated);\r\n } else if (itemType === MenuItemActivatedType.panelItemCombinedItemForm) {\r\n return (event: ReactMouseEvent) => {\r\n if (isRightPartEvent(event)) {// kliknutí na pravou část otevírá složku\r\n createMenuItemMouseActivationHandler(itemId, MenuItemActivatedType.panelItemCombinedItemFolder, section, onActivated)(event);\r\n } else {\r\n createOpenableInTabItemMouseActivationHandler(itemId, MenuItemActivatedType.panelItemCombinedItemForm, section, onActivated)(event);\r\n if (!isExpandArrowVisible) { // pokud není pravá část viditelná, kliknutí na levou část aktivuje i pravou část - složku\r\n createMenuItemMouseActivationHandler(itemId, MenuItemActivatedType.panelItemCombinedItemFolder, section, onActivated)(event);\r\n }\r\n }\r\n };\r\n } else {\r\n return createMenuItemMouseActivationHandler(itemId, itemType, section, onActivated);\r\n }\r\n};\r\n","export * from \"./MenuPanelItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, Layout } from \"@multiweb/reactComponents\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { SectionId } from \"../../types\";\r\nimport { MenuPanelItem } from \"../MenuPanelItem\";\r\n\r\nexport type FormPanelComponentProps = {\r\n /** Identifikátory formulářových položek panelu menu */\r\n formPanelItemIds: ReadonlyArray<SectionId>;\r\n};\r\n\r\n/** Komponenta pro zobrazení formulářových položek v panelu menu */\r\nexport const FormPanelComponent: FunctionComponent<FormPanelComponentProps> = ({ formPanelItemIds }) => (\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n qa=\"menu-root-forms-list\"\r\n >\r\n {formPanelItemIds.map((id) => (\r\n <MenuPanelItem\r\n key={id}\r\n {...{ id }}\r\n section={MenuNavigationSectionType.panelForms}\r\n />\r\n ))}\r\n </Layout>\r\n);\r\n","export * from \"./FormPanelComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getFormPanelItemIds } from \"../../selectors\";\r\nimport { FormPanelComponent, FormPanelComponentProps } from \"../FormPanelComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<FormPanelComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n formPanelItemIds: getFormPanelItemIds(state),\r\n});\r\n\r\nexport const FormPanel = connect(mapStateToProps)(FormPanelComponent);\r\n","export * from \"./FormPanel\";\r\n","import React, { createRef, FunctionComponent, KeyboardEventHandler, MouseEventHandler } from \"react\";\r\n\r\nimport { bemClassNames, createQA, TAB_INDEX_FOCUSABLE_ONLY, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { AccessibilityProps, QAProps } from \"@multiweb/types/react\";\r\nimport { activationKeyBlockHandler, activationMouseBlockHandler, createActivationKeyHandler, createActivationMouseHandler } from \"../../utils\";\r\n\r\nexport type LogoComponentProps = {\r\n /** Popis tlačítka */\r\n title?: string;\r\n /** Callback volaný při kliknutí */\r\n onClick?: MouseEventHandler<HTMLButtonElement>;\r\n /** Callback volaný při uvolnění klávesy */\r\n onKeyUp?: KeyboardEventHandler<HTMLButtonElement>;\r\n /** Příznak, zda je komponenta zaměřená. */\r\n isFocused: boolean;\r\n} & QAProps &\r\n Pick<AccessibilityProps, \"ariaLabel\">;\r\n\r\nconst classNames = bemClassNames(\"logo\");\r\n\r\n/** Logo aplikace */\r\nexport const LogoComponent: FunctionComponent<LogoComponentProps> = ({ title, ariaLabel, onClick, onKeyUp, isFocused, qa }) => {\r\n const ref = createRef<HTMLButtonElement>();\r\n useSetFocus<HTMLButtonElement>(isFocused, ref);\r\n const handleClick = createActivationMouseHandler(onClick);\r\n const handleKeyUp = createActivationKeyHandler(onKeyUp);\r\n return (\r\n <button\r\n aria-label={ariaLabel}\r\n className={classNames()}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n onClick={handleClick}\r\n onMouseDown={activationMouseBlockHandler}\r\n onKeyUp={handleKeyUp}\r\n onKeyDown={activationKeyBlockHandler}\r\n {...{ ref, title }}\r\n {...createQA(qa)}\r\n >\r\n <div className={classNames(\"icon\")} />\r\n </button>\r\n );\r\n};\r\n","export * from \"./LogoComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { LOC_KEY_MENU_PANEL_HOME } from \"../../locKeys\";\r\nimport { isFocused, LOGO_FOCUSABLE_ID, MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuPanelItemId } from \"../../panelItems\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { LogoComponent, LogoComponentProps } from \"../LogoComponent\";\r\n\r\nexport type LogoProps = QAProps;\r\n\r\ntype StateProps = Pick<LogoComponentProps, \"ariaLabel\" | \"title\" | \"isFocused\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, LogoProps, IAppState> = (state) => ({\r\n ariaLabel: getPrimaryText(state, LOC_KEY_MENU_PANEL_HOME),\r\n title: getSecondaryText(state, LOC_KEY_MENU_PANEL_HOME),\r\n isFocused: isFocused(state, LOGO_FOCUSABLE_ID),\r\n});\r\n\r\ntype DispatchProps = {\r\n logoActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, LogoProps> = {\r\n logoActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, LogoProps, LogoComponentProps> = ({ ariaLabel, title, isFocused }, { logoActivated }, { qa }) => ({\r\n ariaLabel,\r\n title,\r\n isFocused,\r\n onClick: createMenuItemMouseActivationHandler(MenuPanelItemId.logo, MenuItemActivatedType.logoButton, MenuNavigationSectionType.static, logoActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(MenuPanelItemId.logo, MenuItemActivatedType.logoButton, MenuNavigationSectionType.static, logoActivated),\r\n qa,\r\n});\r\n\r\n/** Definuje onClick pro komponentu loga. */\r\nexport const Logo = connect(mapStateToProps, mapDispatchToProps, mergeProps)(LogoComponent);\r\n","export * from \"./Logo\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isFocused, MENU_EXPAND_BUTTON_FOCUSABLE_ID, MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuPanelItemId } from \"../../panelItems\";\r\nimport { getExpandButtonIconCode, getExpandButtonTitle } from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuPanelItemComponent, MenuPanelItemComponentProps } from \"../MenuPanelItemComponent\";\r\n\r\nexport type MenuExpandButtonProps = QAProps;\r\n\r\ntype StateProps = Pick<MenuPanelItemComponentProps, \"title\" | \"iconCode\" | \"isFocused\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MenuExpandButtonProps, IAppState> = (state) => ({\r\n title: getExpandButtonTitle(state),\r\n iconCode: getExpandButtonIconCode(state),\r\n isFocused: isFocused(state, MENU_EXPAND_BUTTON_FOCUSABLE_ID),\r\n});\r\n\r\ntype DispatchProps = {\r\n buttonActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MenuExpandButtonProps> = {\r\n buttonActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, MenuExpandButtonProps, MenuPanelItemComponentProps> = (\r\n stateProps,\r\n { buttonActivated },\r\n { qa },\r\n) => ({\r\n ...stateProps,\r\n onClick: createMenuItemMouseActivationHandler(MenuPanelItemId.expandButton, MenuItemActivatedType.expandButton, MenuNavigationSectionType.static, buttonActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(MenuPanelItemId.expandButton, MenuItemActivatedType.expandButton, MenuNavigationSectionType.static, buttonActivated),\r\n isExpandArrowVisible: false,\r\n qa,\r\n});\r\n\r\nexport const MenuExpandButton = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuPanelItemComponent);\r\n","export * from \"./MenuExpandButton\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, Layout } from \"@multiweb/reactComponents\";\r\nimport { NotificationGroupId } from \"@multiweb/types/contracts\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuPanelItem } from \"../MenuPanelItem\";\r\n\r\nexport type NotificationPanelComponentProps = {\r\n /** Identifikátory položek panelu menu reprezentujících notifikační skupiny */\r\n notificationGroupPanelItemIds: readonly NotificationGroupId[];\r\n};\r\n\r\n/** Komponenta pro zobrazení položek panelu menu reprezentujících notifikační skupiny */\r\nexport const NotificationPanelComponent: FunctionComponent<NotificationPanelComponentProps> = ({ notificationGroupPanelItemIds }) => (\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n qa=\"menu-notifications-list\"\r\n >\r\n {notificationGroupPanelItemIds.map((id) => (\r\n <MenuPanelItem\r\n key={id}\r\n {...{ id }}\r\n section={MenuNavigationSectionType.notificationGroups}\r\n />\r\n ))}\r\n </Layout>\r\n);\r\n","export * from \"./NotificationPanelComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getNotificationGroupPanelItemIds } from \"../../selectors\";\r\nimport { NotificationPanelComponent, NotificationPanelComponentProps } from \"../NotificationPanelComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<NotificationPanelComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n notificationGroupPanelItemIds: getNotificationGroupPanelItemIds(state),\r\n});\r\n\r\nexport const NotificationPanel = connect(mapStateToProps)(NotificationPanelComponent);\r\n","export * from \"./NotificationPanel\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuPanelItemId } from \"../../panelItems\";\r\nimport { FormPanel } from \"../FormPanel\";\r\nimport { Logo } from \"../Logo\";\r\nimport { MenuExpandButton } from \"../MenuExpandButton\";\r\nimport { MenuPanelItem } from \"../MenuPanelItem\";\r\nimport { MenuScrollLayout } from \"../MenuScrollLayout\";\r\nimport { NotificationPanel } from \"../NotificationPanel\";\r\nimport { MenuPanelComponentProps } from \"./MenuPanelComponentProps\";\r\n\r\nexport { MenuPanelComponentProps };\r\n\r\nconst classNames = bemClassNames(\"menu-panel\");\r\n\r\n/** Panel menu umožňující otevírání sekcí */\r\nexport const MenuPanelComponent: FunctionComponent<MenuPanelComponentProps> = ({ wider }) => (\r\n <div className={classNames({ wider })}>\r\n <MenuScrollLayout\r\n // Bez usePaddedScrollbars by scrollbar překryl šipku kombinovaného tlačítka, na kterou by tak nešlo kliknout.\r\n usePaddedScrollbars={true}\r\n stickyHeaderContent={(\r\n <Logo qa=\"menu-logo-button\" />\r\n )}\r\n stickyFooterContent={(\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n spacingSizeBottom={SpacingSize.xs}\r\n >\r\n <MenuPanelItem id={MenuPanelItemId.user} section={MenuNavigationSectionType.static} qa=\"menu-user-button\" />\r\n <MenuExpandButton qa=\"menu-expand-button\" />\r\n </Layout>\r\n )}\r\n >\r\n <Layout flexDirection={FlexDirection.column}>\r\n <MenuPanelItem id={MenuPanelItemId.quickAccess} section={MenuNavigationSectionType.static} qa=\"menu-quick-access-button\" />\r\n <FormPanel />\r\n <NotificationPanel />\r\n </Layout>\r\n </MenuScrollLayout>\r\n </div>\r\n);\r\n","export * from \"./MenuPanelComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nexport type LoadingMenuItemComponentProps = {\r\n text: string | undefined;\r\n};\r\n\r\nexport const LoadingMenuItemComponent: FunctionComponent<LoadingMenuItemComponentProps> = ({ text = \"\" }) => (\r\n <div className=\"loading-menu-item-component\">\r\n {text}\r\n </div>\r\n);\r\n","export * from \"./LoadingMenuItemComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_LOADING } from \"../../locKeys\";\r\nimport { LoadingMenuItemComponent, LoadingMenuItemComponentProps } from \"../LoadingMenuItemComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<LoadingMenuItemComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n text: getPrimaryText(state, LOC_KEY_LOADING),\r\n});\r\n\r\nexport const LoadingMenuItem = connect(mapStateToProps)(LoadingMenuItemComponent);\r\n","export * from \"./LoadingMenuItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { AlignItems, FlexDirection, Icon, IconSize, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils/bemClassNames\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\nexport type NoNotificationItemsComponentProps = {\r\n text: string | undefined;\r\n};\r\n\r\nconst classNames = bemClassNames(\"no-notification-items-component\");\r\n\r\nexport const NoNotificationItemsComponent: FunctionComponent<NoNotificationItemsComponentProps> = ({ text = \"\" }) => (\r\n <div className={classNames()}>\r\n <Layout\r\n spacingSize={SpacingSize.l}\r\n alignItems={AlignItems.center}\r\n flexDirection={FlexDirection.column}\r\n >\r\n <Layout spacingSize={SpacingSize.s}>\r\n <Icon\r\n iconCode={IconCode.docArchiveEmpty}\r\n size={IconSize.large}\r\n />\r\n </Layout>\r\n {text && (\r\n <div className={classNames(\"text\")}>\r\n {text}\r\n </div>\r\n )}\r\n </Layout>\r\n </div>\r\n);\r\n","export * from \"./NoNotificationItemsComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_NO_NOTIFICATION_ITEMS } from \"../../locKeys\";\r\nimport { NoNotificationItemsComponent, NoNotificationItemsComponentProps } from \"../NoNotificationItemsComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<NoNotificationItemsComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n text: getPrimaryText(state, LOC_KEY_NO_NOTIFICATION_ITEMS),\r\n});\r\n\r\nexport const NoNotificationItems = connect(mapStateToProps)(NoNotificationItemsComponent);\r\n","export * from \"./NoNotificationItems\";\r\n","/**\r\n * Výška notifikační položky.\r\n */\r\nexport const NOTIFICATION_ITEM_HEIGHT = 56;\r\n","import \"formatjs-intl-relativetimeformat/polyfill\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { capitalize, invariant } from \"@multiweb/reactUtils\";\r\n\r\nconst { isToday, msPerDay } = bridge;\r\n\r\n/**\r\n * Vytvoří textovou reprezentaci časového okamžiku vzniku notifikace.\r\n * V některých případech využívá třídu `RelativeTimeFormat`, která je v Safari nepodporovaná a je nutné použít polyfill.\r\n * @param createdDate Časový okamžik vytvoření notifikace\r\n * @param localeCode Kód jazyka aplikace\r\n */\r\nexport const createCreatedDateText = (createdDate: Date, localeCode: string): string => {\r\n invariant(Intl.RelativeTimeFormat, \"Intl.RelativeTimeFormat is undefined. Make sure the polyfill is working correctly.\");\r\n const now = new Date();\r\n const timestampDiff = now.getTime() - createdDate.getTime();\r\n const seconds = Math.floor(timestampDiff / 1000);\r\n const minutes = Math.floor(seconds / 60);\r\n const hours = Math.floor(minutes / 60);\r\n const days = Math.floor(hours / 24);\r\n\r\n const rtlHelper = (options: Intl.RelativeTimeFormatOptions, shift: number, unit: Intl.RelativeTimeFormatUnit) => capitalize(\r\n new Intl.RelativeTimeFormat(localeCode, options).format(shift, unit),\r\n );\r\n\r\n const localeHelper = (options: Intl.DateTimeFormatOptions) => capitalize(createdDate.toLocaleString(localeCode, options));\r\n\r\n if (seconds < 60) {\r\n return rtlHelper({ style: \"short\", numeric: \"auto\" }, 0, \"second\");\r\n }\r\n if (minutes < 60) {\r\n return rtlHelper({ style: \"short\" }, -minutes, \"minute\");\r\n }\r\n if (hours <= 5) {\r\n return rtlHelper({ style: \"short\" }, -hours, \"hour\");\r\n }\r\n const time = localeHelper({ hour: \"numeric\", minute: \"numeric\" });\r\n if (isToday(createdDate)) {\r\n const todayLocalization = rtlHelper({ numeric: \"auto\" }, 0, \"day\");\r\n return `${todayLocalization} ${time}`;\r\n }\r\n // Posun o den a kontrola na dnešní datum\r\n if (isToday(new Date(createdDate.getTime() + msPerDay))) {\r\n const yesterdayLocalization = rtlHelper({ numeric: \"auto\" }, -1, \"day\");\r\n return `${yesterdayLocalization} ${time}`;\r\n }\r\n if (days <= 7) {\r\n const weekDayLocalization = localeHelper({ weekday: \"short\" });\r\n return `${weekDayLocalization} ${time}`;\r\n }\r\n if (createdDate.getFullYear() === now.getFullYear()) {\r\n return localeHelper({ month: \"numeric\", day: \"numeric\" });\r\n }\r\n\r\n return localeHelper({ month: \"numeric\", day: \"numeric\", year: \"numeric\" });\r\n};\r\n","import React, { createRef, FunctionComponent, KeyboardEventHandler, MouseEventHandler, useContext } from \"react\";\r\n\r\nimport {\r\n AlignItems,\r\n BooleanSwitcher,\r\n BooleanSwitcherChildrenProps,\r\n FlexDirection,\r\n FlexGrow,\r\n Icon,\r\n IconColor,\r\n IconSize,\r\n JustifyContent,\r\n Layout,\r\n SpacingSize,\r\n} from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, TAB_INDEX_FOCUSABLE_ONLY, useContentOverflows, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { NOTIFICATIONS_HEADER_HEIGHT } from \"../../constants\";\r\nimport { ScrollContext } from \"../../context\";\r\nimport { activationKeyBlockHandler, activationMouseBlockHandler, createActivationKeyHandler, createActivationMouseHandler, createMenuCustomScroll } from \"../../utils\";\r\nimport { createCreatedDateText } from \"./utils\";\r\n\r\nexport type NotificationItemComponentProps = {\r\n /** Barva pozadí ikony při nepřečtené notifikaci */\r\n activeColorHex: string;\r\n /** Časový údaj vytvoření */\r\n createdDate: Date;\r\n /** Kód ikony notifikace */\r\n iconCode: IconCode;\r\n /** Obsah zprávy notifikace */\r\n text?: string;\r\n /** Callback volaný po kliknutí na notifikaci. Reaguje na primární i ostatní tlačítka myši (přidává se na onClick i onAuxClick). */\r\n onClick: MouseEventHandler;\r\n /** Nadpis notifikace */\r\n title?: string;\r\n /** Příznak, zda je notifikace nepřečtená */\r\n isUnread?: boolean;\r\n /** Příznak, zda je komponenta zaměřená */\r\n isFocused: boolean;\r\n /** Callback volaný při uvolnění klávesy */\r\n onKeyUp?: KeyboardEventHandler;\r\n /** Kód jazyk aplikace */\r\n localeCode: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"notification-item-component\");\r\n\r\nconst TITLE_PLACEHOLDER = \"—\";\r\n\r\n/** Komponenta slouží jako položka menu reprezentující notifikaci. */\r\nexport const NotificationItemComponent: FunctionComponent<NotificationItemComponentProps> = ({\r\n activeColorHex,\r\n createdDate,\r\n iconCode,\r\n isUnread = false,\r\n onClick,\r\n text,\r\n title,\r\n isFocused,\r\n onKeyUp,\r\n localeCode,\r\n}) => {\r\n const titleRef = createRef<HTMLDivElement>();\r\n const componentRef = createRef<HTMLDivElement>();\r\n const contentOverflows = useContentOverflows<HTMLDivElement>(titleRef);\r\n const titleText = title || TITLE_PLACEHOLDER;\r\n const createdDateText = createCreatedDateText(createdDate, localeCode);\r\n const scroll = useContext(ScrollContext);\r\n useSetFocus<HTMLDivElement>(isFocused, componentRef, createMenuCustomScroll(scroll, NOTIFICATIONS_HEADER_HEIGHT));\r\n const handleClick = createActivationMouseHandler(onClick);\r\n const handleKeyUp = createActivationKeyHandler(onKeyUp);\r\n return (\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: onMouseEnter, turnOff: onMouseLeave }: BooleanSwitcherChildrenProps) => (\r\n <div\r\n className={classNames({ active: isHovered || isFocused })}\r\n title={contentOverflows ? title : undefined}\r\n ref={componentRef}\r\n tabIndex={TAB_INDEX_FOCUSABLE_ONLY}\r\n onClick={handleClick}\r\n onAuxClick={handleClick}\r\n onMouseDown={activationMouseBlockHandler}\r\n onKeyUp={handleKeyUp}\r\n onKeyDown={activationKeyBlockHandler}\r\n {...{ onMouseEnter, onMouseLeave }}\r\n >\r\n <Layout\r\n spacingSizeVertical={SpacingSize.s}\r\n spacingSizeHorizontal={SpacingSize.m}\r\n flexGrow={FlexGrow.one}\r\n collapse={true}\r\n >\r\n <Layout\r\n flexDirection={FlexDirection.row}\r\n justifyContent={JustifyContent.center}\r\n alignItems={AlignItems.center}\r\n flexGrow={FlexGrow.one}\r\n collapse={true}\r\n >\r\n <Layout spacingSizeRight={SpacingSize.m}>\r\n <div\r\n className={classNames(\"badge\")}\r\n style={{ backgroundColor: isUnread ? activeColorHex : undefined }}\r\n >\r\n <Icon\r\n color={IconColor.whiteFixed}\r\n size={IconSize.small}\r\n {...{ iconCode }}\r\n />\r\n </div>\r\n </Layout>\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n justifyContent={JustifyContent.center}\r\n flexGrow={FlexGrow.one}\r\n collapse={true}\r\n >\r\n <Layout\r\n flexDirection={FlexDirection.row}\r\n justifyContent={JustifyContent.spaceBetween}\r\n collapse={true}\r\n >\r\n <div\r\n className={classNames(\"title\", { active: isUnread })}\r\n ref={titleRef}\r\n >\r\n {titleText}\r\n </div>\r\n <div className={classNames(\"timestamp\")}>\r\n {createdDateText}\r\n </div>\r\n </Layout>\r\n <div className={classNames(\"text\")}>\r\n {text}\r\n </div>\r\n </Layout>\r\n </Layout>\r\n </Layout>\r\n </div>\r\n )}\r\n </BooleanSwitcher>\r\n );\r\n};\r\n","export * from \"./constants\";\r\nexport * from \"./NotificationItemComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getLocaleCode } from \"@multiweb/reactCore/i18n\";\r\nimport { NotificationItemId } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isItemFocused, MenuFocusableItemType, MenuNavigationSectionType } from \"../../navigation\";\r\nimport {\r\n getNotificationItemActiveColorHex,\r\n getNotificationItemCreatedDate,\r\n getNotificationItemIconCode,\r\n getNotificationItemText,\r\n getNotificationItemTitle,\r\n isNotificationItemUnread,\r\n} from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\nimport { NotificationItemComponent, NotificationItemComponentProps } from \"../NotificationItemComponent\";\r\n\r\nexport type NotificationItemProps = {\r\n notificationItemId: NotificationItemId;\r\n};\r\n\r\ntype StateProps = Pick<\r\n NotificationItemComponentProps,\r\n \"activeColorHex\" | \"createdDate\" | \"iconCode\" | \"isUnread\" | \"text\" | \"title\" | \"isFocused\" | \"localeCode\"\r\n>;\r\n\r\ntype DispatchProps = {\r\n notificationItemActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NotificationItemProps, IAppState> = (state, { notificationItemId }) => ({\r\n activeColorHex: getNotificationItemActiveColorHex(state, notificationItemId),\r\n createdDate: getNotificationItemCreatedDate(state, notificationItemId),\r\n iconCode: getNotificationItemIconCode(state, notificationItemId),\r\n isUnread: isNotificationItemUnread(state, notificationItemId),\r\n text: getNotificationItemText(state, notificationItemId),\r\n title: getNotificationItemTitle(state, notificationItemId),\r\n isFocused: isItemFocused(state, { itemId: notificationItemId, type: MenuFocusableItemType.notificationItem, section: MenuNavigationSectionType.notifications }),\r\n localeCode: getLocaleCode(state),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NotificationItemProps> = ({\r\n notificationItemActivated: createMenuItemActivatedAction,\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, NotificationItemProps, NotificationItemComponentProps> = (\r\n { activeColorHex, createdDate, iconCode, isUnread, text, title, isFocused, localeCode },\r\n { notificationItemActivated },\r\n { notificationItemId },\r\n) => ({\r\n activeColorHex,\r\n createdDate,\r\n iconCode,\r\n isUnread,\r\n text,\r\n title,\r\n isFocused,\r\n localeCode,\r\n onClick: createOpenableInTabItemMouseActivationHandler(notificationItemId, MenuItemActivatedType.notificationItem, MenuNavigationSectionType.notifications, notificationItemActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(notificationItemId, MenuItemActivatedType.notificationItem, MenuNavigationSectionType.notifications, notificationItemActivated),\r\n});\r\n\r\nexport const NotificationItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(NotificationItemComponent);\r\n","export * from \"./NotificationItem\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, ComponentSize, TextButton, TextButtonProps } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils/constants\";\r\nimport { IAppState, NoneOwnProps, TextAlign } from \"@multiweb/types/react\";\r\nimport { createSetActiveGroupNotificationsAsReadedAction } from \"../../actions\";\r\nimport { LOC_KEY_SET_ALL_NOTIFICATION_AS_READ } from \"../../locKeys\";\r\nimport { isFocused, SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_FOCUSABLE_ID } from \"../../navigation\";\r\n\r\ntype StateProps = Pick<TextButtonProps, \"isFocused\" | \"text\" | \"title\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n isFocused: isFocused(state, SET_GROUP_NOTIFICATIONS_AS_READ_BUTTON_FOCUSABLE_ID),\r\n text: getPrimaryText(state, LOC_KEY_SET_ALL_NOTIFICATION_AS_READ),\r\n title: getSecondaryText(state, LOC_KEY_SET_ALL_NOTIFICATION_AS_READ),\r\n});\r\n\r\ntype DispatchProps = Pick<TextButtonProps, \"onClick\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n onClick: createSetActiveGroupNotificationsAsReadedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, NoneOwnProps, TextButtonProps> = ({ isFocused, text, title }, { onClick }) => ({\r\n backgroundColor: ButtonBackgroundColor.transparent,\r\n size: ComponentSize.large,\r\n tabIndex: TAB_INDEX_FOCUSABLE_ONLY,\r\n text,\r\n title,\r\n isFocused,\r\n onClick,\r\n width: \"100%\",\r\n textAlign: TextAlign.center,\r\n});\r\n\r\n/**\r\n * Button pro označení všech notifikací jako přečtené.\r\n */\r\nexport const SetAllNotificationAsReadButton = connect(mapStateToProps, mapDispatchToProps, mergeProps)(TextButton);\r\n","export * from \"./SetAllNotificationAsReadButton\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, ComponentSize, TextButton, TextButtonProps } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText, getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { TAB_INDEX_FOCUSABLE_ONLY } from \"@multiweb/reactUtils/constants\";\r\nimport { IAppState, NoneOwnProps, TextAlign } from \"@multiweb/types/react\";\r\nimport { createShowGroupNotificationsAction } from \"../../actions\";\r\nimport { LOC_KEY_SHOW_GROUP_NOTIFICATIONS } from \"../../locKeys\";\r\nimport { isFocused, SHOW_ALL_NOTIFICATIONS_BUTTON_FOCUSABLE_ID } from \"../../navigation\";\r\n\r\ntype StateProps = Pick<TextButtonProps, \"isFocused\" | \"text\" | \"title\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n isFocused: isFocused(state, SHOW_ALL_NOTIFICATIONS_BUTTON_FOCUSABLE_ID),\r\n text: getPrimaryText(state, LOC_KEY_SHOW_GROUP_NOTIFICATIONS),\r\n title: getSecondaryText(state, LOC_KEY_SHOW_GROUP_NOTIFICATIONS),\r\n});\r\n\r\ntype DispatchProps = Pick<TextButtonProps, \"onClick\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n onClick: createShowGroupNotificationsAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, NoneOwnProps, TextButtonProps> = ({ isFocused, text, title }, { onClick }) => ({\r\n backgroundColor: ButtonBackgroundColor.transparent,\r\n size: ComponentSize.large,\r\n tabIndex: TAB_INDEX_FOCUSABLE_ONLY,\r\n text,\r\n title,\r\n isFocused,\r\n onClick,\r\n width: \"100%\",\r\n textAlign: TextAlign.center,\r\n});\r\n\r\n/**\r\n * Získává data pro tlačítko pro zobrazení všech notifikací.\r\n */\r\nexport const ShowAllNotificationsButton = connect(mapStateToProps, mapDispatchToProps, mergeProps)(TextButton);\r\n","export * from \"./ShowAllNotificationsButton\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\nimport { Index, InfiniteLoader } from \"react-virtualized\";\r\n\r\nimport { JustifyContent, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { asyncDoNothing } from \"@multiweb/reactUtils/constants\";\r\nimport { NotificationItemId } from \"@multiweb/types/contracts\";\r\nimport { LoadingMenuItem } from \"../LoadingMenuItem\";\r\nimport { MenuTitle } from \"../MenuTitle\";\r\nimport { MenuVirtualizedList } from \"../MenuVirtualizedList\";\r\nimport { NoNotificationItems } from \"../NoNotificationItems\";\r\nimport { NotificationItem } from \"../NotificationItem\";\r\nimport { NOTIFICATION_ITEM_HEIGHT } from \"../NotificationItemComponent\";\r\nimport { SetAllNotificationAsReadButton } from \"../SetAllNotificationAsReadButton\";\r\nimport { ShowAllNotificationsButton } from \"../ShowAllNotificationsButton\";\r\nimport { NotificationListComponentProps } from \"./NotificationListComponentProps\";\r\n\r\nexport { NotificationListComponentProps };\r\n\r\n/** Nastavení cache pro virtualizovaný seznam */\r\nconst cellMeasureCacheParams = {\r\n defaultHeight: NOTIFICATION_ITEM_HEIGHT,\r\n minHeight: NOTIFICATION_ITEM_HEIGHT,\r\n fixedWidth: true,\r\n};\r\n\r\n/** Komponenta slouží pro vykreslení množiny notifikačních položek menu. */\r\nexport const NotificationListComponent: FunctionComponent<NotificationListComponentProps> = ({\r\n notificationItemIds,\r\n hasNextPage,\r\n isNextPageLoading,\r\n loadNextPage,\r\n emptyNotificationGroup,\r\n title,\r\n focusedItemIndex,\r\n}) => {\r\n /**\r\n * Implementace nekonečného načítání inspirovaná oficiálním příkladem.\r\n * @see https://github.com/bvaughn/react-virtualized/blob/master/docs/creatingAnInfiniteLoadingList.md\r\n */\r\n const rowCount = hasNextPage ? notificationItemIds.length + 1 : notificationItemIds.length;\r\n\r\n const asyncLoadNextPage = () => new Promise<void>((resolve) => {\r\n loadNextPage();\r\n resolve();\r\n });\r\n\r\n const loadMoreRows = isNextPageLoading ? asyncDoNothing : asyncLoadNextPage;\r\n\r\n const isRowLoaded = ({ index }: Index) => index < notificationItemIds.length;\r\n\r\n const itemRenderer = (notificationItemId: NotificationItemId, index: number) => {\r\n if (!isRowLoaded({ index })) {\r\n return <LoadingMenuItem />;\r\n }\r\n\r\n return <NotificationItem {...{ notificationItemId }} />;\r\n };\r\n\r\n const keyGenerator = (notificationItemId: NotificationItemId) => notificationItemId.toString();\r\n\r\n if (emptyNotificationGroup) {\r\n return (\r\n <Fragment>\r\n <MenuTitle text={title} />\r\n <NoNotificationItems />\r\n </Fragment>\r\n );\r\n }\r\n\r\n // Nulový identifikátor pro načítací indikátor v případě načítání další stránky\r\n const items = hasNextPage ? [...notificationItemIds, 0] : notificationItemIds;\r\n\r\n return (\r\n <InfiniteLoader {...{ isRowLoaded, loadMoreRows, rowCount }}>\r\n {({ onRowsRendered, registerChild }) => (\r\n <MenuVirtualizedList\r\n stickyHeaderContent={<MenuTitle text={title} />}\r\n stickyFooterContent={notificationItemIds.length && (\r\n <Fragment>\r\n <Layout spacingSizeTop={SpacingSize.s} spacingSizeHorizontal={SpacingSize.s} justifyContent={JustifyContent.center}>\r\n <ShowAllNotificationsButton />\r\n </Layout>\r\n <Layout spacingSizeBottom={SpacingSize.s} spacingSizeHorizontal={SpacingSize.s} justifyContent={JustifyContent.center}>\r\n <SetAllNotificationAsReadButton />\r\n </Layout>\r\n </Fragment>\r\n )}\r\n ref={registerChild}\r\n {...{ cellMeasureCacheParams, itemRenderer, keyGenerator, onRowsRendered, focusedItemIndex, items }}\r\n />\r\n )}\r\n </InfiniteLoader>\r\n );\r\n};\r\n","export * from \"./NotificationListComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type GroupHeaderComponentProps = {\r\n label: string | undefined;\r\n};\r\n\r\nconst classNames = bemClassNames(\"menu-group-header-component\");\r\n\r\n/**\r\n * Komponenta pro nadpis skupiny v menu sekci Rychlý přístup.\r\n */\r\nexport const GroupHeaderComponent: FunctionComponent<GroupHeaderComponentProps> = ({ label }) => (\r\n <div className={classNames()} >\r\n {label}\r\n </div>\r\n);\r\n","export * from \"./GroupHeaderComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { GroupHeaderComponent, GroupHeaderComponentProps } from \"../GroupHeaderComponent\";\r\n\r\nexport type GroupHeaderProps = {\r\n /** Lokalizační klíč pro nadpis skupiny */\r\n locKey: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<GroupHeaderComponentProps, GroupHeaderProps, IAppState> = (state, { locKey }) => ({\r\n label: getPrimaryText(state, locKey),\r\n});\r\n\r\nexport const GroupHeader = connect(mapStateToProps)(GroupHeaderComponent);\r\n","export * from \"./GroupHeader\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, FlexGrow, Layout } from \"@multiweb/reactComponents\";\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { FavoriteMenuItem as FavoriteMenuItemType } from \"../../favoriteItems/types\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES } from \"../../locKeys\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuItem } from \"../MenuItem\";\r\nimport { ProfileItem } from \"../ProfileItem\";\r\n\r\nexport type QuickAccessFavoriteItemsComponentProps = {\r\n /** Pole identifikátorů oblíbených položek */\r\n readonly favoriteFormItems: readonly FavoriteMenuItemType[];\r\n};\r\n\r\n/** Vykresluje obsah části pro oblíbené položky v menu Rychlého přístupu. */\r\nexport const QuickAccessFavoriteComponent: FunctionComponent<QuickAccessFavoriteItemsComponentProps> = ({ favoriteFormItems }) => (\r\n <div {...createQA(\"quick-access-favorite-items\")} >\r\n {\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n flexGrow={FlexGrow.one}\r\n >\r\n {favoriteFormItems && favoriteFormItems.map(({ formId, profileId }) => (\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n flexGrow={FlexGrow.one}\r\n key={`${profileId}_${formId}`}\r\n >\r\n {profileId ?\r\n <ProfileItem key={profileId} parentFormItemId={formId} {...{ profileId, section: MenuNavigationSectionType.quickAccessFavorite }} qa= { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES }/>\r\n : <MenuItem formItemId={formId} {...{ section: MenuNavigationSectionType.quickAccessFavorite, qa: LOC_KEY_QUICK_ACCESS_MENU_FAVORITES }} /> }\r\n </Layout>\r\n ))}\r\n </Layout>\r\n }\r\n </div>);\r\n","export * from \"./QuickAccessFavoriteItemsComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getOrderedFavoriteMenuItems } from \"../../favoriteItems\";\r\nimport { QuickAccessFavoriteComponent, QuickAccessFavoriteItemsComponentProps } from \"../QuickAccessFavoriteItemsComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessFavoriteItemsComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n favoriteFormItems: getOrderedFavoriteMenuItems(state),\r\n});\r\n\r\nexport const QuickAccessFavoriteItems = connect(mapStateToProps)(QuickAccessFavoriteComponent);\r\n","export * from \"./QuickAccessFavoriteItems\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Display, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\n\r\n/** Layoutová komponenta definující odsazení pro nadpisy skupin v sekci Rychlý přístup. */\r\nexport const QuickAccessGroupHeaderLayout: FunctionComponent = ({ children }) => (\r\n <Layout\r\n spacingSizeTop={SpacingSize.m}\r\n spacingSizeBottom={SpacingSize.xxs}\r\n spacingSizeLeft={SpacingSize.m}\r\n display={Display.block}\r\n >\r\n {children}\r\n </Layout>\r\n);\r\n","export * from \"./QuickAccessGroupHeaderLayout\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { IOpenedFormHistoryInfo } from \"@multiweb/types/contracts\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS } from \"../../locKeys\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { OpenedFormHistoryInfoArray } from \"../../types\";\r\nimport { MenuItem } from \"../MenuItem\";\r\nimport { ProfileItem } from \"../ProfileItem\";\r\n\r\nexport type QuickAccessHistoryItemsComponentProps = {\r\n /** Seznam formulářů otevřených v minulosti. */\r\n openedFormsHistoryInfo: OpenedFormHistoryInfoArray;\r\n};\r\n\r\n/** Vykresluje obsah části pro historicky otevřené položky v menu Rychlého přístupu. */\r\nexport const QuickAccessHistoryItemsComponent: FunctionComponent<QuickAccessHistoryItemsComponentProps> = ({ openedFormsHistoryInfo }) => (\r\n <div {...createQA(\"quick-access-history\")}>\r\n {openedFormsHistoryInfo.map((openedFormHistoryInfo: IOpenedFormHistoryInfo) =>\r\n createHistoryFormComponent(openedFormHistoryInfo),\r\n )}\r\n </div>\r\n);\r\n\r\n/**\r\n * Vybere vhodný typ komponenty pro zobrazení historicky otevřeného formuláře a vytvoří ji s hodnotou klíče sestavenou podle typu.\r\n * @param openedFormHistoryInfo Údaje o historicky otevřeném formuláři.\r\n * @return Vytvořená komponenta.\r\n */\r\nconst createHistoryFormComponent = (openedFormHistoryInfo: IOpenedFormHistoryInfo) => {\r\n const { profileId, menuItemId } = openedFormHistoryInfo;\r\n const section = MenuNavigationSectionType.quickAccessHistoric;\r\n if (profileId) {\r\n return <ProfileItem key={`profile-${profileId}`} parentFormItemId={menuItemId} profileId={profileId} qa={LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS} openActionEnabled={false} section={section}/>;\r\n } else {\r\n return <MenuItem key={`form-${menuItemId}`} formItemId={menuItemId} qa={LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS} openActionEnabled={false} section={section}/>;\r\n }\r\n};\r\n","export * from \"./QuickAccessHistoryItemsComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getOpenedFormsHistoryInfo } from \"../../historyItems\";\r\nimport { QuickAccessHistoryItemsComponent, QuickAccessHistoryItemsComponentProps } from \"../QuickAccessHistoryItemsComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessHistoryItemsComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n openedFormsHistoryInfo: getOpenedFormsHistoryInfo(state),\r\n});\r\n\r\nexport const QuickAccessHistoryItems = connect(mapStateToProps)(QuickAccessHistoryItemsComponent);\r\n","export * from \"./QuickAccessHistoryItems\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getSecondaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { LOC_KEY_ACTION_ITEM_CLOSE } from \"../../locKeys\";\r\nimport { createActionItemFocusedAction, createFocusableItemId, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { ActionItemHoverType, MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { ActionItemComponent, ActionItemComponentProps } from \"../ActionItemComponent\";\r\n\r\nexport type CloseActionItemProps = {\r\n /** Identifikátor otevřené instance formuláře. */\r\n formInstanceId: string;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Příznak, zda se má použít barva pozadí pro submenu. */\r\n hasSubmenuBackground?: boolean;\r\n /** Příznak, zda má tlačítko vypadat jako po najetí myši. */\r\n isActive?: boolean;\r\n};\r\n\r\ntype StateProps = {\r\n title: string | undefined;\r\n isFocused: boolean;\r\n};\r\n\r\ntype DispatchProps = {\r\n actionActivated: typeof createMenuItemActivatedAction;\r\n actionItemFocused: typeof createActionItemFocusedAction;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, CloseActionItemProps, IAppState> = (state, { formInstanceId, section }) => ({\r\n title: getSecondaryText(state, LOC_KEY_ACTION_ITEM_CLOSE),\r\n isFocused: isItemFocused(state, { itemId: formInstanceId, type: MenuFocusableItemType.closeActionItem, section }),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, CloseActionItemProps> = ({\r\n actionActivated: createMenuItemActivatedAction,\r\n actionItemFocused: createActionItemFocusedAction,\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, CloseActionItemProps, ActionItemComponentProps> = (\r\n { title, isFocused },\r\n { actionActivated, actionItemFocused },\r\n { formInstanceId, isActive, hasSubmenuBackground, section },\r\n) => ({\r\n title,\r\n onClick: createMenuItemMouseActivationHandler(formInstanceId, MenuItemActivatedType.closeActionItem, section, actionActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(formInstanceId, MenuItemActivatedType.closeActionItem, section, actionActivated),\r\n iconCode: IconCode.uiCrossSmall,\r\n isActive,\r\n hasSubmenuBackground,\r\n hoverType: ActionItemHoverType.danger,\r\n isFocused,\r\n actionItemFocused: () => actionItemFocused(createFocusableItemId(formInstanceId, MenuFocusableItemType.closeActionItem, section)),\r\n});\r\n\r\n/**\r\n * ActionItem pro zavření formuláře.\r\n */\r\nexport const CloseActionItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ActionItemComponent);\r\n","export * from \"./CloseActionItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { ActionMenu } from \"../ActionMenu\";\r\nimport { CloseActionItem } from \"../CloseActionItem\";\r\nimport { FavoriteActionItem } from \"../FavoriteActionItem\";\r\nimport { OpenActionItem } from \"../OpenActionItem\";\r\nimport { OpenInTabActionItem } from \"../OpenInTabActionItem\";\r\n\r\nexport type OpenedFormRightPartComponentProps = {\r\n /** Indikátor, zda je položka aktivní. */\r\n isActive: boolean;\r\n /** Identifikátor otevřené instance formuláře. */\r\n formInstanceId: string;\r\n /** Indikátor, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n /** Povoluje zobrazení akce pro přidání formuláře do oblíbených. */\r\n isFavoriteActionEnabled: boolean;\r\n /** Povoluje zobrazení akce pro zavření instance formuláře. */\r\n isCloseActionEnabled: boolean;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n};\r\n\r\n/**\r\n * Menu historie obsahuje 2 části: \"otevřené položky\" a \"historické položky\".\r\n * Část \"otevřené položky\" zobrazuje různé typy položek.\r\n * Jedním z typů těchto položek je OpenedForm = \"otevřený formulář, pro který neexistuje položka v navigačním menu\".\r\n * Komponenta slouží jako pravá část (kontextové menu) pro OpenedForm.\r\n */\r\nexport const OpenedFormRightPartComponent: FunctionComponent<OpenedFormRightPartComponentProps> = ({\r\n isActive,\r\n formInstanceId,\r\n isActionItemFocused,\r\n isFavoriteActionEnabled,\r\n isCloseActionEnabled,\r\n section,\r\n}) => {\r\n const actions = [];\r\n if (isFavoriteActionEnabled) {\r\n actions.push(<FavoriteActionItem key=\"favoriteAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openedInstanceFavoriteActionItem} section={section} />);\r\n }\r\n actions.push(\r\n <OpenActionItem key=\"openAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceActionItem} section={section} />,\r\n <OpenInTabActionItem key=\"openInTabAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceInTabActionItem} section={section} />,\r\n );\r\n if (isCloseActionEnabled) {\r\n actions.push(<CloseActionItem key=\"closeAction\" {...{ formInstanceId, section }} />);\r\n }\r\n return (\r\n <ActionMenu {...{ isActive, isActionItemFocused }}>\r\n {actions}\r\n </ActionMenu>\r\n );\r\n};\r\n","export * from \"./OpenedFormRightPartComponent\";\r\n","import React from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isFormItemInstanceFavoriteActionEnabled } from \"../../favoriteItems\";\r\nimport { isActionItemFocused, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { getFormInstanceLabel, getOpenedFormFormCode, isOpenedItemActive } from \"../../openedItems\";\r\nimport { isFormItemInstanceCloseActionEnabled } from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { OpenedFormRightPartComponent } from \"../OpenedFormRightPartComponent\";\r\n\r\nexport type OpenedFormProps = {\r\n /** Identifikátor otevřené instance formuláře. */\r\n formInstanceId: string;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n} & QAProps;\r\n\r\ntype StateProps = {\r\n label: string | undefined;\r\n isActionItemFocused: boolean;\r\n isFavoriteActionEnabled: boolean;\r\n isCloseActionEnabled: boolean;\r\n formCode?: string;\r\n} & Pick<MenuItemComponentProps, \"isFocused\" | \"isActive\">;\r\n\r\ntype DispatchProps = {\r\n openedFormActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenedFormProps, IAppState> = (state, { formInstanceId, section }) => ({\r\n label: getFormInstanceLabel(state, formInstanceId),\r\n isFocused: isItemFocused(state, { itemId: formInstanceId, type: MenuFocusableItemType.openedItem, section }),\r\n isActionItemFocused: isActionItemFocused(state, { parentItemId: formInstanceId, section }),\r\n isActive: isOpenedItemActive(state, formInstanceId),\r\n isFavoriteActionEnabled: isFormItemInstanceFavoriteActionEnabled(state, formInstanceId),\r\n isCloseActionEnabled: isFormItemInstanceCloseActionEnabled(state, formInstanceId),\r\n formCode: getOpenedFormFormCode(state, formInstanceId),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, OpenedFormProps> = {\r\n openedFormActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, OpenedFormProps, MenuItemComponentProps> = (\r\n { label, isFocused, isActionItemFocused, isActive, isFavoriteActionEnabled, isCloseActionEnabled, formCode },\r\n { openedFormActivated },\r\n { formInstanceId, qa, section },\r\n) => ({\r\n label,\r\n onClick: createOpenableInTabItemMouseActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedFormActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedFormActivated),\r\n rightPartComponentCreator: (isActive) => <OpenedFormRightPartComponent {...{ isActive, formInstanceId, isActionItemFocused, isFavoriteActionEnabled, isCloseActionEnabled, section }} />,\r\n isFocused,\r\n isActive,\r\n qa: composeQA(composeQA(formInstanceId, formCode), qa),\r\n});\r\n\r\n/**\r\n * Získává data pro zobrazení položky otevřeného formuláře, který nemá položku v menu.\r\n */\r\nexport const OpenedForm = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./OpenedForm\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { ActionMenu } from \"../ActionMenu\";\r\nimport { CloseActionItem } from \"../CloseActionItem\";\r\nimport { FavoriteActionItem } from \"../FavoriteActionItem\";\r\nimport { OpenActionItem } from \"../OpenActionItem\";\r\nimport { OpenInTabActionItem } from \"../OpenInTabActionItem\";\r\n\r\nexport type OpenedFormItemRightPartComponentProps = {\r\n /** Indikátor, zda je položka aktivní. */\r\n isActive: boolean;\r\n /** Identifikátor otevřené instance formuláře. */\r\n formInstanceId: string;\r\n /** Povoluje zobrazení akcí otevírajících novou instanci formuláře. */\r\n windowActionsEnabled: boolean;\r\n /** Povoluje zobrazení akce pro zavření instance formuláře. */\r\n isCloseActionEnabled: boolean;\r\n /** Indikátor, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n};\r\n\r\n/**\r\n * Menu historie obsahuje 2 části: \"otevřené položky\" a \"historické položky\".\r\n * Část \"otevřené položky\" zobrazuje různé typy položek.\r\n * Jedním z typů těchto položek je OpenedFormItem = \"otevřený formulář, pro který existuje položka formuláře v navigačním menu\".\r\n * Komponenta slouží jako pravá část (kontextové menu) pro OpenedFormItem.\r\n */\r\nexport const OpenedFormItemRightPartComponent: FunctionComponent<OpenedFormItemRightPartComponentProps> = ({\r\n isActive,\r\n formInstanceId,\r\n windowActionsEnabled,\r\n isActionItemFocused,\r\n isCloseActionEnabled,\r\n section,\r\n}) => {\r\n const actions = [\r\n <FavoriteActionItem key=\"favoriteAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openedInstanceFavoriteActionItem} section={section} />,\r\n ];\r\n if (windowActionsEnabled) {\r\n actions.push(\r\n <OpenActionItem key=\"openAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceActionItem} section={section} />,\r\n <OpenInTabActionItem key=\"openInTabAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceInTabActionItem} section={section} />,\r\n );\r\n }\r\n if (isCloseActionEnabled) {\r\n actions.push(<CloseActionItem key=\"closeAction\" {...{ formInstanceId, section }} />);\r\n }\r\n return (\r\n <ActionMenu {...{ isActive, isActionItemFocused }}>\r\n {actions}\r\n </ActionMenu>\r\n );\r\n};\r\n","export * from \"./OpenedFormItemRightPartComponent\";\r\n","import React from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData } from \"@multiweb/types/contracts\";\r\n// @ts-ignore // 27385: [PP] 3. 2. 2020: Bez tohoto se do d.ts generovaly importy tohoto enumu s absolutním aliasem, kde být nemohou.\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isActionItemFocused, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { getFormInstanceLabel, isOpenedItemActive, OpenedFormItemInfo } from \"../../openedItems\";\r\nimport {\r\n areFormItemWindowActionsEnabled,\r\n getFormItem,\r\n getFormItemIconCode,\r\n isFormItemInstanceCloseActionEnabled,\r\n} from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { OpenedFormItemRightPartComponent } from \"../OpenedFormItemRightPartComponent\";\r\n\r\nexport type OpenedFormItemProps = {\r\n /** Informace o otevřené položce formuláře. */\r\n openedFormItemInfo: OpenedFormItemInfo;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n} & QAProps;\r\n\r\ntype DispatchProps = {\r\n openedFormItemActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\ntype StateProps = {\r\n windowActionsEnabled: boolean;\r\n formItem?: IMenuItemData;\r\n isActionItemFocused: boolean;\r\n isCloseActionEnabled: boolean;\r\n} & Pick<MenuItemComponentProps, \"label\" | \"iconCode\" | \"isFocused\" | \"isActive\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenedFormItemProps, IAppState> = (state, { openedFormItemInfo, section }) => {\r\n const { formInstanceId, menuItemId: formItemId } = openedFormItemInfo;\r\n return {\r\n formItem: getFormItem(state, formItemId),\r\n iconCode: getFormItemIconCode(state, formItemId),\r\n label: getFormInstanceLabel(state, formInstanceId),\r\n windowActionsEnabled: areFormItemWindowActionsEnabled(state, formItemId),\r\n isFocused: isItemFocused(state, { itemId: formInstanceId, type: MenuFocusableItemType.openedItem, section }),\r\n isActionItemFocused: isActionItemFocused(state, { parentItemId: formInstanceId, section }),\r\n isActive: isOpenedItemActive(state, openedFormItemInfo.formInstanceId),\r\n isCloseActionEnabled: isFormItemInstanceCloseActionEnabled(state, formInstanceId),\r\n };\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, OpenedFormItemProps> = {\r\n openedFormItemActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, OpenedFormItemProps, MenuItemComponentProps> = (\r\n { label, iconCode, windowActionsEnabled, isFocused, isActionItemFocused, isActive, isCloseActionEnabled },\r\n { openedFormItemActivated },\r\n { openedFormItemInfo, qa, section },\r\n) => {\r\n const { formInstanceId } = openedFormItemInfo;\r\n return {\r\n label,\r\n iconCode,\r\n onClick: createOpenableInTabItemMouseActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedFormItemActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedFormItemActivated),\r\n rightPartComponentCreator: (isActive) => (\r\n <OpenedFormItemRightPartComponent\r\n formInstanceId={openedFormItemInfo.formInstanceId}\r\n {...{ isActive, windowActionsEnabled, isCloseActionEnabled, isActionItemFocused, section }}\r\n />\r\n ),\r\n isFocused,\r\n isActive,\r\n qa: composeQA(composeQA(openedFormItemInfo.formInstanceId, openedFormItemInfo.formCode), qa),\r\n };\r\n};\r\n\r\n/**\r\n * Získává data pro zobrazení otevřené menu položky formuláře.\r\n */\r\nexport const OpenedFormItem = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./OpenedFormItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { ActionMenu } from \"../ActionMenu\";\r\nimport { CloseActionItem } from \"../CloseActionItem\";\r\nimport { FavoriteActionItem } from \"../FavoriteActionItem\";\r\nimport { OpenActionItem } from \"../OpenActionItem\";\r\nimport { OpenInTabActionItem } from \"../OpenInTabActionItem\";\r\n\r\nexport type OpenedProfileRightPartComponentProps = {\r\n /** Viz. dokumentace v ActionMenu. */\r\n isActive?: boolean;\r\n /** Identifikátor otevřené instance formuláře. */\r\n formInstanceId: string;\r\n /** Povoluje zobrazení akcí otevírajících novou instanci formuláře s aplikovaným profilem. */\r\n windowActionsEnabled: boolean;\r\n /** Povoluje zobrazení akce pro zavření instance profilu formuláře. */\r\n isCloseActionEnabled: boolean;\r\n /** Indikátor, zda je zaměřená některá akční položka. */\r\n isActionItemFocused: boolean;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Id profilu */\r\n profileId: number;\r\n /** Id menu */\r\n menuItemId: number;\r\n};\r\n\r\n/**\r\n * Menu historie obsahuje 2 části: \"otevřené položky\" a \"historické položky\".\r\n * Část \"otevřené položky\" zobrazuje různé typy položek.\r\n * Jedním z typů těchto položek je OpenedProfile = \"otevřený formulář s aplikovaným profilem, pro který existuje položka profilu v navigačním menu\".\r\n * Komponenta slouží jako pravá část (kontextové menu) pro OpenedProfile.\r\n */\r\nexport const OpenedProfileRightPartComponent: FunctionComponent<OpenedProfileRightPartComponentProps> = ({\r\n isActive,\r\n formInstanceId,\r\n windowActionsEnabled,\r\n isCloseActionEnabled,\r\n isActionItemFocused,\r\n section,\r\n profileId,\r\n menuItemId,\r\n}) => {\r\n if (!windowActionsEnabled && !isCloseActionEnabled) {\r\n return null;\r\n }\r\n\r\n const actions = [];\r\n if (menuItemId && profileId) {\r\n actions.push(\r\n <FavoriteActionItem key=\"favoriteAction\" itemId={menuItemId} activatableItemType={MenuItemActivatedType.formFavoriteActionItem} section={section} profileId={profileId}/>,\r\n );\r\n }\r\n\r\n if (windowActionsEnabled) {\r\n actions.push(\r\n <OpenActionItem key=\"openAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceActionItem} section={section}/>,\r\n <OpenInTabActionItem key=\"openInTabAction\" itemId={formInstanceId} activatableItemType={MenuItemActivatedType.openFormInstanceInTabActionItem} section={section} />,\r\n );\r\n }\r\n if (isCloseActionEnabled) {\r\n actions.push(<CloseActionItem key=\"closeAction\" {...{ formInstanceId, section }} />);\r\n }\r\n return (\r\n <ActionMenu {...{ isActive, isActionItemFocused }}>\r\n {actions}\r\n </ActionMenu>\r\n );\r\n};\r\n","export * from \"./OpenedProfileRightPartComponent\";\r\n","import React from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { composeQA } from \"@multiweb/reactUtils\";\r\nimport { IMenuItemData } from \"@multiweb/types/contracts\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { isActionItemFocused, isItemFocused, MenuFocusableItemType, NavigationSection } from \"../../navigation\";\r\nimport { getFormInstanceLabel, isOpenedItemActive, OpenedProfileInfo } from \"../../openedItems\";\r\nimport { areProfileWindowActionsEnabled, getFormItem, getFormItemIconCode, isFormItemInstanceCloseActionEnabled } from \"../../selectors\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createOpenableInTabItemMouseActivationHandler } from \"../../utils\";\r\n// @ts-ignore // 27385: [PP] 3. 2. 2020: Bez tohoto se do d.ts generovaly importy tohoto enumu s absolutním aliasem, kde být nemohou.\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { OpenedProfileRightPartComponent } from \"../OpenedProfileRightPartComponent\";\r\n\r\nexport type OpenedProfileProps = {\r\n /** Informace o otevřeném formuláři. */\r\n openedProfileInfo: OpenedProfileInfo;\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n} & QAProps;\r\n\r\ntype DispatchProps = {\r\n openedProfileActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\ntype StateProps = {\r\n windowActionsEnabled: boolean;\r\n formItem?: IMenuItemData;\r\n isActionItemFocused: boolean;\r\n isCloseActionEnabled: boolean;\r\n} & Pick<MenuItemComponentProps, \"label\" | \"iconCode\" | \"isFocused\" | \"isActive\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenedProfileProps, IAppState> = (state, { openedProfileInfo, section }) => {\r\n const { menuItemId, profileId, formInstanceId } = openedProfileInfo;\r\n return {\r\n iconCode: getFormItemIconCode(state, menuItemId),\r\n label: getFormInstanceLabel(state, formInstanceId),\r\n windowActionsEnabled: areProfileWindowActionsEnabled(state, profileId),\r\n formItem: getFormItem(state, menuItemId),\r\n isFocused: isItemFocused(state, { itemId: formInstanceId, type: MenuFocusableItemType.openedItem, section }),\r\n isActionItemFocused: isActionItemFocused(state, { parentItemId: formInstanceId, section }),\r\n isActive: isOpenedItemActive(state, formInstanceId),\r\n isCloseActionEnabled: isFormItemInstanceCloseActionEnabled(state, formInstanceId),\r\n };\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, OpenedProfileProps> = {\r\n openedProfileActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, OpenedProfileProps, MenuItemComponentProps> = (\r\n { label, iconCode, windowActionsEnabled, isFocused, isActionItemFocused, isActive, isCloseActionEnabled },\r\n { openedProfileActivated },\r\n { openedProfileInfo, qa, section },\r\n) => {\r\n const { formInstanceId, profileId, menuItemId } = openedProfileInfo;\r\n return {\r\n label,\r\n iconCode,\r\n isFocused,\r\n onClick: createOpenableInTabItemMouseActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedProfileActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(formInstanceId, MenuItemActivatedType.openedForm, section, openedProfileActivated),\r\n rightPartComponentCreator: (isActive) => (\r\n <OpenedProfileRightPartComponent\r\n formInstanceId={openedProfileInfo.formInstanceId}\r\n {...{ isActive, windowActionsEnabled, isCloseActionEnabled, isActionItemFocused, section, profileId, menuItemId }}\r\n />\r\n ),\r\n isActive,\r\n qa: composeQA(composeQA(openedProfileInfo.formInstanceId, openedProfileInfo.formCode), qa),\r\n };\r\n};\r\n\r\n/**\r\n * Získává data pro vykreslení položek otevřených formulářů s aplikovaným profilem.\r\n */\r\nexport const OpenedProfile = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./OpenedProfile\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { IOpenedFormInfo } from \"@multiweb/types/multiweb\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { OpenedFormItemInfo, OpenedProfileInfo } from \"../../openedItems\";\r\nimport { OpenedForm } from \"../OpenedForm\";\r\nimport { OpenedFormItem } from \"../OpenedFormItem\";\r\nimport { OpenedProfile } from \"../OpenedProfile\";\r\n\r\nexport type OpenedItemComponentProps = {\r\n /** Sekce, ve které je profil vykreslený. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n /** Informace o otevřeném formuláři */\r\n openedFormInfo?: IOpenedFormInfo;\r\n} & QAProps;\r\n\r\n/**\r\n * Vykreslí vhodný typ komponenty pro zobrazení otevřeného formuláře.\r\n * @param openedFormInfo Údaje o otevřeném formuláři.\r\n * @param qa\r\n * @return Vytvořená komponenta.\r\n */\r\nexport const OpenedItemComponent: FunctionComponent<OpenedItemComponentProps> = ({ openedFormInfo, section, qa }) => {\r\n if (!openedFormInfo) {\r\n return null;\r\n }\r\n const { formInstanceId, menuItemId, profileId } = openedFormInfo;\r\n if (profileId && menuItemId) {\r\n return <OpenedProfile openedProfileInfo={openedFormInfo as OpenedProfileInfo} qa={qa} section={section} />;\r\n } else if (menuItemId) {\r\n return <OpenedFormItem openedFormItemInfo={openedFormInfo as OpenedFormItemInfo} qa={qa} section={section} />;\r\n } else {\r\n return <OpenedForm formInstanceId={formInstanceId} qa={qa} section={section}/>;\r\n }\r\n};\r\n","export * from \"./OpenedItemComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { getOpenedFormInfo } from \"../../openedItems\";\r\nimport { OpenedItemComponent, OpenedItemComponentProps } from \"../OpenedItemComponent\";\r\n\r\nexport type OpenedItemProps = {\r\n readonly formInstanceId: string;\r\n /** Sekce, ve které je profil vykreslený. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n} & QAProps;\r\n\r\ntype StateProps = Pick<OpenedItemComponentProps, \"openedFormInfo\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, OpenedItemProps, IAppState> = (state, { formInstanceId }) => ({\r\n openedFormInfo: getOpenedFormInfo(state, formInstanceId),\r\n});\r\n\r\nexport const OpenedItem = connect(mapStateToProps)(OpenedItemComponent);\r\n","export * from \"./OpenedItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS } from \"../../locKeys\";\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { OpenedItem } from \"../OpenedItem\";\r\n\r\nexport type QuickAccessOpenedItemsComponentProps = {\r\n /** Seznam aktuálně otevřených formulářů. */\r\n openedFormsIds: readonly string[];\r\n};\r\n\r\n/** Vykresluje obsah části pro otevřené položky v menu Rychlého přístupu. */\r\nexport const QuickAccessOpenedItemsComponent: FunctionComponent<QuickAccessOpenedItemsComponentProps> = ({ openedFormsIds }) => (\r\n <div {...createQA(\"quick-access-opened\")}>\r\n {openedFormsIds.map((formInstanceId) =>\r\n <OpenedItem key={formInstanceId} formInstanceId={formInstanceId} section={MenuNavigationSectionType.quickAccessOpened} qa={LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS} />,\r\n )}\r\n </div>\r\n);\r\n","export * from \"./QuickAccessOpenedItemsComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getOpenedFormsIds } from \"../../openedItems\";\r\nimport { QuickAccessOpenedItemsComponent, QuickAccessOpenedItemsComponentProps } from \"../QuickAccessOpenedItemsComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessOpenedItemsComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n openedFormsIds: getOpenedFormsIds(state),\r\n});\r\n\r\nexport const QuickAccessOpenedItems = connect(mapStateToProps)(QuickAccessOpenedItemsComponent);\r\n","export * from \"./QuickAccessOpenedItems\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_FAVORITES, LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS, LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS } from \"../../locKeys\";\r\nimport { hasOpenedFormsHistoryCountSet } from \"../../utils\";\r\nimport { GroupHeader } from \"../GroupHeader\";\r\nimport { QuickAccessFavoriteItems } from \"../QuickAccessFavoriteItems\";\r\nimport { QuickAccessGroupHeaderLayout } from \"../QuickAccessGroupHeaderLayout\";\r\nimport { QuickAccessHistoryItems } from \"../QuickAccessHistoryItems\";\r\nimport { QuickAccessOpenedItems } from \"../QuickAccessOpenedItems\";\r\n\r\n/** Obsah pro menu Rychlého přístupu v případě neaktivního vyhledávání. */\r\nexport const QuickAccessContent: FunctionComponent = () => (\r\n <Fragment>\r\n <QuickAccessGroupHeaderLayout>\r\n <GroupHeader locKey={LOC_KEY_QUICK_ACCESS_MENU_OPENED_ITEMS}/>\r\n </QuickAccessGroupHeaderLayout>\r\n <QuickAccessOpenedItems/>\r\n {\r\n hasOpenedFormsHistoryCountSet() &&\r\n <Fragment>\r\n <QuickAccessGroupHeaderLayout>\r\n <GroupHeader locKey={LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS}/>\r\n </QuickAccessGroupHeaderLayout>\r\n <QuickAccessHistoryItems/>\r\n </Fragment>\r\n }\r\n <QuickAccessGroupHeaderLayout>\r\n <GroupHeader locKey={LOC_KEY_QUICK_ACCESS_MENU_FAVORITES}/>\r\n </QuickAccessGroupHeaderLayout>\r\n <QuickAccessFavoriteItems/>\r\n </Fragment>\r\n);\r\n","export * from \"./QuickAccessContent\";\r\n","import React, { createRef, FunctionComponent, MouseEventHandler, useEffect, useState } from \"react\";\r\n\r\nimport {\r\n AnimatedMount,\r\n AnimationType,\r\n BooleanSwitcher,\r\n BooleanSwitcherChildrenProps,\r\n FocusProvider,\r\n FocusProviderPropsChildrenProps,\r\n Icon,\r\n IconColor,\r\n IconSize,\r\n} from \"@multiweb/reactComponents\";\r\nimport { ANIMATION_DURATION_MS, bemClassNames, TAB_INDEX_FOCUSABLE_ONLY, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE, useSetFocus } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { AccessibilityProps } from \"@multiweb/types/react\";\r\n\r\nexport type SearchInputComponentOnChange = (value: string) => void;\r\n\r\nexport type FormSearchInputComponentProps = {\r\n /** Callback volaný při změně hodnoty vyhledávacího pole */\r\n onChange: SearchInputComponentOnChange;\r\n /** Callback volaný při kliknutí. */\r\n onClick?: MouseEventHandler<HTMLInputElement>;\r\n /** Hodnota zobrazovaná při prázdném vstupním poli */\r\n placeholder?: string;\r\n /** Aktuální hodnota vyhledávacího pole */\r\n value?: string;\r\n /** Příznak, zda je komponenta zaměřená. */\r\n isFocused: boolean;\r\n /** Příznak, zda se má při zaměření vybrat celý text. */\r\n selectAllText: boolean;\r\n /** Zda odstraňovat krajní mezery ve výsledném řetězci. */\r\n trimSpaces?: boolean;\r\n} & Pick<AccessibilityProps, \"tabIndex\">;\r\n\r\nconst classNames = bemClassNames(\"form-search-input-component\");\r\n\r\n/** Komponenta slouží jako textové pole pro vyhledávání formulářů v hlavním menu aplikace. */\r\nexport const FormSearchInputComponent: FunctionComponent<FormSearchInputComponentProps> = ({\r\n onChange,\r\n onClick,\r\n placeholder,\r\n value = \"\",\r\n isFocused,\r\n selectAllText,\r\n tabIndex = TAB_INDEX_FOCUSABLE_TAB_SEQUENCE,\r\n trimSpaces = true,\r\n}) => {\r\n // Stav se využívá pro podmíněné zobrazení tlačítka pro smazání inputu.\r\n const [valueState, setValueState] = useState<string>(value);\r\n\r\n // UseEffect zde umožňuje nastavit hodnotu inputu zvenčí.\r\n useEffect(() => {\r\n value && setValueState(value);\r\n }, [value]);\r\n\r\n const inputElement = createRef<HTMLInputElement>();\r\n useSetFocus<HTMLInputElement>(isFocused, inputElement, undefined, selectAllText);\r\n\r\n /**\r\n * Metoda pro nastavení hodnoty inputu a jeho případné zaměření\r\n * @param value nová hodnota inputu\r\n * @param focus zda-li se má po nastavení hodnoty input zaměřit\r\n */\r\n const setInput = (value: string, focus?: boolean) => {\r\n setValueState(value);\r\n if (trimSpaces) {\r\n value = value.trim(); // Odstraníme krajní mezery\r\n }\r\n onChange(value);\r\n focus && inputElement.current?.focus();\r\n };\r\n\r\n return (\r\n <FocusProvider tabIndex={TAB_INDEX_FOCUSABLE_ONLY}>\r\n {({ isFocused }: FocusProviderPropsChildrenProps) => (\r\n <div className={classNames({ focused: isFocused })}>\r\n <span className={classNames(\"search-icon\")}>\r\n <Icon\r\n iconCode={IconCode.uiSearch}\r\n color={IconColor.whiteFixed}\r\n size={IconSize.small}\r\n />\r\n </span>\r\n <input\r\n type=\"text\"\r\n className={classNames(\"input\")}\r\n onChange={(e) => setInput(e.target.value)}\r\n spellCheck={false}\r\n ref={inputElement}\r\n autoComplete=\"one-time-code\"\r\n aria-autocomplete=\"none\"\r\n value={valueState}\r\n {...{ placeholder, onClick, tabIndex }}\r\n />\r\n <div className={classNames(\"clear-button\")}>\r\n <AnimatedMount\r\n mounted={!!valueState}\r\n animationType={AnimationType.opacity}\r\n animationDurationMs={ANIMATION_DURATION_MS}\r\n >\r\n <BooleanSwitcher>\r\n {({ value: isHovered, turnOn: handleHover, turnOff: handleBlur }: BooleanSwitcherChildrenProps) => (\r\n <button\r\n onClick={() => setInput(\"\", true)}\r\n onMouseEnter={handleHover}\r\n onMouseLeave={handleBlur}\r\n onFocus={handleHover}\r\n onBlur={handleBlur}\r\n >\r\n <Icon\r\n iconCode={IconCode.uiCrossSmall}\r\n color={isHovered ? IconColor.whiteFixed : IconColor.grey1}\r\n size={IconSize.small}\r\n />\r\n </button>\r\n )}\r\n </BooleanSwitcher>\r\n </AnimatedMount>\r\n </div>\r\n </div>\r\n )}\r\n </FocusProvider>\r\n );\r\n};\r\n","export * from \"./FormSearchInputComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_SEARCH_FIELD_PLACEHOLDER } from \"../../locKeys\";\r\nimport { createSetFocusedItemAction, FORM_SEARCH_INPUT_FOCUSABLE_ID, getSelectAllTextInSearchInput, isFocused } from \"../../navigation\";\r\nimport { createSearchedTextChangedAction, getSearchedText } from \"../../search\";\r\nimport { FormSearchInputComponent, FormSearchInputComponentProps } from \"../FormSearchInputComponent\";\r\n\r\ntype StateProps = Pick<FormSearchInputComponentProps, \"placeholder\" | \"value\" | \"isFocused\" | \"selectAllText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n value: getSearchedText(state),\r\n placeholder: getPrimaryText(state, LOC_KEY_SEARCH_FIELD_PLACEHOLDER),\r\n isFocused: isFocused(state, FORM_SEARCH_INPUT_FOCUSABLE_ID),\r\n selectAllText: getSelectAllTextInSearchInput(state),\r\n});\r\n\r\ntype DispatchProps = Pick<FormSearchInputComponentProps, \"onChange\" | \"onClick\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = (dispatch) => ({\r\n onChange: (searchedText) => dispatch(createSearchedTextChangedAction(searchedText)),\r\n onClick: () => dispatch(createSetFocusedItemAction(FORM_SEARCH_INPUT_FOCUSABLE_ID)),\r\n});\r\n\r\n/**\r\n * Tvoří kontrolované pole pro vyhledávání - poskytuje aktuální hodnotu a callback pro její změnu. Získává lokalizovaný placeholder.\r\n */\r\nexport const FormSearchInput = connect(mapStateToProps, mapDispatchToProps)(FormSearchInputComponent);\r\n","export * from \"./FormSearchInput\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { FormSearchInput } from \"../FormSearchInput\";\r\nimport { MenuTitle } from \"../MenuTitle\";\r\n\r\nexport type QuickAccessMenuHeaderComponentProps = {\r\n /** Lokalizovaný nadpis pro menu Rychlý přístup */\r\n title: string | undefined;\r\n};\r\n\r\n/** Komponenta hlavičky menu Rychlý přístup. Obsahuje nadpis a pole pro vyhledávání. */\r\nexport const QuickAccessMenuHeaderComponent: FunctionComponent<QuickAccessMenuHeaderComponentProps> = ({ title }) => (\r\n <Fragment>\r\n <MenuTitle text={title} />\r\n <Layout\r\n spacingSizeVertical={SpacingSize.xs}\r\n spacingSizeHorizontal={SpacingSize.m}\r\n >\r\n <FormSearchInput />\r\n </Layout>\r\n </Fragment>\r\n);\r\n","export * from \"./QuickAccessMenuHeaderComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_KEY_MENU_PANEL_QUICK_ACCESS } from \"../../locKeys\";\r\nimport { QuickAccessMenuHeaderComponent, QuickAccessMenuHeaderComponentProps } from \"../QuickAccessMenuHeaderComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessMenuHeaderComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n title: getPrimaryText(state, LOC_KEY_MENU_PANEL_QUICK_ACCESS),\r\n});\r\n\r\n/** Získává lokalizovaný nadpis pro menu vyhledávání */\r\nexport const QuickAccessMenuHeader = connect(mapStateToProps)(QuickAccessMenuHeaderComponent);\r\n","export * from \"./QuickAccessMenuHeader\";\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { CellMeasurerCacheParams } from \"react-virtualized\";\r\n\r\nimport { DEFAULT_FORM_ITEM_HEIGHT } from \"../../constants\";\r\nimport { LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS } from \"../../locKeys\";\r\nimport { logger } from \"../../logger\";\r\nimport { searchGroupToNavigationSection } from \"../../navigation\";\r\nimport { SearchResult, SearchResultType } from \"../../search\";\r\nimport { GroupHeader } from \"../GroupHeader\";\r\nimport { MenuItem } from \"../MenuItem\";\r\nimport { MenuVirtualizedList, MenuVirtualizedListItemRenderer, MenuVirtualizedListKeyGenerator } from \"../MenuVirtualizedList\";\r\nimport { OpenedItem } from \"../OpenedItem\";\r\nimport { ProfileItem } from \"../ProfileItem\";\r\nimport { QuickAccessGroupHeaderLayout } from \"../QuickAccessGroupHeaderLayout\";\r\nimport { QuickAccessMenuHeader } from \"../QuickAccessMenuHeader\";\r\n\r\nexport type QuickAccessSearchResultsComponentProps = {\r\n /** Výsledky vyhledávání */\r\n searchResults: ReadonlyArray<SearchResult>;\r\n /** Index zaměřené položky ve výsledcích vyhledání. */\r\n focusedItemIndex: number | undefined;\r\n};\r\n\r\nconst cellMeasureCacheParams: CellMeasurerCacheParams = {\r\n defaultHeight: DEFAULT_FORM_ITEM_HEIGHT,\r\n minHeight: DEFAULT_FORM_ITEM_HEIGHT,\r\n fixedWidth: true,\r\n};\r\n\r\nexport const QuickAccessSearchResultsComponent: FunctionComponent<QuickAccessSearchResultsComponentProps> = ({ searchResults, focusedItemIndex }) => (\r\n <MenuVirtualizedList\r\n stickyHeaderContent={<QuickAccessMenuHeader />}\r\n items={searchResults}\r\n {...{ itemRenderer, keyGenerator, cellMeasureCacheParams, focusedItemIndex }}\r\n />\r\n);\r\n\r\nconst keyGenerator: MenuVirtualizedListKeyGenerator<SearchResult> = ({ id, type, searchGroup }) => `${searchGroup}-${type}-${id}`;\r\n\r\nconst itemRenderer: MenuVirtualizedListItemRenderer<SearchResult> = ({ id, type, searchGroup }) => {\r\n const openActionEnabled = searchGroup !== LOC_KEY_QUICK_ACCESS_MENU_HISTORY_ITEMS;\r\n const section = searchGroupToNavigationSection(searchGroup);\r\n if (type === SearchResultType.groupHeader) {\r\n return (\r\n <QuickAccessGroupHeaderLayout>\r\n <GroupHeader locKey={id as string}/>\r\n </QuickAccessGroupHeaderLayout>\r\n );\r\n } else if (type === SearchResultType.formInstance) {\r\n return (\r\n <OpenedItem formInstanceId={id as string} section={section} qa={searchGroup} />\r\n );\r\n } else if (type === SearchResultType.form) {\r\n return (\r\n <MenuItem formItemId={id as number} qa={searchGroup} {...{ openActionEnabled, section }} />\r\n );\r\n } else if (type === SearchResultType.profile) {\r\n return (\r\n <ProfileItem profileId={id as number} qa={searchGroup} {...{ openActionEnabled, section }} />\r\n );\r\n } else {\r\n logger.error(\"Cannot render search result with id %s because it has unknown type: %s\", id, type);\r\n return <div>Unknown item: {type} {id}</div>;\r\n }\r\n};\r\n","export * from \"./QuickAccessSearchResultsComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getFocusedFormItemIndex } from \"../../navigation\";\r\nimport { getSearchResults } from \"../../search\";\r\nimport { QuickAccessSearchResultsComponent, QuickAccessSearchResultsComponentProps } from \"../QuickAccessSearchResultsComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessSearchResultsComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n searchResults: getSearchResults(state),\r\n focusedItemIndex: getFocusedFormItemIndex(state),\r\n});\r\n\r\nexport const QuickAccessSearchResults = connect(mapStateToProps)(QuickAccessSearchResultsComponent);\r\n","export * from \"./QuickAccessSearchResults\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { MenuComponent } from \"../MenuComponent\";\r\nimport { QuickAccessContent } from \"../QuickAccessContent\";\r\nimport { QuickAccessMenuHeader } from \"../QuickAccessMenuHeader\";\r\nimport { QuickAccessSearchResults } from \"../QuickAccessSearchResults\";\r\nimport { QuickAccessMenuComponentProps } from \"./QuickAccessMenuComponentProps\";\r\n\r\nexport { QuickAccessMenuComponentProps };\r\n\r\nexport const QuickAccessMenuComponent: FunctionComponent<QuickAccessMenuComponentProps> = ({ isSearchActive }) => (\r\n isSearchActive ? (\r\n <MenuComponent\r\n isPlain={true}\r\n >\r\n <QuickAccessSearchResults />\r\n </MenuComponent>\r\n ) : (\r\n <MenuComponent\r\n headerContent={<QuickAccessMenuHeader />}\r\n >\r\n <QuickAccessContent />\r\n </MenuComponent>\r\n )\r\n);\r\n","export * from \"./QuickAccessMenuComponent\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { FlexDirection, FlexGrow, Layout } from \"@multiweb/reactComponents\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { FormItem } from \"../FormItem\";\r\n\r\nexport type FormListComponentProps = {\r\n /** Identifikátory formulářů */\r\n subtreeNodeIds: readonly number[];\r\n /** Sekce, ve které je položka vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n} & QAProps;\r\n\r\n/** Komponenta slouží pro vykreslení množiny formulářových položek menu. */\r\nexport const FormListComponent: FunctionComponent<FormListComponentProps> = ({ subtreeNodeIds, section, qa }) => (\r\n <Layout\r\n flexDirection={FlexDirection.column}\r\n flexGrow={FlexGrow.one}\r\n >\r\n {subtreeNodeIds.map((subtreeNodeId: number) => (\r\n <FormItem\r\n key={subtreeNodeId}\r\n formItemId={subtreeNodeId}\r\n section={section}\r\n qa={qa}\r\n />\r\n ))}\r\n </Layout>\r\n);\r\n","export * from \"./FormListComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { NavigationSection } from \"../../navigation\";\r\nimport { getFormChildIds } from \"../../selectors\";\r\nimport { FormListComponent, FormListComponentProps } from \"../FormListComponent\";\r\n\r\nexport type FormListProps = {\r\n subtreeRootId: number;\r\n /** Sekce, ve které je komponenta vykreslená. Slouží pro určování zaměření. */\r\n section: NavigationSection;\r\n};\r\n\r\ntype StateProps = Pick<FormListComponentProps, \"subtreeNodeIds\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, FormListProps, IAppState> = (state, { subtreeRootId }) => ({\r\n subtreeNodeIds: getFormChildIds(state, subtreeRootId),\r\n});\r\n\r\n/**\r\n * Získává ze stavu potomky vstupního formuláře.\r\n */\r\nexport const FormList = connect(mapStateToProps)(FormListComponent);\r\n","export * from \"./FormList\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { MenuNavigationSectionType } from \"../../navigation\";\r\nimport { FormList } from \"../FormList\";\r\nimport { MenuComponent } from \"../MenuComponent\";\r\nimport { MenuTitle } from \"../MenuTitle\";\r\n\r\nexport type SubmenuComponentProps = {\r\n /** Identifikátor podmenu */\r\n submenuId: number;\r\n /** Nadpis podmenu */\r\n title: string | undefined;\r\n};\r\n\r\n/** Komponenta reprezentuje podmenu. Umožňuje práci s položkami menu či otevírání dalších podmenu. */\r\nexport const SubmenuComponent: FunctionComponent<SubmenuComponentProps> = ({\r\n submenuId,\r\n title,\r\n}) => (\r\n <MenuComponent\r\n hasSubmenuBackground={true}\r\n headerContent={title && (\r\n <MenuTitle text={title} />\r\n )}\r\n >\r\n <FormList subtreeRootId={submenuId} section={MenuNavigationSectionType.forms} />\r\n </MenuComponent>\r\n);\r\n","export * from \"./SubmenuComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getFormItemTitle } from \"../../selectors\";\r\nimport { SubmenuComponent, SubmenuComponentProps } from \"../SubmenuComponent\";\r\n\r\nexport type SubmenuProps = {\r\n submenuId: number;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<Pick<SubmenuComponentProps, \"title\">, SubmenuProps, IAppState> = (state, { submenuId }) => ({\r\n title: getFormItemTitle(state, submenuId),\r\n});\r\n\r\n/**\r\n * Získá lokalizovaný nadpis pro submenu.\r\n */\r\nexport const Submenu = connect(mapStateToProps)(SubmenuComponent);\r\n","export * from \"./Submenu\";\r\n","import React, { createRef, Fragment, FunctionComponent, useEffect } from \"react\";\r\nimport { OverlayScrollbarsComponent } from \"overlayscrollbars-react\";\r\n\r\nimport { AnimatedWidth, AnimationPhase } from \"@multiweb/reactComponents\";\r\nimport { ANIMATION_DURATION_MS, bemClassNames, clamp } from \"@multiweb/reactUtils\";\r\nimport { MENU_PANEL_WIDTH, MENU_WIDTH } from \"../../constants\";\r\nimport { ActionItemBackgroundContext } from \"../../context\";\r\nimport { MenuScrollLayout } from \"../MenuScrollLayout\";\r\nimport { Submenu } from \"../Submenu\";\r\nimport { SubmenuListComponentProps } from \"./SubmenuListComponentProps\";\r\n\r\nexport { SubmenuListComponentProps };\r\n\r\nconst classNames = bemClassNames(\"submenu-list-component\");\r\n\r\n/** Komponenta obaluje všechny otevřené podmenu a umožňuje horizontální posouvání v případě přílišné šířky. */\r\nexport const SubmenuListComponent: FunctionComponent<SubmenuListComponentProps> = ({\r\n submenuIds,\r\n}) => {\r\n const ref = createRef<OverlayScrollbarsComponent>();\r\n const submenuListWidth = MENU_WIDTH * submenuIds.length;\r\n const maximalSubmenuListWidth = window.innerWidth - MENU_WIDTH - MENU_PANEL_WIDTH - 0.1 * window.innerWidth;\r\n const width = clamp(submenuListWidth, 0, maximalSubmenuListWidth);\r\n\r\n useEffect(() => {\r\n if (ref && ref.current) {\r\n const instance = ref.current.osInstance();\r\n if (instance) {\r\n // Použití maximálního celého čísla pro posun. Dle dokumentsce je možné zadat maximální posun\r\n // doprava hodnotou \"100%\". Toto použití však využívá funkci eval, která způsobí pád aplikace.\r\n instance.scroll({ x: Number.MAX_SAFE_INTEGER }, ANIMATION_DURATION_MS);\r\n }\r\n }\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [submenuIds]);\r\n\r\n return (\r\n <div className={classNames()}>\r\n <AnimatedWidth\r\n animationDurationMs={ANIMATION_DURATION_MS}\r\n animationPhase={AnimationPhase.start}\r\n {...{ width }}\r\n >\r\n <div className={classNames(\"content\")}>\r\n <MenuScrollLayout\r\n usePaddedScrollbars={true}\r\n vertical={false}\r\n {...{ ref }}\r\n >\r\n <div className={classNames(\"content\")}>\r\n <ActionItemBackgroundContext.Provider value={true}>\r\n {submenuIds.map((submenuId, index) => (\r\n <Fragment key={submenuId}>\r\n <Submenu {...{ submenuId }} />\r\n {(index < submenuIds.length - 1) && (\r\n <div className={classNames(\"divider\")} />\r\n )}\r\n </Fragment>\r\n ))}\r\n </ActionItemBackgroundContext.Provider>\r\n </div>\r\n </MenuScrollLayout>\r\n </div>\r\n </AnimatedWidth>\r\n </div>\r\n );\r\n};\r\n","export * from \"./SubmenuListComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { USER_MENU_LOGOUT_ITEM_ID } from \"../../constants\";\r\nimport { LOC_KEY_USER_MENU_LOGOUT } from \"../../locKeys\";\r\nimport { isFocused, LOGOUT_BUTTON_FOCUSABLE_ID, MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { MenuItemComponentVariant } from \"../MenuItemComponent/types\";\r\n\r\ntype StateProps = Pick<MenuItemComponentProps, \"label\" | \"isFocused\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n label: getPrimaryText(state, LOC_KEY_USER_MENU_LOGOUT),\r\n isFocused: isFocused(state, LOGOUT_BUTTON_FOCUSABLE_ID),\r\n});\r\n\r\ntype DispatchProps = {\r\n buttonActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n buttonActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, NoneOwnProps, MenuItemComponentProps> = (stateProps, { buttonActivated }) => ({\r\n ...stateProps,\r\n iconCode: IconCode.uiLogout,\r\n variant: MenuItemComponentVariant.logout,\r\n onClick: createMenuItemMouseActivationHandler(USER_MENU_LOGOUT_ITEM_ID, MenuItemActivatedType.logoutButton, MenuNavigationSectionType.static, buttonActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(USER_MENU_LOGOUT_ITEM_ID, MenuItemActivatedType.logoutButton, MenuNavigationSectionType.static, buttonActivated),\r\n});\r\n\r\nexport const LogoutButton = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./LogoutButton\";\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { isDarkTheme as isDarkThemeSelector } from \"@multiweb/reactCore/theme\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction } from \"../../actions\";\r\nimport { USER_MENU_TOGGLE_THEME_ITEM_ID } from \"../../constants\";\r\nimport { LOC_KEY_THEME_DARK, LOC_KEY_THEME_LIGHT } from \"../../locKeys\";\r\nimport { isItemFocused, MenuFocusableItemType, MenuNavigationSectionType } from \"../../navigation\";\r\nimport { MenuItemActivatedType } from \"../../types\";\r\nimport { createMenuItemKeyActivationHandler, createMenuItemMouseActivationHandler } from \"../../utils\";\r\nimport { MenuItemComponent, MenuItemComponentProps } from \"../MenuItemComponent\";\r\nimport { MenuItemComponentVariant } from \"../MenuItemComponent/types\";\r\n\r\ntype StateProps = Pick<MenuItemComponentProps, \"label\" | \"isFocused\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => {\r\n const isDarkTheme = isDarkThemeSelector(state);\r\n return {\r\n label: getPrimaryText(state, isDarkTheme ? LOC_KEY_THEME_LIGHT : LOC_KEY_THEME_DARK),\r\n iconCode: isDarkTheme ? IconCode.weatherSun : IconCode.weatherMoon,\r\n isFocused: isItemFocused(state, { itemId: USER_MENU_TOGGLE_THEME_ITEM_ID, type: MenuFocusableItemType.userMenuItem, section: MenuNavigationSectionType.static }),\r\n };\r\n};\r\n\r\ntype DispatchProps = {\r\n buttonActivated: typeof createMenuItemActivatedAction;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n buttonActivated: createMenuItemActivatedAction,\r\n};\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, NoneOwnProps, MenuItemComponentProps> = (stateProps, { buttonActivated }) => ({\r\n ...stateProps,\r\n variant: MenuItemComponentVariant.usermenu,\r\n onClick: createMenuItemMouseActivationHandler(USER_MENU_TOGGLE_THEME_ITEM_ID, MenuItemActivatedType.toggleThemeButton, MenuNavigationSectionType.static, buttonActivated),\r\n onKeyUp: createMenuItemKeyActivationHandler(USER_MENU_TOGGLE_THEME_ITEM_ID, MenuItemActivatedType.toggleThemeButton, MenuNavigationSectionType.static, buttonActivated),\r\n});\r\n\r\nexport const ToggleThemeButton = connect(mapStateToProps, mapDispatchToProps, mergeProps)(MenuItemComponent);\r\n","export * from \"./ToggleThemeButton\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { LogoutButton } from \"../LogoutButton\";\r\nimport { MenuComponent, MenuComponentContentPosition } from \"../MenuComponent\";\r\nimport { MenuTitle } from \"../MenuTitle\";\r\nimport { ToggleThemeButton } from \"../ToggleThemeButton\";\r\nimport { UserMenuComponentProps } from \"./UserMenuComponentProps\";\r\n\r\nexport { UserMenuComponentProps };\r\n\r\n/** Komponenta představuje sekci pro uživatele. */\r\nexport const UserMenuComponent: FunctionComponent<UserMenuComponentProps> = ({ title, userName, onMenuTitleClick }) => (\r\n <MenuComponent contentPosition={MenuComponentContentPosition.bottom} headerContent={\r\n <MenuTitle\r\n text={title}\r\n onClick={onMenuTitleClick}\r\n subtitle={userName}/>}\r\n >\r\n <ToggleThemeButton />\r\n <LogoutButton />\r\n </MenuComponent>\r\n);\r\n","export * from \"./UserMenuComponent\";\r\n","/** Výčet názvů komponent, které je možné přes custom modul přepsat */\r\nexport enum ReplaceableComponentNames {\r\n MenuPanelComponent = \"MenuPanelComponent\",\r\n SubmenuListComponent = \"SubmenuListComponent\",\r\n UserMenuComponent = \"UserMenuComponent\",\r\n FormMenuComponent = \"FormMenuComponent\",\r\n NotificationListComponent = \"NotificationListComponent\",\r\n QuickAccessMenuComponent = \"QuickAccessMenuComponent\",\r\n}\r\n","import { createRegisterReplaceableComponents } from \"@multiweb/reactCustomization\";\r\nimport { FormMenuComponent } from \"../components/FormMenuComponent\";\r\nimport { MenuPanelComponent } from \"../components/MenuPanelComponent\";\r\nimport { NotificationListComponent } from \"../components/NotificationListComponent\";\r\nimport { QuickAccessMenuComponent } from \"../components/QuickAccessMenuComponent\";\r\nimport { SubmenuListComponent } from \"../components/SubmenuListComponent\";\r\nimport { UserMenuComponent } from \"../components/UserMenuComponent\";\r\nimport { ReplaceableComponentNames } from \"./replaceableComponentNames\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const defaultComponentMap = {\r\n [ReplaceableComponentNames.MenuPanelComponent]: MenuPanelComponent,\r\n [ReplaceableComponentNames.SubmenuListComponent]: SubmenuListComponent,\r\n [ReplaceableComponentNames.UserMenuComponent]: UserMenuComponent,\r\n [ReplaceableComponentNames.FormMenuComponent]: FormMenuComponent,\r\n [ReplaceableComponentNames.NotificationListComponent]: NotificationListComponent,\r\n [ReplaceableComponentNames.QuickAccessMenuComponent]: QuickAccessMenuComponent,\r\n};\r\n\r\nexport const registerReplaceableComponents = createRegisterReplaceableComponents(defaultComponentMap);\r\n\r\nexport default { registerReplaceableComponents };\r\n","export { FormMenuComponentProps } from \"../components/FormMenuComponent/FormMenuComponentProps\";\r\nexport { MenuPanelComponentProps } from \"../components/MenuPanelComponent/MenuPanelComponentProps\";\r\nexport { NotificationListComponentProps } from \"../components/NotificationListComponent/NotificationListComponentProps\";\r\nexport { QuickAccessMenuComponentProps } from \"../components/QuickAccessMenuComponent/QuickAccessMenuComponentProps\";\r\nexport { SubmenuListComponentProps } from \"../components/SubmenuListComponent/SubmenuListComponentProps\";\r\nexport { UserMenuComponentProps } from \"../components/UserMenuComponent/UserMenuComponentProps\";\r\nexport { ReplaceableComponentNames } from \"./replaceableComponentNames\";\r\n","import { createGetInjectedComponent, createGetInjectedComponentOnRender } from \"@multiweb/reactCustomization\";\r\nimport { FormMenuComponentProps } from \"../components/FormMenuComponent/FormMenuComponentProps\";\r\nimport { MenuPanelComponentProps } from \"../components/MenuPanelComponent/MenuPanelComponentProps\";\r\nimport { NotificationListComponentProps } from \"../components/NotificationListComponent/NotificationListComponentProps\";\r\nimport { QuickAccessMenuComponentProps } from \"../components/QuickAccessMenuComponent/QuickAccessMenuComponentProps\";\r\nimport { SubmenuListComponentProps } from \"../components/SubmenuListComponent/SubmenuListComponentProps\";\r\nimport { UserMenuComponentProps } from \"../components/UserMenuComponent/UserMenuComponentProps\";\r\nimport { defaultComponentMap } from \"./registrator\";\r\nimport { ReplaceableComponentNames } from \"./replaceableComponentNames\";\r\n\r\ntype ReplaceableComponentProps = {\r\n [ReplaceableComponentNames.MenuPanelComponent]: MenuPanelComponentProps;\r\n [ReplaceableComponentNames.SubmenuListComponent]: SubmenuListComponentProps;\r\n [ReplaceableComponentNames.UserMenuComponent]: UserMenuComponentProps;\r\n [ReplaceableComponentNames.FormMenuComponent]: FormMenuComponentProps;\r\n [ReplaceableComponentNames.NotificationListComponent]: NotificationListComponentProps;\r\n [ReplaceableComponentNames.QuickAccessMenuComponent]: QuickAccessMenuComponentProps;\r\n};\r\n\r\nexport * from \".\";\r\n\r\nexport const getInjectedComponent = createGetInjectedComponent<ReplaceableComponentProps>(defaultComponentMap);\r\n\r\nexport const getInjectedComponentOnRender = createGetInjectedComponentOnRender<ReplaceableComponentProps>(defaultComponentMap);\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { UNKNOWN_KEY_TEXT } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_ARRAY } from \"@multiweb/reactUtils\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { getFocusedFormItemIndex } from \"../../navigation\";\r\nimport { getActiveSectionFormItemId, getFormChildIds, getFormItemTitle } from \"../../selectors\";\r\nimport { FormMenuComponentProps } from \"../FormMenuComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<FormMenuComponentProps, NoneOwnProps, IAppState> = (state) => {\r\n const formItemId = getActiveSectionFormItemId(state);\r\n return {\r\n title: formItemId ? getFormItemTitle(state, formItemId) : UNKNOWN_KEY_TEXT,\r\n formItemIds: formItemId ? getFormChildIds(state, formItemId) : EMPTY_ARRAY,\r\n focusedItemIndex: getFocusedFormItemIndex(state),\r\n };\r\n};\r\n\r\nexport const FormMenu = connect(mapStateToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.FormMenuComponent));\r\n","export * from \"./FormMenu\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { isFetching } from \"@multiweb/reactCore/fetching\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createLoadNextNotificationItemsPageAction } from \"../../actions\";\r\nimport { FETCHING_KEY_NOTIFICATION_ITEMS } from \"../../constants\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { getFocusedNotificationIndex } from \"../../navigation\";\r\nimport {\r\n allNotificationItemsLoaded,\r\n getActiveNotificationGroupTitle,\r\n getNotificationItemIds,\r\n isNotificationGroupEmpty,\r\n} from \"../../selectors\";\r\nimport { NotificationListComponentProps } from \"../NotificationListComponent\";\r\n\r\ntype StateProps = Pick<\r\n NotificationListComponentProps,\r\n \"notificationItemIds\" | \"hasNextPage\" | \"isNextPageLoading\" | \"emptyNotificationGroup\" | \"title\" | \"focusedItemIndex\"\r\n>;\r\n\r\ntype DispatchProps = Pick<NotificationListComponentProps, \"loadNextPage\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n notificationItemIds: getNotificationItemIds(state),\r\n hasNextPage: !allNotificationItemsLoaded(state),\r\n isNextPageLoading: isFetching(state, FETCHING_KEY_NOTIFICATION_ITEMS),\r\n emptyNotificationGroup: isNotificationGroupEmpty(state),\r\n title: getActiveNotificationGroupTitle(state),\r\n focusedItemIndex: getFocusedNotificationIndex(state),\r\n});\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n loadNextPage: createLoadNextNotificationItemsPageAction,\r\n};\r\n\r\nexport const NotificationList = connect(mapStateToProps, mapDispatchToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.NotificationListComponent));\r\n","export * from \"./NotificationList\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { MenuComponent } from \"../MenuComponent\";\r\nimport { NotificationList } from \"../NotificationList\";\r\n\r\n/** Sekce menu pro notifikační položky dané notifikační skupiny. */\r\nexport const NotificationMenu: FunctionComponent = () => (\r\n <MenuComponent isPlain={true}>\r\n <NotificationList />\r\n </MenuComponent>\r\n);\r\n","export * from \"./NotificationMenu\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { isSearchActive } from \"../../search\";\r\nimport { QuickAccessMenuComponentProps } from \"../QuickAccessMenuComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<QuickAccessMenuComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n isSearchActive: isSearchActive(state),\r\n});\r\n\r\nexport const QuickAccessMenu = connect(mapStateToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.QuickAccessMenuComponent));\r\n","export * from \"./QuickAccessMenu\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getDisplayName, getUserName } from \"@multiweb/reactCore/auth\";\r\nimport { createOpenFormAction, FormOpenMethod } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { UserMenuComponentProps } from \"../UserMenuComponent\";\r\n\r\ntype StateProps = Pick<UserMenuComponentProps, \"title\" | \"userName\"> ;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => {\r\n const userDisplayName = getDisplayName(state);\r\n const userName = getUserName(state);\r\n\r\n return {\r\n title: userDisplayName ?? userName ?? \"\",\r\n userName: userDisplayName && userName ? userName : \"\",\r\n };\r\n};\r\n\r\ntype DispatchProps = Pick<UserMenuComponentProps, \"onMenuTitleClick\">;\r\n\r\nconst formName = \"FRM.UserProfile.UserProfile\";\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = (dispatch) => ({\r\n onMenuTitleClick: () => dispatch(createOpenFormAction(formName, FormOpenMethod.newOrExisting, EMPTY_OBJECT)),\r\n});\r\n\r\nexport const UserMenu = connect(mapStateToProps, mapDispatchToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.UserMenuComponent));\r\n","export * from \"./UserMenu\";\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { MenuPanelItemId } from \"../../panelItems\";\r\nimport { getActiveSectionId, getPanelItem } from \"../../selectors\";\r\nimport { MenuPanelItemType, SectionId } from \"../../types\";\r\nimport { FormMenu } from \"../FormMenu\";\r\nimport { NotificationMenu } from \"../NotificationMenu\";\r\nimport { QuickAccessMenu } from \"../QuickAccessMenu\";\r\nimport { UserMenu } from \"../UserMenu\";\r\n\r\nexport type MenuComponent = typeof FormMenu | typeof UserMenu | typeof NotificationMenu | typeof QuickAccessMenu;\r\n\r\n/**\r\n * Získá komponentu sekce menu. Vrací undefined, pokud nemá aktivní sekce svoji komponentu.\r\n * @param state\r\n */\r\nexport const getSectionComponent: Selector<IAppState, MenuComponent | undefined> = (state) => {\r\n const activeSectionId = getActiveSectionId(state);\r\n\r\n const activePanelItem = getPanelItem(state, activeSectionId);\r\n if (!activePanelItem) {\r\n return undefined;\r\n }\r\n\r\n switch (activePanelItem.type) {\r\n case MenuPanelItemType.notificationGroup:\r\n return NotificationMenu;\r\n case MenuPanelItemType.form:\r\n return FormMenu;\r\n default:\r\n return menuComponentsMap.get(activeSectionId);\r\n }\r\n};\r\n\r\n/**\r\n * Mapa pro výběr komponenty pro aktivní sekci menu podle aktivního id sekce.\r\n */\r\nexport const menuComponentsMap: Map<SectionId, MenuComponent> = new Map([\r\n // QuickAccessMenu vyžaduje přetypování, jinak nastává chyba TS2769 s dlouhým popisem, kdo se více vyzná v TypeScriptu, může zkusit vyřešit.\r\n [MenuPanelItemId.quickAccess, QuickAccessMenu] as [SectionId, MenuComponent],\r\n [MenuPanelItemId.user, UserMenu],\r\n]);\r\n","import { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ConditionalMount, ConditionalMountProps } from \"@multiweb/reactComponents\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getSectionComponent, MenuComponent } from \"./selectors\";\r\n\r\ntype StateProps = {\r\n sectionComponent?: MenuComponent;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n sectionComponent: getSectionComponent(state),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, NoneOwnProps, ConditionalMountProps> = ({ sectionComponent }) => ({\r\n mounted: !!sectionComponent,\r\n Component: sectionComponent,\r\n});\r\n\r\n/**\r\n * Vykreslí menu podle aktivní sekce.\r\n */\r\nexport const Menu = connect(mapStateToProps, undefined, mergeProps)(ConditionalMount);\r\n","export * from \"./Menu\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { areMenuPanelCaptionsVisible } from \"../../selectors\";\r\nimport { MenuPanelComponentProps } from \"../MenuPanelComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<MenuPanelComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n wider: areMenuPanelCaptionsVisible(state),\r\n});\r\n\r\n/**\r\n * Napojuje komponentu panelu menu. Pro komponentu získá příznak zda položky menu panelu mají zobrazit popisky.\r\n * Podle toho se nastaví šířka panelu.\r\n */\r\nexport const MenuPanel = connect(mapStateToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.MenuPanelComponent));\r\n","export * from \"./MenuPanel\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getInjectedComponentOnRender, ReplaceableComponentNames } from \"../../customization/internalIndex\";\r\nimport { getActiveSubmenuIds } from \"../../selectors\";\r\nimport { SubmenuListComponentProps } from \"../SubmenuListComponent\";\r\n\r\nconst mapStateToProps: MapStateToProps<SubmenuListComponentProps, NoneOwnProps, IAppState> = (state) => ({\r\n submenuIds: getActiveSubmenuIds(state),\r\n});\r\n\r\n/**\r\n * Získá id všech submenu, která mají být zobrazená.\r\n */\r\nexport const SubmenuList = connect(mapStateToProps)(getInjectedComponentOnRender(ReplaceableComponentNames.SubmenuListComponent));\r\n","export * from \"./SubmenuList\";\r\n","import React, { FunctionComponent, KeyboardEvent, useEffect } from \"react\";\r\n\r\nimport { AnimatedMount, AnimationType, DelayedUnmount, Layout } from \"@multiweb/reactComponents\";\r\nimport { ANIMATION_DURATION_MS, createFocusWithinObserver, TAB_INDEX_FOCUSABLE_TAB_SEQUENCE } from \"@multiweb/reactUtils\";\r\nimport { MENU_WIDTH } from \"../../constants\";\r\nimport { FloatMenuPanel } from \"../FloatMenuPanel\";\r\nimport { Menu } from \"../Menu\";\r\nimport { MenuPanel } from \"../MenuPanel\";\r\nimport { SubmenuList } from \"../SubmenuList\";\r\n\r\nexport type MainMenuComponentProps = {\r\n /** Příznak, zda je menu viditelné - ať už překrývající či nikoli. */\r\n isMenuVisible?: boolean;\r\n /** Příznak, zda je otevřený seznam podmenu. */\r\n isSubmenuListExpanded?: boolean;\r\n /** Funkce pro načtení aliasů povolených kořenových uzlů hlavního navigačního menu. */\r\n loadAllowedMenuItemCodes: () => void;\r\n /** Funkce pro nastavení počátečního stavu pro rozbalení/sbalení menu. */\r\n setInitialExpandedState: () => void;\r\n /** Funkce pro nastavení příznaku pro zobrazovaní popisků v menu panelu. */\r\n setInitialMenuPanelCaptionsVisibility: () => void;\r\n /** Funkce pro zpracování události stisku klávesy. */\r\n onKeyPressed: (event: KeyboardEvent) => void;\r\n /** Funkce volaná, když je komponenta (nebo některý její potomek) zaměřena. Nevolá se pokud se zaměření pohybuje mezi potomky. */\r\n onFocusHandler?: () => void;\r\n /** Funkce volaná, když komponenta (nebo některý její potomek) ztratí zaměření. Nevolá se pokud se zaměření pohybuje mezi potomky. */\r\n onBlurHandler?: (documentHidden: boolean) => void;\r\n /** Příznak, zda je menu překrývající. */\r\n isMenuFloated?: boolean;\r\n /** Příznak, zda je aktivní float přechod menu. */\r\n menuFloatTransitionActive: boolean;\r\n};\r\n\r\n/** Komponenta reprezentuje celé hlavní menu. Skládá se ze tří částí – panelu menu, menu a podmenu. */\r\nexport const MainMenuComponent: FunctionComponent<MainMenuComponentProps> = ({\r\n isMenuVisible = false,\r\n isSubmenuListExpanded = false,\r\n loadAllowedMenuItemCodes,\r\n setInitialExpandedState,\r\n setInitialMenuPanelCaptionsVisibility,\r\n onKeyPressed,\r\n onFocusHandler,\r\n onBlurHandler,\r\n isMenuFloated = false,\r\n menuFloatTransitionActive,\r\n}) => {\r\n useEffect(() => {\r\n loadAllowedMenuItemCodes();\r\n setInitialExpandedState();\r\n setInitialMenuPanelCaptionsVisibility();\r\n // TODO [MB] - Opravit hook deps v rámci 30853.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n const { onFocus, onBlur } = createFocusWithinObserver(onFocusHandler, onBlurHandler);\r\n\r\n const menuContent = (\r\n <AnimatedMount\r\n mounted={isMenuVisible}\r\n animationDurationMs={ANIMATION_DURATION_MS}\r\n width={MENU_WIDTH}\r\n animationType={AnimationType.width}\r\n >\r\n <Menu />\r\n </AnimatedMount>\r\n );\r\n\r\n return (\r\n <div\r\n className=\"main-menu-component\"\r\n tabIndex={TAB_INDEX_FOCUSABLE_TAB_SEQUENCE}\r\n onKeyDown={onKeyPressed}\r\n {...{ onFocus, onBlur }}\r\n >\r\n <Layout>\r\n <MenuPanel />\r\n <FloatMenuPanel disabled={!(isMenuFloated || menuFloatTransitionActive)}>\r\n {menuContent}\r\n <DelayedUnmount\r\n delayMs={ANIMATION_DURATION_MS}\r\n mounted={isSubmenuListExpanded}\r\n >\r\n <FloatMenuPanel disabled={isMenuFloated}>\r\n <SubmenuList />\r\n </FloatMenuPanel>\r\n </DelayedUnmount>\r\n </FloatMenuPanel>\r\n </Layout>\r\n </div>\r\n );\r\n};\r\n","export * from \"./MainMenuComponent\";\r\n","import { ComponentType } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { toSerializableKeyEvent } from \"@multiweb/reactUtils\";\r\nimport { AllowedMenuItemCodes } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createSetAllowedMenuItemCodesAction, createSetMenuPanelCaptionsVisibilityAction, createSetMenuVisibilityAction } from \"../../actions\";\r\nimport { createFocusDefaultItemAction, createKeyPressedAction, createMenuFocusLostAction } from \"../../navigation\";\r\nimport { isMenuFloated, isMenuFloatTransitionActive, isMenuVisible, isSubmenuListExpanded } from \"../../selectors\";\r\nimport { MenuVisibility } from \"../../types\";\r\nimport { MainMenuComponent, MainMenuComponentProps } from \"../MainMenuComponent\";\r\n\r\nexport type MainMenuProps = {\r\n /** Aliasy povolených kořenových formulářových uzlů hlavního navigačního menu. */\r\n allowedMenuItemCodes: AllowedMenuItemCodes;\r\n /** Příznak, zda je menu v počátečním stavu viditelné a nepřekrývající. */\r\n showMenuExpanded: boolean;\r\n /** Pokud je true, u položek menu panelu se zobrazí popisek. Pokud je false, popisky se nezobrazí. */\r\n showMenuPanelCaptions: boolean;\r\n};\r\n\r\ntype StateProps = Pick<MainMenuComponentProps, \"isMenuVisible\" | \"isSubmenuListExpanded\" | \"isMenuFloated\" | \"menuFloatTransitionActive\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MainMenuProps, IAppState> = (state) => ({\r\n isMenuVisible: isMenuVisible(state),\r\n isMenuFloated: isMenuFloated(state),\r\n isSubmenuListExpanded: isSubmenuListExpanded(state),\r\n menuFloatTransitionActive: isMenuFloatTransitionActive(state),\r\n});\r\n\r\ntype DispatchProps = Pick<MainMenuComponentProps, \"loadAllowedMenuItemCodes\" | \"setInitialExpandedState\" | \"setInitialMenuPanelCaptionsVisibility\" | \"onKeyPressed\" | \"onFocusHandler\" | \"onBlurHandler\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MainMenuProps> = (dispatch, { allowedMenuItemCodes, showMenuExpanded, showMenuPanelCaptions }) => ({\r\n loadAllowedMenuItemCodes: () => dispatch(createSetAllowedMenuItemCodesAction(allowedMenuItemCodes)),\r\n setInitialExpandedState: () => dispatch(createSetMenuVisibilityAction(showMenuExpanded ? MenuVisibility.expanded : MenuVisibility.hidden)),\r\n setInitialMenuPanelCaptionsVisibility: () => dispatch(createSetMenuPanelCaptionsVisibilityAction(showMenuPanelCaptions)),\r\n onKeyPressed: (event) => dispatch(createKeyPressedAction(toSerializableKeyEvent(event))),\r\n onFocusHandler: () => dispatch(createFocusDefaultItemAction()),\r\n onBlurHandler: (documentHidden: boolean) => dispatch(createMenuFocusLostAction(documentHidden)),\r\n});\r\n\r\nexport const MainMenu: ComponentType<MainMenuProps> = connect(mapStateToProps, mapDispatchToProps)(MainMenuComponent);\r\n","export * from \"./MainMenu\";\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport {\r\n IFavoriteFormUpdatedAction,\r\n IFormItemInstanceCloseRestrictionsUpdatedAction,\r\n IFormProfileChangedAction,\r\n IHideFormOverlayAction,\r\n IHistoryFormsInfoUpdatedAction,\r\n ISelectedProfileChangedAction,\r\n ISetGroupNotificationsAsReadAction,\r\n ISetNotificationItemAsReadAction,\r\n IShowFormOverlayAction,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { AllowedMenuItemCodes, IMenuItemData } from \"@multiweb/types/contracts\";\r\nimport { ProfileChangeType } from \"@multiweb/types/multiweb\";\r\nimport { MutableTypedObject, RequiredProp } from \"@multiweb/types/react\";\r\nimport { favoriteItemsModule } from \"./favoriteItems\";\r\nimport { navigationModule } from \"./navigation\";\r\nimport { openedItemsModule } from \"./openedItems\";\r\nimport { MenuPanelItemId, STATIC_MENU_PANEL_ITEMS } from \"./panelItems\";\r\nimport { searchModule } from \"./search\";\r\nimport {\r\n ActiveSubmenuId,\r\n FlatNotificationGroups,\r\n FormCodeMap,\r\n FormItemIdArray,\r\n FormItemInstanceCloseRestrictions,\r\n Forms,\r\n IAddProfileToRelationshipsAction,\r\n IClearLastSubmenuAction,\r\n ICloseSubmenusAction,\r\n IConcatNotificationItemsAction,\r\n IConcatPanelItemsAction,\r\n IIncreaseNotificationsPageCountAction,\r\n IMenuItems,\r\n IMenuPanelItem,\r\n IMenuState,\r\n IRemoveProfileFormRelationshipsAction,\r\n IRemoveProfileFromFormsAction,\r\n IResetNotificationItemsAction,\r\n IResetNotificationsPageCountAction,\r\n ISetActiveSectionAction,\r\n ISetActiveSubmenuAction,\r\n ISetAllowedMenuItemCodesAction,\r\n ISetFormItemActionRestrictionsAction,\r\n ISetMenuFloatTransitionActive,\r\n ISetMenuItemsAction,\r\n ISetMenuPanelCaptionsVisibilityAction,\r\n ISetMenuVisibilityAction,\r\n ISetNotificationGroupsAction,\r\n ISetNotificationGroupsPanelItemsAction,\r\n ISetProfileActionRestrictionsAction,\r\n MenuPanelItems,\r\n MenuPanelItemType,\r\n MenuVisibility,\r\n MutableFormCodeMap,\r\n NotificationItems,\r\n Notifications,\r\n OpenedFormHistoryInfoArray,\r\n ProfileFormRelationships,\r\n Profiles,\r\n Restrictions,\r\n SectionId,\r\n WindowActionsRestrictions,\r\n} from \"./types\";\r\nimport { createItemIdForProfile } from \"./utils\";\r\n\r\nexport const forms: Reducer<Forms> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetMenuItemsAction) {\r\n return action.payload.menuItems.items;\r\n } else if (action instanceof IRemoveProfileFromFormsAction) {\r\n return produce(state, (draft) => {\r\n const { profileId, formItemIds } = action.payload;\r\n formItemIds.forEach((formItemId) => {\r\n const formItem = draft[formItemId];\r\n if (formItem.profiles) {\r\n formItem.profiles = formItem.profiles.filter((checkedProfileId) => profileId !== checkedProfileId);\r\n }\r\n });\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const profiles: Reducer<Profiles> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetMenuItemsAction) {\r\n return action.payload.menuItems.profiles;\r\n } else if (action instanceof IFormProfileChangedAction) {\r\n return produce(state, (draft) => {\r\n const { type, profile } = action.payload;\r\n switch (type) {\r\n case ProfileChangeType.add:\r\n case ProfileChangeType.update:\r\n draft[profile.id] = profile;\r\n break;\r\n case ProfileChangeType.remove:\r\n delete draft[profile.id];\r\n }\r\n });\r\n } else if (action instanceof IFavoriteFormUpdatedAction) {\r\n return produce(state, (draft) => {\r\n const { isFavorite, profile } = action.payload;\r\n if (isFavorite && profile?.id) {\r\n const { id, formCode, title, showInNavigationTree } = profile;\r\n draft[id] = { id, formCode, title, showInNavigationTree };\r\n }\r\n });\r\n } else if (action instanceof ISelectedProfileChangedAction) {\r\n return produce(state, (draft) => {\r\n const { profile } = action.payload;\r\n if (profile?.id) {\r\n draft[profile.id] = profile;\r\n }\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const rootFormItemIds: Reducer<FormItemIdArray> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ISetMenuItemsAction) {\r\n return action.payload.menuItems.rootFormItemIds;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const formCodeMap: Reducer<FormCodeMap> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetMenuItemsAction) {\r\n const items = action.payload.menuItems.items;\r\n return Object.values(items).reduce((result, formItem) => {\r\n if (formItem.formCode) {\r\n const formItemIds = (result[formItem.formCode] || []);\r\n formItemIds.push(formItem.id);\r\n result[formItem.formCode] = formItemIds;\r\n return result;\r\n } else {\r\n return result;\r\n }\r\n }, {} as MutableFormCodeMap) as FormCodeMap;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const allowedMenuItemCodes: Reducer<AllowedMenuItemCodes> = (state = null, action) => {\r\n if (action instanceof ISetAllowedMenuItemCodesAction) {\r\n return action.payload.allowedMenuItemCodes;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst notificationGroups: Reducer<Readonly<FlatNotificationGroups>> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetNotificationGroupsAction) {\r\n return action.payload.notificationGroups;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst notificationItems: Reducer<Readonly<NotificationItems>> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IResetNotificationItemsAction) {\r\n return EMPTY_OBJECT;\r\n } else if (action instanceof ISetNotificationItemAsReadAction) {\r\n return produce(state, (draft) => {\r\n const { itemId, isRead } = action.payload;\r\n if (draft[itemId]) {\r\n draft[itemId].unread = !isRead;\r\n }\r\n });\r\n } else if (action instanceof IConcatNotificationItemsAction) {\r\n return {\r\n ...state,\r\n ...action.payload.notificationItems,\r\n };\r\n } else if (action instanceof ISetGroupNotificationsAsReadAction) {\r\n const { notificationGroupId } = action.payload;\r\n return produce(state, (draft) => {\r\n Object.values(state)\r\n .filter(notificationItem => notificationItem.notificationGroupId === notificationGroupId)\r\n .forEach((item) => {\r\n draft[item.id].unread = false;\r\n });\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst notificationsPageCount: Reducer<Readonly<number>> = (state = 0, action) => {\r\n if (action instanceof IResetNotificationsPageCountAction) {\r\n return 0;\r\n } else if (action instanceof IIncreaseNotificationsPageCountAction) {\r\n return state + 1;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nconst notifications: Reducer<Readonly<Notifications>> = combineReducers({\r\n items: notificationItems,\r\n groups: notificationGroups,\r\n pageCount: notificationsPageCount,\r\n});\r\n\r\nexport const historyFormsInfo: Reducer<OpenedFormHistoryInfoArray> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof IHistoryFormsInfoUpdatedAction) {\r\n // Otáčí pořadí, protože v původní aplikaci je nejnovější položka na konci pole, ale zobrazovat se má jako první\r\n return [...action.payload.historyFormsInfo].reverse();\r\n } else if (action instanceof IRemoveProfileFromFormsAction) {\r\n return state.filter(historyForm => historyForm.profileId !== action.payload.profileId);\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const formItemHideWindowActions: Reducer<WindowActionsRestrictions> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetFormItemActionRestrictionsAction) {\r\n return produce(state, (draft) => {\r\n const { formItemId, hideWindowActions } = action.payload;\r\n draft[formItemId] = hideWindowActions;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const profileHideWindowActions: Reducer<WindowActionsRestrictions> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetProfileActionRestrictionsAction) {\r\n return produce(state, (draft) => {\r\n const { profileId, hideWindowActions } = action.payload;\r\n draft[profileId] = hideWindowActions;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const formItemInstanceHideCloseAction: Reducer<FormItemInstanceCloseRestrictions> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IFormItemInstanceCloseRestrictionsUpdatedAction) {\r\n return produce(state, (draft) => {\r\n const { formInstanceId, hideCloseAction } = action.payload;\r\n draft[formInstanceId] = hideCloseAction;\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const restrictions: Reducer<Restrictions> = combineReducers({\r\n formItemHideWindowActions,\r\n profileHideWindowActions,\r\n formItemInstanceHideCloseAction,\r\n});\r\n\r\nexport const profileFormRelationships: Reducer<ProfileFormRelationships> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetMenuItemsAction) {\r\n const { items, profiles } = action.payload.menuItems;\r\n const profileFormItemRelations = Object.values(items)\r\n .filter((formItem): formItem is RequiredProp<IMenuItemData, \"profiles\"> => !!formItem.profiles?.length)\r\n .reduce((result, { id: formItemId, profiles: formProfiles }) => ({\r\n ...result,\r\n ...formProfiles.reduce((profilesResult, profileId) => ({\r\n ...profilesResult,\r\n [createItemIdForProfile(profileId, formItemId)]: {\r\n id: createItemIdForProfile(profileId, formItemId),\r\n profileId,\r\n formItemId,\r\n },\r\n }), {}),\r\n }), {});\r\n const separateProfiles = Object.values(profiles).reduce((result, { id }) => ({\r\n ...result,\r\n [createItemIdForProfile(id)]: {\r\n id: createItemIdForProfile(id),\r\n profileId: id,\r\n },\r\n }), {});\r\n return {\r\n ...profileFormItemRelations,\r\n ...separateProfiles,\r\n };\r\n } else if (action instanceof IRemoveProfileFormRelationshipsAction) {\r\n return produce(state, (draft) => {\r\n const { ids } = action.payload;\r\n ids.forEach((id) => {\r\n delete draft[id];\r\n });\r\n });\r\n } else if (action instanceof IAddProfileToRelationshipsAction) {\r\n return produce(state, (draft) => {\r\n const { profileId } = action.payload;\r\n const id = createItemIdForProfile(profileId);\r\n draft[id] = {\r\n id,\r\n profileId,\r\n };\r\n });\r\n } else if (action instanceof IFavoriteFormUpdatedAction) {\r\n return produce(state, (draft) => {\r\n const { menuId, profile } = action.payload;\r\n if (profile) {\r\n const profileId = profile?.id;\r\n const id = createItemIdForProfile(profileId, menuId);\r\n draft[id] = {\r\n id,\r\n profileId,\r\n };\r\n }\r\n });\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const items: Reducer<IMenuItems> = combineReducers({\r\n allowedMenuItemCodes,\r\n forms,\r\n profiles,\r\n rootFormItemIds,\r\n formCodeMap,\r\n notifications,\r\n historyFormsInfo,\r\n restrictions,\r\n profileFormRelationships,\r\n});\r\n\r\nexport const menuVisibility: Reducer<MenuVisibility> = (state = MenuVisibility.hidden, action) => {\r\n if (action instanceof ISetMenuVisibilityAction) {\r\n return action.payload.menuVisibility;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const menuPanelCaptionsVisible: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof ISetMenuPanelCaptionsVisibilityAction) {\r\n return action.payload.visible;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const activeSectionId: Reducer<SectionId> = (state = MenuPanelItemId.quickAccess, action) => {\r\n if (action instanceof ISetActiveSectionAction) {\r\n return action.payload.activeSectionId;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const activeSubmenuId: Reducer<ActiveSubmenuId> = (state = null, action) => {\r\n if (action instanceof ISetActiveSubmenuAction) {\r\n return action.payload.submenuId;\r\n } else if (action instanceof ICloseSubmenusAction) {\r\n return null;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const panelItems: Reducer<MenuPanelItems> = (state = STATIC_MENU_PANEL_ITEMS, action) => {\r\n if (action instanceof IConcatPanelItemsAction) {\r\n return {\r\n ...state,\r\n ...action.payload.panelItems,\r\n };\r\n } else if (action instanceof ISetActiveSubmenuAction) {\r\n return produce(state, (draft) => {\r\n const { submenuId, sectionId } = action.payload;\r\n draft[sectionId].lastSubmenuId = submenuId;\r\n });\r\n } else if (action instanceof IClearLastSubmenuAction) {\r\n return produce(state, (draft) => {\r\n draft[action.payload.sectionId].lastSubmenuId = undefined;\r\n });\r\n } else if (action instanceof ISetGroupNotificationsAsReadAction) {\r\n return produce(state, (draft) => {\r\n if (draft[action.payload.panelItemId])\r\n draft[action.payload.panelItemId].highlighted = false;\r\n });\r\n } else if (action instanceof ISetNotificationGroupsPanelItemsAction) {\r\n return {\r\n ...Object.entries(state)\r\n .filter(([_id, panelItem]) => panelItem.type !== MenuPanelItemType.notificationGroup)\r\n .reduce((result, [id, panelItem]) => {\r\n result[id] = panelItem;\r\n return result;\r\n }, {} as MutableTypedObject<IMenuPanelItem>),\r\n ...action.payload.notificationGroupsPanelItems,\r\n };\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const formOverlayVisible: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof IShowFormOverlayAction) {\r\n return true;\r\n } else if (action instanceof IHideFormOverlayAction) {\r\n return false;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\nexport const menuFloatTransitionActive: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof ISetMenuFloatTransitionActive) {\r\n return action.payload.menuFloatTransitionActive;\r\n } else {\r\n return state;\r\n }\r\n};\r\n\r\n/**\r\n * Kořenový reducer pro menu.\r\n */\r\nexport const reducer: Reducer<IMenuState> = combineReducers({\r\n items,\r\n menuVisibility,\r\n menuPanelCaptionsVisible,\r\n formOverlayVisible,\r\n activeSectionId,\r\n activeSubmenuId,\r\n panelItems,\r\n menuFloatTransitionActive,\r\n [navigationModule.NAME]: navigationModule.reducer,\r\n [openedItemsModule.NAME]: openedItemsModule.reducer,\r\n [searchModule.NAME]: searchModule.reducer,\r\n [favoriteItemsModule.NAME]: favoriteItemsModule.reducer,\r\n});\r\n","import { MenuItemActivatedType } from \"../types\";\r\n\r\nexport const NAME = \"customActions\";\r\n\r\n/**\r\n * Typy položek menu, pro které jsou podporované custom akce.\r\n */\r\nexport const supportedMenuItemTypes = [\r\n MenuItemActivatedType.form,\r\n MenuItemActivatedType.formFolder,\r\n MenuItemActivatedType.profile,\r\n MenuItemActivatedType.panelItemForm,\r\n MenuItemActivatedType.panelItemFormFolder,\r\n MenuItemActivatedType.notificationGroup,\r\n MenuItemActivatedType.logoButton,\r\n MenuItemActivatedType.panelItemCombinedItemForm,\r\n MenuItemActivatedType.panelItemCombinedItemFolder,\r\n];\r\n\r\n/**\r\n * Typy položek, které pro zpracování využívají data ve formátu formulářové položky.\r\n */\r\nexport const formCompatibleItems = [\r\n MenuItemActivatedType.form,\r\n MenuItemActivatedType.formFolder,\r\n MenuItemActivatedType.profile,\r\n MenuItemActivatedType.panelItemForm,\r\n MenuItemActivatedType.panelItemFormFolder,\r\n MenuItemActivatedType.panelItemCombinedItemForm,\r\n MenuItemActivatedType.panelItemCombinedItemFolder,\r\n];\r\n","import { MenuItemType } from \"@multiweb/types/contracts\";\r\nimport { IMainMenuItemActionParams, MainMenuItemActionData, MainMenuItemActionType } from \"@multiweb/types/multiweb\";\r\nimport { MenuItemActivatedType } from \"../types\";\r\n\r\n/**\r\n * Sestaví objekt parametrů pro zpracování custom akce ze zadaného typu a dat.\r\n * @param itemType Typ položky.\r\n * @param itemData Údaje o položce.\r\n * @return Objekt parametrů nebo undefined, pokud jsou údaje o položce undefined.\r\n */\r\nexport const createMainMenuItemActionParams = (\r\n itemType: MainMenuItemActionType,\r\n itemData: MainMenuItemActionData | undefined,\r\n): IMainMenuItemActionParams | undefined => {\r\n if (itemData) {\r\n return {\r\n itemType,\r\n itemData,\r\n };\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Převede aktivační typ na typ položky menu. Slouží pro ságu pro tvorbu parametrů pro položky z kategorie formulářových položek definovaných v {@link formCompatibleItems}.\r\n * @param activationType\r\n * @throws Pro nepodporované aktivační typy vyhazuje výjimku.\r\n */\r\nexport const activationTypeToMenuItemType = (activationType: MenuItemActivatedType): MenuItemType => {\r\n switch (activationType) {\r\n case MenuItemActivatedType.form:\r\n case MenuItemActivatedType.panelItemForm:\r\n case MenuItemActivatedType.profile:\r\n return MenuItemType.form;\r\n case MenuItemActivatedType.formFolder:\r\n case MenuItemActivatedType.panelItemFormFolder:\r\n return MenuItemType.folder;\r\n case MenuItemActivatedType.panelItemCombinedItemForm:\r\n case MenuItemActivatedType.panelItemCombinedItemFolder:\r\n return MenuItemType.combined;\r\n default:\r\n throw new Error(`[MainMenu - CustomActions] Unsupported activation type for form category of menu item: ${activationType}`);\r\n }\r\n};\r\n","import { Action } from \"redux\";\r\nimport { call, fork, put, select, takeEvery } from \"redux-saga/effects\";\r\n\r\nimport { createProcessMenuItemCustomActionAction, IMenuItemCustomActionProcessedAction, MENU_ITEM_CUSTOM_ACTION_PROCESSED } from \"@multiweb/reactCore/bridge\";\r\nimport { EMPTY_OBJECT, takeResultAction } from \"@multiweb/reactUtils\";\r\nimport { IMainMenuFormActionData, IMainMenuItemActionParams, IMainMenuNotificationGroupActionData, MainMenuItemActionType } from \"@multiweb/types/multiweb\";\r\nimport {\r\n IResultActionError,\r\n IResultActionSuccess,\r\n SagaWithReturnType,\r\n SagaYieldReturn,\r\n} from \"@multiweb/types/react\";\r\nimport { createMenuItemActivatedAction, createMenuItemDefaultActionAllowedAction } from \"../actions\";\r\nimport { logger } from \"../logger\";\r\nimport { getFormItem, getFormItemByProfileId, getProfileFormRelationship } from \"../selectors\";\r\nimport { IMenuItemActivatedAction, MenuItemActivatedType } from \"../types\";\r\nimport { formCompatibleItems, supportedMenuItemTypes } from \"./constants\";\r\nimport { activationTypeToMenuItemType, createMainMenuItemActionParams } from \"./utils\";\r\n\r\n/**\r\n * Vzor odchytávájící aktivaci položek menu, které podporují custom akce.\r\n * @param action\r\n */\r\nconst supportedMenuItemActivatedActionPattern = (action: Action) => action instanceof IMenuItemActivatedAction && supportedMenuItemTypes.includes(action.payload.itemType);\r\n\r\n/**\r\n * Vzor odchytávájící aktivaci položek menu, které nepodporují custom akce.\r\n * @param action\r\n */\r\nconst unsupportedMenuItemActivatedActionPattern = (action: Action) => action instanceof IMenuItemActivatedAction && !supportedMenuItemTypes.includes(action.payload.itemType);\r\n\r\nexport const saga: SagaWithReturnType = function* customActionsSaga() {\r\n yield takeEvery(unsupportedMenuItemActivatedActionPattern, processUnsupportedMenuItemActivatedSaga);\r\n yield takeEvery(supportedMenuItemActivatedActionPattern, processSupportedMenuItemActivatedSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje zpracování nepodporovaných položek. Vyšle akci k provedení výchozího chování.\r\n * @param action\r\n */\r\nexport const processUnsupportedMenuItemActivatedSaga: SagaWithReturnType<[IMenuItemActivatedAction]> = function* processUnsupportedMenuItemActivatedSaga(action) {\r\n yield put(createMenuItemDefaultActionAllowedAction(action));\r\n};\r\n\r\n/**\r\n * Obsluhuje volání funkce pro vlastní zpracování aktivace položky menu.\r\n * @param action Akce aktivace položky menu.\r\n */\r\nexport const processSupportedMenuItemActivatedSaga: SagaWithReturnType<[IMenuItemActivatedAction]> = function* processMenuItemActivatedSaga(action) {\r\n const menuItemParams: SagaYieldReturn<typeof createMenuItemParamsSaga> = yield call(createMenuItemParamsSaga, action);\r\n\r\n if (!menuItemParams) {\r\n return;\r\n }\r\n yield put(createProcessMenuItemCustomActionAction(menuItemParams));\r\n yield fork(takeResultAction, MENU_ITEM_CUSTOM_ACTION_PROCESSED, customActionSuccessSaga, customActionErrorSaga, action, menuItemParams);\r\n};\r\n\r\n/**\r\n * Vytváří parametry pro zpracování custom akce. Podle typu položky volá ságu pro získání konkrétních parametrů.\r\n * @param action Akce aktivace položky menu.\r\n */\r\nexport const createMenuItemParamsSaga: SagaWithReturnType<[IMenuItemActivatedAction], IMainMenuItemActionParams | undefined> = function* (action) {\r\n const { itemType } = action.payload;\r\n let mainMenuItemActionParams: undefined | SagaYieldReturn<typeof createMainMenuItemActionParams>;\r\n if (itemType === MenuItemActivatedType.notificationGroup) {\r\n const notificationGroupParams: SagaYieldReturn<typeof createNotificationGroupParamsSaga> = yield call(createNotificationGroupParamsSaga, action);\r\n mainMenuItemActionParams = yield call(createMainMenuItemActionParams, MainMenuItemActionType.notificationGroup, notificationGroupParams);\r\n } else if (formCompatibleItems.includes(itemType)) {\r\n const formItemParams: SagaYieldReturn<typeof createFormItemParamsSaga> = yield call(createFormItemParamsSaga, action);\r\n mainMenuItemActionParams = yield call(createMainMenuItemActionParams, MainMenuItemActionType.form, formItemParams);\r\n } else if (itemType === MenuItemActivatedType.logoButton) {\r\n mainMenuItemActionParams = yield call(createMainMenuItemActionParams, MainMenuItemActionType.logoButton, EMPTY_OBJECT);\r\n }\r\n return mainMenuItemActionParams;\r\n};\r\n\r\n/**\r\n * Převádí parametry ze spouštěcí akce na parametry pro zpracování custom akce skupiny notifikací.\r\n * @param action Akce aktivace položky menu.\r\n */\r\n// eslint-disable-next-line require-yield\r\nexport const createNotificationGroupParamsSaga: SagaWithReturnType<[IMenuItemActivatedAction], IMainMenuNotificationGroupActionData | undefined> = function* createNotificationGroupParamsSaga(\r\n action,\r\n) {\r\n return { id: action.payload.itemId as string };\r\n};\r\n\r\ntype ProfileData = {profileId: number; formItemId: number} | undefined;\r\n\r\n/**\r\n * Převádí parametry ze spouštěcí akce na parametry pro zpracování custom akce formuláře.\r\n * @param action Akce aktivace položky menu.\r\n */\r\nexport const createFormItemParamsSaga: SagaWithReturnType<[IMenuItemActivatedAction], IMainMenuFormActionData | undefined> = function* createFormItemParamsSaga(action) {\r\n const { itemId, itemType } = action.payload;\r\n let formItemId, profileId;\r\n if (itemType === MenuItemActivatedType.profile) {\r\n const idsFromProfileAction: SagaYieldReturn<typeof getIdsFromProfileActivationSaga> = yield call(getIdsFromProfileActivationSaga, itemId as string);\r\n if (idsFromProfileAction) {\r\n formItemId = idsFromProfileAction.formItemId;\r\n profileId = idsFromProfileAction.profileId;\r\n } else {\r\n return undefined;\r\n }\r\n } else {\r\n formItemId = itemId as number;\r\n profileId = undefined;\r\n }\r\n\r\n const formItem: ReturnType<typeof getFormItem> = yield select(getFormItem, formItemId);\r\n if (!formItem) {\r\n yield call(logger.warn, \"Cannot process custom action for menu item with id %s, because item with this id was not found.\", formItemId);\r\n return undefined;\r\n }\r\n const menuItemType: ReturnType<typeof activationTypeToMenuItemType> = yield call(activationTypeToMenuItemType, itemType);\r\n return {\r\n menuId: formItem.id,\r\n menuItemType,\r\n formCode: formItem.formCode,\r\n code: formItem.code,\r\n openMode: formItem.openMode,\r\n profileId,\r\n fromSideButton: itemType === MenuItemActivatedType.panelItemCombinedItemFolder,\r\n };\r\n};\r\n\r\n/**\r\n * Získá id profilu a formulářové položky na základě id aktivované položky profilu.\r\n * @param itemId\r\n */\r\nexport const getIdsFromProfileActivationSaga: SagaWithReturnType<[string], ProfileData> = function* getIdsFromProfileActivationSaga(itemId) {\r\n const profileFormRelationship: ReturnType<typeof getProfileFormRelationship> = yield select(getProfileFormRelationship, itemId);\r\n if (!profileFormRelationship) {\r\n yield call(logger.error, \"Cannot get profile and form relationship for activated item with id %s.\", itemId);\r\n return undefined;\r\n }\r\n const { profileId, formItemId: relatedFormItemId } = profileFormRelationship;\r\n let formItemId;\r\n if (relatedFormItemId) {// aktivovaný profil je zobrazený jako potomek formulářové položky, použije se její id\r\n formItemId = relatedFormItemId;\r\n } else {// aktivovaný profil je zobrazený samostatně, formulář se vyhledá podle formCode\r\n const formItem: ReturnType<typeof getFormItemByProfileId> = yield select(getFormItemByProfileId, profileId);\r\n if (formItem) {\r\n formItemId = formItem.id;\r\n } else {\r\n yield call(logger.error, \"Form item for profile with id %s was not found.\", profileId);\r\n return undefined;\r\n }\r\n }\r\n\r\n return { profileId, formItemId };\r\n};\r\n\r\n/**\r\n * Obsluhuje výsledek úspěšného zpracování custom akce.\r\n * @param successAction Akce úspěšného zpracování custom akce.\r\n * @param menuItemActivatedAction Akce aktivace položky menu, která spustila zpracování custom akce.\r\n */\r\nexport const customActionSuccessSaga: SagaWithReturnType<[IResultActionSuccess<IMenuItemCustomActionProcessedAction>, IMenuItemActivatedAction]> = function* customActionSuccessSaga(\r\n successAction,\r\n menuItemActivatedAction,\r\n) {\r\n if (!successAction.payload.preventDefault) {\r\n const { itemId, itemType, section, mouseEvent, keyEvent } = menuItemActivatedAction.payload;\r\n const { preventFormDefault } = successAction.payload;\r\n yield put(createMenuItemDefaultActionAllowedAction(createMenuItemActivatedAction(itemId, itemType, section, mouseEvent, keyEvent, preventFormDefault)));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výsledek chybového zpracování custom akce. Pokud je chyba způsobena tím, že není zaregistrovaná\r\n * žádná obsluha custom akcí, tak to není považováno za chybu a provede se výchozí chování aktivované položky.\r\n * @param errorAction Akce chybového zpracování custom akce.\r\n * @param menuItemActivatedAction Akce aktivace položky menu, která spustila zpracování custom akce.\r\n * @param menuItemParams Parametry, které se předávaly pro zpracování custom akce.\r\n */\r\nexport const customActionErrorSaga: SagaWithReturnType<[IResultActionError<IMenuItemCustomActionProcessedAction>, IMenuItemActivatedAction, IMainMenuItemActionParams]> = function* customActionErrorSaga(\r\n errorAction,\r\n menuItemActivatedAction,\r\n menuItemParams,\r\n) {\r\n if (errorAction.payload.handlerNotFound) {\r\n yield put(createMenuItemDefaultActionAllowedAction(menuItemActivatedAction));\r\n } else {\r\n yield call(\r\n logger.error,\r\n \"Processing of custom actions for menu item %O failed with error: %s.\",\r\n menuItemParams,\r\n errorAction.payload.errorMessage,\r\n );\r\n }\r\n};\r\n","import { ApplicationModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { saga } from \"./saga\";\r\n\r\nexport const customActionsModule: ApplicationModule<typeof NAME> = {\r\n NAME,\r\n saga,\r\n};\r\n","import { Action } from \"redux\";\r\nimport { all, call, delay, fork, put, putResolve, select, take, takeEvery, takeLatest } from \"redux-saga/effects\";\r\n\r\nimport {\r\n CLOSE_FORM,\r\n createCloseFormAction,\r\n createHideAllFormsAction,\r\n createHideFormOverlayAction,\r\n createHideLoadingIndicatorAction,\r\n createLoadHistoryFormsInfoAction,\r\n createLoadMenuItemsAction,\r\n createLoadNotificationGroupsAction,\r\n createLoadNotificationItemsAction,\r\n createLoadTaskResultDetailAction,\r\n createLogoutAction,\r\n createOpenFormAction,\r\n createSetGroupNotificationsAsReadAction,\r\n createSetNotificationItemAsReadAction,\r\n createShowFormOverlayAction,\r\n createShowLoadingIndicatorAction,\r\n createShowSettingsAction,\r\n createSwitchToFormAction,\r\n FORM_CLOSED,\r\n FORM_OVERLAY_CLICKED,\r\n FORM_PROFILE_CHANGED,\r\n FormOpenMethod,\r\n ICloseFormAction,\r\n IFormClosedAction,\r\n IFormOpenedAction,\r\n IFormOverlayClickedAction,\r\n IFormProfileChangedAction,\r\n IMenuItemsLoadedAction,\r\n INotificationGroupsLoadedAction,\r\n INotificationItemsLoadedAction,\r\n IOpenFormAction,\r\n ISwitchToFormAction,\r\n ITaskResultDetailLoadedAction,\r\n MENU_ITEMS_LOADED,\r\n NOTIFICATION_GROUPS_LOADED,\r\n NOTIFICATION_ITEMS_LOADED,\r\n OPEN_FORM,\r\n SWITCH_TO_FORM,\r\n TASK_RESULT_DETAIL_LOADED,\r\n} from \"@multiweb/reactCore/bridge\";\r\nimport { createSetFetchingAction } from \"@multiweb/reactCore/fetching\";\r\nimport { createAreLocalizationKeysLoadedActionPattern, createLoadLocalizationKeysAction, hasLocalization } from \"@multiweb/reactCore/i18n\";\r\nimport { createToggleThemeAction } from \"@multiweb/reactCore/theme\";\r\nimport { forkIfExists, invariant, splitObject, SplitObjectFunction } from \"@multiweb/reactUtils\";\r\nimport { FormOpenMode, IMenuItemData, INotificationItem, NotificationFunctionType, NotificationGroupId, OpenFormData } from \"@multiweb/types/contracts\";\r\nimport {\r\n RequiredProp,\r\n SagaWithReturnType,\r\n SagaYieldReturn,\r\n TypedObject,\r\n} from \"@multiweb/types/react\";\r\nimport { ProfileChangeType } from \"@multiweb/uiShared/ProfileChangeType\";\r\nimport {\r\n createAddProfileToRelationshipsAction,\r\n createClearLastSubmenuAction,\r\n createCloseSubmenusAction,\r\n createConcatNotificationItemsAction,\r\n createConcatPanelItemsAction,\r\n createIncreaseNotificationsPageCountAction,\r\n createRemoveProfileFormRelationshipsAction,\r\n createRemoveProfileFromFormsAction,\r\n createResetNotificationItemsAction,\r\n createResetNotificationsPageCountAction,\r\n createSetActiveSectionAction,\r\n createSetActiveSubmenuAction,\r\n createSetFormItemActionRestrictionsAction,\r\n createSetMenuFloatTransitionActiveAction,\r\n createSetMenuItemsAction,\r\n createSetMenuVisibilityAction,\r\n createSetNotificationGroupsAction,\r\n createSetNotificationGroupsPanelItemsAction,\r\n createSetProfileActionRestrictionsAction,\r\n createVisualAutomatProcessedAction,\r\n} from \"./actions\";\r\nimport {\r\n FETCHING_KEY_FORM_INSTANCE_TITLE,\r\n FETCHING_KEY_FORM_ITEMS_LOCALIZATION,\r\n FETCHING_KEY_MENU_ITEMS,\r\n FETCHING_KEY_NOTIFICATION_GROUPS_LOCALIZATION,\r\n FETCHING_KEY_NOTIFICATION_ITEMS,\r\n FETCHING_KEY_STATIC_MENU_ITEMS_LOCALIZATION,\r\n LOAD_NEXT_NOTIFICATION_ITEMS_PAGE,\r\n NOTIFICATIONS_PAGE_SIZE,\r\n RELOAD_MENU,\r\n SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ,\r\n SET_MENU_ITEMS,\r\n SET_NOTIFICATION_GROUPS,\r\n SET_VISUAL_AUTOMAT_STATE,\r\n SHOW_GROUP_NOTIFICATIONS,\r\n TOGGLE_SUBMENU,\r\n} from \"./constants\";\r\nimport { customActionsModule } from \"./customActions\";\r\nimport { favoriteItemsModule, loadFavoriteFormsSaga } from \"./favoriteItems\";\r\nimport { STATIC_LOC_KEYS } from \"./locKeys\";\r\nimport { logger } from \"./logger\";\r\nimport {\r\n createFocusableItemId,\r\n createSetFocusedItemAction,\r\n focusIfNotFocusedSaga,\r\n getNavigationNode,\r\n LOGOUT_BUTTON_FOCUSABLE_ID,\r\n MENU_EXPAND_BUTTON_FOCUSABLE_ID,\r\n MenuFocusableItemType,\r\n MenuNavigationSectionType,\r\n navigationModule,\r\n SETTINGS_BUTTON_FOCUSABLE_ID,\r\n TOGGLE_THEME_BUTTON_FOCUSABLE_ID,\r\n updateSelectedSectionNavigationSaga,\r\n} from \"./navigation\";\r\nimport { getOpenedFormInfo, openedItemsModule } from \"./openedItems\";\r\nimport { MenuPanelItemId } from \"./panelItems\";\r\nimport { searchModule } from \"./search\";\r\nimport {\r\n allNotificationItemsLoaded,\r\n areFormItemWindowActionsEnabled,\r\n areProfileWindowActionsEnabled,\r\n getActiveSectionId,\r\n getActiveSubmenuIds,\r\n getAllowedRootFormItemIds,\r\n getFormItem,\r\n getFormItemByProfileId,\r\n getFormItemId,\r\n getFormItemsLocalizationKeys,\r\n getMenuItemParentId,\r\n getMenuVisibility,\r\n getNotificationGroup,\r\n getNotificationGroupsLocalizationKeys,\r\n getNotificationItem,\r\n getNotificationsStartIndex,\r\n getPanelItem,\r\n getPanelItemLastSubmenuId,\r\n getProfileFormRelationship,\r\n getProfileFormRelationshipModel,\r\n getVisualAutomatState,\r\n isCombinedItem,\r\n isEmptySection,\r\n isMenuVisible as isMenuVisibleSelector,\r\n isNotificationGroupPanelItemId,\r\n isSubmenuActive,\r\n shouldChangeActiveSection,\r\n} from \"./selectors\";\r\nimport {\r\n IMenuItemDefaultActionAllowedAction,\r\n ISetVisualAutomatStateAction,\r\n IToggleSubmenuAction,\r\n MenuItemActivatedType,\r\n MenuVisibility,\r\n ProfileFormRelationship,\r\n VisualAutomatState,\r\n} from \"./types\";\r\nimport {\r\n activationActionToMenuPanelItemId,\r\n createAllowedDefaultActionPattern,\r\n createFormContext,\r\n createItemIdForProfile,\r\n formOpenedAndShowInMenuActionPattern,\r\n getFormOpenMethodFromActivationAction,\r\n isCombinedItemFormPartActivatedAction,\r\n isOpenInTabEvent,\r\n menuItemsToPanelItems,\r\n normalizeNotificationGroups,\r\n notificationGroupsToPanelItems,\r\n transformNotificationItems,\r\n} from \"./utils\";\r\n\r\nexport const saga: SagaWithReturnType = function* menuSaga() {\r\n yield fork(forkIfExists, customActionsModule.saga);\r\n yield fork(forkIfExists, navigationModule.saga);\r\n yield fork(forkIfExists, openedItemsModule.saga);\r\n yield fork(forkIfExists, searchModule.saga);\r\n yield fork(forkIfExists, favoriteItemsModule.saga);\r\n yield takeLatest(NOTIFICATION_GROUPS_LOADED, processLoadedNotificationGroupsSaga); // zpracování notifikačních skupin z loadMenuDataSaga i dalších následujících updatů\r\n yield fork(loadMenuDataSaga);\r\n\r\n yield takeLatest(OPEN_FORM, openFormPreProcessSaga);\r\n yield takeEvery(formOpenedAndShowInMenuActionPattern, formOpenedSaga);\r\n yield takeEvery(FORM_CLOSED, formClosedSaga);\r\n yield takeEvery(LOAD_NEXT_NOTIFICATION_ITEMS_PAGE, loadNextNotificationItemsPageSaga);\r\n yield takeEvery(SHOW_GROUP_NOTIFICATIONS, showGroupNotificationsSaga);\r\n yield takeEvery(SET_ACTIVE_GROUP_NOTIFICATIONS_AS_READ, setActiveGroupNotificationsAsRead);\r\n yield takeEvery(SET_MENU_ITEMS, setMenuItemsSaga);\r\n yield takeEvery(SET_NOTIFICATION_GROUPS, loadNotificationGroupsLocalizationSaga);\r\n const submenuItemDefaultActionAllowedActionPattern = createAllowedDefaultActionPattern(MenuItemActivatedType.formFolder);\r\n const expandButtonDefaultActionAllowedActionPattern = createAllowedDefaultActionPattern(MenuItemActivatedType.expandButton);\r\n const logoButtonDefaultActionAllowedActionPattern = createAllowedDefaultActionPattern(MenuItemActivatedType.logoButton);\r\n yield takeEvery([\r\n FORM_OVERLAY_CLICKED,\r\n logoButtonDefaultActionAllowedActionPattern,\r\n OPEN_FORM,\r\n SWITCH_TO_FORM,\r\n TOGGLE_SUBMENU,\r\n CLOSE_FORM,\r\n submenuItemDefaultActionAllowedActionPattern,\r\n expandButtonDefaultActionAllowedActionPattern,\r\n ], visualAutomatSaga);\r\n yield takeEvery(SET_VISUAL_AUTOMAT_STATE, setVisualAutomatStateSaga);\r\n yield takeEvery(FORM_PROFILE_CHANGED, formProfileChangedSaga);\r\n yield takeLatest(RELOAD_MENU, loadMenuDataSaga);\r\n // Ságy aktivovatelných položek s konkrétní vlastní akcí\r\n yield takeEvery([TOGGLE_SUBMENU, submenuItemDefaultActionAllowedActionPattern], toggleSubmenuSaga);\r\n // Ságy aktivovatelných položek s obecnou aktivační akcí\r\n const {\r\n form, panelItemForm, profile, openFormActionItem, openProfileActionItem, openFormInstanceActionItem, settingsButton, toggleThemeButton, logoutButton,\r\n openFormInTabActionItem, openProfileInTabActionItem, openFormInstanceInTabActionItem, closeActionItem,\r\n notificationItem, openedForm, panelItemCombinedItemForm,\r\n } = MenuItemActivatedType;\r\n yield takeEvery(expandButtonDefaultActionAllowedActionPattern, expandButtonActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(menuPanelItemActivationTypes), menuPanelItemSelectedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(settingsButton), settingsButtonActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(toggleThemeButton), toggleThemeButtonActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(logoutButton), logoutButtonActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(profile), profileActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern([form, panelItemForm, panelItemCombinedItemForm]), formItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openFormActionItem), openFormActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openProfileActionItem), openProfileActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openFormInstanceActionItem), openFormInstanceActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openFormInTabActionItem), openFormInTabActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openProfileInTabActionItem), openProfileInTabActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openFormInstanceInTabActionItem), openFormInstanceInTabActionItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(closeActionItem), closeActionItemActivatedSaga);\r\n yield takeEvery(logoButtonDefaultActionAllowedActionPattern, logoActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(notificationItem), notificationItemActivatedSaga);\r\n yield takeEvery(createAllowedDefaultActionPattern(openedForm), openedFormActivatedSaga);\r\n};\r\n\r\n/**\r\n * Typy aktivovatelných položek nacházejících se v menu panelu.\r\n */\r\nconst menuPanelItemActivationTypes = [\r\n MenuItemActivatedType.staticPanelItem,\r\n MenuItemActivatedType.panelItemForm,\r\n MenuItemActivatedType.panelItemFormFolder,\r\n MenuItemActivatedType.panelItemCombinedItemForm,\r\n MenuItemActivatedType.panelItemCombinedItemFolder,\r\n MenuItemActivatedType.notificationGroup,\r\n MenuItemActivatedType.expandButton,\r\n];\r\n\r\n/**\r\n * Sága zajišťuje aktulizaci vizuálních prvků - viditelnost překryvné vrstvy, menu a submenu.\r\n * @param action\r\n */\r\nexport const visualAutomatSaga: SagaWithReturnType<[Action]> = function* visualAutomatSaga(action) {\r\n const menuPanelItemId = action instanceof IMenuItemDefaultActionAllowedAction ? activationActionToMenuPanelItemId(action) : undefined;\r\n const activeSectionId: SagaYieldReturn<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n const sameMenuPanelItemSelected = menuPanelItemId === activeSectionId;\r\n const isExpandButtonClickedAction = action instanceof IMenuItemDefaultActionAllowedAction && action.payload.itemType === MenuItemActivatedType.expandButton;\r\n const isLogoClickedAction = action instanceof IMenuItemDefaultActionAllowedAction && action.payload.itemType === MenuItemActivatedType.logoButton;\r\n const isFormOverlayClickedAction = action instanceof IFormOverlayClickedAction;\r\n const isOpenFormAction = action instanceof IOpenFormAction && action.payload.openMethod !== FormOpenMethod.inTab;\r\n const isSwitchToFormAction = action instanceof ISwitchToFormAction;\r\n const isToggleSubmenuAction = action instanceof IToggleSubmenuAction;\r\n const isSubmenuItemDefaultAction = action instanceof IMenuItemDefaultActionAllowedAction && action.payload.itemType === MenuItemActivatedType.formFolder;\r\n const isCloseFormAction = action instanceof ICloseFormAction;\r\n const sameRootSubmenuToggled = action instanceof IToggleSubmenuAction && (yield select(getActiveSubmenuIds))[0] === action.payload.submenuId;\r\n const emptySectionSelected = !!menuPanelItemId && ((yield select(isEmptySection, menuPanelItemId)) || isCombinedItemFormPartActivatedAction(action));\r\n const notEmptySectionSelected = !!menuPanelItemId && !(yield select(isEmptySection, menuPanelItemId)) && !isCombinedItemFormPartActivatedAction(action);\r\n const differentMenuPanelItemSelected = !!menuPanelItemId && menuPanelItemId !== activeSectionId;\r\n const hasMenuPanelItemLastSubmenu = menuPanelItemId ? !!(yield select(getPanelItemLastSubmenuId, menuPanelItemId)) : false;\r\n const actualVisualAutomatState: SagaYieldReturn<typeof getVisualAutomatState> = yield select(getVisualAutomatState);\r\n\r\n /**\r\n * Stavy viz {@link VisualAutomatState}\r\n */\r\n const visualAutomat: TypedObject<TypedObject<boolean>> = {\r\n \"000\": {\r\n \"020\": isExpandButtonClickedAction,\r\n \"110\": notEmptySectionSelected && !hasMenuPanelItemLastSubmenu,\r\n \"111\": notEmptySectionSelected && hasMenuPanelItemLastSubmenu,\r\n },\r\n \"020\": {\r\n \"000\": isExpandButtonClickedAction,\r\n \"121\": isToggleSubmenuAction || isSubmenuItemDefaultAction || hasMenuPanelItemLastSubmenu,\r\n },\r\n \"121\": {\r\n \"000\": isExpandButtonClickedAction,\r\n \"020\": sameRootSubmenuToggled || isFormOverlayClickedAction || isLogoClickedAction || isOpenFormAction || isCloseFormAction\r\n || (differentMenuPanelItemSelected && notEmptySectionSelected && !hasMenuPanelItemLastSubmenu),\r\n },\r\n \"110\": {\r\n \"000\" : sameMenuPanelItemSelected || isFormOverlayClickedAction || isLogoClickedAction || isOpenFormAction\r\n || isSwitchToFormAction || differentMenuPanelItemSelected && emptySectionSelected,\r\n \"020\": isExpandButtonClickedAction,\r\n // Přechod otevření submenu je řešen v toggleSubmenuSaga změnou aktivního submenu\r\n },\r\n \"111\": {\r\n \"000\": sameMenuPanelItemSelected || isFormOverlayClickedAction || isLogoClickedAction || isOpenFormAction\r\n || isSwitchToFormAction || differentMenuPanelItemSelected && emptySectionSelected || isCloseFormAction,\r\n \"110\": sameRootSubmenuToggled || (differentMenuPanelItemSelected && notEmptySectionSelected && !hasMenuPanelItemLastSubmenu),\r\n \"121\": isExpandButtonClickedAction,\r\n },\r\n };\r\n\r\n if (actualVisualAutomatState) {\r\n const stepConditionResult = Object.entries(visualAutomat[actualVisualAutomatState]).find(([, condition]) => condition);\r\n if (stepConditionResult) {\r\n const nextState = stepConditionResult[0];\r\n // Kontrola, zda menu přechází z překrývajícího módu do skrytého nebo naopak\r\n const menuFloatTransitionActive = actualVisualAutomatState[1] === \"1\" && nextState[1] === \"0\"\r\n || actualVisualAutomatState[1] === \"0\" && nextState[1] === \"1\";\r\n yield put(createSetMenuFloatTransitionActiveAction(menuFloatTransitionActive));\r\n yield call(visualAutomatStepSaga, nextState as VisualAutomatState);\r\n }\r\n }\r\n yield put(createVisualAutomatProcessedAction());\r\n};\r\n\r\n/**\r\n * Zpracovává požadavky na přechod do konkrétního stavu vizuálního automatu. Po dokončení vysílá akci o dokončení aktualizace.\r\n * @param action Akce obsahující nový požadovaný stav automatu.\r\n */\r\nexport const setVisualAutomatStateSaga: SagaWithReturnType<[ISetVisualAutomatStateAction]> = function* setVisualAutomatStateSaga(action) {\r\n yield call(visualAutomatStepSaga, action.payload.state);\r\n yield put(createVisualAutomatProcessedAction());\r\n};\r\n\r\n/**\r\n * Sága provádí přechody mezi stavy automatu zajišťujícího aktualizaci viditelnosti překryvné vrstvy, menu a submenu.\r\n * @param targetState Cílový stav automatu\r\n */\r\nexport const visualAutomatStepSaga: SagaWithReturnType<[VisualAutomatState]> = function* visualAutomatStepSaga(targetState) {\r\n switch (targetState) {\r\n case \"000\": {\r\n yield put(createHideFormOverlayAction());\r\n yield put(createSetMenuVisibilityAction(MenuVisibility.hidden));\r\n yield put(createCloseSubmenusAction());\r\n break;\r\n }\r\n case \"020\": {\r\n yield put(createHideFormOverlayAction());\r\n yield put(createSetMenuVisibilityAction(MenuVisibility.expanded));\r\n yield put(createCloseSubmenusAction());\r\n break;\r\n }\r\n case \"121\": {\r\n yield put(createShowFormOverlayAction());\r\n yield put(createSetMenuVisibilityAction(MenuVisibility.expanded));\r\n // Viditelnost submenu je řešena existencí identifikátoru submenu\r\n break;\r\n }\r\n case \"110\": {\r\n yield put(createShowFormOverlayAction());\r\n yield put(createSetMenuVisibilityAction(MenuVisibility.floated));\r\n yield put(createCloseSubmenusAction());\r\n break;\r\n }\r\n case \"111\": {\r\n yield put(createShowFormOverlayAction());\r\n yield put(createSetMenuVisibilityAction(MenuVisibility.floated));\r\n // Viditelnost submenu je řešena existencí identifikátoru submenu\r\n break;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Zajišťuje posloupnost volání po vybrání položky panelu menu.\r\n * Jednotlivé ságy na sebe navazují.\r\n * @param action Akce aktivace položky menu panelu reprezentující sekci. Předpokládá, že aktivace odlišných typů položek je již odfiltrována.\r\n */\r\nexport const menuPanelItemSelectedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* menuPanelItemSelectedSaga(action) {\r\n const menuPanelItemId: SagaYieldReturn<typeof activationActionToMenuPanelItemId> = yield call(activationActionToMenuPanelItemId, action);\r\n if (!menuPanelItemId) {\r\n return;\r\n }\r\n // Aktualizace viditelnosti musí proběhnout před nastavením nové sekce, protože automat potřebuje předchozí vybranou sekci\r\n yield call(visualAutomatSaga, action);\r\n // Odstranění notifikačních dat před změnou sekce\r\n yield call(resetNotificationsSaga, action);\r\n // Vybrání sekce při neprázdné složce\r\n yield call(selectSectionSaga, menuPanelItemId);\r\n // Aktualizace navigace\r\n yield call(updateSelectedSectionNavigationSaga, menuPanelItemId);\r\n // Znovu otevření submenu, které bylo pro dané menuPanelItemId otevřené naposledy\r\n yield call(activateLastSubmenuIfNeededSaga, menuPanelItemId);\r\n};\r\n\r\n/**\r\n * Součást ošetření kliku na položku menu panelu.\r\n * Pokud jde o aktivující klik a pokud při poslední situaci, kdy tato položka byla otevřená, bylo otevřené i její podmenu,\r\n * pak toto podmenu znovu otevře.\r\n *\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n */\r\nexport const activateLastSubmenuIfNeededSaga: SagaWithReturnType<[string]> = function* activateLastSubmenuIfNeededSaga(menuPanelItemId) {\r\n const lastSubmenuId: SagaYieldReturn<typeof getPanelItemLastSubmenuId> = yield select(getPanelItemLastSubmenuId, menuPanelItemId);\r\n const menuVisibility: SagaYieldReturn<typeof getMenuVisibility> = yield select(getMenuVisibility);\r\n if (lastSubmenuId && menuVisibility !== MenuVisibility.hidden) {\r\n yield call(openSubmenuSaga, lastSubmenuId, menuPanelItemId);\r\n }\r\n};\r\n\r\n/**\r\n * Sdružuje načítání potřebných dat pro menu a řeší zobrazení indikátoru načítání.\r\n */\r\nexport const loadMenuDataSaga: SagaWithReturnType = function* loadMenuDataSaga() {\r\n yield put(createShowLoadingIndicatorAction());\r\n yield fork(hideInitialLoadingIndicatorSaga);\r\n yield fork(loadHistoryItemsSaga);\r\n yield fork(loadMenuItemsSaga);\r\n yield fork(loadStaticMenuItemsLocalizationSaga);\r\n yield fork(loadNotificationGroupsSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje skrytí indikátoru načítání po iniciálním načítání dat.\r\n */\r\nexport const hideInitialLoadingIndicatorSaga: SagaWithReturnType = function* hideInitialLoadingIndicatorSaga() {\r\n yield all([\r\n take(createAreLocalizationKeysLoadedActionPattern(FETCHING_KEY_FORM_ITEMS_LOCALIZATION)),\r\n take(NOTIFICATION_GROUPS_LOADED),\r\n ]);\r\n yield put(createHideLoadingIndicatorAction());\r\n};\r\n\r\n/** Obsluhuje načtení lokalizace pro statické položky menu. */\r\nexport const loadStaticMenuItemsLocalizationSaga: SagaWithReturnType = function* loadStaticMenuItemsLocalizationSaga() {\r\n yield put(createLoadLocalizationKeysAction(STATIC_LOC_KEYS, FETCHING_KEY_STATIC_MENU_ITEMS_LOCALIZATION));\r\n};\r\n\r\n/** Obsluhuje akce po uložení položek menu do stavu. */\r\nexport const setMenuItemsSaga: SagaWithReturnType = function* setMenuItemsSaga() {\r\n yield fork(loadFavoriteFormsSaga);\r\n yield call(loadFormItemsLocalizationSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení položek pro menu.\r\n */\r\nexport const loadMenuItemsSaga: SagaWithReturnType = function* loadMenuItemsSaga() {\r\n yield put(createSetFetchingAction(FETCHING_KEY_MENU_ITEMS, true));\r\n yield put(createLoadMenuItemsAction());\r\n const menuItemsLoadedAction: IMenuItemsLoadedAction = yield take(MENU_ITEMS_LOADED);\r\n const { menuItems } = menuItemsLoadedAction.payload;\r\n yield put(createSetMenuItemsAction(menuItems));\r\n // Získání kořenových formulářových položek pro použití v panelu menu\r\n const [rootMenuItems] = yield call<SplitObjectFunction<IMenuItemData>>(splitObject, menuItems.items, (id: string) => menuItems.rootFormItemIds.includes(+id));\r\n yield put(createConcatPanelItemsAction(menuItemsToPanelItems(rootMenuItems)));\r\n yield put(createSetFetchingAction(FETCHING_KEY_MENU_ITEMS, false));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení lokalizace pro formulářové položky menu.\r\n */\r\nexport const loadFormItemsLocalizationSaga: SagaWithReturnType = function* loadFormItemsLocalizationSaga() {\r\n const formItemsLocalizationKeys: SagaYieldReturn<typeof getFormItemsLocalizationKeys> = yield select(getFormItemsLocalizationKeys);\r\n yield put(createLoadLocalizationKeysAction(formItemsLocalizationKeys, FETCHING_KEY_FORM_ITEMS_LOCALIZATION));\r\n};\r\n\r\n/**\r\n * Obsluhuje načítání historicky otevřených položek. Transformaci položek provádí historyItemsUpdatedSaga.\r\n */\r\nexport const loadHistoryItemsSaga: SagaWithReturnType = function* loadHistoryItemsSaga() {\r\n yield put(createLoadHistoryFormsInfoAction());\r\n};\r\n\r\n/**\r\n * Obsluhuje zpracování side effectů po otevření formuláře.\r\n * @param action\r\n */\r\nexport const formOpenedSaga: SagaWithReturnType<[IFormOpenedAction]> = function* formOpenedSaga(action) {\r\n const { openedFormInfo, hideWindowActions } = action.payload;\r\n const { menuItemId, profileId, titleLocKey } = openedFormInfo;\r\n if (titleLocKey) {\r\n const titleLocalizationLoaded = yield select(hasLocalization, titleLocKey);\r\n if (!titleLocalizationLoaded) {\r\n yield put(createLoadLocalizationKeysAction([titleLocKey], `${FETCHING_KEY_FORM_INSTANCE_TITLE}/${titleLocKey}`));\r\n }\r\n }\r\n if (profileId && menuItemId) {\r\n yield put(createSetProfileActionRestrictionsAction(profileId, hideWindowActions));\r\n } else if (menuItemId) {\r\n yield put(createSetFormItemActionRestrictionsAction(menuItemId, hideWindowActions));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje zpracování side effectů po zavření formuláře.\r\n * @param action\r\n */\r\nexport const formClosedSaga: SagaWithReturnType<[IFormClosedAction]> = function* formClosedSaga(action) {\r\n const { closedFormInfo } = action.payload;\r\n const { menuItemId, profileId } = closedFormInfo;\r\n if (profileId && menuItemId) {\r\n yield put(createSetProfileActionRestrictionsAction(profileId, false));\r\n } else if (menuItemId) {\r\n yield put(createSetFormItemActionRestrictionsAction(menuItemId, false));\r\n }\r\n};\r\n\r\n/**\r\n * Resetuje stav notifikačních položek\r\n * @param action Akce aktivace položky.\r\n */\r\nexport const resetNotificationsSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* resetNotificationsSaga(action) {\r\n const isMenuVisible: SagaYieldReturn<typeof isMenuVisibleSelector> = yield select(isMenuVisibleSelector);\r\n if (action.payload.itemType === MenuItemActivatedType.notificationGroup && isMenuVisible) {\r\n yield put(createResetNotificationItemsAction());\r\n yield put(createResetNotificationsPageCountAction());\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje vybrání sekce po vybrání položky panelu menu\r\n * @param menuPanelItemId Identifikátor položky panelu menu\r\n */\r\nexport const selectSectionSaga: SagaWithReturnType<[string]> = function* selectSectionSaga(menuPanelItemId) {\r\n if (yield select(shouldChangeActiveSection, menuPanelItemId)) {\r\n yield put(createSetActiveSectionAction(menuPanelItemId));\r\n }\r\n};\r\n\r\n/**\r\n * Vrací Id rodičovského \"submenu\" nebo `undefined`, pokud `submenuId` představuje hlavní submenu.\r\n * @param submenuId\r\n */\r\nexport const getParentSubmenuIdSaga: SagaWithReturnType<[number], number | undefined> = function* getParentSubmenuIdSaga(submenuId) {\r\n const parentSubmenuId: SagaYieldReturn<typeof getMenuItemParentId> = yield select(getMenuItemParentId, submenuId);\r\n invariant(!!parentSubmenuId, \"parentSubmenuId should not be null\");\r\n const allowedRootFormItemIds: SagaYieldReturn<typeof getAllowedRootFormItemIds> = yield select(getAllowedRootFormItemIds);\r\n return !allowedRootFormItemIds.includes(parentSubmenuId) ? parentSubmenuId : undefined;\r\n};\r\n\r\nconst shouldClearLastSubmenuOnClose = (action: IToggleSubmenuAction | IMenuItemDefaultActionAllowedAction) => {\r\n return action instanceof IToggleSubmenuAction;\r\n};\r\n\r\n/**\r\n * Obsluhuje zpracování interakce se submenu. Na základě aktuální stavu otevře submenu.\r\n */\r\nexport const toggleSubmenuSaga: SagaWithReturnType<[IToggleSubmenuAction | IMenuItemDefaultActionAllowedAction]> = function* toggleSubmenuSaga(action) {\r\n let submenuId;\r\n if (action instanceof IToggleSubmenuAction) {\r\n submenuId = action.payload.submenuId;\r\n } else {\r\n submenuId = action.payload.itemId as number;\r\n }\r\n const activeSubmenuSelected: SagaYieldReturn<typeof isSubmenuActive> = yield select(isSubmenuActive, submenuId);\r\n const submenuFocusableId: SagaYieldReturn<typeof createFocusableItemId> = yield call(createFocusableItemId, submenuId, MenuFocusableItemType.folderItem, MenuNavigationSectionType.forms);\r\n const activeSectionId: SagaYieldReturn<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n\r\n if (activeSubmenuSelected) {\r\n // Podmenu je již aktivní -> zavře se. A případně se aktivuje nadřazené \"podmenu\".\r\n\r\n const parentSubmenuId: SagaYieldReturn<typeof getParentSubmenuIdSaga> = yield call(getParentSubmenuIdSaga, submenuId);\r\n if (parentSubmenuId) { // existuje nadřazené \"podmenu\" -> aktivuje se\r\n yield put(createSetActiveSubmenuAction(parentSubmenuId, activeSectionId));\r\n } else if (shouldClearLastSubmenuOnClose(action)) { // žádné nadřazené \"podmenu\" není\r\n yield put(createClearLastSubmenuAction(activeSectionId));\r\n }\r\n yield put(createSetFocusedItemAction(submenuFocusableId));\r\n } else {\r\n yield call(openSubmenuSaga, submenuId, activeSectionId);\r\n }\r\n};\r\n\r\n/**\r\n * Aktivuje zadané podmenu a zaměří jeho první položku.\r\n * (Určeno k otevření nového podmenu, které doposud otevřené není.)\r\n * @param submenuId Id podmenu, které má být aktivováno.\r\n * @param menuPanelItemId Id položky na hlavním panelu, v rámci které má být aktivováno dané podmenu.\r\n */\r\nexport const openSubmenuSaga: SagaWithReturnType<[number, string]> = function* openSubmenuSaga(submenuId, menuPanelItemId) {\r\n yield put(createSetActiveSubmenuAction(submenuId, menuPanelItemId));\r\n // nastaví zaměření na první položku z nově otevřeného submenu\r\n const submenuFocusableId: SagaYieldReturn<typeof createFocusableItemId> = yield call(createFocusableItemId, submenuId, MenuFocusableItemType.folderItem, MenuNavigationSectionType.forms);\r\n const submenuNode: SagaYieldReturn<typeof getNavigationNode> = yield select(getNavigationNode, submenuFocusableId);\r\n if (submenuNode && submenuNode.rightId) {\r\n yield put(createSetFocusedItemAction(submenuNode.rightId));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje zobrazení formuláře s přehledem notifikací aktivní notifikační skupiny.\r\n */\r\nexport const showGroupNotificationsSaga: SagaWithReturnType = function* showGroupNotificationsSaga() {\r\n const activeSectionId: SagaYieldReturn<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n\r\n if (!(yield select(isNotificationGroupPanelItemId, activeSectionId))) {\r\n yield call(logger.warn, \"The notification section is not active!\");\r\n return;\r\n }\r\n\r\n const panelItem: SagaYieldReturn<typeof getPanelItem> = yield select(getPanelItem, activeSectionId);\r\n if (!panelItem) {\r\n yield call(logger.warn, \"The panel item doesn't exist!\");\r\n return;\r\n }\r\n\r\n const notificationGroup: SagaYieldReturn<typeof getNotificationGroup> = yield select(getNotificationGroup, panelItem.itemId as NotificationGroupId);\r\n if (!notificationGroup) {\r\n yield call(logger.warn, \"The notification group identifier %d is not valid!\", panelItem.itemId);\r\n return;\r\n }\r\n\r\n const { formCode } = notificationGroup;\r\n yield put(createOpenFormAction(formCode, FormOpenMethod.newOrExisting, { openMode: FormOpenMode.form }));\r\n};\r\n\r\n/**\r\n * Obsluhuje označení všech notifikací aktivní skupiny za přečtené.\r\n */\r\nexport const setActiveGroupNotificationsAsRead: SagaWithReturnType = function* setGroupNotificationsAsRead() {\r\n const activeSectionId: SagaYieldReturn<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n\r\n if (!(yield select(isNotificationGroupPanelItemId, activeSectionId))) {\r\n yield call(logger.warn, \"The notification section is not active!\");\r\n return;\r\n }\r\n\r\n const panelItem: SagaYieldReturn<typeof getPanelItem> = yield select(getPanelItem, activeSectionId);\r\n if (!panelItem) {\r\n yield call(logger.warn, \"The panel item doesn't exist!\");\r\n return;\r\n }\r\n\r\n const notificationGroup: SagaYieldReturn<typeof getNotificationGroup> = yield select(getNotificationGroup, panelItem.itemId as NotificationGroupId);\r\n if (!notificationGroup) {\r\n yield call(logger.warn, \"The notification group identifier %d is not valid!\", panelItem.itemId);\r\n return;\r\n }\r\n\r\n yield putResolve(createSetGroupNotificationsAsReadAction(notificationGroup.id as NotificationGroupId, panelItem.id));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení další stránky notifikačních položek. Zajišťuje rušení požadavku na načtení, pokud již byly načteny všechny položky.\r\n */\r\nexport const loadNextNotificationItemsPageSaga: SagaWithReturnType = function* loadNextNotificationItemsPageSaga() {\r\n if (yield select(allNotificationItemsLoaded)) {\r\n return;\r\n }\r\n\r\n yield fork(loadGroupNotificationsSaga);\r\n};\r\n\r\n/**\r\n * Obsluhuje otevření formuláře s výsledkem úlohy.\r\n * @param objId Identifikátor otevíraného objektu.\r\n * @param openMethod Metoda otevření.\r\n */\r\nexport const openTaskResultFormSaga: SagaWithReturnType<[number, FormOpenMethod]> = function* openTaskResultFormSaga(objId, openMethod) {\r\n yield put(createLoadTaskResultDetailAction(objId));\r\n const taskResultDetailLoadedAction: ITaskResultDetailLoadedAction = yield take(TASK_RESULT_DETAIL_LOADED);\r\n const { formCode, objectIds } = taskResultDetailLoadedAction.payload.taskResultDetail.extraParameters;\r\n const { resultMessages } = taskResultDetailLoadedAction.payload.taskResultDetail;\r\n\r\n if (!formCode) {\r\n yield call(logger.error, \"Unable to open detail form. Task result does not contain all extra information.\");\r\n return;\r\n }\r\n const condition = objectIds && objectIds.length > 0\r\n ? `ID IN [${objectIds.join()}]`\r\n : undefined;\r\n yield put(createOpenFormAction(formCode, openMethod, {\r\n condition,\r\n openMode: FormOpenMode.form,\r\n resultMessages,\r\n }));\r\n};\r\n\r\n/**\r\n * Obsluhuje otevření formuláře notifikační položky.\r\n * @param formCode Kód formuláře k otevření\r\n * @param openMethod Metoda otevření\r\n * @param selectedId Identifikátor otevíraného objektu.\r\n */\r\nexport const openNotificationItemFormSaga: SagaWithReturnType<[string, FormOpenMethod, string?]> = function* openNotificationItemFormSaga(formCode, openMethod, selectedId?) {\r\n const formId: SagaYieldReturn<typeof getFormItemId> = yield select(getFormItemId, formCode);\r\n\r\n if (!formId) {\r\n yield call(logger.warn, \"There is no form identifier for a form code %s\", formCode);\r\n return;\r\n }\r\n\r\n const formItem: SagaYieldReturn<typeof getFormItem> = yield select(getFormItem, formId);\r\n if (!formItem) {\r\n yield call(logger.warn, \"There is no form item for a form id %d\", formId);\r\n return;\r\n }\r\n\r\n const { openMode } = formItem;\r\n yield put(createOpenFormAction(formCode, openMethod, { selectedId, openMode }));\r\n};\r\n\r\n/**\r\n * Obsluhuje vybrání notifikační položky. Výsledkem je otevření formuláře.\r\n * @param action\r\n */\r\nexport const notificationItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* notificationItemActivatedSaga(action) {\r\n const { itemId, mouseEvent } = action.payload;\r\n const notificationItem: SagaYieldReturn<typeof getNotificationItem> = yield select(getNotificationItem, itemId as number);\r\n if (!notificationItem) {\r\n yield call(logger.warn, \"The notification item is not valid!\");\r\n return;\r\n }\r\n\r\n const formOpenMethod = mouseEvent && (yield call(isOpenInTabEvent, mouseEvent)) ? FormOpenMethod.inTab : FormOpenMethod.new;\r\n\r\n const { id, formCode, objId, functionType }: INotificationItem = notificationItem;\r\n if (functionType === NotificationFunctionType.taskResult) {\r\n if (!objId) {\r\n yield call(logger.warn, \"The object ID is not valid!\");\r\n return;\r\n }\r\n yield fork(openTaskResultFormSaga, objId, formOpenMethod);\r\n } else if (formCode) {\r\n yield fork(openNotificationItemFormSaga, formCode, formOpenMethod, objId?.toString());\r\n }\r\n\r\n yield put(createSetNotificationItemAsReadAction(id, true));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení notifikačních položek aktivní notifikační skupiny.\r\n */\r\nexport const loadGroupNotificationsSaga: SagaWithReturnType = function* loadGroupNotificationsSaga() {\r\n const notificationsStartIndex: SagaYieldReturn<typeof getNotificationsStartIndex> = yield select(getNotificationsStartIndex);\r\n const activeSectionId: SagaYieldReturn<typeof getActiveSectionId> = yield select(getActiveSectionId);\r\n\r\n if (!(yield select(isNotificationGroupPanelItemId, activeSectionId))) {\r\n yield call(logger.warn, \"An active section is not a notification section. Active section ID is %s!\", activeSectionId);\r\n return;\r\n }\r\n\r\n const panelItem: SagaYieldReturn<typeof getPanelItem> = yield select(getPanelItem, activeSectionId);\r\n if (!panelItem) {\r\n yield call(logger.warn, \"The panel item doesn't exist!\");\r\n return;\r\n }\r\n\r\n const notificationGroupId = panelItem.itemId;\r\n if (!notificationGroupId) {\r\n yield call(logger.warn, \"The notification group identifier %d is not valid!\", notificationGroupId);\r\n return;\r\n }\r\n\r\n yield put(createSetFetchingAction(FETCHING_KEY_NOTIFICATION_ITEMS, true));\r\n yield put(createLoadNotificationItemsAction(notificationGroupId as NotificationGroupId, notificationsStartIndex, NOTIFICATIONS_PAGE_SIZE));\r\n const { payload }: INotificationItemsLoadedAction = yield take(NOTIFICATION_ITEMS_LOADED);\r\n if (payload.notificationGroupId === notificationGroupId) {\r\n yield put(createConcatNotificationItemsAction(transformNotificationItems(payload.notificationItems)));\r\n yield put(createIncreaseNotificationsPageCountAction());\r\n }\r\n yield put(createSetFetchingAction(FETCHING_KEY_NOTIFICATION_ITEMS, false));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení notifikačních skupin. Zpracování načtených dat zajišťuje {@link processLoadedNotificationGroupsSaga}, která se spouští jak pro prvotní načtení tak pro následující aktualizace.\r\n */\r\nexport const loadNotificationGroupsSaga: SagaWithReturnType = function* loadNotificationGroupsSaga() {\r\n yield put(createLoadNotificationGroupsAction());\r\n};\r\n\r\n/**\r\n * Zajišťuje zpracování načtených notifikačních skupin z dat akce {@link NOTIFICATION_GROUPS_LOADED}.\r\n * @param notificationGroupsLoadedAction\r\n */\r\nexport const processLoadedNotificationGroupsSaga: SagaWithReturnType<[INotificationGroupsLoadedAction]> = function* processLoadedNotificationGroupsSaga(notificationGroupsLoadedAction) {\r\n const normalizedNotificationGroups: SagaYieldReturn<typeof normalizeNotificationGroups> = yield call(normalizeNotificationGroups, notificationGroupsLoadedAction.payload.notificationGroups);\r\n yield put(createSetNotificationGroupsAction(normalizedNotificationGroups));\r\n yield put(createSetNotificationGroupsPanelItemsAction(notificationGroupsToPanelItems(normalizedNotificationGroups)));\r\n};\r\n\r\n/**\r\n * Obsluhuje načtení lokalizace pro notifikační skupiny.\r\n */\r\nexport const loadNotificationGroupsLocalizationSaga: SagaWithReturnType = function* loadNotificationGroupsLocalizationSaga() {\r\n const notificationGroupsLocalizationKeys: SagaYieldReturn<typeof getNotificationGroupsLocalizationKeys> = yield select(getNotificationGroupsLocalizationKeys);\r\n yield put(createLoadLocalizationKeysAction(notificationGroupsLocalizationKeys, FETCHING_KEY_NOTIFICATION_GROUPS_LOCALIZATION));\r\n};\r\n\r\n/**\r\n * Obsluhuje akci kliknutí na logo aplikace. Aktualizuje zaměřený prvek ve stavu a skryje otevřené formuláře.\r\n */\r\nexport const logoActivatedSaga: SagaWithReturnType = function* logoActivatedSaga() {\r\n const logoFocusableId: SagaYieldReturn<typeof createFocusableItemId> = yield call(createFocusableItemId, MenuPanelItemId.logo, MenuFocusableItemType.panelItem, MenuNavigationSectionType.static);\r\n yield put(createSetFocusedItemAction(logoFocusableId));\r\n yield put(createHideAllFormsAction());\r\n};\r\n\r\n/**\r\n * Obsluhuje akci kliknutí na tlačítko rozbalení/sbalení menu. Aktualizuje zaměřený prvek ve stavu.\r\n */\r\nexport const expandButtonActivatedSaga: SagaWithReturnType = function* expandButtonActivatedSaga() {\r\n yield put(createSetFocusedItemAction(MENU_EXPAND_BUTTON_FOCUSABLE_ID));\r\n};\r\n\r\n/**\r\n * Obsluhuje akci kliknutí na tlačítko pro zobrazení dialogu s nastavením.\r\n */\r\nexport const settingsButtonActivatedSaga: SagaWithReturnType = function* settingsButtonActivatedSaga() {\r\n yield put(createShowSettingsAction());\r\n yield fork(focusIfNotFocusedSaga, SETTINGS_BUTTON_FOCUSABLE_ID);\r\n};\r\n\r\n/**\r\n * Obsluhuje akci kliknutí na tlačítko pro změnu tématu.\r\n */\r\nexport const toggleThemeButtonActivatedSaga: SagaWithReturnType = function* toggleThemeButtonClickedSaga() {\r\n yield put(createToggleThemeAction());\r\n yield fork(focusIfNotFocusedSaga, TOGGLE_THEME_BUTTON_FOCUSABLE_ID);\r\n};\r\n\r\n/**\r\n * Obsluhuje akci kliknutí na tlačítko pro odhlášení uživatele.\r\n */\r\nexport const logoutButtonActivatedSaga: SagaWithReturnType = function* logoutButtonActivatedSaga() {\r\n yield put(createLogoutAction());\r\n yield fork(focusIfNotFocusedSaga, LOGOUT_BUTTON_FOCUSABLE_ID);\r\n};\r\n\r\n/**\r\n * Obsluhuje side effecty při žádosti o otevření formuláře.\r\n */\r\nexport const openFormPreProcessSaga: SagaWithReturnType<[IOpenFormAction]> = function* openFormPreProcessSaga(action) {\r\n if (action.payload.openMethod === FormOpenMethod.inTab) {\r\n return;\r\n }\r\n\r\n const menuItemId = action.payload.openFormData?.menuItemId;\r\n const isCombinedItemType = menuItemId && (yield select(isCombinedItem, menuItemId));\r\n if (!isCombinedItemType) { // pro kombinované položky se nepřepíná sekce, protože se zároveň otvírá menu s podřízenými položkami\r\n yield put(createSetActiveSectionAction(MenuPanelItemId.quickAccess));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro položku profilu.\r\n * @param action\r\n */\r\nexport const profileActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* profileActivatedSaga(action) {\r\n const profileFormRelationship: SagaYieldReturn<typeof getProfileFormRelationship> = yield select(getProfileFormRelationship, action.payload.itemId as string);\r\n if (profileFormRelationship) {\r\n const formOpenMethod: SagaYieldReturn<typeof getFormOpenMethodFromActivationAction> = yield call(getFormOpenMethodFromActivationAction, action);\r\n yield call(openProfileSaga, profileFormRelationship.profileId, formOpenMethod, profileFormRelationship.formItemId);\r\n } else {\r\n yield call(logger.warn, \"Cannot open profile because profileId for itemId %s was not found.\", action.payload.itemId);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro položku formuláře.\r\n * @param action\r\n */\r\nexport const formItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* formItemActivatedSaga(action) {\r\n if (action.payload.preventFormDefault)\r\n return;\r\n\r\n const formItemId = action.payload.itemId as number;\r\n const formOpenMethod: SagaYieldReturn<typeof getFormOpenMethodFromActivationAction> = yield call(getFormOpenMethodFromActivationAction, action);\r\n yield call(openFormItemSaga, formItemId, formOpenMethod);\r\n};\r\n\r\n/**\r\n * Obsluhuje aktivaci otevřených položek (formulářů s položkou v menu, profilů, formulářů bez položky v menu).\r\n * @param action\r\n */\r\nexport const openedFormActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openedFormActivatedSaga(action) {\r\n const { itemId, mouseEvent } = action.payload;\r\n const formInstanceId = itemId as string;\r\n const isOpenInTab = !!mouseEvent && (yield call(isOpenInTabEvent, mouseEvent));\r\n if (isOpenInTab) {\r\n yield call(openFormInstanceSaga, formInstanceId, FormOpenMethod.inTab);\r\n } else {\r\n yield put(createSwitchToFormAction(formInstanceId));\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít ve formulářových položkách menu.\r\n * @param action\r\n */\r\nexport const openFormActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openFormActionItemActivatedSaga(action) {\r\n const formItemId = action.payload.itemId as number;\r\n yield call(openFormItemSaga, formItemId, FormOpenMethod.new);\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít v profilových položkách menu.\r\n * @param action\r\n */\r\nexport const openProfileActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openProfileActionItemActivatedSaga(action) {\r\n const profileFormRelationship: SagaYieldReturn<typeof getProfileFormRelationship> = yield select(getProfileFormRelationship, action.payload.itemId as string);\r\n if (profileFormRelationship) {\r\n yield call(openProfileSaga, profileFormRelationship.profileId, FormOpenMethod.new, profileFormRelationship.formItemId);\r\n } else {\r\n yield call(logger.warn, \"Cannot open profile because profileId for itemId %s was not found.\", action.payload.itemId);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít v otevřených položkách menu.\r\n * @param action\r\n */\r\nexport const openFormInstanceActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openFormInstanceActionItemActivatedSaga(action) {\r\n const formInstanceId = action.payload.itemId as string;\r\n yield call(openFormInstanceSaga, formInstanceId, FormOpenMethod.new);\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít v nové záložce prohlížeče ve formulářových položkách menu.\r\n * @param action\r\n */\r\nexport const openFormInTabActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openFormInTabActionItemActivatedSaga(action) {\r\n const formItemId = action.payload.itemId as number;\r\n yield call(openFormItemSaga, formItemId, FormOpenMethod.inTab);\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít v nové záložce prohlížeče v profilových položkách menu.\r\n * @param action\r\n */\r\nexport const openProfileInTabActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openProfileInTabActionItemActivatedSaga(action) {\r\n const profileFormRelationship: SagaYieldReturn<typeof getProfileFormRelationship> = yield select(getProfileFormRelationship, action.payload.itemId as string);\r\n if (profileFormRelationship) {\r\n yield call(openProfileSaga, profileFormRelationship.profileId, FormOpenMethod.inTab, profileFormRelationship.formItemId);\r\n } else {\r\n yield call(logger.warn, \"Cannot open profile in tab because profileId for itemId %s was not found.\", action.payload.itemId);\r\n }\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku otevřít v nové záložce prohlížeče v otevřených položkách menu.\r\n * @param action\r\n */\r\nexport const openFormInstanceInTabActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* openFormInstanceInTabActionItemActivatedSaga(action) {\r\n const formInstanceId = action.payload.itemId as string;\r\n yield call(openFormInstanceSaga, formInstanceId, FormOpenMethod.inTab);\r\n};\r\n\r\n/**\r\n * Obsluhuje výchozí chování pro akční položku zavření formuláře.\r\n * @param action\r\n */\r\nexport const closeActionItemActivatedSaga: SagaWithReturnType<[IMenuItemDefaultActionAllowedAction]> = function* closeActionItemActivatedSaga(action) {\r\n const formInstanceId = action.payload.itemId as string;\r\n yield delay(1); // Použit z důvodu \"počkání\" na dokončení obsluhy eventu valueChanged //TODO - 36658 - Odstranit delay ze sagy\r\n yield put(createCloseFormAction(formInstanceId));\r\n};\r\n\r\n/**\r\n * Otevře zadanou formulářovou položku požadovanou metodou. Před otevřením kontroluje restrikce.\r\n * @param formItemId Id formulářové položky k otevření.\r\n * @param openMethod Metoda otevření.\r\n */\r\nexport const openFormItemSaga: SagaWithReturnType<[number, FormOpenMethod]> = function* openFormItemSaga(formItemId, openMethod) {\r\n const windowActionsEnabled: SagaYieldReturn<typeof areFormItemWindowActionsEnabled> = yield select(areFormItemWindowActionsEnabled, formItemId);\r\n if (!windowActionsEnabled) {\r\n return;\r\n }\r\n const formItem: SagaYieldReturn<typeof getFormItem> = yield select(getFormItem, formItemId);\r\n if (!formItem) {\r\n yield call(logger.warn, \"Cannot open form item with id %s, because there is no form item with such id\", formItemId);\r\n return;\r\n }\r\n if (!formItem.formCode) {\r\n yield call(logger.warn, \"Cannot open form item with id %s, because form code for this item is not defined\", formItemId);\r\n return;\r\n }\r\n\r\n let options: OpenFormData = {\r\n menuItemId: formItemId,\r\n openMode: formItem.openMode,\r\n isFromMainMenu: true,\r\n\r\n };\r\n const formContext = yield call(createFormContext, formItem);\r\n if (formContext)\r\n options = { ...options, formContext };\r\n\r\n yield put(createOpenFormAction(formItem.formCode, openMethod, options));\r\n};\r\n\r\n/**\r\n * Otevře zadaný profil formuláře požadovanou metodou. Před otevřením kontroluje restrikce.\r\n * @param profileId Id profilu k otevření.\r\n * @param openMethod Metoda otevření.\r\n * @param formItemId Id položky formuláře, pro který se profil otvírá. Pokud není známá, vyhledá se automaticky podle formCode.\r\n */\r\nexport const openProfileSaga: SagaWithReturnType<[number, FormOpenMethod, number?]> = function* openProfileSaga(profileId, openMethod, formItemId?) {\r\n const windowActionsEnabled: SagaYieldReturn<typeof areProfileWindowActionsEnabled> = yield select(areProfileWindowActionsEnabled, profileId);\r\n if (!windowActionsEnabled) {\r\n return;\r\n }\r\n const formItem: IMenuItemData = formItemId ? yield select(getFormItem, formItemId) : yield select(getFormItemByProfileId, profileId);\r\n if (!formItem) {\r\n yield call(logger.warn, \"Cannot open profile with id %s, because there is no form item with such id\", profileId);\r\n return;\r\n }\r\n if (!formItem.formCode) {\r\n yield call(logger.warn, \"Cannot open profile with id %s, because form code for this profile is not defined.\", profileId);\r\n return;\r\n }\r\n\r\n let options: OpenFormData = {\r\n menuItemId: formItem.id,\r\n openMode: formItem.openMode,\r\n profileId,\r\n isFromMainMenu: true,\r\n };\r\n\r\n const formContext = yield call(createFormContext, formItem);\r\n if (formContext)\r\n options = { ...options, formContext };\r\n\r\n yield put(createOpenFormAction(formItem.formCode, openMethod, options));\r\n};\r\n\r\n/**\r\n * Otevře formulář patřící k zadané instanci otevřeného formuláře.\r\n * @param formInstanceId Id instance otevřeného formuláře.\r\n * @param openMethod Metoda otevření.\r\n */\r\nexport const openFormInstanceSaga: SagaWithReturnType<[string, FormOpenMethod]> = function* openFormInstanceSaga(formInstanceId, openMethod) {\r\n const openedFormInfo: SagaYieldReturn<typeof getOpenedFormInfo> = yield select(getOpenedFormInfo, formInstanceId);\r\n if (!openedFormInfo) {\r\n yield call(logger.warn, \"Cannot open form from form instance with id %s, because there is no opened form with such id\", formInstanceId);\r\n return;\r\n }\r\n\r\n const { formCode, profileId, menuItemId, selectedId, visibleOnlyDetail } = openedFormInfo;\r\n if (profileId) {// otevřená položka je profil s položkou v menu\r\n yield call(openProfileSaga, profileId, openMethod, menuItemId);\r\n } else if (menuItemId) {\r\n yield call(openFormItemSaga, menuItemId, openMethod);\r\n } else {// otevřená položka nemá položku v menu\r\n // TODO [Tom Rejent] Doplnit obecnou kontrolu restrikcí v rámci tasku 27250.\r\n yield put(createOpenFormAction(formCode, openMethod, {\r\n isFromMainMenu: true,\r\n selectedId,\r\n visibleOnlyDetail,\r\n }));\r\n }\r\n};\r\n\r\n/**\r\n * Zajišťuje aktualizaci stavu, který je závislý na položkách profilu.\r\n * @param action\r\n */\r\nexport const formProfileChangedSaga: SagaWithReturnType<[IFormProfileChangedAction]> = function* formProfileChangedSaga(action) {\r\n const { type, profile } = action.payload;\r\n if (type === ProfileChangeType.remove) {\r\n const profileFormRelationships: SagaYieldReturn<typeof getProfileFormRelationshipModel> = yield select(getProfileFormRelationshipModel);\r\n const affectedItems = Object.values(profileFormRelationships)\r\n .filter((item): item is RequiredProp<ProfileFormRelationship, \"formItemId\"> => item.profileId === profile.id && !!item.formItemId);\r\n const affectedFormItemIds = affectedItems.map((item) => item.formItemId);\r\n yield put(createRemoveProfileFromFormsAction(profile.id, affectedFormItemIds));\r\n const profileRelationShipIdsToDelete = [\r\n createItemIdForProfile(profile.id),\r\n ...affectedItems.map((item) => item.id),\r\n ];\r\n yield put(createRemoveProfileFormRelationshipsAction(profileRelationShipIdsToDelete));\r\n } else if (type === ProfileChangeType.add) {\r\n // Není jednoznačné ke které položce v menu byl profil přidán, proto se znovu načtou všechny položky menu s aktuálními profily\r\n yield call(loadMenuItemsSaga);\r\n // Po volání `loadMenuItemsSaga` není akce pro přidání vztahu profilu potřebná - je však ponechána kvůli aktualizaci vyhledávání.\r\n yield put(createAddProfileToRelationshipsAction(profile.id));\r\n } else if (type === ProfileChangeType.update) {\r\n const profileId = action.payload.profile.id;\r\n const profileFormRelationShip: SagaYieldReturn<typeof getProfileFormRelationship> = yield select(getProfileFormRelationship, profileId.toString());\r\n // Pokud profil při aktualizaci nemá definované vazby s položkami formulářů, znovu se načtou všechny položky menu s aktuálními profily.\r\n // Děje se to hlavně po nastavení \"Zobrazit v menu\" na existujícím profilu.\r\n if (!profileFormRelationShip) {\r\n yield call(loadMenuItemsSaga);\r\n }\r\n }\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { MainMenu, MainMenuProps } from \"./components/MainMenu\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IMenuState } from \"./types\";\r\n\r\nexport { createReloadMenuAction } from \"./actions\";\r\n\r\nexport const menuModule: ApplicationStatefulModule<typeof NAME, Reducer<IMenuState>, MainMenuProps> = {\r\n NAME,\r\n Container: MainMenu,\r\n reducer,\r\n saga,\r\n};\r\n","import { REMOVE_RIGHTS_FOR_COMPONENTS, SET_RIGHTS_FOR_COMPONENTS, SET_RIGHTS_INTERNAL } from \"./constants\";\r\nimport type {\r\n IComponentRightsState,\r\n IRemoveRightsForComponents,\r\n ISetRightsForComponentsAction,\r\n ISetRightsInternal,\r\n RemoveRightsForComponentsPayload,\r\n SetRightsForComponentsPayload,\r\n} from \"./types\";\r\n\r\n/**\r\n * Vytvoří akci pro nastavení práv pro zadané komponenty. Pokud nejsou některá konkrétní práva specifikována,\r\n * použije se pro ně výchozí hodnota (nebo zůstane předchozí hodnota, pokud již komponenta měla práva nastavená z předchozích akcí).\r\n * @param rights Práva komponent. Pokud obsahuje práva pro komponentu se stejným id, použije se poslední výskyt.\r\n */\r\nexport const createSetRightsForComponentsAction = (\r\n rights: SetRightsForComponentsPayload,\r\n): ISetRightsForComponentsAction => ({\r\n type: SET_RIGHTS_FOR_COMPONENTS,\r\n payload: rights,\r\n});\r\n\r\n/**\r\n * Interní akce pro nastavení práv pro jednu komponentu. Slouží pro rozpad hromadné akce {@link createSetRightsForComponentsAction}.\r\n * @param rights Práva pro komponentu.\r\n */\r\nexport const createSetRightsInternal = (\r\n rights: Partial<IComponentRightsState>,\r\n): ISetRightsInternal => ({\r\n type: SET_RIGHTS_INTERNAL,\r\n payload: rights,\r\n});\r\n\r\n/**\r\n * Vytvoří akci k odstranění práv zadaných komponent ze stavu. Slouží pro úklid stavu, když již práva nejsou potřebná.\r\n * @param ids Pole identifikátorů komponent, jejichž práva se odstraní.\r\n */\r\nexport const createRemoveRightsForComponents = (\r\n ids: RemoveRightsForComponentsPayload,\r\n): IRemoveRightsForComponents => ({\r\n type: REMOVE_RIGHTS_FOR_COMPONENTS,\r\n payload: ids,\r\n});\r\n","import { combineReducers, Reducer } from \"redux\";\r\nimport { produce } from \"immer\";\r\n\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { createSetRightsInternal } from \"./actions\";\r\nimport { IComponentRightsState, IRemoveRightsForComponents, ISetRightsForComponentsAction, ISetRightsInternal, RightsState } from \"./types\";\r\n\r\n// TODO dořešit výchozí práva, kde má být jaká hodnota\r\nexport const DEFAULT_RIGHTS: IComponentRightsState = {\r\n enabled: true,\r\n recommended: true,\r\n postponedRequired: true,\r\n visible: true,\r\n required: true,\r\n};\r\n\r\nconst visible: Reducer<boolean> = (state = DEFAULT_RIGHTS.visible, action) => {\r\n if (action instanceof ISetRightsInternal) {\r\n return action.payload.visible ?? state;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst enabled: Reducer<boolean> = (state = DEFAULT_RIGHTS.enabled, action) => {\r\n if (action instanceof ISetRightsInternal) {\r\n return action.payload.enabled ?? state;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst required: Reducer<boolean> = (state = DEFAULT_RIGHTS.required, action) => {\r\n if (action instanceof ISetRightsInternal) {\r\n return action.payload.required ?? state;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst postponedRequired: Reducer<boolean> = (state = DEFAULT_RIGHTS.postponedRequired, action) => {\r\n if (action instanceof ISetRightsInternal) {\r\n return action.payload.postponedRequired ?? state;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst recommended: Reducer<boolean> = (state = DEFAULT_RIGHTS.recommended, action) => {\r\n if (action instanceof ISetRightsInternal) {\r\n return action.payload.recommended ?? state;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst componentRights: Reducer<IComponentRightsState> = combineReducers({\r\n visible,\r\n enabled,\r\n required,\r\n postponedRequired,\r\n recommended,\r\n});\r\n\r\nexport const reducer: Reducer<RightsState> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ISetRightsForComponentsAction) {\r\n return produce(state, (draft) => {\r\n action.payload.forEach((rightsPayloadForComponent) => {\r\n const { id } = rightsPayloadForComponent;\r\n draft[id] = componentRights(state[id], createSetRightsInternal(rightsPayloadForComponent.rights));\r\n });\r\n });\r\n } else if (action instanceof IRemoveRightsForComponents) {\r\n return produce(state, (draft) => {\r\n action.payload.forEach((id) => {\r\n delete draft[id];\r\n });\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n","import { Selector } from \"react-redux\";\r\n\r\nimport type { IAppState } from \"@multiweb/types/react\";\r\nimport type { IComponentRightsState } from \"./types\";\r\n\r\n/**\r\n * Získá práva pro komponentu se zadaným id. Do komponenty je vhodné předávat pouze ta práva, které komponenta opravdu potřebuje.\r\n * @param id Identifikátor komponenty.\r\n * @returns Vrací práva komponenty nebo undefined, pokud komponenta ještě nemá vyhodnocená a nastavená práva.\r\n * @example Použití\r\n * const mapStateToProps = (state, { id }) => {\r\n * const { enabled, visible } = getComponentRights(state, id) ?? EMPTY_OBJECT; // EMPTY_OBJECT může být nahrazeno za výchozí hodnoty\r\n * return {\r\n * enabled,\r\n * visible,\r\n * };\r\n * };\r\n */\r\nexport const getComponentRights: Selector<IAppState, IComponentRightsState | undefined, string> = (state, id) => {\r\n return state.rights[id];\r\n};\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { RightsState } from \"./types\";\r\n\r\nexport { createRemoveRightsForComponents, createSetRightsForComponentsAction } from \"./actions\";\r\nexport { getComponentRights } from \"./selectors\";\r\n\r\nexport const rightsModule: ApplicationStatefulModule<typeof NAME, Reducer<RightsState>> = {\r\n NAME,\r\n reducer,\r\n};\r\n","import { AnyAction, combineReducers, Reducer } from \"redux\";\r\nimport produce from \"immer\";\r\n\r\nimport { IPicassoAction, reducer as picasso } from \"@multiweb/picasso\";\r\nimport { createInstanceMapReducer, EMPTY_ARRAY, EMPTY_OBJECT, invariant } from \"@multiweb/reactUtils\";\r\nimport { MutableTypedObject, TypedObject } from \"@multiweb/types/react\";\r\nimport { ParticipantType, WorkflowEditorMode } from \"./enums\";\r\nimport {\r\n IActivity,\r\n IActivityPropertyPanelState,\r\n IClearPicassoHostAction,\r\n IEnableStatusViewAction,\r\n IEnableViewerModeAction,\r\n IGeneralPropertyPanelState,\r\n IHideMessageWindowAction,\r\n IHostInstanceState,\r\n ILoadWorkflowEntities,\r\n IParticipant,\r\n IPicassoHostAction,\r\n ISet,\r\n ISetTouchedAction,\r\n IShowMessageWindowAction,\r\n IToggleEditDialogsVisibilityAction,\r\n IToggleGridAction,\r\n ITransition,\r\n ITransitionPropertyPanelState,\r\n IUpdateActivityAction,\r\n IUpdateActivityPropertyPanelStateAction,\r\n IUpdateDefinitionParticipantsAction,\r\n IUpdateGeneralPropertyPanelStateAction,\r\n IUpdateSetsAction,\r\n IUpdateTransitionAction,\r\n IUpdateTransitionPropertyPanelStateAction,\r\n IVariable,\r\n IWorkflowEditorState,\r\n WfMessageWindowState,\r\n} from \"./types\";\r\nimport { updateActions, updateTriggers } from \"./utils\";\r\n\r\n/** Defaultní stav pro Activty panel */\r\nconst ACTIVITY_PROPERTY_PANEL_STATE: IActivityPropertyPanelState = {\r\n \"PROPERTIES\": { isOpen: true },\r\n \"ACTIONS\": { isOpen: true },\r\n \"TRIGGERS\": { isOpen: true },\r\n \"PARTICIPANTS\": { isOpen: true },\r\n \"ACTIVE_PARTICIPANTS\": { isOpen: true },\r\n \"SETS\": { isOpen: true },\r\n};\r\n\r\n/** Defaultní stav pro Transition panel */\r\nconst TRANSITION_PROPERTY_PANEL_STATE: ITransitionPropertyPanelState = {\r\n \"PROPERTIES\": { isOpen: true },\r\n \"ACTIONS\": { isOpen: true },\r\n};\r\n\r\n/** Defaultní stav pro General panel */\r\nconst GENERAL_PROPERTY_PANEL_STATE: IGeneralPropertyPanelState = {\r\n \"VARIABLES\": { isOpen: true },\r\n \"LEGEND\": { isOpen: true },\r\n \"SET\": { isOpen: true },\r\n};\r\n\r\nconst WF_MESSAGE_WINDOW_DEFAULT_STATE: WfMessageWindowState = {\r\n actionId: null,\r\n contentLocKey: null,\r\n isVisible: false,\r\n primaryButtonLocKey: null,\r\n secondaryButtonLocKey: null,\r\n};\r\n\r\nconst wfEditorMode: Reducer<WorkflowEditorMode> = (state = WorkflowEditorMode.Editor, action) => {\r\n if (action instanceof IEnableStatusViewAction)\r\n return WorkflowEditorMode.StatusViewer;\r\n if (action instanceof IEnableViewerModeAction)\r\n return WorkflowEditorMode.Viewer;\r\n return state;\r\n};\r\n\r\nconst isGridEnabled: Reducer<boolean> = (state = true, action) => {\r\n if (action instanceof IToggleGridAction)\r\n return !state;\r\n if (action instanceof IEnableStatusViewAction)\r\n return false;\r\n\r\n return state;\r\n};\r\n\r\nconst isEditDialogHidden: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof IToggleEditDialogsVisibilityAction)\r\n return !state;\r\n\r\n return state;\r\n};\r\n\r\nconst touched: Reducer<boolean> = (state = false, action) => {\r\n if (action instanceof ISetTouchedAction)\r\n return action.payload.touched;\r\n\r\n return state;\r\n};\r\n\r\nconst selectedSetId: Reducer<string> = (state = \"\", action) => {\r\n if (action instanceof ILoadWorkflowEntities)\r\n return action.payload.selectedSetId ?? state;\r\n\r\n return state;\r\n};\r\n\r\nconst orderedSetsIds: Reducer<readonly string[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ILoadWorkflowEntities)\r\n return action.payload.sets.map(set => set.id);\r\n else if (action instanceof IUpdateSetsAction)\r\n return action.payload.newSets.map(set => set.id);\r\n\r\n return state;\r\n};\r\n\r\nconst sets: Reducer<TypedObject<ISet>> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof ILoadWorkflowEntities) {\r\n const newSets: MutableTypedObject<ISet> = {};\r\n action.payload.sets.forEach((set) => (newSets[set.id] = set));\r\n return newSets;\r\n } else if (action instanceof IUpdateSetsAction) {\r\n const newSets: MutableTypedObject<ISet> = {};\r\n action.payload.newSets.forEach((set) => (newSets[set.id] = set));\r\n return newSets;\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst activities: Reducer<readonly IActivity[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ILoadWorkflowEntities) {\r\n return action.payload.activities.map(activity => {\r\n return {\r\n ...activity,\r\n actions: updateActions(activity.actions),\r\n triggers: updateTriggers(activity.triggers),\r\n };\r\n });\r\n } else if (action instanceof IUpdateActivityAction) {\r\n return produce(state, (draft: IActivity[]): void => {\r\n const { picassoIndex, newActivity } = action.payload;\r\n const index = picassoIndex - 1; // picaso na prvním místě má vždy komponentu sady, proto zde - 1\r\n\r\n invariant(index >= 0 && index < state.length, \"Index is out of bounds. Throwing error to avoid data corruption.\");\r\n\r\n const { actions: oldActions, triggers: oldTriggers } = state[index];\r\n const { actions: newActions, triggers: newTriggers } = newActivity;\r\n\r\n if (oldActions !== newActions || oldTriggers !== newTriggers) {\r\n const updatedActivity = { ...newActivity };\r\n\r\n if (oldActions !== newActions)\r\n updatedActivity.actions = updateActions(newActions, oldActions);\r\n if (oldTriggers !== newTriggers)\r\n updatedActivity.triggers = updateTriggers(newTriggers, oldTriggers);\r\n\r\n draft[index] = updatedActivity;\r\n } else\r\n draft[index] = newActivity;\r\n });\r\n } else if (action instanceof IUpdateSetsAction) {\r\n return produce(state, (draft) => {\r\n const { newSets } = action.payload;\r\n draft.forEach(activity => {\r\n // pokud byla sada odebrána, smaž referenci z aktivity\r\n activity.positions = activity.positions.filter(position => newSets.some(newSet => newSet.id === position.setId));\r\n for (const position of activity.positions) {\r\n const newSet = newSets.find(set => set.id === position.setId);\r\n\r\n if (position.setId === newSet?.id) {\r\n position.setName = newSet.name;\r\n return;\r\n }\r\n }\r\n });\r\n });\r\n } else if (action instanceof IUpdateDefinitionParticipantsAction) {\r\n const { newActivities, newParticipants: newDefinitionParticipants } = action.payload;\r\n\r\n if (!newActivities) {\r\n return state;\r\n }\r\n\r\n return produce(state, (draft) => {\r\n for (const newActivity of newActivities) {\r\n const draftActivity = draft.find(x => x.id === newActivity.id);\r\n\r\n if (!draftActivity) {\r\n continue;\r\n }\r\n\r\n draftActivity.participants = draftActivity.participants\r\n .filter(x => x.participantType !== ParticipantType.DefinitionParticipant || newDefinitionParticipants.some(y => y.identifier === x.identifier))\r\n .map(participant => newDefinitionParticipants.find(x => x.identifier === participant.identifier) ?? participant);\r\n }\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst transitions: Reducer<readonly ITransition[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ILoadWorkflowEntities)\r\n return action.payload.transitions.map(transition => {\r\n return { ...transition, actions: updateActions(transition.actions) };\r\n });\r\n else if (action instanceof IUpdateTransitionAction) {\r\n return produce(state, (draft: ITransition[]) => {\r\n const { index, newTransition } = action.payload;\r\n const oldActions = state[index].actions;\r\n const newActions = newTransition.actions;\r\n\r\n if (oldActions !== newActions)\r\n draft[index] = { ...newTransition, actions: updateActions(newActions, oldActions) };\r\n else\r\n draft[index] = newTransition;\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst activityPropertyPanelState: Reducer<IActivityPropertyPanelState> = (state = ACTIVITY_PROPERTY_PANEL_STATE, action) => {\r\n if (action instanceof IUpdateActivityPropertyPanelStateAction) {\r\n return produce(state, (draft) => {\r\n const { isExpanded, containerName } = action.payload;\r\n draft[containerName].isOpen = isExpanded;\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst transitionPropertyPanelState: Reducer<ITransitionPropertyPanelState> = (state = TRANSITION_PROPERTY_PANEL_STATE, action) => {\r\n if (action instanceof IUpdateTransitionPropertyPanelStateAction) {\r\n return produce(state, (draft) => {\r\n const { isExpanded, containerName } = action.payload;\r\n draft[containerName].isOpen = isExpanded;\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst generalPropertyPanelState: Reducer<IGeneralPropertyPanelState> = (state = GENERAL_PROPERTY_PANEL_STATE, action) => {\r\n if (action instanceof IUpdateGeneralPropertyPanelStateAction) {\r\n return produce(state, (draft) => {\r\n const { isExpanded, containerName } = action.payload;\r\n draft[containerName].isOpen = isExpanded;\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst definitionParticipants: Reducer<readonly IParticipant[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof ILoadWorkflowEntities)\r\n return action.payload.definitionParticipants;\r\n else if (action instanceof IUpdateDefinitionParticipantsAction)\r\n return action.payload.newParticipants;\r\n\r\n return state;\r\n};\r\n\r\nconst variables: Reducer<readonly IVariable[]> = (state = EMPTY_ARRAY, action) => {\r\n if (action instanceof IEnableStatusViewAction)\r\n return action.payload.variables;\r\n\r\n return state;\r\n};\r\n\r\nconst wfMessageWindowState: Reducer<WfMessageWindowState> = (state = WF_MESSAGE_WINDOW_DEFAULT_STATE, action) => {\r\n if (action instanceof IShowMessageWindowAction)\r\n return { ...action.payload, isVisible: true };\r\n if (action instanceof IHideMessageWindowAction)\r\n return WF_MESSAGE_WINDOW_DEFAULT_STATE;\r\n\r\n return state;\r\n};\r\n\r\nconst hostReducer: Reducer<IHostInstanceState> = combineReducers({\r\n picasso,\r\n wfEditorMode,\r\n isGridEnabled,\r\n isEditDialogHidden,\r\n touched,\r\n selectedSetId,\r\n orderedSetsIds,\r\n sets,\r\n activities,\r\n transitions,\r\n activityPropertyPanelState,\r\n transitionPropertyPanelState,\r\n generalPropertyPanelState,\r\n definitionParticipants,\r\n variables,\r\n wfMessageWindowState,\r\n});\r\n\r\nconst instanceKeyResolver = (action: AnyAction) => {\r\n if (action instanceof IPicassoHostAction)\r\n return action.meta.hostKey;\r\n if (action instanceof IPicassoAction)\r\n return action.meta.picassoInstanceKey;\r\n\r\n return undefined;\r\n};\r\n\r\nconst instanceMapReducer = createInstanceMapReducer(hostReducer, instanceKeyResolver);\r\n\r\nconst instances: Reducer<TypedObject<IHostInstanceState>> = (state = EMPTY_OBJECT, action) => {\r\n if (action instanceof IClearPicassoHostAction)\r\n return produce(state, (draft) => {\r\n delete draft[action.meta.hostKey];\r\n });\r\n\r\n return instanceMapReducer(state, action);\r\n};\r\n\r\nexport const reducer: Reducer<IWorkflowEditorState> = combineReducers({\r\n instances,\r\n});\r\n","import { IComponent, ILink, LOAD_PICASSO_STATE as LOAD_WORKFLOW_ENTITIES } from \"@multiweb/picasso\";\r\nimport {\r\n CLEAR_PICASSO_HOST,\r\n CREATE_TRANSITION,\r\n DELETE_SELECTED_WF_ENTITIES,\r\n DELETE_SET,\r\n DIALOG_CANCELED,\r\n DIALOG_CONFIRMED,\r\n ENABLE_STATUS_VIEW,\r\n ENABLE_VIEWER_MODE,\r\n HIDE_MESSAGE_WINDOW,\r\n INIT_PICASSO_HOST,\r\n LOAD_ACTIVITY_HEADER,\r\n LOAD_TRANSITION_HEADER,\r\n SET_TOUCHED,\r\n SHOW_MESSAGE_WINDOW,\r\n TOGGLE_EDIT_DIALOGS_VISIBILITY,\r\n TOGGLE_GRID,\r\n UPDATE_ACTIVITY,\r\n UPDATE_ACTIVITY_PROPERTY_PANEL_STATE,\r\n UPDATE_DEFINITION_PARTICIPANTS,\r\n UPDATE_GENERAL_PROPERTY_PANEL_STATE,\r\n UPDATE_SETS,\r\n UPDATE_TRANSITION,\r\n UPDATE_TRANSITION_PROPERTY_PANEL_STATE,\r\n UPDATE_WORKFLOW_VIEW,\r\n} from \"./constants\";\r\nimport {\r\n ActivityPropertyContainers,\r\n GeneralPropertyContainer,\r\n IActivity,\r\n IClearPicassoHostAction,\r\n ICreateTransitionAction,\r\n IDeleteSelectedWfEntitiesAction,\r\n IDeleteSetAction,\r\n IDialogCanceledAction,\r\n IDialogConfirmedAction,\r\n IEnableStatusViewAction,\r\n IEnableViewerModeAction,\r\n IHideMessageWindowAction,\r\n IInitPicassoHostAction,\r\n ILoadActivityHeaderAction,\r\n ILoadTransitionHeaderAction,\r\n ILoadWorkflowEntities,\r\n IParticipant,\r\n ISet,\r\n ISetTouchedAction,\r\n IShowMessageWindowAction,\r\n IToggleEditDialogsVisibilityAction,\r\n IToggleGridAction,\r\n ITransition,\r\n IUpdateActivityAction,\r\n IUpdateActivityPropertyPanelStateAction,\r\n IUpdateDefinitionParticipantsAction,\r\n IUpdateGeneralPropertyPanelStateAction,\r\n IUpdateSetsAction,\r\n IUpdateTransitionAction,\r\n IUpdateTransitionPropertyPanelStateAction,\r\n IUpdateWorkflowViewAction,\r\n IVariable,\r\n TransitionPropertyContainers,\r\n} from \"./types\";\r\n\r\n/** Inicializační akce, která vytvoří instanci WF editor storu. */\r\nexport const createInitPicassoHostAction = (hostKey: string): IInitPicassoHostAction => ({\r\n type: INIT_PICASSO_HOST,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/** Akce starající se o smazání instance WF editoru ze storu. */\r\nexport const createClearPicassoHostAction = (hostKey: string): IClearPicassoHostAction => ({\r\n type: CLEAR_PICASSO_HOST,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/** Zapne režim Zobrazení stavu WF. */\r\nexport const createEnableStatusViewAction = (hostKey: string, variables: readonly IVariable[]): IEnableStatusViewAction => ({\r\n type: ENABLE_STATUS_VIEW,\r\n payload: {\r\n variables,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/** Zapne readonly režim editoru WF. */\r\nexport const createEnableViewerModeAction = (hostKey: string): IEnableViewerModeAction => ({\r\n type: ENABLE_VIEWER_MODE,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/** Přepne viditelnost gridu na plátně. */\r\nexport const createToggleGridAction = (hostKey: string): IToggleGridAction => ({\r\n type: TOGGLE_GRID,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/** Přepne viditelnost všech editačních dialogů. */\r\nexport const createToggleEditDialogsVisibilityAction = (hostKey: string): IToggleEditDialogsVisibilityAction => ({\r\n type: TOGGLE_EDIT_DIALOGS_VISIBILITY,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Nastaví hodnotu indikující, zdali WF bylo nějak editováno.\r\n * @param hostKey\r\n * @param touched Pokud true, tak wf bylo editováno.\r\n */\r\nexport const createSetTouchedAction = (hostKey: string, touched: boolean): ISetTouchedAction => ({\r\n type: SET_TOUCHED,\r\n payload: {\r\n touched,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Načte entity workflow (sady, aktivity, propjení, definiční hráči) a entity Picassa.\r\n * @param hostKey\r\n * @param sets Pole všech sad.\r\n * @param activities Pole všech aktivity zvolené sady.\r\n * @param transitions Pole všech propojení zvolené sady.\r\n * @param components Pole picasso komponent.\r\n * @param links Pole picasso linků.\r\n * @param definitionParticipants Pole všech definičních hráčů daného workflow.\r\n * @param selectedSetId Id sady, která má být editována (zobrazena). Když není uvedeno, zůstane aktivní dosavadní sada.\r\n * @param selectedComponentIndex Index zvolené komponenty.\r\n * @param selectedLinkIndex Index zvoleného linku.\r\n */\r\nexport const createLoadWorkflowEntitiesAction = (\r\n hostKey: string,\r\n sets: readonly ISet[],\r\n activities: readonly IActivity[],\r\n transitions: readonly ITransition[],\r\n components: readonly IComponent[],\r\n links: readonly ILink[],\r\n definitionParticipants: readonly IParticipant[],\r\n selectedSetId?: string,\r\n selectedComponentIndex?: number,\r\n selectedLinkIndex?: number,\r\n): ILoadWorkflowEntities => ({\r\n type: LOAD_WORKFLOW_ENTITIES,\r\n payload: {\r\n sets,\r\n activities,\r\n transitions,\r\n components,\r\n links,\r\n definitionParticipants,\r\n selectedComponentIndex,\r\n selectedLinkIndex,\r\n selectedSetId,\r\n },\r\n meta: {\r\n hostKey,\r\n picassoInstanceKey: hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce updatuje kolekci sad.\r\n * @param hostKey\r\n * @param newSets Nově upravené sady.\r\n */\r\nexport const createUpdateSetsAction = (hostKey: string, newSets: readonly ISet[]): IUpdateSetsAction => ({\r\n type: UPDATE_SETS,\r\n payload: {\r\n newSets,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce updatuje danou aktivitu.\r\n * @param hostKey\r\n * @param index Index dané aktivity v poli všech aktivit.\r\n * @param newActivity Nově upravená aktivita.\r\n */\r\nexport const createUpdateActivityAction = (hostKey: string, picassoIndex: number, newActivity: IActivity): IUpdateActivityAction => ({\r\n type: UPDATE_ACTIVITY,\r\n payload: {\r\n picassoIndex,\r\n newActivity,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce updatuje dané propojení.\r\n * @param hostKey\r\n * @param index Index daného propojení v poli všech propojení.\r\n * @param newActivity Nově upravené propojení.\r\n */\r\nexport const createUpdateTransitionAction = (hostKey: string, index: number, newTransition: ITransition): IUpdateTransitionAction => ({\r\n type: UPDATE_TRANSITION,\r\n payload: {\r\n index,\r\n newTransition,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Upraví stav kontejnerů Activity panelu;\r\n * @param hostKey\r\n * @param containerName Jméno kontejneru k úpravě.\r\n * @param isExpanded Určuje otevřenost/zavřenost kontejneru.\r\n */\r\nexport const createUpdateActivityCollapsibleState = (hostKey: string, containerName: ActivityPropertyContainers, isExpanded: boolean): IUpdateActivityPropertyPanelStateAction => ({\r\n type: UPDATE_ACTIVITY_PROPERTY_PANEL_STATE,\r\n payload: {\r\n containerName,\r\n isExpanded,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Upraví stav kontejnerů Transition panelu;\r\n * @param hostKey\r\n * @param containerName Jméno kontejneru k úpravě.\r\n * @param isExpanded Určuje otevřenost/zavřenost kontejneru.\r\n */\r\nexport const createUpdateTransitionCollapsibleState = (hostKey: string, containerName: TransitionPropertyContainers, isExpanded: boolean): IUpdateTransitionPropertyPanelStateAction => ({\r\n type: UPDATE_TRANSITION_PROPERTY_PANEL_STATE,\r\n payload: {\r\n containerName,\r\n isExpanded,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Upraví stav kontejnerů General panelu;\r\n * @param hostKey\r\n * @param containerName Jméno kontejneru k úpravě.\r\n * @param isExpanded Určuje otevřenost/zavřenost kontejneru.\r\n */\r\nexport const createUpdateGeneralCollapsibleState = (hostKey: string, containerName: GeneralPropertyContainer, isExpanded: boolean): IUpdateGeneralPropertyPanelStateAction => ({\r\n type: UPDATE_GENERAL_PROPERTY_PANEL_STATE,\r\n payload: {\r\n containerName,\r\n isExpanded,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Updatuje seznam definičních hráčů pro dané workflow.\r\n * @param hostKey\r\n * @param newParticipants Upravená kolekce definičních hráčů.\r\n * @param newActivities Updatované aktivity (pokud undefined, tak nedojde k aktualizaci referencí hráčů na aktivitách).\r\n */\r\nexport const createUpdateDefinitionParticipants = (hostKey: string, newParticipants: readonly IParticipant[], newActivities?: readonly IActivity[]): IUpdateDefinitionParticipantsAction => ({\r\n type: UPDATE_DEFINITION_PARTICIPANTS,\r\n payload: {\r\n newParticipants,\r\n newActivities,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Zavolá ságu updatující view workflow pro konkrétní sadu. Stará se o překreslení v picassu.\r\n * @param hostKey\r\n * @param setId Id sady, která se má zobrazit (edituje se).\r\n * @param selectedActivityId Id aktivity k označení.\r\n * @param selectedTransitionId Id propojení k označení.\r\n * @param isNonEditChange Indikátor, zdali update (ne)způsobuje editační změnu na WF.\r\n */\r\nexport const createUpdateWorkflowViewAction = (hostKey: string, setId: string, selectedActivityId?: string, selectedTransitionId?: string, isNonEditChange: boolean = false): IUpdateWorkflowViewAction => ({\r\n type: UPDATE_WORKFLOW_VIEW,\r\n payload: {\r\n setId,\r\n selectedActivityId,\r\n selectedTransitionId,\r\n isNonEditChange,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro vytvoření propojení u aktivit\r\n * @param hostKey\r\n */\r\nexport const createCreateTransitionAction = (hostKey: string): ICreateTransitionAction => ({\r\n type: CREATE_TRANSITION,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání označených propojení a aktivit\r\n * @param hostKey\r\n */\r\nexport const createDeleteSelectedWfEntitiesAction = (hostKey: string): IDeleteSelectedWfEntitiesAction => ({\r\n type: DELETE_SELECTED_WF_ENTITIES,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Akce pro smazání aktuální sady\r\n * @param hostKey\r\n */\r\nexport const createDeleteSetAction = (hostKey: string): IDeleteSetAction => ({\r\n type: DELETE_SET,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Zajistí načtení hlavičky pro aktivitu.\r\n * @param hostKey\r\n * @param picassoIndex Picasso index aktivity, do které se má přinačíst hlavička.\r\n * @param wfStateCodes Seznam kódů stavů, jejichž hodnoty se do hlavičky mají načíst.\r\n */\r\nexport const createLoadActivityHeaderAction = (hostKey: string, picassoIndex: number, wfStateCodes: readonly string[]): ILoadActivityHeaderAction => ({\r\n type: LOAD_ACTIVITY_HEADER,\r\n payload: {\r\n picassoIndex,\r\n wfStateCodes,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Zajistí načtení hlavičky pro propojení.\r\n * @param hostKey\r\n * @param picassoIndex Picasso index propojení, do které se má přinačíst hlavička.\r\n * @param wfStateCodes Seznam kódů stavů, jejichž hodnoty se do hlavičky mají načíst.\r\n */\r\nexport const createLoadTransitionHeaderAction = (hostKey: string, picassoIndex: number, wfStateCodes: readonly string[]): ILoadTransitionHeaderAction => ({\r\n type: LOAD_TRANSITION_HEADER,\r\n payload: {\r\n picassoIndex,\r\n wfStateCodes,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Zobrazí message window s prosbou o reakci od uživatele.\r\n * @param hostKey\r\n * @param primaryButtonLocKey Lokalizační klíč primary buttonu.\r\n * @param secondaryButtonLocKey Lokalizační klíč secondary buttonu.\r\n * @param actionId ID akce, které se zobrazení dialogového okna týka. Slouží pro identifikaci reduxové akce v sáze.\r\n * @param contentLocKey Lokalizační klíč obsahu.\r\n */\r\nexport const createShowMessageWindowAction = (hostKey: string, primaryButtonLocKey: string, secondaryButtonLocKey: string, actionId: string, contentLocKey: string): IShowMessageWindowAction => ({\r\n type: SHOW_MESSAGE_WINDOW,\r\n payload: {\r\n primaryButtonLocKey,\r\n secondaryButtonLocKey,\r\n actionId,\r\n contentLocKey,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Skryje message window.\r\n * @param hostKey\r\n */\r\nexport const createHideMessageWindowAction = (hostKey: string): IHideMessageWindowAction => ({\r\n type: HIDE_MESSAGE_WINDOW,\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Vytvoří akci, informující o tom, že uživatel potvrdil dialog.\r\n * @param hostKey\r\n * @param actionId ID akce, které se zobrazení dialogového okna týka. Slouží pro identifikaci reduxové akce v sáze.\r\n */\r\nexport const createDialogConfirmedAction = (hostKey: string, actionId: string): IDialogConfirmedAction => ({\r\n type: DIALOG_CONFIRMED,\r\n payload: {\r\n actionId,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n\r\n/**\r\n * Vytvoří akci, informující o tom, že uživatel zrušil dialog.\r\n * @param hostKey\r\n * @param actionId ID akce, které se zobrazení dialogového okna týka. Slouží pro identifikaci reduxové akce v sáze.\r\n */\r\nexport const createDialogCanceledAction = (hostKey: string, actionId: string): IDialogCanceledAction => ({\r\n type: DIALOG_CANCELED,\r\n payload: {\r\n actionId,\r\n },\r\n meta: {\r\n hostKey,\r\n },\r\n});\r\n","import { Selector } from \"react-redux\";\r\nimport { createSelector } from \"reselect\";\r\n\r\nimport { createGetSelectedComponents, createGetSelectedLinks, IEntity, IPicassoState } from \"@multiweb/picasso\";\r\nimport { IAppState, TypedObject } from \"@multiweb/types/react\";\r\nimport { WorkflowEditorMode } from \"./enums\";\r\nimport {\r\n ActivityPropertyContainers,\r\n GeneralPropertyContainer,\r\n IActivity,\r\n IHostInstanceState,\r\n IParticipant,\r\n ISet,\r\n ITransition,\r\n IVariable,\r\n IWorkflowEditorState,\r\n TransitionPropertyContainers,\r\n WfMessageWindowState,\r\n WorkflowEditorProps,\r\n} from \"./types\";\r\nimport { ActivityType } from \"./workflowModel\";\r\n\r\nconst getModel: Selector<IAppState, IWorkflowEditorState> = (state) => state.workflowEditor;\r\n\r\n/**\r\n * Vrací instanci stavu Editoru Workflow dle daného @param hostKey\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getWorkflowEditorInstance: Selector<IAppState, IHostInstanceState, string> = (state, hostKey) => {\r\n const instanceState = getModel(state).instances[hostKey];\r\n\r\n if (!instanceState)\r\n throw new Error(`[WorkflowEditor] - WorkflowEditor with key ${hostKey} is not initialized.`);\r\n\r\n return instanceState;\r\n};\r\n\r\n/**\r\n * Vrací instanci stavu Picasa.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getPicassoState: Selector<IAppState, IPicassoState, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).picasso;\r\n\r\n/** Vytváří selector vracejcí označené workflow elementy (propojení/aktivity) */\r\nexport const createGetSelectedWfElement: () => Selector<IAppState, IEntity | null, string> = () => {\r\n const getSelectedComponents = createGetSelectedComponents();\r\n const getSelectedLinks = createGetSelectedLinks();\r\n\r\n return (state, hostKey) => {\r\n const picassoState = getPicassoState(state, hostKey);\r\n\r\n const selectedComponents = getSelectedComponents(picassoState);\r\n const selectedLinks = getSelectedLinks(picassoState);\r\n\r\n if (selectedComponents.length > 0)\r\n return selectedComponents[0];\r\n\r\n if (selectedLinks.length > 0)\r\n return selectedLinks[0];\r\n\r\n return null;\r\n };\r\n};\r\n\r\n/**\r\n * Vrací aktuální mód, ve kterém je spuštěn editor WF.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nconst getWorkflowEditorMode: Selector<IAppState, WorkflowEditorMode, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).wfEditorMode;\r\n\r\n/**\r\n * Vrací informaci o tom, zdali je aktivován režim zobrazení stavu WF.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const isStatusViewEnabled: Selector<IAppState, boolean, string> = (state, hostKey) => getWorkflowEditorMode(state, hostKey) === WorkflowEditorMode.StatusViewer;\r\n\r\n/**\r\n * Vrací informaci o tom, zdali jse workflow readonly (nelze uložit).\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @returns\r\n */\r\nexport const isWorkflowReadOnly: Selector<IAppState, boolean, string> = (state, hostKey) => {\r\n const wfEditorMode = getWorkflowEditorMode(state, hostKey);\r\n return (wfEditorMode & (WorkflowEditorMode.StatusViewer | WorkflowEditorMode.Viewer)) !== 0;\r\n};\r\n\r\n/**\r\n * Vrací stav dialogového okna.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nconst getWfMessageWindowState: Selector<IAppState, WfMessageWindowState, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).wfMessageWindowState;\r\n\r\n/**\r\n * Vrací informaci, zdali je dialogové okno viditelné či nikoliv.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const isWfMessageWindowVisible: Selector<IAppState, boolean, string> = (state, hostKey) => getWfMessageWindowState(state, hostKey).isVisible;\r\n\r\n/**\r\n * Vrací ID akce, které si dialogové okno týká.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getWfMessageWindowActionId: Selector<IAppState, string | null, string> = (state, hostKey) => getWfMessageWindowState(state, hostKey).actionId;\r\n\r\n/**\r\n * Vrací lokalizační klíč obsahu dialogového okna.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getWfMessageWindowContentLocKey: Selector<IAppState, string | null, string> = (state, hostKey) => getWfMessageWindowState(state, hostKey).contentLocKey;\r\n\r\n/**\r\n * Vrací lokalizační klíč primary buttonu dialogového okna.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getWfMessageWindowPrimaryButtonLocKey: Selector<IAppState, string | null, string> = (state, hostKey) => getWfMessageWindowState(state, hostKey).primaryButtonLocKey;\r\n\r\n/**\r\n * Vrací lokalizační klíč secondary buttonu dialogového okna.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getWfMessageWindowSecondaryButtonLocKey: Selector<IAppState, string | null, string> = (state, hostKey) => getWfMessageWindowState(state, hostKey).secondaryButtonLocKey;\r\n\r\n/**\r\n * Vrací informaci o tom, zdali WF bylo nějak editováno.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const isTouched: Selector<IAppState, boolean, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).touched;\r\n\r\n/**\r\n * Vrací pole všech sad ve workflow.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getSets: Selector<IAppState, TypedObject<ISet>, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).sets;\r\n\r\n/**\r\n * Vrací seřazené pole id sad.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getOrderedSetsIds: Selector<IAppState, readonly string[], string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).orderedSetsIds;\r\n\r\n/**\r\n * Vytvoří selektor, který vrací seřazené pole sad. Jako parametr vyžaduje klíč instance editoru WF.\r\n */\r\nexport const createGetOrderedSets = () => createSelector<IAppState, WorkflowEditorProps[\"hostKey\"], ReturnType<typeof getSets>, ReturnType<typeof getOrderedSetsIds>, ReadonlyArray<ISet>>(\r\n getSets,\r\n getOrderedSetsIds,\r\n (sets, orderedSetsIds) => orderedSetsIds.map((setId) => sets[setId]),\r\n);\r\n\r\n/**\r\n * Vrací zvolenou sadu.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getSelectedSet: Selector<IAppState, ISet, string> = (state, hostKey) => {\r\n const selectedSetId = getSelectedSetId(state, hostKey);\r\n return getSetById(state, { hostKey, setId: selectedSetId });\r\n};\r\n\r\n/**\r\n * Vrací id zvolené sady.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getSelectedSetId: Selector<IAppState, string, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).selectedSetId;\r\n\r\n/**\r\n * Vrací index zvolené sady. Pokud se sada nenalezne, vrací -1.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getSelectedSetIndex: Selector<IAppState, number, string> = (state, hostKey) => {\r\n const orderedSetsIds = getOrderedSetsIds(state, hostKey);\r\n const selectedSetId = getSelectedSetId(state, hostKey);\r\n return orderedSetsIds.findIndex(setId => setId === selectedSetId);\r\n};\r\n\r\n/**\r\n * Vrací sadu podle poskytnutého id.\r\n * @param state\r\n * @param param1 Klíč instance Editoru WF a id sady, která se má získat.\r\n */\r\nexport const getSetById: Selector<IAppState, ISet, { hostKey: string; setId: string }> = (state, { hostKey, setId }) => {\r\n const sets = getSets(state, hostKey);\r\n return sets[setId];\r\n};\r\n\r\n/**\r\n * Vrací seznam všech aktivit zvolené sady.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getActivities: Selector<IAppState, readonly IActivity[], string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).activities;\r\n\r\n/**\r\n * Vrací aktivitu podle daného {@link picassoIndex} ze zvolené sady.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @param picassoIndex Index aktvity ve stavu Picassa.\r\n */\r\nexport const getActivityByIndex = (state: IAppState, hostKey: string, picassoIndex: number) => getActivities(state, hostKey)[picassoIndex - 1]; // minus proto, že v picassu je sada mezi komponentami (index === 0)\r\n\r\n/**\r\n * Vytváří selector vracející seznam označených aktivit. Vyžaduje klíč instance editoru WF.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const createGetSelectedActivities: () => Selector<IAppState, readonly IActivity[], string> = () => {\r\n const getSelectedComponents = createGetSelectedComponents();\r\n\r\n return (state, hostKey) => {\r\n const picassoState = getPicassoState(state, hostKey);\r\n const selectedComponents = getSelectedComponents(picassoState);\r\n return selectedComponents.map(({ index }) => getActivityByIndex(state, hostKey, index));\r\n };\r\n};\r\n\r\n/** Vrací na-cache-ovaný selector vracející zvolené aktivity. */\r\nexport const getSelectedActivities = createGetSelectedActivities();\r\n\r\n/**\r\n * Vrací informaci o tom, zdali je označena pouze startovací aktivita.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const isOnlyStartActivitySelected: Selector<IAppState, boolean, string> = (state, hostKey) => {\r\n const selectedActivities = getSelectedActivities(state, hostKey);\r\n\r\n if (selectedActivities.length !== 1)\r\n return false;\r\n\r\n return selectedActivities[0].type === ActivityType.start;\r\n};\r\n\r\n/**\r\n * Vrací seznam všech propojení zvolené sady.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getTransitions: Selector<IAppState, readonly ITransition[], string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).transitions;\r\n\r\n/**\r\n * Vrací propojení podle daného {@link picassoIndex} ze zvolené sady.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @param picassoIndex Index aktvity ve stavu Picassa.\r\n */\r\nexport const getTransitionByIndex = (state: IAppState, hostKey: string, picassoIndex: number) => getTransitions(state, hostKey)[picassoIndex];\r\n\r\n/**\r\n * Vytváří selector vracející seznam označených propojení. Vyžaduje klíč instance editoru WF.\r\n */\r\nexport const createGetSelectedTransitions: () => Selector<IAppState, readonly ITransition[], string> = () => {\r\n const getSelectedLinks = createGetSelectedLinks();\r\n\r\n return (state, hostKey) => {\r\n const picassoState = getPicassoState(state, hostKey);\r\n const selectedLinks = getSelectedLinks(picassoState);\r\n return selectedLinks.map(({ index }) => getTransitionByIndex(state, hostKey, index));\r\n };\r\n};\r\n\r\n/**\r\n * Vrací stav otevřenosti pro daný @activityContainer aktivity.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @param activityContainer Typ kontejneru\r\n */\r\nexport const getActivityPanelStateContainer = (state: IAppState, hostKey: string, activityContainer: ActivityPropertyContainers) => getWorkflowEditorInstance(state, hostKey).activityPropertyPanelState[activityContainer];\r\n\r\n/**\r\n * Vrací stav otevřenosti pro daný @activityContainer propojení.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @param transitionContainer Typ kontejneru\r\n */\r\nexport const getTransitionPanelStateContainer = (state: IAppState, hostKey: string, transitionContainer: TransitionPropertyContainers) => getWorkflowEditorInstance(state, hostKey).transitionPropertyPanelState[transitionContainer];\r\n\r\n/**\r\n * Vrací stav otevřenosti pro daný @generalContainer workflow.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n * @param generalContainer Typ kontejneru\r\n */\r\nexport const getGeneralPanelStateContainer = (state: IAppState, hostKey: string, generalContainer: GeneralPropertyContainer) => getWorkflowEditorInstance(state, hostKey).generalPropertyPanelState[generalContainer];\r\n\r\n/**\r\n * Vrací seznam definičních hráčů.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getDefinitionParticipants: Selector<IAppState, readonly IParticipant[], string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).definitionParticipants;\r\n\r\n/**\r\n * Vrací informaci o tom, zdali jsou edit dialogy skryty či nikoliv.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const isEditDialogHidden: Selector<IAppState, boolean, string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).isEditDialogHidden;\r\n\r\n/**\r\n * Vrací seznam proměnných. Funkční pouze v status viewer modu.\r\n * @param state\r\n * @param hostKey Klíč instance Editoru Workflow.\r\n */\r\nexport const getVariables: Selector<IAppState, readonly IVariable[], string> = (state, hostKey) => getWorkflowEditorInstance(state, hostKey).variables;\r\n","import { AnyAction } from \"redux\";\r\nimport { call, fork, put, select, take, takeEvery, takeLatest } from \"redux-saga/effects\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { createLoadLocalizationKeysAction } from \"@multiweb/reactCore/i18n\";\r\nimport { SagaWithReturnType, SagaYieldReturn } from \"@multiweb/types/react\";\r\nimport {\r\n createLoadWorkflowEntitiesAction,\r\n createSetTouchedAction,\r\n createShowMessageWindowAction,\r\n createUpdateActivityAction,\r\n createUpdateTransitionAction,\r\n createUpdateWorkflowViewAction,\r\n} from \"./actions\";\r\nimport {\r\n CREATE_TRANSITION,\r\n DELETE_SELECTED_WF_ENTITIES,\r\n DELETE_SET,\r\n FETCHING_KEY_WFEDITOR,\r\n LOAD_ACTIVITY_HEADER,\r\n LOAD_TRANSITION_HEADER,\r\n SET_TOUCHED,\r\n UPDATE_WORKFLOW_VIEW,\r\n WFSTAV_ATTRIBUTES,\r\n} from \"./constants\";\r\nimport { LOC_CANCEL, LOC_DELETE, LOC_DELETE_SELECTED_ELEMENTS, LOC_DELETE_SET, LOC_KEYS_WF_EDITOR } from \"./locKeys\";\r\nimport {\r\n createGetOrderedSets,\r\n createGetSelectedTransitions,\r\n getActivityByIndex,\r\n getSelectedActivities,\r\n getSelectedSetId,\r\n getSelectedSetIndex,\r\n getTransitionByIndex,\r\n isTouched,\r\n isWorkflowReadOnly,\r\n} from \"./selectors\";\r\nimport {\r\n ICreateTransitionAction,\r\n IDeleteSelectedWfEntitiesAction,\r\n IDeleteSetAction,\r\n IDialogConfirmedAction,\r\n ILoadActivityHeaderAction,\r\n ILoadTransitionHeaderAction,\r\n ISetTouchedAction,\r\n IUpdateWorkflowViewAction,\r\n} from \"./types\";\r\nimport { UiActivity } from \"./UiActivity\";\r\nimport { createDialogUserResponsePattern, getUiWorkflowMutableObject } from \"./utils\";\r\n\r\nconst { errorHandler, generateUUID, getDataReaderClient } = bridge;\r\n\r\n// Nutné exportovat kvůli testům\r\nexport const getSelectedTransitions = createGetSelectedTransitions();\r\nexport const getOrderedSets = createGetOrderedSets();\r\n\r\nexport const saga: SagaWithReturnType = function* workflowEditorSaga() {\r\n yield fork(loadLocalizationsSaga);\r\n yield takeLatest(UPDATE_WORKFLOW_VIEW, updateWorkflowViewSaga);\r\n yield takeEvery(SET_TOUCHED, setTouchedSaga);\r\n yield takeLatest(CREATE_TRANSITION, handleCreateTransitionSaga);\r\n yield takeLatest(DELETE_SELECTED_WF_ENTITIES, handleDeleteSelectedWfEntitiesSaga);\r\n yield takeLatest(DELETE_SET, handleDeleteSetSaga);\r\n};\r\n\r\n/**\r\n * Načte lokalizace.\r\n */\r\nexport const loadLocalizationsSaga: SagaWithReturnType = function* loadLocalizationsSaga() {\r\n yield put(createLoadLocalizationKeysAction(LOC_KEYS_WF_EDITOR, FETCHING_KEY_WFEDITOR));\r\n};\r\n\r\n/**\r\n * Obstarává logiku přidání propojení u aktivit.\r\n * @param action\r\n */\r\nexport const handleCreateTransitionSaga: SagaWithReturnType<[ICreateTransitionAction]> = function* handleCreateTransitionSaga(action) {\r\n const { hostKey } = action.meta;\r\n\r\n const selectedActivities: SagaYieldReturn<typeof getSelectedActivities> = yield select(getSelectedActivities, hostKey);\r\n const isReadOnly: SagaYieldReturn<typeof isWorkflowReadOnly> = yield select(isWorkflowReadOnly, hostKey);\r\n\r\n if (selectedActivities.length === 0 || isReadOnly)\r\n return;\r\n\r\n const uiWorkflow: SagaYieldReturn<typeof getUiWorkflowMutableObject> = yield call(getUiWorkflowMutableObject, hostKey);\r\n const selectedSetId: SagaYieldReturn<typeof getSelectedSetId> = yield select(getSelectedSetId, hostKey);\r\n\r\n let addedTransitionId: string | undefined;\r\n\r\n if (selectedActivities.length === 1) {\r\n const uiActivity = uiWorkflow.picassoModel.components[selectedActivities[0].picassoIndex] as UiActivity;\r\n addedTransitionId = uiWorkflow.workflow.addTransition(uiActivity.activity.id, uiActivity.activity.id, selectedSetId);\r\n } else {\r\n for (let i = 0; i < selectedActivities.length - 1; i++) {\r\n const fromActivity = uiWorkflow.picassoModel.components[selectedActivities[i].picassoIndex] as UiActivity;\r\n const toActivity = uiWorkflow.picassoModel.components[selectedActivities[i + 1].picassoIndex] as UiActivity;\r\n addedTransitionId = uiWorkflow.workflow.addTransition(fromActivity.activity.id, toActivity.activity.id, selectedSetId);\r\n }\r\n }\r\n\r\n yield put(createUpdateWorkflowViewAction(hostKey, selectedSetId, \"\", addedTransitionId));\r\n};\r\n\r\n/**\r\n * Obstarává logiku mazání zvolených prvků WF a čeká na akci uživatelského potvrzení smazání.\r\n * @param action\r\n */\r\nexport const handleDeleteSelectedWfEntitiesSaga: SagaWithReturnType<[IDeleteSelectedWfEntitiesAction]> = function* handleDeleteSelectedWfEntitiesSaga(action) {\r\n const { hostKey } = action.meta;\r\n\r\n const selectedActivities: SagaYieldReturn<typeof getSelectedActivities> = yield select(getSelectedActivities, hostKey);\r\n const selectedTransitions: SagaYieldReturn<typeof getSelectedTransitions> = yield select(getSelectedTransitions, hostKey);\r\n const isReadOnly: SagaYieldReturn<typeof isWorkflowReadOnly> = yield select(isWorkflowReadOnly, hostKey);\r\n\r\n if (isReadOnly || (selectedActivities.length === 0 && selectedTransitions.length === 0))\r\n return;\r\n\r\n const actionId: SagaYieldReturn<typeof generateUUID> = yield call(generateUUID);\r\n const dialogUserResponsePattern: SagaYieldReturn<typeof createDialogUserResponsePattern> = yield call(createDialogUserResponsePattern, actionId);\r\n\r\n yield put(createShowMessageWindowAction(hostKey, LOC_DELETE, LOC_CANCEL, actionId, LOC_DELETE_SELECTED_ELEMENTS));\r\n\r\n const responseAction: AnyAction = yield take(dialogUserResponsePattern);\r\n\r\n if (!(responseAction instanceof IDialogConfirmedAction))\r\n return;\r\n\r\n const { workflow, picassoModel }: SagaYieldReturn<typeof getUiWorkflowMutableObject> = yield call(getUiWorkflowMutableObject, hostKey);\r\n const selectedSetId: SagaYieldReturn<typeof getSelectedSetId> = yield select(getSelectedSetId, hostKey);\r\n const deleteTransition = workflow.deleteTransition.bind(workflow);\r\n const deleteActivity = workflow.deleteActivity.bind(workflow);\r\n\r\n for (const selectedTransition of selectedTransitions) {\r\n const component = picassoModel.components[selectedTransition.fromIndex] as UiActivity;\r\n yield call(deleteTransition, component.activity.id, selectedTransition.id);\r\n }\r\n\r\n for (const selectedActivity of selectedActivities) {\r\n yield call(deleteActivity, selectedActivity.id, selectedSetId);\r\n }\r\n\r\n yield put(createUpdateWorkflowViewAction(hostKey, selectedSetId));\r\n};\r\n\r\n/**\r\n * Obstarává logiku mazání sady a čeká na akci uživatelského potvrzení smazání.\r\n * @param action\r\n */\r\nexport const handleDeleteSetSaga: SagaWithReturnType<[IDeleteSetAction]> = function* handleDeleteSetSaga(action) {\r\n const { hostKey } = action.meta;\r\n\r\n const sets: SagaYieldReturn<typeof getOrderedSets> = yield select(getOrderedSets, hostKey);\r\n\r\n if (sets.length === 1)\r\n return;\r\n\r\n const actionId: SagaYieldReturn<typeof generateUUID> = yield call(generateUUID);\r\n const dialogUserResponsePattern: SagaYieldReturn<typeof createDialogUserResponsePattern> = yield call(createDialogUserResponsePattern, actionId);\r\n\r\n yield put(createShowMessageWindowAction(hostKey, LOC_DELETE, LOC_CANCEL, actionId, LOC_DELETE_SET));\r\n\r\n const responseAction: AnyAction = yield take(dialogUserResponsePattern);\r\n\r\n if (!(responseAction instanceof IDialogConfirmedAction))\r\n return;\r\n\r\n const { workflow }: SagaYieldReturn<typeof getUiWorkflowMutableObject> = yield call(getUiWorkflowMutableObject, hostKey);\r\n const selectedSetId: SagaYieldReturn<typeof getSelectedSetId> = yield select(getSelectedSetId, hostKey);\r\n const selectedSetIndex: SagaYieldReturn<typeof getSelectedSetIndex> = yield select(getSelectedSetIndex, hostKey);\r\n const removeSet = workflow.removeSet.bind(workflow);\r\n\r\n const previousSetIndex = selectedSetIndex - 1;\r\n const newSelectedSetIndex = previousSetIndex < 0 ? 1 : previousSetIndex;\r\n\r\n yield call(removeSet, selectedSetId);\r\n yield put(createUpdateWorkflowViewAction(hostKey, sets[newSelectedSetIndex].id));\r\n};\r\n\r\n/**\r\n * Updatuje aktivity/propojení/sady workflow a zobrazí je přes picasso.\r\n * @param action\r\n */\r\nexport const updateWorkflowViewSaga: SagaWithReturnType<[IUpdateWorkflowViewAction]> = function* updateWorkflowViewSaga(action) {\r\n const { hostKey } = action.meta;\r\n const { setId, selectedActivityId, selectedTransitionId, isNonEditChange } = action.payload;\r\n const uiWorkflow: SagaYieldReturn<typeof getUiWorkflowMutableObject> = yield call(getUiWorkflowMutableObject, hostKey);\r\n\r\n uiWorkflow.updatePicassoModel(setId);\r\n const { sets, activities, transitions, definitionParticipants } = uiWorkflow.workflowModel;\r\n\r\n const selectedComponent = activities.find(activity => activity.id === selectedActivityId);\r\n const selectedLink = transitions.find(transition => transition.id === selectedTransitionId);\r\n const touched: SagaYieldReturn<typeof isTouched> = yield select(isTouched, hostKey);\r\n\r\n if (!isNonEditChange && !touched)\r\n yield put(createSetTouchedAction(hostKey, true));\r\n\r\n yield put(createLoadWorkflowEntitiesAction(hostKey, sets, activities, transitions, uiWorkflow.picassoModel.components, uiWorkflow.picassoModel.links, definitionParticipants, setId, selectedComponent?.picassoIndex, selectedLink?.picassoIndex));\r\n yield takeEvery(LOAD_ACTIVITY_HEADER, loadActivityHeaderValueSaga);\r\n yield takeEvery(LOAD_TRANSITION_HEADER, loadTransitionHeaderValueSaga);\r\n};\r\n\r\n/**\r\n * Načte hlavičku pro aktivitu.\r\n * @param action\r\n */\r\nexport const loadActivityHeaderValueSaga: SagaWithReturnType<[ILoadActivityHeaderAction]> = function* loadActivityHeaderValueSaga(action) {\r\n const { hostKey } = action.meta;\r\n const { picassoIndex, wfStateCodes } = action.payload;\r\n\r\n try {\r\n const header: SagaYieldReturn<typeof getHeaderSaga> = yield call(getHeaderSaga, wfStateCodes);\r\n const activity: SagaYieldReturn<typeof getActivityByIndex> = yield select(getActivityByIndex, hostKey, picassoIndex);\r\n\r\n yield put(createUpdateActivityAction(hostKey, picassoIndex, { ...activity, header }));\r\n } catch (error) {\r\n yield call(errorHandler, error);\r\n }\r\n};\r\n\r\n/**\r\n * Načte hlavičku pro propojení.\r\n * @param action\r\n */\r\nexport const loadTransitionHeaderValueSaga: SagaWithReturnType<[ILoadTransitionHeaderAction]> = function* loadTransitionHeaderValueSaga(action) {\r\n const { hostKey } = action.meta;\r\n const { picassoIndex, wfStateCodes } = action.payload;\r\n\r\n try {\r\n const header: SagaYieldReturn<typeof getHeaderSaga> = yield call(getHeaderSaga, wfStateCodes);\r\n const transition: SagaYieldReturn<typeof getTransitionByIndex> = yield select(getTransitionByIndex, hostKey, picassoIndex);\r\n yield put(createUpdateTransitionAction(hostKey, picassoIndex, { ...transition, header }));\r\n } catch (error) {\r\n yield call(errorHandler, error);\r\n }\r\n};\r\n\r\n/**\r\n * Načte hodnoty stavů ze třídy WFStavy a konkatenuje je do stringu.\r\n * @param wfStateCodes Kódy stavů, jejichž hodnoty se mají načíst.\r\n * @returns String ve tvaru 'hodnota1 | hodnota2 | ... | hodnotaN'.\r\n */\r\nexport const getHeaderSaga: SagaWithReturnType<[readonly string[]], string> = function* getHeaderSaga(wfStateCodes) {\r\n const dataReaderClient: SagaYieldReturn<typeof getDataReaderClient> = yield call(getDataReaderClient);\r\n const getDataRowsWithParams = dataReaderClient.getDataRowsWithParams.bind(dataReaderClient);\r\n const wfStateDataRows: SagaYieldReturn<typeof getDataRowsWithParams> = yield call(getDataRowsWithParams, \"WFStavy\", WFSTAV_ATTRIBUTES, `kod in ['${wfStateCodes.join(\"','\")}']`);\r\n\r\n const wfStateValues = wfStateDataRows.map(element => element[\"Stav_dokladu\"].toString().trim());\r\n const concatenatedHeader = wfStateValues.join(\" | \");\r\n\r\n return concatenatedHeader;\r\n};\r\n\r\n/**\r\n * Postará se o informování formuláře editoru WF o tom, že byla provedena editace.\r\n */\r\nexport const setTouchedSaga: SagaWithReturnType<[ISetTouchedAction]> = function* setTouchedSaga(action) {\r\n const { hostKey } = action.meta;\r\n const { touched } = action.payload;\r\n\r\n try {\r\n const uiWorkflow: SagaYieldReturn<typeof getUiWorkflowMutableObject> = yield call(getUiWorkflowMutableObject, hostKey);\r\n yield call(uiWorkflow.setIsWfEdited, touched);\r\n } catch (error) {\r\n yield call(errorHandler, error);\r\n }\r\n};\r\n","/**\r\n * Escapuje XML znaky ze stringu.\r\n * @param input String k escapování.\r\n */\r\nexport const escapeXmlString = (input: string) => {\r\n const dom = document.createElement(\"div\");\r\n dom.textContent = input;\r\n return dom.innerHTML;\r\n};\r\n\r\n/**\r\n * Escapované znaky XML převede na jejich ne-escapovanou verzi.\r\n * @param input String k de-escapování.\r\n */\r\nexport const unescapeXmlString = (input: string) => {\r\n const dom = document.createElement(\"textarea\");\r\n dom.innerHTML = input;\r\n return dom.value;\r\n};\r\n\r\n/**\r\n * Vrací C# název typu, podle hodnoty, co je ve vstupním stringu.\r\n * @param value C# název typu\r\n */\r\nexport const getCsharpTypeFromString = (value: string): string | undefined => {\r\n if (value === \"\" || value === undefined)\r\n return \"string\";\r\n\r\n if (value === \"true\" || value === \"false\") // Pozor False/True se považuje za string, ne boolean!\r\n return \"boolean\";\r\n\r\n if (!isNaN(Number(value)))\r\n return value.includes(\".\") ? \"double\" : \"int\"; // Řešíme pouze desetinnou tečku, čárku ne.\r\n\r\n return \"string\";\r\n};\r\n","// eslint-disable-next-line jsdoc/check-indentation\r\n/**\r\n * Tento soubor je naplněn starou logikou ze SL, kterou se zpracovávjí entity workflow. Ať už z XML do objektu, či naopak.\r\n * Každá z níže popsaných funkcí musí mít komentář s popisem toho, proč je neoptimální.\r\n * Časem snad tento soubor bude obsahovat 0 funkcí. Musíme refaktorovat tyto kódy!\r\n * __ __\r\n * .-' `'.._...-----..._..-'` '-.\r\n * / \\\r\n * | , ,' '. , |\r\n * \\ '-/ \\-' /\r\n * '._| _ |_.'\r\n * | /\\ / \\ /\\ |\r\n * | \\/ | | \\/ |\r\n * \\ \\\"/ /\r\n * '. =='^'== .'\r\n * `'------------'`\r\n * !REFAKTORUJ!\r\n */\r\n\r\nimport { Action, FormType, OpenForm, SendMail, SendMessageRecipientType, SendSMS, SendSmsRecipientType, SetAttribute, SetAttributeValueType } from \"../workflowModel/Actions\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT, CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT, CONST_SEND_MAIL_FORMAT_AT, CONST_SEND_MAIL_RECIPIENT_AT, CONST_SEND_MAIL_RECIPIENT_TYPE_AT, CONST_SEND_MAIL_REPORT_TEMPLATE_AT, CONST_SEND_MAIL_SEND_POSTPONE_AT, CONST_SEND_MAIL_SUBJECT_AT, CONST_SEND_MAIL_SUMMARY_MAIL_AT, CONST_SEND_MAIL_TEXT_AT, CONST_SEND_SMS_RECIPIENT_AT, CONST_SEND_SMS_RECIPIENT_TYPE_AT, CONST_SEND_SMS_TEXT_AT, CONST_SET_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_ATTRIBUTE_EL, CONST_SET_ATTRIBUTE_VALUE_EL, CONST_SET_ATTRIBUTE_VALUE_TYPE } from \"./constants\";\r\nimport { escapeXmlString, unescapeXmlString } from \"./utils\";\r\n\r\n/**\r\n * Funkce se stará o zpracování XML elementu SetAttribute, který podle logiky v SL/Serveru, může reprezentovat 2 různé akce (SetAttribute nebo OpenForm).\r\n * Logika to není příliš šťastná a tak silně doporučuji refaktorovat na dva samotné typy. Momentálně je hlavní rozlišující faktor to, že pokud je hodnota attributu \"attrName\"\r\n * rovna \"BLDialogFormName\", tak se jedná o typ OpenForm. Jinak se jedná o SetAttribute. Rovněž se mi nelíbí použití omnipotent atributů,\r\n * které v sobě uchovávjí rozdílné hodnoty oddělené nějakým středníkem...\r\n *\r\n * @param actionEl XML pro aktivitu.\r\n * @param actions Pole akcí, které se má appendovat.\r\n */\r\nexport const manageSetAttributeXmlElement = (actionEl: Element, actions: Action[]) => {\r\n const attrname = actionEl.getAttribute(CONST_SET_ATTRIBUTE_ATTR_NAME_AT) ?? \"\";\r\n const value = unescapeXmlString(actionEl.children[0]?.innerHTML ?? \"\");\r\n\r\n if (attrname === \"BLDialogFormName\") { // další hloupá logika SL, snad se v budoucnu refaktoruje, aby OpenForm byla samotná akce se svým typem a xml atributem...\r\n const openFormularCollection = value.split(\";\");\r\n\r\n openFormularCollection.forEach(openFormular => {\r\n let formularClassName = \"\";\r\n let masterLinkToAttr = \"\";\r\n let formularCondition = \"\";\r\n let formularType = \"\";\r\n const openFormularSplit = openFormular.split(\":\");\r\n const formularClassNameSplit = openFormularSplit[0].split(\"#\");\r\n\r\n if (formularClassNameSplit.length === 2) {\r\n formularClassName = formularClassNameSplit[0];\r\n formularType = formularClassNameSplit[1];\r\n } else\r\n formularClassName = openFormularSplit[0];\r\n\r\n switch (openFormularSplit.length) {\r\n case 1:\r\n break;\r\n case 2:\r\n masterLinkToAttr = openFormularSplit[1];\r\n break;\r\n case 3:\r\n masterLinkToAttr = openFormularSplit[1];\r\n formularCondition = openFormularSplit[2];\r\n break;\r\n }\r\n\r\n // Nějak nerozumím tomu, proč je ten push ve foreach cyklu... proč není mimo? Chcete mi snad říct, že jeden xml element reprezentující akci může obsahovat vlastně více akcí?!! Fuj!\r\n actions.push(new OpenForm(\r\n formularType,\r\n formularClassName,\r\n formularClassName, // IDK... reportName je oříšek\r\n masterLinkToAttr,\r\n formularCondition,\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n });\r\n } else {\r\n actions.push(new SetAttribute(\r\n attrname,\r\n value,\r\n actionEl.getAttribute(CONST_SET_ATTRIBUTE_VALUE_TYPE) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n }\r\n};\r\n\r\n/**\r\n * Funkce se stará o převedení xml do akce typu SendSMS. Blbá věc tu je ta, že se využívá magic attributu 'recipient',\r\n * který v závislosti na attributu 'recipientType' může obsahovat více logických hodnot oddělených středníkem.\r\n * Místo toho by bylo dobré, kdyby každá logická část měla svůj atribut.\r\n *\r\n * @param actionEl XML pro aktivitu.\r\n * @param actions Pole akcí, které se má appendovat.\r\n */\r\nexport const manageSendSmsXmlElement = (actionEl: Element, actions: Action[]) => {\r\n const recipientType = actionEl.getAttribute(CONST_SEND_SMS_RECIPIENT_TYPE_AT) ?? \"\";\r\n const recipient = actionEl.getAttribute(CONST_SEND_SMS_RECIPIENT_AT) ?? \"\";\r\n\r\n if (recipientType === SendSmsRecipientType.condition) {\r\n const data = recipient.split(\";\");\r\n const className = (data.length > 0) ? data[0] : \"\";\r\n const attrName = (data.length > 1) ? data[1] : \"\";\r\n const dataCondition = (data.length > 2) ? data[2] : \"\";\r\n\r\n actions.push(new SendSMS(\r\n \"\",\r\n className,\r\n attrName,\r\n dataCondition,\r\n actionEl.getAttribute(CONST_SEND_SMS_TEXT_AT) ?? \"\",\r\n recipientType,\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n } else {\r\n actions.push(new SendSMS(\r\n recipient,\r\n \"\",\r\n \"\",\r\n \"\",\r\n actionEl.getAttribute(CONST_SEND_SMS_TEXT_AT) ?? \"\",\r\n recipientType,\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n }\r\n};\r\n\r\n/**\r\n * Identická situace s akcí SendSMS... zase se používá magic attribut, který se skládá z více logických částí oddělených středníkem.\r\n * Určitě bude lepší, když se na serveru prostě jen přidají atributy, které maximálně budou prázdné, když pro daný typ adresáta nebudou potřeba...\r\n * Takhle si jen zbytečně vytváříme složitosti, které můžou způsobovat chyby.\r\n *\r\n * @param actionEl XML pro aktivitu.\r\n * @param actions Pole akcí, které se má appendovat.\r\n */\r\nexport const manageSendMailXmlElement = (actionEl: Element, actions: Action[]) => {\r\n const recipientType = actionEl.getAttribute(CONST_SEND_MAIL_RECIPIENT_TYPE_AT) ?? \"\";\r\n const recipient = actionEl.getAttribute(CONST_SEND_MAIL_RECIPIENT_AT) ?? \"\";\r\n\r\n if (recipientType === SendMessageRecipientType.condition) {\r\n const data = recipient.split(\";\");\r\n const className = (data.length > 0) ? data[0] : \"\";\r\n const attrName = (data.length > 1) ? data[1] : \"\";\r\n const dataCondition = (data.length > 2) ? data[2] : \"\";\r\n\r\n actions.push(new SendMail(\r\n recipientType,\r\n \"\",\r\n className,\r\n attrName,\r\n dataCondition,\r\n actionEl.getAttribute(CONST_SEND_MAIL_SUBJECT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_TEXT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_REPORT_TEMPLATE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_SUMMARY_MAIL_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_FORMAT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_SEND_POSTPONE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n } else {\r\n actions.push(new SendMail(\r\n recipientType,\r\n recipient,\r\n actionEl.getAttribute(\"\") ?? \"\",\r\n actionEl.getAttribute(\"\") ?? \"\",\r\n actionEl.getAttribute(\"\") ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_SUBJECT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_TEXT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_REPORT_TEMPLATE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_SUMMARY_MAIL_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_FORMAT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_MAIL_SEND_POSTPONE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n }\r\n};\r\n\r\n/**\r\n * Pchjuu... tady je fakt všehochuť. Omnipotentní magic atributy, porušení logiky 1 instance == 1 akce\r\n * a na závěr maskování akce typem jiné akce (SetAttribute v tomto případě).\r\n * Toto je nejpřednější kandidát na refaktor na serveru. Snad největší svinstvo je to, že jedna tato akce obsahuje ve skutečnosti 'n' akcí.\r\n * Prosím nenechejme to takhle...\r\n *\r\n * @param xmlDoc workflow xml\r\n * @param actionsEl XML element, do kterého se přidávají jednotlivé akce\r\n * @param actions seznam akcí na aktivitě\r\n */\r\nexport const manageOpenFormAction = (documentNamespace: string, xmlDoc: Document, actionsEl: Element, actions: Action[]) => {\r\n const filteredOpenFormActions = actions.filter(action => action.constructor === OpenForm);\r\n const openFormActions: OpenForm[] = filteredOpenFormActions.map(action => action as OpenForm);\r\n\r\n if (!openFormActions.length)\r\n return;\r\n\r\n const firstOpenFormAction = openFormActions[0];\r\n const actionEl = xmlDoc.createElementNS(documentNamespace, CONST_SET_ATTRIBUTE_EL);\r\n\r\n firstOpenFormAction.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, firstOpenFormAction.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, firstOpenFormAction.comment);\r\n actionEl.setAttribute(CONST_SET_ATTRIBUTE_VALUE_TYPE, SetAttributeValueType.typedValue);\r\n actionEl.setAttribute(CONST_SET_ATTRIBUTE_ATTR_NAME_AT, \"BLDialogFormName\");\r\n\r\n let value = \"\";\r\n\r\n openFormActions.forEach(openForm => {\r\n value += getOpenFormValue(openForm) + \";\";\r\n });\r\n\r\n value = value.replace(/;+$/g, \"\"); // trimne ';' na konci stringu\r\n\r\n const valueEl = xmlDoc.createElementNS(documentNamespace, CONST_SET_ATTRIBUTE_VALUE_EL); // konstanta pro SET ATTRIBUTE, protože se za to open form maskuje\r\n valueEl.innerHTML = escapeXmlString(value);\r\n valueEl.setAttribute(\"xsi:type\", \"xsd:string\");\r\n actionEl.appendChild(valueEl);\r\n actionsEl.appendChild(actionEl);\r\n};\r\n\r\n/**\r\n * Pomocná metoda pro získání stringu, který se strká do atributu Value akce SetAttribute.\r\n * V podstatě tady zase tvoříme omnipotentní atribut, který se skládá z vícero logických celků\r\n * oddělených speciálními znaky.\r\n *\r\n * @param param0 instance OpenForm akce\r\n */\r\nconst getOpenFormValue = ({ masterLinkToAttr, formCondition, formType, formClass, reportName }: OpenForm): string => {\r\n const firstParam = formType === FormType.report ? reportName : formClass;\r\n\r\n return `${firstParam}#${formType}:${masterLinkToAttr}:${formCondition}`;\r\n};\r\n","import { Activity, IOTransitionType, Point, Position, Set, Transition, Workflow } from \"../workflowModel\";\r\nimport { Action, CallMethod, CallScript, IncrementDateTime, IncrementNumber, OpenForm, SendMail, SendMessageRecipientType, SendSMS, SendSmsRecipientType, SendWFMessage, SetAttribute, SetAttributeValueType, SetObjectAttribute, SetValue } from \"../workflowModel/Actions\";\r\nimport { DefinitionParticipant, Owner, Participant, Role, System, User } from \"../workflowModel/Participants\";\r\nimport { AttributeDataChange, Menu, NewObject, Trigger, WfMessage } from \"../workflowModel/Triggers\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_ACTIONS_EL, CONST_ACTIVITY_CONDITION_AT, CONST_ACTIVITY_DESCRIPTION_AT, CONST_ACTIVITY_EL, CONST_ACTIVITY_ID_AT, CONST_ACTIVITY_INHERIT_PARTICIPANTS_AT, CONST_ACTIVITY_INPUT_TRANS_TYPE_AT, CONST_ACTIVITY_KILL_CHILDREN_AT, CONST_ACTIVITY_NAME_AT, CONST_ACTIVITY_ORDER_AT, CONST_ACTIVITY_RUN_CONDITION_AT, CONST_ACTIVITY_SHOW_IN_WF_HISTORY_AT, CONST_ACTIVITY_TYPE_AT, CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT, CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT, CONST_ATTRIBUTE_DATA_CHANGE_EL, CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT, CONST_CALL_METHOD_EL, CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT, CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT, CONST_CALL_METHOD_METHOD_NAME_AT, CONST_CALL_METHOD_STATIC_AT, CONST_CALL_SCRIPT_EL, CONST_DEFINITION_PARTICIPANT_CONDITION_AT, CONST_DEFINITION_PARTICIPANT_EL, CONST_DEFINITION_PARTICIPANT_NAME_AT, CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT, CONST_DEFINITION_PARTICIPANTS_EL, CONST_DRAW_EL, CONST_DRAW_SET_AT, CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT, CONST_INCREMENT_DATE_TIME_EL, CONST_INCREMENT_DATE_TIME_PRECISION_AT, CONST_INCREMENT_DATE_TIME_VALUE_AT, CONST_INCREMENT_NUMBER_ATTR_NAME_AT, CONST_INCREMENT_NUMBER_EL, CONST_INCREMENT_NUMBER_VALUE_AT, CONST_MENU_CAPTIONS_EL, CONST_MENU_CHOOSE_FROM_USERS_DEFAULT, CONST_MENU_CODE_NAME, CONST_MENU_CONFIRM_MESSAGES_EL, CONST_MENU_EL, CONST_MENU_ICON_NAME, CONST_MENU_IDENTIFIER_AT, CONST_MENU_LANG_AT, CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT, CONST_MENU_MASTER_NODE_AT, CONST_MENU_MULTI_ACTION_ENABLE_AT, CONST_MENU_PARAM_FORM_NAME_AT, CONST_MENU_PARTICIPANTS_SELECTING_AT, CONST_MENU_SET_VALUES_AT, CONST_MENU_TEXT_AT, CONST_MENU_TEXT_EL, CONST_MENU_VALIDATE_POST_REQ_AT, CONST_MENU_VALIDATE_RECOMMENDED_AT, CONST_NEW_OBJECT_EL, CONST_OWNER_EL, CONST_PARTICIPANTS_EL, CONST_POINT_EL, CONST_POINT_X_AT, CONST_POINT_Y_AT, CONST_POSITION_EL, CONST_POSITION_HEIGHT_AT, CONST_POSITION_SET_AT, CONST_POSITION_WIDTH_AT, CONST_POSITION_X_AT, CONST_POSITION_Y_AT, CONST_ROLE_DB_ID_AT, CONST_ROLE_EL, CONST_ROLE_NAME_AT, CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT, CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT, CONST_SEND_MAIL_EL, CONST_SEND_MAIL_FORMAT_AT, CONST_SEND_MAIL_RECIPIENT_AT, CONST_SEND_MAIL_RECIPIENT_TYPE_AT, CONST_SEND_MAIL_REPORT_TEMPLATE_AT, CONST_SEND_MAIL_SEND_POSTPONE_AT, CONST_SEND_MAIL_SUBJECT_AT, CONST_SEND_MAIL_SUMMARY_MAIL_AT, CONST_SEND_MAIL_TEXT_AT, CONST_SEND_SMS_EL, CONST_SEND_SMS_RECIPIENT_AT, CONST_SEND_SMS_RECIPIENT_TYPE_AT, CONST_SEND_SMS_TEXT_AT, CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT, CONST_SEND_WF_MESSAGE_EL, CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT, CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT, CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT, CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT, CONST_SET_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_ATTRIBUTE_EL, CONST_SET_ATTRIBUTE_VALUE_EL, CONST_SET_ATTRIBUTE_VALUE_TYPE, CONST_SET_DEFINITIONS_EL, CONST_SET_DESCRIPTION_AT, CONST_SET_EL, CONST_SET_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_EL, CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL, CONST_SET_VALUE_EL, CONST_SET_VALUE_NAME_AT, CONST_SET_VALUE_VALUE_EL, CONST_SYSTEM_EL, CONST_TRANSITION_CONDITION_AT, CONST_TRANSITION_EL, CONST_TRANSITION_ID_AT, CONST_TRANSITION_NAME_AT, CONST_TRANSITION_TO_AT, CONST_TRANSITIONS_EL, CONST_TRIGGERS_EL, CONST_USER_DB_ID_AT, CONST_USER_EL, CONST_USER_NAME_AT, CONST_WFMESSAGE_DEACTIVATING_AT, CONST_WFMESSAGE_EL, CONST_WFMESSAGE_MESSAGE_NAME_AT, CONST_WORKFLOW_CLASS_NAME_AT, CONST_WORKFLOW_DEFINITION_VERSION_AT, CONST_WORKFLOW_EL, CONST_WORKFLOW_IDENTIFIER_AT, CONST_WORKFLOW_VERSION_AT } from \"./constants\";\r\nimport { manageOpenFormAction } from \"./oldSilverlightFunctions\";\r\nimport { escapeXmlString, getCsharpTypeFromString } from \"./utils\";\r\n\r\nconst WORKFLOW_XML_NAMESPACE = \"http://schemas.tescosw.cz/core/workflow\";\r\n\r\n/**\r\n * Funkce přijímá parametr @param workflow a převádí jej do XML podoby.\r\n * @param workflow Workflow objekt, ze kterého se má vytvořit xml.\r\n */\r\nexport const workflowToXml = async (workflow: Workflow) => {\r\n const xmlDoc = document.implementation.createDocument(WORKFLOW_XML_NAMESPACE, CONST_WORKFLOW_EL);\r\n const wfElement = xmlDoc.documentElement;\r\n\r\n wfElement.setAttribute(\"xmlns:xsd\", \"http://www.w3.org/2001/XMLSchema\");\r\n wfElement.setAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\r\n wfElement.setAttribute(CONST_WORKFLOW_DEFINITION_VERSION_AT, workflow.definitionVersion);\r\n workflow.version && wfElement.setAttribute(CONST_WORKFLOW_VERSION_AT, workflow.version);\r\n wfElement.setAttribute(CONST_WORKFLOW_IDENTIFIER_AT, workflow.identifier);\r\n wfElement.setAttribute(CONST_WORKFLOW_CLASS_NAME_AT, workflow.className);\r\n\r\n // Přidání Aktivit\r\n for (let i = 0; i < workflow.activities.length; i++) {\r\n await addActivityElement(xmlDoc, wfElement, workflow.activities[i], workflow.sets);\r\n }\r\n\r\n // Přidání SetDefinitions\r\n const setDefinitionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_DEFINITIONS_EL);\r\n for (let i = 0; i < workflow.sets.length; i++) {\r\n addSetElement(xmlDoc, setDefinitionsEl, workflow.sets[i]);\r\n }\r\n\r\n // Přidání DefinitionParticipants\r\n const definitionParticiapntsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_DEFINITION_PARTICIPANTS_EL);\r\n for (let i = 0; i < workflow.definitionParticipants.length; i++) {\r\n addDefinitionParticipantElement(xmlDoc, definitionParticiapntsEl, workflow.definitionParticipants[i]);\r\n }\r\n\r\n wfElement.appendChild(setDefinitionsEl);\r\n wfElement.appendChild(definitionParticiapntsEl);\r\n\r\n return xmlDoc.documentElement.outerHTML;\r\n};\r\n\r\nconst addActivityElement = async (xmlDoc: Document, wfElement: Element, activity: Activity, sets: Set[]) => {\r\n const activityEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_ACTIVITY_EL);\r\n\r\n activity.condition !== \"\" && activityEl.setAttribute(CONST_ACTIVITY_CONDITION_AT, activity.condition!);\r\n activity.runCondition !== \"\" && activityEl.setAttribute(CONST_ACTIVITY_RUN_CONDITION_AT, activity.runCondition!);\r\n activityEl.setAttribute(CONST_ACTIVITY_ID_AT, activity.id);\r\n activityEl.setAttribute(CONST_ACTIVITY_TYPE_AT, activity.type);\r\n activityEl.setAttribute(CONST_ACTIVITY_ORDER_AT, activity.order.toString());\r\n activity.killChildren && activityEl.setAttribute(CONST_ACTIVITY_KILL_CHILDREN_AT, \"true\");\r\n !activity.showInWfHistory && activityEl.setAttribute(CONST_ACTIVITY_SHOW_IN_WF_HISTORY_AT, \"false\");\r\n activity.inheritParticipants && activityEl.setAttribute(CONST_ACTIVITY_INHERIT_PARTICIPANTS_AT, \"true\");\r\n activity.inputTransType === IOTransitionType.and && activityEl.setAttribute(CONST_ACTIVITY_INPUT_TRANS_TYPE_AT, IOTransitionType.and);\r\n activityEl.setAttribute(CONST_ACTIVITY_DESCRIPTION_AT, activity.description);\r\n activityEl.setAttribute(CONST_ACTIVITY_NAME_AT, activity.name);\r\n\r\n // Přidání Actions\r\n const actionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_ACTIONS_EL);\r\n for (const action of activity.actions) {\r\n await action.validate();\r\n addActionElement(xmlDoc, actionsEl, action);\r\n }\r\n manageOpenFormAction(WORKFLOW_XML_NAMESPACE, xmlDoc, actionsEl, activity.actions); // Stará se o zpracování akcí OpenForm, snad se brzo refaktoruje, ať to odtud zmizí :(\r\n\r\n // Přidání Transitions\r\n const transitionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_TRANSITIONS_EL);\r\n activity.transitions.forEach(transition => {\r\n addTransitionElement(xmlDoc, transitionsEl, transition, sets);\r\n });\r\n\r\n // Přidání Participants\r\n const participantsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_PARTICIPANTS_EL);\r\n activity.participants.forEach(participant => {\r\n addParticipantElement(xmlDoc, participantsEl, participant);\r\n });\r\n\r\n // Přidání Triggers\r\n const triggersEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_TRIGGERS_EL);\r\n for (const trigger of activity.triggers) {\r\n await trigger.validate();\r\n addTriggerElement(xmlDoc, triggersEl, trigger);\r\n }\r\n\r\n // Přidání Positions\r\n const positionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_POSITION_EL);\r\n activity.positions.forEach(position => {\r\n addPositionElement(xmlDoc, positionsEl, position, sets);\r\n });\r\n\r\n activity.actions.length > 0 && activityEl.appendChild(actionsEl);\r\n activity.transitions.length > 0 && activityEl.appendChild(transitionsEl);\r\n activity.participants.length > 0 && activityEl.appendChild(participantsEl);\r\n activity.triggers.length > 0 && activityEl.appendChild(triggersEl);\r\n activityEl.appendChild(positionsEl);\r\n wfElement.appendChild(activityEl);\r\n};\r\n\r\nconst addActionElement = (xmlDoc: Document, actionsEl: Element, action: Action) => {\r\n let actionEl: Element | null = null;\r\n\r\n switch (action.constructor) {\r\n case CallMethod: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_CALL_METHOD_EL);\r\n const callMethod = action as CallMethod;\r\n callMethod.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, callMethod.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, callMethod.comment);\r\n actionEl.setAttribute(CONST_CALL_METHOD_METHOD_NAME_AT, callMethod.methodName);\r\n actionEl.setAttribute(CONST_CALL_METHOD_STATIC_AT, callMethod.static ? \"true\" : \"false\");\r\n actionEl.setAttribute(CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT, callMethod.insertActualObject ? \"true\" : \"false\");\r\n actionEl.setAttribute(CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT, callMethod.insertParamFormObject ? \"true\" : \"false\");\r\n actionEl.setAttribute(CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT, callMethod.defaultParamValue);\r\n break;\r\n }\r\n case CallScript: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_CALL_SCRIPT_EL);\r\n const callScript = action as CallScript;\r\n callScript.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, callScript.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, callScript.comment);\r\n actionEl.innerHTML = escapeXmlString(callScript.script);\r\n break;\r\n }\r\n case IncrementDateTime: { // TODO - projednat sloučení s IncrementNumber\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_INCREMENT_DATE_TIME_EL);\r\n const incrementDateTime = action as IncrementDateTime;\r\n incrementDateTime.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, incrementDateTime.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, incrementDateTime.comment);\r\n actionEl.setAttribute(CONST_INCREMENT_DATE_TIME_VALUE_AT, incrementDateTime.value.toString());\r\n actionEl.setAttribute(CONST_INCREMENT_DATE_TIME_PRECISION_AT, incrementDateTime.precision);\r\n actionEl.setAttribute(CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT, incrementDateTime.attrName);\r\n break;\r\n }\r\n case IncrementNumber: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_INCREMENT_NUMBER_EL);\r\n const incrementNumber = action as IncrementNumber;\r\n incrementNumber.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, incrementNumber.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, incrementNumber.comment);\r\n actionEl.setAttribute(CONST_INCREMENT_NUMBER_ATTR_NAME_AT, incrementNumber.attrName);\r\n actionEl.setAttribute(CONST_INCREMENT_NUMBER_VALUE_AT, incrementNumber.value.toString());\r\n break;\r\n }\r\n case SendMail: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SEND_MAIL_EL);\r\n const sendMail = action as SendMail;\r\n sendMail.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, sendMail.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, sendMail.comment);\r\n actionEl.setAttribute(CONST_SEND_MAIL_RECIPIENT_AT,\r\n sendMail.recipientType === SendMessageRecipientType.condition\r\n ? `${sendMail.className};${sendMail.attrName};${sendMail.dataCondition}` : sendMail.recipient);\r\n actionEl.setAttribute(CONST_SEND_MAIL_SUBJECT_AT, sendMail.subject);\r\n actionEl.setAttribute(CONST_SEND_MAIL_TEXT_AT, sendMail.text);\r\n actionEl.setAttribute(CONST_SEND_MAIL_REPORT_TEMPLATE_AT, sendMail.reportTemplate);\r\n actionEl.setAttribute(CONST_SEND_MAIL_SUMMARY_MAIL_AT, sendMail.summaryMail ? \"true\" : \"false\");\r\n actionEl.setAttribute(CONST_SEND_MAIL_FORMAT_AT, sendMail.format);\r\n actionEl.setAttribute(CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT, sendMail.documentClassName);\r\n actionEl.setAttribute(CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT, sendMail.documentAttribute);\r\n actionEl.setAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_AT, sendMail.documentCondition);\r\n actionEl.setAttribute(CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT, sendMail.documentConditionParams);\r\n actionEl.setAttribute(CONST_SEND_MAIL_SEND_POSTPONE_AT, sendMail.sendPostpone ? \"true\" : \"false\");\r\n actionEl.setAttribute(CONST_SEND_MAIL_RECIPIENT_TYPE_AT, sendMail.recipientType);\r\n break;\r\n }\r\n case SendSMS: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SEND_SMS_EL);\r\n const sendSms = action as SendSMS;\r\n sendSms.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, sendSms.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, sendSms.comment);\r\n actionEl.setAttribute(CONST_SEND_SMS_RECIPIENT_AT,\r\n sendSms.recipientType === SendSmsRecipientType.condition\r\n ? `${sendSms.className};${sendSms.attrName};${sendSms.dataCondition}` : sendSms.recipient);\r\n actionEl.setAttribute(CONST_SEND_SMS_TEXT_AT, sendSms.text);\r\n actionEl.setAttribute(CONST_SEND_SMS_RECIPIENT_TYPE_AT, sendSms.recipientType);\r\n break;\r\n }\r\n case SendWFMessage: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SEND_WF_MESSAGE_EL);\r\n const sendWfMessage = action as SendWFMessage;\r\n sendWfMessage.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, sendWfMessage.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, sendWfMessage.comment);\r\n actionEl.setAttribute(CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT, sendWfMessage.messageName);\r\n actionEl.setAttribute(CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT, sendWfMessage.targetObjectName);\r\n actionEl.setAttribute(CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT, sendWfMessage.objectsCondition);\r\n actionEl.setAttribute(CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT, sendWfMessage.objectsConditionParams);\r\n actionEl.setAttribute(CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT, sendWfMessage.afterSave ? \"true\" : \"false\");\r\n break;\r\n }\r\n case SetAttribute: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_ATTRIBUTE_EL);\r\n const setAttribute = action as SetAttribute;\r\n setAttribute.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, setAttribute.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, setAttribute.comment); // TODO - proč někde comment je a někde není? Chci zrušit, pokud bude empty string\r\n actionEl.setAttribute(CONST_SET_ATTRIBUTE_VALUE_TYPE, (SetAttributeValueType as any)[setAttribute.valueType]);\r\n actionEl.setAttribute(CONST_SET_ATTRIBUTE_ATTR_NAME_AT, setAttribute.attrName);\r\n\r\n if (setAttribute.value && (setAttribute.valueType === SetAttributeValueType.typedValue || setAttribute.valueType === SetAttributeValueType.untypedValue)) {\r\n const valueEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_ATTRIBUTE_VALUE_EL);\r\n const escapedValue = escapeXmlString(setAttribute.value);\r\n valueEl.innerHTML = escapedValue;\r\n valueEl.setAttribute(\"xsi:type\", \"xsd:string\");\r\n actionEl.appendChild(valueEl);\r\n }\r\n\r\n break;\r\n }\r\n case SetObjectAttribute: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_OBJECT_ATTRIBUTE_EL);\r\n const setObjectAttribute = action as SetObjectAttribute;\r\n setObjectAttribute.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, setObjectAttribute.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, setObjectAttribute.comment);\r\n actionEl.setAttribute(CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, setObjectAttribute.attrName);\r\n actionEl.setAttribute(CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT, setObjectAttribute.masterClassName);\r\n actionEl.setAttribute(CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT, setObjectAttribute.masterAttrName);\r\n const valueEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL);\r\n valueEl.innerHTML = escapeXmlString(setObjectAttribute.value);\r\n actionEl.appendChild(valueEl);\r\n break;\r\n }\r\n case SetValue: {\r\n actionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_VALUE_EL);\r\n const setValue = action as SetValue;\r\n setValue.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, setValue.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, setValue.comment);\r\n actionEl.setAttribute(CONST_SET_VALUE_NAME_AT, setValue.name);\r\n\r\n if (setValue.value !== \"\") {\r\n const valueEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_VALUE_VALUE_EL);\r\n const escapedValue = escapeXmlString(setValue.value);\r\n const xsiType = getCsharpTypeFromString(escapedValue);\r\n valueEl.innerHTML = escapedValue;\r\n valueEl.setAttribute(\"xsi:type\", `xsd:${xsiType}`);\r\n actionEl.appendChild(valueEl);\r\n }\r\n\r\n break;\r\n }\r\n case OpenForm: {\r\n /* Jakmile bude refaktorována akce pro otevření formuláře, tak se může začít implementovat kód v komentáři\r\n actionEl = xmlDoc.createElementNS(workflowXmlNamespace, OpenForm);\r\n const setValue = action as OpenForm;\r\n setValue.condition && actionEl.setAttribute(CONST_ACTION_CONDITION_AT, setValue.condition);\r\n actionEl.setAttribute(CONST_ACTION_COMMENT_AT, setValue.comment);*/\r\n return;\r\n }\r\n default: {\r\n throw new Error(`Action of specified type '${action.constructor}' doesn't exist! Could not create XML of workflow!`);\r\n }\r\n }\r\n\r\n actionsEl.appendChild(actionEl);\r\n};\r\n\r\nconst addTransitionElement = (xmlDoc: Document, transitionsEl: Element, transition: Transition, sets: Set[]) => {\r\n const transtionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_TRANSITION_EL);\r\n\r\n transition.condition && transtionEl.setAttribute(CONST_TRANSITION_CONDITION_AT, transition.condition);\r\n transtionEl.setAttribute(CONST_TRANSITION_ID_AT, transition.id);\r\n transtionEl.setAttribute(CONST_TRANSITION_NAME_AT, transition.name);\r\n transtionEl.setAttribute(CONST_TRANSITION_TO_AT, transition.to);\r\n\r\n // Přidání akcí\r\n const actionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_ACTIONS_EL);\r\n transition.actions.forEach(action => {\r\n addActionElement(xmlDoc, actionsEl, action);\r\n });\r\n manageOpenFormAction(WORKFLOW_XML_NAMESPACE, xmlDoc, actionsEl, transition.actions); // Stará se o zpracování akcí OpenForm, snad se brzo refaktoruje, ať to odtud zmizí :(\r\n\r\n // Přidání pointů\r\n const drawEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_DRAW_EL);\r\n const setIndex = sets.findIndex(set => set.id === transition.setId);\r\n drawEl.setAttribute(CONST_DRAW_SET_AT, setIndex.toString());\r\n transition.points.forEach(point => {\r\n addPointElement(xmlDoc, drawEl, point);\r\n });\r\n\r\n transition.actions.length > 0 && transtionEl.appendChild(actionsEl);\r\n transtionEl.appendChild(drawEl);\r\n transitionsEl.appendChild(transtionEl);\r\n};\r\n\r\nconst addParticipantElement = (xmlDoc: Document, participantsEl: Element, participant: Participant) => {\r\n let participantEl: Element | null = null;\r\n\r\n switch (participant.constructor) {\r\n case DefinitionParticipant: { // TODO - velmi podobné, jako funkce addDefinitionParticipantElement, vymyslet lépe!\r\n participantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_DEFINITION_PARTICIPANT_EL);\r\n const definitionParticipant = participant as DefinitionParticipant;\r\n participantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_NAME_AT, definitionParticipant.name);\r\n participantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_CONDITION_AT, definitionParticipant.condition);\r\n participantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT, definitionParticipant.roleName);\r\n break;\r\n }\r\n case Owner: {\r\n participantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_OWNER_EL);\r\n break;\r\n }\r\n case Role: {\r\n participantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_ROLE_EL);\r\n const role = participant as Role;\r\n participantEl.setAttribute(CONST_ROLE_DB_ID_AT, role.dbID.toString());\r\n participantEl.setAttribute(CONST_ROLE_NAME_AT, role.name);\r\n break;\r\n }\r\n case System: {\r\n participantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SYSTEM_EL);\r\n break;\r\n }\r\n case User: {\r\n participantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_USER_EL);\r\n const user = participant as Role;\r\n participantEl.setAttribute(CONST_USER_DB_ID_AT, user.dbID.toString());\r\n participantEl.setAttribute(CONST_USER_NAME_AT, user.name);\r\n break;\r\n }\r\n default: {\r\n throw new Error(`Participant of specified type '${participant.constructor}' doesn't exist! Could not create XML of workflow!`);\r\n }\r\n }\r\n\r\n participantsEl.appendChild(participantEl);\r\n};\r\n\r\nconst addTriggerElement = (xmlDoc: Document, triggersEl: Element, trigger: Trigger) => {\r\n let triggerEl: Element | null = null;\r\n\r\n switch (trigger.constructor) {\r\n case AttributeDataChange: {\r\n triggerEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_ATTRIBUTE_DATA_CHANGE_EL);\r\n const attributeDataChange = trigger as AttributeDataChange;\r\n triggerEl.setAttribute(CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT, attributeDataChange.attrName),\r\n triggerEl.setAttribute(CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT, attributeDataChange.condition);\r\n break;\r\n }\r\n case Menu: {\r\n triggerEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_MENU_EL);\r\n const menu = trigger as Menu;\r\n triggerEl.setAttribute(CONST_MENU_IDENTIFIER_AT, menu.identifier),\r\n menu.codename && triggerEl.setAttribute(CONST_MENU_CODE_NAME, menu.codename),\r\n menu.iconName && triggerEl.setAttribute(CONST_MENU_ICON_NAME, menu.iconName),\r\n menu.participantsSelecting && triggerEl.setAttribute(CONST_MENU_PARTICIPANTS_SELECTING_AT, \"true\"),\r\n !menu.multiActionEnable && triggerEl.setAttribute(CONST_MENU_MULTI_ACTION_ENABLE_AT, \"false\"),\r\n menu.validatePostReq && triggerEl.setAttribute(CONST_MENU_VALIDATE_POST_REQ_AT, \"true\"),\r\n menu.validateRecommended && triggerEl.setAttribute(CONST_MENU_VALIDATE_RECOMMENDED_AT, \"true\"),\r\n menu.chooseFromUsersDefault && triggerEl.setAttribute(CONST_MENU_CHOOSE_FROM_USERS_DEFAULT, \"true\");\r\n triggerEl.setAttribute(CONST_MENU_MASTER_NODE_AT, menu.masterNode),\r\n triggerEl.setAttribute(CONST_MENU_PARAM_FORM_NAME_AT, menu.paramFormName),\r\n triggerEl.setAttribute(CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT, menu.linkAttrForSelObj),\r\n triggerEl.setAttribute(CONST_MENU_SET_VALUES_AT, menu.setValues);\r\n\r\n const captionsEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_MENU_CAPTIONS_EL);\r\n menu.captions.forEach(caption => {\r\n const textEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_MENU_TEXT_EL);\r\n textEl.setAttribute(CONST_MENU_LANG_AT, caption.lang);\r\n textEl.setAttribute(CONST_MENU_TEXT_AT, caption.text);\r\n captionsEl.append(textEl);\r\n });\r\n\r\n const confirmMessagesEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_MENU_CONFIRM_MESSAGES_EL);\r\n menu.confirmMessages.forEach(confirmMessage => {\r\n const textEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_MENU_TEXT_EL);\r\n textEl.setAttribute(CONST_MENU_LANG_AT, confirmMessage.lang);\r\n textEl.setAttribute(CONST_MENU_TEXT_AT, confirmMessage.text);\r\n confirmMessagesEl.append(textEl);\r\n });\r\n\r\n triggerEl.appendChild(captionsEl);\r\n triggerEl.appendChild(confirmMessagesEl);\r\n break;\r\n }\r\n case NewObject: {\r\n triggerEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_NEW_OBJECT_EL);\r\n break;\r\n }\r\n case WfMessage: {\r\n triggerEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_WFMESSAGE_EL);\r\n const wfMessage = trigger as WfMessage;\r\n triggerEl.setAttribute(CONST_WFMESSAGE_MESSAGE_NAME_AT, wfMessage.messageName);\r\n wfMessage.deactivating && triggerEl.setAttribute(CONST_WFMESSAGE_DEACTIVATING_AT, \"true\");\r\n break;\r\n }\r\n default: {\r\n throw new Error(`Trigger of specified type '${trigger.constructor}' doesn't exist! Could not create XML of workflow!`);\r\n }\r\n }\r\n\r\n triggersEl.appendChild(triggerEl);\r\n};\r\n\r\nconst addPositionElement = (xmlDoc: Document, positionsEl: Element, position: Position, sets: Set[]) => {\r\n const positionEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_POSITION_EL);\r\n const setIndex = sets.findIndex(set => set.id === position.set.id);\r\n\r\n positionEl.setAttribute(CONST_POSITION_X_AT, position.x.toString());\r\n positionEl.setAttribute(CONST_POSITION_Y_AT, position.y.toString());\r\n positionEl.setAttribute(CONST_POSITION_WIDTH_AT, position.width.toString());\r\n positionEl.setAttribute(CONST_POSITION_HEIGHT_AT, position.height.toString());\r\n positionEl.setAttribute(CONST_POSITION_SET_AT, setIndex.toString());\r\n\r\n positionsEl.appendChild(positionEl);\r\n};\r\n\r\nconst addPointElement = (xmlDoc: Document, drawEl: Element, point: Point) => {\r\n const pointEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_POINT_EL);\r\n\r\n pointEl.setAttribute(CONST_POINT_X_AT, point.x.toString());\r\n pointEl.setAttribute(CONST_POINT_Y_AT, point.y.toString());\r\n\r\n drawEl.appendChild(pointEl);\r\n};\r\n\r\nconst addSetElement = (xmlDoc: Document, setDefinitionsEl: Element, set: Set) => {\r\n const setEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_SET_EL);\r\n\r\n setEl.setAttribute(CONST_SET_NAME_AT, set.name);\r\n setEl.setAttribute(CONST_SET_DESCRIPTION_AT, set.description);\r\n\r\n setDefinitionsEl.appendChild(setEl);\r\n};\r\n\r\nconst addDefinitionParticipantElement = (xmlDoc: Document, definitionParticipantsEl: Element, definitionParticipant: DefinitionParticipant) => {\r\n const definitionParticpantEl = xmlDoc.createElementNS(WORKFLOW_XML_NAMESPACE, CONST_DEFINITION_PARTICIPANT_EL);\r\n\r\n definitionParticpantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_NAME_AT, definitionParticipant.name);\r\n definitionParticpantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_CONDITION_AT, definitionParticipant.condition);\r\n definitionParticpantEl.setAttribute(CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT, definitionParticipant.roleName);\r\n\r\n definitionParticipantsEl.appendChild(definitionParticpantEl);\r\n};\r\n","import { ParticipantType } from \"../enums\";\r\nimport { IVariable } from \"../types\";\r\nimport { parseStringToBoolean, string2number } from \"../utils\";\r\nimport { ActiveActivity, ActualizedParticipant, WorkflowStatus } from \"../workflowModel/WorkflowStatus\";\r\n\r\nexport const xmlToWfStatus = (xmlString: string): WorkflowStatus => {\r\n if (xmlString == null || xmlString.length < 0)\r\n throw new Error(\"Provided string of workflow status is empty.\");\r\n\r\n const parser = new DOMParser();\r\n const formDoc = parser.parseFromString(xmlString, \"text/xml\");\r\n\r\n if (formDoc == null)\r\n throw new Error(\"Loading of form xml failed!\");\r\n\r\n const workflowStatusElement = formDoc.children[0];\r\n\r\n const activeActivities = getActiveActivities(workflowStatusElement);\r\n const variables = getVariables(workflowStatusElement);\r\n const isWfEnded = getIsEndedStatus(workflowStatusElement);\r\n\r\n return new WorkflowStatus(activeActivities, variables, isWfEnded);\r\n};\r\n\r\nconst getIsEndedStatus = (workflowStatusElement: Element) => {\r\n const ended = workflowStatusElement.getAttribute(\"ended\");\r\n return parseStringToBoolean(ended, false);\r\n};\r\n\r\nconst getActiveActivities = (workflowStatusElement: Element): ActiveActivity[] => {\r\n const activeActivityElements = workflowStatusElement.getElementsByTagName(\"ActiveActivities\")[0].children;\r\n const activeActivities: ActiveActivity[] = [];\r\n\r\n for (let i = 0; i < activeActivityElements.length; i++) {\r\n const activeActivityEl = activeActivityElements[i];\r\n\r\n activeActivities.push({\r\n activityId: activeActivityEl.getAttribute(\"aAcID\") ?? \"\",\r\n parentActivityId: activeActivityEl.getAttribute(\"pAcID\") ?? \"\",\r\n order: string2number(activeActivityEl.getAttribute(\"order\") ?? \"\", 0),\r\n activatedInputTransitionIds: getActivatedInputTrans(activeActivityEl),\r\n activeParticipants: getActualizedParticipants(activeActivityEl),\r\n });\r\n }\r\n\r\n return activeActivities;\r\n};\r\n\r\nconst getVariables = (workflowStatusElement: Element): IVariable[] => {\r\n const itemElements = workflowStatusElement.getElementsByTagName(\"Variables\")[0].children;\r\n const variables: IVariable[] = [];\r\n\r\n for (let i = 0; i < itemElements.length; i++) {\r\n const item = itemElements[i];\r\n variables.push({\r\n name: item.getAttribute(\"key\") ?? \"\",\r\n value: item.innerHTML,\r\n });\r\n }\r\n\r\n return variables;\r\n};\r\n\r\nconst getActivatedInputTrans = (activeActivityEl: Element): string[] => {\r\n const activatedInputTrans = activeActivityEl.getElementsByTagName(\"ActivatedInputTrans\");\r\n const inputTrans: string[] = [];\r\n\r\n if (!activatedInputTrans.length)\r\n return inputTrans;\r\n\r\n const tElements = activatedInputTrans[0].children;\r\n\r\n for (let i = 0; i < tElements.length; i++) {\r\n const telement = tElements[i];\r\n inputTrans.push(telement.innerHTML);\r\n }\r\n\r\n return inputTrans;\r\n};\r\n\r\nconst getActualizedParticipants = (activeActivityEl: Element): ActualizedParticipant[] => {\r\n const actualizedParticipantElements = activeActivityEl.getElementsByTagName(\"ActualizedParticipants\");\r\n const actualizedParticipants: ActualizedParticipant[] = [];\r\n\r\n if (!actualizedParticipantElements.length)\r\n return actualizedParticipants;\r\n\r\n const participantElements = actualizedParticipantElements[0].children;\r\n\r\n for (let i = 0; i < participantElements.length; i++) {\r\n const participantElement = participantElements[i];\r\n\r\n actualizedParticipants.push({\r\n type: participantElement.localName as ParticipantType,\r\n id: participantElement.getAttribute(\"dbID\") ?? \"\",\r\n name: participantElement.getAttribute(\"name\") ?? \"\",\r\n });\r\n }\r\n\r\n return actualizedParticipants;\r\n};\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { LOC_NEW_SET } from \"../locKeys\";\r\nimport { parseStringToBoolean } from \"../utils\";\r\nimport { Activity, ActivityType, IOTransitionType, Point, Position, Set, Transition, Workflow } from \"../workflowModel\";\r\nimport { Action, CallMethod, CallScript, IncrementDateTime, IncrementNumber, SendWFMessage, SetObjectAttribute, SetValue } from \"../workflowModel/Actions\";\r\nimport { DefinitionParticipant, Owner, Participant, Role, System, User } from \"../workflowModel/Participants\";\r\nimport { AttributeDataChange, Menu, NewObject, Text, Trigger, WfMessage } from \"../workflowModel/Triggers\";\r\nimport {\r\n CONST_ACTION_COMMENT_AT,\r\n CONST_ACTION_CONDITION_AT,\r\n CONST_ACTIONS_EL,\r\n CONST_ACTIVITY_CONDITION_AT,\r\n CONST_ACTIVITY_DESCRIPTION_AT,\r\n CONST_ACTIVITY_EL,\r\n CONST_ACTIVITY_ID_AT,\r\n CONST_ACTIVITY_INHERIT_PARTICIPANTS_AT,\r\n CONST_ACTIVITY_INPUT_TRANS_TYPE_AT,\r\n CONST_ACTIVITY_KILL_CHILDREN_AT,\r\n CONST_ACTIVITY_NAME_AT,\r\n CONST_ACTIVITY_ORDER_AT,\r\n CONST_ACTIVITY_RUN_CONDITION_AT,\r\n CONST_ACTIVITY_SHOW_IN_WF_HISTORY_AT,\r\n CONST_ACTIVITY_TYPE_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_EL,\r\n CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT,\r\n CONST_CALL_METHOD_EL,\r\n CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT,\r\n CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT,\r\n CONST_CALL_METHOD_METHOD_NAME_AT,\r\n CONST_CALL_METHOD_STATIC_AT,\r\n CONST_CALL_SCRIPT_EL,\r\n CONST_DEFINITION_PARTICIPANT_CONDITION_AT,\r\n CONST_DEFINITION_PARTICIPANT_EL,\r\n CONST_DEFINITION_PARTICIPANT_NAME_AT,\r\n CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT,\r\n CONST_DEFINITION_PARTICIPANTS_EL,\r\n CONST_DRAW_EL,\r\n CONST_DRAW_SET_AT,\r\n CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT,\r\n CONST_INCREMENT_DATE_TIME_EL,\r\n CONST_INCREMENT_DATE_TIME_PRECISION_AT,\r\n CONST_INCREMENT_DATE_TIME_VALUE_AT,\r\n CONST_INCREMENT_NUMBER_ATTR_NAME_AT,\r\n CONST_INCREMENT_NUMBER_EL,\r\n CONST_INCREMENT_NUMBER_VALUE_AT,\r\n CONST_MENU_CAPTIONS_EL,\r\n CONST_MENU_CHOOSE_FROM_USERS_DEFAULT,\r\n CONST_MENU_CODE_NAME,\r\n CONST_MENU_CONFIRM_MESSAGES_EL,\r\n CONST_MENU_EL,\r\n CONST_MENU_ICON_NAME,\r\n CONST_MENU_IDENTIFIER_AT,\r\n CONST_MENU_LANG_AT,\r\n CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT,\r\n CONST_MENU_MASTER_NODE_AT,\r\n CONST_MENU_MULTI_ACTION_ENABLE_AT,\r\n CONST_MENU_PARAM_FORM_NAME_AT,\r\n CONST_MENU_PARTICIPANTS_SELECTING_AT,\r\n CONST_MENU_SET_VALUES_AT,\r\n CONST_MENU_TEXT_AT,\r\n CONST_MENU_VALIDATE_POST_REQ_AT,\r\n CONST_MENU_VALIDATE_RECOMMENDED_AT,\r\n CONST_MESSAGE_RECIPIENT_EL,\r\n CONST_NEW_OBJECT_EL,\r\n CONST_OWNER_EL,\r\n CONST_PARTICIPANTS_EL,\r\n CONST_POINT_X_AT,\r\n CONST_POINT_Y_AT,\r\n CONST_POSITION_EL,\r\n CONST_POSITION_HEIGHT_AT,\r\n CONST_POSITION_SET_AT,\r\n CONST_POSITION_WIDTH_AT,\r\n CONST_POSITION_X_AT,\r\n CONST_POSITION_Y_AT,\r\n CONST_ROLE_DB_ID_AT,\r\n CONST_ROLE_EL,\r\n CONST_ROLE_NAME_AT,\r\n CONST_SEND_CALENDAR_EL,\r\n CONST_SEND_MAIL_EL,\r\n CONST_SEND_SMS_EL,\r\n CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT,\r\n CONST_SEND_WF_MESSAGE_EL,\r\n CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT,\r\n CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT,\r\n CONST_SET_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_ATTRIBUTE_EL,\r\n CONST_SET_DEFINITIONS_EL,\r\n CONST_SET_DESCRIPTION_AT,\r\n CONST_SET_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_EL,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT,\r\n CONST_SET_VALUE_EL,\r\n CONST_SET_VALUE_NAME_AT,\r\n CONST_SYSTEM_EL,\r\n CONST_TRANSITION_CONDITION_AT,\r\n CONST_TRANSITION_ID_AT,\r\n CONST_TRANSITION_NAME_AT,\r\n CONST_TRANSITION_TO_AT,\r\n CONST_TRANSITIONS_EL,\r\n CONST_TRIGGERS_EL,\r\n CONST_USER_DB_ID_AT,\r\n CONST_USER_EL,\r\n CONST_USER_NAME_AT,\r\n CONST_WFMESSAGE_DEACTIVATING_AT,\r\n CONST_WFMESSAGE_EL,\r\n CONST_WFMESSAGE_MESSAGE_NAME_AT,\r\n CONST_WORKFLOW_CLASS_NAME_AT,\r\n CONST_WORKFLOW_DEFINITION_VERSION_AT,\r\n CONST_WORKFLOW_IDENTIFIER_AT,\r\n CONST_WORKFLOW_VERSION_AT,\r\n} from \"./constants\";\r\nimport { manageSendMailXmlElement, manageSendSmsXmlElement, manageSetAttributeXmlElement } from \"./oldSilverlightFunctions\";\r\nimport { unescapeXmlString } from \"./utils\";\r\n\r\nconst { loadLocalizationItems, generateUUID } = bridge;\r\n\r\nexport const xmlToWorkflow = async (xmlString: string): Promise<Workflow> => {\r\n if (xmlString == null || xmlString.length < 0)\r\n throw new Error(\"Provided string of workflow definition is empty.\");\r\n\r\n const parser = new DOMParser();\r\n const formDoc = parser.parseFromString(xmlString, \"text/xml\");\r\n\r\n if (formDoc == null)\r\n throw new Error(\"Loading of form xml failed!\");\r\n\r\n const workflowElement = formDoc.children[0];\r\n\r\n const sets = await getSets(workflowElement); // Načtení sad\r\n const definitionParticipants = getDefinitionParticipants(workflowElement); // Načtení definičních hráčů\r\n const activities = getActivities(workflowElement, sets, definitionParticipants); // Načtení aktivit\r\n\r\n const version = workflowElement.getAttribute(CONST_WORKFLOW_VERSION_AT) ?? \"\";\r\n const definitionVersion = workflowElement.getAttribute(CONST_WORKFLOW_DEFINITION_VERSION_AT) ?? \"\";\r\n const identifier = workflowElement.getAttribute(CONST_WORKFLOW_IDENTIFIER_AT) ?? \"\";\r\n const className = workflowElement.getAttribute(CONST_WORKFLOW_CLASS_NAME_AT) ?? \"\";\r\n\r\n return new Workflow(version, definitionVersion, identifier, className, sets, activities, definitionParticipants);\r\n};\r\n\r\nconst getSets = async (workflowElement: Element): Promise<Set[]> => {\r\n const sets: Set[] = [];\r\n const setDefinitionsEl = workflowElement.getElementsByTagName(CONST_SET_DEFINITIONS_EL);\r\n\r\n // Pokud není žádná vytvořená sada, tak musíme aspoň jednu vytvořit (otevření nově vytvořené šablony typicky)\r\n if (!setDefinitionsEl.length || setDefinitionsEl[0].children.length === 0)\r\n return [new Set(await getNewSetLocalization(), \"\", 0)];\r\n\r\n const setElements = setDefinitionsEl[0].children;\r\n\r\n for (let i = 0; i < setElements.length; i++) {\r\n const setEl = setElements[i];\r\n const name = setEl.getAttribute(CONST_SET_NAME_AT) ?? \"\";\r\n const description = setEl.getAttribute(CONST_SET_DESCRIPTION_AT) ?? \"\";\r\n sets.push(new Set(name, description, i));\r\n }\r\n\r\n return sets;\r\n};\r\n\r\nconst getActivities = (workflowElement: Element, sets: Set[], definitionParticipants: DefinitionParticipant[]) => {\r\n const activities: Activity[] = [];\r\n const activityElements = workflowElement.getElementsByTagName(CONST_ACTIVITY_EL);\r\n\r\n for (let i = 0; i < activityElements.length; i++) {\r\n const activityEl = activityElements[i];\r\n\r\n const actions = getActions(activityEl);\r\n const positions = getPositions(activityEl, sets);\r\n const transitions = getTransitions(activityEl, sets);\r\n const triggers = getTriggers(activityEl);\r\n const participants = getParticipants(activityEl, definitionParticipants);\r\n\r\n const activityId = activityEl.getAttribute(CONST_ACTIVITY_ID_AT) ?? \"\";\r\n const activityType = getActivityType(activityEl.getAttribute(CONST_ACTIVITY_TYPE_AT));\r\n const activity = new Activity(activityId, activityType, actions, participants, triggers, transitions, positions);\r\n activity.name = activityEl.getAttribute(CONST_ACTIVITY_NAME_AT) ?? \"\";\r\n activity.order = Number(activityEl.getAttribute(CONST_ACTIVITY_ORDER_AT));\r\n activity.condition = activityEl.getAttribute(CONST_ACTIVITY_CONDITION_AT) ?? \"\";\r\n activity.runCondition = activityEl.getAttribute(CONST_ACTIVITY_RUN_CONDITION_AT) ?? \"\";\r\n activity.description = activityEl.getAttribute(CONST_ACTIVITY_DESCRIPTION_AT) ?? \"\";\r\n activity.inheritParticipants = parseStringToBoolean(activityEl.getAttribute(CONST_ACTIVITY_INHERIT_PARTICIPANTS_AT), activity.inheritParticipants);\r\n activity.killChildren = parseStringToBoolean(activityEl.getAttribute(CONST_ACTIVITY_KILL_CHILDREN_AT), false);\r\n activity.inputTransType = getTransType(activityEl.getAttribute(CONST_ACTIVITY_INPUT_TRANS_TYPE_AT), IOTransitionType.xor);\r\n activity.showInWfHistory = parseStringToBoolean(activityEl.getAttribute(CONST_ACTIVITY_SHOW_IN_WF_HISTORY_AT), activity.showInWfHistory);\r\n\r\n if (activityId)\r\n activities.push(activity);\r\n }\r\n\r\n return activities;\r\n};\r\n\r\nconst getDefinitionParticipants = (workflowElement: Element) => {\r\n const definitionParticipants: DefinitionParticipant[] = [];\r\n const definitionParticipantsEl = workflowElement.getElementsByTagName(CONST_DEFINITION_PARTICIPANTS_EL);\r\n\r\n if (definitionParticipantsEl.length === 0)\r\n return definitionParticipants;\r\n\r\n const { children } = definitionParticipantsEl[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const definitionParticipantEl = children[i];\r\n const name = definitionParticipantEl.getAttribute(CONST_DEFINITION_PARTICIPANT_NAME_AT) ?? \"\";\r\n const condition = definitionParticipantEl.getAttribute(CONST_DEFINITION_PARTICIPANT_CONDITION_AT) ?? \"\";\r\n const roleName = definitionParticipantEl.getAttribute(CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT) ?? \"\";\r\n definitionParticipants.push(new DefinitionParticipant(generateUUID(), name, condition, roleName));\r\n }\r\n\r\n return definitionParticipants;\r\n};\r\n\r\nconst getActions = (element: Element) => {\r\n const actions: Action[] = [];\r\n const actionsElements = element.getElementsByTagName(CONST_ACTIONS_EL);\r\n\r\n if (actionsElements.length === 0)\r\n return actions;\r\n\r\n const { children } = actionsElements[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const actionEl = children[i];\r\n\r\n switch (actionEl.localName) {\r\n case CONST_CALL_METHOD_EL: {\r\n actions.push(new CallMethod(\r\n actionEl.getAttribute(CONST_CALL_METHOD_METHOD_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_CALL_METHOD_STATIC_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_CALL_SCRIPT_EL: {\r\n actions.push(new CallScript(\r\n unescapeXmlString(actionEl.innerHTML ?? \"\"),\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_INCREMENT_DATE_TIME_EL: {\r\n actions.push(new IncrementDateTime(\r\n actionEl.getAttribute(CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_INCREMENT_DATE_TIME_PRECISION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_INCREMENT_DATE_TIME_VALUE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_INCREMENT_NUMBER_EL: {\r\n actions.push(new IncrementNumber(\r\n actionEl.getAttribute(CONST_INCREMENT_NUMBER_ATTR_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_INCREMENT_NUMBER_VALUE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_MESSAGE_RECIPIENT_EL: {\r\n // Stará akce, která už je obsolete i na SL. Nemilosrdně vyhazujeme výjimku!\r\n throw new Error(\"Action \\\"Message Recipient\\\" is not supported in new version of WF Editor!\");\r\n }\r\n case CONST_SEND_CALENDAR_EL: {\r\n // Stará akce, která už je obsolete i na SL. Nemilosrdně vyhazujeme výjimku!\r\n throw new Error(\"Action \\\"Send Calendar\\\" is not supported in new version of WF Editor!\");\r\n }\r\n case CONST_SEND_MAIL_EL: {\r\n manageSendMailXmlElement(actionEl, actions);\r\n break;\r\n }\r\n case CONST_SEND_SMS_EL: {\r\n manageSendSmsXmlElement(actionEl, actions);\r\n break;\r\n }\r\n case CONST_SEND_WF_MESSAGE_EL: {\r\n actions.push(new SendWFMessage(\r\n actionEl.getAttribute(CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_SET_ATTRIBUTE_EL: {\r\n manageSetAttributeXmlElement(actionEl, actions);\r\n break;\r\n }\r\n case CONST_SET_OBJECT_ATTRIBUTE_EL: {\r\n actions.push(new SetObjectAttribute(\r\n actionEl.getAttribute(CONST_SET_ATTRIBUTE_ATTR_NAME_AT) ?? \"\",\r\n unescapeXmlString(actionEl.children[0]?.innerHTML ?? \"\"),\r\n actionEl.getAttribute(CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_SET_VALUE_EL: {\r\n actions.push(new SetValue(\r\n actionEl.getAttribute(CONST_SET_VALUE_NAME_AT) ?? \"\",\r\n unescapeXmlString(actionEl.children[0]?.innerHTML ?? \"\"),\r\n actionEl.getAttribute(CONST_ACTION_CONDITION_AT) ?? \"\",\r\n actionEl.getAttribute(CONST_ACTION_COMMENT_AT) ?? \"\"));\r\n break;\r\n }\r\n default: {\r\n throw new Error(`Action of name '${actionEl.localName}' is not valid WF action! Please check spelling!`);\r\n }\r\n }\r\n }\r\n\r\n return actions;\r\n};\r\n\r\nconst getTransitions = (activity: Element, sets: Set[]) => {\r\n const transitions: Transition[] = [];\r\n const transitionsElements = activity.getElementsByTagName(CONST_TRANSITIONS_EL);\r\n\r\n if (transitionsElements.length === 0)\r\n return transitions;\r\n\r\n const { children } = transitionsElements[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const transitionEl = children[i];\r\n const drawElement = transitionEl.getElementsByTagName(CONST_DRAW_EL)[0];\r\n const pointElements = drawElement.children;\r\n const points: Point[] = [];\r\n\r\n for (let j = 0; j < pointElements.length; j++) {\r\n points.push(new Point(Number(pointElements[j].getAttribute(CONST_POINT_X_AT)), Number(pointElements[j].getAttribute(CONST_POINT_Y_AT))));\r\n }\r\n\r\n const setIndex = Number(drawElement.getAttribute(CONST_DRAW_SET_AT));\r\n\r\n if (isNaN(setIndex))\r\n throw new Error(\"Draw element doesn't have an element 'set' with set's index!'\");\r\n\r\n const transitionId = transitionEl.getAttribute(CONST_TRANSITION_ID_AT) ?? \"\";\r\n const to = transitionEl.getAttribute(CONST_TRANSITION_TO_AT) ?? \"\";\r\n const actions = getActions(transitionEl);\r\n\r\n const newTransition = new Transition(transitionId, to, points, sets[setIndex].id, actions);\r\n newTransition.name = transitionEl.getAttribute(CONST_TRANSITION_NAME_AT) ?? \"\";\r\n newTransition.condition = transitionEl.getAttribute(CONST_TRANSITION_CONDITION_AT) ?? \"\";\r\n\r\n transitions.push(newTransition);\r\n }\r\n\r\n return transitions;\r\n};\r\n\r\nconst getPositions = (activity: Element, sets: Set[]) => {\r\n const positions: Position[] = [];\r\n const positionsElements = activity.getElementsByTagName(CONST_POSITION_EL);\r\n\r\n if (positionsElements.length === 0)\r\n return positions;\r\n\r\n const { children } = positionsElements[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const positionEl = children[i];\r\n const x = Number(positionEl.getAttribute(CONST_POSITION_X_AT));\r\n const y = Number(positionEl.getAttribute(CONST_POSITION_Y_AT));\r\n const width = Number(positionEl.getAttribute(CONST_POSITION_WIDTH_AT));\r\n const height = Number(positionEl.getAttribute(CONST_POSITION_HEIGHT_AT));\r\n const setIndex = Number(positionEl.getAttribute(CONST_POSITION_SET_AT));\r\n\r\n if (sets[setIndex]) {\r\n positions.push(new Position(x, y, width, height, sets[setIndex]));\r\n }\r\n }\r\n\r\n return positions;\r\n};\r\n\r\nconst getParticipants = (activity: Element, definitionParticipants: DefinitionParticipant[]) => {\r\n const participants: Participant[] = [];\r\n const participantsElements = activity.getElementsByTagName(CONST_PARTICIPANTS_EL);\r\n\r\n if (participantsElements.length === 0)\r\n return participants;\r\n\r\n const { children } = participantsElements[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const participantEl = children[i];\r\n\r\n switch (participantEl.localName) {\r\n case CONST_DEFINITION_PARTICIPANT_EL: {\r\n const foundDefParticipant = definitionParticipants.find(defParticipant => defParticipant.name === participantEl.getAttribute(CONST_DEFINITION_PARTICIPANT_NAME_AT));\r\n if (!foundDefParticipant)\r\n throw new Error(`Could not found definition participant of the name '${participantEl.getAttribute(CONST_DEFINITION_PARTICIPANT_NAME_AT)}'`);\r\n participants.push(foundDefParticipant);\r\n break;\r\n }\r\n case CONST_OWNER_EL: {\r\n participants.push(new Owner());\r\n break;\r\n }\r\n case CONST_ROLE_EL: {\r\n participants.push(new Role(\r\n participantEl.getAttribute(CONST_ROLE_DB_ID_AT) ?? \"\",\r\n participantEl.getAttribute(CONST_ROLE_NAME_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_SYSTEM_EL: {\r\n participants.push(new System());\r\n break;\r\n }\r\n case CONST_USER_EL: {\r\n participants.push(new User(\r\n participantEl.getAttribute(CONST_USER_DB_ID_AT) ?? \"\",\r\n participantEl.getAttribute(CONST_USER_NAME_AT) ?? \"\"));\r\n break;\r\n }\r\n default: {\r\n throw new Error(`Participant of given name '${participantEl.localName}' is not a valid participant! Please check spelling!`);\r\n }\r\n }\r\n }\r\n\r\n return participants;\r\n};\r\n\r\nconst getTriggers = (activity: Element) => {\r\n const triggers: Trigger[] = [];\r\n const triggersElements = activity.getElementsByTagName(CONST_TRIGGERS_EL);\r\n\r\n if (triggersElements.length === 0)\r\n return triggers;\r\n\r\n const { children } = triggersElements[0];\r\n\r\n for (let i = 0; i < children.length; i++) {\r\n const triggerEl = children[i];\r\n\r\n switch (triggerEl.localName) {\r\n case CONST_ATTRIBUTE_DATA_CHANGE_EL: {\r\n triggers.push(new AttributeDataChange(\r\n triggerEl.getAttribute(CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT) ?? \"\"));\r\n break;\r\n }\r\n case CONST_MENU_EL: {\r\n const captions = getCaptions(triggerEl);\r\n triggers.push(new Menu(\r\n triggerEl.getAttribute(CONST_MENU_IDENTIFIER_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_CODE_NAME) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_ICON_NAME) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_PARTICIPANTS_SELECTING_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_MULTI_ACTION_ENABLE_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_VALIDATE_POST_REQ_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_VALIDATE_RECOMMENDED_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_CHOOSE_FROM_USERS_DEFAULT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_MASTER_NODE_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_PARAM_FORM_NAME_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_MENU_SET_VALUES_AT) ?? \"\",\r\n captions,\r\n getConfirmMessages(triggerEl, captions)));\r\n break;\r\n }\r\n case CONST_NEW_OBJECT_EL: {\r\n triggers.push(new NewObject());\r\n break;\r\n }\r\n case CONST_WFMESSAGE_EL: {\r\n triggers.push(new WfMessage(\r\n triggerEl.getAttribute(CONST_WFMESSAGE_MESSAGE_NAME_AT) ?? \"\",\r\n triggerEl.getAttribute(CONST_WFMESSAGE_DEACTIVATING_AT) ?? \"\"));\r\n break;\r\n }\r\n default: {\r\n throw new Error(`Trigger of given name '${triggerEl.localName}' is not a valid trigger! Please check spelling!`);\r\n }\r\n }\r\n }\r\n\r\n return triggers;\r\n};\r\n\r\nconst getTransType = (attributeValue: string | null, defaultIoTransType: IOTransitionType): IOTransitionType => {\r\n return attributeValue === IOTransitionType.and ? IOTransitionType.and : defaultIoTransType;\r\n};\r\n\r\nconst getActivityType = (attributeValue: string | null): ActivityType => {\r\n switch (attributeValue) {\r\n case \"normal\": {\r\n return ActivityType.normal;\r\n }\r\n case \"start\": {\r\n return ActivityType.start;\r\n }\r\n case \"end\": {\r\n return ActivityType.end;\r\n }\r\n default: {\r\n throw new Error(`Given Activity Type '${attributeValue}' is not supported. Cannot parse workflow!`);\r\n }\r\n }\r\n};\r\n\r\nconst getCaptions = (triggerEl: Element) => {\r\n const captions: Text[] = [];\r\n const captionsEl = triggerEl.querySelector(CONST_MENU_CAPTIONS_EL);\r\n\r\n if (captionsEl == null)\r\n throw new Error(`XML element \"${CONST_MENU_CAPTIONS_EL}\" is missing for trigger of type \"Menu\"! \\n ${triggerEl}`);\r\n\r\n for (let i = 0; i < captionsEl.children.length; i++) {\r\n captions.push(new Text(\r\n captionsEl.children[i].getAttribute(CONST_MENU_LANG_AT) ?? \"\",\r\n captionsEl.children[i].getAttribute(CONST_MENU_TEXT_AT) ?? \"\"));\r\n }\r\n\r\n return captions;\r\n};\r\n\r\nconst getConfirmMessages = (triggerEl: Element, captions: Text[]) => {\r\n const confirmMessages: Text[] = [];\r\n const confirmMessagesEl = triggerEl.querySelector(CONST_MENU_CONFIRM_MESSAGES_EL);\r\n\r\n if (confirmMessagesEl == null)\r\n throw new Error(`XML element \"${CONST_MENU_CONFIRM_MESSAGES_EL}\" is missing for trigger of type \"Menu\"! \\n ${triggerEl}`);\r\n\r\n for (let i = 0; i < captions.length; i++) {\r\n const confirmMessage = findAdequateConfirmMsg(captions[i], confirmMessagesEl);\r\n confirmMessages.push(confirmMessage ?? new Text(captions[i].lang, \"\"));\r\n }\r\n\r\n return confirmMessages;\r\n};\r\n\r\n/**\r\n * Vrací lokalizovaný název pro nově vytvořenou sadu.\r\n */\r\nconst getNewSetLocalization = async () => {\r\n const locItems = await loadLocalizationItems([LOC_NEW_SET]);\r\n return locItems.get(LOC_NEW_SET)?.primaryText ?? \"Nová sada\";\r\n};\r\n\r\n/**\r\n * Pokud nenajde confirm message pro související(podle jazyka) caption, vrátí undefined,\r\n * v opačném případě ponechá původní hodnoty\r\n */\r\nconst findAdequateConfirmMsg = (currentCaption: Text, confirmMessagesEl: Element) => {\r\n for (const confirmMessageChild of confirmMessagesEl.children) {\r\n if (confirmMessageChild.getAttribute(CONST_MENU_LANG_AT) === currentCaption.lang) {\r\n return new Text(\r\n confirmMessageChild.getAttribute(CONST_MENU_LANG_AT) ?? \"\",\r\n confirmMessageChild.getAttribute(CONST_MENU_TEXT_AT) ?? \"\");\r\n }\r\n }\r\n return undefined;\r\n};\r\n","export { workflowToXml } from \"./WorkflowToXml\";\r\nexport { xmlToWfStatus } from \"./XmlToWfStatus\";\r\nexport { xmlToWorkflow } from \"./XmlToWorkflow\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, Divider, FontWeight, JustifyContent, Layout, LocalizationProvider, SpacingSize, Text, VerticalDivider, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { LOC_BASIC_CONDITION, LOC_TRANSITION_NAME } from \"../../../locKeys\";\r\nimport { ActivityTransition } from \"../../../types\";\r\n\r\ntype ActivityTransitionsListProps = {\r\n readonly headerLocKey: string;\r\n readonly leadingLocKey: string;\r\n readonly fallbackTextLocKey: string;\r\n readonly activityTransitions: readonly ActivityTransition[];\r\n};\r\n\r\nconst classNames = bemClassNames(\"activity-transitions-list\");\r\nconst frameClassName = classNames();\r\nconst headerContainer = classNames(\"header-container\");\r\nconst contentContainer = classNames(\"content-container\");\r\nconst contentContainerItems = classNames(\"content-container-items\");\r\nconst transitionNameCell = classNames(\"transition-name-cell\");\r\nconst basicConditionCell = classNames(\"basic-condition-cell\");\r\nconst leadingCell = classNames(\"leading-cell\");\r\nconst noTransitionContainer = classNames(\"no-transition-container\");\r\n\r\nexport const ActivityTransitionsList: FunctionComponent<ActivityTransitionsListProps> = ({ activityTransitions, headerLocKey, leadingLocKey, fallbackTextLocKey }) => (\r\n <div className={frameClassName}>\r\n <Fragment>\r\n <Layout spacingSizeVertical={SpacingSize.s} justifyContent={JustifyContent.center}>\r\n <LocalizationProvider locKey={headerLocKey}>\r\n {({ text }) => (\r\n <Text value={text} fontWeight={FontWeight.bold} />\r\n )}\r\n </LocalizationProvider>\r\n </Layout>\r\n <Divider />\r\n {activityTransitions.length > 0 ?\r\n <Fragment>\r\n <div className={headerContainer}>\r\n <div className={transitionNameCell}>\r\n <Caption locKey={LOC_TRANSITION_NAME} />\r\n </div>\r\n <VerticalDivider />\r\n <div className={basicConditionCell}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n </div>\r\n <VerticalDivider />\r\n <div className={leadingCell}>\r\n <Caption locKey={leadingLocKey} />\r\n </div>\r\n </div>\r\n <Divider />\r\n <div className={contentContainer}>\r\n {activityTransitions.map(({ otherActivityName, transitionName, transitionCondition }, index) => (\r\n <div key={`${otherActivityName}${index}`}>\r\n <div className={contentContainerItems}>\r\n <div className={transitionNameCell}>\r\n <Text value={transitionName} title={transitionName} whiteSpace={WhiteSpace.nowrap} ellipsis />\r\n </div>\r\n <VerticalDivider />\r\n <div className={basicConditionCell}>\r\n <Text value={transitionCondition} title={transitionCondition} whiteSpace={WhiteSpace.nowrap} ellipsis />\r\n </div>\r\n <VerticalDivider />\r\n <div className={leadingCell}>\r\n <Text fontWeight={FontWeight.bold} value={otherActivityName} title={otherActivityName} whiteSpace={WhiteSpace.nowrap} ellipsis />\r\n </div>\r\n </div>\r\n <Divider />\r\n </div>\r\n ))}\r\n </div>\r\n </Fragment> :\r\n <div className={noTransitionContainer}>\r\n <LocalizationProvider locKey={fallbackTextLocKey} />\r\n </div>}\r\n </Fragment>\r\n </div>\r\n);\r\n","import React, { CSSProperties, Fragment, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, FlagCircle, IconButton, IconColor, IconSize, Layout, LocalizationProvider, Skeleton, SpacingSize, Text, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { FlagColor, IAppState } from \"@multiweb/types/react\";\r\nimport { ParticipantType } from \"../../../enums\";\r\nimport { LOC_ADD, LOC_OWNER, LOC_REMOVE, LOC_SYSTEM } from \"../../../locKeys\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { IParticipant, WorkflowEditorProps } from \"../../../types\";\r\n\r\ntype AddableListFrameItemComponentProps = {\r\n readonly style: CSSProperties;\r\n readonly showAdd: boolean;\r\n readonly participant: IParticipant;\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly onActionButtonClick: () => void;\r\n readonly systemText: string;\r\n readonly ownerText: string;\r\n readonly addText: string;\r\n readonly removeText: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"addable-list-frame-item-component\");\r\n\r\nconst AddableListFrameItemComponent: FunctionComponent<AddableListFrameItemComponentProps> = ({\r\n style,\r\n isWorkflowReadOnly,\r\n showAdd,\r\n participant,\r\n onActionButtonClick,\r\n systemText,\r\n ownerText,\r\n addText,\r\n removeText,\r\n}) => {\r\n const isLoading = participant.name === undefined;\r\n const { name, color } = getParticipantNameAndColor(participant, ownerText, systemText);\r\n\r\n return (\r\n <div style={style}>\r\n <div className={classNames({ \"is-loading\": isLoading })}>\r\n {isLoading ? (\r\n <Skeleton />\r\n ) : (\r\n <Fragment>\r\n {!isWorkflowReadOnly &&\r\n <IconButton\r\n size={IconSize.small}\r\n title={showAdd ? addText : removeText}\r\n onClick={onActionButtonClick}\r\n color={showAdd ? IconColor.green : IconColor.red}\r\n iconCode={showAdd ? IconCode.uiPlusSmall : IconCode.uiMinusSmall}\r\n backgroundColor={ButtonBackgroundColor.transparent} />\r\n }\r\n <Layout spacingSizeLeft={SpacingSize.xs}>\r\n <LocalizationProvider locKey={participant.locKey}>\r\n {({ text }) => <FlagCircle title={text} {...{ color }} />}\r\n </LocalizationProvider>\r\n </Layout>\r\n <Text value={name} title={name} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </Fragment>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<AddableListFrameItemComponentProps, \"isWorkflowReadOnly\" | \"systemText\" | \"ownerText\" | \"addText\" | \"removeText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WorkflowEditorProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n systemText: getPrimaryText(state, LOC_SYSTEM) ?? \"Systém\",\r\n ownerText: getPrimaryText(state, LOC_OWNER) ?? \"Vlastník\",\r\n addText: getPrimaryText(state, LOC_ADD) ?? \"Přidat\",\r\n removeText: getPrimaryText(state, LOC_REMOVE) ?? \"Odebrat\",\r\n});\r\n\r\nexport const AddableListFrameItem = connect(mapStateToProps)(AddableListFrameItemComponent);\r\n\r\nconst getParticipantNameAndColor = (participant: IParticipant, ownerText: string, systemText: string): { name: string; color: FlagColor } => {\r\n if (participant.participantType === undefined)\r\n return { name: \"\", color: \"black\" };\r\n if (participant.participantType === ParticipantType.User)\r\n return { name: participant.name, color: \"blue\" };\r\n if (participant.participantType === ParticipantType.Role)\r\n return { name: participant.name, color: \"red\" };\r\n if (participant.participantType === ParticipantType.DefinitionParticipant)\r\n return { name: participant.name, color: \"pink\" };\r\n if (participant.participantType === ParticipantType.Owner)\r\n return { name: ownerText, color: \"green\" };\r\n if (participant.participantType === ParticipantType.System)\r\n return { name: systemText, color: \"black\" };\r\n\r\n throw new Error(`Participant type '${participant.participantType}' is not implemented!`);\r\n};\r\n","import React, { ChangeEvent, FunctionComponent, useEffect, useRef, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\ntype AutoTextAreaProps = {\r\n readonly readOnly?: boolean;\r\n readonly textValue: string;\r\n readonly onChange: (e: ChangeEvent<HTMLTextAreaElement>) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"auto-text-area-component\");\r\nconst autoTextAreaClassName = classNames();\r\n\r\nexport const AutoTextArea: FunctionComponent<AutoTextAreaProps> = ({ readOnly, textValue, onChange }) => {\r\n const textAreaRef = useRef<HTMLTextAreaElement>(null);\r\n const [messageText, setMessageText] = useState(textValue);\r\n const [textAreaHeight, setTextAreaHeight] = useState(\"auto\");\r\n\r\n useEffect(() => {\r\n setTextAreaHeight(`${textAreaRef.current?.scrollHeight}px`);\r\n }, [messageText]);\r\n\r\n const onChangeHandler = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n setTextAreaHeight(\"auto\");\r\n setMessageText(event.target.value);\r\n\r\n if (onChange) {\r\n onChange(event);\r\n }\r\n };\r\n\r\n return (\r\n <textarea\r\n className={autoTextAreaClassName}\r\n ref={textAreaRef}\r\n style={{ height: textAreaHeight }}\r\n rows={1}\r\n onChange={onChangeHandler}\r\n readOnly={readOnly}\r\n value={messageText} />\r\n );\r\n};\r\n","import React, { FunctionComponent, MouseEvent, useState } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\ntype BasicDialogProps = {\r\n readonly isSelected: boolean;\r\n readonly name: string;\r\n readonly onItemClick: (e: MouseEvent) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"basic-dialog-item-component\");\r\n\r\nexport const BasicDialogItem: FunctionComponent<BasicDialogProps> = ({ isSelected, name, onItemClick }) => {\r\n const [isMouseOver, setIsMouseOver] = useState(false);\r\n\r\n const onMouseOver = () => {\r\n if (!isMouseOver)\r\n setIsMouseOver(true);\r\n };\r\n\r\n const onMouseLeave = () => {\r\n if (isMouseOver)\r\n setIsMouseOver(false);\r\n };\r\n\r\n return <p className={classNames({ \"is-mouse-over\": isMouseOver, \"selected\": isSelected })} onClick={onItemClick} {...{ onMouseOver, onMouseLeave }}>{name}</p>;\r\n};\r\n","import { createOpenFormModalAction } from \"@multiweb/reactCore/bridge\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\n\r\n/** Funkce slouží pro složení názvu třídy pro editační komponenty. Možno smazat, až budou vytvořený reactí ekvivalenty obecných komponent Edit, ChceckBox, Select, Memo,... */\r\nexport const getEditableControlClassName = (required: boolean, disabled: boolean, aditionalClassName?: string) => {\r\n let editableControlClassName = \"EditableControl\";\r\n\r\n if (aditionalClassName)\r\n editableControlClassName += ` ${aditionalClassName}`;\r\n\r\n if (required)\r\n editableControlClassName += \" Required\";\r\n\r\n if (disabled)\r\n editableControlClassName += \" Disabled\";\r\n\r\n return editableControlClassName;\r\n};\r\n\r\n/**\r\n * Vytvoří obslužnou funkci kliknutí na button u komponenty TextLOVEdit, která se stará o zobrazení/skrytí editačních dialogů editoru WF.\r\n * @param toggleEditDialogsVisibility Dispatchnutá akce pro zobrazování/skrytí editačních dialogů.\r\n * @param openFormModal Vyšle akci pro otevření modálního formuláře.\r\n * @param onFormClose Callback volaný při zavření modálního formuláře.\r\n * @param formName Název formuláře k otevření.\r\n * @param attributeNames Názvy atributů ke čtení.\r\n * @param condition Podmnka pro zobrazení záznamů.\r\n */\r\nexport const createOnTextLOVEditClick = (\r\n toggleEditDialogsVisibility: () => void,\r\n openFormModal: typeof createOpenFormModalAction,\r\n onFormClose: (results: readonly IAttrValue[] | undefined) => void,\r\n formName: string,\r\n attributeNames: readonly string[],\r\n condition?: string,\r\n) =>\r\n () => {\r\n toggleEditDialogsVisibility();\r\n openFormModal({\r\n formName,\r\n attributeNames,\r\n onClose: (results) => {\r\n onFormClose(results);\r\n toggleEditDialogsVisibility();\r\n },\r\n condition,\r\n viewMode: false,\r\n inLOVMode: true,\r\n enableLOVSelect: true,\r\n });\r\n };\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { getEditableControlClassName } from \"./utils\";\r\n\r\ntype EditComponentProps = {\r\n readonly value: string | number;\r\n readonly pattern?: string;\r\n readonly maxLength?: number;\r\n readonly type?: \"text\" | \"number\";\r\n readonly placeholder?: string;\r\n readonly readOnly?: boolean;\r\n readonly required?: boolean;\r\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\r\n} & QAProps;\r\n\r\nconst EditComponent: FunctionComponent<EditComponentProps> = ({ value = \"\", maxLength, placeholder, pattern, type = \"text\", readOnly = false, required = false, qa, onChange }) => (\r\n <div {...createQA(qa)} className={getEditableControlClassName(required, readOnly)}>\r\n <input autoComplete=\"off\" {...{ value, readOnly, maxLength, placeholder, pattern, type, onChange }} />\r\n </div>\r\n);\r\n\r\ntype EditProps = EditComponentProps & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadonly: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, EditProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadonly: isWorkflowReadOnly(state, hostKey),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, EditProps, EditComponentProps> = ({ isWorkflowReadonly }, _dispatychProps, ownProps) => ({\r\n ...ownProps,\r\n readOnly: isWorkflowReadonly || ownProps.readOnly,\r\n});\r\n\r\nexport const Edit = connect(mapStateToProps, undefined, mergeProps)(EditComponent);\r\n","import React, { ChangeEvent, Fragment, FunctionComponent, useState } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { Divider, Text, VerticalDivider, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { AutoTextArea } from \"./AutoTextArea\";\r\n\r\ntype EditableItemComponentProps = {\r\n readonly isSelected: boolean;\r\n readonly readOnly?: boolean;\r\n readonly textType: string;\r\n readonly caption: string;\r\n readonly message: string;\r\n readonly onClick: () => void;\r\n readonly onCaptionChange: (e: ChangeEvent<HTMLInputElement>) => void;\r\n readonly onConfirmMessageChange: (e: ChangeEvent<HTMLTextAreaElement>) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"editable-item-component\");\r\nconst langTypeAreaClassName = classNames(\"lang-type-area\");\r\nconst captionInputClassName = classNames(\"caption-input\");\r\n\r\nconst EditableItemComponent: FunctionComponent<EditableItemComponentProps> = ({ isSelected, textType, readOnly, caption, message, onClick, onCaptionChange, onConfirmMessageChange }) => {\r\n const [isMouseOver, setIsMouseOver] = useState(false);\r\n\r\n const onMouseOver = () => {\r\n if (!isMouseOver)\r\n setIsMouseOver(true);\r\n };\r\n\r\n const onMouseLeave = () => {\r\n if (isMouseOver)\r\n setIsMouseOver(false);\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <div className={classNames({ \"is-mouse-over\": isMouseOver, \"selected\": isSelected })} {...{ onClick, onMouseOver, onMouseLeave }}>\r\n <div className={langTypeAreaClassName}>\r\n <Text value={textType} title={textType} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </div>\r\n <VerticalDivider />\r\n <input readOnly={readOnly} onChange={onCaptionChange} value={caption} className={captionInputClassName} />\r\n <VerticalDivider />\r\n <AutoTextArea readOnly={readOnly} onChange={onConfirmMessageChange} textValue={message} />\r\n </div>\r\n <Divider />\r\n </Fragment>\r\n );\r\n};\r\n\r\ntype EditableItemProps = EditableItemComponentProps & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, EditableItemProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, EditableItemProps, EditableItemComponentProps> = ({ isWorkflowReadOnly }, _dispatychProps, ownProps) => ({\r\n ...ownProps,\r\n readOnly: isWorkflowReadOnly || ownProps.readOnly,\r\n});\r\n\r\nexport const EditableItem = connect(mapStateToProps, undefined, mergeProps)(EditableItemComponent);\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { getEditableControlClassName } from \"./utils\";\r\n\r\ntype MemoComponentProps = {\r\n readonly value: string;\r\n readonly rows?: number;\r\n readonly readOnly?: boolean;\r\n readonly required?: boolean;\r\n readonly placeholder?: string;\r\n readonly onChange: (e: ChangeEvent<HTMLTextAreaElement>) => void;\r\n} & QAProps;\r\n\r\nconst MemoComponent: FunctionComponent<MemoComponentProps> = ({ value = \"\", rows = 5, required = false, placeholder, readOnly = false, qa, onChange }) => (\r\n <div {...createQA(qa)} className={getEditableControlClassName(required, readOnly)} style={{ height: \"auto\" }}>\r\n <textarea style={{ resize: \"none\" }} {...{ value, readOnly, rows, onChange, placeholder }} />\r\n </div>\r\n);\r\n\r\ntype MemoProps = MemoComponentProps & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MemoProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, MemoProps, MemoComponentProps> = ({ isWorkflowReadOnly }, _dispatchProps, ownProps) => ({\r\n ...ownProps,\r\n readOnly: isWorkflowReadOnly || ownProps.readOnly,\r\n});\r\n\r\nexport const Memo = connect(mapStateToProps, undefined, mergeProps)(MemoComponent);\r\n","import React, { FunctionComponent, KeyboardEvent, MouseEvent, PropsWithChildren, ReactElement } from \"react\";\r\n\r\ntype PropagationStopperProps = PropsWithChildren<{\r\n readonly children: ReactElement | HTMLElement;\r\n}>;\r\n\r\nexport const PropagationStopper: FunctionComponent<PropagationStopperProps> = ({ children }) => {\r\n const stopPropagation = (e: MouseEvent<HTMLDivElement>) => e.stopPropagation();\r\n const stopKeyPropagation = (e: KeyboardEvent<HTMLDivElement>) => e.stopPropagation();\r\n\r\n /*\r\n Tato komponenta se stopováním propagace je bohužel nutná.\r\n Z neznámého důvodu se eventy přenášejí do picassa a tohle byl jedinný 100% způsob, jak je stopnout.\r\n Myslím, že problém je v tom, že si react myslí, že ActivityEditDialog je potomek Activity komponenty,\r\n ale ve skutečnosti tomu tak není. Proto se editační dialog chová korektně při spuštění odjinud.\r\n Pravděpodobně se jedná o \"bug\", který je popsán zde: https://github.com/facebook/react/issues/11387\r\n */\r\n\r\n return (\r\n <div\r\n onMouseDown={stopPropagation}\r\n onMouseMove={stopPropagation}\r\n onMouseOver={stopPropagation}\r\n onClick={stopPropagation}\r\n onWheel={stopPropagation}\r\n onDoubleClick={stopPropagation}\r\n onKeyDown={stopKeyPropagation}\r\n onKeyUp={stopKeyPropagation}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n","import React, { forwardRef, Fragment, useState } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Divider, FontWeight, Icon, Text, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { ForwardRefType, IAppState } from \"@multiweb/types/react\";\r\n\r\nexport type SideListFrameItemComponentProps = {\r\n readonly isSelected: boolean;\r\n readonly headerName: string;\r\n readonly headerLocKey: string;\r\n readonly description1?: string;\r\n readonly description2?: string;\r\n readonly description3?: string;\r\n readonly iconName?: string;\r\n readonly onItemClick: () => void;\r\n readonly headerText: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"side-list-frame-item-component\");\r\nconst headerItemContainer = classNames(\"header-item-container\");\r\nconst iconSection = classNames(\"icon-section\");\r\nconst { valueToEnumValue } = bridge;\r\n\r\nconst SideListFrameItemComponent: ForwardRefType<HTMLDivElement, SideListFrameItemComponentProps> = forwardRef<HTMLDivElement, SideListFrameItemComponentProps>(({\r\n isSelected,\r\n headerName,\r\n description1,\r\n description2,\r\n description3,\r\n iconName,\r\n onItemClick,\r\n headerText,\r\n}, forwardRef) => {\r\n const [isMouseOver, setIsMouseOver] = useState(false);\r\n\r\n const iconCode: IconCode | undefined = valueToEnumValue(IconCode, iconName ?? \"\");\r\n\r\n const handleOnMouseOver = () => {\r\n if (!isMouseOver)\r\n setIsMouseOver(true);\r\n };\r\n\r\n const handleOnMouseLeave = () => {\r\n if (isMouseOver)\r\n setIsMouseOver(false);\r\n };\r\n\r\n return ( // Promyslet, jestli nevyužít pak rozdělení na xxx.tsx a xxxComponent.tsx, ať tu neřešíme ty lokalizace :)\r\n <Fragment>\r\n <div ref={forwardRef} className={classNames({ \"is-mouse-over\": isMouseOver, \"selected\": isSelected })} onClick={onItemClick} onMouseOver={handleOnMouseOver} onMouseLeave={handleOnMouseLeave}>\r\n <Text value={headerText === \"\" ? headerName : headerText} ellipsis whiteSpace={WhiteSpace.nowrap} isTextSelectable={false} fontWeight={FontWeight.bold} />\r\n <div className={headerItemContainer}>\r\n {iconCode &&\r\n <div className={iconSection}>\r\n <Icon iconCode={iconCode}></Icon>\r\n </div>}\r\n {description1 && <Text value={description1} title={description1} disabled ellipsis isTextSelectable={false} whiteSpace={WhiteSpace.nowrap} fontWeight={FontWeight.bold} />}\r\n {description2 && <Text value={description2} title={description2} disabled ellipsis isTextSelectable={false} whiteSpace={WhiteSpace.nowrap} fontWeight={FontWeight.bold} />}\r\n {description3 && <Text value={description3} title={description3} disabled ellipsis isTextSelectable={false} whiteSpace={WhiteSpace.nowrap} fontWeight={FontWeight.bold} />}\r\n </div>\r\n </div>\r\n <Divider />\r\n </Fragment>\r\n );\r\n});\r\n\r\ntype StateProps = Pick<SideListFrameItemComponentProps, \"headerText\">;\r\ntype SideListFrameItemProps = Pick<SideListFrameItemComponentProps, \"headerLocKey\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, SideListFrameItemProps, IAppState> = (state, { headerLocKey }) => ({\r\n headerText: getPrimaryText(state, headerLocKey) ?? \"\",\r\n});\r\n\r\nexport const SideListFrameItem = connect(mapStateToProps, undefined, undefined, { forwardRef: true })(SideListFrameItemComponent);\r\n","import React, { FunctionComponent, PropsWithChildren, RefObject, useEffect, useRef } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, Divider, IconButton } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LOC_ADD, LOC_COPY, LOC_MOVE_DOWN, LOC_MOVE_UP, LOC_REMOVE } from \"UI/UI.React/workflowEditor/locKeys\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { SideListFrameItem } from \"./SideListFrameItem\";\r\n\r\ntype SidePanelComponentProps = PropsWithChildren <{\r\n readonly selectedItemIndex: number;\r\n readonly leftFrameWidth?: number;\r\n readonly rightFrameWidth?: number;\r\n readonly itemsSource: readonly SidePanelItemsSource[];\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly onAddItemClick: () => void;\r\n readonly onRemoveItemClick: () => void;\r\n readonly onCopyItemClick: () => void;\r\n readonly onOrderChange?: (newIndex: number) => void;\r\n readonly addText: string;\r\n readonly removeText: string;\r\n readonly copyText: string;\r\n readonly moveUpText: string;\r\n readonly moveDownText: string;\r\n}>;\r\n\r\nexport type SidePanelItemsSource = {\r\n readonly headerName?: string;\r\n readonly headerLocKey?: string;\r\n readonly description1: string;\r\n readonly description2?: string;\r\n readonly description3?: string;\r\n readonly iconName?: string;\r\n readonly onItemClick: () => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"side-list-frame-component\");\r\nconst frameStyle = classNames();\r\nconst leftFrame = classNames(\"left-side-frame\");\r\nconst rightFrame = classNames(\"right-side-frame\");\r\nconst itemsContainer = classNames(\"items-container\");\r\nconst buttonsContainer = classNames(\"buttons-container\");\r\n\r\nexport const SideListFrameComponent: FunctionComponent<SidePanelComponentProps> = ({\r\n children,\r\n itemsSource,\r\n leftFrameWidth = 40,\r\n rightFrameWidth = 60,\r\n selectedItemIndex,\r\n isWorkflowReadOnly,\r\n onAddItemClick,\r\n onRemoveItemClick,\r\n onCopyItemClick,\r\n onOrderChange,\r\n addText,\r\n removeText,\r\n copyText,\r\n moveUpText,\r\n moveDownText,\r\n}) => {\r\n const hasSourceNoItem = itemsSource.length === 0;\r\n const isMoveUpDisabled = selectedItemIndex === 0 || hasSourceNoItem;\r\n const isMoveDownDisabled = selectedItemIndex === itemsSource.length - 1 || hasSourceNoItem;\r\n\r\n const sideListItemRef = useRef<HTMLDivElement>(null);\r\n\r\n const autoScroll = (ref: RefObject<HTMLDivElement>) => ref.current?.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\r\n\r\n useEffect(() => {\r\n autoScroll(sideListItemRef);\r\n }, [itemsSource]);\r\n\r\n return (\r\n <div className={frameStyle}>\r\n <div className={leftFrame} style={{ width: `${leftFrameWidth}%` }}>\r\n <div className={buttonsContainer}>\r\n <div>\r\n <IconButton iconCode={IconCode.uiPlus} outline={false} disabled={isWorkflowReadOnly} onClick={onAddItemClick} title={addText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n <IconButton iconCode={IconCode.delete} outline={false} disabled={hasSourceNoItem || isWorkflowReadOnly} onClick={onRemoveItemClick} title={removeText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n <IconButton iconCode={IconCode.docCopy} outline={false} disabled={hasSourceNoItem || isWorkflowReadOnly} onClick={onCopyItemClick} title={copyText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n </div>\r\n {onOrderChange && <div>\r\n <IconButton iconCode={IconCode.uiArrowTop} outline={false} disabled={isMoveUpDisabled || isWorkflowReadOnly} onClick={() => onOrderChange(selectedItemIndex - 1)} title={moveUpText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n <IconButton iconCode={IconCode.uiArrowBottom} outline={false} disabled={isMoveDownDisabled || isWorkflowReadOnly} onClick={() => onOrderChange(selectedItemIndex + 1)} title={moveDownText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n </div>}\r\n </div>\r\n <Divider />\r\n <div className={itemsContainer}>\r\n {itemsSource.map(({ headerName = \"\", headerLocKey = \"\", description1, description2, description3, onItemClick, iconName }, index) =>\r\n <SideListFrameItem ref={index === selectedItemIndex ? sideListItemRef : null} key={`frmItm${index}`} isSelected={index === selectedItemIndex} {...{ headerName, headerLocKey, description1, description2, description3, iconName, onItemClick }} />,\r\n )}\r\n </div>\r\n </div>\r\n <div className={rightFrame} style={{ width: `${rightFrameWidth}%` }}>\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\ntype SideListFrameItemProps = Pick<SidePanelComponentProps, \"isWorkflowReadOnly\" | \"addText\" | \"removeText\" | \"copyText\" | \"moveUpText\" | \"moveDownText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<SideListFrameItemProps, WorkflowEditorProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n addText: getPrimaryText(state, LOC_ADD) ?? \"Přidat\",\r\n removeText: getPrimaryText(state, LOC_REMOVE) ?? \"Odebrat\",\r\n copyText: getPrimaryText(state, LOC_COPY) ?? \"Kopírovat\",\r\n moveUpText: getPrimaryText(state, LOC_MOVE_UP) ?? \"Posunout nahoru\",\r\n moveDownText: getPrimaryText(state, LOC_MOVE_DOWN) ?? \"Posunout dolů\",\r\n});\r\n\r\nexport const SideListFrame = connect(mapStateToProps)(SideListFrameComponent);\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\nimport { getEditableControlClassName } from \"./utils\";\r\n\r\nexport type TextLOVEditComponentProps = {\r\n readonly value: string;\r\n readonly maxLength: number;\r\n readonly readOnly?: boolean;\r\n readonly required?: boolean;\r\n readonly isEditable?: boolean;\r\n readonly onClick: () => void;\r\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\r\n} & QAProps;\r\n\r\nexport const TextLOVEditComponent: FunctionComponent<TextLOVEditComponentProps> = ({ value = \"\", maxLength, readOnly = false, required = false, isEditable = true, onClick, qa, onChange }) => (\r\n <div {...createQA(qa)} className={getEditableControlClassName(required, readOnly, \"LOVEdit\")}>\r\n <input type=\"text\" autoComplete=\"off\" readOnly={readOnly || !isEditable} {...{ value, maxLength, onChange }} />\r\n <button disabled={readOnly} className=\"valuepicker\" {...{ onClick }} />\r\n </div>\r\n);\r\n","import { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { createOpenFormModalAction } from \"@multiweb/reactCore/bridge\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createToggleEditDialogsVisibilityAction } from \"../../../actions\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { TextLOVEditComponent, TextLOVEditComponentProps } from \"./TextLOVEditComponent\";\r\nimport { createOnTextLOVEditClick } from \"./utils\";\r\n\r\ntype TextLOVEditProps = {\r\n readonly formName: string;\r\n readonly attributeNames: readonly string[];\r\n readonly onFormClose: (results?: readonly IAttrValue[]) => void;\r\n readonly condition?: string;\r\n} & Omit<TextLOVEditComponentProps, \"onClick\"> & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, TextLOVEditProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n});\r\n\r\ntype DispatchProps = {\r\n openFormModal: typeof createOpenFormModalAction;\r\n toggleEditDialogsVisibility: () => void;\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, TextLOVEditProps> = (dispatch, { hostKey }) => ({\r\n toggleEditDialogsVisibility: () => dispatch(createToggleEditDialogsVisibilityAction(hostKey)),\r\n openFormModal: (params) => dispatch(createOpenFormModalAction(params)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, TextLOVEditProps, TextLOVEditComponentProps> = (\r\n { isWorkflowReadOnly },\r\n { openFormModal, toggleEditDialogsVisibility },\r\n { attributeNames, formName, onFormClose, condition, maxLength, hostKey, value, isEditable, onChange, readOnly, required, qa }) => ({\r\n hostKey,\r\n value,\r\n isEditable,\r\n onChange,\r\n required,\r\n maxLength,\r\n qa,\r\n readOnly: isWorkflowReadOnly || readOnly,\r\n onClick: createOnTextLOVEditClick(toggleEditDialogsVisibility, openFormModal, onFormClose, formName, attributeNames, condition),\r\n});\r\n\r\nexport const TextLOVEdit = connect(mapStateToProps, mapDispatchToProps, mergeProps)(TextLOVEditComponent);\r\n","import { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { CheckBoxComponent, CheckBoxComponentProps } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\n\r\ntype WfCheckBoxProps = {\r\n /** Lokalizační klíč pro title a label. */\r\n readonly textLocKey: string;\r\n} & CheckBoxComponentProps & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly text: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WfCheckBoxProps, IAppState> = (state, { hostKey, textLocKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n text: getPrimaryText(state, textLocKey) ?? \"\",\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, WfCheckBoxProps, CheckBoxComponentProps> = ({ isWorkflowReadOnly, text }, _dispatchProps, ownProps) => ({\r\n ...ownProps,\r\n title: text,\r\n label: text,\r\n disabled: isWorkflowReadOnly || ownProps.disabled,\r\n});\r\n\r\nexport const WfCheckBox = connect(mapStateToProps, undefined, mergeProps)(CheckBoxComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { LocalizationProvider } from \"@multiweb/reactComponents\";\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { QAProps } from \"@multiweb/types/react\";\r\n\r\ntype WfOptionProps = {\r\n readonly locKey: string;\r\n readonly value: string | number | readonly string[] | undefined;\r\n} & QAProps;\r\n\r\nexport const WfOption: FunctionComponent<WfOptionProps> = ({ locKey, value, qa }) => (\r\n <LocalizationProvider {...{ locKey }} >\r\n {({ text }) => (\r\n <option {...{ value, ...createQA(qa) }}>{text}</option>\r\n )}\r\n </LocalizationProvider>\r\n);\r\n","import React, { ChangeEvent, FunctionComponent, PropsWithChildren } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { createQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { getEditableControlClassName } from \"./utils\";\r\n\r\ntype WfSelectComponentProps = PropsWithChildren <{\r\n readonly disabled?: boolean;\r\n readonly name?: string;\r\n readonly required?: boolean;\r\n readonly size?: number;\r\n readonly value: string | number;\r\n readonly onChange?: (e: ChangeEvent<HTMLSelectElement>) => void;\r\n}> & QAProps;\r\n\r\nconst WfSelectComponent: FunctionComponent<WfSelectComponentProps> = ({ children, name, disabled = false, required = false, size, value, qa, onChange }) => (\r\n <div {...createQA(qa)} className={getEditableControlClassName(required, disabled)}>\r\n <select {...{ name, disabled, required, size, value, onChange }}>\r\n {children}\r\n </select>\r\n </div>\r\n);\r\n\r\ntype WfSelectProps = WfSelectComponentProps & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WfSelectProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, undefined, WfSelectProps, WfSelectComponentProps> = ({ isWorkflowReadOnly }, _dispatchProps, ownProps) => ({\r\n ...ownProps,\r\n disabled: isWorkflowReadOnly || ownProps.disabled,\r\n});\r\n\r\nexport const WfSelect = connect(mapStateToProps, undefined, mergeProps)(WfSelectComponent);\r\n","export * from \"./ActivityTransitionsList\";\r\nexport * from \"./AddableListFrameItem\";\r\nexport * from \"./AutoTextArea\";\r\nexport * from \"./BasicDialogItem\";\r\nexport * from \"./Edit\";\r\nexport * from \"./EditableItem\";\r\nexport * from \"./Memo\";\r\nexport * from \"./PropagationStopper\";\r\nexport * from \"./SideListFrame\";\r\nexport * from \"./SideListFrameItem\";\r\nexport * from \"./TextLOVEdit\";\r\nexport * from \"./WfCheckBox\";\r\nexport * from \"./WfOption\";\r\nexport * from \"./WfSelect\";\r\n","import React, { FunctionComponent, PropsWithChildren, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, ComponentSize, Display, JustifyContent, Layout, MessageWindow, ModalWindow, SpacingSize, TextButton, TextColor } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createSetTouchedAction } from \"../../actions\";\r\nimport { LOC_CANCEL, LOC_CLOSE, LOC_DISCARD, LOC_DISCARD_CHANGES, LOC_OK, LOC_SAVE } from \"../../locKeys\";\r\nimport { isWorkflowReadOnly } from \"../../selectors\";\r\nimport { MessageWindowState, WorkflowEditorProps } from \"../../types\";\r\n\r\ntype EditDialogComponentProps = PropsWithChildren<{\r\n /** Šířka okna v pixelech */\r\n readonly width: number;\r\n /** Výška okna v pixelech */\r\n readonly height: number;\r\n /** Minimální šířka okna v pixelech */\r\n readonly minWidth?: number;\r\n /** Minimální výška okna v pixelech */\r\n readonly minHeight?: number;\r\n /** Přepínač informující o tom, zdali je možno kliknout na tlačítko uložit. */\r\n readonly canSave?: boolean;\r\n /** Přepínač určující, zdali je dialog viditelný */\r\n readonly isHidden?: boolean;\r\n /** Přepínač určující, zdali je workflow readonly. */\r\n readonly isWorkflowReadOnly: boolean;\r\n /** Příznak indukující, zdali v editačním dialogu došlo k nějaké změně. */\r\n readonly touched: boolean;\r\n /** Callback volaný při kliknutí na tlačítko Uložit */\r\n readonly onSaveClick: () => Promise<void>;\r\n /** Callback volaný při kliknutí na tlačítko Zrušit */\r\n readonly onCancelClick: () => void;\r\n /** Callback volaný při zavření okna (uzavření si řídí programátor sám, externě, zde se aplikuje navíc timeout, aby se vykonala animace) */\r\n readonly onCloseEdit: () => void;\r\n /** Funkce umožňuje zpětně nastavit, zdali byl editační formulář editovaný či ne. Například po uložení (ale ne zavření) musíme nastavit isTouched na false. */\r\n readonly setTouched: (touched: boolean) => void;\r\n /** Funkce umožňuje nastavit, zdali bylo celé workflow nějakým způsobem editované, nevztahuje se na editační formulář, ale na celé WF. */\r\n readonly setIsWfTouched: (touched: boolean) => void;\r\n readonly closeText: string;\r\n readonly saveText: string;\r\n readonly discardChangesText: string;\r\n}>;\r\n\r\nconst classNames = bemClassNames(\"edit-dialog-component\");\r\nconst editDialogClassName = classNames();\r\nconst containerClassName = classNames(\"content\");\r\n\r\nconst editDialogComponentDataQA = createQA(\"edit-dialog-component\");\r\nconst contentSectionDataQA = createQA(\"content-section\");\r\n\r\nconst EditDialogComponent: FunctionComponent<EditDialogComponentProps> = ({\r\n children,\r\n width,\r\n height,\r\n minWidth = 540,\r\n minHeight = 360,\r\n canSave = true,\r\n isHidden,\r\n isWorkflowReadOnly,\r\n touched,\r\n onSaveClick,\r\n onCancelClick,\r\n onCloseEdit,\r\n setTouched,\r\n setIsWfTouched,\r\n closeText,\r\n saveText,\r\n discardChangesText,\r\n}) => {\r\n const [isDisplayed, setIsDisplayed] = useState(true);\r\n const [isMessageBoxShown, setIsMessageBoxShown] = useState<MessageWindowState>({ isOpen: false, properties: null });\r\n\r\n const closeEdit = () => {\r\n setIsDisplayed(false);\r\n };\r\n\r\n const cancelEdits = () => {\r\n onCancelClick();\r\n closeEdit();\r\n };\r\n\r\n const onCloseMessageWindow = () => {\r\n setIsMessageBoxShown({ isOpen: false, properties: null });\r\n };\r\n\r\n const showSaveErrorMessage = (errorMessage: string) => setIsMessageBoxShown({\r\n isOpen: true,\r\n properties: {\r\n children: errorMessage,\r\n primaryButtonLocKey: LOC_OK,\r\n onCloseMessageWindow,\r\n },\r\n });\r\n\r\n const handleCloseClick = () => {\r\n if (touched)\r\n setIsMessageBoxShown({\r\n isOpen: true,\r\n properties: {\r\n children: discardChangesText,\r\n primaryButtonLocKey: LOC_DISCARD,\r\n secondaryButtonLocKey: LOC_CANCEL,\r\n onPrimaryButtonClick: cancelEdits,\r\n onCloseMessageWindow,\r\n },\r\n });\r\n else\r\n closeEdit();\r\n };\r\n\r\n const handleSaveClick = async () => {\r\n try {\r\n await onSaveClick();\r\n setTouched(false); // po uložení není potřeba vyhazovat hlášku potvrzující záměr zavření Edit okna\r\n setIsWfTouched(true);\r\n } catch (e) {\r\n showSaveErrorMessage(e instanceof Error ? e.message : \"There was an error while saving dialog\");\r\n }\r\n };\r\n\r\n const handleSaveAndCloseClick = async () => {\r\n try {\r\n await onSaveClick();\r\n setIsWfTouched(true);\r\n closeEdit();\r\n } catch (e) {\r\n showSaveErrorMessage(e instanceof Error ? e.message : \"There was an error while saving dialog\");\r\n }\r\n };\r\n\r\n return (\r\n <ModalWindow draggable resizable hasTransparentBackdrop onCloseChange={onCloseEdit} {...{ isDisplayed, isHidden, defaultWidth: width, defaultHeight: height, minWidth, minHeight }}>\r\n <div {...editDialogComponentDataQA} className={editDialogClassName}>\r\n <div {...contentSectionDataQA} className={containerClassName}>\r\n {children}\r\n </div>\r\n <Layout qa={\"buttons-section\"} display={Display.flex} justifyContent={JustifyContent.flexEnd} spacingSize={SpacingSize.m}>\r\n <TextButton onClick={handleCloseClick} qa={\"btnClose\"} text={closeText} size={ComponentSize.large} color={TextColor.colorPrimary} />\r\n <Layout spacingSizeLeft={SpacingSize.s} />\r\n <TextButton onClick={handleSaveClick} qa={\"btnSave\"} text={saveText} disabled={(!canSave || isWorkflowReadOnly) || !touched} size={ComponentSize.large} backgroundColor={ButtonBackgroundColor.buttonPrimary} color={TextColor.whiteBlack} />\r\n <Layout spacingSizeLeft={SpacingSize.s} />\r\n <TextButton onClick={handleSaveAndCloseClick} qa={\"btnSaveAndClose\"} text={`${saveText} & ${closeText}`} disabled={(!canSave || isWorkflowReadOnly) || !touched} size={ComponentSize.large} backgroundColor={ButtonBackgroundColor.buttonPrimary} color={TextColor.whiteBlack} />\r\n </Layout>\r\n </div>\r\n {(isMessageBoxShown.isOpen && isMessageBoxShown.properties !== null) &&\r\n <MessageWindow {...isMessageBoxShown.properties} />\r\n }\r\n </ModalWindow>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<EditDialogComponentProps, \"isWorkflowReadOnly\" | \"closeText\" | \"saveText\" | \"discardChangesText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WorkflowEditorProps, IAppState> = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n closeText: getPrimaryText(state, LOC_CLOSE) ?? \"Zavřít\",\r\n saveText: getPrimaryText(state, LOC_SAVE) ?? \"Uložit\",\r\n discardChangesText: getPrimaryText(state, LOC_DISCARD_CHANGES) ?? \"Opravdu chcete zahodit všechny provedené změny?\",\r\n});\r\n\r\ntype DispatchProps = Pick<EditDialogComponentProps, \"setIsWfTouched\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, WorkflowEditorProps> = (dispatch, { hostKey }) => ({\r\n setIsWfTouched: (touched) => dispatch(createSetTouchedAction(hostKey, touched)),\r\n});\r\n\r\nexport const EditDialog = connect(mapStateToProps, mapDispatchToProps)(EditDialogComponent);\r\n","import { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { IRowData } from \"@multiweb/types/contracts\";\r\nimport { ActionType, TriggerType } from \"./enums\";\r\nimport { IAction, IParticipant, ITrigger } from \"./types\";\r\nimport { UiModelCreator } from \"./UiModelCreator\";\r\nimport { CONST_MENU_IDENTIFIER_AT } from \"./workflowParser/constants\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\n/**\r\n * Vrací defaultní stav akce pro poskytnutý @param actionType.\r\n * @param actionType Typ akce vytvoření.\r\n */\r\nexport const getDefaultActionState = (actionType: ActionType): IAction => {\r\n switch (actionType) {\r\n case ActionType.CallMethod:\r\n return UiModelCreator.createCallMethodAction();\r\n case ActionType.CallScript:\r\n return UiModelCreator.createCallScriptAction();\r\n case ActionType.IncrementValue:\r\n return UiModelCreator.createIncrementNumberAction();\r\n case ActionType.SendMail:\r\n return UiModelCreator.createSendMailAction();\r\n case ActionType.SendSMS:\r\n return UiModelCreator.createSendSmsAction();\r\n case ActionType.SendWFMessage:\r\n return UiModelCreator.createSendWfMessageAction();\r\n case ActionType.SetAttribute:\r\n return UiModelCreator.createSetAttributeAction();\r\n case ActionType.SetObjectAttribute:\r\n return UiModelCreator.createSetObjectAttributeAction();\r\n case ActionType.SetValue:\r\n return UiModelCreator.createSetValueAction();\r\n case ActionType.OpenForm:\r\n return UiModelCreator.createOpenFormAction();\r\n default:\r\n throw new Error(`Default state of action type '${actionType}' is not implemented!`);\r\n }\r\n};\r\n\r\n/**\r\n * Vrací defaultní stav spoučtěče pro poskytnutý @param triggerType.\r\n * @param triggerType Type spouštěče.\r\n */\r\nexport const getDefaultTriggerState = (triggerType: TriggerType): ITrigger => {\r\n switch (triggerType) {\r\n case TriggerType.AttributeDataChange:\r\n return UiModelCreator.createAttributeDataChange();\r\n case TriggerType.Menu:\r\n return UiModelCreator.createMenu();\r\n case TriggerType.NewObject:\r\n return UiModelCreator.createNewObject();\r\n case TriggerType.WfMessage:\r\n return UiModelCreator.createWfMessage();\r\n default:\r\n throw new Error(`Default state of trigger type '${triggerType}' is not implemented!`);\r\n }\r\n};\r\n\r\n/**\r\n * Vytvoří kopii poskytnutého spouštěcě. (Prvky, které jsou unitkátní instanci, tak nekopíruje, ale vytvoří nové.)\r\n * @param triggerToCopy Spouštěč k okopírování.\r\n * @returns Okopírovaný spouštěč.\r\n */\r\nexport const createTriggerCopy = (triggerToCopy: ITrigger): ITrigger => {\r\n if (triggerToCopy.triggerType === TriggerType.Menu) {\r\n const newProperties = { ...triggerToCopy.properties };\r\n newProperties[CONST_MENU_IDENTIFIER_AT] = generateUUID();\r\n return { ...triggerToCopy, properties: newProperties };\r\n }\r\n\r\n return { ...triggerToCopy };\r\n};\r\n\r\n/**\r\n * Vytvoří pole hráčů typu Role z načtených objektů z DB.\r\n * @param roleDataRows Řádky z databáze pro hráče typu Role.\r\n */\r\nexport const createRoleParticipants = (roleDataRows: readonly IRowData[]) => {\r\n const roles: IParticipant[] = [];\r\n\r\n roleDataRows.forEach(roleDataRow => {\r\n const name = roleDataRow[\"Fyzicke_jmeno\"].toString();\r\n const dbID = roleDataRow[\"ID\"].toString();\r\n roles.push(UiModelCreator.createRoleParticipant(name, dbID));\r\n });\r\n\r\n return roles.sort((a, b) => (a.name.localeCompare(b.name)));\r\n};\r\n\r\n/**\r\n * Vytvoří pole hráčů typu User z načtených objektů z DB.\r\n * @param roleDataRows Řádky z databáze pro hráče typu User.\r\n */\r\nexport const createUserParticipants = (userDataRows: readonly IRowData[]) => {\r\n const users: IParticipant[] = [];\r\n\r\n userDataRows.forEach(userDataRow => {\r\n const name = userDataRow[\"Uzivatelske_jmeno\"].toString();\r\n const dbID = userDataRow[\"ID\"].toString();\r\n users.push(UiModelCreator.createUserParticipant(name, dbID));\r\n });\r\n\r\n return users.sort((a, b) => (a.name.localeCompare(b.name)));\r\n};\r\n","// Maximální povolené délky stringů v inputu\r\nexport const MAX_INPUT_LENGTH_XXL = 2048;\r\nexport const MAX_INPUT_LENGTH_XL = 1024;\r\nexport const MAX_INPUT_LENGTH_L = 256;\r\nexport const MAX_INPUT_LENGTH_M = 128;\r\nexport const MAX_INPUT_LENGTH_S = 64;\r\nexport const MAX_INPUT_LENGTH_XS = 32;\r\n","import { TypedObject } from \"@multiweb/types/react\";\r\nimport { WorkflowEditorProps } from \"../../../../../types\";\r\n\r\nexport type ActionPageProps = {\r\n readonly properties: TypedObject<string>;\r\n readonly updateAction: (valueKeyPairs: readonly { key: string; value: string }[]) => void;\r\n} & WorkflowEditorProps;\r\n\r\nexport type TriggerPageProps = {\r\n readonly properties: TypedObject<string>;\r\n readonly updateTrigger: (valueKeyPairs: readonly { key: string; value: string }[]) => void;\r\n} & WorkflowEditorProps;\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, CheckBoxComponentValue, ColSpan, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { LOC_BASIC_CONDITION, LOC_CALLED_FUNCTION, LOC_COMMENT, LOC_STATIC, LOC_TEXT_PARAMETER, LOC_USE_CURRENT_OBJECT, LOC_USE_PARAMETRIC_FORM_OBJECT } from \"../../../../../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../../../../../utils\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT, CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT, CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT, CONST_CALL_METHOD_METHOD_NAME_AT, CONST_CALL_METHOD_STATIC_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Memo, TextLOVEdit, WfCheckBox } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nconst getMethodNameAttrs = [\"Patri_ke_tride.Nazev_tridy\", \"Fyzicky_nazev\", \"Static\"];\r\n\r\nconst classNames = bemClassNames(\"call-method-page\");\r\nconst checkboxesContainer = classNames(\"checkboxes-container\");\r\n\r\nexport const CallMethodPage: FunctionComponent<ActionPageProps> = ({ hostKey, properties, updateAction }) => {\r\n const onMethodNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_CALL_METHOD_METHOD_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const getMethodName = (results?: readonly IAttrValue[]) => {\r\n if (results) {\r\n const isStatic = parseStringToBoolean(results[2].toString(), false);\r\n const methodName = isStatic ? `${results[0]}.${results[1]}` : results[1].toString();\r\n\r\n updateAction([\r\n { key: CONST_CALL_METHOD_METHOD_NAME_AT, value: methodName },\r\n { key: CONST_CALL_METHOD_STATIC_AT, value: results[2].toString() },\r\n ]);\r\n }\r\n };\r\n\r\n const onParamValueChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onInsertParamFormObject = (value: CheckBoxComponentValue) => {\r\n updateAction([{ key: CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onInsertActualObjectChange = (value: CheckBoxComponentValue) => {\r\n updateAction([{ key: CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.two} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption required locKey={LOC_CALLED_FUNCTION}/>\r\n <TextLOVEdit\r\n qa={LOC_CALLED_FUNCTION}\r\n required\r\n formName={\"FRM.CFunkce.CFunkce\"}\r\n attributeNames={getMethodNameAttrs}\r\n value={properties[CONST_CALL_METHOD_METHOD_NAME_AT]}\r\n maxLength={MAX_INPUT_LENGTH_L}\r\n onChange={onMethodNameChange}\r\n onFormClose={getMethodName}\r\n {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <WfCheckBox\r\n qa={LOC_STATIC}\r\n disabled\r\n showFalseAsCrossed\r\n textLocKey={LOC_STATIC}\r\n value={parseStringToBoolean(properties[CONST_CALL_METHOD_STATIC_AT], false)} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_TEXT_PARAMETER}/>\r\n <Memo qa={LOC_TEXT_PARAMETER} value={properties[CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT]} onChange={onParamValueChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <div className={checkboxesContainer}>\r\n <WfCheckBox\r\n qa={LOC_USE_PARAMETRIC_FORM_OBJECT}\r\n showFalseAsCrossed\r\n value={parseStringToBoolean(properties[CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT], false)}\r\n textLocKey={LOC_USE_PARAMETRIC_FORM_OBJECT}\r\n onChange={onInsertParamFormObject} {...{ hostKey }} />\r\n <WfCheckBox\r\n qa={LOC_USE_CURRENT_OBJECT}\r\n showFalseAsCrossed\r\n value={parseStringToBoolean(properties[CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT], true)}\r\n textLocKey={LOC_USE_CURRENT_OBJECT}\r\n onChange={onInsertActualObjectChange} {...{ hostKey }} />\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_BASIC_CONDITION, LOC_COMMENT, LOC_SCRIPT } from \"../../../../../../locKeys\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_CALL_SCRIPT_SCRIPT_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Memo } from \"../../../../components\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport const CallScriptPage: FunctionComponent<ActionPageProps> = ({ properties, updateAction, hostKey }) => {\r\n const onScriptChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_CALL_SCRIPT_SCRIPT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_SCRIPT} />\r\n <Memo qa={LOC_SCRIPT} required value={properties[CONST_CALL_SCRIPT_SCRIPT_AT]} onChange={onScriptChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, ColSpan, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_BASIC_CONDITION, LOC_COMMENT, LOC_DAY, LOC_HOUR, LOC_INCREMENT_TYPE, LOC_MINUTE, LOC_MONTH, LOC_NUMBER, LOC_SECOND, LOC_STEP_CHANGE, LOC_VALUE, LOC_WEEK, LOC_YEAR } from \"../../../../../../locKeys\";\r\nimport { DateTimePrecision } from \"../../../../../../workflowModel/Actions\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_INCREMENT_DATE_TIME_PRECISION_AT, CONST_INCREMENT_DATE_TIME_VALUE_AT, CONST_INCREMENT_NUMBER_ATTR_NAME_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, WfOption, WfSelect } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_S, MAX_INPUT_LENGTH_XS } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport const IncrementValuePage: FunctionComponent<ActionPageProps> = ({ properties, updateAction, hostKey }) => {\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_INCREMENT_NUMBER_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onValueChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_INCREMENT_DATE_TIME_VALUE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onValueTypeChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateAction([{ key: CONST_INCREMENT_DATE_TIME_PRECISION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.three} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.three}>\r\n <Caption required locKey={LOC_VALUE} />\r\n <Edit qa={LOC_VALUE} required maxLength={MAX_INPUT_LENGTH_S} value={properties[CONST_INCREMENT_NUMBER_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_INCREMENT_TYPE} />\r\n <WfSelect qa={LOC_INCREMENT_TYPE} value={properties[CONST_INCREMENT_DATE_TIME_PRECISION_AT]} onChange={onValueTypeChange} {...{ hostKey }}>\r\n <WfOption qa={DateTimePrecision.number} value={DateTimePrecision.number} locKey={LOC_NUMBER} />\r\n <WfOption qa={DateTimePrecision.second} value={DateTimePrecision.second} locKey={LOC_SECOND} />\r\n <WfOption qa={DateTimePrecision.minute} value={DateTimePrecision.minute} locKey={LOC_MINUTE} />\r\n <WfOption qa={DateTimePrecision.hour} value={DateTimePrecision.hour} locKey={LOC_HOUR} />\r\n <WfOption qa={DateTimePrecision.day} value={DateTimePrecision.day} locKey={LOC_DAY} />\r\n <WfOption qa={DateTimePrecision.week} value={DateTimePrecision.week} locKey={LOC_WEEK} />\r\n <WfOption qa={DateTimePrecision.month} value={DateTimePrecision.month} locKey={LOC_MONTH} />\r\n <WfOption qa={DateTimePrecision.year} value={DateTimePrecision.year} locKey={LOC_YEAR} />\r\n </WfSelect>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_STEP_CHANGE} />\r\n <Edit qa={LOC_STEP_CHANGE} type={\"number\"} maxLength={MAX_INPUT_LENGTH_XS} value={properties[CONST_INCREMENT_DATE_TIME_VALUE_AT] || \"1\"} onChange={onValueChange} {...{ hostKey }}/>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.three}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.three}>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, ColSpan, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { LOC_ACTION_FORM, LOC_BASIC_CONDITION, LOC_COMMENT, LOC_FORM, LOC_FORM_CONDITION, LOC_FORM_TYPE, LOC_OBJECT_BINDING, LOC_PRINT_FORM, LOC_REPORT, LOC_REPORT_NAME } from \"../../../../../../locKeys\";\r\nimport { FormType } from \"../../../../../../workflowModel/Actions\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_OPEN_FORM_FORM_CLASS_AT, CONST_OPEN_FORM_FORM_CONDITION_AT, CONST_OPEN_FORM_FORM_TYPE_AT, CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT, CONST_OPEN_FORM_REPORT_NAME_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, TextLOVEdit, WfOption, WfSelect } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nconst getFormClassAttrs = [\"Kod_formulare\"];\r\n\r\nexport const OpenFormPage: FunctionComponent<ActionPageProps> = ({ hostKey, properties, updateAction }) => {\r\n const formType = properties[CONST_OPEN_FORM_FORM_TYPE_AT];\r\n const isReportType = formType === FormType.report;\r\n\r\n const getFormClass = (results: readonly IAttrValue[] | undefined) => {\r\n if (results) {\r\n const newName = results[0].toString(); // Je potřeba opravit na straně akce openFormModal, tady se dostane objekt, na kterém se musí zavolat .toString()\r\n updateAction([{ key: CONST_OPEN_FORM_FORM_CLASS_AT, value: newName }]);\r\n }\r\n };\r\n\r\n const onFormTypeChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateAction([{ key: CONST_OPEN_FORM_FORM_TYPE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onFormClassChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_OPEN_FORM_FORM_CLASS_AT, value: e.target.value }]);\r\n };\r\n\r\n const onReportNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_OPEN_FORM_REPORT_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onMasterLinkToAttrChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT, value: e.target.value }]);\r\n };\r\n\r\n const onFormConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_OPEN_FORM_FORM_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.five} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_FORM_TYPE} />\r\n <WfSelect qa={LOC_FORM_TYPE} value={properties[CONST_OPEN_FORM_FORM_TYPE_AT]} onChange={onFormTypeChange} {...{ hostKey }}>\r\n <WfOption qa={FormType.report} value={FormType.report} locKey={LOC_REPORT} />\r\n <WfOption qa={FormType.form} value={FormType.form} locKey={LOC_FORM} />\r\n <WfOption qa={FormType.printForm} value={FormType.printForm} locKey={LOC_PRINT_FORM} />\r\n <WfOption qa={FormType.actionForm} value={FormType.actionForm} locKey={LOC_ACTION_FORM} />\r\n </WfSelect>\r\n </GridLayoutItem>\r\n {isReportType &&\r\n <GridLayoutItem colSpan={ColSpan.three}>\r\n <Caption required locKey={LOC_REPORT_NAME} />\r\n <Edit qa={LOC_REPORT_NAME} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_OPEN_FORM_REPORT_NAME_AT]} onChange={onReportNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>}\r\n {!isReportType &&\r\n <Fragment>\r\n <GridLayoutItem colSpan={ColSpan.three}>\r\n <Caption required locKey={LOC_FORM} />\r\n <TextLOVEdit\r\n qa={LOC_FORM}\r\n required\r\n value={properties[CONST_OPEN_FORM_FORM_CLASS_AT]}\r\n formName={\"FRM.CFormular.CFormular\"}\r\n attributeNames={getFormClassAttrs}\r\n maxLength={MAX_INPUT_LENGTH_L}\r\n onChange={onFormClassChange}\r\n onFormClose={getFormClass}\r\n {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.five}>\r\n <Caption locKey={LOC_OBJECT_BINDING} />\r\n <Edit qa={LOC_OBJECT_BINDING} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT]} onChange={onMasterLinkToAttrChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.five}>\r\n <Caption locKey={LOC_FORM_CONDITION} />\r\n <Memo qa={LOC_FORM_CONDITION} value={properties[CONST_OPEN_FORM_FORM_CONDITION_AT]} onChange={onFormConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </Fragment>}\r\n <GridLayoutItem colSpan={ColSpan.five}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.five}>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, CheckBoxComponentValue, ColSpan, Divider, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem, Layout, SpacingSize, Tab, Tabs } from \"@multiweb/reactComponents\";\r\nimport { LOC_ADDRESS_TYPE, LOC_ADDRESSEE, LOC_AREA_OF_COMPETENCE, LOC_ATTRIBUTE, LOC_ATTRIBUTE_NAME, LOC_ATTRIBUTE_VALUE, LOC_BASIC_CONDITION, LOC_CLASS, LOC_COMMENT, LOC_CONDITION_PARAMETERS, LOC_CONDTION_SELECTION_DOCUMENTS, LOC_CURRENT_PARTICIPANTS, LOC_CURRENT_USER, LOC_DATA_CONDITION, LOC_DELAYED_SENDING, LOC_DOCUMENT_CLASS, LOC_ENTERED_DIRECTLY, LOC_FOLLOWING_PARTICIPANTS, LOC_FROM_OTHER_RECORDS, LOC_MESSAGE_FORMAT, LOC_MESSAGE_SUBJECT, LOC_OWNER, LOC_REPORT_TEMPLATE, LOC_ROLE, LOC_SUMMARY_EMAIL, LOC_TEXT } from \"../../../../../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../../../../../utils\";\r\nimport { MessageFormat, SendMessageRecipientType } from \"../../../../../../workflowModel/Actions\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SEND_MAIL_ATTR_NAME_AT, CONST_SEND_MAIL_CLASS_NAME_AT, CONST_SEND_MAIL_DATA_CONDITION_AT, CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT, CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_AT, CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT, CONST_SEND_MAIL_FORMAT_AT, CONST_SEND_MAIL_RECIPIENT_AT, CONST_SEND_MAIL_RECIPIENT_TYPE_AT, CONST_SEND_MAIL_REPORT_TEMPLATE_AT, CONST_SEND_MAIL_SEND_POSTPONE_AT, CONST_SEND_MAIL_SUBJECT_AT, CONST_SEND_MAIL_SUMMARY_MAIL_AT, CONST_SEND_MAIL_TEXT_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, WfCheckBox, WfOption, WfSelect } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_XXL } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport type SendMailPageComponentProps = {\r\n readonly messageText: string;\r\n readonly attachmentsText: string;\r\n} & ActionPageProps;\r\n\r\nexport const SendMailPageComponent: FunctionComponent<SendMailPageComponentProps> = ({\r\n properties,\r\n hostKey,\r\n updateAction,\r\n messageText,\r\n attachmentsText,\r\n}) => {\r\n const recipientType = properties[CONST_SEND_MAIL_RECIPIENT_TYPE_AT];\r\n const isRecipientConditionType = recipientType === SendMessageRecipientType.condition;\r\n const isRecipientShown = recipientType !== SendMessageRecipientType.actualUser\r\n && recipientType !== SendMessageRecipientType.owner\r\n && recipientType !== SendMessageRecipientType.participants\r\n && recipientType !== SendMessageRecipientType.nextParticipants\r\n && recipientType !== SendMessageRecipientType.condition;\r\n\r\n const onRecipientTypeChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_RECIPIENT_AT, value: \"\" }, { key: CONST_SEND_MAIL_RECIPIENT_TYPE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onFormatTypeChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_FORMAT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onRecipientChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_RECIPIENT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onClassNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_CLASS_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDataConditionChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_DATA_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onSummarySendChange = (value: CheckBoxComponentValue) => {\r\n updateAction([{ key: CONST_SEND_MAIL_SUMMARY_MAIL_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onSendPostponeChange = (value: CheckBoxComponentValue) => {\r\n updateAction([{ key: CONST_SEND_MAIL_SEND_POSTPONE_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onSubjectChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_SUBJECT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onTextChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_TEXT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onReportTemplateChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_REPORT_TEMPLATE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDocumentClassNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDocumentAttributeChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDocumentConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_DOCUMENT_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDocumentConditionParamsChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.two} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_ADDRESS_TYPE} />\r\n <WfSelect qa={LOC_ADDRESS_TYPE} value={properties[CONST_SEND_MAIL_RECIPIENT_TYPE_AT]} onChange={onRecipientTypeChange} {...{ hostKey }}>\r\n <WfOption qa={SendMessageRecipientType.value} value={SendMessageRecipientType.value} locKey={LOC_ENTERED_DIRECTLY} />\r\n <WfOption qa={SendMessageRecipientType.attributeValue} value={SendMessageRecipientType.attributeValue} locKey={LOC_ATTRIBUTE_VALUE} />\r\n <WfOption qa={SendMessageRecipientType.actualUser} value={SendMessageRecipientType.actualUser} locKey={LOC_CURRENT_USER} />\r\n <WfOption qa={SendMessageRecipientType.owner} value={SendMessageRecipientType.owner} locKey={LOC_OWNER} />\r\n <WfOption qa={SendMessageRecipientType.participants} value={SendMessageRecipientType.participants} locKey={LOC_CURRENT_PARTICIPANTS} />\r\n <WfOption qa={SendMessageRecipientType.nextParticipants} value={SendMessageRecipientType.nextParticipants} locKey={LOC_FOLLOWING_PARTICIPANTS} />\r\n <WfOption qa={SendMessageRecipientType.role} value={SendMessageRecipientType.role} locKey={LOC_ROLE} />\r\n <WfOption qa={SendMessageRecipientType.okruh} value={SendMessageRecipientType.okruh} locKey={LOC_AREA_OF_COMPETENCE} />\r\n <WfOption qa={SendMessageRecipientType.condition} value={SendMessageRecipientType.condition} locKey={LOC_FROM_OTHER_RECORDS} />\r\n </WfSelect>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_MESSAGE_FORMAT} />\r\n <WfSelect qa={LOC_MESSAGE_FORMAT} value={properties[CONST_SEND_MAIL_FORMAT_AT]} onChange={onFormatTypeChange} {...{ hostKey }}>\r\n <option value={MessageFormat.text}>text</option>\r\n <option value={MessageFormat.HTML}>HTML</option>\r\n </WfSelect>\r\n </GridLayoutItem>\r\n {isRecipientShown &&\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption required locKey={LOC_ADDRESSEE} />\r\n <Edit qa={LOC_ADDRESSEE} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_RECIPIENT_AT]} onChange={onRecipientChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n }\r\n {isRecipientConditionType &&\r\n <Fragment>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption required locKey={LOC_CLASS} />\r\n <Edit qa={LOC_CLASS} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_CLASS_NAME_AT]} onChange={onClassNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption required locKey={LOC_ATTRIBUTE_NAME} />\r\n <Edit qa={LOC_ATTRIBUTE_NAME} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_DATA_CONDITION} />\r\n <Edit qa={LOC_DATA_CONDITION} maxLength={MAX_INPUT_LENGTH_XXL} value={properties[CONST_SEND_MAIL_DATA_CONDITION_AT]} onChange={onDataConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </Fragment>\r\n }\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <WfCheckBox qa={LOC_SUMMARY_EMAIL} value={parseStringToBoolean(properties[CONST_SEND_MAIL_SUMMARY_MAIL_AT], false)} textLocKey={LOC_SUMMARY_EMAIL} showFalseAsCrossed onChange={onSummarySendChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <WfCheckBox qa={LOC_DELAYED_SENDING} value={parseStringToBoolean(properties[CONST_SEND_MAIL_SEND_POSTPONE_AT], false)} textLocKey={LOC_DELAYED_SENDING} showFalseAsCrossed onChange={onSendPostponeChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Tabs>\r\n <Tab tabName={messageText}>\r\n <Layout spacingSizeTop={SpacingSize.l}>\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_MESSAGE_SUBJECT} />\r\n <Edit qa={LOC_MESSAGE_SUBJECT} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_SUBJECT_AT]} onChange={onSubjectChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_TEXT} />\r\n <Memo qa={LOC_TEXT} required rows={12} value={properties[CONST_SEND_MAIL_TEXT_AT]} onChange={onTextChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </Layout>\r\n </Tab>\r\n <Tab tabName={attachmentsText}>\r\n <Layout spacingSizeTop={SpacingSize.l}>\r\n <GridLayout columns={GridColumnCount.two} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_REPORT_TEMPLATE} />\r\n <Edit qa={LOC_REPORT_TEMPLATE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_REPORT_TEMPLATE_AT]} onChange={onReportTemplateChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_DOCUMENT_CLASS} />\r\n <Edit qa={LOC_DOCUMENT_CLASS} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT]} onChange={onDocumentClassNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_ATTRIBUTE} />\r\n <Edit qa={LOC_ATTRIBUTE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT]} onChange={onDocumentAttributeChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_CONDTION_SELECTION_DOCUMENTS} />\r\n <Memo qa={LOC_CONDTION_SELECTION_DOCUMENTS} rows={3} value={properties[CONST_SEND_MAIL_DOCUMENT_CONDITION_AT]} onChange={onDocumentConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_CONDITION_PARAMETERS} />\r\n <Edit qa={LOC_CONDITION_PARAMETERS} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT]} onChange={onDocumentConditionParamsChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </Layout>\r\n </Tab>\r\n </Tabs>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two} height={1}>\r\n <Divider />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.two}>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_ATTACHMENTS, LOC_MESSAGE } from \"../../../../../../locKeys\";\r\nimport { SendMailPageComponent, SendMailPageComponentProps } from \"./SendMailPageComponent\";\r\n\r\ntype StateProps = Pick<SendMailPageComponentProps, \"messageText\" | \"attachmentsText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n messageText: getPrimaryText(state, LOC_MESSAGE) ?? \"Zpráva\",\r\n attachmentsText: getPrimaryText(state, LOC_ATTACHMENTS) ?? \"Přílohy\",\r\n});\r\n\r\nexport const SendMailPage = connect(mapStateToProps)(SendMailPageComponent);\r\n","import React, { ChangeEvent, Fragment, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_ADDRESS_TYPE, LOC_ADDRESSEE, LOC_AREA_OF_COMPETENCE, LOC_ATTRIBUTE_NAME, LOC_ATTRIBUTE_VALUE, LOC_BASIC_CONDITION, LOC_CLASS, LOC_COMMENT, LOC_CURRENT_PARTICIPANTS, LOC_CURRENT_USER, LOC_DATA_CONDITION, LOC_ENTERED_DIRECTLY, LOC_FOLLOWING_PARTICIPANTS, LOC_FROM_OTHER_RECORDS, LOC_OWNER, LOC_ROLE, LOC_TEXT } from \"../../../../../../locKeys\";\r\nimport { SendSmsRecipientType } from \"../../../../../../workflowModel/Actions\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SEND_SMS_ATTR_NAME_AT, CONST_SEND_SMS_CLASS_NAME_AT, CONST_SEND_SMS_DATA_CONDITION_AT, CONST_SEND_SMS_RECIPIENT_AT, CONST_SEND_SMS_RECIPIENT_TYPE_AT, CONST_SEND_SMS_TEXT_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, WfOption, WfSelect } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_XXL } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport const SendSmsPage: FunctionComponent<ActionPageProps> = ({ properties, updateAction, hostKey }) => {\r\n const recipientType = properties[CONST_SEND_SMS_RECIPIENT_TYPE_AT];\r\n const isRecipientConditionType = recipientType === SendSmsRecipientType.condition;\r\n const isRecipientShown = recipientType !== SendSmsRecipientType.actualUser\r\n && recipientType !== SendSmsRecipientType.owner\r\n && recipientType !== SendSmsRecipientType.participants\r\n && recipientType !== SendSmsRecipientType.nextParticipants\r\n && recipientType !== SendSmsRecipientType.condition;\r\n\r\n const onRecipientTypeChange = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_RECIPIENT_AT, value: \"\" }, { key: CONST_SEND_SMS_RECIPIENT_TYPE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onRecipientChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_RECIPIENT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onClassNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_CLASS_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDataConditionChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_DATA_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onTextChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_SEND_SMS_TEXT_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_ADDRESS_TYPE} />\r\n <WfSelect qa={LOC_ADDRESS_TYPE} value={properties[CONST_SEND_SMS_RECIPIENT_TYPE_AT]} onChange={onRecipientTypeChange} {...{ hostKey }}>\r\n <WfOption qa={SendSmsRecipientType.value} value={SendSmsRecipientType.value} locKey={LOC_ENTERED_DIRECTLY} />\r\n <WfOption qa={SendSmsRecipientType.attributeValue} value={SendSmsRecipientType.attributeValue} locKey={LOC_ATTRIBUTE_VALUE} />\r\n <WfOption qa={SendSmsRecipientType.actualUser} value={SendSmsRecipientType.actualUser} locKey={LOC_CURRENT_USER} />\r\n <WfOption qa={SendSmsRecipientType.owner} value={SendSmsRecipientType.owner} locKey={LOC_OWNER} />\r\n <WfOption qa={SendSmsRecipientType.participants} value={SendSmsRecipientType.participants} locKey={LOC_CURRENT_PARTICIPANTS} />\r\n <WfOption qa={SendSmsRecipientType.nextParticipants} value={SendSmsRecipientType.nextParticipants} locKey={LOC_FOLLOWING_PARTICIPANTS} />\r\n <WfOption qa={SendSmsRecipientType.role} value={SendSmsRecipientType.role} locKey={LOC_ROLE} />\r\n <WfOption qa={SendSmsRecipientType.okruh} value={SendSmsRecipientType.okruh} locKey={LOC_AREA_OF_COMPETENCE} />\r\n <WfOption qa={SendSmsRecipientType.condition} value={SendSmsRecipientType.condition} locKey={LOC_FROM_OTHER_RECORDS} />\r\n </WfSelect>\r\n </GridLayoutItem>\r\n {isRecipientShown &&\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_ADDRESSEE} />\r\n <Edit qa={LOC_ADDRESSEE} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_SMS_RECIPIENT_AT]} onChange={onRecipientChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n }\r\n {isRecipientConditionType &&\r\n <Fragment>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_CLASS} />\r\n <Edit qa={LOC_CLASS} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_SMS_CLASS_NAME_AT]} onChange={onClassNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_ATTRIBUTE_NAME} />\r\n <Edit qa={LOC_ATTRIBUTE_NAME} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_SMS_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_DATA_CONDITION} />\r\n <Edit qa={LOC_DATA_CONDITION} maxLength={MAX_INPUT_LENGTH_XXL} value={properties[CONST_SEND_SMS_DATA_CONDITION_AT]} onChange={onDataConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </Fragment>\r\n }\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_TEXT} />\r\n <Memo qa={LOC_TEXT} required rows={10} value={properties[CONST_SEND_SMS_TEXT_AT]} onChange={onTextChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, CheckBoxComponentValue, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { LOC_CLASS_OBJECTS, LOC_COMMENT, LOC_CONDITION_FOR_OBJECTS, LOC_CONDITION_FOR_WF_MESSAGE, LOC_CONDITION_PARAMETERS, LOC_OUTGOING_MESSAGE_WF, LOC_PROCESS_TO_SAVE_OBJECT } from \"../../../../../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../../../../../utils\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT, CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT, CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT, CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT, CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, TextLOVEdit, WfCheckBox } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_S, MAX_INPUT_LENGTH_XXL } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nconst getTargetObjectNameAttrs = [\"Nazev_tridy\"];\r\n\r\nexport const SendWfMessagePage: FunctionComponent<ActionPageProps> = ({ properties, hostKey, updateAction }) => {\r\n const getTargetObjectName = (results: readonly IAttrValue[] | undefined) => {\r\n if (results)\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT, value: results[0].toString() }]);\r\n };\r\n\r\n const onMessageNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onTargetObjectNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onObjectsConditionChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onObjectsConditionParamsChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT, value: e.target.value }]);\r\n };\r\n\r\n const onAfterSaveChange = (value: CheckBoxComponentValue) => {\r\n updateAction([{ key: CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_OUTGOING_MESSAGE_WF} />\r\n <Edit qa={LOC_OUTGOING_MESSAGE_WF} required maxLength={MAX_INPUT_LENGTH_S} value={properties[CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT]} onChange={onMessageNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_CLASS_OBJECTS} />\r\n <TextLOVEdit qa={LOC_CLASS_OBJECTS} value={properties[CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT]} formName=\"FRM.CTrida.CTrida\" attributeNames={getTargetObjectNameAttrs} maxLength={MAX_INPUT_LENGTH_L} onChange={onTargetObjectNameChange} onFormClose={getTargetObjectName} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_CONDITION_FOR_OBJECTS} />\r\n <Edit qa={LOC_CONDITION_FOR_OBJECTS} maxLength={MAX_INPUT_LENGTH_XXL} value={properties[CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT]} onChange={onObjectsConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_CONDITION_PARAMETERS} />\r\n <Edit qa={LOC_CONDITION_PARAMETERS} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT]} onChange={onObjectsConditionParamsChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <WfCheckBox qa={LOC_PROCESS_TO_SAVE_OBJECT} showFalseAsCrossed textLocKey={LOC_PROCESS_TO_SAVE_OBJECT} value={parseStringToBoolean(properties[CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT], false)} onChange={onAfterSaveChange} {...{ hostKey }} />\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_CONDITION_FOR_WF_MESSAGE} />\r\n <Memo qa={LOC_CONDITION_FOR_WF_MESSAGE} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_BASIC_CONDITION, LOC_CHANGED_ATTRIBUTE, LOC_COMMENT, LOC_NEW_VALUE } from \"../../../../../../locKeys\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SET_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_ATTRIBUTE_VALUE_EL } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_S } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport const SetAttributePage: FunctionComponent<ActionPageProps> = ({ properties, updateAction, hostKey }) => {\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_ATTRIBUTE_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onValueChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_ATTRIBUTE_VALUE_EL, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_CHANGED_ATTRIBUTE} />\r\n <Edit qa={LOC_CHANGED_ATTRIBUTE} required maxLength={MAX_INPUT_LENGTH_S} value={properties[CONST_SET_ATTRIBUTE_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_NEW_VALUE} />\r\n <Edit qa={LOC_NEW_VALUE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_ATTRIBUTE_VALUE_EL]} onChange={onValueChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { LOC_BASIC_CONDITION, LOC_CHANGED_ATTRIBUTE, LOC_COMMENT, LOC_NEW_VALUE, LOC_NEW_WF_STATE, LOC_SUPERIOR_CLASS, LOC_VALUE_ATTRIBUTE } from \"../../../../../../locKeys\";\r\nimport { getUiWorkflowMutableObject } from \"../../../../../../utils\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, TextLOVEdit } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nconst getNewWfStateAttrs = [\"Stav_dokladu\", \"Kod\"];\r\n\r\nexport const SetObjectAttributePage: FunctionComponent<ActionPageProps> = ({ hostKey, properties, updateAction }) => {\r\n const { workflow } = getUiWorkflowMutableObject(hostKey);\r\n\r\n const getNewWfState = (results: readonly IAttrValue[] | undefined) => {\r\n if (results) {\r\n updateAction([\r\n { key: CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, value: \"Stav_WF\" },\r\n { key: CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL, value: results[1].toString() },\r\n { key: CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT, value: \"WFStavy\" },\r\n { key: CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT, value: \"Kod\" }]);\r\n }\r\n };\r\n\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onValueChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL, value: e.target.value }]);\r\n };\r\n\r\n const onMasterClassNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onMasterAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_CHANGED_ATTRIBUTE}/>\r\n <Edit qa={LOC_CHANGED_ATTRIBUTE} required maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_NEW_VALUE} />\r\n <Edit qa={LOC_NEW_VALUE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL]} onChange={onValueChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_SUPERIOR_CLASS} />\r\n <Edit qa={LOC_SUPERIOR_CLASS} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT]} onChange={onMasterClassNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_VALUE_ATTRIBUTE} />\r\n <Edit qa={LOC_VALUE_ATTRIBUTE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT]} onChange={onMasterAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_NEW_WF_STATE} />\r\n <TextLOVEdit\r\n qa={LOC_NEW_WF_STATE}\r\n value={properties[CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL]}\r\n formName=\"FRM.WFStavy.WFStavy\"\r\n attributeNames={getNewWfStateAttrs}\r\n condition={`(Trida=null or Trida.Nazev_tridy = '${workflow.className}')`}\r\n maxLength={MAX_INPUT_LENGTH_L}\r\n onFormClose={getNewWfState}\r\n isEditable={false}\r\n {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_BASIC_CONDITION, LOC_CHANGED_DATA, LOC_COMMENT, LOC_VALUE } from \"../../../../../../locKeys\";\r\nimport { CONST_ACTION_COMMENT_AT, CONST_ACTION_CONDITION_AT, CONST_SET_VALUE_NAME_AT, CONST_SET_VALUE_VALUE_EL } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, Memo } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_M } from \"../constants\";\r\nimport { ActionPageProps } from \"../types\";\r\n\r\nexport const SetValuePage: FunctionComponent<ActionPageProps> = ({ hostKey, properties, updateAction }) => {\r\n const onNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_VALUE_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onValueChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateAction([{ key: CONST_SET_VALUE_VALUE_EL, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n const onCommentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateAction([{ key: CONST_ACTION_COMMENT_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_CHANGED_DATA} />\r\n <Edit qa={LOC_CHANGED_DATA} required maxLength={MAX_INPUT_LENGTH_M} value={properties[CONST_SET_VALUE_NAME_AT]} onChange={onNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_VALUE} />\r\n <Edit qa={LOC_VALUE} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_SET_VALUE_VALUE_EL]} onChange={onValueChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={properties[CONST_ACTION_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_COMMENT} />\r\n <Memo qa={LOC_COMMENT} value={properties[CONST_ACTION_COMMENT_AT]} onChange={onCommentChange} {...{ hostKey }}/>\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","export * from \"./CallMethodPage\";\r\nexport * from \"./CallScriptPage\";\r\nexport * from \"./IncrementValuePage\";\r\nexport * from \"./OpenFormPage\";\r\nexport * from \"./SendMailPage\";\r\nexport * from \"./SendSmsPage\";\r\nexport * from \"./SendWfMessagePage\";\r\nexport * from \"./SetAttributePage\";\r\nexport * from \"./SetObjectAttributePage\";\r\nexport * from \"./SetValuePage\";\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { IAttrValue } from \"@multiweb/types/contracts\";\r\nimport { LOC_CONDITION, LOC_NAME, LOC_ROLE } from \"../../../../../locKeys\";\r\nimport { IParticipant, WorkflowEditorProps } from \"../../../../../types\";\r\nimport { CONST_DEFINITION_PARTICIPANT_CONDITION_AT, CONST_DEFINITION_PARTICIPANT_NAME_AT, CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT } from \"../../../../../workflowParser/constants\";\r\nimport { Edit, Memo, TextLOVEdit } from \"../../../components\";\r\n\r\ntype DefinitionParticipantEditPage = {\r\n readonly selectedParticipant: IParticipant;\r\n readonly updateDefParticipant: (participant: IParticipant, propertyName: string, newValue: string) => void;\r\n} & WorkflowEditorProps;\r\n\r\nconst getRoleNameAttrs = [\"Fyzicke_jmeno\"];\r\n\r\nexport const DefinitionParticipantsEditPage: FunctionComponent<DefinitionParticipantEditPage> = ({ hostKey, selectedParticipant, updateDefParticipant }) => {\r\n const getRoleName = (results: readonly IAttrValue[] | undefined) => {\r\n if (results)\r\n updateDefParticipant(selectedParticipant, CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT, results[0]?.toString());\r\n };\r\n\r\n const updateDefPartName = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateDefParticipant({ ...selectedParticipant, name: e.target.value }, CONST_DEFINITION_PARTICIPANT_NAME_AT, e.target.value);\r\n };\r\n\r\n const updateCondition = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateDefParticipant(selectedParticipant, CONST_DEFINITION_PARTICIPANT_CONDITION_AT, e.target.value);\r\n };\r\n\r\n const updateRoleName = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateDefParticipant(selectedParticipant, CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT, e.target.value);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_NAME} />\r\n <Edit required maxLength={128} value={selectedParticipant.properties[CONST_DEFINITION_PARTICIPANT_NAME_AT]} onChange={updateDefPartName} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_ROLE} />\r\n <TextLOVEdit\r\n value={selectedParticipant.properties[CONST_DEFINITION_PARTICIPANT_ROLE_NAME_AT]}\r\n formName=\"FRM.CRole.CRole\"\r\n attributeNames={getRoleNameAttrs}\r\n maxLength={255}\r\n onChange={updateRoleName}\r\n onFormClose={getRoleName}\r\n {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_CONDITION} />\r\n <Memo value={selectedParticipant.properties[CONST_DEFINITION_PARTICIPANT_CONDITION_AT]} onChange={updateCondition} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_DESCRIPTION, LOC_NAME } from \"../../../../../locKeys\";\r\nimport { ISet, WorkflowEditorProps } from \"../../../../../types\";\r\nimport { Edit, Memo } from \"../../../components\";\r\n\r\ntype SetEditPageProps = {\r\n readonly selectedSet: ISet;\r\n readonly updateSet: (newSet: ISet) => void;\r\n} & WorkflowEditorProps;\r\n\r\nexport const SetEditPage: FunctionComponent<SetEditPageProps> = ({ hostKey, selectedSet, updateSet }) => {\r\n const onChangeSetName = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n updateSet({ ...selectedSet, name: e.target.value });\r\n };\r\n\r\n const onChangeSetDescription = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n updateSet({ ...selectedSet, description: e.target.value });\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_NAME} />\r\n <Edit required maxLength={64} value={selectedSet.name} onChange={onChangeSetName} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_DESCRIPTION} />\r\n <Memo value={selectedSet.description} onChange={onChangeSetDescription} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_EVENT_ATTRIBUTE, LOC_EXPECTED_ATTRIBUTE_VALUE } from \"../../../../../../locKeys\";\r\nimport { CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT, CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_M } from \"../constants\";\r\nimport { TriggerPageProps } from \"../types\";\r\n\r\nexport const AttributeDataChangePage: FunctionComponent<TriggerPageProps> = ({ properties, updateTrigger, hostKey }) => {\r\n const onAttrNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onConditionChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_EVENT_ATTRIBUTE} />\r\n <Edit required maxLength={MAX_INPUT_LENGTH_M} value={properties[CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT]} onChange={onAttrNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_EXPECTED_ATTRIBUTE_VALUE} />\r\n <Edit maxLength={MAX_INPUT_LENGTH_M} value={properties[CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT]} onChange={onConditionChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","import React, { ChangeEvent, FunctionComponent, useState } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, Caption, CheckBoxComponentValue, ColSpan, Divider, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem, IconButton, Select, SelectBody, SelectItem, Text, VerticalDivider, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { getSupportedLanguages } from \"@multiweb/reactCore/i18n/selectors\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IAttrValue, IconCode, ILanguageExtended } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LOC_ADD, LOC_CHOOSE_FROM_PARTICIPANTS, LOC_CODE_NAME, LOC_CONFIRMATION_MESSAGE, LOC_DISPLAY, LOC_EXAMPLE, LOC_FORM_OPENING, LOC_ICON, LOC_LANGUAGE, LOC_MENU_TEXT, LOC_OBJECT_BINDING, LOC_OTHER, LOC_PARAMETRIC_FORM, LOC_PARENT_MENU_ITEM, LOC_REMOVE, LOC_SETTING_A_VALUE_FOR_THE_PARAMETRIC_FORM, LOC_SUITABLE_FOR_MASS_LAUNCH, LOC_VALIDATE_DEFERRED_REQUIRED_FIELDS, LOC_VALIDATE_THE_RECOMMENDED_FIELDS } from \"../../../../../../locKeys\";\r\nimport { isWorkflowReadOnly } from \"../../../../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../../../../types\";\r\nimport { parseStringToBoolean } from \"../../../../../../utils\";\r\nimport { Text as MenuText } from \"../../../../../../workflowModel/Triggers\";\r\nimport { CONST_MENU_CAPTIONS_EL, CONST_MENU_CODE_NAME, CONST_MENU_CONFIRM_MESSAGES_EL, CONST_MENU_ICON_NAME, CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT, CONST_MENU_MASTER_NODE_AT, CONST_MENU_MULTI_ACTION_ENABLE_AT, CONST_MENU_PARAM_FORM_NAME_AT, CONST_MENU_PARTICIPANTS_SELECTING_AT, CONST_MENU_SET_VALUES_AT, CONST_MENU_VALIDATE_POST_REQ_AT, CONST_MENU_VALIDATE_RECOMMENDED_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, EditableItem, Memo, TextLOVEdit, WfCheckBox } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_L, MAX_INPUT_LENGTH_S } from \"../constants\";\r\nimport { TriggerPageProps } from \"../types\";\r\n\r\ntype MenuPageComponentProps = {\r\n readonly supportedLanguages: readonly ILanguageExtended[];\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly exampleText: string;\r\n readonly addText: string;\r\n readonly languageText: string;\r\n readonly menuText: string;\r\n readonly confirmationMessageText: string;\r\n readonly removeText: string;\r\n} & TriggerPageProps;\r\n\r\nconst getFormClassAttrs = [\"Kod_formulare\"];\r\n\r\nconst classNames = bemClassNames(\"menu-page-component\");\r\nconst languageCell = classNames(\"language-cell\");\r\nconst textInMenuCell = classNames(\"text-in-menu-cell\");\r\nconst confirmationMessageCell = classNames(\"confirmation-message-cell\");\r\nconst headerContainer = classNames(\"header-container\");\r\nconst captionsContainerClassName = classNames(\"captions-container\");\r\nconst contentContainerClassName = classNames(\"content-container\");\r\nconst buttonsContainer = classNames(\"buttons-container\");\r\nconst checkboxesContainer = classNames(\"checkboxes-container\");\r\nconst triggersTabRowClass = classNames(\"triggers-tab-row\");\r\nconst parametricFormClass = classNames(\"parametric-form-input\");\r\nconst objectBindingClass = classNames(\"object-binding-input\");\r\nconst colClass = classNames(\"col\");\r\nconst groupBox = classNames(\"group-box\");\r\nconst groupBoxCaption = classNames(\"group-box-caption\");\r\n\r\nconst MenuPageComponent: FunctionComponent<MenuPageComponentProps> = ({\r\n hostKey,\r\n properties,\r\n supportedLanguages,\r\n isWorkflowReadOnly,\r\n updateTrigger,\r\n exampleText,\r\n addText,\r\n languageText,\r\n menuText,\r\n removeText,\r\n confirmationMessageText,\r\n}) => {\r\n const jsonCaptions = properties[CONST_MENU_CAPTIONS_EL];\r\n const jsonMessages = properties[CONST_MENU_CONFIRM_MESSAGES_EL];\r\n const captions: MenuText[] = jsonCaptions == null ? [] : JSON.parse(jsonCaptions);\r\n const confirmMessages: MenuText[] = jsonMessages == null ? [] : JSON.parse(jsonMessages);\r\n const filteredSupportedLanguages = supportedLanguages.filter(({ code }) => captions.every(caption => code !== caption.lang));\r\n\r\n const [selectedLangIndex, setSelectedLangIndex] = useState<number | undefined>(undefined);\r\n\r\n const onLanguageSelected = (value: string | undefined) => {\r\n captions.push({ lang: value ?? \"\", text: \"\" });\r\n confirmMessages.push({ lang: value ?? \"\", text: \"\" });\r\n updateTrigger([\r\n { key: CONST_MENU_CAPTIONS_EL, value: JSON.stringify(captions) },\r\n { key: CONST_MENU_CONFIRM_MESSAGES_EL, value: JSON.stringify(confirmMessages) },\r\n ]);\r\n setSelectedLangIndex(captions.length - 1);\r\n };\r\n\r\n const onRemoveLanguageButtonClick = () => {\r\n if (selectedLangIndex != null) {\r\n const newCaptions = captions.filter((_caption, index) => index !== selectedLangIndex);\r\n const newConfirmMessages = confirmMessages.filter((_message, index) => index !== selectedLangIndex);\r\n updateTrigger([\r\n { key: CONST_MENU_CAPTIONS_EL, value: JSON.stringify(newCaptions) },\r\n { key: CONST_MENU_CONFIRM_MESSAGES_EL, value: JSON.stringify(newConfirmMessages) },\r\n ]);\r\n setSelectedLangIndex(undefined);\r\n }\r\n };\r\n\r\n const getFormClass = (results: readonly IAttrValue[] | undefined) => {\r\n if (results && results.length > 0)\r\n updateTrigger([{ key: CONST_MENU_PARAM_FORM_NAME_AT, value: results[0].toString() }]);\r\n };\r\n\r\n const onCaptionsChange = (index: number, e: ChangeEvent<HTMLInputElement>) => {\r\n captions[index] = { lang: captions[index].lang, text: e.target.value };\r\n updateTrigger([{ key: CONST_MENU_CAPTIONS_EL, value: JSON.stringify(captions) }]);\r\n };\r\n\r\n const onConfirmMessageChange = (index: number, e: ChangeEvent<HTMLTextAreaElement>) => {\r\n confirmMessages[index] = { lang: confirmMessages[index].lang, text: e.target.value };\r\n updateTrigger([{ key: CONST_MENU_CONFIRM_MESSAGES_EL, value: JSON.stringify(confirmMessages) }]);\r\n };\r\n\r\n const onCodenameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_MENU_CODE_NAME, value: e.target.value }]);\r\n };\r\n\r\n const onIconChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_MENU_ICON_NAME, value: e.target.value }]);\r\n };\r\n\r\n const onChooseFromParticipantsChange = (value: CheckBoxComponentValue) => {\r\n updateTrigger([{ key: CONST_MENU_PARTICIPANTS_SELECTING_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onMultiActionEnableChange = (value: CheckBoxComponentValue) => {\r\n updateTrigger([{ key: CONST_MENU_MULTI_ACTION_ENABLE_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onValidatePostReqChange = (value: CheckBoxComponentValue) => {\r\n updateTrigger([{ key: CONST_MENU_VALIDATE_POST_REQ_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onValidateRecommendedChange = (value: CheckBoxComponentValue) => {\r\n updateTrigger([{ key: CONST_MENU_VALIDATE_RECOMMENDED_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n const onMasterNodeChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_MENU_MASTER_NODE_AT, value: e.target.value }]);\r\n };\r\n\r\n const onParamFormNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_MENU_PARAM_FORM_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onLinkAttrForSelObjChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT, value: e.target.value }]);\r\n };\r\n\r\n const onSetValuesChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateTrigger([{ key: CONST_MENU_SET_VALUES_AT, value: e.target.value }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div>\r\n <div className={groupBoxCaption}>\r\n <Caption locKey={LOC_DISPLAY} />\r\n </div>\r\n <div className={groupBox}>\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div className={triggersTabRowClass}>\r\n <div className={colClass}>\r\n <Caption locKey={LOC_ICON} />\r\n <Edit maxLength={MAX_INPUT_LENGTH_S} value={properties[CONST_MENU_ICON_NAME]} onChange={onIconChange} {...{ hostKey }} />\r\n </div>\r\n <div className={colClass}>\r\n <Caption locKey={LOC_PARENT_MENU_ITEM} />\r\n <Edit placeholder={\"ROOT\"} maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_MENU_MASTER_NODE_AT]} onChange={onMasterNodeChange} {...{ hostKey }} />\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div className={captionsContainerClassName}>\r\n <div className={buttonsContainer}>\r\n <div>\r\n <Select\r\n options={filteredSupportedLanguages.map(({ code }) => {\r\n return { text: code, value: code };\r\n })}\r\n optionsContent={({ opened, onSelect }) => {\r\n return (opened && <SelectBody>\r\n {filteredSupportedLanguages.map(({ code }) =>\r\n <SelectItem key={code} onSelect={() => onSelect(code)} text={code} />,\r\n )}\r\n </SelectBody>);\r\n }}\r\n selectedOptionContent={({ opened, setOpened }) =>\r\n <IconButton\r\n disabled={isWorkflowReadOnly || filteredSupportedLanguages.length === 0}\r\n iconCode={IconCode.uiPlus}\r\n onClick={() => setOpened(!opened)}\r\n title={addText}\r\n backgroundColor={ButtonBackgroundColor.transparent} />\r\n }\r\n value={undefined}\r\n onChange={onLanguageSelected} />\r\n </div>\r\n <IconButton\r\n iconCode={IconCode.delete}\r\n disabled={isWorkflowReadOnly || selectedLangIndex == null}\r\n onClick={onRemoveLanguageButtonClick}\r\n title={removeText}\r\n backgroundColor={ButtonBackgroundColor.transparent} />\r\n </div>\r\n <Divider />\r\n <div className={headerContainer}>\r\n <div className={languageCell}>\r\n <Text value={languageText} title={languageText} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </div>\r\n <VerticalDivider />\r\n <div className={textInMenuCell}>\r\n <Text value={menuText} title={menuText} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </div>\r\n <VerticalDivider />\r\n <div className={confirmationMessageCell}>\r\n <Text value={confirmationMessageText} title={confirmationMessageText} ellipsis whiteSpace={WhiteSpace.nowrap} />\r\n </div>\r\n </div>\r\n <Divider />\r\n <div className={contentContainerClassName}>\r\n {captions.map(({ lang, text }, index) =>\r\n <EditableItem\r\n key={lang}\r\n isSelected={selectedLangIndex === index}\r\n textType={lang}\r\n caption={text}\r\n message={confirmMessages[index].text}\r\n onClick={() => setSelectedLangIndex(index)}\r\n onCaptionChange={(newCaption) => onCaptionsChange(index, newCaption)}\r\n onConfirmMessageChange={(newConfirmMessage) => onConfirmMessageChange(index, newConfirmMessage)}\r\n {...{ hostKey }} />,\r\n )}\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div>\r\n <div className={groupBoxCaption}>\r\n <Caption locKey={LOC_OTHER} />\r\n </div>\r\n <div className={groupBox}>\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_CODE_NAME} />\r\n <Edit maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_MENU_CODE_NAME]} onChange={onCodenameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div className={checkboxesContainer}>\r\n <WfCheckBox textLocKey={LOC_CHOOSE_FROM_PARTICIPANTS} showFalseAsCrossed value={parseStringToBoolean(properties[CONST_MENU_PARTICIPANTS_SELECTING_AT], false)} onChange={onChooseFromParticipantsChange} {...{ hostKey }} />\r\n <WfCheckBox textLocKey={LOC_SUITABLE_FOR_MASS_LAUNCH} showFalseAsCrossed value={parseStringToBoolean(properties[CONST_MENU_MULTI_ACTION_ENABLE_AT], false)} onChange={onMultiActionEnableChange} {...{ hostKey }} />\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div className={checkboxesContainer}>\r\n <WfCheckBox textLocKey={LOC_VALIDATE_DEFERRED_REQUIRED_FIELDS} showFalseAsCrossed value={parseStringToBoolean(properties[CONST_MENU_VALIDATE_POST_REQ_AT], false)} onChange={onValidatePostReqChange} {...{ hostKey }} />\r\n <WfCheckBox textLocKey={LOC_VALIDATE_THE_RECOMMENDED_FIELDS} showFalseAsCrossed value={parseStringToBoolean(properties[CONST_MENU_VALIDATE_RECOMMENDED_AT], false)} onChange={onValidateRecommendedChange} {...{ hostKey }} />\r\n </div>\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div>\r\n <div className={groupBoxCaption}>\r\n <Caption locKey={LOC_FORM_OPENING} />\r\n </div>\r\n <div className={groupBox}>\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <div className={triggersTabRowClass}>\r\n <div className={colClass}>\r\n <div className={parametricFormClass}>\r\n <Caption locKey={LOC_PARAMETRIC_FORM} />\r\n <TextLOVEdit\r\n value={properties[CONST_MENU_PARAM_FORM_NAME_AT]}\r\n maxLength={MAX_INPUT_LENGTH_L}\r\n onChange={onParamFormNameChange}\r\n formName=\"FRM.CFormular.CFormular\"\r\n attributeNames={getFormClassAttrs}\r\n onFormClose={getFormClass}\r\n {...{ hostKey }} />\r\n </div>\r\n </div>\r\n <div className={colClass}>\r\n <div className={objectBindingClass}>\r\n <Caption locKey={LOC_OBJECT_BINDING} />\r\n <Edit maxLength={MAX_INPUT_LENGTH_L} value={properties[CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT]} onChange={onLinkAttrForSelObjChange} {...{ hostKey }} />\r\n </div>\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_SETTING_A_VALUE_FOR_THE_PARAMETRIC_FORM} />\r\n <Memo placeholder={exampleText} value={properties[CONST_MENU_SET_VALUES_AT]} onChange={onSetValuesChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </div>\r\n </div>\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<MenuPageComponentProps, \"supportedLanguages\" | \"isWorkflowReadOnly\" | \"exampleText\" | \"addText\" | \"languageText\" | \"menuText\" | \"confirmationMessageText\" | \"removeText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WorkflowEditorProps, IAppState> = (state, { hostKey }) => ({\r\n supportedLanguages: getSupportedLanguages(state),\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n exampleText: getPrimaryText(state, LOC_EXAMPLE) ?? \"Ukázka: Nazev_Hodnoty1=hodnota1;Nazev_Hodnoty2=hodnota2;...\",\r\n addText: getPrimaryText(state, LOC_ADD) ?? \"\",\r\n languageText: getPrimaryText(state, LOC_LANGUAGE) ?? \"Jazyk\",\r\n menuText: getPrimaryText(state, LOC_MENU_TEXT) ?? \"Text v menu\",\r\n confirmationMessageText: getPrimaryText(state, LOC_CONFIRMATION_MESSAGE) ?? \"Potvrzovací hláška\",\r\n removeText: getPrimaryText(state, LOC_REMOVE) ?? \"Odebrat\",\r\n});\r\n\r\nexport const MenuPage = connect(mapStateToProps)(MenuPageComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { LocalizationProvider, Text } from \"@multiweb/reactComponents\";\r\nimport { LOC_NO_PARAMETERS_NEEDED } from \"../../../../../../locKeys\";\r\n\r\nexport const NewObjectPage: FunctionComponent = () => (\r\n <LocalizationProvider locKey={LOC_NO_PARAMETERS_NEEDED} >\r\n {({ text }) => (\r\n <Text value={text} />\r\n )}\r\n </LocalizationProvider>\r\n);\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, CheckBoxComponentValue, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem } from \"@multiweb/reactComponents\";\r\nimport { LOC_CLOSES_ACTIVITY, LOC_WFMSG_MESSAGE_NAME } from \"../../../../../../locKeys\";\r\nimport { parseStringToBoolean } from \"../../../../../../utils\";\r\nimport { CONST_WFMESSAGE_DEACTIVATING_AT, CONST_WFMESSAGE_MESSAGE_NAME_AT } from \"../../../../../../workflowParser/constants\";\r\nimport { Edit, WfCheckBox } from \"../../../../components\";\r\nimport { MAX_INPUT_LENGTH_M } from \"../constants\";\r\nimport { TriggerPageProps } from \"../types\";\r\n\r\nexport const WfMessagePage: FunctionComponent<TriggerPageProps> = ({ hostKey, properties, updateTrigger }) => {\r\n const onMessageNameChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTrigger([{ key: CONST_WFMESSAGE_MESSAGE_NAME_AT, value: e.target.value }]);\r\n };\r\n\r\n const onDeactivationgChange = (value: CheckBoxComponentValue) => {\r\n updateTrigger([{ key: CONST_WFMESSAGE_DEACTIVATING_AT, value: value ? \"true\" : \"false\" }]);\r\n };\r\n\r\n return (\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption required locKey={LOC_WFMSG_MESSAGE_NAME} />\r\n <Edit required maxLength={MAX_INPUT_LENGTH_M} value={properties[CONST_WFMESSAGE_MESSAGE_NAME_AT]} onChange={onMessageNameChange} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <WfCheckBox\r\n showFalseAsCrossed\r\n onChange={onDeactivationgChange}\r\n textLocKey={LOC_CLOSES_ACTIVITY}\r\n value={parseStringToBoolean(properties[CONST_WFMESSAGE_DEACTIVATING_AT], false)}\r\n {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n );\r\n};\r\n","export * from \"./AttributeDataChangePage\";\r\nexport * from \"./MenuPage\";\r\nexport * from \"./NewObjectPage\";\r\nexport * from \"./WfMessagePage\";\r\n","export * from \"./actionsPages\";\r\nexport * from \"./DefinitionParticipantsEditPage\";\r\nexport * from \"./SetEditPage\";\r\nexport * from \"./triggersPages\";\r\n","import React from \"react\";\r\n\r\nimport { ActionType, TriggerType } from \"../../../../enums\";\r\nimport { ActivityTransition, IAction, ITrigger } from \"../../../../types\";\r\nimport { Workflow } from \"../../../../workflowModel\";\r\nimport {\r\n AttributeDataChangePage,\r\n CallMethodPage,\r\n CallScriptPage,\r\n IncrementValuePage,\r\n MenuPage,\r\n NewObjectPage,\r\n OpenFormPage,\r\n SendMailPage,\r\n SendSmsPage,\r\n SendWfMessagePage,\r\n SetAttributePage,\r\n SetObjectAttributePage,\r\n SetValuePage,\r\n WfMessagePage,\r\n} from \"./pages\";\r\nimport { ActionPageProps, TriggerPageProps } from \"./pages/types\";\r\n\r\nexport const actionPageRenderer = (hostKey: string, { actionType, properties }: IAction, updateAction: ActionPageProps[\"updateAction\"]) => {\r\n switch (actionType) {\r\n case ActionType.CallMethod:\r\n return <CallMethodPage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.CallScript:\r\n return <CallScriptPage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.IncrementValue:\r\n return <IncrementValuePage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SendMail:\r\n return <SendMailPage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SendSMS:\r\n return <SendSmsPage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SendWFMessage:\r\n return <SendWfMessagePage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SetAttribute:\r\n return <SetAttributePage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SetObjectAttribute:\r\n return <SetObjectAttributePage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.SetValue:\r\n return <SetValuePage {...{ hostKey, properties, updateAction }} />;\r\n case ActionType.OpenForm:\r\n return <OpenFormPage {...{ hostKey, properties, updateAction }} />;\r\n default:\r\n throw new Error(`Action page of type \"${actionType}\" is not implemented!`);\r\n }\r\n};\r\n\r\nexport const triggerPageRenderer = (hostKey: string, { triggerType, properties }: ITrigger, updateTrigger: TriggerPageProps[\"updateTrigger\"]) => {\r\n switch (triggerType) {\r\n case TriggerType.AttributeDataChange:\r\n return <AttributeDataChangePage {...{ hostKey, properties, updateTrigger }} />;\r\n case TriggerType.Menu:\r\n return <MenuPage {...{ hostKey, properties, updateTrigger }} />;\r\n case TriggerType.NewObject:\r\n return <NewObjectPage />;\r\n case TriggerType.WfMessage:\r\n return <WfMessagePage {...{ hostKey, properties, updateTrigger }} />;\r\n default:\r\n throw new Error(`Trigger page of type \"${triggerType}\" is not implemented!`);\r\n }\r\n};\r\n\r\n/**\r\n * Vrací seznam všech propojení vedoucích do specifikované aktivity v rámci všech sad.\r\n * @param activityId Id aktivity, pro kterou se mají hledat všechna propojení vedoucí do ní.\r\n */\r\nexport const getTransitionsToActivity = (activityId: string, workflow: Workflow): readonly ActivityTransition[] => {\r\n const toActivityTransitions: ActivityTransition[] = [];\r\n\r\n for (const activity of workflow.activities) {\r\n for (const transition of activity.transitions) {\r\n if (transition.to === activityId) {\r\n toActivityTransitions.push({\r\n transitionName: transition.name,\r\n transitionCondition: transition.condition,\r\n otherActivityName: activity.name,\r\n });\r\n }\r\n }\r\n }\r\n\r\n return toActivityTransitions;\r\n};\r\n\r\n/**\r\n * Vrací seznam všech propojení vedoucích ze specifikované aktivity v rámci všech sad.\r\n * @param activityId Id aktivity, pro kterou se mají hledat všechna propojení vedoucí z ní.\r\n */\r\nexport const getTransitionsFromActivity = (activityId: string, workflow: Workflow): readonly ActivityTransition[] => {\r\n const activity = workflow.activities.find(act => act.id === activityId);\r\n\r\n if (activity == null)\r\n throw new Error(`Activity of id '${activityId}' does not exist! Could not get transitions from activity.`);\r\n\r\n return activity.transitions.map(transition => ({\r\n transitionName: transition.name,\r\n otherActivityName: workflow.activities.find(act => act.id === transition.to)?.name ?? \"\",\r\n transitionCondition: transition.condition,\r\n }));\r\n};\r\n","import React, { ChangeEvent, Fragment, FunctionComponent, useState } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Caption, Display, Layout, MessageWindow, SpacingSize, Text } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { getDefaultActionState } from \"../../../../creatorMethodsUtils\"; // kvůli prevenci vůči cyklické závislosti je nutné importovat z creatorMethods a ne přes utils\r\nimport { ActionType } from \"../../../../enums\";\r\nimport { LOC_ACTION_TYPE, LOC_ATTRIBUTE_CHANGE, LOC_CANCEL, LOC_CHANGE_OF_BINDING_ATTRIBUTE, LOC_DELETE, LOC_DELETE_SELECTED_ACTION, LOC_EMAIL, LOC_EXECUTING_METHOD, LOC_FORM_OPENING, LOC_INCREMENTING_VALUE, LOC_NO_ACTION_CREATED, LOC_SENDING_OF_WF_MESSAGE, LOC_SETTING_VALUE, LOC_SMS, LOC_START_OF_SCRIPT } from \"../../../../locKeys\";\r\nimport { IAction, WorkflowEditorProps } from \"../../../../types\";\r\nimport { SideListFrame, SidePanelItemsSource, WfOption, WfSelect } from \"../../components\";\r\nimport { actionPageRenderer } from \"./utils\";\r\n\r\ntype ActionsTabComponentProps = {\r\n readonly actions: readonly IAction[];\r\n readonly selectedRecordIndex: number;\r\n readonly updateActions: (newActions: readonly IAction[]) => void;\r\n readonly noActionCreatedText: string;\r\n readonly deleteSelectedActionText: string;\r\n} & WorkflowEditorProps;\r\n\r\nexport const ActionsTabComponent: FunctionComponent<ActionsTabComponentProps> = ({ hostKey, actions, selectedRecordIndex, updateActions, noActionCreatedText, deleteSelectedActionText }) => {\r\n const [selectedActionIndex, setSelectedActionIndex] = useState(selectedRecordIndex);\r\n const [isMessageWindowShown, setIsMessageWindowShown] = useState(false);\r\n const selectedAction = actions[selectedActionIndex];\r\n\r\n const actionsItemsSource: readonly SidePanelItemsSource[] = actions.map((action, index) => {\r\n return { headerLocKey: action.locKey, description1: action.name, description2: action.properties[\"condition\"], description3: action.properties[\"comment\"], onItemClick: () => setSelectedActionIndex(index) };\r\n });\r\n\r\n const onCloseMessageWindow = () => {\r\n setIsMessageWindowShown(false);\r\n };\r\n\r\n const changeActionType = (e: ChangeEvent<HTMLSelectElement>) => {\r\n const newActions = [...actions];\r\n const actionType: ActionType = e.target.value as ActionType;\r\n newActions[selectedActionIndex] = getDefaultActionState(actionType);\r\n updateActions(newActions);\r\n };\r\n\r\n const addAction = () => {\r\n const newActions = [...actions, getDefaultActionState(ActionType.CallMethod)];\r\n updateActions(newActions);\r\n setSelectedActionIndex(newActions.length - 1);\r\n };\r\n\r\n const removeAction = () => {\r\n const newActions = actions.filter((_action, actionIndex) => actionIndex !== selectedActionIndex);\r\n updateActions(newActions);\r\n setSelectedActionIndex(selectedActionIndex - 1 >= 0 ? selectedActionIndex - 1 : 0);\r\n };\r\n\r\n const copyAction = () => {\r\n const newActions = [...actions];\r\n newActions.splice(selectedActionIndex + 1, 0, { ...selectedAction });\r\n updateActions(newActions);\r\n setSelectedActionIndex(selectedActionIndex + 1);\r\n };\r\n\r\n const updateSelectedAction = (valueKeyPairs: readonly { key: string; value: string }[]) => {\r\n const newActions = [...actions];\r\n const newProperties = { ...selectedAction.properties };\r\n\r\n for (const { key, value } of valueKeyPairs)\r\n newProperties[key] = value;\r\n\r\n newActions[selectedActionIndex] = { ...selectedAction, properties: newProperties };\r\n updateActions(newActions);\r\n };\r\n\r\n const changeSelectedActionOrder = (newIndex: number) => {\r\n const newActions = [...actions];\r\n newActions[selectedActionIndex] = newActions[newIndex];\r\n newActions[newIndex] = selectedAction;\r\n updateActions(newActions);\r\n setSelectedActionIndex(newIndex);\r\n };\r\n\r\n const handleDeleteButtonClick = () => {\r\n setIsMessageWindowShown(true);\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <SideListFrame\r\n hostKey={hostKey}\r\n selectedItemIndex={selectedActionIndex}\r\n itemsSource={actionsItemsSource}\r\n onAddItemClick={addAction}\r\n onRemoveItemClick={handleDeleteButtonClick}\r\n onCopyItemClick={copyAction}\r\n onOrderChange={changeSelectedActionOrder}>\r\n {selectedAction ?\r\n <Fragment>\r\n <Layout spacingSizeBottom={SpacingSize.m} display={Display.block}>\r\n <Caption locKey={LOC_ACTION_TYPE} />\r\n <WfSelect qa={\"wf-select-action-type\"} value={selectedAction.actionType} onChange={changeActionType} {...{ hostKey }}>\r\n <WfOption qa={ActionType.CallMethod} value={ActionType.CallMethod} locKey={LOC_EXECUTING_METHOD} />\r\n <WfOption qa={ActionType.CallScript} value={ActionType.CallScript} locKey={LOC_START_OF_SCRIPT} />\r\n <WfOption qa={ActionType.IncrementValue} value={ActionType.IncrementValue} locKey={LOC_INCREMENTING_VALUE} />\r\n <WfOption qa={ActionType.SendMail} value={ActionType.SendMail} locKey={LOC_EMAIL} />\r\n <WfOption qa={ActionType.SendSMS} value={ActionType.SendSMS} locKey={LOC_SMS} />\r\n <WfOption qa={ActionType.SendWFMessage} value={ActionType.SendWFMessage} locKey={LOC_SENDING_OF_WF_MESSAGE} />\r\n <WfOption qa={ActionType.SetAttribute} value={ActionType.SetAttribute} locKey={LOC_ATTRIBUTE_CHANGE} />\r\n <WfOption qa={ActionType.SetObjectAttribute} value={ActionType.SetObjectAttribute} locKey={LOC_CHANGE_OF_BINDING_ATTRIBUTE} />\r\n <WfOption qa={ActionType.SetValue} value={ActionType.SetValue} locKey={LOC_SETTING_VALUE} />\r\n <WfOption qa={ActionType.OpenForm} value={ActionType.OpenForm} locKey={LOC_FORM_OPENING} />\r\n </WfSelect>\r\n </Layout>\r\n {actionPageRenderer(hostKey, selectedAction, updateSelectedAction)}\r\n </Fragment> :\r\n <div style={{ height: \"100%\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\r\n <Text value={noActionCreatedText} />\r\n </div>}\r\n </SideListFrame>\r\n {isMessageWindowShown &&\r\n <MessageWindow\r\n primaryButtonLocKey={LOC_DELETE}\r\n secondaryButtonLocKey={LOC_CANCEL}\r\n onPrimaryButtonClick={removeAction}\r\n {...{ onCloseMessageWindow }}\r\n >\r\n {deleteSelectedActionText}\r\n </MessageWindow>}\r\n </Fragment>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<ActionsTabComponentProps, \"noActionCreatedText\" | \"deleteSelectedActionText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n noActionCreatedText: getPrimaryText(state, LOC_NO_ACTION_CREATED) ?? \"Žádná akce zatím nebyla vytvořena...\",\r\n deleteSelectedActionText: getPrimaryText(state, LOC_DELETE_SELECTED_ACTION) ?? \"Opravdu chcete smazat vybranou akci?\",\r\n});\r\n\r\nexport const ActionsTab = connect(mapStateToProps)(ActionsTabComponent);\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, CheckBoxComponentValue, ColSpan, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { LOC_ACTIVITY_NAME, LOC_BASIC_CONDITION, LOC_DESCRIPTION, LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY, LOC_KILL_CHILDREN, LOC_ONLINE_EVALUATED_CONDITION, LOC_ORDER, LOC_SHOW_IN_WF_HISTORY, LOC_TYPE_FOR_JOIN, LOC_TYPE_FOR_SPLIT } from \"../../../../locKeys\";\r\nimport { IActivity, WorkflowEditorProps } from \"../../../../types\";\r\nimport { ActivityType, IOTransitionType } from \"../../../../workflowModel\";\r\nimport { Edit, Memo, WfCheckBox, WfSelect } from \"../../components\";\r\n\r\ntype ActivityPropertiesTabProps = {\r\n readonly activity: IActivity;\r\n readonly updateActivity: (newActivity: IActivity) => void;\r\n} & WorkflowEditorProps;\r\n\r\nexport const ActivityPropertiesTab: FunctionComponent<ActivityPropertiesTabProps> = ({ activity, hostKey, updateActivity }) => {\r\n const changeActivityName = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateActivity({ ...activity, name: e.target.value });\r\n };\r\n\r\n const changeActivityOrder = (e: ChangeEvent<HTMLInputElement>) => {\r\n const newValue = Number(e.target.value);\r\n\r\n if (isNaN(newValue))\r\n return;\r\n\r\n updateActivity({ ...activity, order: newValue });\r\n };\r\n\r\n const changeActivityDescription = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateActivity({ ...activity, description: e.target.value });\r\n };\r\n\r\n const changeActivityKillChildren = (value: CheckBoxComponentValue) => {\r\n updateActivity({ ...activity, killChildren: value ?? false });\r\n };\r\n\r\n const changeActivityCondition = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateActivity({ ...activity, condition: e.target.value });\r\n };\r\n\r\n const changeActivityRunCondition = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateActivity({ ...activity, runCondition: e.target.value });\r\n };\r\n\r\n const changeActivityShowInWfHistory = (value: CheckBoxComponentValue) => {\r\n updateActivity({ ...activity, showInWfHistory: value ?? false });\r\n };\r\n\r\n const changeActivityInheritParticipants = (value: CheckBoxComponentValue) => {\r\n updateActivity({ ...activity, inheritParticipants: value ?? false });\r\n };\r\n\r\n const changeActivityInputTransType = (e: ChangeEvent<HTMLSelectElement>) => {\r\n updateActivity({ ...activity, inputTransType: e.target.value as IOTransitionType });\r\n };\r\n\r\n return (\r\n <Layout spacingSizeHorizontal={SpacingSize.m} spacingSizeTop={SpacingSize.m}>\r\n <GridLayout columns={GridColumnCount.eight} gap={GridGapSize.two}>\r\n <GridLayoutItem colSpan={ColSpan.seven}>\r\n <Caption locKey={LOC_ACTIVITY_NAME} />\r\n <Edit qa={LOC_ACTIVITY_NAME} maxLength={64} value={activity.name} onChange={changeActivityName} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.one}>\r\n <Caption locKey={LOC_ORDER} />\r\n <Edit qa={LOC_ORDER} type={\"number\"} value={activity.order} onChange={changeActivityOrder} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.four}>\r\n <Caption locKey={LOC_TYPE_FOR_JOIN} />\r\n <WfSelect qa={LOC_TYPE_FOR_JOIN} disabled={activity.type === ActivityType.start || activity.type === ActivityType.end} value={activity.inputTransType} onChange={changeActivityInputTransType} {...{ hostKey }} >\r\n <option>{IOTransitionType.and}</option>\r\n <option>{IOTransitionType.xor}</option>\r\n </WfSelect>\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.four}>\r\n <Caption locKey={LOC_TYPE_FOR_SPLIT} />\r\n <Edit qa={LOC_TYPE_FOR_SPLIT} readOnly maxLength={255} value={activity.outputTransType} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.eight}>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo qa={LOC_BASIC_CONDITION} value={activity.condition} onChange={changeActivityCondition} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.eight}>\r\n <Caption locKey={LOC_ONLINE_EVALUATED_CONDITION} />\r\n <Memo qa={LOC_ONLINE_EVALUATED_CONDITION} value={activity.runCondition} onChange={changeActivityRunCondition} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.four}>\r\n <WfCheckBox qa={LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY} disabled={activity.type === ActivityType.start || activity.type === ActivityType.end} textLocKey={LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY} showFalseAsCrossed value={activity.inheritParticipants} onChange={changeActivityInheritParticipants} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.four}>\r\n <WfCheckBox qa={LOC_KILL_CHILDREN} textLocKey={LOC_KILL_CHILDREN} showFalseAsCrossed value={activity.killChildren} onChange={changeActivityKillChildren} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.eight}>\r\n <WfCheckBox qa={LOC_SHOW_IN_WF_HISTORY} textLocKey={LOC_SHOW_IN_WF_HISTORY} showFalseAsCrossed value={activity.showInWfHistory} onChange={changeActivityShowInWfHistory} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem colSpan={ColSpan.eight}>\r\n <Caption locKey={LOC_DESCRIPTION} />\r\n <Memo qa={LOC_DESCRIPTION} value={activity.description} onChange={changeActivityDescription} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </Layout>\r\n );\r\n};\r\n","/**\r\n * Typ popisující zápstupce výsledku hledání aktivity ve workflow.\r\n */\r\nexport type ActivityPoistionSearchResult = {\r\n readonly setName: string;\r\n readonly setId: string;\r\n readonly activityName: string;\r\n readonly activityId: string;\r\n};\r\n","import React, { FunctionComponent, useRef } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nimport { FontWeight, Layout, SpacingSize, Text } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames, invariant, useClickOutsideWatcher } from \"@multiweb/reactUtils\";\r\nimport { MODAL_ROOT_ID } from \"../../../../../constants\";\r\nimport { ActivityPoistionSearchResult } from \"../../types\";\r\n\r\nexport type SearchResultsModalProps = {\r\n readonly results: readonly ActivityPoistionSearchResult[];\r\n readonly left: number;\r\n readonly top: number;\r\n readonly onOuterSpaceClick: () => void;\r\n readonly onSearchResultClick: (setId: string, selectedActivityId: string) => void;\r\n};\r\n\r\nconst classNames = bemClassNames(\"search-results-modal-component\");\r\nconst modalClass = classNames();\r\nconst searchResultItemClass = classNames(\"search-result-item\");\r\n\r\nexport const SearchResultsModal: FunctionComponent<SearchResultsModalProps> = ({ results, left, top, onSearchResultClick, onOuterSpaceClick }) => {\r\n const modalRoot = document.getElementById(MODAL_ROOT_ID);\r\n invariant(modalRoot, `[ModalWindow] Cannot render modal window because element with id ${MODAL_ROOT_ID} is undefined.`);\r\n\r\n const modalRef = useRef<HTMLDivElement>(null);\r\n useClickOutsideWatcher([ modalRef ], onOuterSpaceClick);\r\n\r\n return createPortal(\r\n <div ref={modalRef} className={modalClass} style={{ left, top }}>\r\n {results.map(({ setId, activityId, setName, activityName }) =>\r\n <div key={setId + activityId} onClick={() => onSearchResultClick(setId, activityId)} className={searchResultItemClass}>\r\n <Text fontWeight={FontWeight.bold} value={activityName} />\r\n <Layout spacingSizeLeft={SpacingSize.xxs} />\r\n <Text value={`(${setName})`} />\r\n </div>,\r\n )}\r\n </div>, modalRoot);\r\n};\r\n","export * from \"./SearchResultsModal\";\r\n","export enum DividerPosition {\r\n left = \"left\",\r\n right = \"right\",\r\n none = \"none\",\r\n}\r\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\";\r\n\r\nimport { VerticalDivider } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { DividerPosition } from \"./enums\";\r\n\r\nexport type ToolbarSectionProps = PropsWithChildren<{\r\n dividerPosition?: DividerPosition;\r\n}>;\r\n\r\nconst classNames = bemClassNames(\"toolbar-section\");\r\nconst wfToolbarSection = classNames();\r\n\r\nexport const ToolbarSection: FunctionComponent<ToolbarSectionProps> = ({ children, dividerPosition = DividerPosition.right }) => (\r\n <Fragment>\r\n {dividerPosition === DividerPosition.left && <VerticalDivider />}\r\n <div className={wfToolbarSection} >\r\n {children}\r\n </div>\r\n {dividerPosition === DividerPosition.right && <VerticalDivider />}\r\n </Fragment>\r\n);\r\n","export * from \"./enums\";\r\nexport * from \"./ToolbarSection\";\r\n","export * from \"./searchResultsModal\";\r\nexport * from \"./toolbarSection\";\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { MessageWindow, Text } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { EMPTY_OBJECT } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateDefinitionParticipants } from \"../../../actions\";\r\nimport { ParticipantType } from \"../../../enums\";\r\nimport { LOC_CANCEL, LOC_DEFINITION_PARTICIPANT, LOC_DELETE, LOC_DELETE_SELECTED_PARTICIPANT, LOC_NEW_PARTICIPANT, LOC_NO_DEFINITION_PARTICIPANT_CREATED } from \"../../../locKeys\";\r\nimport { getDefinitionParticipants, isEditDialogHidden } from \"../../../selectors\";\r\nimport { IActivity, IParticipant, WorkflowEditorProps } from \"../../../types\";\r\nimport { UiWorkflow } from \"../../../UiWorkflow\";\r\nimport { getUiWorkflowMutableObject } from \"../../../utils\";\r\nimport { DefinitionParticipant } from \"../../../workflowModel/Participants\";\r\nimport { SideListFrame, SidePanelItemsSource } from \"../components\";\r\nimport { EditDialog } from \"../EditDialog\";\r\nimport { DefinitionParticipantsEditPage } from \"./tabs/pages\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\ntype DefinitionParticipantsEditDialogComponentProps = {\r\n readonly isHidden: boolean;\r\n readonly definitionParticipants: readonly IParticipant[];\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly updateDefinitionParticipants: (newDefinitionParticipants: readonly IParticipant[], newActivites?: readonly IActivity[]) => void;\r\n readonly onCloseEdit: () => void;\r\n readonly noDefinitionParticipantCreatedText: string;\r\n readonly deleteSelectedParticipantText: string;\r\n readonly newParticipantText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst DefinitionParticipantsEditDialogComponent: FunctionComponent<DefinitionParticipantsEditDialogComponentProps> = ({ hostKey, isHidden, definitionParticipants, uiWorkflow, updateDefinitionParticipants, onCloseEdit, noDefinitionParticipantCreatedText, deleteSelectedParticipantText, newParticipantText }) => {\r\n const [selectedParticipantIndex, setSelectedParticipantIndex] = useState(0);\r\n const [isMessageWindowShown, setIsMessageWindowShown] = useState(false);\r\n const [touched, setTouched] = useState(false);\r\n const selectedParticipant = definitionParticipants[selectedParticipantIndex];\r\n\r\n const actionsItemsSource: readonly SidePanelItemsSource[] = definitionParticipants.map(({ name, properties }, index) => {\r\n return { headerName: name == \"\" ? newParticipantText : name, description1: properties[\"roleName\"], description2: properties[\"condition\"], onItemClick: () => setSelectedParticipantIndex(index) };\r\n });\r\n\r\n const handleUpdateDefinitionParticipants = (newParticipants: readonly IParticipant[]) => {\r\n updateDefinitionParticipants(newParticipants);\r\n !touched && setTouched(true);\r\n };\r\n\r\n const onCloseMessageWindow = () => {\r\n setIsMessageWindowShown(false);\r\n };\r\n\r\n const addParticipant = () => {\r\n const newParticipants = [...definitionParticipants, {\r\n name: \"\",\r\n identifier: generateUUID(),\r\n locKey: LOC_DEFINITION_PARTICIPANT,\r\n participantType: ParticipantType.DefinitionParticipant,\r\n properties: EMPTY_OBJECT,\r\n }];\r\n handleUpdateDefinitionParticipants(newParticipants);\r\n setSelectedParticipantIndex(newParticipants.length - 1);\r\n };\r\n\r\n const removeParticipant = () => {\r\n const newParticipants = definitionParticipants.filter((_participant, actionIndex) => actionIndex !== selectedParticipantIndex);\r\n handleUpdateDefinitionParticipants(newParticipants);\r\n setSelectedParticipantIndex(selectedParticipantIndex - 1 >= 0 ? selectedParticipantIndex - 1 : 0);\r\n };\r\n\r\n const copyParticipant = () => {\r\n const newParticipants = [...definitionParticipants];\r\n newParticipants.splice(selectedParticipantIndex + 1, 0, { ...selectedParticipant, identifier: generateUUID() });\r\n handleUpdateDefinitionParticipants(newParticipants);\r\n setSelectedParticipantIndex(selectedParticipantIndex + 1);\r\n };\r\n\r\n const updateDefParticipant = (participant: IParticipant, propertyName: string, newValue: string) => {\r\n const newParticipants = [...definitionParticipants];\r\n const newProperties = { ...participant.properties };\r\n newProperties[propertyName] = newValue;\r\n const newParticipant = { ...participant, properties: newProperties };\r\n newParticipants[selectedParticipantIndex] = newParticipant;\r\n handleUpdateDefinitionParticipants(newParticipants);\r\n };\r\n\r\n const onSaveClick = async () => {\r\n const defParticipantsToDelete = uiWorkflow.workflow.definitionParticipants.filter(wfDefParticipant =>\r\n definitionParticipants.every(defParticipant => defParticipant.identifier !== wfDefParticipant.identifier),\r\n );\r\n\r\n defParticipantsToDelete.forEach(participantToDelete => {\r\n uiWorkflow.workflow.removeDefinitionParticipant(participantToDelete.identifier);\r\n });\r\n\r\n definitionParticipants.forEach(defPartip => {\r\n const oldPartip = uiWorkflow.workflow.definitionParticipants.find(wfDefPartip => wfDefPartip.identifier === defPartip.identifier);\r\n if (oldPartip) {\r\n oldPartip.condition = defPartip.properties[\"condition\"] ?? \"\";\r\n oldPartip.roleName = defPartip.properties[\"roleName\"] ?? \"\";\r\n oldPartip.name = defPartip.properties[\"name\"];\r\n } else {\r\n uiWorkflow.workflow.definitionParticipants.push(new DefinitionParticipant(\r\n defPartip.identifier,\r\n defPartip.properties[\"name\"],\r\n defPartip.properties[\"condition\"] ?? \"\",\r\n defPartip.properties[\"roleName\"] ?? \"\"));\r\n }\r\n });\r\n\r\n // Musím aktualizovat hlavně aktivity a definiční hráče, aby se jim pozměnil identifier na novou hodnotu.\r\n const { activities, definitionParticipants: oldDefParticipants } = uiWorkflow.workflowModel;\r\n updateDefinitionParticipants(oldDefParticipants, activities);\r\n };\r\n\r\n const onCancelClick = () => {\r\n handleUpdateDefinitionParticipants(uiWorkflow.workflowModel.definitionParticipants);\r\n };\r\n\r\n const canSaveDefinitionParticipants = () => {\r\n const hasEveryParticipantName = definitionParticipants.every(({ name }) => name != null && name.length > 0);\r\n const areParticipantsNamesUnique = () => {\r\n const participantsNames = definitionParticipants.map(part => part.name);\r\n const distinctNames = [...new Set(participantsNames)];\r\n return participantsNames.length === distinctNames.length;\r\n };\r\n\r\n const noParticipantsNameIsSystemOrOwner = () => definitionParticipants.every(({ name }) => name !== ParticipantType.System && name !== ParticipantType.Owner);\r\n\r\n return hasEveryParticipantName && areParticipantsNamesUnique() && noParticipantsNameIsSystemOrOwner();\r\n };\r\n\r\n const handleDeleteButtonClick = () => {\r\n setIsMessageWindowShown(true);\r\n };\r\n\r\n return (\r\n <EditDialog width={800} height={600} canSave={canSaveDefinitionParticipants()} {...{ hostKey, isHidden, touched, onCloseEdit, onSaveClick, onCancelClick, setTouched }}>\r\n <SideListFrame\r\n hostKey={hostKey}\r\n selectedItemIndex={selectedParticipantIndex}\r\n itemsSource={actionsItemsSource}\r\n onAddItemClick={addParticipant}\r\n onRemoveItemClick={handleDeleteButtonClick}\r\n onCopyItemClick={copyParticipant}>\r\n {selectedParticipant ?\r\n <DefinitionParticipantsEditPage {...{ hostKey, selectedParticipant, updateDefParticipant }} /> :\r\n <div style={{ height: \"100%\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\r\n <Text value={noDefinitionParticipantCreatedText} />\r\n </div>\r\n }\r\n </SideListFrame>\r\n {isMessageWindowShown &&\r\n <MessageWindow\r\n primaryButtonLocKey={LOC_DELETE}\r\n secondaryButtonLocKey={LOC_CANCEL}\r\n onPrimaryButtonClick={removeParticipant}\r\n {...{ onCloseMessageWindow }}\r\n >\r\n {deleteSelectedParticipantText}\r\n </MessageWindow>}\r\n </EditDialog>\r\n );\r\n};\r\n\r\ntype DefinitionParticipantsEditDialogProps = Pick<DefinitionParticipantsEditDialogComponentProps, \"hostKey\" | \"onCloseEdit\">;\r\ntype StateProps = Pick<DefinitionParticipantsEditDialogComponentProps, \"isHidden\" | \"definitionParticipants\" | \"noDefinitionParticipantCreatedText\" | \"deleteSelectedParticipantText\" | \"newParticipantText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, DefinitionParticipantsEditDialogProps, IAppState> = (state, { hostKey }) => ({\r\n isHidden: isEditDialogHidden(state, hostKey),\r\n definitionParticipants: getDefinitionParticipants(state, hostKey),\r\n noDefinitionParticipantCreatedText: getPrimaryText(state, LOC_NO_DEFINITION_PARTICIPANT_CREATED) ?? \"Žádný definiční hráč nebyl zatím vytvořen...\",\r\n deleteSelectedParticipantText: getPrimaryText(state, LOC_DELETE_SELECTED_PARTICIPANT) ?? \"Opravdu chcete smazat vybraného hráče?\",\r\n newParticipantText: getPrimaryText(state, LOC_NEW_PARTICIPANT) ?? \"Nový hráč\",\r\n});\r\n\r\ntype DispatchProps = Pick<DefinitionParticipantsEditDialogComponentProps, \"updateDefinitionParticipants\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, DefinitionParticipantsEditDialogProps> = (dispatch, { hostKey }) => ({\r\n updateDefinitionParticipants: (newParticipants, newActivities) => dispatch(createUpdateDefinitionParticipants(hostKey, newParticipants, newActivities)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, DefinitionParticipantsEditDialogProps, DefinitionParticipantsEditDialogComponentProps> = (\r\n stateProps,\r\n dispatchProps,\r\n ownProps,\r\n) => ({\r\n ...stateProps,\r\n ...dispatchProps,\r\n ...ownProps,\r\n uiWorkflow: getUiWorkflowMutableObject(ownProps.hostKey),\r\n});\r\n\r\nexport const DefinitionParticipantsEditDialog = connect(mapStateToProps, mapDispatchToProps, mergeProps)(DefinitionParticipantsEditDialogComponent);\r\n","import { IDataReaderClient } from \"@multiweb/clients/dataReader\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { ParticipantType } from \"../../../../enums\";\r\nimport { IParticipant } from \"../../../../types\";\r\nimport { UiModelCreator } from \"../../../../UiModelCreator\";\r\n\r\nconst { getDataReaderClient } = bridge;\r\n\r\n/**\r\n * Vrací seznam vybratelných hráčů pro aktivitu.\r\n * @param choosableParticipants Seznam všech existujících hráčů.\r\n * @param selectedParticipants Seznam hráčů, které už aktivita obsahuje.\r\n * @param keyword Klíčové slovo podle kterého se mají hráči filtrovat.\r\n */\r\nexport const getAvailableParticipants = (choosableParticipants: readonly IParticipant[], selectedParticipants: readonly IParticipant[], keyword: string): IParticipant[] => {\r\n const lowerCaseKeyword = keyword.toLowerCase();\r\n\r\n return choosableParticipants.filter(participant => {\r\n const isNotSelected = selectedParticipants.every(selectedParticipant => selectedParticipant.identifier !== participant.identifier);\r\n const isUserOrRole = () => participant.participantType === ParticipantType.Role || participant.participantType === ParticipantType.User;\r\n const includesNameKeyword = () => participant.name.toLowerCase().includes(lowerCaseKeyword);\r\n\r\n return isNotSelected && (isUserOrRole() || includesNameKeyword());\r\n });\r\n};\r\n\r\n/**\r\n * Funkce slouží pro načtení všech hráčů v daném rozsahu a informuje i o tom, jestli lze v načítání pokračovat.\r\n * @param startIndex Počáteční index, od kterého se mají data načíst.\r\n * @param count Počet dat k načtení.\r\n * @param keyword Klíčové slovo, které se použije v podmínce pro název hráče.\r\n * @returns Tuple kde na prvním místě je pole hráčů a na druhém místě je boolean informující o tom, zdali lze načíst další hráče.\r\n */\r\nexport const loadParticipants = async (startIndex: number, count: number, keyword: string): Promise<[IParticipant[], boolean]> => {\r\n const dataReaderClient = getDataReaderClient();\r\n const [roles, hasMoreRoles] = await batchifyParticipants(count, (newCount) => loadRoles(startIndex, newCount, keyword, dataReaderClient));\r\n\r\n if (hasMoreRoles)\r\n return [roles, true];\r\n\r\n const [users, hasMoreUsers] = await batchifyParticipants(count, (newCount) => loadUsers(startIndex, newCount, keyword, dataReaderClient));\r\n\r\n return [[...roles, ...users], hasMoreUsers];\r\n};\r\n\r\n/** Načte seznam hráčů, kteří jsou typu Role. */\r\nconst loadRoles = async (startIndex: number, count: number, keyword: string, dataReaderClient: IDataReaderClient): Promise<IParticipant[]> => {\r\n const condition = !keyword ? \"\" : ` and (Fyzicke_jmeno like '%${keyword}%')`;\r\n const dataRows = await dataReaderClient.getDataRowsWithParams(\r\n \"CRole\",\r\n [\"Fyzicke_jmeno\"],\r\n (\"ID <> 0\" + condition),\r\n { orderBy: [\"Fyzicke_jmeno\"], startIndex, count },\r\n );\r\n\r\n return dataRows.map(dataRow => UiModelCreator.createRoleParticipant(dataRow[\"Fyzicke_jmeno\"].toString(), dataRow[\"ID\"].toString()));\r\n};\r\n\r\n/** Načte seznam hráčů, kteří jsou typu User. */\r\nconst loadUsers = async (startIndex: number, count: number, keyword: string, dataReaderClient: IDataReaderClient): Promise<IParticipant[]> => {\r\n const condition = !keyword ? \"\" : ` and (Uzivatelske_jmeno like '%${keyword}%')`;\r\n const dataRows = await dataReaderClient.getDataRowsWithParams(\r\n \"CUzivatel\",\r\n [\"Uzivatelske_jmeno\"],\r\n (\"ID <> 0\" + condition),\r\n { orderBy: [\"Uzivatelske_jmeno\"], startIndex, count },\r\n );\r\n\r\n return dataRows.map(dataRow => UiModelCreator.createUserParticipant(dataRow[\"Uzivatelske_jmeno\"].toString(), dataRow[\"ID\"].toString()));\r\n};\r\n\r\n/**\r\n * Vrátí požadovaný počet hráčů ze serveru a s tím i informaci, zdali je možno načíst další hráče.\r\n * @param count Počet hráčů ke stažení\r\n * @param getParticipants Funkce pro načtení daného počtu hráčů.\r\n * @returns Tuple kde na prvním místě je pole hráčů a na druhém místě je boolean informující o tom, zdali lze načíst další hráče.\r\n */\r\nconst batchifyParticipants = async (count: number, getParticipants: (count: number) => Promise<IParticipant[]>): Promise<[IParticipant[], boolean]> => {\r\n const participants = await getParticipants(count + 1);\r\n\r\n if (participants.length === count + 1) { // Načetli jsme count + 1 věcí, to znamená, že můžeme loadovat dál.\r\n participants.pop();\r\n return [participants, true];\r\n }\r\n\r\n return [participants, false];\r\n};\r\n","import { FunctionComponent, ReactElement, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\r\n\r\nimport { FetchingState } from \"@multiweb/types/react\";\r\nimport { IParticipant } from \"../../../../types\";\r\nimport { UiModelCreator } from \"../../../../UiModelCreator\";\r\nimport { getAvailableParticipants, loadParticipants } from \"./utils\";\r\n\r\ntype ParticipantsProviderComponentChildrenProps = {\r\n readonly items: readonly IParticipant[];\r\n readonly canLoadNextItems: boolean;\r\n readonly fetchingState: FetchingState;\r\n readonly loadNextItems: (count: number) => void;\r\n};\r\n\r\nexport type ParticipantsProviderComponentProps = {\r\n readonly count: number;\r\n readonly definitionParticipants: readonly IParticipant[];\r\n readonly selectedParticipants: readonly IParticipant[];\r\n readonly keyword: string;\r\n readonly children: (props: ParticipantsProviderComponentChildrenProps) => ReactElement;\r\n};\r\n\r\nconst DEBOUNCE_DURATION_MS = 300;\r\n\r\nconst DEFAULT_PARTICIPANTS_ARRAY: readonly IParticipant[] = [\r\n UiModelCreator.createSystemParticipant(),\r\n UiModelCreator.createOwnerParticipant(),\r\n];\r\n\r\nexport const ParticipantsProviderComponent: FunctionComponent<ParticipantsProviderComponentProps> = ({ definitionParticipants, selectedParticipants, keyword, count, children }) => {\r\n const isMounted = useRef<boolean | null>(null);\r\n const isFirstRender = useRef<boolean>(true);\r\n const [canLoadNextItems, setHasNextItems] = useState<boolean>(true);\r\n const [fetchingState, setFetchingState] = useState<FetchingState>(FetchingState.success);\r\n const [availableParticipants, setAvailableParticipants] = useState<readonly IParticipant[]>([...DEFAULT_PARTICIPANTS_ARRAY, ...definitionParticipants]);\r\n // Zabraňuje to probliknutí seznamu hráčů, protože se stihnou vyfiltrovat definiční hráči před načtením dat z DB.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const filteredParticipants = useMemo<readonly IParticipant[]>(() => getAvailableParticipants(availableParticipants, selectedParticipants, keyword), [selectedParticipants, availableParticipants]);\r\n\r\n const handleLoadParticipants = useCallback(async (startIndex: number, count: number, keyword: string, reload: boolean = false) => {\r\n setFetchingState(FetchingState.request);\r\n const [newParticipants, hasMore] = await loadParticipants(startIndex, count, keyword);\r\n\r\n if (isMounted.current === false)\r\n return;\r\n\r\n setAvailableParticipants(reload ?\r\n [...DEFAULT_PARTICIPANTS_ARRAY, ...definitionParticipants, ...newParticipants]\r\n : (previousParticipants) => [...previousParticipants, ...newParticipants]);\r\n setHasNextItems(hasMore);\r\n setFetchingState(FetchingState.success);\r\n }, [definitionParticipants]);\r\n\r\n const loadNextItems = useCallback((count: number) => {\r\n const startIndex = availableParticipants.length - DEFAULT_PARTICIPANTS_ARRAY.length - definitionParticipants.length;\r\n handleLoadParticipants(startIndex, count, keyword);\r\n }, [availableParticipants, definitionParticipants, keyword, handleLoadParticipants]);\r\n\r\n useEffect(() => {\r\n isMounted.current = true;\r\n return () => {\r\n isMounted.current = false;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n let canceled = false;\r\n\r\n setTimeout(() => {\r\n if (!canceled && !isFirstRender.current)\r\n handleLoadParticipants(0, count, keyword, true);\r\n }, DEBOUNCE_DURATION_MS);\r\n\r\n return () => {\r\n canceled = true;\r\n isFirstRender.current = false;\r\n };\r\n }, [count, keyword, handleLoadParticipants]);\r\n\r\n return children({ items: filteredParticipants, loadNextItems, fetchingState, canLoadNextItems });\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getDefinitionParticipants } from \"../../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../../types\";\r\nimport { ParticipantsProviderComponent, ParticipantsProviderComponentProps } from \"./ParticipantsProviderComponent\";\r\n\r\ntype StateProps = Pick<ParticipantsProviderComponentProps, \"definitionParticipants\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WorkflowEditorProps, IAppState> = (state, { hostKey }) => ({\r\n definitionParticipants: getDefinitionParticipants(state, hostKey),\r\n});\r\n\r\nexport const ParticipantsProvider = connect(mapStateToProps)(ParticipantsProviderComponent);\r\n","export * from \"./ParticipantsProvider\";\r\n","import React, { ChangeEvent, FunctionComponent, useState } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\nimport { AutoSizer, CellMeasurerCacheParams, List, ListRowProps } from \"react-virtualized\";\r\n\r\nimport { ButtonBackgroundColor, Divider, Icon, IconColor, IconTextButton, InfiniteVirtualizedList, Layout, SpacingSize, VerticalDivider } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames, createSkeletonRowsKeys } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState, KeyGeneratorType, RowRenderer } from \"@multiweb/types/react\";\r\nimport { LOC_EDIT_DEFINITION_PARTICIPANTS, LOC_NO_ITEMS_FOUND, LOC_SEARCH } from \"../../../../locKeys\";\r\nimport { IParticipant, WorkflowEditorProps } from \"../../../../types\";\r\nimport { DividerPosition, ToolbarSection } from \"../../../toolbarPanel/components\";\r\nimport { AddableListFrameItem } from \"../../components\";\r\nimport { DefinitionParticipantsEditDialog } from \"../DefinitionParticipantsEditDialog\";\r\nimport { ParticipantsProvider } from \"../participantsProvider\";\r\n\r\ntype ParticipantsTabProps = {\r\n readonly selectedParticipants: readonly IParticipant[];\r\n readonly updateParticipants: (newParticipants: readonly IParticipant[]) => void;\r\n readonly editDefinitionParticipantsText: string;\r\n readonly searchText: string;\r\n readonly noItemsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst classNames = bemClassNames(\"participants-tab-component\");\r\nconst frame = classNames();\r\nconst infiniteListClass = classNames(\"infinite-list\");\r\nconst buttonsContainer = classNames(\"buttons-container\");\r\nconst participantItemsContainer = classNames(\"participant-items-container\");\r\nconst participantsFrame = classNames(\"participants-frame\");\r\nconst searchInputClass = classNames(\"search-input\");\r\nconst noRowsMessageClass = classNames(\"no-rows-message\");\r\n\r\n// Konstanty pro InfiniteVirtualizedList\r\nconst ROW_HEIGHT = 34;\r\nconst NUMBER_OF_ITEMS_TO_LOAD = 50;\r\nconst CELL_MEASURE_CACHE_PARAMS: CellMeasurerCacheParams = { fixedHeight: true, defaultHeight: ROW_HEIGHT, fixedWidth: true };\r\nconst createSkeletonRowsKeysObjects = (count: number) => createSkeletonRowsKeys(count).map((identifier) => ({ identifier } as IParticipant));\r\nconst keyGenerator: KeyGeneratorType<IParticipant> = (item) => item.identifier;\r\n\r\nexport const ParticipantsTabComponent: FunctionComponent<ParticipantsTabProps> = ({ hostKey, selectedParticipants, updateParticipants, editDefinitionParticipantsText, searchText, noItemsText }) => {\r\n const [showEditDialog, setShowEditDialog] = useState(false);\r\n const [keyword, setKeyword] = useState(\"\");\r\n const [scrollToIndex, setScrollToIndex] = useState<number | undefined>(undefined);\r\n\r\n const onAddClick = (newParticipant: IParticipant) => {\r\n updateParticipants([...selectedParticipants, newParticipant]);\r\n };\r\n\r\n const onInputChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n setKeyword(e.target.value);\r\n setScrollToIndex(0);\r\n };\r\n\r\n const onEditClick = () => {\r\n setShowEditDialog(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setShowEditDialog(false);\r\n };\r\n\r\n const onRemoveClick = (participantIndex: number) => {\r\n const newParticipants = selectedParticipants.filter((_participant, index) => index !== participantIndex);\r\n updateParticipants(newParticipants);\r\n };\r\n\r\n const onScroll = () => {\r\n setScrollToIndex(undefined);\r\n };\r\n\r\n const itemRenderer: RowRenderer<IParticipant> = (participant: IParticipant): JSX.Element => (\r\n <AddableListFrameItem onActionButtonClick={() => onAddClick(participant)} style={{ height: ROW_HEIGHT }} showAdd {...{ hostKey, participant }} />\r\n );\r\n\r\n const rowRenderer = ({ index, key, style }: ListRowProps): JSX.Element => (\r\n <AddableListFrameItem onActionButtonClick={() => onRemoveClick(index)} participant={selectedParticipants[index]} showAdd={false} {...{ style, hostKey, key }} />\r\n );\r\n\r\n const noRowsRenderer = (): JSX.Element => (\r\n <div className={noRowsMessageClass}>{noItemsText}</div>\r\n );\r\n\r\n return (\r\n <div className={frame}>\r\n <div className={buttonsContainer}>\r\n <ToolbarSection dividerPosition={DividerPosition.none}>\r\n <IconTextButton title={editDefinitionParticipantsText} outline={false} value={editDefinitionParticipantsText} iconCode={IconCode.edit} onClick={onEditClick} backgroundColor={ButtonBackgroundColor.transparent} />\r\n </ToolbarSection>\r\n <Layout>\r\n <ToolbarSection dividerPosition={DividerPosition.left}>\r\n <Layout spacingSizeHorizontal={SpacingSize.xs}>\r\n <Icon iconCode={IconCode.uiSearch} color={IconColor.grey1} />\r\n <input className={searchInputClass} value={keyword} onChange={onInputChange} placeholder={searchText} />\r\n </Layout>\r\n </ToolbarSection>\r\n </Layout>\r\n </div>\r\n <Divider />\r\n <div className={participantItemsContainer}>\r\n <div className={participantsFrame}>\r\n <ParticipantsProvider count={NUMBER_OF_ITEMS_TO_LOAD} {...{ selectedParticipants, hostKey, keyword }}>\r\n {({ items, canLoadNextItems, fetchingState, loadNextItems }) => (\r\n <InfiniteVirtualizedList\r\n dataCountToLoad={NUMBER_OF_ITEMS_TO_LOAD}\r\n cellMeasureCacheParams={CELL_MEASURE_CACHE_PARAMS}\r\n createSkeletonRowsKeys={createSkeletonRowsKeysObjects}\r\n {...{ items, fetchingState, scrollToIndex, itemRenderer, noRowsRenderer, canLoadNextItems, loadNextItems, onScroll, keyGenerator }}\r\n />)}\r\n </ParticipantsProvider>\r\n </div>\r\n <VerticalDivider />\r\n <div className={participantsFrame}>\r\n <AutoSizer>\r\n {({ height, width }) => (\r\n <List\r\n className={infiniteListClass}\r\n rowCount={selectedParticipants.length}\r\n rowHeight={ROW_HEIGHT}\r\n {...{ rowRenderer, height, width }}\r\n />\r\n )}\r\n </AutoSizer>\r\n </div>\r\n </div>\r\n {showEditDialog && <DefinitionParticipantsEditDialog {...{ hostKey, onCloseEdit }} />}\r\n </div>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<ParticipantsTabProps, \"editDefinitionParticipantsText\" | \"searchText\" | \"noItemsText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, WorkflowEditorProps, IAppState> = (state) => ({\r\n editDefinitionParticipantsText: getPrimaryText(state, LOC_EDIT_DEFINITION_PARTICIPANTS) ?? \"Editovat definiční hráče\",\r\n searchText: getPrimaryText(state, LOC_SEARCH) ?? \"Vyhledat...\",\r\n noItemsText: getPrimaryText(state, LOC_NO_ITEMS_FOUND) ?? \"K použitému filtru se nepodařilo najít žádný záznam.\",\r\n});\r\n\r\nexport const ParticipantsTab = connect(mapStateToProps)(ParticipantsTabComponent);\r\n","import React, { ChangeEvent, FunctionComponent } from \"react\";\r\n\r\nimport { Caption, GridColumnCount, GridGapSize, GridLayout, GridLayoutItem, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { LOC_BASIC_CONDITION, LOC_TRANSITION_NAME } from \"../../../../locKeys\";\r\nimport { ITransition, WorkflowEditorProps } from \"../../../../types\";\r\nimport { Edit, Memo } from \"../../components\";\r\n\r\ntype TransitionPropertiesTabProps = {\r\n readonly transition: ITransition;\r\n readonly updateTransition: (newTransition: ITransition) => void;\r\n} & WorkflowEditorProps;\r\n\r\nexport const TransitionPropertiesTab: FunctionComponent<TransitionPropertiesTabProps> = ({ hostKey, transition, updateTransition }) => {\r\n const changeTransitionName = (e: ChangeEvent<HTMLInputElement>) => {\r\n updateTransition({ ...transition, name: e.target.value });\r\n };\r\n\r\n const changeTransitionCondition = (e: ChangeEvent<HTMLTextAreaElement>) => {\r\n updateTransition({ ...transition, condition: e.target.value });\r\n };\r\n\r\n return (\r\n <Layout spacingSizeHorizontal={SpacingSize.m} spacingSizeTop={SpacingSize.m}>\r\n <GridLayout columns={GridColumnCount.one} gap={GridGapSize.two}>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_TRANSITION_NAME} />\r\n <Edit maxLength={128} value={transition.name} onChange={changeTransitionName} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n <GridLayoutItem>\r\n <Caption locKey={LOC_BASIC_CONDITION} />\r\n <Memo value={transition.condition} onChange={changeTransitionCondition} {...{ hostKey }} />\r\n </GridLayoutItem>\r\n </GridLayout>\r\n </Layout>\r\n );\r\n};\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { LOC_LEADS_FROM_ACTIVITY, LOC_LEADS_TO_ACTIVITY, LOC_TRANSITION_FROM_ACTIVITY_NOT_EXISTS, LOC_TRANSITION_TO_ACTIVITY_NOT_EXISTS, LOC_TRANSITIONS_LEADING_FROM_ACTIVITY, LOC_TRANSITIONS_LEADING_TO_ACTIVITY } from \"../../../../locKeys\";\r\nimport { UiWorkflow } from \"../../../../UiWorkflow\";\r\nimport { ActivityTransitionsList } from \"../../components\";\r\nimport { getTransitionsFromActivity, getTransitionsToActivity } from \"./utils\";\r\n\r\nexport type TransitionsFromToTabProps = {\r\n readonly activityId: string;\r\n readonly uiWorkflow: UiWorkflow;\r\n};\r\n\r\nconst classNames = bemClassNames(\"transitions-from-to-tab-component\");\r\nconst transitionsFromToTab = classNames();\r\n\r\nexport const TransitionsFromToTab: FunctionComponent<TransitionsFromToTabProps> = ({ uiWorkflow, activityId }) => {\r\n const transitionsToActivity = getTransitionsToActivity(activityId, uiWorkflow.workflow);\r\n const transitionsFromActivity = getTransitionsFromActivity(activityId, uiWorkflow.workflow);\r\n\r\n return (\r\n <div className={transitionsFromToTab}>\r\n <ActivityTransitionsList\r\n activityTransitions={transitionsToActivity}\r\n headerLocKey={LOC_TRANSITIONS_LEADING_TO_ACTIVITY}\r\n leadingLocKey={LOC_LEADS_FROM_ACTIVITY}\r\n fallbackTextLocKey={LOC_TRANSITION_TO_ACTIVITY_NOT_EXISTS} />\r\n <ActivityTransitionsList\r\n activityTransitions={transitionsFromActivity}\r\n headerLocKey={LOC_TRANSITIONS_LEADING_FROM_ACTIVITY}\r\n leadingLocKey={LOC_LEADS_TO_ACTIVITY}\r\n fallbackTextLocKey={LOC_TRANSITION_FROM_ACTIVITY_NOT_EXISTS} />\r\n </div>\r\n );\r\n};\r\n","import React, { Fragment, FunctionComponent, useState } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Caption, Display, Layout, MessageWindow, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createTriggerCopy, getDefaultTriggerState } from \"../../../../creatorMethodsUtils\"; // kvůli prevenci vůči cyklické závislosti je nutné importovat z creatorMethods a ne přes utils\r\nimport { TriggerType } from \"../../../../enums\";\r\nimport { LOC_ATTRIBUTE_VALUE_CHANGE, LOC_CANCEL, LOC_CREATION_OF_DOCUMENT, LOC_DELETE, LOC_DELETE_SELECTED_TRIGGER, LOC_MENU, LOC_NO_TRIGGER_CREATED, LOC_TRIGGER_TYPE, LOC_WORKFLOW_MESSAGE } from \"../../../../locKeys\";\r\nimport { ITrigger, WorkflowEditorProps } from \"../../../../types\";\r\nimport { SideListFrame, SidePanelItemsSource, WfOption, WfSelect } from \"../../components\";\r\nimport { triggerPageRenderer } from \"./utils\";\r\n\r\ntype TriggersTabComponentProps = {\r\n readonly triggers: readonly ITrigger[];\r\n readonly selectedRecordIndex: number;\r\n readonly updateTriggers: (newTriggers: readonly ITrigger[]) => void;\r\n readonly noTriggerCreatedText: string;\r\n readonly deleteSelectedTriggerText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst TriggersTabComponent: FunctionComponent<TriggersTabComponentProps> = ({ hostKey, triggers, selectedRecordIndex, updateTriggers, noTriggerCreatedText, deleteSelectedTriggerText }) => {\r\n const [selectedTriggerIndex, setSelectedTriggerIndex] = useState(selectedRecordIndex);\r\n const [isMessageWindowShown, setIsMessageWindowShown] = useState(false);\r\n const selectedTrigger = triggers[selectedTriggerIndex];\r\n\r\n const actionsItemSource: readonly SidePanelItemsSource[] = triggers.map((trigger, index) => {\r\n return { headerLocKey: trigger.locKey, description1: trigger.name, iconName: trigger.properties.iconName, onItemClick: () => setSelectedTriggerIndex(index) };\r\n });\r\n\r\n const onCloseMessageWindow = () => {\r\n setIsMessageWindowShown(false);\r\n };\r\n\r\n const changeTriggerType = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const newTriggers = [...triggers];\r\n const triggerType: TriggerType = e.target.value as TriggerType;\r\n newTriggers[selectedTriggerIndex] = getDefaultTriggerState(triggerType);\r\n updateTriggers(newTriggers);\r\n };\r\n\r\n const addTrigger = () => {\r\n const newTriggers = [...triggers, getDefaultTriggerState(TriggerType.Menu)];\r\n updateTriggers(newTriggers);\r\n setSelectedTriggerIndex(newTriggers.length - 1);\r\n };\r\n\r\n const removeTrigger = () => {\r\n updateTriggers(triggers.filter((_trigger, index) => index !== selectedTriggerIndex));\r\n setSelectedTriggerIndex(selectedTriggerIndex - 1 >= 0 ? selectedTriggerIndex - 1 : 0);\r\n };\r\n\r\n const copyTrigger = () => {\r\n const newTriggers = [...triggers];\r\n newTriggers.splice(selectedTriggerIndex + 1, 0, createTriggerCopy(selectedTrigger));\r\n updateTriggers(newTriggers);\r\n setSelectedTriggerIndex(selectedTriggerIndex + 1);\r\n };\r\n\r\n const updateSelectedTrigger = (valueKeyPairs: readonly { key: string; value: string }[]) => {\r\n const newTriggers = [...triggers];\r\n const newProperties = { ...selectedTrigger.properties };\r\n\r\n for (const { key, value } of valueKeyPairs)\r\n newProperties[key] = value;\r\n\r\n newTriggers[selectedTriggerIndex] = { ...selectedTrigger, properties: newProperties };\r\n updateTriggers(newTriggers);\r\n };\r\n\r\n const changeSelectedTriggerOrder = (newIndex: number) => {\r\n const newTriggers = [...triggers];\r\n newTriggers[selectedTriggerIndex] = newTriggers[newIndex];\r\n newTriggers[newIndex] = selectedTrigger;\r\n updateTriggers(newTriggers);\r\n setSelectedTriggerIndex(newIndex);\r\n };\r\n\r\n const handleDeleteButtonClick = () => {\r\n setIsMessageWindowShown(true);\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <SideListFrame\r\n hostKey={hostKey}\r\n selectedItemIndex={selectedTriggerIndex}\r\n itemsSource={actionsItemSource}\r\n onAddItemClick={addTrigger}\r\n onRemoveItemClick={handleDeleteButtonClick}\r\n onCopyItemClick={copyTrigger}\r\n onOrderChange={changeSelectedTriggerOrder}>\r\n {selectedTrigger ?\r\n <Fragment>\r\n <Layout spacingSizeBottom={SpacingSize.m} display={Display.block}>\r\n <Caption locKey={LOC_TRIGGER_TYPE} />\r\n <WfSelect value={selectedTrigger.triggerType} onChange={changeTriggerType} {...{ hostKey }}>\r\n <WfOption value={TriggerType.AttributeDataChange} locKey={LOC_ATTRIBUTE_VALUE_CHANGE} />\r\n <WfOption value={TriggerType.Menu} locKey={LOC_MENU} />\r\n <WfOption value={TriggerType.NewObject} locKey={LOC_CREATION_OF_DOCUMENT} />\r\n <WfOption value={TriggerType.WfMessage} locKey={LOC_WORKFLOW_MESSAGE} />\r\n </WfSelect>\r\n </Layout>\r\n {triggerPageRenderer(hostKey, selectedTrigger, updateSelectedTrigger)}\r\n </Fragment> :\r\n <div style={{ height: \"100%\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\r\n <span>{noTriggerCreatedText}</span>\r\n </div>}\r\n </SideListFrame>\r\n {isMessageWindowShown &&\r\n <MessageWindow\r\n primaryButtonLocKey={LOC_DELETE}\r\n secondaryButtonLocKey={LOC_CANCEL}\r\n onPrimaryButtonClick={removeTrigger}\r\n {...{ onCloseMessageWindow }}\r\n >\r\n {deleteSelectedTriggerText}\r\n </MessageWindow>}\r\n </Fragment>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<TriggersTabComponentProps, \"noTriggerCreatedText\" | \"deleteSelectedTriggerText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, NoneOwnProps, IAppState> = (state) => ({\r\n noTriggerCreatedText: getPrimaryText(state, LOC_NO_TRIGGER_CREATED) ?? \"Žádný spouštěč zatím nebyl vytvořen...\",\r\n deleteSelectedTriggerText: getPrimaryText(state, LOC_DELETE_SELECTED_TRIGGER) ?? \"Opravdu chcete smazat vybraný spouštěč?\",\r\n});\r\n\r\nexport const TriggersTab = connect(mapStateToProps)(TriggersTabComponent);\r\n","export * from \"./ActionsTab\";\r\nexport * from \"./ActivityPropertiesTab\";\r\nexport * from \"./ParticipantsTab\";\r\nexport * from \"./TransitionPropertiesTab\";\r\nexport * from \"./TransitionsFromToTab\";\r\nexport * from \"./TriggersTab\";\r\n","import { ActionType, ParticipantType, TriggerType } from \"../../../enums\";\r\nimport { IAction, IParticipant, ISet, ITrigger } from \"../../../types\";\r\nimport { Set, Workflow } from \"../../../workflowModel\";\r\nimport { Action, CallMethod, CallScript, DateTimePrecision, IncrementDateTime, IncrementNumber, OpenForm, SendMail, SendSMS, SendWFMessage, SetAttribute, SetObjectAttribute, SetValue } from \"../../../workflowModel/Actions\";\r\nimport { Owner, Participant, Role, System, User } from \"../../../workflowModel/Participants\";\r\nimport { AttributeDataChange, Menu, NewObject, Text, Trigger, WfMessage } from \"../../../workflowModel/Triggers\";\r\nimport {\r\n CONST_ACTION_COMMENT_AT,\r\n CONST_ACTION_CONDITION_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT,\r\n CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT,\r\n CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT,\r\n CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT,\r\n CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT,\r\n CONST_CALL_METHOD_METHOD_NAME_AT,\r\n CONST_CALL_METHOD_STATIC_AT,\r\n CONST_CALL_SCRIPT_SCRIPT_AT,\r\n CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT,\r\n CONST_INCREMENT_DATE_TIME_PRECISION_AT,\r\n CONST_INCREMENT_DATE_TIME_VALUE_AT,\r\n CONST_INCREMENT_NUMBER_ATTR_NAME_AT,\r\n CONST_INCREMENT_NUMBER_VALUE_AT,\r\n CONST_MENU_CAPTIONS_EL,\r\n CONST_MENU_CHOOSE_FROM_USERS_DEFAULT,\r\n CONST_MENU_CODE_NAME,\r\n CONST_MENU_CONFIRM_MESSAGES_EL,\r\n CONST_MENU_ICON_NAME,\r\n CONST_MENU_IDENTIFIER_AT,\r\n CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT,\r\n CONST_MENU_MASTER_NODE_AT,\r\n CONST_MENU_MULTI_ACTION_ENABLE_AT,\r\n CONST_MENU_PARAM_FORM_NAME_AT,\r\n CONST_MENU_PARTICIPANTS_SELECTING_AT,\r\n CONST_MENU_SET_VALUES_AT,\r\n CONST_MENU_VALIDATE_POST_REQ_AT,\r\n CONST_MENU_VALIDATE_RECOMMENDED_AT,\r\n CONST_OPEN_FORM_FORM_CLASS_AT,\r\n CONST_OPEN_FORM_FORM_CONDITION_AT,\r\n CONST_OPEN_FORM_FORM_TYPE_AT,\r\n CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT,\r\n CONST_OPEN_FORM_REPORT_NAME_AT,\r\n CONST_SEND_MAIL_ATTR_NAME_AT,\r\n CONST_SEND_MAIL_CLASS_NAME_AT,\r\n CONST_SEND_MAIL_DATA_CONDITION_AT,\r\n CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CONDITION_AT,\r\n CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT,\r\n CONST_SEND_MAIL_FORMAT_AT,\r\n CONST_SEND_MAIL_RECIPIENT_AT,\r\n CONST_SEND_MAIL_RECIPIENT_TYPE_AT,\r\n CONST_SEND_MAIL_REPORT_TEMPLATE_AT,\r\n CONST_SEND_MAIL_SEND_POSTPONE_AT,\r\n CONST_SEND_MAIL_SUBJECT_AT,\r\n CONST_SEND_MAIL_SUMMARY_MAIL_AT,\r\n CONST_SEND_MAIL_TEXT_AT,\r\n CONST_SEND_SMS_ATTR_NAME_AT,\r\n CONST_SEND_SMS_CLASS_NAME_AT,\r\n CONST_SEND_SMS_DATA_CONDITION_AT,\r\n CONST_SEND_SMS_RECIPIENT_AT,\r\n CONST_SEND_SMS_RECIPIENT_TYPE_AT,\r\n CONST_SEND_SMS_TEXT_AT,\r\n CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT,\r\n CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT,\r\n CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT,\r\n CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT,\r\n CONST_SET_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_ATTRIBUTE_VALUE_TYPE,\r\n CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT,\r\n CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL,\r\n CONST_SET_VALUE_NAME_AT,\r\n CONST_SET_VALUE_VALUE_EL,\r\n CONST_WFMESSAGE_DEACTIVATING_AT,\r\n CONST_WFMESSAGE_MESSAGE_NAME_AT,\r\n} from \"../../../workflowParser/constants\";\r\n\r\nexport const createNewActions = async (actions: readonly IAction[]): Promise<Action[]> => {\r\n const newActions: Action[] = [];\r\n\r\n for (const action of actions) {\r\n switch (action.actionType) {\r\n case ActionType.CallMethod:\r\n newActions.push(new CallMethod(\r\n action.properties[CONST_CALL_METHOD_METHOD_NAME_AT],\r\n action.properties[CONST_CALL_METHOD_STATIC_AT],\r\n action.properties[CONST_CALL_METHOD_INSERT_ACTUAL_OBJECT_AT],\r\n action.properties[CONST_CALL_METHOD_INSERT_PARAM_FORM_OBJECT_AT],\r\n action.properties[CONST_CALL_METHOD_DEFAULT_PARAM_VALUE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.CallScript:\r\n newActions.push(new CallScript(\r\n action.properties[CONST_CALL_SCRIPT_SCRIPT_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.IncrementValue: // Hloupé rozdělení, někdy v budoucnu by to chtělo refaktorovat. https://tfs.tescosw.loc/Jadro/Jadro%20.NET/_workitems/edit/30948\r\n if (action.properties[CONST_INCREMENT_DATE_TIME_PRECISION_AT] === DateTimePrecision.number)\r\n newActions.push(new IncrementNumber(\r\n action.properties[CONST_INCREMENT_NUMBER_ATTR_NAME_AT],\r\n action.properties[CONST_INCREMENT_NUMBER_VALUE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n else\r\n newActions.push(new IncrementDateTime(\r\n action.properties[CONST_INCREMENT_DATE_TIME_ATTR_NAME_AT],\r\n action.properties[CONST_INCREMENT_DATE_TIME_PRECISION_AT],\r\n action.properties[CONST_INCREMENT_DATE_TIME_VALUE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SendMail:\r\n newActions.push(new SendMail(\r\n action.properties[CONST_SEND_MAIL_RECIPIENT_TYPE_AT],\r\n action.properties[CONST_SEND_MAIL_RECIPIENT_AT],\r\n action.properties[CONST_SEND_MAIL_CLASS_NAME_AT],\r\n action.properties[CONST_SEND_MAIL_ATTR_NAME_AT],\r\n action.properties[CONST_SEND_MAIL_DATA_CONDITION_AT],\r\n action.properties[CONST_SEND_MAIL_SUBJECT_AT],\r\n action.properties[CONST_SEND_MAIL_TEXT_AT],\r\n action.properties[CONST_SEND_MAIL_REPORT_TEMPLATE_AT],\r\n action.properties[CONST_SEND_MAIL_SUMMARY_MAIL_AT],\r\n action.properties[CONST_SEND_MAIL_FORMAT_AT],\r\n action.properties[CONST_SEND_MAIL_DOCUMENT_CLASS_NAME_AT],\r\n action.properties[CONST_SEND_MAIL_DOCUMENT_ATTRIBUTE_AT],\r\n action.properties[CONST_SEND_MAIL_DOCUMENT_CONDITION_AT],\r\n action.properties[CONST_SEND_MAIL_DOCUMENT_CONDITION_PARAMS_AT],\r\n action.properties[CONST_SEND_MAIL_SEND_POSTPONE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SendSMS:\r\n newActions.push(new SendSMS(\r\n action.properties[CONST_SEND_SMS_RECIPIENT_AT],\r\n action.properties[CONST_SEND_SMS_CLASS_NAME_AT],\r\n action.properties[CONST_SEND_SMS_ATTR_NAME_AT],\r\n action.properties[CONST_SEND_SMS_DATA_CONDITION_AT],\r\n action.properties[CONST_SEND_SMS_TEXT_AT],\r\n action.properties[CONST_SEND_SMS_RECIPIENT_TYPE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SendWFMessage:\r\n newActions.push(new SendWFMessage(\r\n action.properties[CONST_SEND_WF_MESSAGE_MESSAGE_NAME_AT],\r\n action.properties[CONST_SEND_WF_MESSAGE_TARGET_OBJECT_NAME_AT],\r\n action.properties[CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_AT],\r\n action.properties[CONST_SEND_WF_MESSAGE_OBJECTS_CONDITION_PARAMS_AT],\r\n action.properties[CONST_SEND_WF_MESSAGE_AFTER_SAVE_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SetAttribute:\r\n newActions.push(new SetAttribute(\r\n action.properties[CONST_SET_ATTRIBUTE_ATTR_NAME_AT],\r\n action.properties[CONST_SET_ATTRIBUTE_VALUE_EL],\r\n action.properties[CONST_SET_ATTRIBUTE_VALUE_TYPE],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SetObjectAttribute:\r\n newActions.push(new SetObjectAttribute(\r\n action.properties[CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT],\r\n action.properties[CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL],\r\n action.properties[CONST_SET_OBJECT_ATTRIBUTE_MASTER_CLASS_NAME_AT],\r\n action.properties[CONST_SET_OBJECT_ATTRIBUTE_MASTER_ATTR_NAME_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.SetValue:\r\n newActions.push(new SetValue(\r\n action.properties[CONST_SET_VALUE_NAME_AT],\r\n action.properties[CONST_SET_VALUE_VALUE_EL],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n case ActionType.OpenForm:\r\n newActions.push(new OpenForm(\r\n action.properties[CONST_OPEN_FORM_FORM_TYPE_AT],\r\n action.properties[CONST_OPEN_FORM_FORM_CLASS_AT],\r\n action.properties[CONST_OPEN_FORM_REPORT_NAME_AT],\r\n action.properties[CONST_OPEN_FORM_MASTER_LINK_TO_ATTR_AT],\r\n action.properties[CONST_OPEN_FORM_FORM_CONDITION_AT],\r\n action.properties[CONST_ACTION_CONDITION_AT],\r\n action.properties[CONST_ACTION_COMMENT_AT],\r\n ));\r\n break;\r\n default:\r\n throw new Error(`Saving function for action type '${action.actionType}' is not implemented!`);\r\n }\r\n\r\n await newActions[newActions.length - 1].validate();\r\n }\r\n\r\n return newActions;\r\n};\r\n\r\n/**\r\n * Funkce se stará o \"uložení\" spouštěčů. Podrobněji dělá to, že pro každý spouštěč z reduxího storu vytvoří jeho mutable instanční verzi,\r\n * kde se kontrolu, jestli každý atribut obsahuje potřebné atributy, atp.\r\n * @param triggers Množina triggerů z redux storu.\r\n */\r\nexport const createNewTriggers = async (triggers: readonly ITrigger[]): Promise<Trigger[]> => {\r\n const newTriggers: Trigger[] = [];\r\n\r\n for (const trigger of triggers) {\r\n switch (trigger.triggerType) {\r\n case TriggerType.AttributeDataChange:\r\n newTriggers.push(new AttributeDataChange(\r\n trigger.properties[CONST_ATTRIBUTE_DATA_CHANGE_ATTR_NAME_AT],\r\n trigger.properties[CONST_ATTRIBUTE_DATA_CHANGE_CONDITION_AT]));\r\n break;\r\n case TriggerType.Menu:\r\n newTriggers.push(new Menu(\r\n trigger.properties[CONST_MENU_IDENTIFIER_AT],\r\n trigger.properties[CONST_MENU_CODE_NAME],\r\n trigger.properties[CONST_MENU_ICON_NAME],\r\n trigger.properties[CONST_MENU_PARTICIPANTS_SELECTING_AT],\r\n trigger.properties[CONST_MENU_MULTI_ACTION_ENABLE_AT],\r\n trigger.properties[CONST_MENU_VALIDATE_POST_REQ_AT],\r\n trigger.properties[CONST_MENU_VALIDATE_RECOMMENDED_AT],\r\n trigger.properties[CONST_MENU_CHOOSE_FROM_USERS_DEFAULT],\r\n trigger.properties[CONST_MENU_MASTER_NODE_AT],\r\n trigger.properties[CONST_MENU_PARAM_FORM_NAME_AT],\r\n trigger.properties[CONST_MENU_LINK_ATTR_FOR_SEL_OBJ_AT],\r\n trigger.properties[CONST_MENU_SET_VALUES_AT],\r\n JSON.parse(trigger.properties[CONST_MENU_CAPTIONS_EL]) as Text[],\r\n JSON.parse(trigger.properties[CONST_MENU_CONFIRM_MESSAGES_EL]) as Text[]));\r\n break;\r\n case TriggerType.NewObject:\r\n newTriggers.push(new NewObject());\r\n break;\r\n case TriggerType.WfMessage:\r\n newTriggers.push(new WfMessage(\r\n trigger.properties[CONST_WFMESSAGE_MESSAGE_NAME_AT],\r\n trigger.properties[CONST_WFMESSAGE_DEACTIVATING_AT]));\r\n break;\r\n default:\r\n throw new Error(`Saving function for trigger type '${trigger.triggerType}' is not implemented!`);\r\n }\r\n\r\n await newTriggers[newTriggers.length - 1].validate();\r\n }\r\n\r\n return newTriggers;\r\n};\r\n\r\nexport const createNewParticipants = (workflow: Workflow, participants: readonly IParticipant[]): Participant[] => {\r\n const newParticipants: Participant[] = [];\r\n\r\n participants.forEach(participant => {\r\n switch (participant.participantType) {\r\n case ParticipantType.DefinitionParticipant: {\r\n const foundDefParticipant = workflow.definitionParticipants.find(wfDefPaticipant => wfDefPaticipant.identifier === participant.identifier);\r\n if (!foundDefParticipant)\r\n throw new Error(`Could not find definition participant of the name '${participant.properties[\"identifier\"]}'!`);\r\n newParticipants.push(foundDefParticipant);\r\n break;\r\n }\r\n case ParticipantType.Owner:\r\n newParticipants.push(new Owner());\r\n break;\r\n case ParticipantType.System:\r\n newParticipants.push(new System());\r\n break;\r\n case ParticipantType.Role:\r\n newParticipants.push(new Role(\r\n participant.properties[\"dbID\"],\r\n participant.properties[\"name\"]));\r\n break;\r\n case ParticipantType.User:\r\n newParticipants.push(new User(\r\n participant.properties[\"dbID\"],\r\n participant.properties[\"name\"]));\r\n break;\r\n default:\r\n throw new Error(`Saving function for participant type '${participant.participantType}' is not implemented!`);\r\n }\r\n });\r\n\r\n return newParticipants;\r\n};\r\n\r\n/**\r\n * Stará se o uložení změn ze storu do mutable verze workflow.\r\n * @param sets Editované sady z redux storu.\r\n * @param workflow Objekt workflow.\r\n */\r\nexport const saveSets = (sets: readonly ISet[], workflow: Workflow) => {\r\n const orderedSets: Set[] = []; // Musíme uspořádat sady, protože na serveru je pořádí bráno jako ID... :/ Snad se někdy smaže\r\n\r\n // Napřed smažeme odebrané sady\r\n workflow.sets.forEach(wfState => {\r\n const stateSet = sets.find(set => set.id === wfState.id);\r\n\r\n if (stateSet === undefined)\r\n workflow.removeSet(wfState.id);\r\n });\r\n\r\n // Pak vytvoříme přidané sady a upravíme ty existující\r\n sets.forEach(stateSet => {\r\n const wfSet = workflow.sets.find(set => set.id === stateSet.id);\r\n\r\n if (wfSet === undefined) {\r\n workflow.addSet(stateSet.name, stateSet.description, stateSet.id);\r\n orderedSets.push(workflow.sets[workflow.sets.length - 1]);\r\n } else {\r\n wfSet.name = stateSet.name;\r\n wfSet.description = stateSet.description;\r\n orderedSets.push(wfSet);\r\n }\r\n });\r\n\r\n workflow.sets = orderedSets;\r\n};\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { Tab, Tabs } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityAction } from \"../../../actions\";\r\nimport { ActivityEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_ACTIONS, LOC_PARTICIPANTS, LOC_PROPERTIES, LOC_TRANSITION_FROM_TO, LOC_TRIGGERS } from \"../../../locKeys\";\r\nimport { getActivityByIndex, isEditDialogHidden } from \"../../../selectors\";\r\nimport { IAction, IActivity, IParticipant, ITrigger, WorkflowEditorProps } from \"../../../types\";\r\nimport { UiActivity } from \"../../../UiActivity\";\r\nimport { UiWorkflow } from \"../../../UiWorkflow\";\r\nimport { getUiWorkflowMutableObject } from \"../../../utils\";\r\nimport { EditDialog } from \"../EditDialog\";\r\nimport { ActionsTab, ActivityPropertiesTab, ParticipantsTab, TransitionsFromToTab, TriggersTab } from \"./tabs\";\r\nimport { createNewActions, createNewParticipants, createNewTriggers } from \"./utils\";\r\n\r\ntype ActivityEditDialogComponentProps = {\r\n readonly activity: IActivity;\r\n readonly isHidden: boolean;\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly defaultTabIndex?: ActivityEditDialogTabsIndex;\r\n readonly selectedRecordIndex?: number;\r\n readonly updateActivity: (picassoIndex: number, newActivity: IActivity) => void;\r\n readonly onCloseEdit: () => void;\r\n readonly propertiesText: string;\r\n readonly actionsText: string;\r\n readonly triggersText: string;\r\n readonly participantsText: string;\r\n readonly transitionFromToText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst ActivityEditDialogComponent: FunctionComponent<ActivityEditDialogComponentProps> = ({ hostKey, activity, isHidden, uiWorkflow, defaultTabIndex = 0, selectedRecordIndex = 0, updateActivity, onCloseEdit, propertiesText, actionsText, triggersText, participantsText, transitionFromToText }) => {\r\n const { actions, triggers, participants, picassoIndex } = activity;\r\n\r\n const [touched, setTouched] = useState(false);\r\n\r\n const handleUpdateActivity = (newActivity: IActivity) => {\r\n updateActivity(picassoIndex, newActivity);\r\n !touched && setTouched(true);\r\n };\r\n\r\n const updateActions = (newActions: readonly IAction[]) => {\r\n handleUpdateActivity({ ...activity, actions: newActions });\r\n };\r\n\r\n const updateTriggers = (newTriggers: readonly ITrigger[]) => {\r\n handleUpdateActivity({ ...activity, triggers: newTriggers });\r\n };\r\n\r\n const updateParticipants = (newParticipants: readonly IParticipant[]) => {\r\n handleUpdateActivity({ ...activity, participants: newParticipants });\r\n };\r\n\r\n const onCancelClick = () => {\r\n const { activities } = uiWorkflow.workflowModel;\r\n handleUpdateActivity(activities[picassoIndex - 1]); // minus 1, protože picasso má na prvním indexu sadu\r\n };\r\n\r\n const onSaveClick = async () => {\r\n const wfActivity = (uiWorkflow.picassoModel.components[picassoIndex] as UiActivity).activity;\r\n\r\n // Vyseparováno tady nahoře, aby pokud dojde k vyhození výjimky, tak se nové hodnoty neuložily do objektu aktivity\r\n const newActions = await createNewActions(activity.actions);\r\n const newTriggers = await createNewTriggers(activity.triggers);\r\n const newParticipants = createNewParticipants(uiWorkflow.workflow, activity.participants);\r\n\r\n wfActivity.name = activity.name;\r\n wfActivity.order = activity.order;\r\n wfActivity.inputTransType = activity.inputTransType;\r\n wfActivity.condition = activity.condition;\r\n wfActivity.runCondition = activity.runCondition;\r\n wfActivity.inheritParticipants = activity.inheritParticipants;\r\n wfActivity.killChildren = activity.killChildren;\r\n wfActivity.showInWfHistory = activity.showInWfHistory;\r\n wfActivity.description = activity.description;\r\n wfActivity.actions = newActions;\r\n wfActivity.triggers = newTriggers;\r\n wfActivity.participants = newParticipants;\r\n };\r\n\r\n return (\r\n <EditDialog width={1100} height={700} {...{ hostKey, isHidden, touched, onCloseEdit, onSaveClick, onCancelClick, setTouched }}>\r\n <Tabs {...{ defaultTabIndex }}>\r\n <Tab tabName={propertiesText}>\r\n <ActivityPropertiesTab updateActivity={handleUpdateActivity} {...{ activity, hostKey }} />\r\n </Tab>\r\n <Tab tabName={transitionFromToText}>\r\n <TransitionsFromToTab {...{ activityId: activity.id, uiWorkflow }} />\r\n </Tab>\r\n <Tab tabName={actionsText}>\r\n <ActionsTab {...{ hostKey, actions, selectedRecordIndex, updateActions }} />\r\n </Tab>\r\n <Tab tabName={triggersText}>\r\n <TriggersTab {...{ hostKey, triggers, selectedRecordIndex, updateTriggers }} />\r\n </Tab>\r\n <Tab tabName={participantsText}>\r\n <ParticipantsTab selectedParticipants={participants} {...{ hostKey, updateParticipants }} />\r\n </Tab>\r\n </Tabs>\r\n </EditDialog>\r\n );\r\n};\r\n\r\ntype ActivityEditDialogProps = {\r\n readonly picassoIndex: number;\r\n} & Pick<ActivityEditDialogComponentProps, \"onCloseEdit\" | \"hostKey\" | \"defaultTabIndex\" | \"selectedRecordIndex\">;\r\n\r\ntype StateProps = Pick<ActivityEditDialogComponentProps, \"activity\" | \"isHidden\" | \"propertiesText\" | \"actionsText\" | \"triggersText\" | \"participantsText\" | \"transitionFromToText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, ActivityEditDialogProps, IAppState> = (state, { hostKey, picassoIndex }) => ({\r\n activity: getActivityByIndex(state, hostKey, picassoIndex),\r\n isHidden: isEditDialogHidden(state, hostKey),\r\n propertiesText: getPrimaryText(state, LOC_PROPERTIES) ?? \"Vlastnosti\",\r\n actionsText: getPrimaryText(state, LOC_ACTIONS) ?? \"Akce\",\r\n triggersText: getPrimaryText(state, LOC_TRIGGERS) ?? \"Spouštěče\",\r\n participantsText: getPrimaryText(state, LOC_PARTICIPANTS) ?? \"Hráči\",\r\n transitionFromToText: getPrimaryText(state, LOC_TRANSITION_FROM_TO) ?? \"Propojení z/do\",\r\n});\r\n\r\ntype DispatchProps = Pick<ActivityEditDialogComponentProps, \"updateActivity\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, ActivityEditDialogProps> = (dispatch, { hostKey }) => ({\r\n updateActivity: (index, newActivity) => dispatch(createUpdateActivityAction(hostKey, index, newActivity)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, ActivityEditDialogProps, ActivityEditDialogComponentProps> = (\r\n stateProps,\r\n dispatchProps,\r\n ownProps,\r\n) => ({\r\n ...stateProps,\r\n ...dispatchProps,\r\n ...ownProps,\r\n uiWorkflow: getUiWorkflowMutableObject(ownProps.hostKey),\r\n});\r\n\r\nexport const ActivityEditDialog = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ActivityEditDialogComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { LocalizationProvider, MessageWindow } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateSetsAction } from \"../../../actions\";\r\nimport { LOC_CANCEL, LOC_CANNOT_DELETE_DISPLAYED_SET, LOC_DELETE, LOC_NEW_SET, LOC_OK, LOC_REALLY_DELETE_SET } from \"../../../locKeys\";\r\nimport { createGetOrderedSets, getSelectedSetIndex } from \"../../../selectors\";\r\nimport { ISet, MessageWindowState, WorkflowEditorProps } from \"../../../types\";\r\nimport { UiWorkflow } from \"../../../UiWorkflow\";\r\nimport { getUiWorkflowMutableObject } from \"../../../utils\";\r\nimport { SideListFrame, SidePanelItemsSource } from \"../components\";\r\nimport { EditDialog } from \"../EditDialog\";\r\nimport { SetEditPage } from \"./tabs/pages\";\r\nimport { saveSets } from \"./utils\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\ntype SetEditDialogComponentProps = {\r\n /** Sada aktuálně zobrazená plátnem picassa */\r\n readonly displayedSetIndex: number;\r\n readonly sets: readonly ISet[];\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly updateSets: (newSets: readonly ISet[]) => void;\r\n readonly onCloseEdit: () => void;\r\n readonly newSetText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst SetEditDialogComponent: FunctionComponent<SetEditDialogComponentProps> = ({ hostKey, displayedSetIndex, sets, uiWorkflow, updateSets, onCloseEdit, newSetText }) => {\r\n const [touched, setTouched] = useState(false);\r\n const [selectedSetIndex, setSelectedSetIndex] = useState(displayedSetIndex);\r\n const [messageWindowState, setMessageWindowState] = useState<MessageWindowState>({ isOpen: false, properties: null });\r\n const selectedSet = sets[selectedSetIndex]; // selectedSet je pro editační okno, displayedSet pro picasso (můžu editovat i nezobrazenou sadu)\r\n const canSave = sets.every(set => !!set.name);\r\n\r\n const setsItemsSource: readonly SidePanelItemsSource[] = sets.map(({ name, description }, index) => ({\r\n headerName: name === \"\" ? newSetText : name,\r\n description1: description,\r\n onItemClick: () => setSelectedSetIndex(index),\r\n }));\r\n\r\n const onCloseMessageWindow = () => {\r\n setMessageWindowState({ isOpen: false, properties: null });\r\n };\r\n\r\n const handleUpdateSets = (newSets: readonly ISet[]) => {\r\n updateSets(newSets);\r\n !touched && setTouched(true);\r\n };\r\n\r\n const updateSet = (newSet: ISet) => {\r\n const newSets = [...sets];\r\n newSets[selectedSetIndex] = newSet;\r\n handleUpdateSets(newSets);\r\n };\r\n\r\n const addSet = () => {\r\n const newSets = [...sets, {\r\n id: generateUUID(),\r\n name: \"\",\r\n description: \"\",\r\n }];\r\n handleUpdateSets(newSets);\r\n setSelectedSetIndex(newSets.length - 1);\r\n };\r\n\r\n const onRemoveSetClick = () => {\r\n if (selectedSetIndex === displayedSetIndex)\r\n setMessageWindowState({\r\n isOpen: true,\r\n properties: {\r\n children: <LocalizationProvider locKey={LOC_CANNOT_DELETE_DISPLAYED_SET} />,\r\n primaryButtonLocKey: LOC_OK,\r\n onCloseMessageWindow,\r\n },\r\n });\r\n else\r\n setMessageWindowState({\r\n isOpen: true,\r\n properties: {\r\n children: <LocalizationProvider locKey={LOC_REALLY_DELETE_SET} />,\r\n primaryButtonLocKey: LOC_DELETE,\r\n secondaryButtonLocKey: LOC_CANCEL,\r\n onPrimaryButtonClick: removeSet,\r\n onCloseMessageWindow,\r\n },\r\n });\r\n };\r\n\r\n const removeSet = () => {\r\n if (sets.length === 1 || selectedSetIndex === displayedSetIndex)\r\n return;\r\n\r\n const newSets = sets.filter((_set, setIndex) => setIndex !== selectedSetIndex);\r\n handleUpdateSets(newSets);\r\n setSelectedSetIndex(selectedSetIndex - 1 >= 0 ? selectedSetIndex - 1 : 0);\r\n };\r\n\r\n const copySet = () => {\r\n const newSets = [...sets];\r\n newSets.splice(selectedSetIndex + 1, 0, { ...selectedSet, id: generateUUID() });\r\n handleUpdateSets(newSets);\r\n setSelectedSetIndex(selectedSetIndex + 1);\r\n };\r\n\r\n const changeSelectedSetOrder = (newIndex: number) => {\r\n const newSets = [...sets];\r\n newSets[selectedSetIndex] = newSets[newIndex];\r\n newSets[newIndex] = selectedSet;\r\n handleUpdateSets(newSets);\r\n setSelectedSetIndex(newIndex);\r\n };\r\n\r\n const onSaveClick = async () => {\r\n saveSets(sets, uiWorkflow.workflow);\r\n };\r\n\r\n const onCancelClick = () => {\r\n const { sets } = uiWorkflow.workflowModel;\r\n updateSets(sets);\r\n };\r\n\r\n return (\r\n <EditDialog width={900} height={700} {...{ hostKey, touched, canSave, onSaveClick, onCloseEdit, onCancelClick, setTouched }}>\r\n <SideListFrame\r\n hostKey={hostKey}\r\n selectedItemIndex={selectedSetIndex}\r\n itemsSource={setsItemsSource}\r\n onAddItemClick={addSet}\r\n onRemoveItemClick={onRemoveSetClick}\r\n onCopyItemClick={copySet}\r\n onOrderChange={changeSelectedSetOrder}>\r\n {selectedSet && <SetEditPage {...{ hostKey, selectedSet, updateSet }} />}\r\n </SideListFrame>\r\n {(messageWindowState.isOpen && messageWindowState.properties) && <MessageWindow {...messageWindowState.properties} />}\r\n </EditDialog>\r\n );\r\n};\r\n\r\ntype SetEditDialogProps = Pick<SetEditDialogComponentProps, \"hostKey\" | \"onCloseEdit\">;\r\ntype StateProps = Pick<SetEditDialogComponentProps, \"displayedSetIndex\" | \"sets\" | \"newSetText\">;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: SetEditDialogProps) => MapStateToProps<StateProps, SetEditDialogProps, IAppState> = (_state, { hostKey }) => {\r\n const getOrderedSets = createGetOrderedSets();\r\n\r\n return (state) => ({\r\n displayedSetIndex: getSelectedSetIndex(state, hostKey),\r\n sets: getOrderedSets(state, hostKey),\r\n newSetText: getPrimaryText(state, LOC_NEW_SET) ?? \"Nová sada\",\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick<SetEditDialogComponentProps, \"updateSets\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, SetEditDialogProps> = (dispatch, { hostKey }) => ({\r\n updateSets: (newSets) => dispatch(createUpdateSetsAction(hostKey, newSets)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, SetEditDialogProps, SetEditDialogComponentProps> = (\r\n stateProps,\r\n dispatchProps,\r\n ownProps,\r\n) => ({\r\n ...stateProps,\r\n ...dispatchProps,\r\n ...ownProps,\r\n uiWorkflow: getUiWorkflowMutableObject(ownProps.hostKey),\r\n});\r\n\r\nexport const SetEditDialog = connect(createMapStateToProps, mapDispatchToProps, mergeProps)(SetEditDialogComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { Tab, Tabs } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateTransitionAction } from \"../../../actions\";\r\nimport { TransitionEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_ACTIONS, LOC_PROPERTIES } from \"../../../locKeys\";\r\nimport { getTransitionByIndex, isEditDialogHidden } from \"../../../selectors\";\r\nimport { IAction, ITransition, WorkflowEditorProps } from \"../../../types\";\r\nimport { UiTransition } from \"../../../UiTransition\";\r\nimport { UiWorkflow } from \"../../../UiWorkflow\";\r\nimport { getUiWorkflowMutableObject } from \"../../../utils\";\r\nimport { EditDialog } from \"../EditDialog\";\r\nimport { ActionsTab, TransitionPropertiesTab } from \"./tabs\";\r\nimport { createNewActions } from \"./utils\";\r\n\r\ntype TransitionEditDialogComponentProps = {\r\n readonly transition: ITransition;\r\n readonly isHidden: boolean;\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly defaultTabIndex?: TransitionEditDialogTabsIndex;\r\n readonly selectedRecordIndex?: number;\r\n readonly updateTransition: (index: number, newTransition: ITransition) => void;\r\n readonly onCloseEdit: () => void;\r\n readonly propertiesText: string;\r\n readonly actionsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst TransitionEditDialogComponent: FunctionComponent<TransitionEditDialogComponentProps> = ({ hostKey, transition, isHidden, uiWorkflow, defaultTabIndex = TransitionEditDialogTabsIndex.Properties, selectedRecordIndex = 0, updateTransition, onCloseEdit, propertiesText, actionsText }) => {\r\n const { actions, picassoIndex } = transition;\r\n\r\n const [touched, setTouched] = useState(false);\r\n\r\n const handleUpdateTransition = (newTransition: ITransition) => {\r\n updateTransition(picassoIndex, newTransition);\r\n !touched && setTouched(true);\r\n };\r\n\r\n const updateActions = (newActions: readonly IAction[]) => {\r\n handleUpdateTransition({ ...transition, actions: newActions });\r\n };\r\n\r\n const onCancelClick = () => {\r\n const { transitions } = uiWorkflow.workflowModel;\r\n handleUpdateTransition(transitions[picassoIndex]);\r\n };\r\n\r\n const onSaveClick = async () => {\r\n const wfTransition = (uiWorkflow.picassoModel.links[picassoIndex] as UiTransition).transition;\r\n\r\n // Vyseparováno tady nahoře, aby pokud dojde k vyhození výjimky, tak se nové hodnoty neuložily do objektu aktivity\r\n const newActions = await createNewActions(transition.actions);\r\n\r\n wfTransition.name = transition.name;\r\n wfTransition.condition = transition.condition;\r\n wfTransition.actions = newActions;\r\n };\r\n\r\n return (\r\n <EditDialog width={900} height={700} {...{ hostKey, isHidden, touched, onCloseEdit, onSaveClick, onCancelClick, setTouched }}>\r\n <Tabs {...{ defaultTabIndex }}>\r\n <Tab tabName={propertiesText}>\r\n <TransitionPropertiesTab updateTransition={handleUpdateTransition} {...{ transition, hostKey }} />\r\n </Tab>\r\n <Tab tabName={actionsText}>\r\n <ActionsTab {...{ hostKey, actions, selectedRecordIndex, updateActions }} />\r\n </Tab>\r\n </Tabs>\r\n </EditDialog>\r\n );\r\n};\r\n\r\ntype TransitionEditDialogProps = {\r\n readonly picassoIndex: number;\r\n} & Pick<TransitionEditDialogComponentProps, \"onCloseEdit\" | \"hostKey\" | \"defaultTabIndex\" | \"selectedRecordIndex\">;\r\n\r\ntype StateProps = Pick<TransitionEditDialogComponentProps, \"transition\" | \"isHidden\" | \"propertiesText\" | \"actionsText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, TransitionEditDialogProps, IAppState> = (state, { hostKey, picassoIndex }) => ({\r\n transition: getTransitionByIndex(state, hostKey, picassoIndex),\r\n isHidden: isEditDialogHidden(state, hostKey),\r\n propertiesText: getPrimaryText(state, LOC_PROPERTIES) ?? \"Vlastnosti\",\r\n actionsText: getPrimaryText(state, LOC_ACTIONS) ?? \"Akce\",\r\n});\r\n\r\ntype DispatchProps = Pick<TransitionEditDialogComponentProps, \"updateTransition\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, TransitionEditDialogProps> = (dispatch, { hostKey }) => ({\r\n updateTransition: (index, newTransition) => dispatch(createUpdateTransitionAction(hostKey, index, newTransition)),\r\n});\r\n\r\nconst mergeProps: MergeProps<StateProps, DispatchProps, TransitionEditDialogProps, TransitionEditDialogComponentProps> = (\r\n stateProps,\r\n dispatchProps,\r\n ownProps,\r\n) => ({\r\n ...stateProps,\r\n ...dispatchProps,\r\n ...ownProps,\r\n uiWorkflow: getUiWorkflowMutableObject(ownProps.hostKey),\r\n});\r\n\r\nexport const TransitionEditDialog = connect(mapStateToProps, mapDispatchToProps, mergeProps)(TransitionEditDialogComponent);\r\n","export * from \"./ActivityEditDialog\";\r\nexport * from \"./DefinitionParticipantsEditDialog\";\r\nexport * from \"./SetEditDialog\";\r\nexport * from \"./TransitionEditDialog\";\r\n","import { IPoint } from \"@multiweb/picasso\";\r\nimport { ActionType } from \"../enums\";\r\nimport { IAction } from \"../types\";\r\nimport { CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT, CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL } from \"../workflowParser/constants\";\r\n\r\n/**\r\n * Vrací seznam kódů stavů WF ze všech akcí typu 'Změna vazebního atributu'.\r\n * @param actions Seznam všech akcí na aktivitě/propojení.\r\n */\r\nexport const getWfStateCodes = (actions: readonly IAction[]) => {\r\n const wfStateCodes: string[] = [];\r\n\r\n actions.forEach(action => {\r\n if (action.actionType === ActionType.SetObjectAttribute && action.properties[CONST_SET_OBJECT_ATTRIBUTE_ATTR_NAME_AT] === \"Stav_WF\")\r\n wfStateCodes.push(action.properties[CONST_SET_OBJECT_ATTRIBUTE_VALUE_EL]);\r\n });\r\n\r\n return wfStateCodes;\r\n};\r\n\r\n/**\r\n * Funkce starající se o zkrácení textu nad propojeními. (SVG text tuto vlastnost neumí, proto si pomáháme takhle...)\r\n * @param text Text, který se má zkrátit, pokud přesahuje určitou délku.\r\n */\r\nexport const textEllipsis = (text: string | undefined) => {\r\n const MAX_NUMBER_OF_CHARS = 16;\r\n\r\n if (text !== undefined && text.length > MAX_NUMBER_OF_CHARS)\r\n return `${text.substring(0, MAX_NUMBER_OF_CHARS)}...`;\r\n\r\n return text;\r\n};\r\n\r\n/**\r\n * Vypočítává úhel sklonu textu na propojení, který je mezi počátečním a koncovým bodem.\r\n * Zároveň tento úhel invertuje tak, aby text nikdy nebyl vzhůru nohama.\r\n * @param startPoint Počáteční bod propojení.\r\n * @param endPoint Koncový bod propojení.\r\n */\r\nexport const calcAngleDegrees = (startPoint: IPoint, endPoint: IPoint) => {\r\n const cathetusA = endPoint.x - startPoint.x; // délka odvěsny 'a'\r\n const cathetusB = endPoint.y - startPoint.y; // délka odvěsny 'b'\r\n const angleInDegrees = Math.atan2(cathetusB, cathetusA) * 180 / Math.PI; // převod tangens na stupně, jedná se o sklon vůči ose X\r\n\r\n if (angleInDegrees > 90) // zajišťuje překlopení textu, pokud se konec propojení dostane ze IV. do III. kvadrantu\r\n return angleInDegrees - 180;\r\n\r\n if (angleInDegrees < -90) // zajišťuje překlopení textu, pokud se konec propojení dostane ze II. do I. kvadrantu\r\n return 180 + angleInDegrees;\r\n\r\n return angleInDegrees;\r\n};\r\n","import React, { FunctionComponent, MouseEvent, useEffect, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { MoveablePassableProps } from \"@multiweb/picasso\";\r\nimport { Icon, IconColor, IconSize } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createLoadActivityHeaderAction } from \"../actions\";\r\nimport { PropagationStopper } from \"../components/dialogs/components\";\r\nimport { ActivityEditDialog } from \"../components/dialogs/editDialogs\";\r\nimport { LOC_INHERIT_PARTICIPANTS, LOC_KILL_CHILDREN, LOC_ONGOING_ACTIVITY, LOC_PERTINENCE_TO_SETS, LOC_TYPE_FOR_JOIN } from \"../locKeys\";\r\nimport { getActivityByIndex } from \"../selectors\";\r\nimport { IActivity } from \"../types\";\r\nimport { ActivityType, IOTransitionType } from \"../workflowModel\";\r\nimport { getWfStateCodes } from \"./utils\";\r\n\r\nconst classNames = bemClassNames(\"activity-box\");\r\nconst infoSectionStyle = classNames(\"info-section\");\r\nconst iconsSectionStyle = classNames(\"icons-section\");\r\nconst headerStyle = classNames(\"header\");\r\n\r\ntype ActivityComponentProps = {\r\n readonly activity: IActivity;\r\n readonly pertinenceToSetsText: string;\r\n readonly killChildrenText: string;\r\n readonly onGoingText: string;\r\n readonly inheritParticipantsText: string;\r\n readonly typeForJoinText: string;\r\n readonly loadActivityHeader: (hostKey: string, picassoIndex: number, attributeName: readonly string[]) => void;\r\n} & Pick<MoveablePassableProps, \"picassoInstanceKey\" | \"isSelected\" | \"clickSelectComponent\" | \"mouseDownComponentSelect\">;\r\n\r\nconst ActivityComponent: FunctionComponent<ActivityComponentProps> = ({\r\n activity,\r\n isSelected,\r\n clickSelectComponent,\r\n mouseDownComponentSelect,\r\n loadActivityHeader,\r\n pertinenceToSetsText,\r\n killChildrenText,\r\n onGoingText,\r\n inheritParticipantsText,\r\n typeForJoinText,\r\n picassoInstanceKey,\r\n}) => {\r\n const [isEditDialogShown, setIsEditDialogShown] = useState(false);\r\n\r\n const isStartActivity = activity.type === ActivityType.start;\r\n const isEndActivity = activity.type === ActivityType.end;\r\n const isActivityInMoreSets = activity.positions.length > 1;\r\n const isActivityContinuos = activity.triggers.length === 0;\r\n const isAndTransType = activity.inputTransType === IOTransitionType.and;\r\n const inheritsParticipants = activity.inheritParticipants;\r\n const killChildren = activity.killChildren;\r\n const hasCondition = !!activity.condition;\r\n const hasRunCondition = !!activity.runCondition; // Online podmínka\r\n const isActive = activity.isActive;\r\n const pertienceToSets = `${pertinenceToSetsText}:\\n${activity.positions.map(aa => aa.setName).join(\"\\n\")}`;\r\n\r\n useEffect(() => {\r\n const wfStateCodes = getWfStateCodes(activity.actions);\r\n if (wfStateCodes.length)\r\n loadActivityHeader(picassoInstanceKey, activity.picassoIndex, wfStateCodes);\r\n }, [activity.actions, activity.picassoIndex, picassoInstanceKey, loadActivityHeader]);\r\n\r\n const onDoubleClick = (e: MouseEvent<HTMLDivElement>) => {\r\n if (!e.ctrlKey && isSelected) // Zabránění případu otevření editačního dialogu při hromadném výběru...\r\n setIsEditDialogShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsEditDialogShown(false);\r\n };\r\n\r\n return (\r\n <div\r\n className={classNames({\r\n \"selected\": isSelected,\r\n \"active\": isActive,\r\n \"ended\": isEndActivity && isActive,\r\n \"condition\": hasCondition,\r\n \"runcondition\": hasRunCondition,\r\n \"start-type\": isStartActivity,\r\n \"end-type\": isEndActivity,\r\n })}\r\n onClick={clickSelectComponent}\r\n onMouseDown={mouseDownComponentSelect}\r\n title={activity.description}\r\n {...{ onDoubleClick }} >\r\n {!!activity.header && <span className={headerStyle} title={activity.header}>{activity.header}</span>}\r\n <div className={infoSectionStyle}>\r\n <p className={classNames(\"text\", { \"normal-type\": activity.type === ActivityType.normal })}>{activity.name}</p>\r\n {isActivityInMoreSets && <Icon iconCode={IconCode.docPaperStack} color={IconColor.orange} size={IconSize.small} title={pertienceToSets} />}\r\n </div>\r\n <div className={iconsSectionStyle}>\r\n {killChildren && <Icon iconCode={IconCode.uiCloseParallelConnection} size={IconSize.small} title={killChildrenText} />}\r\n {isActivityContinuos && <Icon iconCode={IconCode.uiArrowRight} size={IconSize.small} title={onGoingText} />}\r\n {inheritsParticipants && <Icon iconCode={IconCode.userGroup} size={IconSize.small} title={inheritParticipantsText} />}\r\n {isAndTransType && <Icon iconCode={IconCode.uiPropertyAnd} size={IconSize.small} title={typeForJoinText} />}\r\n </div>\r\n {isEditDialogShown &&\r\n <PropagationStopper>\r\n <ActivityEditDialog hostKey={picassoInstanceKey} picassoIndex={activity.picassoIndex} {...{ onCloseEdit }} />\r\n </PropagationStopper>\r\n }\r\n </div>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<ActivityComponentProps, \"activity\" | \"pertinenceToSetsText\" | \"killChildrenText\" | \"onGoingText\" | \"inheritParticipantsText\" | \"typeForJoinText\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MoveablePassableProps, IAppState> = (state, { picassoInstanceKey, uiComponent }) => ({\r\n activity: getActivityByIndex(state, picassoInstanceKey, uiComponent.index),\r\n pertinenceToSetsText: getPrimaryText(state, LOC_PERTINENCE_TO_SETS) ?? \"Příslušnost k sadám\",\r\n killChildrenText: getPrimaryText(state, LOC_KILL_CHILDREN) ?? \"Zavření paralelní aktivity\",\r\n onGoingText: getPrimaryText(state, LOC_ONGOING_ACTIVITY) ?? \"Průběžná aktivita\",\r\n inheritParticipantsText: getPrimaryText(state, LOC_INHERIT_PARTICIPANTS) ?? \"Dědit hráče\",\r\n typeForJoinText: getPrimaryText(state, LOC_TYPE_FOR_JOIN) ?? \"Typ spojení\",\r\n});\r\n\r\ntype DispatchProps = Pick<ActivityComponentProps, \"loadActivityHeader\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, NoneOwnProps> = {\r\n loadActivityHeader: createLoadActivityHeaderAction,\r\n};\r\n\r\nexport const Activity = connect(mapStateToProps, mapDispatchToProps)(ActivityComponent);\r\n","import React, { Fragment, FunctionComponent, MouseEvent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createMoveable, createUnselectAllAction, MoveablePassableProps } from \"@multiweb/picasso\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getWorkflowEditorInstance, isWorkflowReadOnly } from \"../selectors\";\r\n\r\ntype SetComponentProps = {\r\n readonly isGridEnabled: boolean;\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly unselectAll: () => void;\r\n} & MoveablePassableProps;\r\n\r\nconst SetComponent: FunctionComponent<SetComponentProps> = ({ picassoInstanceKey, isGridEnabled, isWorkflowReadOnly, uiComponent, onLinkChange, renderLink, renderComponent, onResizePointDown, onMouseClick, onMouseUp, onComponentMouseDown: onMouseDown, onMouseLeave, onMouseMove, wrapMapStateToProps, unselectAll }) => {\r\n const handleClick = (e: MouseEvent) => {\r\n if (!e.ctrlKey)\r\n unselectAll();\r\n };\r\n\r\n const Moveable = React.useMemo(() => createMoveable(wrapMapStateToProps), [wrapMapStateToProps]);\r\n\r\n const gridPattern = isGridEnabled && (\r\n <Fragment>\r\n <defs>\r\n <pattern id=\"smallGrid\" width=\"10\" height=\"10\" patternUnits=\"userSpaceOnUse\">\r\n <path d=\"M 10 0 L 0 0 0 10\" fill=\"none\" stroke=\"gray\" strokeWidth=\"0.5\" strokeDasharray=\"1\" />\r\n </pattern>\r\n <pattern id=\"grid\" width=\"100\" height=\"100\" patternUnits=\"userSpaceOnUse\">\r\n <rect width=\"100\" height=\"100\" fill=\"url(#smallGrid)\" />\r\n <path d=\"M 100 0 L 0 0 0 100\" fill=\"none\" stroke=\"gray\" strokeWidth=\"1\" />\r\n </pattern>\r\n </defs>\r\n <rect id={uiComponent.index + \"rect\"} width=\"100%\" height=\"100%\" fill=\"url(#grid)\" />\r\n </Fragment>\r\n );\r\n\r\n return (\r\n <Fragment>\r\n <svg width=\"100%\" height=\"100%\" style={{ display: \"block\" }} onClick={handleClick}>\r\n {gridPattern}\r\n </svg>\r\n {uiComponent.children.map(childComponent =>\r\n <Moveable\r\n key={childComponent}\r\n index={childComponent}\r\n isResizable={false}\r\n isDraggable={!isWorkflowReadOnly}\r\n {...{\r\n picassoInstanceKey,\r\n onLinkChange,\r\n renderComponent,\r\n renderLink,\r\n onMouseUp,\r\n onResizePointDown,\r\n onMouseClick,\r\n onMouseLeave,\r\n onMouseMove,\r\n onMouseDown,\r\n wrapMapStateToProps,\r\n }} />,\r\n )}\r\n </Fragment>\r\n );\r\n};\r\n\r\ntype StateProps = Pick<SetComponentProps, \"isGridEnabled\" | \"isWorkflowReadOnly\">;\r\n\r\nconst mapStateToProps: MapStateToProps<StateProps, MoveablePassableProps, IAppState> = (state, { picassoInstanceKey }) => ({\r\n isGridEnabled: getWorkflowEditorInstance(state, picassoInstanceKey).isGridEnabled,\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, picassoInstanceKey),\r\n});\r\n\r\ntype DispatchProps = Pick<SetComponentProps, \"unselectAll\">;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps<DispatchProps, MoveablePassableProps> = (dispatch, { picassoInstanceKey }) => ({\r\n unselectAll: () => dispatch(createUnselectAllAction(picassoInstanceKey)),\r\n});\r\n\r\nexport const Set = connect(mapStateToProps, mapDispatchToProps)(SetComponent);\r\n","import React, { Fragment, FunctionComponent, MouseEvent } from \"react\";\r\n\r\ntype LineProps = {\r\n readonly x1: number;\r\n readonly x2: number;\r\n readonly y1: number;\r\n readonly y2: number;\r\n readonly markerEnd?: string; // url k arrowhead\r\n readonly title: string;\r\n readonly className: string;\r\n readonly invisibleLineClassName: string;\r\n readonly onClick: (e: MouseEvent<SVGLineElement>) => void;\r\n readonly onDoubleClick: (e: MouseEvent<SVGLineElement>) => void;\r\n};\r\n\r\nexport const Line: FunctionComponent<LineProps> = ({ x1, y1, x2, y2, markerEnd, title, className, invisibleLineClassName, onClick, onDoubleClick }) => (\r\n <Fragment>\r\n <line // obsahuje 2 line-y, protože ta druhá je větší a neviditelná (zvětšuje klikatelnout oblast, ale nezvětšuje čáru)\r\n {...{ x1, y1, x2, y2, markerEnd, className }} />\r\n <line\r\n className={invisibleLineClassName}\r\n {...{ x1, y1, x2, y2, onClick, onDoubleClick }}>\r\n <title>{title}\r\n \r\n \r\n);\r\n","import React, { Fragment, FunctionComponent, MouseEvent } from \"react\";\r\n\r\ntype PointProps = {\r\n readonly cx: number;\r\n readonly cy: number;\r\n readonly className: string;\r\n readonly invisiblePointClassName: string;\r\n readonly onMouseUp?: (e: MouseEvent) => void;\r\n readonly onMouseDown: (e: MouseEvent) => void;\r\n};\r\n\r\nexport const Point: FunctionComponent = ({ cx, cy, className, invisiblePointClassName, onMouseUp, onMouseDown }) => (\r\n \r\n \r\n \r\n \r\n);\r\n","import React, { Fragment, FunctionComponent, MouseEvent, useEffect, useState } from \"react\";\r\n\r\nimport { CONST_LEFT_MOUSE_BTN, CONST_RIGHT_MOUSE_BTN, IPoint, LinkPassableProps } from \"@multiweb/picasso\";\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { PropagationStopper } from \"../components/dialogs/components\";\r\nimport { TransitionEditDialog } from \"../components/dialogs/editDialogs\";\r\nimport { ITransition } from \"../types\";\r\nimport { Line } from \"./Line\";\r\nimport { Point } from \"./Point\";\r\nimport { calcAngleDegrees, getWfStateCodes, textEllipsis } from \"./utils\";\r\n\r\nexport type TransitionComponentProps = {\r\n readonly transition: ITransition;\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly loadTransitionHeader: (picassoInstanceKey: string, picassoIndex: number, attributeValues: readonly string[]) => void;\r\n} & Pick;\r\n\r\nconst classNames = bemClassNames(\"wf-transition\");\r\nconst ghostPointClassName = classNames(\"ghost-point\");\r\nconst breakPointClassName = classNames(\"break-point\");\r\nconst headerClassName = classNames(\"header\");\r\n\r\nexport const TransitionComponent: FunctionComponent = ({ transition, picassoInstanceKey, link, isWorkflowReadOnly, isSelected, isAnyPointSelected, onLinkClick, selectPoint, updatePoints, loadTransitionHeader }) => {\r\n const [isEditDialogShown, setIsEditDialogShown] = useState(false);\r\n\r\n const lineFragments: JSX.Element[] = [];\r\n const linePoints: JSX.Element[] = [];\r\n\r\n const points = link.points;\r\n const middlePointIndex = points.length >> 1;\r\n const hasAction = transition.actions.length > 0;\r\n const hasCondition = !!transition.condition;\r\n const isActive = transition.isActive;\r\n\r\n const arrowHeadId = `triangle${transition.id}`;\r\n const lineClassName = classNames({ \"condition\": hasCondition, \"has-actions\": hasAction, \"selected\": isSelected, \"active\": isActive });\r\n const invisibleLineClassName = classNames(\"invisible-transition\", { \"selected\": isSelected, \"is-any-point-selected\": isAnyPointSelected });\r\n const invisiblePointClassName = classNames(\"invisible-point\", { \"is-any-point-selected\": isAnyPointSelected });\r\n const arrowHeadClassName = classNames(\"arrow-head\", { \"has-actions\": hasAction, \"selected\": isSelected, \"active\": isActive });\r\n\r\n useEffect(() => {\r\n const wfStateCodes = getWfStateCodes(transition.actions);\r\n if (wfStateCodes.length)\r\n loadTransitionHeader(picassoInstanceKey, transition.picassoIndex, wfStateCodes);\r\n }, [transition.actions, transition.picassoIndex, picassoInstanceKey, loadTransitionHeader]);\r\n\r\n /** Otevírá editační formulář propojení. */\r\n const onCloseEdit = () => {\r\n setIsEditDialogShown(false);\r\n };\r\n\r\n /** Událost se stará o vybrání pointu, na který bylo právě kliknuto. */\r\n const handleMouseDown = (e: MouseEvent, index: number, lastPosition: IPoint) => {\r\n if (e.buttons === CONST_LEFT_MOUSE_BTN && !isWorkflowReadOnly)\r\n selectPoint(index, { x: e.clientX, y: e.clientY }, lastPosition);\r\n };\r\n\r\n /** Událost se stará o otevírání editačního dialogu. */\r\n const onDoubleClick = (e: MouseEvent) => {\r\n if (!e.ctrlKey && isSelected) // Zabránění případu otevření editačního dialogu při hromadném výběru...\r\n setIsEditDialogShown(true);\r\n };\r\n\r\n for (let i = 0; i < points.length - 1; i++) {\r\n const startPoint = points[i];\r\n const endPoint = points[i + 1];\r\n const ghostPoint = { x: (startPoint.x + endPoint.x) / 2, y: (startPoint.y + endPoint.y) / 2 };\r\n const pointId = transition.id + \"_point_\";\r\n const key = transition.id + \"_line_\" + i;\r\n\r\n /** Událost se stará o vytvoření break pointu z ghost pointu. */\r\n const handleGhostPointMouseDown = (e: MouseEvent) => {\r\n if (e.buttons !== CONST_LEFT_MOUSE_BTN || isWorkflowReadOnly)\r\n return;\r\n\r\n const newPoints = [...points];\r\n\r\n const newPoint: IPoint = {\r\n x: Math.round(ghostPoint.x),\r\n y: Math.round(ghostPoint.y),\r\n };\r\n\r\n newPoints.splice(i + 1, 0, newPoint);\r\n\r\n updatePoints(newPoints);\r\n selectPoint(i + 1, { x: e.clientX, y: e.clientY }, ghostPoint);\r\n };\r\n\r\n /** Událost se stará o smazání break pointu z transition. */\r\n const handleMouseUp = (e: MouseEvent) => {\r\n const nextPointIndex = i + 1;\r\n const isPressedPointTheLast = nextPointIndex === points.length - 1;\r\n\r\n if (isWorkflowReadOnly || isPressedPointTheLast || e.button !== CONST_RIGHT_MOUSE_BTN)\r\n return;\r\n\r\n const newPoints = points.filter((_point, index) => index !== nextPointIndex);\r\n updatePoints(newPoints);\r\n };\r\n\r\n lineFragments.push(\r\n ,\r\n );\r\n\r\n if (i + 1 === middlePointIndex)\r\n lineFragments.push(\r\n \r\n {transition.header}\r\n {textEllipsis(transition.header)}\r\n ,\r\n );\r\n\r\n if (!isSelected)\r\n continue;\r\n\r\n if (i === 0)\r\n linePoints.push(\r\n handleMouseDown(e, i, startPoint)} />,\r\n );\r\n\r\n if (i + 1 !== points.length)\r\n linePoints.push(\r\n handleMouseDown(e, i + 1, endPoint)} {...{ invisiblePointClassName }} />,\r\n ,\r\n );\r\n }\r\n\r\n lineFragments.push(...linePoints); // musím umístit do lineFragments až naposled, aby se pointy zobrazily nad čarami\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {lineFragments}\r\n \r\n {isEditDialogShown &&\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createLoadTransitionHeaderAction } from \"../actions\";\r\nimport { getTransitionByIndex, isWorkflowReadOnly } from \"../selectors\";\r\nimport { TransitionComponent, TransitionComponentProps } from \"./TransitionComponent\";\r\n\r\ntype TransitionProps = Pick;\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { picassoInstanceKey, link }) => ({\r\n transition: getTransitionByIndex(state, picassoInstanceKey, link.index),\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, picassoInstanceKey),\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = {\r\n loadTransitionHeader: createLoadTransitionHeaderAction,\r\n};\r\n\r\nexport const Transition = connect(mapStateToProps, mapDispatchToProps)(TransitionComponent);\r\n","export * from \"./Activity\";\r\nexport * from \"./Set\";\r\nexport * from \"./Transition\";\r\n","import React from \"react\";\r\n\r\nimport { LinkPassableProps, MoveablePassableProps } from \"@multiweb/picasso\";\r\nimport { Activity, Set, Transition } from \"./picassoComponents\";\r\n\r\n/** Vrací Aktivitu/Sadu pro piccaso komponentu Moveable. */\r\nexport const moveableRenderer = (name: string, props: MoveablePassableProps): JSX.Element => {\r\n if (name === \"activity\")\r\n return (React.createElement(Activity, props, null));\r\n return (React.createElement(Set, props, null));\r\n};\r\n\r\n/** Vrací komponentu (ve WF propojení) reprezentující picasso Link. */\r\nexport const linkRenderer = (_name: string, props: LinkPassableProps): JSX.Element => {\r\n return (React.createElement(Transition, props, null));\r\n};\r\n","import React, { FunctionComponent, ReactElement } from \"react\";\r\n\r\nimport { AlignItems, FlexDirection, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nconst classNames = bemClassNames(\"legend-item\");\r\nconst legendHeader = classNames(\"header-text\");\r\nconst legendDescription = classNames(\"description-text\");\r\n\r\nexport type LegendItemComponentProps = {\r\n /** ikona legendy */\r\n readonly legendItemIcon: ReactElement;\r\n /** text předávaný header */\r\n readonly legendItemHeaderText: string;\r\n /** text předávaný description */\r\n readonly legendItemDescriptionText: string;\r\n};\r\n\r\nexport const LegendItemComponent: FunctionComponent = ({ legendItemIcon, legendItemHeaderText, legendItemDescriptionText }) => (\r\n \r\n \r\n {legendItemIcon}\r\n \r\n

{legendItemHeaderText}

\r\n
\r\n
\r\n

{legendItemDescriptionText}

\r\n
\r\n);\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { LegendItemComponent, LegendItemComponentProps } from \"../LegendItemComponent/LegendItemComponent\";\r\n\r\ntype StateProps = Pick;\r\n\r\nexport type LegendItemProps = {\r\n /** lokalizační klíč pro text předávaný header */\r\n readonly legendItemHeaderLocKey: string;\r\n /** lokalizační klíč pro text předávaný description */\r\n readonly legendItemDescriptionLocKey: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { legendItemHeaderLocKey, legendItemDescriptionLocKey }) => ({\r\n legendItemHeaderText: getPrimaryText(state, legendItemHeaderLocKey) ?? \"\",\r\n legendItemDescriptionText: getPrimaryText(state, legendItemDescriptionLocKey) ?? \"\",\r\n});\r\n\r\nexport const LegendItem = connect(mapStateToProps)(LegendItemComponent);\r\n","export * from \"./LegendItem\";\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps, MergeProps } from \"react-redux\";\r\n\r\nimport { ButtonBackgroundColor, Display, JustifyContent, Layout, SpacingSize, TextButton, TextColor } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, QAProps } from \"@multiweb/types/react\";\r\nimport { LOC_EXPLORE, LOC_MANAGE } from \"../../../locKeys\";\r\nimport { isWorkflowReadOnly } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\n\r\ntype ManageButtonComponentProps = {\r\n readonly onClick: () => void;\r\n readonly text: string;\r\n} & QAProps;\r\n\r\nconst ManageButtonComponent: FunctionComponent = ({ onClick, text }) => (\r\n \r\n \r\n \r\n);\r\n\r\ntype ManageButtonProps = Pick & WorkflowEditorProps;\r\n\r\ntype StateProps = {\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly manageText: string;\r\n readonly exploreText: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n manageText: getPrimaryText(state, LOC_MANAGE) ?? \"Spravovat\",\r\n exploreText: getPrimaryText(state, LOC_EXPLORE) ?? \"Prozkoumat\",\r\n});\r\n\r\nconst mergeProps: MergeProps = (\r\n { isWorkflowReadOnly, manageText, exploreText },\r\n _dispatchProps,\r\n ownProps) => ({\r\n ...ownProps,\r\n text: isWorkflowReadOnly ? exploreText : manageText,\r\n});\r\n\r\nexport const ManageButton = connect(mapStateToProps, undefined, mergeProps)(ManageButtonComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\n\r\nimport { Icon, Text, TextColor, WhiteSpace } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\nconst classNames = bemClassNames(\"property-row-component\");\r\nconst valueContainer = classNames(\"value-container\");\r\nconst iconSection = classNames(\"icon-section\");\r\nconst { valueToEnumValue } = bridge;\r\n\r\nexport type PropertyRowComponentProps = {\r\n readonly description: string;\r\n readonly value: string;\r\n readonly iconName?: string;\r\n readonly isItemSelected?: boolean;\r\n readonly isSelectable?: boolean;\r\n readonly onClick?: () => void;\r\n readonly onDoubleClick?: () => void;\r\n};\r\n\r\nexport const PropertyRowComponent: FunctionComponent = ({ description, value, iconName, isItemSelected, isSelectable = false, onClick, onDoubleClick }) => {\r\n const [isMouseOver, setIsMouseOver] = useState(false);\r\n const iconCode: IconCode | undefined = valueToEnumValue(IconCode, iconName ?? \"\");\r\n\r\n const onMouseOver = () => {\r\n if (isSelectable && !isMouseOver)\r\n setIsMouseOver(true);\r\n };\r\n\r\n const onMouseLeave = () => {\r\n if (isSelectable && isMouseOver)\r\n setIsMouseOver(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n {iconCode &&
}\r\n \r\n
\r\n \r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { PropertyRowComponent, PropertyRowComponentProps } from \"./PropertyRowComponent\";\r\n\r\ntype StateProps = Pick;\r\n\r\ntype PropertyRowProps = {\r\n readonly descriptionLocKey: string;\r\n};\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { descriptionLocKey }) => ({\r\n description: getPrimaryText(state, descriptionLocKey) ?? \"\",\r\n});\r\n\r\nexport const PropertyRow = connect(mapStateToProps)(PropertyRowComponent);\r\n","export * from \"./LegendItem\";\r\nexport * from \"./ManageButton\";\r\nexport * from \"./PropertyRow\";\r\nexport * from \"./PropertyRowComponent\";\r\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState } from \"../../../actions\";\r\nimport { ActivityEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_ACTIONS } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer } from \"../../../selectors\";\r\nimport { IAction, WorkflowEditorProps } from \"../../../types\";\r\nimport { ActivityEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype ActionsContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly actions: readonly IAction[];\r\n readonly updateActivityPanelState: (isExpanded: boolean) => void;\r\n readonly actionsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst ActionsContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, actions, isOpen, updateActivityPanelState, actionsText }) => {\r\n const [isShown, setIsShown] = useState(false);\r\n const [selectedActionIndex, setSelectedActionIndex] = useState(undefined);\r\n\r\n useEffect(() => {\r\n setSelectedActionIndex(undefined); // TODO popřemýšlet, jestli nedat spíš do openEditDialog?\r\n }, [actions]);\r\n\r\n const openEditDialog = () => {\r\n setIsShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsShown(false);\r\n };\r\n\r\n return (\r\n \r\n {actions.map((action, index) =>\r\n setSelectedActionIndex(index)} descriptionLocKey={action.locKey} value={action.name} isItemSelected={selectedActionIndex === index} isSelectable />,\r\n )}\r\n \r\n {isShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"ACTIONS\").isOpen,\r\n actionsText: getPrimaryText(state, LOC_ACTIONS) ?? \"Akce\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateActivityPanelState: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"ACTIONS\", isExpanded)),\r\n});\r\n\r\nexport const ActionsContainer = connect(mapStateToProps, mapDispatchToProps)(ActionsContainerComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState } from \"../../../actions\";\r\nimport { LOC_ACTIVE_PARTICIPANTS } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer } from \"../../../selectors\";\r\nimport { IParticipant, WorkflowEditorProps } from \"../../../types\";\r\nimport { PropertyRow } from \"../components\";\r\n\r\ntype ActiveParticipantsContainerProps = {\r\n readonly activeParticipants: readonly IParticipant[];\r\n readonly isOpen: boolean;\r\n readonly onActivityCollapsibleChanged: (isExpanded: boolean) => void;\r\n readonly activeParticipantsText: string;\r\n};\r\n\r\nconst ActiveParticipantsContainerComponent: FunctionComponent = ({ activeParticipants, isOpen, onActivityCollapsibleChanged, activeParticipantsText }) => (\r\n \r\n {activeParticipants.map(({ locKey, name }, index) =>\r\n ,\r\n )}\r\n \r\n);\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"ACTIVE_PARTICIPANTS\").isOpen,\r\n activeParticipantsText: getPrimaryText(state, LOC_ACTIVE_PARTICIPANTS) ?? \"\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n onActivityCollapsibleChanged: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"ACTIVE_PARTICIPANTS\", isExpanded)),\r\n});\r\n\r\nexport const ActiveParticipantsContainer = connect(mapStateToProps, mapDispatchToProps)(ActiveParticipantsContainerComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState } from \"../../../actions\";\r\nimport { ActivityEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_CONDITION, LOC_DESCRIPTION, LOC_ID, LOC_INHERIT_PARTICIPANTS, LOC_INPUT_TRANS_TYPE, LOC_KILL_CHILDREN, LOC_NAME, LOC_ORDER, LOC_PROPERTIES, LOC_WF_HISTORY } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer } from \"../../../selectors\";\r\nimport { IActivity, WorkflowEditorProps } from \"../../../types\";\r\nimport { ActivityEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype ActivityPropertiesContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly activity: IActivity;\r\n readonly updateActivityPanelState: (isExpanded: boolean) => void;\r\n readonly propertiesText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst ActivityPropertiesContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, activity, isOpen, updateActivityPanelState, propertiesText }) => {\r\n const [isEditDialogShown, setIsEditDialogShown] = useState(false);\r\n\r\n const onManageButtonClick = () => {\r\n setIsEditDialogShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsEditDialogShown(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isEditDialogShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"PROPERTIES\").isOpen,\r\n propertiesText: getPrimaryText(state, LOC_PROPERTIES) ?? \"Vlastnosti\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateActivityPanelState: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"PROPERTIES\", isExpanded)),\r\n});\r\n\r\nexport const ActivityPropertiesContainer = connect(mapStateToProps, mapDispatchToProps)(ActivityPropertiesContainerComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible, Icon, IconColor } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateGeneralCollapsibleState } from \"../../../actions\";\r\nimport { LOC_BASIC_CONDITION, LOC_CONTAINS_ACTIONS, LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY, LOC_KILL_CHILDREN, LOC_LEGEND, LOC_LEGEND_BASIC_CONDITION_DESCRIPTION, LOC_LEGEND_CONTAINS_ACTIONS_DESCRIPTION, LOC_LEGEND_CONTAINS_BASIC_CONDITION_DESCRIPTION, LOC_LEGEND_INHERIT_PARTICIPANTS_DESCRIPTION, LOC_LEGEND_KILL_CHILDREN_DESCRIPTION, LOC_LEGEND_ONGOING_DESCRIPTION, LOC_LEGEND_ONLINE_EVAL_CONDITION_DESCRIPTION, LOC_LEGEND_PERTIENCE_DESCRIPTION, LOC_LEGEND_TYPE_FOR_JOIN_DESCRIPTION, LOC_ONGOING_ACTIVITY, LOC_ONLINE_EVAL_CONDITION, LOC_PERTINENCE_TO_SETS, LOC_TYPE_FOR_JOIN } from \"../../../locKeys\";\r\nimport { getGeneralPanelStateContainer } from \"../../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { LegendItem } from \"../components/LegendItem\";\r\n\r\nconst transitionClassNames = bemClassNames(\"wf-transition\");\r\n\r\ntype LegendContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly updateLegendPanelState: (isExpanded: boolean) => void;\r\n readonly legendText: string;\r\n};\r\n\r\nconst LegendContainerComponent: FunctionComponent = ({ isOpen, legendText, updateLegendPanelState }) => (\r\n \r\n }\r\n legendItemHeaderLocKey={LOC_PERTINENCE_TO_SETS}\r\n legendItemDescriptionLocKey={LOC_LEGEND_PERTIENCE_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_KILL_CHILDREN}\r\n legendItemDescriptionLocKey={LOC_LEGEND_KILL_CHILDREN_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_ONGOING_ACTIVITY}\r\n legendItemDescriptionLocKey={LOC_LEGEND_ONGOING_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_INHERIT_PARTICIPANTS_FROM_PREVIOUS_ACTIVITY}\r\n legendItemDescriptionLocKey={LOC_LEGEND_INHERIT_PARTICIPANTS_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_TYPE_FOR_JOIN}\r\n legendItemDescriptionLocKey={LOC_LEGEND_TYPE_FOR_JOIN_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_ONLINE_EVAL_CONDITION}\r\n legendItemDescriptionLocKey={LOC_LEGEND_ONLINE_EVAL_CONDITION_DESCRIPTION} />\r\n }\r\n legendItemHeaderLocKey={LOC_BASIC_CONDITION}\r\n legendItemDescriptionLocKey={LOC_LEGEND_CONTAINS_BASIC_CONDITION_DESCRIPTION} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n legendItemHeaderLocKey={LOC_BASIC_CONDITION}\r\n legendItemDescriptionLocKey={LOC_LEGEND_BASIC_CONDITION_DESCRIPTION} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n legendItemHeaderLocKey={LOC_CONTAINS_ACTIONS}\r\n legendItemDescriptionLocKey={LOC_LEGEND_CONTAINS_ACTIONS_DESCRIPTION} />\r\n \r\n);\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getGeneralPanelStateContainer(state, hostKey, \"LEGEND\").isOpen,\r\n legendText: getPrimaryText(state, LOC_LEGEND) ?? \"Legenda\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateLegendPanelState: (isExpanded) => dispatch(createUpdateGeneralCollapsibleState(hostKey, \"LEGEND\", isExpanded)),\r\n});\r\n\r\nexport const LegendContainer = connect(mapStateToProps, mapDispatchToProps)(LegendContainerComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState } from \"../../../actions\";\r\nimport { ActivityEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_PARTICIPANTS } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer } from \"../../../selectors\";\r\nimport { IParticipant, WorkflowEditorProps } from \"../../../types\";\r\nimport { ActivityEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype ParticipantsContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly participants: readonly IParticipant[];\r\n readonly onActivityCollapsibleChanged: (isExpanded: boolean) => void;\r\n readonly participantsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst ParticipantsContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, participants, isOpen, onActivityCollapsibleChanged, participantsText }) => {\r\n const [isShown, setIsShown] = useState(false);\r\n\r\n const onManageButtonClick = () => {\r\n setIsShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsShown(false);\r\n };\r\n\r\n return (\r\n \r\n {participants.map(({ locKey, name }, index) => )}\r\n \r\n {isShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"PARTICIPANTS\").isOpen,\r\n participantsText: getPrimaryText(state, LOC_PARTICIPANTS) ?? \"Hráči\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n onActivityCollapsibleChanged: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"PARTICIPANTS\", isExpanded)),\r\n});\r\n\r\nexport const ParticipantsContainer = connect(mapStateToProps, mapDispatchToProps)(ParticipantsContainerComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState, createUpdateWorkflowViewAction } from \"../../../actions\";\r\nimport { LOC_PERTINENCE_TO_SETS } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer, getSelectedSetId } from \"../../../selectors\";\r\nimport { IPosition, WorkflowEditorProps } from \"../../../types\";\r\nimport { PropertyRowComponent } from \"../components\";\r\n\r\ntype PertienceToSetsContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly activityId: string;\r\n readonly selectedSetId: string;\r\n readonly positions: readonly IPosition[];\r\n readonly updateActivityPanelState: (isExpanded: boolean) => void;\r\n readonly updateWorkflowView: (setId: string, selectedActivityId?: string) => void;\r\n readonly pertinenceToSetsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst PertienceToSetsContainerComponent: FunctionComponent = ({ positions, activityId, selectedSetId, isOpen, updateActivityPanelState, updateWorkflowView, pertinenceToSetsText }) => {\r\n const handleClick = (setId: string) => {\r\n if (selectedSetId !== setId)\r\n updateWorkflowView(setId, activityId);\r\n };\r\n\r\n return (\r\n \r\n {positions.map(({ setName, setId }) =>\r\n handleClick(setId)} value={\"\"} description={setName} />,\r\n )}\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"SETS\").isOpen,\r\n selectedSetId: getSelectedSetId(state, hostKey),\r\n pertinenceToSetsText: getPrimaryText(state, LOC_PERTINENCE_TO_SETS) ?? \"Příslušnost k sadám\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateActivityPanelState: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"SETS\", isExpanded)),\r\n updateWorkflowView: (setId, selectedActivityId) => dispatch(createUpdateWorkflowViewAction(hostKey, setId, selectedActivityId)),\r\n});\r\n\r\nexport const PertienceToSetsContainer = connect(mapStateToProps, mapDispatchToProps)(PertienceToSetsContainerComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateGeneralCollapsibleState } from \"../../../actions\";\r\nimport { LOC_DESCRIPTION, LOC_NAME, LOC_PROPERTIES } from \"../../../locKeys\";\r\nimport { getGeneralPanelStateContainer, getSelectedSet } from \"../../../selectors\";\r\nimport { ISet, WorkflowEditorProps } from \"../../../types\";\r\nimport { SetEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype SetPropertiesContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly set: ISet;\r\n readonly updateSetContainerState: (isExpanded: boolean) => void;\r\n readonly propertiesText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst SetPropertiesContainerComponent: FunctionComponent = ({ hostKey, set, isOpen, updateSetContainerState, propertiesText }) => {\r\n const [isEditDialogShown, setIsEditDialogShown] = useState(false);\r\n\r\n const onManageButtonClick = () => {\r\n setIsEditDialogShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsEditDialogShown(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isEditDialogShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n set: getSelectedSet(state, hostKey),\r\n isOpen: getGeneralPanelStateContainer(state, hostKey, \"SET\").isOpen,\r\n propertiesText: getPrimaryText(state, LOC_PROPERTIES) ?? \"Vlastnosti\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateSetContainerState: (isExpanded) => dispatch(createUpdateGeneralCollapsibleState(hostKey, \"SET\", isExpanded)),\r\n});\r\n\r\nexport const SetPropertiesContainer = connect(mapStateToProps, mapDispatchToProps)(SetPropertiesContainerComponent);\r\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateTransitionCollapsibleState } from \"../../../actions\";\r\nimport { TransitionEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_ACTIONS } from \"../../../locKeys\";\r\nimport { getTransitionPanelStateContainer } from \"../../../selectors\";\r\nimport { IAction, WorkflowEditorProps } from \"../../../types\";\r\nimport { TransitionEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype TransitionActionsContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly actions: readonly IAction[];\r\n readonly updateTransitionPanelState: (isExpanded: boolean) => void;\r\n readonly actionsText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst TransitionActionsContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, actions, isOpen, updateTransitionPanelState, actionsText }) => {\r\n const [isShown, setIsShown] = useState(false);\r\n const [selectedActionIndex, setSelectedActionIndex] = useState(undefined);\r\n\r\n useEffect(() => {\r\n setSelectedActionIndex(undefined);\r\n }, [actions]);\r\n\r\n const openEditDialog = () => {\r\n setIsShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsShown(false);\r\n };\r\n\r\n return (\r\n \r\n {actions.map(({ locKey, name }, index) =>\r\n setSelectedActionIndex(index)} descriptionLocKey={locKey} value={name} isItemSelected={selectedActionIndex === index} isSelectable />,\r\n )}\r\n \r\n {isShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getTransitionPanelStateContainer(state, hostKey, \"ACTIONS\").isOpen,\r\n actionsText: getPrimaryText(state, LOC_ACTIONS) ?? \"Akce\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateTransitionPanelState: (isExpanded) => dispatch(createUpdateTransitionCollapsibleState(hostKey, \"ACTIONS\", isExpanded)),\r\n});\r\n\r\nexport const TransitionActionsContainer = connect(mapStateToProps, mapDispatchToProps)(TransitionActionsContainerComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateTransitionCollapsibleState } from \"../../../actions\";\r\nimport { TransitionEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_CONDITION, LOC_ID, LOC_NAME, LOC_PROPERTIES } from \"../../../locKeys\";\r\nimport { getTransitionPanelStateContainer } from \"../../../selectors\";\r\nimport { ITransition, WorkflowEditorProps } from \"../../../types\";\r\nimport { TransitionEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype TransitionPropertiesContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly transition: ITransition;\r\n readonly updateTransitionPanelState: (isExpanded: boolean) => void;\r\n readonly propertiesText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst TransitionPropertiesContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, transition, isOpen, updateTransitionPanelState, propertiesText }) => {\r\n const [isShown, setIsShown] = useState(false);\r\n\r\n const onManageButtonClick = () => {\r\n setIsShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsShown(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getTransitionPanelStateContainer(state, hostKey, \"PROPERTIES\").isOpen,\r\n propertiesText: getPrimaryText(state, LOC_PROPERTIES) ?? \"Vlastnosti\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateTransitionPanelState: (isExpanded) => dispatch(createUpdateTransitionCollapsibleState(hostKey, \"PROPERTIES\", isExpanded)),\r\n});\r\n\r\nexport const TransitionPropertiesContainer = connect(mapStateToProps, mapDispatchToProps)(TransitionPropertiesContainerComponent);\r\n","import React, { FunctionComponent, useEffect, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateActivityCollapsibleState } from \"../../../actions\";\r\nimport { ActivityEditDialogTabsIndex } from \"../../../enums\";\r\nimport { LOC_TRIGGERS } from \"../../../locKeys\";\r\nimport { getActivityPanelStateContainer } from \"../../../selectors\";\r\nimport { ITrigger, WorkflowEditorProps } from \"../../../types\";\r\nimport { ActivityEditDialog } from \"../../dialogs/editDialogs\";\r\nimport { ManageButton, PropertyRow } from \"../components\";\r\n\r\ntype TriggersContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly picassoIndex: number;\r\n readonly triggers: readonly ITrigger[];\r\n readonly updateActivityPanelState: (isExpanded: boolean) => void;\r\n readonly triggersText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst TriggersContainerComponent: FunctionComponent = ({ hostKey, picassoIndex, triggers, isOpen, triggersText, updateActivityPanelState }) => {\r\n const [isShown, setIsShown] = useState(false);\r\n const [selectedTriggerIndex, setSelectedTriggerIndex] = useState(undefined);\r\n\r\n useEffect(() => {\r\n setSelectedTriggerIndex(undefined);\r\n }, [triggers]);\r\n\r\n const openEditDialog = () => {\r\n setIsShown(true);\r\n };\r\n\r\n const onCloseEdit = () => {\r\n setIsShown(false);\r\n };\r\n\r\n return (\r\n \r\n {triggers.map(({ locKey, name, properties }, index) =>\r\n setSelectedTriggerIndex(index)} descriptionLocKey={locKey} value={name} iconName={properties.iconName} isItemSelected={selectedTriggerIndex === index} isSelectable />,\r\n )}\r\n \r\n {isShown && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getActivityPanelStateContainer(state, hostKey, \"TRIGGERS\").isOpen,\r\n triggersText: getPrimaryText(state, LOC_TRIGGERS) ?? \"Spouštěče\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateActivityPanelState: (isExpanded) => dispatch(createUpdateActivityCollapsibleState(hostKey, \"TRIGGERS\", isExpanded)),\r\n});\r\n\r\nexport const TriggersContainer = connect(mapStateToProps, mapDispatchToProps)(TriggersContainerComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Collapsible } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateGeneralCollapsibleState } from \"../../../actions\";\r\nimport { LOC_VARIABLES } from \"../../../locKeys\";\r\nimport { getGeneralPanelStateContainer, getVariables } from \"../../../selectors\";\r\nimport { IVariable, WorkflowEditorProps } from \"../../../types\";\r\nimport { PropertyRowComponent } from \"../components\";\r\n\r\ntype VariablesContainerProps = {\r\n readonly isOpen: boolean;\r\n readonly variables: readonly IVariable[];\r\n readonly updateVariablesPanelState: (isExpanded: boolean) => void;\r\n readonly variablesText: string;\r\n};\r\n\r\nconst VariablesContainerComponent: FunctionComponent = ({ isOpen, variables, updateVariablesPanelState, variablesText }) => (\r\n \r\n {variables.map(({ name, value }, index) =>\r\n ,\r\n )}\r\n \r\n);\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isOpen: getGeneralPanelStateContainer(state, hostKey, \"VARIABLES\").isOpen,\r\n variables: getVariables(state, hostKey),\r\n variablesText: getPrimaryText(state, LOC_VARIABLES) ?? \"Proměnné\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateVariablesPanelState: (isExpanded) => dispatch(createUpdateGeneralCollapsibleState(hostKey, \"VARIABLES\", isExpanded)),\r\n});\r\n\r\nexport const VariablesContainer = connect(mapStateToProps, mapDispatchToProps)(VariablesContainerComponent);\r\n","export * from \"./ActionsContainer\";\r\nexport * from \"./ActiveParticipantsContainer\";\r\nexport * from \"./ActivityPropertiesContainer\";\r\nexport * from \"./LegendContainer\";\r\nexport * from \"./ParticipantsContainer\";\r\nexport * from \"./PertienceToSetsContainer\";\r\nexport * from \"./SetPropertiesContainer\";\r\nexport * from \"./TransitionActionsContainer\";\r\nexport * from \"./TransitionPropertiesContainer\";\r\nexport * from \"./TriggersContainer\";\r\nexport * from \"./VariablesContainer\";\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Divider } from \"@multiweb/reactComponents\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getActivityByIndex, isStatusViewEnabled } from \"../../selectors\";\r\nimport { IActivity, WorkflowEditorProps } from \"../../types\";\r\nimport { ActionsContainer, ActiveParticipantsContainer, ActivityPropertiesContainer, ParticipantsContainer, PertienceToSetsContainer, TriggersContainer } from \"./containers\";\r\n\r\ntype ActivityPropertyPanelComponentProps = {\r\n readonly activity: IActivity;\r\n readonly picassoComponentId: number;\r\n readonly isStatusViewEnabled: boolean;\r\n} & WorkflowEditorProps;\r\n\r\nconst ActivityPropertyPanelComponent: FunctionComponent = ({ activity, isStatusViewEnabled, hostKey }) => {\r\n const { id: activityId, picassoIndex, actions, triggers, participants, activeParticipants, positions } = activity;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isStatusViewEnabled && \r\n \r\n \r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\ntype ActivityPropertyPanelProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey, picassoComponentId }) => ({\r\n activity: getActivityByIndex(state, hostKey, picassoComponentId),\r\n isStatusViewEnabled: isStatusViewEnabled(state, hostKey),\r\n});\r\n\r\nexport const ActivityPropertyPanel = connect(mapStateToProps)(ActivityPropertyPanelComponent);\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Divider } from \"@multiweb/reactComponents\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { isStatusViewEnabled } from \"../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../types\";\r\nimport { LegendContainer, SetPropertiesContainer, VariablesContainer } from \"./containers\";\r\n\r\ntype GeneralPropertyPanelComponentProps = {\r\n readonly isStatusViewEnabled: boolean;\r\n} & WorkflowEditorProps;\r\n\r\nconst GeneralPropertyPanelComponent: FunctionComponent = ({ hostKey, isStatusViewEnabled }) => (\r\n \r\n {isStatusViewEnabled &&\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\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n isStatusViewEnabled: isStatusViewEnabled(state, hostKey),\r\n});\r\n\r\nexport const GeneralPropertyPanel = connect(mapStateToProps)(GeneralPropertyPanelComponent);\r\n","import React, { Fragment, FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { Divider } from \"@multiweb/reactComponents\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { getTransitionByIndex } from \"../../selectors\";\r\nimport { ITransition, WorkflowEditorProps } from \"../../types\";\r\nimport { TransitionActionsContainer, TransitionPropertiesContainer } from \"./containers\";\r\n\r\ntype TransitionPropertyPanelComponentProps = {\r\n readonly transition: ITransition;\r\n} & WorkflowEditorProps;\r\n\r\nconst TransitionPropertyPanelComponent: FunctionComponent = ({ hostKey, transition }) => {\r\n const { actions, picassoIndex } = transition;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\ntype TransitionPropertyPanelProps = {\r\n readonly picassoLinkId: number;\r\n} & WorkflowEditorProps;\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey, picassoLinkId }) => ({\r\n transition: getTransitionByIndex(state, hostKey, picassoLinkId),\r\n});\r\n\r\nexport const TransitionPropertyPanel = connect(mapStateToProps)(TransitionPropertyPanelComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { EntityType } from \"@multiweb/picasso\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createGetSelectedWfElement } from \"../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../types\";\r\nimport { ActivityPropertyPanel } from \"./ActivityPropertyPanel\";\r\nimport { GeneralPropertyPanel } from \"./GeneralPropertyPanel\";\r\nimport { TransitionPropertyPanel } from \"./TransitionPropertyPanel\";\r\n\r\ntype PropertyPanelProps = {\r\n readonly selectedPicassoEntityType: EntityType | undefined;\r\n readonly picassoIndex: number | undefined;\r\n} & WorkflowEditorProps;\r\n\r\nconst PropertyPanelComponent: FunctionComponent = ({ hostKey, selectedPicassoEntityType, picassoIndex }) => {\r\n if (selectedPicassoEntityType == null)\r\n return ;\r\n if (selectedPicassoEntityType === EntityType.component && picassoIndex !== undefined)\r\n return ;\r\n if (selectedPicassoEntityType === EntityType.link && picassoIndex !== undefined)\r\n return ;\r\n return null;\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst createMapStateToProps: () => MapStateToProps = () => {\r\n const getSelectedWfElement = createGetSelectedWfElement();\r\n\r\n return (state, { hostKey }) => {\r\n const selectedWfEntity = getSelectedWfElement(state, hostKey);\r\n\r\n return {\r\n selectedPicassoEntityType: selectedWfEntity?.type,\r\n picassoIndex: selectedWfEntity?.index,\r\n };\r\n };\r\n};\r\n\r\nexport const PropertyPanel = connect(createMapStateToProps)(PropertyPanelComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { bemClassNames, createQA } from \"@multiweb/reactUtils\";\r\nimport { WorkflowEditorProps } from \"../../types\";\r\nimport { PropertyPanel } from \"./PropertyPanel\";\r\n\r\nconst classNames = bemClassNames(\"wf-editor-property-panel\");\r\nconst wfPropertyCardStyle = classNames();\r\n\r\nconst wfEditorPropertyPanelDataQA = createQA(\"wf-editor-property-panel\");\r\n\r\nexport const PropertyPanelContainer: FunctionComponent = ({ hostKey }) => (\r\n
\r\n \r\n
\r\n);\r\n","import React, { FunctionComponent, ReactNode, useState } from \"react\";\r\n\r\nimport { ButtonBackgroundColor, ComponentSize, Display, Divider, JustifyContent, Layout, LocalizationProvider, ModalWindow, SpacingSize, TextButton, TextColor } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\n\r\nexport type BasicDialogComponentProps = {\r\n readonly children: ReactNode[];\r\n readonly headerLocKey: string;\r\n readonly noItemsLocKey: string;\r\n readonly buttonDisabled: boolean;\r\n readonly onCloseChange: () => void;\r\n readonly onConfirmClick: () => void;\r\n readonly cancelText: string;\r\n readonly confirmationButtonText: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"basic-dialog-component\");\r\nconst dialogClassName = classNames();\r\nconst noItemsClassName = classNames(\"no-items-message\");\r\nconst containerClassName = classNames(\"items-container\");\r\nconst basicDialogHeaderClassName = classNames(\"basic-dialog-header\");\r\n\r\nexport const BasicDialogComponent: FunctionComponent = ({\r\n children,\r\n headerLocKey,\r\n noItemsLocKey,\r\n buttonDisabled,\r\n onCloseChange,\r\n onConfirmClick,\r\n confirmationButtonText,\r\n cancelText,\r\n}) => {\r\n const [isDisplayed, setIsDisplayed] = useState(true);\r\n\r\n const closeEdit = () => {\r\n setIsDisplayed(false);\r\n };\r\n\r\n const handleOnCofirmClick = () => {\r\n onConfirmClick();\r\n closeEdit();\r\n };\r\n\r\n const noItemsMessageRenderer = () => (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {children.length === 0 ?\r\n noItemsMessageRenderer() : children\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 { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { BasicDialogComponent, BasicDialogComponentProps } from \"./BasicDialogComponent\";\r\n\r\nexport type BasicDialogProps = {\r\n readonly cancelTextLocKey: string;\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { cancelTextLocKey }) => ({\r\n cancelText: getPrimaryText(state, cancelTextLocKey) ?? \"\",\r\n});\r\n\r\nexport const BasicDialog = connect(mapStateToProps)(BasicDialogComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\n\r\nimport { LOC_CANCEL, LOC_CHOOSE_SET_TO_DUPLICATE_TO, LOC_NO_SETS_MESSAGE } from \"../../../../locKeys\";\r\nimport { IActivity, ISet } from \"../../../../types\";\r\nimport { UiWorkflow } from \"../../../../UiWorkflow\";\r\nimport { BasicDialog } from \"../../BasicDialog\";\r\nimport { BasicDialogItem } from \"../../components\";\r\n\r\nexport type DuplicateActivityDialogComponentProps = {\r\n readonly activeSetId: string;\r\n readonly selectedActivities: readonly IActivity[];\r\n readonly existingsSets: readonly ISet[];\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly updateWorkflowView: (setId: string, selectedActivityId?: string, selectedTransitionId?: string) => void;\r\n readonly onCancelClick: () => void;\r\n readonly duplicateText: string;\r\n};\r\n\r\nexport const DuplicateActivityDialogComponent: FunctionComponent = ({\r\n activeSetId,\r\n selectedActivities,\r\n existingsSets,\r\n uiWorkflow,\r\n updateWorkflowView,\r\n onCancelClick,\r\n duplicateText,\r\n}) => {\r\n const [selectedSetId, setSelectedSetId] = useState(activeSetId);\r\n\r\n const handleDuplicateClick = () => {\r\n if (selectedActivities) {\r\n const selectedActivitiesIds = selectedActivities.map(act => act.id);\r\n const newDuplicatedActivityId = uiWorkflow.workflow.duplicateActivities(selectedActivitiesIds, selectedSetId, activeSetId);\r\n updateWorkflowView(selectedSetId, newDuplicatedActivityId);\r\n }\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n if (selectedSetId !== undefined)\r\n handleDuplicateClick();\r\n };\r\n\r\n return (\r\n \r\n {existingsSets.map(({ name, id }) =>\r\n setSelectedSetId(id)}\r\n {...{ name }} />,\r\n )}\r\n \r\n );\r\n};\r\n","export * from \"./DuplicateActivityDialogComponent\";\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateWorkflowViewAction } from \"UI/UI.React/workflowEditor/actions\";\r\nimport { createGetOrderedSets, createGetSelectedActivities, getSelectedSetId } from \"UI/UI.React/workflowEditor/selectors\";\r\nimport { WorkflowEditorProps } from \"UI/UI.React/workflowEditor/types\";\r\nimport { DuplicateActivityDialogComponent, DuplicateActivityDialogComponentProps } from \"../DuplicateActivityDialogComponent\";\r\n\r\nexport type DuplicateActivityDialogProps = {\r\n readonly duplicateTextLocKey: string;\r\n} & WorkflowEditorProps & Pick;\r\n\r\ntype StateProps = Pick;\r\ntype DispatchProps = Pick;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: DuplicateActivityDialogProps) => MapStateToProps = () => {\r\n const getSelectedActivities = createGetSelectedActivities();\r\n const getOrderedSets = createGetOrderedSets();\r\n\r\n return (state, { hostKey, duplicateTextLocKey }) => ({\r\n activeSetId: getSelectedSetId(state, hostKey),\r\n existingsSets: getOrderedSets(state, hostKey),\r\n selectedActivities: getSelectedActivities(state, hostKey),\r\n setId: getSelectedSetId(state, hostKey),\r\n duplicateText: getPrimaryText(state, duplicateTextLocKey) ?? \"\",\r\n });\r\n};\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateWorkflowView: (setId, selectedActivityId, selectedTransitionId) => dispatch(createUpdateWorkflowViewAction(hostKey, setId, selectedActivityId, selectedTransitionId)),\r\n});\r\n\r\nexport const DuplicateActivityDialog = connect(createMapStateToProps, mapDispatchToProps)(DuplicateActivityDialogComponent);\r\n","export * from \"./DuplicateActivityDialog\";\r\n","import React, { FunctionComponent, MouseEvent, useMemo, useState } from \"react\";\r\n\r\nimport { MouseButton } from \"@multiweb/types/react\";\r\nimport { LOC_CANCEL, LOC_CHOOSE_ACTIVITIES_TO_ADD, LOC_NO_EXISTING_ACTIVITIES_MESSAGE } from \"../../../../locKeys\";\r\nimport { UiWorkflow } from \"../../../../UiWorkflow\";\r\nimport { Activity } from \"../../../../workflowModel\";\r\nimport { BasicDialog } from \"../../BasicDialog\";\r\nimport { BasicDialogItem } from \"../../components\";\r\n\r\nexport type ExistingActivitiesDialogComponentProps = {\r\n readonly selectedSetId: string;\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly onAddClick: (activitiesToAdd: Activity[]) => void;\r\n readonly onCancelClick: () => void;\r\n readonly addText: string;\r\n};\r\n\r\nexport const ExistingActivitiesDialogComponent: FunctionComponent = ({\r\n selectedSetId,\r\n uiWorkflow,\r\n onAddClick,\r\n onCancelClick,\r\n addText,\r\n}) => {\r\n const [selectedActivitiesIndexes, setSelectedActivitiesIndexes] = useState([]);\r\n\r\n const existingActivities = useMemo(() => uiWorkflow.workflow.getExistingActivities(selectedSetId).sort((a, b) => a.name.localeCompare(b.name)), [selectedSetId, uiWorkflow.workflow]);\r\n\r\n const handleAddClick = () => {\r\n onAddClick(selectedActivitiesIndexes.map(selectedActivityIndex => existingActivities[selectedActivityIndex]));\r\n };\r\n\r\n const handleItemClick = (e: MouseEvent, activityIndex: number) => {\r\n if (e.ctrlKey && e.button === MouseButton.leftButton) {\r\n if (selectedActivitiesIndexes.includes(activityIndex))\r\n setSelectedActivitiesIndexes(selectedActivitiesIndexes.filter(activity => activity !== activityIndex));\r\n else\r\n setSelectedActivitiesIndexes(activitiesIndexes => [...activitiesIndexes, activityIndex]);\r\n } else\r\n setSelectedActivitiesIndexes([activityIndex]);\r\n };\r\n\r\n return (\r\n \r\n {existingActivities.map(({ name, id }, index) =>\r\n handleItemClick(e, index)}\r\n {...{ name }} />,\r\n )}\r\n \r\n );\r\n};\r\n","export * from \"./ExistingActivitiesDialogComponent\";\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { ExistingActivitiesDialogComponent, ExistingActivitiesDialogComponentProps } from \"../ExistingActivitiesDialogComponent\";\r\n\r\nexport type ExistingActivitiesDialogProps = {\r\n readonly addTextLocKey: string;\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { addTextLocKey }) => ({\r\n addText: getPrimaryText(state, addTextLocKey) ?? \"\",\r\n});\r\n\r\nexport const ExistingActivitiesDialog = connect(mapStateToProps)(ExistingActivitiesDialogComponent);\r\n","export * from \"./ExistingActivitiesDialog\";\r\n","import React, { FunctionComponent, useCallback, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getCurrentPaintingScrollPosition, getScaleIndex } from \"@multiweb/picasso\";\r\nimport { AlignItems, ButtonBackgroundColor, IconButton, IconSelectItem, Layout, Select, SelectBody } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { doNothing } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createUpdateWorkflowViewAction } from \"../../actions\";\r\nimport { LOC_ADD, LOC_COMMON, LOC_EXISTING_INTO_THE_SET, LOC_FINAL, LOC_STARTING } from \"../../locKeys\";\r\nimport { getPicassoState, getSelectedSetId } from \"../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../types\";\r\nimport { UiWorkflow } from \"../../UiWorkflow\";\r\nimport { WorkflowManager } from \"../../WorkflowManager\";\r\nimport { Activity, ActivityType, getActivityNewPosition, Position } from \"../../workflowModel\";\r\nimport { ExistingActivitiesDialog } from \"../dialogs/basicDialogs/ExistingActivitiesDialog\";\r\n\r\ntype AddActivityDropdownSelectComponentProps = {\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly selectedSetId: string;\r\n readonly scaleIndex: number;\r\n readonly updateWorkflowView: (setId: string, selectedActivityId?: string, selectedTransitionId?: string) => void;\r\n readonly addText: string;\r\n readonly startingText: string;\r\n readonly commonText: string;\r\n readonly existingIntoTheSetText: string;\r\n readonly finalText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst AddActivityDropdownSelectComponent: FunctionComponent = ({\r\n hostKey,\r\n uiWorkflow,\r\n selectedSetId,\r\n scaleIndex,\r\n updateWorkflowView,\r\n addText,\r\n startingText,\r\n commonText,\r\n existingIntoTheSetText,\r\n finalText,\r\n}) => {\r\n const [showExistingActivitiesDiag, setShowExistingActivitiesDiag] = useState(false);\r\n\r\n const getCurrentPicassoScrollPosition = useCallback(() => {\r\n const editorElementRef = WorkflowManager.uiWorkflows[hostKey].editorElement;\r\n return getCurrentPaintingScrollPosition(editorElementRef);\r\n }, [hostKey]);\r\n\r\n const addNewActivity = (activityType: ActivityType) => {\r\n const picassoScrollPosition = getCurrentPicassoScrollPosition();\r\n const newPosition = getActivityNewPosition(picassoScrollPosition.left, picassoScrollPosition.top, scaleIndex);\r\n const activityId = uiWorkflow.workflow.addActivity(activityType, selectedSetId, newPosition.x, newPosition.y);\r\n updateWorkflowView(selectedSetId, activityId);\r\n };\r\n\r\n const addExistingActivities = (activitiesToAdd: Activity[]) => {\r\n const picassoScrollPosition = getCurrentPicassoScrollPosition();\r\n\r\n activitiesToAdd.forEach(activityToAdd => {\r\n const newPosition = getActivityNewPosition(picassoScrollPosition.left, picassoScrollPosition.top, scaleIndex);\r\n activityToAdd.positions.push(new Position(newPosition.x, newPosition.y, activityToAdd.type === ActivityType.normal ? 100 : 60, 60, uiWorkflow.uiSet.set));\r\n });\r\n\r\n updateWorkflowView(selectedSetId, activitiesToAdd[activitiesToAdd.length - 1].id);\r\n };\r\n\r\n return (\r\n \r\n {\r\n const canCreateStartActivity = !uiWorkflow.workflow.isAnyActivtyOfStartType;\r\n return (opened && \r\n {canCreateStartActivity && {\r\n onSelect(ActivityType.start); addNewActivity(ActivityType.start);\r\n }} text={startingText} />}\r\n {\r\n onSelect(ActivityType.normal); addNewActivity(ActivityType.normal);\r\n }} text={commonText} />\r\n {\r\n onSelect(\"existujici\"); setShowExistingActivitiesDiag(true);\r\n }} text={existingIntoTheSetText} />\r\n {\r\n onSelect(ActivityType.end); addNewActivity(ActivityType.end);\r\n }} text={finalText} />\r\n );\r\n }}\r\n selectedOptionContent={({ opened, setOpened }) => setOpened(!opened)} title={addText} backgroundColor={ButtonBackgroundColor.transparent} />}\r\n />\r\n {showExistingActivitiesDiag && setShowExistingActivitiesDiag(false)} onAddClick={addExistingActivities} {...{ hostKey, selectedSetId, uiWorkflow }} />}\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n selectedSetId: getSelectedSetId(state, hostKey),\r\n scaleIndex: getScaleIndex(getPicassoState(state, hostKey)),\r\n addText: getPrimaryText(state, LOC_ADD) ?? \"Přidat\",\r\n startingText: getPrimaryText(state, LOC_STARTING) ?? \"Startovací\",\r\n commonText: getPrimaryText(state, LOC_COMMON) ?? \"Běžná\",\r\n existingIntoTheSetText: getPrimaryText(state, LOC_EXISTING_INTO_THE_SET) ?? \"Existující do sady\",\r\n finalText: getPrimaryText(state, LOC_FINAL) ?? \"Konečná\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateWorkflowView: (setId, selectedActivityId, selectedTransitionId) => dispatch(createUpdateWorkflowViewAction(hostKey, setId, selectedActivityId, selectedTransitionId)),\r\n});\r\n\r\nexport const AddActivityDropdownSelect = connect(mapStateToProps, mapDispatchToProps)(AddActivityDropdownSelectComponent);\r\n","import { Activity, Workflow } from \"../../workflowModel\";\r\nimport { ActivityPoistionSearchResult } from \"./types\";\r\n\r\n/**\r\n * Funkce vrací seznam všech pozic aktivit vyfiltrovaných podle klíčového slova. Zároveň vrací pouze prvních 25 výsledků.\r\n * @param workflow Instance workflow odpovídající aktuální instanci editoru WF.\r\n * @param keyword Klíčové slovo podle kterého se mají vyhledávat aktivity, porovnávání je case insensitive.\r\n */\r\nexport const getActivitySearchResults = (workflow: Workflow, keyword: string) => {\r\n if (keyword === \"\")\r\n return [];\r\n\r\n const lowerCaseKeyword = keyword.toLowerCase();\r\n\r\n // Vyhledá aktivity podle keywordu a seřadí je podle hodnoty indexu keywordu v názvů\r\n const filteredActivities = workflow.activities.filter(activity => activity.name.toLowerCase().includes(lowerCaseKeyword))\r\n .sort((a, b) => a.name.toLowerCase().indexOf(lowerCaseKeyword) - b.name.toLowerCase().indexOf(lowerCaseKeyword));\r\n\r\n const result = filteredActivities.slice(0, 25).reduce((prev, cur) => (\r\n [...prev, ...getActivityPositions(cur)]\r\n ), [] as ActivityPoistionSearchResult[]);\r\n\r\n return result.slice(0, 25);\r\n};\r\n\r\n/**\r\n * Vrací seznam search resultů pro danou aktivitu.\r\n * @param activity\r\n */\r\nconst getActivityPositions = (activity: Activity): ActivityPoistionSearchResult[] => (\r\n activity.positions.map(position => ({\r\n activityId: activity.id,\r\n activityName: activity.name,\r\n setId: position.set.id,\r\n setName: position.set.name,\r\n }))\r\n);\r\n","import React, { ChangeEvent, FunctionComponent, useRef, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { AlignItems, Icon, IconColor, Layout, SpacingSize } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { bemClassNames, usePopupFlip } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { createUpdateWorkflowViewAction } from \"../../../actions\";\r\nimport { LOC_SEARCH_ACTIVITY } from \"../../../locKeys\";\r\nimport { WorkflowEditorProps } from \"../../../types\";\r\nimport { UiWorkflow } from \"../../../UiWorkflow\";\r\nimport { DividerPosition, SearchResultsModal, ToolbarSection } from \"../components\";\r\nimport { getActivitySearchResults } from \"../utils\";\r\n\r\ntype ActivitySearchSectionComponentProps = {\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly updateWorkflowView: (setId: string, selectedActivityId: string) => void;\r\n readonly searchActivityText: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"activity-search-section-component\");\r\nconst searchInputClass = classNames(\"input\");\r\n\r\nconst ActivitySearchSectionComponent: FunctionComponent = ({ uiWorkflow, updateWorkflowView, searchActivityText }) => {\r\n const [keyword, setKeyword] = useState(\"\");\r\n const inputRef = useRef(null);\r\n const searchResults = getActivitySearchResults(uiWorkflow.workflow, keyword);\r\n const { topOffset, leftOffset } = usePopupFlip({ triggerRef: inputRef, popupRef: inputRef, opened: searchResults.length > 0 });\r\n\r\n const handleUpdateWorkflowView = (setId: string, selectedActivityId: string) => {\r\n updateWorkflowView(setId, selectedActivityId);\r\n emptyInput();\r\n };\r\n\r\n const handleBlur = () => {\r\n if (searchResults.length === 0)\r\n emptyInput();\r\n };\r\n\r\n const onInputChange = (e: ChangeEvent) => {\r\n setKeyword(e.target.value);\r\n };\r\n\r\n const emptyInput = () => {\r\n setKeyword(\"\");\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {searchResults.length > 0 &&\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state) => ({\r\n searchActivityText: getPrimaryText(state, LOC_SEARCH_ACTIVITY) ?? \"Vyhledat aktivitu...\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n updateWorkflowView: (setId, selectedActivityId) => dispatch(createUpdateWorkflowViewAction(hostKey, setId, selectedActivityId, undefined, true)),\r\n});\r\n\r\nexport const ActivitySearchSection = connect(mapStateToProps, mapDispatchToProps)(ActivitySearchSectionComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { createChangeScaleIndexAction, createRequestPaintingScrollPositionAction } from \"@multiweb/picasso\";\r\nimport { ButtonBackgroundColor, IconButton, MessageWindow } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createSetTouchedAction } from \"../../../../workflowEditor/actions\";\r\nimport { LOC_CANCEL, LOC_RELOAD, LOC_RELOAD_WORKFLOW_DIALOG, LOC_SAVE, LOC_UPDATES_THE_CONTENT } from \"../../../../workflowEditor/locKeys\";\r\nimport { isTouched } from \"../../../../workflowEditor/selectors\";\r\nimport { MessageWindowState, WorkflowEditorProps } from \"../../../../workflowEditor/types\";\r\nimport { ToolbarSection } from \"../components\";\r\n\r\nexport type ObjectHandlingSectionComponentProps = {\r\n readonly touched: boolean;\r\n readonly onReloadClick: () => void;\r\n readonly changeScaleIndex: (newScaleIndex: number) => void;\r\n readonly resetPaintingOffset: () => void;\r\n readonly setTouched: (touched: boolean) => void;\r\n readonly saveWorkflow: () => Promise;\r\n readonly reloadWorkflowDialogText: string;\r\n readonly updatesTheContentText: string;\r\n readonly saveText: string;\r\n};\r\n\r\nconst ObjectHandlingSectionComponent: FunctionComponent = ({\r\n touched,\r\n onReloadClick,\r\n changeScaleIndex,\r\n saveWorkflow,\r\n resetPaintingOffset,\r\n setTouched,\r\n reloadWorkflowDialogText,\r\n updatesTheContentText,\r\n saveText,\r\n}) => {\r\n const [messageWindowState, setMessageWindowState] = useState({ isOpen: false, properties: null });\r\n\r\n const onCloseMessageWindow = () => {\r\n setMessageWindowState({ isOpen: false, properties: null });\r\n };\r\n\r\n const handleReload = () => {\r\n onReloadClick();\r\n resetPaintingOffset();\r\n changeScaleIndex(1);\r\n };\r\n\r\n const handleReloadButtonClick = () => {\r\n if (touched)\r\n setMessageWindowState({\r\n isOpen: true,\r\n properties: {\r\n children: reloadWorkflowDialogText,\r\n primaryButtonLocKey: LOC_RELOAD,\r\n secondaryButtonLocKey: LOC_CANCEL,\r\n onPrimaryButtonClick: handleReload,\r\n onCloseMessageWindow,\r\n },\r\n });\r\n else\r\n handleReload();\r\n };\r\n\r\n const handleSaveWorkflow = async () => {\r\n const successful = await saveWorkflow();\r\n if (touched && successful)\r\n setTouched(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {(messageWindowState.isOpen && messageWindowState.properties !== null) && }\r\n \r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n touched: isTouched(state, hostKey),\r\n reloadWorkflowDialogText: getPrimaryText(state, LOC_RELOAD_WORKFLOW_DIALOG) ?? \"Opravdu chcete přenačíst instanci workflow? Přijdete o všechny neuložené změny.\",\r\n updatesTheContentText: getPrimaryText(state, LOC_UPDATES_THE_CONTENT) ?? \"Aktualizuje obsah\",\r\n saveText: getPrimaryText(state, LOC_SAVE) ?? \"Uložit\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n changeScaleIndex: (newScaleIndex) => dispatch(createChangeScaleIndexAction(hostKey, newScaleIndex)),\r\n resetPaintingOffset: () => dispatch(createRequestPaintingScrollPositionAction(hostKey, { left: 0, top: 0 })),\r\n setTouched: (touched) => dispatch(createSetTouchedAction(hostKey, touched)),\r\n});\r\n\r\nexport const ObjectHandlingSection = connect(mapStateToProps, mapDispatchToProps)(ObjectHandlingSectionComponent);\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { CONST_MAX_SCALE_INDEX, CONST_MIN_SCALE_INDEX, CONST_SCALE_STEP, createChangeScaleIndexAction, createRequestPaintingScrollPositionAction, getScaleIndex } from \"@multiweb/picasso\";\r\nimport { ButtonBackgroundColor, ComponentSize, IconButton, TextButton, TextColor } from \"@multiweb/reactComponents\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createToggleGridAction } from \"../../../../workflowEditor/actions\";\r\nimport { LOC_RESET, LOC_TOGGLE_GRID, LOC_ZOOM_IN, LOC_ZOOM_OUT } from \"../../../../workflowEditor/locKeys\";\r\nimport { getPicassoState } from \"../../../../workflowEditor/selectors\";\r\nimport { WorkflowEditorProps } from \"../../../../workflowEditor/types\";\r\nimport { ToolbarSection } from \"../components\";\r\n\r\nexport type PaintingHandlingSectionComponentProps = {\r\n readonly scaleIndex: number;\r\n readonly changeScaleIndex: (newScaleIndex: number) => void;\r\n readonly toggleGrid: () => void;\r\n readonly resetPaintingOffset: () => void;\r\n readonly switchGridText: string;\r\n readonly resetText: string;\r\n readonly zoomInText: string;\r\n readonly zoomOutText: string;\r\n};\r\n\r\nconst PaintingHandlingSectionComponent: FunctionComponent = ({\r\n scaleIndex,\r\n changeScaleIndex,\r\n toggleGrid,\r\n resetPaintingOffset,\r\n switchGridText,\r\n resetText,\r\n zoomInText,\r\n zoomOutText,\r\n}) => {\r\n const zoomOut = () => {\r\n changeScaleIndex(scaleIndex - CONST_SCALE_STEP);\r\n };\r\n\r\n const zoomIn = () => {\r\n changeScaleIndex(scaleIndex + CONST_SCALE_STEP);\r\n };\r\n\r\n const resetPainting = () => {\r\n resetPaintingOffset();\r\n changeScaleIndex(1);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n

{scaleIndex.toFixed(1).toString()}

\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n scaleIndex: getScaleIndex(getPicassoState(state, hostKey)),\r\n switchGridText: getPrimaryText(state, LOC_TOGGLE_GRID) ?? \"Přepnout mřížku\",\r\n resetText: getPrimaryText(state, LOC_RESET) ?? \"Resetovat\",\r\n zoomInText: getPrimaryText(state, LOC_ZOOM_IN) ?? \"Přiblížit\",\r\n zoomOutText: getPrimaryText(state, LOC_ZOOM_OUT) ?? \"Oddálit\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n changeScaleIndex: (newScaleIndex) => dispatch(createChangeScaleIndexAction(hostKey, newScaleIndex)),\r\n toggleGrid: () => dispatch(createToggleGridAction(hostKey)),\r\n resetPaintingOffset: () => dispatch(createRequestPaintingScrollPositionAction(hostKey, { left: 0, top: 0 })),\r\n});\r\n\r\nexport const PaintingHandlingSection = connect(mapStateToProps, mapDispatchToProps)(PaintingHandlingSectionComponent);\r\n","export * from \"./ActivitySearchSection\";\r\nexport * from \"./ObjectHandlingSection\";\r\nexport * from \"./PaintingHandlingSection\";\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { ButtonBackgroundColor, IconSelectItem, IconTextButton, Select, SelectBody } from \"@multiweb/reactComponents\";\r\nimport { doNothing } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\n\r\nexport type SetSettingsDropdownSelectComponentProps = {\r\n readonly openSetEditDialog: () => void;\r\n readonly deleteSet: () => void;\r\n readonly editText: string;\r\n readonly deleteText: string;\r\n readonly printText: string;\r\n readonly setText: string;\r\n readonly setSettingsText: string;\r\n};\r\n\r\n// Select vyextrahován do samotného souboru, ať ToolbarPanel.tsx není tak dlouhý...\r\n// Stejně se mi ten select nezdá, nejde jednoduše přiřadit funkce při kliku na talčítko, aniž by se nevyskytlo nežádoucí chování.\r\nexport const SetSettingsDropdownSelectComponent: FunctionComponent = ({\r\n openSetEditDialog,\r\n deleteSet,\r\n editText,\r\n deleteText,\r\n printText,\r\n setText,\r\n setSettingsText,\r\n}) => {\r\n const handleOnOpenEditDialogClick = (onSelect: (value: string) => void) => {\r\n onSelect(\"upravit\");\r\n openSetEditDialog();\r\n };\r\n\r\n const handleOnDeleteSetClick = (onSelect: (value: string) => void) => {\r\n onSelect(\"smazat\");\r\n deleteSet();\r\n };\r\n\r\n const handleOnPrintClick = (onSelect: (value: string) => void) => {\r\n onSelect(\"tisk\");\r\n };\r\n\r\n return (\r\n {\r\n return (opened &&\r\n \r\n handleOnOpenEditDialogClick(onSelect)} text={editText} />\r\n handleOnDeleteSetClick(onSelect)} text={deleteText} />\r\n handleOnPrintClick(onSelect)} text={printText} />\r\n \r\n );\r\n }}\r\n selectedOptionContent={({ opened, setOpened }) => (\r\n setOpened(!opened)} value={setText} title={setSettingsText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n )}\r\n />\r\n );\r\n};\r\n","import { connect, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState, NoneOwnProps } from \"@multiweb/types/react\";\r\nimport { LOC_DELETE, LOC_EDIT, LOC_PRINT, LOC_SET, LOC_SET_SETTINGS } from \"../../locKeys\";\r\nimport { SetSettingsDropdownSelectComponent, SetSettingsDropdownSelectComponentProps } from \"./SetSettingsDropdownSelectComponent\";\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state) => ({\r\n editText: getPrimaryText(state, LOC_EDIT) ?? \"Upravit\",\r\n deleteText: getPrimaryText(state, LOC_DELETE) ?? \"Smazat\",\r\n printText: getPrimaryText(state, LOC_PRINT) ?? \"Tisk\",\r\n setText: getPrimaryText(state, LOC_SET) ?? \"SADA\",\r\n setSettingsText: getPrimaryText(state, LOC_SET_SETTINGS) ?? \"Nastavení sady\",\r\n});\r\n\r\nexport const SetSettingsDropdownSelect = connect(mapStateToProps)(SetSettingsDropdownSelectComponent);\r\n","import React, { FunctionComponent, useState } from \"react\";\r\n\r\nimport { ButtonBackgroundColor, FlexShrink, IconButton, Layout } from \"@multiweb/reactComponents\";\r\nimport { bemClassNames } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { EditDialogType } from \"../../enums\";\r\nimport { LOC_DUPLICATE } from \"../../locKeys\";\r\nimport { EditDialogState, WorkflowEditorProps } from \"../../types\";\r\nimport { UiWorkflow } from \"../../UiWorkflow\";\r\nimport { DuplicateActivityDialog } from \"../dialogs/basicDialogs/DuplicateActivityDialog\";\r\nimport { ActivityEditDialog, SetEditDialog, TransitionEditDialog } from \"../dialogs/editDialogs\";\r\nimport { AddActivityDropdownSelect } from \"./AddActivityDropdownSelect\";\r\nimport { DividerPosition, ToolbarSection } from \"./components\";\r\nimport { ActivitySearchSection, ObjectHandlingSection, PaintingHandlingSection } from \"./sections\";\r\nimport { SetSettingsDropdownSelect } from \"./SetSettingsDropdownSelect\";\r\n\r\nexport type ToolbarPanelComponentProps = {\r\n readonly selectedComponents: readonly number[];\r\n readonly selectedLinks: readonly number[];\r\n readonly isWorkflowReadOnly: boolean;\r\n readonly isOnlyStartActivitySelected: boolean;\r\n readonly saveWorkflow: () => Promise;\r\n readonly onReloadClick: () => void;\r\n readonly createTransition: () => void;\r\n readonly deleteSelectedWfEntities: () => void;\r\n readonly deleteSet: () => void;\r\n readonly uiWorkflow: UiWorkflow;\r\n readonly connectText: string;\r\n readonly editText: string;\r\n readonly duplicateText: string;\r\n readonly deleteText: string;\r\n} & WorkflowEditorProps;\r\n\r\nconst classNames = bemClassNames(\"wf-toolbar\");\r\nconst wfToolbarPanelStyle = classNames();\r\n\r\nexport const ToolbarPanelComponent: FunctionComponent = ({\r\n hostKey,\r\n selectedComponents,\r\n selectedLinks,\r\n isWorkflowReadOnly,\r\n isOnlyStartActivitySelected,\r\n saveWorkflow,\r\n onReloadClick,\r\n createTransition,\r\n deleteSelectedWfEntities,\r\n deleteSet,\r\n uiWorkflow,\r\n connectText,\r\n editText,\r\n duplicateText,\r\n deleteText,\r\n}) => {\r\n const [editDialogState, setEditDialogState] = useState({ isOpen: false, type: null });\r\n const [showDuplicateActDiag, setShowDuplicateActDiag] = useState(false);\r\n\r\n const isSomeWfElementSelected = selectedComponents.length > 0 || selectedLinks.length > 0;\r\n\r\n const openSetEditDialog = () => {\r\n setEditDialogState({ isOpen: true, type: EditDialogType.Set });\r\n };\r\n\r\n const onCloseEditDialog = () => {\r\n setEditDialogState({ isOpen: false, type: null });\r\n };\r\n\r\n const handleEditButtonClick = () => {\r\n if (selectedComponents.length >= 1)\r\n setEditDialogState({ isOpen: true, type: EditDialogType.Activity });\r\n else if (selectedLinks.length >= 1)\r\n setEditDialogState({ isOpen: true, type: EditDialogType.Transition });\r\n };\r\n\r\n const editDialogRenderer = () => {\r\n if (editDialogState.type === EditDialogType.Activity)\r\n return ;\r\n if (editDialogState.type === EditDialogType.Transition)\r\n return ;\r\n return ;\r\n };\r\n\r\n return (\r\n
\r\n \r\n {!isWorkflowReadOnly && }\r\n \r\n {!isWorkflowReadOnly && \r\n \r\n \r\n setShowDuplicateActDiag(true)} title={duplicateText} backgroundColor={ButtonBackgroundColor.transparent} />\r\n \r\n \r\n }\r\n \r\n {!isWorkflowReadOnly && }\r\n \r\n \r\n \r\n \r\n \r\n {editDialogState.isOpen && editDialogRenderer()}\r\n {showDuplicateActDiag && setShowDuplicateActDiag(false)} {...{ hostKey, uiWorkflow }} />}\r\n
\r\n );\r\n};\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { getSelectedComponentsIndexes, getSelectedLinksIndexes } from \"@multiweb/picasso\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createDeleteSetAction } from \"../../actions\";\r\nimport { LOC_CONNECT_KEY_SPACEBAR, LOC_DELETE_KEY_DELETE, LOC_DUPLICATE, LOC_EDIT } from \"../../locKeys\";\r\nimport { getPicassoState, isOnlyStartActivitySelected, isWorkflowReadOnly } from \"../../selectors\";\r\nimport { WorkflowEditorProps } from \"../../types\";\r\nimport { ToolbarPanelComponent, ToolbarPanelComponentProps } from \"./ToolbarPanelComponent\";\r\n\r\ntype StateProps = Pick;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: WorkflowEditorProps) => MapStateToProps = () => (state, { hostKey }) => ({\r\n selectedComponents: getSelectedComponentsIndexes(getPicassoState(state, hostKey)),\r\n selectedLinks: getSelectedLinksIndexes(getPicassoState(state, hostKey)),\r\n isWorkflowReadOnly: isWorkflowReadOnly(state, hostKey),\r\n isOnlyStartActivitySelected: isOnlyStartActivitySelected(state, hostKey),\r\n connectText: getPrimaryText(state, LOC_CONNECT_KEY_SPACEBAR) ?? \"Propojit (Mezerník)\",\r\n editText: getPrimaryText(state, LOC_EDIT) ?? \"Upravit\",\r\n duplicateText: getPrimaryText(state, LOC_DUPLICATE) ?? \"Duplikovat\",\r\n deleteText: getPrimaryText(state, LOC_DELETE_KEY_DELETE) ?? \"Smazat (Delete)\",\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n deleteSet: () => dispatch(createDeleteSetAction(hostKey)),\r\n});\r\n\r\nexport const ToolbarPanel = connect(createMapStateToProps, mapDispatchToProps)(ToolbarPanelComponent);\r\n","export * from \"./ToolbarPanel\";\r\n","import React, { FunctionComponent } from \"react\";\r\nimport { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { LocalizationProvider, MessageWindow, MessageWindowProps } from \"@multiweb/reactComponents\";\r\nimport { invariant } from \"@multiweb/reactUtils\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createDialogCanceledAction, createDialogConfirmedAction, createHideMessageWindowAction } from \"../actions\";\r\nimport { LOC_OK } from \"../locKeys\";\r\nimport { getWfMessageWindowActionId, getWfMessageWindowContentLocKey, getWfMessageWindowPrimaryButtonLocKey, getWfMessageWindowSecondaryButtonLocKey, isWfMessageWindowVisible } from \"../selectors\";\r\nimport { WorkflowEditorProps } from \"../types\";\r\n\r\ntype WfMessageWindowComponentProps = {\r\n readonly isVisible: boolean;\r\n readonly actionId: string | null;\r\n readonly contentLocKey: string | null;\r\n readonly onConfirmClick: (actionId: string) => void;\r\n readonly onCancelClick: (actionId: string) => void;\r\n readonly hideMessageWindow: () => void;\r\n} & MessageWindowProps;\r\n\r\nconst WfMessageWindowHandlerComponent: FunctionComponent = ({\r\n isVisible,\r\n actionId,\r\n contentLocKey,\r\n primaryButtonLocKey,\r\n secondaryButtonLocKey,\r\n onConfirmClick,\r\n onCancelClick,\r\n hideMessageWindow,\r\n}) => {\r\n invariant(!isVisible || (actionId != null && contentLocKey != null), \"Cannot create instance of component WfMessageWindowHandler without actionId and contentLocKey props!\");\r\n\r\n return (isVisible && actionId !== null && contentLocKey !== null ?\r\n onConfirmClick(actionId)}\r\n onSecondaryButtonClick={() => onCancelClick(actionId)}\r\n {...{ primaryButtonLocKey, secondaryButtonLocKey }}>\r\n \r\n : null\r\n );\r\n};\r\n\r\ntype StateProps = Pick;\r\n\r\nconst mapStateToProps: MapStateToProps = (state, { hostKey }) => ({\r\n actionId: getWfMessageWindowActionId(state, hostKey),\r\n contentLocKey: getWfMessageWindowContentLocKey(state, hostKey),\r\n isVisible: isWfMessageWindowVisible(state, hostKey),\r\n primaryButtonLocKey: getWfMessageWindowPrimaryButtonLocKey(state, hostKey) ?? LOC_OK,\r\n secondaryButtonLocKey: getWfMessageWindowSecondaryButtonLocKey(state, hostKey) ?? undefined,\r\n});\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n onConfirmClick: (actionId) => dispatch(createDialogConfirmedAction(hostKey, actionId)),\r\n onCancelClick: (actionId) => dispatch(createDialogCanceledAction(hostKey, actionId)),\r\n hideMessageWindow: () => dispatch(createHideMessageWindowAction(hostKey)),\r\n});\r\n\r\nexport const WfMessageWindowHandler = connect(mapStateToProps, mapDispatchToProps)(WfMessageWindowHandlerComponent);\r\n","import React, { KeyboardEvent, PureComponent } from \"react\";\r\n\r\nimport { createPicassoPainting, createWrapPicassoMapStateToProps, IPoint } from \"@multiweb/picasso\";\r\nimport { AlignItems, ButtonBackgroundColor, IconButton, IconColor, Layout, SplitVerticalPanelLight } from \"@multiweb/reactComponents\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { bemClassNames, createQA, Key } from \"@multiweb/reactUtils\";\r\nimport { IconCode } from \"@multiweb/types/contracts\";\r\nimport { WorkflowEditorMode } from \"../enums\";\r\nimport { getPicassoState } from \"../selectors\";\r\nimport { ISet, IVariable } from \"../types\";\r\nimport { UiActivity } from \"../UiActivity\";\r\nimport { UiTransition } from \"../UiTransition\";\r\nimport { UiWorkflow } from \"../UiWorkflow\";\r\nimport { WorkflowManager } from \"../WorkflowManager\";\r\nimport { Workflow } from \"../workflowModel\";\r\nimport { xmlToWfStatus, xmlToWorkflow } from \"../workflowParser\";\r\nimport { linkRenderer, moveableRenderer } from \"../WorkflowPicassoComponentsProvider\";\r\nimport { PropertyPanelContainer } from \"./propertyPanel/PropertyPanelContainer\";\r\nimport { ToolbarPanel } from \"./toolbarPanel\";\r\nimport { WfMessageWindowHandler } from \"./WfMessageWindowHandler\";\r\n\r\nconst { generateUUID } = bridge;\r\n\r\nexport type WorkflowEditorComponentProps = {\r\n readonly hostKey: string;\r\n readonly workflow: Workflow;\r\n readonly wfStatusXml?: string;\r\n readonly selectedSetId: string;\r\n readonly sets: readonly ISet[];\r\n readonly wfEditorMode: WorkflowEditorMode;\r\n readonly saveWorkflow: () => Promise;\r\n readonly reloadWorkflow: () => Promise;\r\n readonly enableStatusView: (variables: readonly IVariable[]) => void;\r\n readonly enableViewerMode: () => void;\r\n readonly updateWorkflowView: (setId: string, isNonEditChange?: boolean) => void;\r\n readonly setTouched: (touched: boolean) => void;\r\n readonly setIsWfEdited: (isEdited: boolean) => Promise;\r\n readonly createTransition: () => void;\r\n readonly selectAllWFActivities: () => void;\r\n readonly deleteSelectedWfEntities: () => void;\r\n readonly addSetText: string;\r\n readonly newSetText: string;\r\n};\r\n\r\nconst classNames = bemClassNames(\"wf-editor-component\");\r\nconst wfEditorStyle = classNames();\r\nconst wfCanvasCardStyle = classNames(\"canvas-card\");\r\nconst tabsContainer = classNames(\"tabsDivContainer\");\r\nconst tabsList = classNames(\"tabsList\");\r\n\r\nconst wfEditorComponentDataQA = createQA(\"wf-editor-component\");\r\nconst tabsContainerDataQA = createQA(\"tabs-container\");\r\n\r\nconst minSizePercentagesValues = [60, 15];\r\nconst defaultPercentagesValues = [80, 20];\r\n\r\nexport class WorkflowEditorComponent extends PureComponent {\r\n private uiWorkflow: UiWorkflow;\r\n private wrapMapState = createWrapPicassoMapStateToProps(getPicassoState, this.props.hostKey);\r\n private PicassoEditor = createPicassoPainting(this.wrapMapState);\r\n private editorRef: React.RefObject = React.createRef();\r\n\r\n constructor(props: WorkflowEditorComponentProps) {\r\n super(props);\r\n\r\n this.uiWorkflow = new UiWorkflow(props.workflow, undefined, this.editorRef, props.setIsWfEdited);\r\n\r\n if (props.wfEditorMode === WorkflowEditorMode.StatusViewer) {\r\n if (!props.wfStatusXml)\r\n throw new Error(\"Cannot initialize workflow editor in Status Viewer mode without wf status xml!\");\r\n\r\n const wfStatus = xmlToWfStatus(props.wfStatusXml);\r\n this.uiWorkflow.workflow.applyWorkflowStatus(wfStatus);\r\n props.enableStatusView(wfStatus.variables);\r\n } else if (this.props.wfEditorMode === WorkflowEditorMode.Viewer)\r\n this.props.enableViewerMode();\r\n\r\n WorkflowManager.uiWorkflows[props.hostKey] = this.uiWorkflow;\r\n props.updateWorkflowView(this.uiWorkflow.uiSet.set.id, true);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const { uiWorkflow, addSet, onReloadClick, handleKeyUp, handleKeyDown } = this;\r\n const { addSetText, hostKey, sets, selectedSetId, wfEditorMode, saveWorkflow, createTransition, deleteSelectedWfEntities, updateWorkflowView } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
    \r\n {sets.map(({ id, name }) => (\r\n
  • updateWorkflowView(id, true)} className={classNames(\"tab\", { \"active\": selectedSetId === id })}>{name}
  • \r\n ))}\r\n {wfEditorMode == WorkflowEditorMode.Editor && }\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 private handleKeyUp = (e: KeyboardEvent): void => {\r\n if (e.key === Key.Delete) {\r\n this.props.deleteSelectedWfEntities();\r\n }\r\n\r\n if (e.key === Key.Space)\r\n this.props.createTransition();\r\n\r\n if (e.key.toLowerCase() === \"a\" && e.ctrlKey)\r\n this.props.selectAllWFActivities();\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent): void => {\r\n if (e.key.toLowerCase() === \"a\" && e.ctrlKey) {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n private addSet = () => {\r\n const workflow = this.uiWorkflow.workflow;\r\n workflow.addSet(this.props.newSetText, \"\", generateUUID());\r\n this.props.updateWorkflowView(workflow.sets[workflow.sets.length - 1].id);\r\n };\r\n\r\n private handleComponentChange = (changedComponentIndex: number, newX: number, newY: number, newWidth: number, newHeight: number) => {\r\n const components = [...this.uiWorkflow.picassoModel.components];\r\n const { setId, parent, activity } = components[changedComponentIndex] as UiActivity; // přetypování je bezpečné, nikdy nepřijde UiSet\r\n components[changedComponentIndex] = new UiActivity(changedComponentIndex, newX, newY, newWidth, newHeight, setId, parent, activity);\r\n this.uiWorkflow.picassoModel.components = components;\r\n this.props.setTouched(true);\r\n };\r\n\r\n private handleLinkChange = (changedLinkIndex: number, newPoints: readonly IPoint[]) => {\r\n const links = [...this.uiWorkflow.picassoModel.links];\r\n const { startComponentIndex, endComponentIndex, transition } = links[changedLinkIndex] as UiTransition;// přetypování je bezpečné, nemáme jiné implementace než UiTransition\r\n links[changedLinkIndex] = new UiTransition(changedLinkIndex, newPoints, startComponentIndex, endComponentIndex, transition);\r\n this.uiWorkflow.picassoModel.links = links;\r\n this.props.setTouched(true);\r\n };\r\n\r\n private onReloadClick = async () => {\r\n const newWorkflowDefinition = await this.props.reloadWorkflow();\r\n const newWorkflow = await xmlToWorkflow(newWorkflowDefinition);\r\n const newSelectedSet = newWorkflow.sets.find((set) => set.id === this.props.selectedSetId);\r\n\r\n this.uiWorkflow = new UiWorkflow(newWorkflow, newSelectedSet?.id, this.editorRef, this.props.setIsWfEdited);\r\n WorkflowManager.uiWorkflows[this.props.hostKey] = this.uiWorkflow;\r\n\r\n this.props.updateWorkflowView(this.uiWorkflow.uiSet.set.id, true);\r\n this.props.setTouched(false);\r\n };\r\n}\r\n","import { connect, MapDispatchToProps, MapStateToProps } from \"react-redux\";\r\n\r\nimport { CONST_ROOT_COMPONENT_INDEX, createSelectAllComponentsAction } from \"@multiweb/picasso\";\r\nimport { getPrimaryText } from \"@multiweb/reactCore/i18n\";\r\nimport { IAppState } from \"@multiweb/types/react\";\r\nimport { createCreateTransitionAction, createDeleteSelectedWfEntitiesAction, createEnableStatusViewAction, createEnableViewerModeAction, createSetTouchedAction, createUpdateWorkflowViewAction } from \"../actions\";\r\nimport { LOC_ADD_SET, LOC_NEW_SET } from \"../locKeys\";\r\nimport { createGetOrderedSets, getSelectedSetId } from \"../selectors\";\r\nimport { WorkflowEditorProps } from \"../types\";\r\nimport { WorkflowEditorComponent, WorkflowEditorComponentProps } from \"./WorkflowEditorComponent\";\r\n\r\ntype StateProps = Pick;\r\n\r\nconst createMapStateToProps: (state: IAppState, props: WorkflowEditorProps) => MapStateToProps = (_state, { hostKey }) => {\r\n const orderedSets = createGetOrderedSets();\r\n\r\n return (state) => ({\r\n sets: orderedSets(state, hostKey),\r\n selectedSetId: getSelectedSetId(state, hostKey),\r\n addSetText: getPrimaryText(state, LOC_ADD_SET) ?? \"Přidat sadu\",\r\n newSetText: getPrimaryText(state, LOC_NEW_SET) ?? \"Nová sada\",\r\n });\r\n};\r\n\r\ntype DispatchProps = Pick;\r\n\r\nconst mapDispatchToProps: MapDispatchToProps = (dispatch, { hostKey }) => ({\r\n enableStatusView: (variables) => dispatch(createEnableStatusViewAction(hostKey, variables)),\r\n enableViewerMode: () => dispatch(createEnableViewerModeAction(hostKey)),\r\n updateWorkflowView: (setId, isNonEditChange) => dispatch(createUpdateWorkflowViewAction(hostKey, setId, undefined, undefined, isNonEditChange)),\r\n setTouched: (touched) => dispatch(createSetTouchedAction(hostKey, touched)),\r\n createTransition: () => dispatch(createCreateTransitionAction(hostKey)),\r\n deleteSelectedWfEntities: () => dispatch(createDeleteSelectedWfEntitiesAction(hostKey)),\r\n selectAllWFActivities: () => dispatch(createSelectAllComponentsAction(hostKey, CONST_ROOT_COMPONENT_INDEX)),\r\n});\r\n\r\nexport const WorkflowEditor = connect(createMapStateToProps, mapDispatchToProps)(WorkflowEditorComponent);\r\n","export * from \"./WorkflowEditor\";\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { ApplicationStatefulModule } from \"@multiweb/types/react\";\r\nimport { NAME } from \"./constants\";\r\nimport { reducer } from \"./reducer\";\r\nimport { saga } from \"./saga\";\r\nimport { IWorkflowEditorState } from \"./types\";\r\n\r\nexport { createClearPicassoHostAction, createInitPicassoHostAction } from \"./actions\";\r\nexport { WorkflowEditor } from \"./components\";\r\nexport { WorkflowEditorMode } from \"./enums\";\r\n\r\nexport const workflowEditorModule: ApplicationStatefulModule> = {\r\n NAME,\r\n reducer,\r\n saga,\r\n};\r\n","import { combineReducers, Reducer, ReducersMapObject } from \"redux\";\r\n\r\nimport { coreModules, NAME as CORE_NAME } from \"@multiweb/reactCore\";\r\nimport { customizationModule } from \"@multiweb/reactCustomization\";\r\nimport { ApplicationModule, ApplicationStatefulModule, IAppState, ICoreState } from \"@multiweb/types/react\";\r\nimport { aggregationRowModule } from \"../aggregationRow\";\r\nimport { linkButtonModule } from \"../components/LinkButton\";\r\nimport { reportingScalarModule } from \"../components/ReportingScalar\";\r\nimport { controlsModule } from \"../controls\";\r\nimport { formsModule } from \"../forms\";\r\nimport { framesModule } from \"../frames\";\r\nimport { menuModule } from \"../menu\";\r\nimport { rightsModule } from \"../rights\";\r\nimport { workflowEditorModule } from \"../workflowEditor\";\r\n\r\ninterface MaybeStatefulModule extends ApplicationModule {\r\n reducer?: Reducer;\r\n}\r\n\r\n/**\r\n * Přefiltruje zadané moduly tak, že výstupem jsou pouze moduly obsahující reducer.\r\n * Tato funkcionalita nemůže být součástí funkce combineModuleReducers kvůli správnému přetypování výsledku.\r\n *\r\n * @param modules Moduly k filtrování.\r\n */\r\nconst filterReducerModules = (modules: Array>): Array> => modules\r\n .filter((module: MaybeStatefulModule) => module && !!module.reducer) as Array>;\r\n\r\n/**\r\n * Sesbírá a zkombinuje reducery ze zadaných modulů. Pokud modul nemá reducer, je přeskočen. Pokud reducer má, je zapojen pod jménem modulu.\r\n *\r\n * @param modules Pole modulů, jejichž reducery se mají zapojit.\r\n */\r\nconst combineModuleReducers = (modules: Array>): Reducer => combineReducers(\r\n filterReducerModules(modules)\r\n .reduce((moduleReducers, module) => Object.assign({}, moduleReducers, { [module.NAME]: module.reducer }), {}) as ReducersMapObject,\r\n);\r\n\r\n/**\r\n * Vrací hlavní reducer aplikace. Do samostatného podstrumu zapojuje core moduly, dále jedonotlivé business moduly a do dalšího samostatného podstromu custom moduly.\r\n */\r\nexport const getRootReducer = (): Reducer => (\r\n combineReducers({\r\n [CORE_NAME]: combineModuleReducers(coreModules),\r\n [customizationModule.NAME]: customizationModule.getReducer(),\r\n [menuModule.NAME]: menuModule.reducer,\r\n [aggregationRowModule.NAME]: aggregationRowModule.reducer,\r\n [workflowEditorModule.NAME]: workflowEditorModule.reducer,\r\n [controlsModule.NAME]: controlsModule.reducer,\r\n [framesModule.NAME]: framesModule.reducer,\r\n [formsModule.NAME]: formsModule.reducer,\r\n [rightsModule.NAME]: rightsModule.reducer,\r\n [reportingScalarModule.NAME]: reportingScalarModule.reducer,\r\n [linkButtonModule.NAME]: linkButtonModule.reducer,\r\n })\r\n);\r\n","import { all, fork } from \"redux-saga/effects\";\r\n\r\nimport { reportingScalarModule } from \"@multiweb/reactComponents\";\r\nimport { coreModules } from \"@multiweb/reactCore\";\r\nimport { customizationModule } from \"@multiweb/reactCustomization\";\r\nimport { forkIfExists } from \"@multiweb/reactUtils\";\r\nimport { ApplicationModule, SagaWithReturnType } from \"@multiweb/types/react\";\r\nimport { aggregationRowModule } from \"../aggregationRow\";\r\nimport { linkButtonModule } from \"../components/LinkButton\";\r\nimport { framesModule } from \"../frames\";\r\nimport { menuModule } from \"../menu\";\r\nimport { workflowEditorModule } from \"../workflowEditor\";\r\n\r\n/**\r\n * Vrací hlavní ságu aplikace. Spouští ságy core modulů, jednotlivé business modulů a custom modulů.\r\n */\r\nexport const getRootSaga = (): SagaWithReturnType => (\r\n function* rootSaga() {\r\n yield all(coreSagas.map((coreSaga) => fork(coreSaga)));\r\n yield fork(forkIfExists, framesModule.saga);\r\n yield fork(forkIfExists, menuModule.saga);\r\n yield fork(forkIfExists, aggregationRowModule.saga);\r\n yield fork(forkIfExists, workflowEditorModule.saga);\r\n yield fork(forkIfExists, customizationModule.getSaga());\r\n yield fork(forkIfExists, reportingScalarModule.saga);\r\n yield fork(forkIfExists, linkButtonModule.saga);\r\n }\r\n);\r\n\r\n/**\r\n * Hlavní sága aplikace. Spouští ságy core modulů a business modulů.\r\n */\r\nexport const coreSagas: Array = coreModules\r\n .map((module: ApplicationModule) => module.saga)\r\n .filter((saga) => saga) as SagaWithReturnType[];\r\n","import { applyMiddleware, compose as reduxCompose, createStore as reduxCreateStore, Reducer, Store } from \"redux\";\r\nimport createSagaMiddleware, { SagaMiddleware } from \"redux-saga\";\r\n\r\nimport { IAppState, SagaWithReturnType } from \"@multiweb/types/react\";\r\n\r\n/** Nastavení zásuvného modulu Redux DevTools */\r\ntype ReduxDevToolsComposeOptions = {\r\n /** Příznak, zda má být dostupný zásobník volání akcí */\r\n trace: boolean;\r\n};\r\n\r\ndeclare global {\r\n interface Window {\r\n __REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: (options: ReduxDevToolsComposeOptions) => typeof reduxCompose;\r\n }\r\n}\r\n\r\nexport type StoreInfo = {\r\n readonly store: Store;\r\n readonly rootSagaPromise: Promise;\r\n readonly runSaga: SagaMiddleware[\"run\"];\r\n};\r\n\r\n/**\r\n * Vytvoří store pro stav Reactové části aplikace.\r\n *\r\n * @param isDevMode Indikace vývojového módu. Pokud je aktivní, zapojí se do middleware redux-dev-tools.\r\n * @param rootReducer Kořenový reducer aplikace.\r\n * @param rootSaga Kořenová sága aplikace.\r\n * @return Objekt obsahující samotný store společně s Promise kořenové ságy, která umožňuje specifikovat error handling pro ságy.\r\n */\r\nexport const createStore = (isDevMode: boolean, rootReducer: Reducer, rootSaga: SagaWithReturnType): StoreInfo => {\r\n const sagaMiddleware = createSagaMiddleware();\r\n const compose = isDevMode && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ trace: false })\r\n : reduxCompose;\r\n const middleware = compose(\r\n applyMiddleware(sagaMiddleware),\r\n );\r\n const store = reduxCreateStore(rootReducer, middleware);\r\n const rootSagaPromise = sagaMiddleware.run(rootSaga).toPromise();\r\n return {\r\n store,\r\n rootSagaPromise,\r\n runSaga: sagaMiddleware.run,\r\n };\r\n};\r\n","import { Action, AnyAction, Reducer, Store } from \"redux\";\r\n\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { getRootReducer } from \"./reducer\";\r\nimport { getRootSaga } from \"./saga\";\r\nimport { createStore, StoreInfo } from \"./store\";\r\nimport { IAppState } from \"./types\";\r\n\r\nconst { errorHandler, setStore } = bridge;\r\n\r\nexport class StoreManager {\r\n private static _storeInfo: StoreInfo;\r\n\r\n /**\r\n * Připraví store k použití.\r\n * @param isDevMode Příznak, zda je aplikace ve vývojovém módu\r\n */\r\n public static initializeStore(isDevMode: boolean): void {\r\n StoreManager.getStore(isDevMode);\r\n }\r\n\r\n /**\r\n * Vrací Redux store. Metodu je možné použít pouze po registraci všech custom položek do DIContainer.\r\n * @param isDevMode Příznak, zda je aplikace ve vývojovém módu\r\n */\r\n public static getStore(isDevMode: boolean): Store {\r\n if (!StoreManager._storeInfo) {\r\n StoreManager._storeInfo = createStore(isDevMode, this._createCatchingReducer(getRootReducer()), getRootSaga());\r\n const { store, rootSagaPromise, runSaga } = StoreManager._storeInfo;\r\n rootSagaPromise.catch(this.handleError);\r\n setStore(store, runSaga);\r\n }\r\n\r\n return StoreManager._storeInfo.store;\r\n }\r\n\r\n private static _createCatchingReducer(rootReducer: Reducer): Reducer {\r\n return (state: IAppState, action: Action) => {\r\n try {\r\n return rootReducer(state, action);\r\n } catch (error) {\r\n this.handleError(error);\r\n return state;\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Metoda pro zpracování chyb zachycených v ságách, reducerech a komponentách.\r\n * @param error Chyba pro zpracování.\r\n */\r\n public static handleError(error: unknown): void {\r\n errorHandler(error);\r\n }\r\n}\r\n","import React, { Component, ComponentClass, ReactNode } from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport { Store } from \"redux\";\r\n\r\nimport { StoreManager } from \"./StoreManager\";\r\n\r\nexport type RootComponentProps = {\r\n children: ReactNode;\r\n};\r\n\r\n/**\r\n * Typ pro kořenovou komponentu obsahující definicí kořenových props.\r\n */\r\nexport type RootComponentClass = ComponentClass;\r\n\r\n/**\r\n * Vytvoří kořenovou komponentu pro React aplikaci, která poskytuje pro své potomky přístup k redux stavu\r\n * a zachytává chyby z komponent, reducerů a ság. Chyby jsou delegovány k ošetření v původní aplikaci pomocí\r\n * bridge modulu.\r\n *\r\n * @param isDevMode Indikace vývojového módu. Pokud je aktivní, zapojí se do middleware redux-dev-tools.\r\n */\r\nexport const createRootComponent = (isDevMode: boolean): RootComponentClass => {\r\n class RootComponent extends Component {\r\n private readonly _store: Store;\r\n\r\n constructor(props: RootComponentProps) {\r\n super(props);\r\n this._store = StoreManager.getStore(isDevMode);\r\n }\r\n\r\n public override componentDidCatch(error: Error): void {\r\n StoreManager.handleError(error);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n return ;\r\n }\r\n }\r\n\r\n return RootComponent;\r\n};\r\n","import { MODAL_ROOT_ID } from \"../constants\";\r\n\r\n/**\r\n * Připraví potřebné věci pro správný běh Reactu.\r\n */\r\nexport const configureReact = () => {\r\n createModalRoot();\r\n};\r\n\r\n/**\r\n * Vytvoří kontejner pro renderování modálních oken a vloží ho za posledního potomka ``.\r\n * Pokud element s daným id již existuje, nic nedělá.\r\n */\r\nconst createModalRoot = () => {\r\n if (!document.getElementById(MODAL_ROOT_ID)) {\r\n const modalRoot = document.createElement(\"div\");\r\n modalRoot.id = MODAL_ROOT_ID;\r\n // Používá se `prepend` kvůli ztrátě focusu v Chrome při ovládání pomocí klávesnice.\r\n document.body.prepend(modalRoot);\r\n }\r\n};\r\n","export { createRootComponent, RootComponentClass } from \"./errorHandling\";\r\nexport { configureReact } from \"./initialization\";\r\nexport { StoreManager } from \"./StoreManager\";\r\n","import { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.coreUI);\r\n\r\n/**\r\n * Pomocné metody pro práci s UI\r\n * @includeToDoc\r\n */\r\nexport class UIUtils {\r\n /**\r\n * Vybere text na elementu\r\n * @param element element, ze kterého se vybere text\r\n */\r\n public static selectElementContents(element: HTMLElement): void {\r\n const range = document.createRange();\r\n range.selectNodeContents(element);\r\n const sel = window.getSelection();\r\n\r\n if (sel) {\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n }\r\n }\r\n\r\n /**\r\n * Vloží text do clipboardu\r\n * @param text text, který se má vložit\r\n */\r\n public static pasteToClipboard(text: string): void {\r\n navigator.clipboard.writeText(text).then(() => {\r\n logger.log(\"Text has been pasted to the clipboard.\");\r\n }, () => {\r\n logger.warn(\"Unable to paste text to the clipboard!\");\r\n });\r\n }\r\n\r\n /**\r\n * Počká dokud není DOM zparsovaný a připravený na manipulaci\r\n */\r\n public static waitForDOMReady(): Promise {\r\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise((resolve) => {\r\n document.addEventListener(\"DOMContentLoaded\", () => resolve(), { once: true });\r\n });\r\n }\r\n}\r\n","import { PromiseUtils } from \"../../../Global/Base/Promises/PromiseUtils\";\r\nimport { Localization } from \"../../../OW.Remoting/Remoting/Localization\";\r\nimport { Edit } from \"../../UI.BaseControls/Edit\";\r\nimport { createElement, registerCustomElement } from \"../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IDropDownMenuItem } from \"./DropDownInterfaces\";\r\nimport { DropDownMenuItem } from \"./DropDownMenuItem\";\r\n/**\r\n * Položka DropDownMenu pro vložení textu\r\n */\r\nexport class DropDownPromptItem extends DropDownMenuItem implements IDropDownMenuItem {\r\n private _text: string;\r\n private _internalOkAction: () => any = async () => { /* Prázdná arrow funkce */ };\r\n private _internalCancelAction: () => any = () => { /* Prázdná arrow funkce */ };\r\n private _okAction: (text: string, menuItem: DropDownPromptItem) => void = async () => { /* Prázdná arrow funkce */ };\r\n private _cancelAction: (menuItem: DropDownPromptItem) => void = () => { /* Prázdná arrow funkce */ };\r\n //private parent: DropDownMenu;\r\n\r\n private _editElement: Edit;\r\n private _okButton: HTMLElement;\r\n private _cancelButton: HTMLElement;\r\n\r\n public get text(): string {\r\n if (this._editElement)\r\n this._text = this._editElement.value;\r\n return this._text;\r\n }\r\n\r\n public set text(value: string) {\r\n this._text = value;\r\n if (this._editElement)\r\n this._editElement.value = value;\r\n }\r\n\r\n public get okAction(): (text: string, menuItem: DropDownPromptItem) => void {\r\n return this._okAction;\r\n }\r\n\r\n public set okAction(action: (text: string, menuItem: DropDownPromptItem) => void) {\r\n this._okAction = action;\r\n if (this._okButton) {\r\n this._internalOkAction = async () => {\r\n //this.Visible = false;\r\n if (this._okButton.classList.contains(\"Disabled\"))\r\n return;\r\n await this._okAction(this.text, this);\r\n };\r\n this._okButton.addEventListener(\"click\", this._internalOkAction);\r\n }\r\n }\r\n\r\n public get cancelAction(): any {\r\n return this._cancelAction;\r\n }\r\n\r\n public set cancelAction(action: any) {\r\n this._cancelAction = action;\r\n if (this._cancelButton) {\r\n this._internalCancelAction = () => {\r\n if (this._cancelButton.classList.contains(\"Disabled\"))\r\n return;\r\n // uděláno takhle, aby kontrola na zavření dropDownů proběhla před skrytím promptItemu\r\n // kontrola zavření je v DropDownMenu.ts v bloku kolem ř.459 \"window.addEventListener(\"click\", this.list[\"wclick\"] = (e: MouseEvent | CustomEvent) => {...\"\r\n PromiseUtils.delay(0).then(() => this.visible = false);\r\n this._cancelAction(this);\r\n };\r\n this._cancelButton.addEventListener(\"click\", this._internalCancelAction);\r\n }\r\n }\r\n\r\n //public get Parent(): DropDownMenu {\r\n // return this.parent;\r\n //}\r\n\r\n //public set Parent(value: DropDownMenu) {\r\n // this.parent = value;\r\n //}\r\n\r\n //protected _constructor() {\r\n // super._constructor();\r\n //}\r\n\r\n public setValid(): void {\r\n this._editElement.setValid();\r\n }\r\n\r\n public setInvalid(locKey: string): void {\r\n this._editElement.setInvalid(locKey);\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"prompt-item\");\r\n\r\n this._editElement = new Edit();\r\n this._editElement.value = this.text;\r\n\r\n const buttonContainer = createElement({ classes: \"buttons\" });\r\n this._okButton = createElement({ type: \"button\", classes: \"OKButton flat icon tool-floppy-disk btn no-caption flat\" });\r\n Localization.addLocData(this._okButton, \"GUI-565556\", \"title\", \"\"); // Uložit\r\n this._cancelButton = createElement({ type: \"button\", classes: \"CancelButton flat icon ui-undo-a btn no-caption flat\" });\r\n Localization.addLocData(this._cancelButton, \"GUI-33412\", \"title\", \"\"); // Zrušit // Stejně jako na YNC\r\n\r\n buttonContainer.appendChild(this._okButton);\r\n buttonContainer.appendChild(this._cancelButton);\r\n\r\n this.appendChild(this._editElement);\r\n this.appendChild(buttonContainer);\r\n\r\n this._editElement.addEventListener(\"keypress\", async (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\")\r\n await this._internalOkAction();\r\n });\r\n }\r\n\r\n protected override _setListener(): void {\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Dá focus input elementu\r\n */\r\n public focusEdit(): void {\r\n this._editElement.focus();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownPromptItem\", DropDownPromptItem);\r\n","import { InvalidOperationException } from \"../../../../Global/Base/Exceptions\";\r\nimport { ISchemaValidationError, ISchemaValidationWarning, SchemaValidationErrorType, SchemaValidationWarningType } from \"../../../../Global/Base/Utils/ObjectSchemaValidator\";\r\nimport { StringUtils } from \"../../../../Global/Base/Utils/StringUtils\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n/**\r\n * Builder pro zobrazení chyb a varování z validace vkládání uživatelské definice filtru\r\n */\r\nexport class FilterValidationMessageBuilder implements IContentBuilder {\r\n private _element: HTMLElement = createElement();\r\n private _errors: ISchemaValidationError[];\r\n private _warnings: ISchemaValidationWarning[];\r\n\r\n private _errorLocKeys: Map = new Map([\r\n [SchemaValidationErrorType.invalidDataType, \"GUI-674369\"], // Pole '@0' s hodnotou '@1' nemá správný datový typ\r\n [SchemaValidationErrorType.missingField, \"GUI-674368\"], // V definici filtru chybí pole '@0'\r\n [SchemaValidationErrorType.notAllowedValue, \"GUI-674370\"], // Hodnota '@1' v poli '@0' není mezi povolenými hodnotami\r\n ]);\r\n\r\n private _warningLocKeys: Map = new Map([\r\n [SchemaValidationWarningType.unsupportedField, \"GUI-674371\"], // Pole '@0' není podporováno\r\n ]);\r\n\r\n private _errorLocalizations: Map = new Map();\r\n\r\n private _warningLocalizations: Map = new Map();\r\n\r\n constructor(errors: ISchemaValidationError[], warnings: ISchemaValidationWarning[]) {\r\n this._errors = errors;\r\n this._warnings = warnings;\r\n }\r\n\r\n private async _getErrorLocalization(errorType: SchemaValidationErrorType): Promise {\r\n if (this._errorLocalizations.has(errorType))\r\n return this._errorLocalizations.get(errorType);\r\n\r\n const errorLocKey = this._errorLocKeys.get(errorType);\r\n\r\n if (!errorLocKey)\r\n throw new InvalidOperationException(`[FilterValidationMessageBuilder] Missing locKey for errorType 'SchemaValidationErrorType.${SchemaValidationErrorType[errorType]}'!`); //`\r\n\r\n const errorLocalization = await Localization.getTextPromise(errorLocKey);\r\n\r\n this._errorLocalizations.set(errorType, errorLocalization);\r\n\r\n return errorLocalization;\r\n }\r\n\r\n private async _getWarningLocalization(warningType: SchemaValidationWarningType): Promise {\r\n if (this._warningLocalizations.has(warningType))\r\n return this._warningLocalizations.get(warningType);\r\n\r\n const warningLocKey = this._warningLocKeys.get(warningType);\r\n\r\n if (!warningLocKey)\r\n throw new InvalidOperationException(`[FilterValidationMessageBuilder] Missing locKey for warningType 'SchemaValidationWarningType.${SchemaValidationWarningType[warningType]}'!`); //`\r\n\r\n const warningLocalization = await Localization.getTextPromise(warningLocKey);\r\n\r\n this._warningLocalizations.set(warningType, warningLocalization);\r\n\r\n return warningLocalization;\r\n }\r\n\r\n public async build(): Promise {\r\n if (this._errors && this._errors.length > 0) {\r\n const errorsElement = createElement();\r\n\r\n const errorTitle = createElement({ type: \"p\" });\r\n Localization.addLocData(errorTitle, \"GUI-674372\"); // Chyby:\r\n errorsElement.appendChild(errorTitle);\r\n\r\n const listElement = createElement({ type: \"ul\" });\r\n\r\n for (const validationError of this._errors) {\r\n const errorMessageTemplate: string = await this._getErrorLocalization(validationError.errorType);\r\n let errorMessage: string;\r\n\r\n switch (validationError.errorType) {\r\n case SchemaValidationErrorType.missingField:\r\n errorMessage = StringUtils.format(errorMessageTemplate, [validationError.field.name]);\r\n break;\r\n case SchemaValidationErrorType.invalidDataType:\r\n case SchemaValidationErrorType.notAllowedValue:\r\n errorMessage = StringUtils.format(errorMessageTemplate, [validationError.field.name, validationError.value]);\r\n break;\r\n\r\n default:\r\n }\r\n\r\n if (errorMessage) {\r\n const listItemElement = createElement({ type: \"li\" });\r\n\r\n listItemElement.appendChild(createElement({\r\n type: \"span\",\r\n //value: `Field '${validationError.field.name}' with value = '${validationError.value}' ended up with error '${SchemaValidationErrorType[validationError.errorType]}'.`\r\n value: `${errorMessage}`,\r\n })); // `\r\n listElement.appendChild(listItemElement);\r\n }\r\n }\r\n\r\n errorsElement.appendChild(listElement);\r\n\r\n this._element.appendChild(errorsElement);\r\n }\r\n\r\n if (this._warnings && this._warnings.length > 0) {\r\n const warningsElement = createElement();\r\n\r\n const warningTitle = createElement({ type: \"p\" });\r\n Localization.addLocData(warningTitle, \"GUI-674378\"); // Varování:\r\n warningsElement.appendChild(warningTitle);\r\n\r\n const listElement = createElement({ type: \"ul\" });\r\n\r\n for (const validationWarning of this._warnings) {\r\n const warningMessageTemplate: string = await this._getWarningLocalization(validationWarning.warningType);\r\n let warningMessage: string;\r\n\r\n switch (validationWarning.warningType) {\r\n case SchemaValidationWarningType.unsupportedField:\r\n warningMessage = StringUtils.format(warningMessageTemplate, [validationWarning.fieldName]);\r\n break;\r\n\r\n default:\r\n }\r\n\r\n if (warningMessage) {\r\n const listItemElement = createElement({ type: \"li\" });\r\n\r\n listItemElement.appendChild(createElement({\r\n type: \"span\",\r\n //value: `Field '${validationWaring.fieldName && validationWaring.fieldName.toString()}' with value = '${validationWaring.value}' ended up with warning '${SchemaValidationWarningType[validationWaring.warningType]}'.`\r\n value: `${warningMessage}`,\r\n })); // `\r\n listElement.appendChild(listItemElement);\r\n }\r\n }\r\n\r\n warningsElement.appendChild(listElement);\r\n\r\n this._element.appendChild(warningsElement);\r\n }\r\n\r\n const infoMessage = createElement();\r\n if (this._errors.length > 0)\r\n Localization.addLocData(infoMessage, \"GUI-674375\"); // Filtr nebyl aplikován!\r\n else\r\n Localization.addLocData(infoMessage, \"GUI-674377\"); // Filtr byl aplikován.\r\n this._element.appendChild(infoMessage);\r\n\r\n return await this._element;\r\n }\r\n}\r\n","import { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../../UI.BaseControls/Control\";\r\nimport { DropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { createElement, registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\n\r\nexport class DropDownMenuItemWithButton extends DropDownMenuItem {\r\n private _groupTitleLocKey: string;\r\n\r\n private _btnParent: HTMLElement;\r\n private _groupTitle: HTMLElement;\r\n private _floatMenu: boolean = false;\r\n private _btnFloatMenu: HTMLElement;\r\n private _bntAction: (item: DropDownMenuItemWithButton) => void;\r\n\r\n public get floatMenu(): boolean {\r\n return this._floatMenu;\r\n }\r\n public set floatMenu(val: boolean) {\r\n this._floatMenu = val;\r\n this._btnParent.classList.add(\"more-button\", \"icon\", \"ui-more-vertical\");\r\n }\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n public override set locKey(v: string) {\r\n this._locKey = v;\r\n if (this._locKey) {\r\n Localization.getTextPromise(this._locKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n }\r\n }\r\n\r\n public set groupLocKey(v: string) {\r\n this._groupTitleLocKey = v;\r\n\r\n if (this._groupTitleLocKey) {\r\n this._groupTitle.classList.remove(\"Hidden\");\r\n Localization.getTextPromise(this._groupTitleLocKey).then((locItem) => {\r\n this._captionElement.textContent = locItem;\r\n });\r\n } else {\r\n this._groupTitle.classList.add(\"Hidden\");\r\n }\r\n }\r\n\r\n public get groupLocKey(): string {\r\n return this._groupTitleLocKey;\r\n }\r\n\r\n public get buttons(): HTMLButtonElement[] {\r\n return Array.from(this._btnParent.querySelectorAll(\":scope > button.MenuItemButton\")) as HTMLButtonElement[];\r\n }\r\n\r\n /**\r\n * Stav/nastavení skrytí bloku s tlačítky\r\n */\r\n public get hideButtons(): boolean {\r\n return (this._btnParent) ? this._btnParent.classList.contains(\"hidden\") : false;\r\n }\r\n\r\n public set hideButtons(value: boolean) {\r\n if (this._btnParent)\r\n this._btnParent.classList.toggle(\"hidden\", value);\r\n }\r\n\r\n protected override _constructor(): void {\r\n super._constructor();\r\n\r\n //this.Priority = ;\r\n //this.locKey = locKey;\r\n this.visible = true;\r\n //if (subMenu) this.Submenu = subMenu;\r\n }\r\n\r\n protected override _createElement(): void {\r\n this.classList.add(\"DropDownMenuItem\", \"DropDownMenuItemWithButton\");\r\n const leftContainer = createElement({ type: \"div\", classes: \"left-container\" });\r\n //const container = createElement({ type: \"div\", classes: \"container\" });\r\n const flexContainer = createElement({ type: \"div\", classes: \"flex-container Text\" });\r\n this._btnParent = createElement({ type: \"div\", classes: \"btn-bar\" });\r\n this._groupTitle = createElement({ type: \"div\", classes: \"group-title hidden\" });\r\n this._btnFloatMenu = createElement({ type: \"div\", classes: \"float-menu\" });\r\n\r\n this._createCaptionElement();\r\n this._createIconElement();\r\n\r\n flexContainer.appendChild(this._captionElement);\r\n flexContainer.appendChild(this._btnParent);\r\n flexContainer.appendChild(this._btnFloatMenu);\r\n\r\n //flexContainer.appendChild(container);\r\n leftContainer.appendChild(this._groupTitle);\r\n leftContainer.appendChild(flexContainer);\r\n\r\n this.appendChild(this._iconElement);\r\n this.appendChild(leftContainer);\r\n }\r\n\r\n protected override _createCaptionElement(): void {\r\n this._captionElement = document.createElement(\"div\");\r\n this._captionElement.classList.add(\"Caption\");\r\n }\r\n\r\n public addButton(item: IDropDownMenuButton): void {\r\n const btn = createElement({ type: \"button\", classes: [\"icon\", \"MenuItemButton\", ...item.icon], css: { order: item.order || 20 } });\r\n Control.registerEventListener(`_button_menuItemWithButton_${this._innerId}`, btn, \"click\", (e: MouseEvent) => { //`\r\n e.stopPropagation();\r\n item.action(this);\r\n });\r\n this._bntAction = item.action;\r\n Localization.addLocDescData(btn, item.locKey, \"title\");\r\n if (this._floatMenu) this._btnFloatMenu.appendChild(btn);\r\n else this._btnParent.appendChild(btn);\r\n }\r\n\r\n public addButtons(items: IDropDownMenuButton[]): void {\r\n for (const item of items) {\r\n this.addButton(item);\r\n }\r\n }\r\n\r\n public removeButtons(): void {\r\n this._btnParent.innerHTML = \"\";\r\n this._btnFloatMenu.innerHTML = \"\";\r\n Control.unregisterEventListener(`_button_menuItemWithButton_${this._innerId}`); //`\r\n }\r\n\r\n protected override _setListener(): void {\r\n super._setListener();\r\n\r\n Control.registerEventListener(`_button_menuItemWithButton_${this._innerId}`, this._btnParent, \"click\", (e: MouseEvent) => {\r\n e.stopPropagation();\r\n this._bntAction(this);\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n Control.unregisterEventListener(`_button_menuItemWithButton_${this._innerId}`); //`\r\n }\r\n}\r\n\r\nexport interface IDropDownMenuButton {\r\n icon: string[];\r\n locKey: string;\r\n action: (item?: DropDownMenuItemWithButton) => void;\r\n order?: number;\r\n displayOn?: DropDownMenuButtonDisplayOn;\r\n}\r\n\r\nexport enum DropDownMenuButtonDisplayOn {\r\n always,\r\n hover,\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuItemWithButton\", DropDownMenuItemWithButton);\r\n","import { ISchemaValidationError, ISchemaValidationResult, ISchemaValidationWarning, SchemaValidationErrorType, SchemaValidationWarningType } from \"Global/Base/Utils/ObjectSchemaValidator\";\r\nimport { EventsController } from \"Global/Dom/EventsController\";\r\nimport { AttrValueReader } from \"OW.Remoting/Remoting/AttrValueReader\";\r\nimport { Checkbox } from \"UI/UI.BaseControls/Checkbox\";\r\nimport { GenericControl } from \"UI/UI.BaseControls/GenericControl\";\r\nimport { UIUtils } from \"../../../../../Global/Dom/UIUtils\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Control } from \"../../../../UI.BaseControls/Control\";\r\nimport { IBooleanDetailValueEvent } from \"../../../../UI.BaseControls/IEvent\";\r\nimport { Action } from \"../../../../UI.Controls/Actions/Action\";\r\nimport { DropDownMenuHorizontalOpen } from \"../../../../UI.Controls/DropDownMenu/DropDownInterfaces\";\r\nimport { DropDownMenu } from \"../../../../UI.Controls/DropDownMenu/DropDownMenu\";\r\nimport { DropDownMenuItem } from \"../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { DropDownPromptItem } from \"../../../../UI.Controls/DropDownMenu/DropDownPromptItem\";\r\nimport { SeparatorMenuItem } from \"../../../../UI.Controls/DropDownMenu/SeparatorItem\";\r\nimport { createElement, registerCustomElement } from \"../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { FilterValidationMessageBuilder } from \"../../DataBuilders/FilterValidationMessageBuilder\";\r\nimport { LocalizedStringBuilder } from \"../../DataBuilders/LocalizedStringBuilder\";\r\nimport { MessageButtonType, MessageType, MessageWindow } from \"../../MessageWindow\";\r\nimport { IForm } from \"../IForm\";\r\nimport { DropDownMenuCheckboxItem } from \"./DropDownMenuItems/DropDownMenuCheckboxItem\";\r\nimport { DropDownMenuButtonDisplayOn, DropDownMenuItemWithButton, IDropDownMenuButton } from \"./DropDownMenuItems/DropDownMenuItemWithButton\";\r\nimport { FilterBlock } from \"./FilterBlock\";\r\nimport { FilterCombo } from \"./FilterCombo\";\r\nimport { FilterDatetypeOperationMapper } from \"./FilterDatetypeOperationMapper\";\r\nimport { FilterManager } from \"./FilterManager\";\r\nimport { FilterValidator } from \"./FilterValidator\";\r\n\r\nexport class FilterPanel extends Control {\r\n //#region Events\r\n //#endregion Events\r\n\r\n //#region Fields\r\n /** Tlačítko filtrovat */\r\n private _filterButton: HTMLElement;\r\n /** Kontejner pro tlačítko filtru */\r\n private _topContainer: HTMLElement;\r\n /** Kontejner pro tlačítka AND/OR */\r\n private _conditionElement: HTMLElement;\r\n /** Tlačítko AND */\r\n private _andBtnElement: HTMLElement;\r\n /** Tlačítko OR */\r\n private _orBtnElement: HTMLElement;\r\n private _filterMenuEmptyBtn: DropDownMenuItem;\r\n private _headerPanel: HTMLElement;\r\n /** Vrchní řádek headeru obsahující název filtru a křížek pro zavření panelu */\r\n private _headerTopRowContainer: HTMLDivElement;\r\n /** Název filtru v panelu */\r\n private _headerText: HTMLSpanElement;\r\n /** Ikona která spustí dropdown */\r\n private _headerDropdownIcon: HTMLButtonElement;\r\n /** Tlačítka s akcemi */\r\n private _headerRowActionButtons: HTMLDivElement;\r\n private _filterManager: FilterManager;\r\n /** Element pro vložení filtru */\r\n private _filterInsertElement: HTMLElement;\r\n /** Textarea pro vložení filtru */\r\n private _filterInsertTextarea: HTMLTextAreaElement;\r\n /** Combobox pro výběr sloupců ke třídění */\r\n private _filterCombo: FilterCombo;\r\n /** Menu umožňující manipulovat s filtry aktuálního frame */\r\n private _filterMenu: DropDownMenu;\r\n /** Obsah panelu */\r\n private _contentFilter: HTMLElement;\r\n private _color: string = \"color-default\";\r\n private _headerImplementationCheckbox: Checkbox;\r\n private _isNameEditing: boolean = false;\r\n\r\n private _headerRowButtonsInitiated: boolean = false;\r\n private _headerRowButtonsCreated: boolean = false;\r\n\r\n //#region Fields Row Buttons\r\n private _headerTurnOffButton: HTMLButtonElement;\r\n\r\n private _headerSaveAsButton: HTMLButtonElement;\r\n\r\n private _headerSaveButton: HTMLButtonElement;\r\n\r\n private _headerRevertChangesButton: HTMLButtonElement;\r\n\r\n private _headerDeleteButton: HTMLButtonElement;\r\n\r\n private _nameEditingInput: HTMLInputElement;\r\n\r\n private _nameEditingIconsRow: HTMLDivElement;\r\n\r\n private _createHeaderRowButtonsPromise?: Promise = null;\r\n\r\n //#endregion Fields Row Buttons\r\n\r\n private _events: EventsController;\r\n\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public ownerForm: IForm;\r\n\r\n public set color(value: string) {\r\n if (!value) {\r\n this._headerPanel.classList.remove(this._color);\r\n this._color = \"color-default\";\r\n } else {\r\n if (this._color && this._color.length > 0)\r\n this._headerPanel.classList.remove(this._color);\r\n\r\n this._color = value;\r\n }\r\n\r\n this._headerPanel.classList.add(this._color);\r\n }\r\n\r\n public get color(): string {\r\n return this._color;\r\n }\r\n\r\n /** Vrací aktuálně zobrazený FilterBlock nebo null */\r\n public get currentFilterBlock(): FilterBlock {\r\n if (this._contentFilter.lastChild instanceof FilterBlock) {\r\n return this._contentFilter.lastChild;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /** Vrací, zda je viditelný vstup pro vložení dříve zkopírovaného filtru */\r\n protected get _isInsertFilterVisible(): boolean {\r\n return !!(this._filterInsertElement && this._filterInsertElement.parentElement);\r\n }\r\n //#endregion Properties\r\n\r\n //#region Listeners\r\n //#endregion Listeners\r\n\r\n //#region HtmlElement\r\n protected override _constructor(): void {\r\n super._constructor();\r\n this._events = new EventsController();\r\n this._createFilterMenu();\r\n this._createHeaderFilterPanel();\r\n this._createHeaderFilterWrapper();\r\n this.appendChild(this._headerPanel);\r\n this.appendChild(this._contentFilter);\r\n this.hide();\r\n }\r\n //#endregion HtmlElement\r\n\r\n //#region Methods\r\n /** Nastaví pro panel aktuálně používaný FilterManager\r\n * @returns true, pokud se filterManager změnil\r\n */\r\n public async updateFilterManager(manager: FilterManager): Promise {\r\n this._removeInsertFilter(); // Vstup má být odstraněn vždy při aktualizaci managera (tzn. například spuštění filtru)\r\n\r\n const filterManagerChanged = this._filterManager !== manager;\r\n\r\n this._filterManager = manager;\r\n\r\n // Mohlo dojít k uložení jako přes dropdown\r\n if (this._filterManager?.getCurrentFilter()?.filterName) {\r\n if (this._isNameEditing) {\r\n this._cancelNameEditing();\r\n }\r\n\r\n await this._updateStateOfButtons();\r\n this._createImplementationFilterCheckbox();\r\n this._changeHeaderFilterName(this._filterManager.getCurrentFilter()?.filterName);\r\n } else if (this._filterManager) {\r\n Localization.addLocData(this._headerText, \"GUI-289646\"); // GUI-289646 - Filtr\r\n await this._updateStateOfButtons();\r\n }\r\n\r\n if (!filterManagerChanged) {\r\n return false;\r\n }\r\n\r\n this._filterCombo.clearItems();\r\n this._createFilterManagerEventListeners();\r\n this._registerFilterButtonAction();\r\n\r\n if (this._filterMenu.isVisible()) {\r\n await this.loadFilterItems();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Přidá sloupec do comba s výběrem sloupců\r\n * @param locKey Lokalizační klíč\r\n * @param action Akce, která se má spustit po kliknutí na položku\r\n */\r\n public addColumnItem(locKey: string, action: () => Promise): void {\r\n this._filterCombo.addItem(locKey, action);\r\n }\r\n\r\n /**\r\n * Vloží do panelu požadovaný blok s filtry\r\n * @param block Požadovaný blok\r\n */\r\n public showFilterBlock(block: FilterBlock): void {\r\n this._contentFilter.appendChild(block as HTMLElement);\r\n }\r\n\r\n /** Zaregistruje akci na stisk tlačítka pro filtrování */\r\n protected _registerFilterButtonAction(): void {\r\n this._events.addListener(this._filterButton, \"click\", () => {\r\n if (this._filterButton.classList.contains(\"Disabled\"))\r\n return;\r\n if (this._isInsertFilterVisible) {\r\n this._parseInsertedFilter(this._filterInsertTextarea.value);\r\n }\r\n\r\n if (this._filterManager.currentFilter) {\r\n this._filterManager.currentFilter.execute();\r\n } else {\r\n this._filterManager.clearFilter();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Zaregistruje akci, která se spustí po změně AND/OR\r\n * @param action Akce\r\n */\r\n public registerSignButtonAction(action: (sign: string) => void): void {\r\n this._events.addListener(this._andBtnElement, \"click\", () => {\r\n if (this._andBtnElement.classList.contains(\"Disabled\"))\r\n return;\r\n this.updateOrAndButtonsState(false);\r\n\r\n action(\"and\");\r\n });\r\n\r\n this._events.addListener(this._orBtnElement, \"click\", () => {\r\n if (this._orBtnElement.classList.contains(\"Disabled\"))\r\n return;\r\n this.updateOrAndButtonsState(true);\r\n\r\n action(\"or\");\r\n });\r\n }\r\n\r\n /**\r\n * Aktualizuje aktivnost filtrovacího tlačítka\r\n * @param disabled Požadovaný stav\r\n */\r\n public updateFilterButtonState(disabled: boolean): void {\r\n (this._filterButton as HTMLButtonElement).disabled = disabled;\r\n }\r\n\r\n /**\r\n * Aktualizuje aktivnost AND/OD tlačítek\r\n * @param activateOr Požadovaný stav\r\n */\r\n public updateOrAndButtonsState(activateOr: boolean): void {\r\n this._orBtnElement.classList.toggle(\"active\", activateOr);\r\n this._andBtnElement.classList.toggle(\"active\", !activateOr);\r\n }\r\n\r\n /**\r\n * Aktualizuje viditelnost bloku s tlačítky AND/OR\r\n * @param visible Zda má být viditelný\r\n */\r\n public updateConditionElementState(visible: boolean): void {\r\n if (visible) {\r\n this._conditionElement.style.display = \"\";\r\n } else {\r\n this._conditionElement.style.display = \"none\";\r\n }\r\n }\r\n\r\n /**\r\n * Zobrazí vstup pro vložení dříve zkopírovaného filtru\r\n * @param filter Hodnota, která se má zobrazit ve vstupu\r\n */\r\n public showInsertFilter(filter?: string): void {\r\n if (!this._filterInsertElement) {\r\n this._filterInsertElement = createElement({ classes: \"filter-insert FilterBlock\" });\r\n const container = createElement({ classes: \"FilterGroup\" });\r\n this._filterInsertTextarea = createElement({ type: \"textarea\", classes: \"Edit\" }) as HTMLTextAreaElement;\r\n\r\n this._events.addListener(this._filterInsertTextarea, \"keypress\", (event: KeyboardEvent) => {\r\n if (event.key === \"Enter\") { // enter, potvrzeni\r\n event.preventDefault();\r\n\r\n if (!this._parseInsertedFilter(this._filterInsertTextarea.value))\r\n return;\r\n\r\n this._filterManager.execute();\r\n }\r\n });\r\n\r\n this._events.addListener(this._filterInsertTextarea, \"input\", () => {\r\n if (this._filterInsertTextarea.value)\r\n this.updateFilterButtonState(false);\r\n });\r\n\r\n container.appendChild(this._filterInsertTextarea);\r\n this.updateFilterButtonState(false);\r\n\r\n if ((navigator as any).clipboard && (navigator as any).clipboard.readText != null) {\r\n const insertButton = createElement({ type: \"div\", classes: \"btn primary\" });\r\n Localization.addLocData(insertButton, \"GUI-673317\"); // Vložit obsah schránky\r\n GenericControl.registerEventListener(insertButton, \"click\", async (_e: ClipboardEvent) => {\r\n if (insertButton.classList.contains(\"Disabled\"))\r\n return;\r\n const clipboardText = await (navigator as any).clipboard.readText();\r\n this._filterInsertTextarea.focus();\r\n this._filterInsertTextarea.value = clipboardText;\r\n });\r\n container.appendChild(insertButton);\r\n }\r\n this._filterInsertElement.appendChild(container);\r\n }\r\n\r\n this._filterInsertTextarea.value = (filter) ? filter : \"\";\r\n\r\n if (!this._isInsertFilterVisible) {\r\n this._contentFilter.insertBefore(this._filterInsertElement, this._conditionElement);\r\n }\r\n }\r\n\r\n /**\r\n * Zpracuje vstup z vkládání zkopírovaného filtru\r\n * @param text Vstup\r\n */\r\n protected _parseInsertedFilter(text?: string): boolean {\r\n const userJson = text;\r\n if (userJson && userJson.trim() !== \"\") {\r\n const userJsonString = AttrValueReader.read(userJson);\r\n let filterDataObject;\r\n try {\r\n filterDataObject = JSON.parse(userJsonString);\r\n } catch (e) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-674763\", [e]), \"GUI-674376\"); //Nelze aplikovat filtr. Nepodařilo se parsovat JSON. @0 | Vložit filtr\r\n return false;\r\n }\r\n\r\n // Kontrola, jestli existují všechny sloupce v zadaném filtru\r\n if (!FilterValidator.validateColumnDataTypes(filterDataObject, this._filterManager.attrNameToDataType)) {\r\n return false;\r\n }\r\n // Kontrola validnosti JSONu\r\n if (!this._processValidationResults(FilterValidator.validateFilterData(filterDataObject))) {\r\n return false;\r\n }\r\n\r\n const userFilter = FilterDatetypeOperationMapper.transformUserJson(userJsonString, this._filterManager.attrNameToDataType);\r\n const insertedFilter = this._filterManager.createNew(false);\r\n insertedFilter.attrNameToDataType = this._filterManager.attrNameToDataType;\r\n insertedFilter.loadData(userFilter);\r\n insertedFilter.unsave();\r\n this._filterManager.selectFilter(insertedFilter);\r\n this._filterManager.updateFilterPanel();\r\n\r\n this._removeInsertFilter();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _createHeaderFilterPanel(): void {\r\n this.classList.add(\"FilterPanel\");\r\n\r\n // vytvoření headeru\r\n this._headerPanel = createElement({ type: \"div\", classes: [\"header\", \"color-default\"] }) as HTMLDivElement;\r\n\r\n // Vytvoření tlačítka s názvem filtru\r\n const headerFilterName = createElement({ type: \"div\", classes: [\"headerFilterName\"] }) as HTMLDivElement;\r\n this._headerText = createElement({ type: \"span\", classes: [\"text\", \"title\"] }) as HTMLSpanElement;\r\n\r\n // Lokalizace hlavičky filtru\r\n Localization.addLocData(this._headerText, \"GUI-289646\"); // GUI-289646 - Filtr\r\n\r\n // Vytvoření ikony pro spuštění dropdownu\r\n this._headerDropdownIcon = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"ui-more\"] }) as HTMLButtonElement;\r\n\r\n // Přidá k panelu text a ikonu\r\n headerFilterName.appendChild(this._headerText);\r\n headerFilterName.appendChild(this._headerDropdownIcon);\r\n\r\n // Přidání listeneru pro zobrazení dropdownu\r\n this._events.addListener(this._headerDropdownIcon, \"click\", async (e) => {\r\n if (this._filterMenu.isOpened) {\r\n this._filterMenu.close();\r\n } else {\r\n if (!this._isNameEditing) {\r\n this._headerDropdownIcon.disabled = true;\r\n await this.loadFilterItems(); // Může dojít ke změně ve filtermenu na ListFrame\r\n this._filterMenu.show(headerFilterName, e);\r\n this._headerDropdownIcon.disabled = false;\r\n }\r\n }\r\n });\r\n\r\n this._events.addListener(this._headerText, \"click\", () => {\r\n this._promptHeaderEditing();\r\n });\r\n\r\n // Křížek na zavření panelu\r\n const closeFilterPanelButton = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"ui-cross-small\", \"close\"] });\r\n this._events.addListener(closeFilterPanelButton, \"click\", () => {\r\n this.hide();\r\n });\r\n\r\n Localization.addLocDescData(closeFilterPanelButton, \"GUI-668877\", \"title\"); // Zavřít panel\r\n\r\n // Řádek obsahující křížek a jméno filtru\r\n this._headerTopRowContainer = createElement({ type: \"div\", classes: [\"headerTopRowContainer\"] }) as HTMLDivElement;\r\n this._headerTopRowContainer.appendChild(headerFilterName);\r\n this._headerTopRowContainer.appendChild(closeFilterPanelButton);\r\n this._headerPanel.appendChild(this._headerTopRowContainer);\r\n\r\n // Vytvoření řádku pro tlačítka akcí\r\n this._headerRowActionButtons = createElement({ type: \"div\", classes: [\"headerRowActionButtons\"] }) as HTMLDivElement;\r\n }\r\n\r\n private _createHeaderFilterWrapper(): void {\r\n this._contentFilter = createElement({ classes: \"FilterWrapper\" });\r\n this._topContainer = createElement({ type: \"div\", classes: [\"FilterTopContainer\"] });\r\n\r\n // Vytvoření tlačítka pro přidaní dalšího sloupce k aktuálnímu filtru\r\n this._filterCombo = new FilterCombo();\r\n this._filterCombo.defaultLocKey = \"GUI-311870\"; // Přidat sloupec\r\n this._filterCombo.classList.add(\"AddColumn\");\r\n this._topContainer.appendChild(this._filterCombo as HTMLElement);\r\n\r\n // Vytvoření tlačítka pro spuštění aktuálního filtru\r\n this._filterButton = createElement({ type: \"button\", classes: [\"btn-filter\", \"btn\", \"primary\"], value: \"Filtrovat\" });\r\n Localization.addLocData(this._filterButton, \"GUI-280088\"); // Filtrovat\r\n this._topContainer.appendChild(this._filterButton);\r\n this._contentFilter.appendChild(this._topContainer);\r\n\r\n // Vytvoření přepínače podmínek u filtru\r\n this._conditionElement = createElement({ classes: \"condition\" });\r\n this._andBtnElement = createElement({ classes: [\"btn-condition\", \"and\", \"active\"] });\r\n this._orBtnElement = createElement({ classes: [\"btn-condition\", \"or\"] });\r\n\r\n // Vytvoření přepínače podmínek pro více filtračních skupin\r\n const innerSpanAnd = createElement({ type: \"span\" });\r\n Localization.addLocData(innerSpanAnd, \"GUI-666143\"); // Vše současně\r\n this._andBtnElement.appendChild(innerSpanAnd);\r\n const innerSpanOr = createElement({ type: \"span\" });\r\n Localization.addLocData(innerSpanOr, \"GUI-666144\"); // Alespoň jeden\r\n this._orBtnElement.appendChild(innerSpanOr);\r\n\r\n this._conditionElement.style.display = \"none\";\r\n\r\n this._conditionElement.appendChild(this._andBtnElement);\r\n this._conditionElement.appendChild(this._orBtnElement);\r\n this._contentFilter.appendChild(this._conditionElement);\r\n }\r\n\r\n private _createFilterManagerEventListeners(): void {\r\n const saveStateListener = async (_sender: FilterManager, filterBlock: FilterBlock): Promise => {\r\n const filterName = this._filterManager.getCurrentFilter()?.filterName;\r\n if (filterName && filterName !== this._headerText.innerText) {\r\n this._changeHeaderFilterName(filterBlock.filterName);\r\n }\r\n\r\n if (filterBlock && filterBlock.filterId !== this._filterManager.getCurrentFilter()?.filterId) {\r\n return;\r\n }\r\n\r\n if (!this._isNameEditing) {\r\n await this._updateStateOfButtons();\r\n this._createImplementationFilterCheckbox();\r\n }\r\n };\r\n\r\n const filterClearedListener = async () => {\r\n await this._resetPanel();\r\n await this._resetHeaderName();\r\n };\r\n\r\n // Po změně stavu filtru se panel aktualizuje\r\n this._events.add(this._filterManager.filterSaveStateChanged, saveStateListener);\r\n // Při smazání filtru se vyresetuje panel\r\n this._events.add(this._filterManager.filterCleared, filterClearedListener);\r\n\r\n document.addEventListener(\"filterShowImplementationCheckbox\", () => {\r\n this._createImplementationFilterCheckbox();\r\n });\r\n }\r\n /**\r\n * Zpracovává výstup z validace vloženého filtru a zobrazuje informace uživateli\r\n * @param validationResults Výsledky validace\r\n */\r\n private _processValidationResults(validationResults: ISchemaValidationResult[]): boolean {\r\n let success = true;\r\n const errors: ISchemaValidationError[] = [];\r\n const warnings: ISchemaValidationWarning[] = [];\r\n const errorStrings: string[] = [];\r\n const warningsStrings: string[] = [];\r\n\r\n for (const validationResult of validationResults) {\r\n if (validationResult.success === false)\r\n success = false;\r\n\r\n validationResult.errors.forEach((validationError) => {\r\n const errorMessage = `Field '${validationError.field.name}' with value = '${validationError.value}' ended up with error '${SchemaValidationErrorType[validationError.errorType]}'.`; // `\r\n //resultText += errorMessage + '\\n';\r\n errors.push(validationError);\r\n errorStrings.push(errorMessage);\r\n });\r\n\r\n validationResult.warnings.forEach((validationWaring) => {\r\n const warningMessage = `Field '${validationWaring.fieldName && validationWaring.fieldName.toString()}' with value = '${validationWaring.value}' ended up with warning '${SchemaValidationWarningType[validationWaring.warningType]}'.`; // `\r\n //resultText += warningMessage + '\\n';\r\n warnings.push(validationWaring);\r\n warningsStrings.push(warningMessage);\r\n });\r\n }\r\n\r\n if ((errors.length > 0) || (warnings.length > 0)) {\r\n const validationMessageBuilder = new FilterValidationMessageBuilder(errors, warnings);\r\n MessageWindow.showAlert(validationMessageBuilder, \"GUI-674343\"); // Chyby a varování struktury filtru\r\n }\r\n\r\n return success;\r\n }\r\n\r\n /** Odstraní vstup pro vložení dříve zkopírovaného filtru */\r\n protected _removeInsertFilter(): void {\r\n if (this._isInsertFilterVisible) {\r\n this._contentFilter.removeChild(this._filterInsertElement);\r\n }\r\n }\r\n\r\n /** Vytvoří menu pro správu filtru */\r\n private _createFilterMenu(): void {\r\n // vytvořené menu se nesmí smazat, jinak se uživateli do již otevřeného menu nepromítnou nové položky\r\n if (this._filterMenu == null) {\r\n this._filterMenu = new DropDownMenu();\r\n this._filterMenu.horizontalOpenPosition = DropDownMenuHorizontalOpen.left;\r\n } else {\r\n this._filterMenu.clearItems();\r\n }\r\n\r\n this._filterMenu.addItem(FilterPanel._createDropMenuItem(\"new\", async () => {\r\n this._filterManager.createNew();\r\n this._filterManager.updateFilterPanel();\r\n this._headerText.innerText = await Localization.getTextPromise(\"GUI-289646\"); //Filtr\r\n await this._updateStateOfButtons();\r\n this._createImplementationFilterCheckbox();\r\n }, \"GUI-382590\")); // Nový\r\n\r\n this._filterMenu.addItem(FilterPanel._createDropMenuItem(\"insert\", async () => {\r\n this._filterManager.insertFilter();\r\n }, \"GUI-674376\")); // Vložit filtr\r\n\r\n this._filterMenu.addItem(FilterPanel._createDropMenuItem(\"filter\", async () => {\r\n this._filterManager.showAdvancedFilter();\r\n }, \"GUI-691373\")); // Pokročilé filtrování\r\n\r\n this._filterMenu.addItem(new SeparatorMenuItem());\r\n this._filterMenuEmptyBtn = FilterPanel._createDropMenuItem(\"checked\",\r\n async () => {\r\n if (!(await this.ownerForm.checkAndSaveForm({ cancelEditIfNotEdited: true }))) {\r\n return;\r\n }\r\n this._filterManager.clearFilter();\r\n this._filterMenuEmptyBtn.icon = \"checked\";\r\n await this._resetPanel();\r\n await this._resetHeaderName();\r\n },\r\n \"GUI-670216\"); //Vše\r\n this._filterMenu.addItem(this._filterMenuEmptyBtn); // Nefiltrovat\r\n }\r\n\r\n /**\r\n * Načte seznam filtrů do menu pro filtry\r\n */\r\n public async loadFilterItems(): Promise {\r\n if (!this._headerRowButtonsInitiated) {\r\n await this._createHeaderRowButtons();\r\n } else if (this._createHeaderRowButtonsPromise) {\r\n await this._createHeaderRowButtonsPromise;\r\n }\r\n\r\n this._createFilterMenu();\r\n\r\n if (!this._filterManager) {\r\n return;\r\n }\r\n\r\n const info = await this._filterManager.getFilterList();\r\n const dropDownItemsPromiseArr: Promise[] = [];\r\n\r\n for (const [id, filterBlock] of info) {\r\n dropDownItemsPromiseArr.push(this._createNewFilterItem(id, filterBlock));\r\n }\r\n\r\n const resolvedItemArray = await Promise.all(dropDownItemsPromiseArr);\r\n\r\n for (const dropDownItem of resolvedItemArray) {\r\n this._filterMenu.addItem(dropDownItem);\r\n }\r\n }\r\n\r\n private _createImplementationFilterCheckbox(): void {\r\n if (this._filterManager?.canEditImplementationFilters) {\r\n if (!this._headerImplementationCheckbox) {\r\n this._headerImplementationCheckbox = new Checkbox();\r\n this._headerImplementationCheckbox.isNullable = false;\r\n this._headerImplementationCheckbox.classList.add(\"headerImplementationCheckbox\");\r\n Localization.addLocData(this._headerImplementationCheckbox, \"GUI-457012\", \"text\");\r\n\r\n this._events.addListener(this._headerImplementationCheckbox, \"change\", () => {\r\n this._filterManager.getCurrentFilter().isImplementationFilter = this._headerImplementationCheckbox.value;\r\n this._filterManager.getCurrentFilter().unsave();\r\n });\r\n }\r\n\r\n this._headerImplementationCheckbox.visible = true;\r\n this._headerImplementationCheckbox.value = this._filterManager.getCurrentFilter()?.isImplementationFilter;\r\n this._headerPanel.append(this._headerImplementationCheckbox);\r\n }\r\n }\r\n\r\n //#region Tvorba buttonu\r\n\r\n /** Vrací informaci, zda uživatel může měnit uložený filtr\r\n * @param filterBlock\r\n * @param filterManager\r\n */\r\n private static _canEditFilter(filterBlock: FilterBlock, filterManager: FilterManager): boolean {\r\n return !filterBlock.isImplementationFilter || filterManager.canEditImplementationFilters;\r\n }\r\n\r\n /**\r\n * Tlačítka uloženého nezměněného filtru\r\n * @param filterBlock\r\n * @param filterManager\r\n */\r\n private static _getSavedButton(filterBlock: FilterBlock, filterManager: FilterManager): IDropDownMenuButton[] {\r\n const buttons: IDropDownMenuButton[] = [];\r\n if (this._canEditFilter(filterBlock, filterManager))\r\n buttons.push({\r\n locKey: \"GUI-668860\", //Přejmenovat filtr\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n const implementationCheckbox = filterManager.canEditImplementationFilters ? new DropDownMenuCheckboxItem() : null;\r\n if (implementationCheckbox) {\r\n implementationCheckbox.classList.add(\"implementationCheckboxContainer\");\r\n implementationCheckbox.setLocalizedCaption(\"GUI-740260\"); // [IMP]\r\n\r\n // Nastavení hodnot\r\n implementationCheckbox.isChecked = filterBlock.isImplementationFilter;\r\n implementationCheckbox.value = filterBlock.isImplementationFilter;\r\n\r\n implementationCheckbox.action = new Action(async () => {\r\n implementationCheckbox.isChecked = !implementationCheckbox.isChecked;\r\n implementationCheckbox.value = !implementationCheckbox.value;\r\n });\r\n\r\n item.insertAdjacentElement(\"afterend\", implementationCheckbox);\r\n }\r\n\r\n FilterPanel._promptFilterName({\r\n item: item,\r\n tempName: filterBlock.filterName,\r\n onSuccessAction: async (name, promptItem) => {\r\n if (name) {\r\n if (filterManager.canEditImplementationFilters) {\r\n filterBlock.isImplementationFilter = implementationCheckbox.value;\r\n }\r\n await filterBlock.save(name, filterManager);\r\n item.setCaption(await filterManager.getFilterDisplayName(filterBlock));\r\n item.visible = true;\r\n promptItem.visible = false;\r\n implementationCheckbox?.remove();\r\n promptItem.dispose();\r\n } else {\r\n promptItem.setInvalid(\"GUI-625140\"); // Musí být vyplněno\r\n }\r\n },\r\n onCancelAction: (promptItem) => {\r\n item.visible = true;\r\n promptItem.dispose();\r\n implementationCheckbox?.remove();\r\n },\r\n });\r\n },\r\n icon: [\"edit\", \"editorial-pencil\"],\r\n });\r\n buttons.push({\r\n locKey: \"GUI-615974\", //Uložit jako\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n item.isEnabled = false;\r\n item.hideButtons = true;\r\n FilterPanel._promptFilterName({\r\n item: item,\r\n tempName: filterBlock.filterName,\r\n onSuccessAction: async (name, promptItem) => {\r\n if (name) {\r\n item.visible = true;\r\n const newFilterBlock = await filterBlock.save(name, filterManager, true);\r\n const newItem = await filterManager.filterPanel._createNewFilterItem(newFilterBlock.filterId, newFilterBlock);\r\n newItem.setCaption(await filterManager.getFilterDisplayName(newFilterBlock));\r\n item.parent.addItemAfter(newItem, item);\r\n newItem.removeButtons();\r\n newItem.addButtons(FilterPanel.getCurrentButtons(newFilterBlock, filterManager));\r\n FilterPanel._selectFilter(newFilterBlock, filterManager, true);\r\n promptItem.visible = false;\r\n item.hideButtons = false;\r\n item.isEnabled = true;\r\n promptItem.dispose();\r\n } else {\r\n promptItem.setInvalid(\"GUI-625140\"); // Musí být vyplněno\r\n }\r\n },\r\n onCancelAction: (promptItem) => {\r\n item.visible = true;\r\n item.hideButtons = false;\r\n item.isEnabled = true;\r\n promptItem.dispose();\r\n },\r\n hideCurrentItem: false,\r\n });\r\n },\r\n icon: [\"saveas\", \"tool-floppy-disks\"],\r\n });\r\n\r\n buttons.push(this._getCopyFilterButton(filterBlock, filterManager));\r\n if (this._canEditFilter(filterBlock, filterManager))\r\n buttons.push({\r\n locKey: \"GUI-615973\", // Smazat filtr\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: (item) => {\r\n item.parent.closeAll();\r\n const qm = new MessageWindow(new LocalizedStringBuilder(\"GUI-599180\")); //Odstranit?\r\n qm.okButtonCaption = \"GUI-146838\";\r\n qm.noButtonCaption = \"GUI-146840\";\r\n qm.type = MessageType.message;\r\n qm.show().then(async (r) => {\r\n if (r.result === MessageButtonType.ok) {\r\n await filterManager.removeFilter(filterBlock);\r\n item.remove();\r\n }\r\n });\r\n },\r\n icon: [\"remove\", \"editorial-trash\"],\r\n });\r\n\r\n return buttons;\r\n }\r\n\r\n /**\r\n * Tlačítka uloženého změněného filtru\r\n * @param filterBlock\r\n * @param filterManager\r\n */\r\n private static _getSaveAsButton(filterBlock: FilterBlock, filterManager: FilterManager): IDropDownMenuButton[] {\r\n const buttons: IDropDownMenuButton[] = [];\r\n if (this._canEditFilter(filterBlock, filterManager))\r\n buttons.push({\r\n locKey: \"GUI-28829\", // Uložit filtr\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n const name = filterBlock.filterName;\r\n\r\n if (name) {\r\n await filterBlock.save(name, filterManager);\r\n item.setCaption(await filterManager.getFilterDisplayName(filterBlock));\r\n }\r\n item.removeButtons();\r\n item.addButtons(FilterPanel.getCurrentButtons(filterBlock, filterManager));\r\n },\r\n icon: [\"save\", \"tool-floppy-disk\"],\r\n });\r\n buttons.push({\r\n locKey: \"GUI-615974\", // Uložit jako\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n item.isEnabled = false;\r\n item.hideButtons = true;\r\n FilterPanel._promptFilterName({\r\n item: item,\r\n tempName: filterBlock.filterName,\r\n onSuccessAction: async (name, promptItem) => {\r\n if (name) {\r\n item.visible = true;\r\n const newFilterBlock = await filterBlock.save(name, filterManager, true);\r\n const newItem = await filterManager.filterPanel._createNewFilterItem(newFilterBlock.filterId, newFilterBlock);\r\n newItem.setCaption(await filterManager.getFilterDisplayName(newFilterBlock));\r\n item.parent.addItemAfter(newItem, item);\r\n item.setCaption(await filterManager.getFilterDisplayName(filterBlock));\r\n item.removeButtons();\r\n item.addButtons(FilterPanel.getCurrentButtons(filterBlock, filterManager));\r\n newItem.removeButtons();\r\n newItem.addButtons(FilterPanel.getCurrentButtons(newFilterBlock, filterManager));\r\n FilterPanel._selectFilter(newFilterBlock, filterManager);\r\n promptItem.visible = false;\r\n item.hideButtons = false;\r\n item.isEnabled = true;\r\n promptItem.dispose();\r\n } else {\r\n promptItem.setInvalid(\"GUI-625140\"); // Musí být vyplněno\r\n }\r\n },\r\n onCancelAction: (promptItem) => {\r\n item.visible = true;\r\n item.hideButtons = false;\r\n item.isEnabled = true;\r\n promptItem.dispose();\r\n },\r\n hideCurrentItem: false,\r\n });\r\n },\r\n icon: [\"saveas\", \"tool-floppy-disks\"],\r\n });\r\n\r\n buttons.push(this._getCopyFilterButton(filterBlock, filterManager));\r\n\r\n buttons.push({\r\n locKey: \"GUI-615976\", //Vrátit změny\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n await filterManager.getSavedFilterById(filterBlock.filterId); // Resetuje data filtru\r\n\r\n item.setCaption(await filterManager.getFilterDisplayName(filterBlock));\r\n item.removeButtons();\r\n item.addButtons(FilterPanel.getCurrentButtons(filterBlock, filterManager));\r\n\r\n if (filterBlock.isUsed) {\r\n filterManager.execute();\r\n }\r\n },\r\n icon: [\"Close\", \"editorial-undo\"],\r\n });\r\n return buttons;\r\n }\r\n\r\n /**\r\n * Tlačítka nového neuloženého filtru\r\n * @param filterBlock\r\n * @param filterManager\r\n */\r\n private static _getNoSavedButton(filterBlock: FilterBlock, filterManager: FilterManager): IDropDownMenuButton[] {\r\n const buttons: IDropDownMenuButton[] = [];\r\n if (this._canEditFilter(filterBlock, filterManager))\r\n buttons.push({\r\n locKey: \"GUI-28829\", // Uložit filtr\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: async (item) => {\r\n FilterPanel._promptFilterName({\r\n item: item,\r\n tempName: filterBlock.tempName,\r\n onSuccessAction: async (name, promptItem) => {\r\n if (name) {\r\n await filterBlock.save(name, filterManager);\r\n item.visible = true;\r\n item.setCaption(await filterManager.getFilterDisplayName(filterBlock));\r\n item.removeButtons();\r\n item.addButtons(FilterPanel.getCurrentButtons(filterBlock, filterManager));\r\n promptItem.visible = false;\r\n promptItem.dispose();\r\n } else {\r\n promptItem.setInvalid(\"GUI-625140\"); // Musí být vyplněno\r\n }\r\n },\r\n onCancelAction: (promptItem) => {\r\n item.visible = true;\r\n promptItem.dispose();\r\n },\r\n });\r\n },\r\n icon: [\"save\", \"tool-floppy-disk\"],\r\n });\r\n\r\n buttons.push(this._getCopyFilterButton(filterBlock, filterManager));\r\n\r\n if (this._canEditFilter(filterBlock, filterManager))\r\n buttons.push({\r\n locKey: \"GUI-615973\", // Smazat filtr\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: (item) => {\r\n item.parent.closeAll();\r\n const qm = new MessageWindow(new LocalizedStringBuilder(\"GUI-599180\"));\r\n qm.okButtonCaption = \"GUI-146838\";\r\n qm.noButtonCaption = \"GUI-146840\";\r\n qm.type = MessageType.message;\r\n qm.show().then(async (r) => {\r\n if (r.result === MessageButtonType.ok) {\r\n await filterManager.removeFilter(filterBlock);\r\n item.remove();\r\n }\r\n });\r\n },\r\n icon: [\"remove\", \"editorial-trash\"],\r\n });\r\n\r\n return buttons;\r\n }\r\n\r\n private static _getCopyFilterButton(filterBlock: FilterBlock, _filterManager: FilterManager): IDropDownMenuButton {\r\n return {\r\n locKey: \"GUI-673291\", // Zkopírovat definici\r\n displayOn: DropDownMenuButtonDisplayOn.hover,\r\n action: (item) => {\r\n item.parent.closeAll();\r\n UIUtils.pasteToClipboard(JSON.stringify(filterBlock.getFilterData(filterBlock.type, true)));\r\n },\r\n icon: [\"copy\"],\r\n };\r\n }\r\n\r\n public static getCurrentButtons(filterBlock: FilterBlock, filterManager: FilterManager): IDropDownMenuButton[] {\r\n if (filterBlock.isSaved) {\r\n return FilterPanel._getSavedButton(filterBlock, filterManager);\r\n } else {\r\n if (filterBlock.filterId) { // pokud je existující, ale rozeditovany\r\n return FilterPanel._getSaveAsButton(filterBlock, filterManager);\r\n } else { // pokud je neexistující\r\n return FilterPanel._getNoSavedButton(filterBlock, filterManager);\r\n }\r\n }\r\n }\r\n //#endregion Tvorba buttonu\r\n\r\n /**\r\n * Vytvoří a přidá za/místo vybranou položku filtru box pro zadání jména filtru\r\n */\r\n private static _promptFilterName({ item, tempName, onSuccessAction, onCancelAction, hideCurrentItem = true }: IPromptFilterName): void {\r\n const newItem = new DropDownPromptItem();\r\n newItem.classList.add(\"prompt-nameEditing\");\r\n\r\n newItem.text = tempName;\r\n newItem.okAction = onSuccessAction;\r\n newItem.cancelAction = onCancelAction;\r\n newItem.parent = item.parent;\r\n item.insertAdjacentElement(\"afterend\", newItem);\r\n newItem.focusEdit();\r\n\r\n if (hideCurrentItem) {\r\n item.visible = false; // skrýt původní element\r\n }\r\n }\r\n\r\n /**\r\n * Vybere požadovaný blok filtrů\r\n * @param filterBlock Blok filtrů\r\n * @param filterManager Manažer aktuálního framu\r\n * @param updatePanel Zda má být aktualizován panel s filtry\r\n */\r\n private static _selectFilter(filterBlock: FilterBlock, filterManager: FilterManager, updatePanel: boolean = true): void {\r\n filterManager.selectFilter(filterBlock);\r\n\r\n if (updatePanel) {\r\n filterManager.updateFilterPanel();\r\n }\r\n\r\n filterManager.execute();\r\n }\r\n\r\n /**\r\n * Vytvoření nové položky menu pro filtr do dropdownu\r\n */\r\n private async _createNewFilterItem(_id: string, filterBlock: FilterBlock): Promise {\r\n const buttons: IDropDownMenuButton[] = FilterPanel.getCurrentButtons(filterBlock, this._filterManager);\r\n\r\n const menuItem = FilterPanel.createDropMenuItemForFilters(\"None\", async () => {\r\n // při kliku na položku menu dojde k vybrání, zobrazení a spuštění filtru\r\n FilterPanel._selectFilter(filterBlock, this._filterManager);\r\n }, undefined, true, buttons);\r\n\r\n menuItem.setCaption(await this._filterManager.getFilterCaption(filterBlock));\r\n\r\n if (filterBlock.isUsed) {\r\n menuItem.icon = \"checked\";\r\n this._filterMenuEmptyBtn.icon = \"none\";\r\n } else\r\n menuItem.icon = \"none\";\r\n\r\n filterBlock.registerEventListener(\"filterSelected\", (e: IBooleanDetailValueEvent) => {\r\n if (e.detail.value) {\r\n menuItem.icon = \"checked\";\r\n this._filterMenuEmptyBtn.icon = \"none\";\r\n } else\r\n menuItem.icon = \"none\";\r\n });\r\n\r\n return menuItem;\r\n }\r\n\r\n private static _createDropMenuItem(icon: string, fnc: () => Promise, locKey: string, enabled: boolean = true): DropDownMenuItem {\r\n const element = new DropDownMenuItem();\r\n const action = new Action(fnc, locKey);\r\n\r\n element.action = action;\r\n action.enabled = enabled;\r\n\r\n element.icon = icon;\r\n\r\n return element;\r\n }\r\n\r\n private async _createHeaderRowButtons(): Promise {\r\n const createButtons = async (buttonsContainer: HTMLDivElement) => {\r\n this._headerTurnOffButton = await this._createHeaderTurnOffButton();\r\n FilterPanel._appendDisabledButton(buttonsContainer, this._headerTurnOffButton);\r\n\r\n this._headerSaveAsButton = await this._createHeaderSaveAsButton();\r\n FilterPanel._appendDisabledButton(buttonsContainer, this._headerSaveAsButton);\r\n\r\n this._headerSaveButton = await this._createHeaderSaveButton();\r\n FilterPanel._appendDisabledButton(buttonsContainer, this._headerSaveButton);\r\n\r\n this._headerRevertChangesButton = await this._createHeaderRevertChangesButton();\r\n FilterPanel._appendDisabledButton(buttonsContainer, this._headerRevertChangesButton);\r\n\r\n this._headerDeleteButton = await this._createHeaderDeleteButton();\r\n FilterPanel._appendDisabledButton(buttonsContainer, this._headerDeleteButton);\r\n\r\n return true;\r\n };\r\n\r\n if (!this._headerRowButtonsInitiated) {\r\n this._headerRowButtonsInitiated = true;\r\n this._createHeaderRowButtonsPromise = createButtons(this._headerRowActionButtons);\r\n await this._createHeaderRowButtonsPromise;\r\n this._createHeaderRowButtonsPromise = null;\r\n\r\n this._headerRowButtonsCreated = true;\r\n this._headerPanel.appendChild(this._headerRowActionButtons);\r\n }\r\n }\r\n\r\n private static _appendDisabledButton(buttonsContainer: HTMLDivElement, button: HTMLButtonElement): void {\r\n button.disabled = true;\r\n buttonsContainer.appendChild(button);\r\n }\r\n\r\n private async _updateStateOfButtons(): Promise {\r\n const currentFilterBlock = this._filterManager.getCurrentFilter();\r\n\r\n if (!currentFilterBlock) {\r\n if (this._headerRowButtonsCreated || (this._createHeaderRowButtonsPromise && await this._createHeaderRowButtonsPromise)) {\r\n this._headerSaveAsButton.disabled = true;\r\n this._headerSaveButton.disabled = true;\r\n this._headerRevertChangesButton.disabled = true;\r\n this._headerTurnOffButton.disabled = true;\r\n this._headerDeleteButton.disabled = true;\r\n }\r\n return;\r\n }\r\n\r\n // Informace, že jde o implementační filtr a uživatel nemá právo ho měnit\r\n const impDisabled = !FilterPanel._canEditFilter(currentFilterBlock, this._filterManager);\r\n this._headerSaveAsButton.disabled = !(currentFilterBlock.isSaved || currentFilterBlock.filterId);\r\n\r\n if (!currentFilterBlock.isSaved) {\r\n this._headerSaveButton.disabled = impDisabled;\r\n\r\n if (currentFilterBlock.filterId) {\r\n this._headerRevertChangesButton.disabled = false;\r\n }\r\n } else {\r\n this._headerSaveButton.disabled = true;\r\n this._headerRevertChangesButton.disabled = true;\r\n }\r\n\r\n if (currentFilterBlock.isVisible()) {\r\n this._headerTurnOffButton.disabled = false;\r\n this._headerDeleteButton.disabled = impDisabled;\r\n }\r\n }\r\n\r\n private async _createHeaderTurnOffButton(): Promise {\r\n const headerTurnOffButton = await this._createLocalisedFlatButton(\"GUI-565552\"); //Vypnout\r\n\r\n this._events.addListener(headerTurnOffButton, \"click\", async () => {\r\n if (!(await this.ownerForm.checkAndSaveForm({ cancelEditIfNotEdited: true }))) {\r\n return;\r\n }\r\n\r\n this._filterMenuEmptyBtn.icon = \"checked\";\r\n await this._resetHeaderName();\r\n this._filterManager.clearFilter();\r\n });\r\n\r\n return headerTurnOffButton;\r\n }\r\n\r\n private async _createHeaderRevertChangesButton(): Promise {\r\n const revertChangesButton = await this._createLocalisedFlatButton(\"GUI-615976\"); // Zrušit\r\n\r\n this._events.addListener(revertChangesButton, \"click\", async () => {\r\n const filterBlock = this._filterManager.getCurrentFilter();\r\n await this._filterManager.getSavedFilterById(filterBlock.filterId);\r\n\r\n if (filterBlock.isUsed) {\r\n this._filterManager.execute();\r\n }\r\n await this._updateStateOfButtons();\r\n });\r\n\r\n return revertChangesButton;\r\n }\r\n\r\n private async _createHeaderDeleteButton(): Promise {\r\n const headerDeleteButton = await this._createLocalisedFlatButton(\"GUI-456318\"); // Smazat\r\n\r\n this._events.addListener(headerDeleteButton, \"click\", async () => {\r\n const filterBlock = this._filterManager.getCurrentFilter();\r\n const messageWindow = new MessageWindow(new LocalizedStringBuilder(\"GUI-599180\")); // Odstranit\r\n messageWindow.okButtonCaption = \"GUI-146838\"; // Ano\r\n messageWindow.noButtonCaption = \"GUI-146840\"; // Ne\r\n messageWindow.type = MessageType.message;\r\n messageWindow.show().then(async (response) => {\r\n if (response.result === MessageButtonType.ok) {\r\n await this._resetPanel();\r\n await this._filterManager.removeFilter(filterBlock);\r\n await this._resetHeaderName();\r\n }\r\n });\r\n });\r\n\r\n return headerDeleteButton;\r\n }\r\n\r\n private async _createHeaderSaveButton(): Promise {\r\n const headerSaveButton = await this._createLocalisedFlatButton(\"GUI-292626\"); // Uložit\r\n\r\n this._events.addListener(headerSaveButton, \"click\", async () => {\r\n const filterBlock = this._filterManager.getCurrentFilter();\r\n await filterBlock.save((filterBlock.filterName ?? this._headerText.innerText), this._filterManager);\r\n });\r\n\r\n return headerSaveButton;\r\n }\r\n\r\n private async _createHeaderSaveAsButton(): Promise {\r\n const headerSaveAsButton = await this._createLocalisedFlatButton(\"GUI-583316\"); // Uložit jako\r\n\r\n this._events.addListener(headerSaveAsButton, \"click\", async () => {\r\n this._promptHeaderEditing(true);\r\n });\r\n\r\n return headerSaveAsButton;\r\n }\r\n\r\n private _createLocalisedFlatButton = async (lockey: string): Promise => {\r\n const button = document.createElement(\"button\");\r\n button.textContent = await Localization.getTextPromise(lockey);\r\n button.classList.add(\"btn\", \"flat\");\r\n return button;\r\n };\r\n\r\n private async _resetPanel(): Promise {\r\n this._filterMenuEmptyBtn.icon = \"checked\";\r\n await this._updateStateOfButtons();\r\n\r\n if (this._headerImplementationCheckbox) {\r\n this._headerImplementationCheckbox.visible = false;\r\n }\r\n }\r\n\r\n private async _resetHeaderName(): Promise {\r\n this._headerText.innerText = await Localization.getTextPromise(\"GUI-289646\"); // Filtr\r\n }\r\n\r\n private _changeHeaderFilterName(name: string): void {\r\n if (!name) {\r\n return;\r\n }\r\n\r\n this._headerText.innerText = name;\r\n }\r\n\r\n private _removeNameEditingIcons(): void {\r\n this._nameEditingInput?.remove();\r\n this._nameEditingIconsRow?.remove();\r\n }\r\n\r\n private _cancelNameEditing(): void {\r\n this._isNameEditing = false;\r\n\r\n this._headerDropdownIcon.style.visibility = \"visible\";\r\n\r\n if (this._headerImplementationCheckbox) {\r\n this._headerImplementationCheckbox.visible = true;\r\n }\r\n\r\n this._headerPanel.classList.remove(\"nameEditing\");\r\n this._headerRowActionButtons.style.display = \"flex\";\r\n this._headerText.parentElement.style.display = \"flex\";\r\n\r\n this._headerText.hidden = false;\r\n\r\n this._removeNameEditingIcons();\r\n }\r\n\r\n private _promptHeaderEditing(saveAs?: boolean): void {\r\n const filterBlock = this._filterManager.getCurrentFilter();\r\n\r\n if (filterBlock && !this._isNameEditing && (FilterPanel._canEditFilter(filterBlock, this._filterManager) || saveAs)) {\r\n this._isNameEditing = true;\r\n this._headerPanel.classList.add(\"nameEditing\");\r\n const filterName = this._filterManager.getCurrentFilter().filterName || this._headerText.innerText;\r\n\r\n this._nameEditingInput = createElement({ type: \"input\", value: filterName, attrs: { \"minlength\": \"1\", \"type\": \"text\" } }) as HTMLInputElement;\r\n this._nameEditingIconsRow = createElement({ type: \"div\", classes: [\"nameEditingIconsRow\"] }) as HTMLDivElement;\r\n\r\n const nameEditingSaveIconButton = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"tool-floppy-disk\"] }) as HTMLButtonElement;\r\n const nameEditingCancelIconButton = createElement({ type: \"button\", classes: [\"btn\", \"flat\", \"icon\", \"ui-undo-a\"] }) as HTMLButtonElement;\r\n\r\n this._nameEditingIconsRow.appendChild(nameEditingSaveIconButton);\r\n this._nameEditingIconsRow.appendChild(nameEditingCancelIconButton);\r\n\r\n this._headerPanel.prepend(this._nameEditingIconsRow);\r\n this._headerPanel.prepend(this._nameEditingInput);\r\n\r\n this._headerText.parentElement.style.display = \"none\";\r\n this._headerRowActionButtons.style.display = \"none\";\r\n this._headerDropdownIcon.style.visibility = \"hidden\";\r\n\r\n if (this._headerImplementationCheckbox) {\r\n this._headerImplementationCheckbox.visible = false;\r\n }\r\n\r\n this._events.addListener(nameEditingSaveIconButton, \"click\", async () => {\r\n if (this._nameEditingInput?.value?.trimLeft().length > 0) {\r\n if (saveAs) {\r\n if (await this._filterManager.doesFilterNameExist(this._nameEditingInput.value)) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-742707\")); // Nelze použít název, který odpovídá názvu existujícího filtru.\r\n return;\r\n }\r\n const newFilterBlock = await filterBlock.save(this._nameEditingInput.value, this._filterManager, true);\r\n const newItem = await this._filterManager.filterPanel._createNewFilterItem(newFilterBlock.filterId, newFilterBlock);\r\n newItem.setCaption(newFilterBlock.filterName);\r\n this._changeHeaderFilterName(newFilterBlock.filterName);\r\n\r\n FilterPanel._selectFilter(newFilterBlock, this._filterManager, true);\r\n } else {\r\n await filterBlock.save(this._nameEditingInput.value, this._filterManager);\r\n this._changeHeaderFilterName(this._nameEditingInput.value);\r\n }\r\n\r\n this._headerText.parentElement.style.display = \"flex\";\r\n this._headerDropdownIcon.style.visibility = \"visible\";\r\n\r\n if (this._headerImplementationCheckbox) {\r\n this._headerImplementationCheckbox.visible = true;\r\n }\r\n\r\n this._isNameEditing = false;\r\n this._cancelNameEditing();\r\n await this._updateStateOfButtons();\r\n } else {\r\n this._nameEditingInput.classList.add(\"invalid\");\r\n }\r\n });\r\n\r\n this._events.addListener(nameEditingCancelIconButton, \"click\", async () => {\r\n this._headerText.parentElement.style.display = \"flex\";\r\n\r\n this._cancelNameEditing();\r\n await this._updateStateOfButtons();\r\n\r\n if (filterBlock.isUsed) {\r\n this._filterManager.execute();\r\n }\r\n });\r\n }\r\n }\r\n\r\n public static createDropMenuItemForFilters(icon: string, fnc: () => Promise, locKey: string, enabled: boolean = true, buttons: IDropDownMenuButton[] = []): DropDownMenuItemWithButton {\r\n const element = new DropDownMenuItemWithButton();\r\n element.floatMenu = true;\r\n const action = new Action(fnc, locKey);\r\n\r\n for (const button of buttons) {\r\n element.addButton(button);\r\n }\r\n\r\n element.action = action;\r\n action.enabled = enabled;\r\n\r\n element.icon = icon;\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * skryje panel filtru\r\n */\r\n public hide(): void {\r\n this.classList.remove(\"visible\");\r\n this.setAttribute(\"aria-hidden\", \"true\");\r\n this._filterButton.tabIndex = -1;\r\n }\r\n\r\n /**\r\n * zobrazí panel filtru\r\n */\r\n public show(): void {\r\n this.classList.add(\"visible\");\r\n this.removeAttribute(\"aria-hidden\");\r\n this._filterButton.tabIndex = 0;\r\n }\r\n\r\n public isShown(frameName: string = null): boolean {\r\n if (frameName && this._filterManager && frameName !== this._filterManager.frameName)\r\n return false;\r\n\r\n return this.classList.contains(\"visible\");\r\n }\r\n\r\n public override dispose(): void {\r\n this._events.dispose();\r\n this._filterMenu?.dispose();\r\n this._filterCombo?.dispose();\r\n super.dispose();\r\n }\r\n //#endregion Methods\r\n}\r\n\r\ninterface IPromptFilterName {\r\n /**\r\n * Vybraná položka menu filtrů\r\n */\r\n readonly item: DropDownMenuItemWithButton;\r\n /**\r\n * Jméno položky\r\n */\r\n readonly tempName: string;\r\n /**\r\n * Akce při potvrzení názvu\r\n */\r\n readonly onSuccessAction: (name: string, promptItem: DropDownPromptItem) => Promise;\r\n /**\r\n * Akce při zrušení zadávání názvu\r\n */\r\n readonly onCancelAction: (promptItem: DropDownPromptItem) => void;\r\n /**\r\n * Příznak, zda se má zadávací box zobrazit místo vybrané položky\r\n */\r\n readonly hideCurrentItem?: boolean;\r\n}\r\n\r\nregisterCustomElement(\"tsc-filterpanel\", FilterPanel);\r\n","import { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Checkbox } from \"../../../UI.BaseControls/Checkbox\";\r\nimport { Edit } from \"../../../UI.BaseControls/Edit\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { FormProfileManager } from \"../XGControls/Forms/FormProfileManager\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n\r\n/** Detailový prvek pro editaci profilu */\r\nexport class FormProfileDetailBuilder implements IContentBuilder {\r\n //#region Fields\r\n private readonly _element: HTMLElement;\r\n private readonly _nameEdit: Edit;\r\n private _profileManager: FormProfileManager;\r\n //#endregion Fields\r\n\r\n /**\r\n * Vytvoří detail pro editaci profilu\r\n * @param params Nastavení profilu\r\n */\r\n constructor(params: IProfileInputData) {\r\n let name: string = params.name;\r\n let queryMode: boolean = params.queryMode ?? false;\r\n let showInNavigationTree: boolean = params.showInNavigationTree;\r\n let isDefault: boolean = params.isDefault;\r\n let storeFilters: boolean = params.storeFilters ?? true;\r\n let isImplementation: boolean = params.isImplementation;\r\n const nameLoadPromise: Promise = Promise.resolve();\r\n\r\n this._profileManager = params.profileManager;\r\n\r\n this._element = createElement({ classes: \"edit\" });\r\n\r\n const headerContainer = createElement({ classes: \"header-container\" });\r\n\r\n this._nameEdit = new Edit();\r\n this._nameEdit.value = name ?? \"\";\r\n this._nameEdit.addEventListener(\"input\", () => name = this._nameEdit.value);\r\n this._nameEdit.addEventListener(\"keypress\", (e: KeyboardEvent) => {\r\n if (e.key === \"Enter\") {\r\n saveFunction();\r\n }\r\n });\r\n this._nameEdit.afterAttach(item => item.focus());\r\n\r\n Localization.addLocDescData(this._nameEdit, \"GUI-669057\", [\"title\", \"placeholder\"]); // Název zobrazení\r\n headerContainer.appendChild(this._nameEdit);\r\n\r\n const saveMenuButtons = createElement({ classes: \"buttons\" });\r\n\r\n const saveButton = createElement({ type: \"button\", classes: \"SaveButton flat icon tool-floppy-disk btn no-caption\" });\r\n Localization.addLocData(saveButton, \"GUI-624405\", \"title\", \"\"); // Uložit zobrazení\r\n\r\n const saveFunction = async () => {\r\n await nameLoadPromise;\r\n params.saveFunction({\r\n isDefault: isDefault,\r\n name: name,\r\n queryMode: queryMode,\r\n showInNavigationTree: showInNavigationTree,\r\n storeFilters: storeFilters,\r\n isImplementation: isImplementation,\r\n });\r\n };\r\n\r\n saveButton.addEventListener(\"click\", (e: MouseEvent) => {\r\n if (saveButton.classList.contains(\"Disabled\"))\r\n return;\r\n if (e.button === 0) { // Levé tlačítko myši\r\n EventHelper.stopImmediatePropagation(e);\r\n saveFunction();\r\n }\r\n });\r\n\r\n saveMenuButtons.appendChild(FormProfileDetailBuilder.createCancelButton(params.cancelFunction));\r\n saveMenuButtons.appendChild(saveButton);\r\n\r\n headerContainer.appendChild(saveMenuButtons);\r\n this._element.appendChild(headerContainer);\r\n\r\n const checkBoxesElement = createElement({ classes: \"options\" });\r\n\r\n if (this._profileManager.canEditImplementationProfiles) {\r\n const checkBoxImp = this._createCheckBoxWithCaption(\"GUI-675712\"); // Implementační\r\n checkBoxImp.addEventListener(\"change\", () => isImplementation = checkBoxImp.checked || false);\r\n checkBoxImp.checked = isImplementation;\r\n checkBoxesElement.appendChild(checkBoxImp);\r\n }\r\n\r\n const checkBoxDefault = this._createCheckBoxWithCaption(\"GUI-624532\"); // Výchozí\r\n checkBoxDefault.addEventListener(\"change\", () => isDefault = checkBoxDefault.checked || false);\r\n checkBoxDefault.checked = isDefault;\r\n checkBoxesElement.appendChild(checkBoxDefault);\r\n\r\n if (params.isBasicProfile) {\r\n this._nameEdit.enabled = false;\r\n } else {\r\n const checkBoxQueryMode = this._createCheckBoxWithCaption(\"GUI-677765\"); // Načíst data při otevření formuláře\r\n checkBoxQueryMode.addEventListener(\"change\", () => queryMode = checkBoxQueryMode.indeterminate ? null : !checkBoxQueryMode.checked);\r\n checkBoxQueryMode.value = !queryMode;\r\n checkBoxesElement.appendChild(checkBoxQueryMode);\r\n\r\n const checkBoxStoreFilters = this._createCheckBoxWithCaption(\"GUI-740486\"); // Uložit s aktuálními filtry ; Určuje, zda se zobrazení má uložit i s aktuálně použitými filtry\r\n checkBoxStoreFilters.addEventListener(\"change\", () => storeFilters = checkBoxStoreFilters.checked ?? true);\r\n checkBoxStoreFilters.value = storeFilters;\r\n checkBoxesElement.appendChild(checkBoxStoreFilters);\r\n\r\n if (params.showMenuActions) {\r\n const checkBoxShowInMenu = this._createCheckBoxWithCaption(\"GUI-506029\"); // Zobrazit v menu\r\n checkBoxShowInMenu.addEventListener(\"change\", () => showInNavigationTree = checkBoxShowInMenu.checked || false);\r\n checkBoxShowInMenu.checked = showInNavigationTree;\r\n checkBoxesElement.appendChild(checkBoxShowInMenu);\r\n }\r\n }\r\n\r\n this._element.appendChild(checkBoxesElement);\r\n }\r\n\r\n //#region Methods\r\n\r\n /** Vrátí element profilu */\r\n public async build(): Promise {\r\n return this._element;\r\n }\r\n\r\n /**\r\n * Vytváří CheckBox pro použití v editaci profilu\r\n * @param locKey Lokalizační klíč popisku\r\n * @param threeState Zda se jedná o třístavový CheckBox\r\n */\r\n private _createCheckBoxWithCaption(locKey: string, threeState = false): Checkbox {\r\n const checkBox = new Checkbox();\r\n checkBox.standardAction = !threeState;\r\n checkBox.isNullable = threeState;\r\n\r\n Localization.addLocData(checkBox, locKey, \"text\");\r\n\r\n return checkBox;\r\n }\r\n\r\n /**\r\n * Vytvoří a vrátí tlačítko pro zrušení editace\r\n * @param cancel Funkce pro zrušení změn\r\n */\r\n public static createCancelButton(cancel: () => void): HTMLElement {\r\n const cancelButton = createElement({ type: \"button\", classes: \"CancelButton flat icon ui-undo-a btn no-caption\" });\r\n Localization.addLocData(cancelButton, \"GUI-7\", \"title\", \"\"); // Zrušit\r\n\r\n cancelButton.addEventListener(\"click\", (e: MouseEvent) => {\r\n if (cancelButton.classList.contains(\"Disabled\"))\r\n return;\r\n if (e.button === 0) { // Levé tlačítko myši\r\n EventHelper.stopImmediatePropagation(e);\r\n cancel();\r\n }\r\n });\r\n\r\n return cancelButton;\r\n }\r\n //#endregion Methods\r\n}\r\n\r\n/** Nastavení profilu */\r\nexport interface IProfileData {\r\n /**\r\n * Název profilu\r\n */\r\n name: string;\r\n /**\r\n * Příznak, zda je profil nastaven jako výchozí\r\n */\r\n isDefault: boolean;\r\n /** Zda je implementační (bez vazby na uživatele) */\r\n isImplementation: boolean;\r\n /**\r\n * Příznak, zda se při otevření formu mají načíst data\r\n */\r\n queryMode: boolean | null;\r\n /**\r\n * Příznak, zda má být profil zobrazen v menu\r\n */\r\n showInNavigationTree: boolean;\r\n /**\r\n * Příznak, zda se má profil uložit včetně aktivních filtrů na framech\r\n */\r\n storeFilters: boolean;\r\n}\r\n\r\n/** Nastavení profilu včetně akcí a stavů komponent */\r\nexport interface IProfileInputData extends IProfileData {\r\n /** Profil manager, ke kterému profil patří */\r\n profileManager: FormProfileManager;\r\n /** Zda zobrazovat menu akce */\r\n showMenuActions: boolean;\r\n /** Zda se jedná o základní profil */\r\n isBasicProfile: boolean;\r\n /** Metoda pro uložení */\r\n saveFunction: (result: IProfileData) => Promise;\r\n /** Metoda pro zrušení změn */\r\n cancelFunction: () => void;\r\n}\r\n","import { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { EventHelper } from \"../../../UI.BaseControls/Helpers/EventHelper\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Icon } from \"../FormUI/FormUI\";\r\nimport { MessageButtonType, MessageType, MessageWindow } from \"../MessageWindow\";\r\nimport { FormProfileItem } from \"../XGControls/Forms/FormProfileItem\";\r\nimport { FormProfileManager } from \"../XGControls/Forms/FormProfileManager\";\r\nimport { FormProfileDetailBuilder, IProfileData } from \"./FormProfileDetailBuilder\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\nimport { LocalizedStringBuilder } from \"./LocalizedStringBuilder\";\r\n\r\n/** Prvek, umožňující provádět akce s profilem */\r\nexport class FormProfileItemBuilder implements IContentBuilder {\r\n //#region Fields\r\n private readonly _element: HTMLElement;\r\n private readonly _iconElement: HTMLElement;\r\n private readonly _textElement: HTMLElement;\r\n private readonly _titleElement: HTMLElement;\r\n private readonly _buttonsElement: HTMLElement;\r\n private readonly _editButton: HTMLElement;\r\n private _editElement: HTMLElement;\r\n private _defaultHintElement: HTMLElement;\r\n\r\n private readonly _profileManager: FormProfileManager;\r\n\r\n private _name: string;\r\n private _selected: boolean;\r\n private _isDefault: boolean = false;\r\n private _showInNavigationTree: boolean;\r\n /** Zda se má zabránit načtení dat po otevření formu */\r\n private _queryMode: boolean | null;\r\n private _isEdited: boolean = false;\r\n private _showMenuActions: boolean;\r\n /** Příznak, zda jde o \"Základní\" profil */\r\n private readonly _isBasicProfile: boolean = false;\r\n private _storeFilters: boolean = true;\r\n private _isImplementation: boolean = false;\r\n\r\n private _saveFunction: (result: IProfileData) => Promise;\r\n private readonly _cancelFunction: () => void;\r\n //#endregion Fields\r\n\r\n //#region Properties\r\n public get title(): string {\r\n return this._titleElement.textContent;\r\n }\r\n\r\n public set title(value: string) {\r\n this._titleElement.textContent = value;\r\n this._titleElement.title = value;\r\n if (this._isImplementation && this._profileManager.canEditImplementationProfiles) {\r\n const impTitle = createElement({ type: \"span\" });\r\n Localization.addLocData(impTitle, \"GUI-740260\"); // [IMP]\r\n this._titleElement.insertAdjacentElement(\"beforeend\", impTitle);\r\n }\r\n }\r\n\r\n public set selected(value: boolean) {\r\n this._selected = value;\r\n this._iconElement.classList.toggle(Icon[Icon.selectFromLov], value);\r\n }\r\n\r\n public get selected(): boolean {\r\n return this._selected;\r\n }\r\n\r\n public set isDefault(value: boolean) {\r\n if (this._isDefault === value) {\r\n return;\r\n }\r\n\r\n this._isDefault = value;\r\n\r\n if (value) {\r\n if (!this._defaultHintElement) {\r\n this._defaultHintElement = createElement({ classes: \"default-text\" });\r\n Localization.addLocData(this._defaultHintElement, \"GUI-454139\"); // Výchozí\r\n }\r\n this._textElement.appendChild(this._defaultHintElement);\r\n\r\n if (this._isBasicProfile) {\r\n this._buttonsElement.removeChild(this._editButton);\r\n }\r\n\r\n return;\r\n } else {\r\n this._defaultHintElement?.remove();\r\n }\r\n\r\n if (this._isBasicProfile) {\r\n this._buttonsElement.appendChild(this._editButton);\r\n }\r\n }\r\n\r\n public get isDefault(): boolean {\r\n return this._isDefault;\r\n }\r\n\r\n public get isEdited(): boolean {\r\n return this._isEdited;\r\n }\r\n\r\n public set isEdited(value: boolean) { // Pro externí změnu stavu\r\n this._setEditMode(value);\r\n }\r\n //#endregion Properties\r\n\r\n constructor(profileManager: FormProfileManager, profile: FormProfileItem) {\r\n this._profileManager = profileManager;\r\n\r\n this._element = createElement({ classes: \"form-profile-item\" });\r\n this._iconElement = createElement({ classes: \"icon\" });\r\n this._textElement = createElement({ classes: \"text\" });\r\n this._titleElement = createElement({ classes: \"title\" });\r\n this._textElement.appendChild(this._titleElement);\r\n\r\n this._buttonsElement = createElement({ classes: \"buttons\" });\r\n\r\n this._element.appendChild(this._iconElement);\r\n this._element.appendChild(this._textElement);\r\n this._element.appendChild(this._buttonsElement);\r\n\r\n if (!profile.isImplementation || profileManager.canEditImplementationProfiles) {\r\n this._editButton = createElement({ type: \"button\", classes: \"EditButton flat icon edit btn no-caption\" });\r\n Localization.addLocData(this._editButton, \"GUI-665724\", \"title\", \"\"); // Upravit zobrazení; Popisek tlačítka na úpravu zobrazení (profilu)\r\n this._buttonsElement.appendChild(this._editButton);\r\n\r\n this._editButton.addEventListener(\"click\", async (e: MouseEvent) => {\r\n if (this._editButton.classList.contains(\"Disabled\"))\r\n return;\r\n if (e.button === 0) { // Levé tlačítko myši\r\n this._profileManager.profileEdited.trigger(this._profileManager, profile);\r\n this._setEditMode(true, this._isBasicProfile);\r\n }\r\n });\r\n\r\n if (profile.id) {\r\n const removeButton = createElement({ type: \"button\", classes: \"RemoveButton flat icon editorial-trash btn no-caption\" });\r\n Localization.addLocData(removeButton, \"GUI-624411\", \"title\", \"\"); // Odstranit zobrazení; Popisek tlačítka na smazání zobrazení (profilu)\r\n this._buttonsElement.appendChild(removeButton);\r\n\r\n removeButton.addEventListener(\"click\", async (e: MouseEvent) => {\r\n if (e.button !== 0 || this._editButton.classList.contains(\"Disabled\")) { // Jiné než levé tlačítko myši\r\n return;\r\n }\r\n\r\n EventHelper.stopImmediatePropagation(e);\r\n\r\n const confirmDialog = new MessageWindow(new LocalizedStringBuilder(\"GUI-599180\")); // Odstranit?\r\n confirmDialog.okButtonCaption = \"GUI-146838\"; // \"Ano\"\r\n confirmDialog.noButtonCaption = \"GUI-146840\"; // \"Ne\"\r\n confirmDialog.type = MessageType.message;\r\n confirmDialog.show().then((r) => {\r\n if (r.result === MessageButtonType.ok) {\r\n this._profileManager.removeProfile(profile);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n this._isBasicProfile = profile.id == null;\r\n this._isImplementation = profile.isImplementation;\r\n this._name = profile.title;\r\n this.title = profile.title;\r\n this.selected = profile.selected;\r\n this.isDefault = profile.default;\r\n this._showInNavigationTree = profile.showInNavigationTree;\r\n this._queryMode = profile.queryMode;\r\n this._storeFilters = profile.storeFilters;\r\n\r\n this._saveFunction = async (result: IProfileData) => {\r\n const wasDefaultChangedToFalse = (profile.default && !result.isDefault);\r\n profile.isImplementation = result.isImplementation;\r\n profile.title = result.name;\r\n profile.default = result.isDefault;\r\n profile.showInNavigationTree = result.showInNavigationTree;\r\n profile.queryMode = result.queryMode;\r\n profile.storeFilters = result.storeFilters;\r\n\r\n if (await this._profileManager.saveCurrentProfile(profile)) {\r\n profile.title = result.name;\r\n this._isImplementation = profile.isImplementation;\r\n this.title = this._name = profile.title;\r\n this.isDefault = profile.default;\r\n this._showInNavigationTree = profile.showInNavigationTree;\r\n this._queryMode = profile.queryMode;\r\n this._storeFilters = profile.storeFilters;\r\n const defaultImplementationProfile = this._profileManager.defaultImplementationProfile;\r\n if (wasDefaultChangedToFalse) {\r\n if (defaultImplementationProfile) {\r\n // Pokud existuje defaultní implementační profil, nastaví se jako výchozí.\r\n defaultImplementationProfile.default = true;\r\n } else {\r\n // V opačném případě se nastaví \"Základní\" profil jako výchozí, aby nedošlo k situaci,\r\n // že nebude žádný z profilů označen jako výchozí\".\r\n this._profileManager.setBasicProfileDefault();\r\n }\r\n }\r\n }\r\n\r\n if (profile.basic) { // U základního profilu se jen resetuje stav, nespouští se uložení ani události změny\r\n this._setEditMode(false);\r\n }\r\n };\r\n\r\n this._cancelFunction = () => this._profileManager.reloadActualProfile();\r\n\r\n profile.setSidePanelItem(this);\r\n\r\n this._element.addEventListener(\"click\", () => profile.selected = true);\r\n\r\n this._profileManager.profileEdited.add((_profileManager, profileItem) => { // Zruší editaci na všech profilech mimo ten, na který se kliklo\r\n if (!profile.isDisposed()) { // TODO Provizorní kontrola na disposed profile. Správné odregistrování tohoto posluchače, aby nepracoval s disposed položkami bude řešeno v tasku 34324\r\n if (this.isEdited && (profileItem && profileItem.id !== profile.id) || !profileItem) {\r\n profile.discardChanges();\r\n }\r\n }\r\n });\r\n }\r\n\r\n //#region Methods\r\n /** Vrátí vytvořený element */\r\n public async build(): Promise {\r\n return this._element;\r\n }\r\n\r\n /**\r\n * Aktualizuje viditelnost akcí spojených s menu\r\n * @param visible Zda mají být viditelné\r\n */\r\n public updateMenuActionsVisibility(visible: boolean): void {\r\n this._showMenuActions = visible;\r\n }\r\n\r\n /** Odstraní sebe sama */\r\n public remove(): void {\r\n this._element.remove();\r\n }\r\n\r\n /** Scroll sám na sebe */\r\n public scrollIntoView(): void {\r\n this._element.scrollIntoView(false);\r\n }\r\n\r\n /**\r\n * Změní editační stav profilu (interně)\r\n * @param value Zda má přejít do editace\r\n */\r\n private async _setEditMode(value: boolean, basicWithDetail?: boolean): Promise {\r\n if (this._isEdited === value) {\r\n return;\r\n }\r\n\r\n this._isEdited = value;\r\n\r\n if (this._isBasicProfile && !this._editElement && !basicWithDetail) { // Pouze pro externě modifikovaný základní profil\r\n this._setBasicEditMode(value);\r\n\r\n return;\r\n }\r\n\r\n this._element.classList.toggle(\"edited\");\r\n\r\n if (value) {\r\n this._element.removeChild(this._textElement);\r\n this._element.removeChild(this._buttonsElement);\r\n\r\n const formProfileDetailBuilder = new FormProfileDetailBuilder({\r\n profileManager: this._profileManager,\r\n isDefault: this.isDefault,\r\n name: this._name,\r\n queryMode: this._queryMode,\r\n showInNavigationTree: this._showInNavigationTree,\r\n showMenuActions: this._showMenuActions,\r\n isBasicProfile: this._isBasicProfile,\r\n storeFilters: this._storeFilters,\r\n isImplementation: this._isImplementation,\r\n saveFunction: this._saveFunction,\r\n cancelFunction: this._cancelFunction,\r\n });\r\n\r\n this._editElement = await formProfileDetailBuilder.build();\r\n this._element.appendChild(this._editElement);\r\n\r\n return;\r\n }\r\n // Reset titulku na aktuální hodnotu - ať už uloženou nebo původní při zrušení změn\r\n this.title = this._name;\r\n\r\n // Vyhodí editační prvky\r\n this._element.removeChild(this._editElement);\r\n this._editElement = null;\r\n\r\n // Vrátí zpět informační prvky\r\n this._element.appendChild(this._textElement);\r\n this._element.appendChild(this._buttonsElement);\r\n }\r\n\r\n /**\r\n * Změní editační stav výchozího profilu (bez editačního detailu)\r\n * @param value Zda má přejít do editace\r\n */\r\n private _setBasicEditMode(value: boolean): void {\r\n if (value) {\r\n const editedTitle = createElement({ type: \"span\", classes: \"edited-profile-caption\" });\r\n Localization.addLocData(editedTitle, \"GUI-624409\"); // Upraveno; Obsah závorky upraveného zobrazení (profilu)\r\n this._titleElement.insertAdjacentElement(\"beforeend\", editedTitle);\r\n\r\n if (!this.isDefault) {\r\n this._buttonsElement.removeChild(this._editButton);\r\n }\r\n\r\n this._buttonsElement.appendChild(FormProfileDetailBuilder.createCancelButton(this._cancelFunction));\r\n\r\n return;\r\n }\r\n\r\n this._titleElement.lastChild.remove();\r\n this._buttonsElement.lastChild.remove();\r\n\r\n if (!this.isDefault) {\r\n this._buttonsElement.appendChild(this._editButton);\r\n }\r\n }\r\n //#endregion Methods\r\n}\r\n","import { Key } from \"../../../../../../Global/Base/Utils/EventUtils\";\r\nimport { Localization } from \"../../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { Action } from \"../../../../../UI.Controls/Actions/Action\";\r\nimport { DropDownMenuItem } from \"../../../../../UI.Controls/DropDownMenu/DropDownMenuItem\";\r\nimport { registerCustomElement } from \"../../../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Icon } from \"../../../FormUI/FormUI\";\r\n\r\nexport class DropDownMenuFormProfileItem extends DropDownMenuItem {\r\n public isClickable: boolean = false;\r\n\r\n private _profileID: string;\r\n private _profileName: string;\r\n private _defaultElement: HTMLElement;\r\n private _selected: boolean;\r\n private _defaultProfile: boolean;\r\n private _isImplementation: boolean;\r\n private _canEdit: boolean;\r\n private _isEdited: boolean = false;\r\n\r\n public get isEnabled(): boolean {\r\n return !this.classList.contains(\"disabled\");\r\n }\r\n\r\n public set isEnabled(val: boolean) {\r\n this.classList.toggle(\"disabled\", !val);\r\n }\r\n\r\n public set profileName(value: string) {\r\n this._updateCaption(value);\r\n }\r\n\r\n public get profileName(): string {\r\n return this._profileName;\r\n }\r\n\r\n public get profileID(): string {\r\n return this._profileID;\r\n }\r\n\r\n public set profileID(value: string) {\r\n this._profileID = value;\r\n }\r\n\r\n public set selected(value: boolean) {\r\n this._selected = value;\r\n if (value) {\r\n this.icon = Icon[Icon.selectFromLov];\r\n } else {\r\n this.icon = Icon[Icon.none];\r\n }\r\n }\r\n\r\n public get selected(): boolean {\r\n return this._selected;\r\n }\r\n\r\n public set defaultProfile(value: boolean) {\r\n this._defaultProfile = value;\r\n this._defaultElement.hidden = !value;\r\n }\r\n\r\n public get defaultProfile(): boolean {\r\n return this._defaultProfile;\r\n }\r\n\r\n public set isImplementation(value: boolean) {\r\n this._isImplementation = value;\r\n }\r\n\r\n public get isImplementation(): boolean {\r\n return this._isImplementation;\r\n }\r\n\r\n public get isEdited(): boolean {\r\n return this._isEdited;\r\n }\r\n\r\n public set isEdited(value: boolean) {\r\n this._isEdited = value;\r\n this._updateCaption(this._profileName);\r\n }\r\n\r\n protected override _constructor(profileID: string = null): void {\r\n super._constructor();\r\n\r\n this.visible = true;\r\n this._profileID = profileID;\r\n this._selected = false;\r\n this._defaultProfile = false;\r\n }\r\n\r\n public static createDropDownMenuFormProfileItem(icon: string, fnc: () => Promise, id: number | null = null, name: string = \"\", locKey: string = \"\", defaultProfile: boolean = false, isImplementation: boolean = false, canEdit: boolean, selected: boolean = false, enabled: boolean = false, priority: number = 15): DropDownMenuFormProfileItem {\r\n const dropDownMenuItem = new DropDownMenuFormProfileItem();\r\n const action = new Action(fnc);\r\n\r\n //action.LocKey = name; //locKey;\r\n\r\n dropDownMenuItem.profileID = id?.toString();\r\n dropDownMenuItem.profileName = name;\r\n dropDownMenuItem.locKey = locKey;\r\n\r\n dropDownMenuItem.action = action;\r\n action.enabled = enabled;\r\n\r\n dropDownMenuItem.icon = icon;\r\n dropDownMenuItem.priority = priority;\r\n\r\n dropDownMenuItem.defaultProfile = defaultProfile;\r\n dropDownMenuItem._isImplementation = isImplementation;\r\n dropDownMenuItem._canEdit = canEdit;\r\n dropDownMenuItem.selected = selected;\r\n\r\n return dropDownMenuItem;\r\n }\r\n\r\n private async _updateCaption(value: string): Promise {\r\n if (value) {\r\n let caption: string;\r\n caption = value;\r\n this._profileName = caption;\r\n\r\n if (this._isImplementation && this._canEdit) {\r\n const impText = await Localization.getTextPromise(\"GUI-740260\"); // [IMP]\r\n caption += impText;\r\n }\r\n\r\n if (this._isEdited) {\r\n const item = await Localization.getTextPromise(\"GUI-624409\"); // Upraveno; Obsah závorky upraveného zobrazení (profilu)\r\n caption += ` (${item})`;\r\n }\r\n\r\n this.setCaption(caption, this.locKey);\r\n this.setLocalizedCaption(this.locKey);\r\n }\r\n }\r\n\r\n public override focus(): void {\r\n // Prázdná metoda\r\n }\r\n\r\n protected override _createElement(): void {\r\n super._createElement();\r\n\r\n this.classList.add(\"DropDownMenuItem\", \"form-profile-item\");\r\n\r\n this._defaultElement = document.createElement(\"div\");\r\n this._defaultElement.classList.add(\"sub-text\");\r\n Localization.addLocTxtData(this._defaultElement, \"GUI-454139\", undefined, undefined, true); // Výchozí\r\n this._textElement.appendChild(this._defaultElement);\r\n }\r\n\r\n protected override _setListener(): void {\r\n const clickHandler = async (e: MouseEvent | KeyboardEvent) => {\r\n e.stopImmediatePropagation();\r\n\r\n if (!this.classList.contains(\"Disabled\")) {\r\n if (typeof this.action.execute === \"function\") {\r\n await (this.action as Action).execute();\r\n }\r\n if (!this.noCloseAfterSelect) {\r\n this.parent.closeAll();\r\n }\r\n }\r\n };\r\n this.registerEventListener(\"click\", (e: MouseEvent) => {\r\n if (e.button === 0) {\r\n clickHandler(e);\r\n }\r\n });\r\n this.registerEventListener(\"keyup\", (e: KeyboardEvent) => {\r\n if (e.key === Key.Enter) {\r\n clickHandler(e);\r\n }\r\n });\r\n }\r\n\r\n public override dispose(): void {\r\n super.dispose();\r\n }\r\n}\r\n\r\nregisterCustomElement(\"tsc-DropDownMenuFormProfileItem\", DropDownMenuFormProfileItem);\r\n","import { IOrderBy } from \"../../../Global/Base/DataSources/Interfaces\";\r\n\r\nexport interface IFrameColumnInfo {\r\n [key: string]: any;\r\n attrName: string;\r\n width?: number;\r\n order?: number;\r\n visible?: boolean;\r\n frozen?: boolean;\r\n}\r\n\r\nexport interface IFrameProfileInfo {\r\n columns: { [attrName: string]: IFrameColumnInfo };\r\n order: IOrderBy[];\r\n attributesToGroup?: string[];\r\n filterId?: string;\r\n showSubRecords?: boolean;\r\n}\r\n\r\nexport class IFrameProfileInfo {\r\n private static _properties: (keyof IFrameProfileInfo)[] = [\"columns\", \"order\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\nexport enum FrameColumnInfoAttributes {\r\n width,\r\n order,\r\n visible,\r\n frozen,\r\n}\r\n","import { ConditionParams } from \"@multiweb/clients/dataReader\";\r\nimport { ChartType } from \"../../../../UI.Controls/ChartElement\";\r\nimport { IChartColumnDefinition } from \"../../../../UI.Controls/DataGridSubcontrols/Columns/ColumnFactory\";\r\nimport { IFrameProfileInfo } from \"../../IFrameColumnInfo\";\r\n/**\r\n * Veškerá data profilu pro formulář\r\n */\r\nexport interface IFormProfileDataContainer {\r\n /**\r\n * Data jednotlivých framů, kde klíčem je název framu\r\n * @param frameName Název framu\r\n */\r\n [frameName: string]: IFrameProfileInfo | IFormProfileInfo;\r\n /**\r\n * Data profilu přímo pro formulář\r\n */\r\n formProfileData?: IFormProfileInfo; // tato property spoléhá na to, že nikdo nepojmenuje svůj frame jako \"formProfileData\" - bohužel jsme tuto strukturu udělali málo obecnou a kvůli zpětné kompatibilitě to už nejde změnit\r\n}\r\n\r\n/**\r\n * Data profilu přímo pro formulář\r\n */\r\nexport interface IFormProfileInfo {\r\n /**\r\n * Nastavení jednotlivých SplitPanelů\r\n */\r\n splitPanels: {\r\n [splitPanelId: string]: ISplitaPanelProfileInfo;\r\n };\r\n\r\n /**\r\n * Pokud je true, tak zabrání načtení dat při otevření formuláře\r\n */\r\n queryMode?: boolean | null;\r\n\r\n /**\r\n * Příznak, zda se mají ukládat aktivní filtry framů\r\n */\r\n storeFilters?: boolean | null;\r\n}\r\n\r\n/**\r\n * Data profilu pro SplitPanel\r\n */\r\nexport interface ISplitaPanelProfileInfo {\r\n /**\r\n * Procentuální pozice splitteru\r\n */\r\n position: number;\r\n}\r\n\r\nexport interface IChartProfileInfo extends IFrameProfileInfo {\r\n chartName: string;\r\n chartType: ChartType;\r\n condition: string;\r\n conditionParams?: ConditionParams;\r\n dataSets: IChartColumnDefinition[];\r\n displayFormat?: string;\r\n frameName: string;\r\n masterFrameName: string;\r\n objectName: string;\r\n showAxisValues: boolean;\r\n showLegend: boolean;\r\n horizontal: boolean;\r\n xAxisAttr: string;\r\n}\r\n\r\nexport class IChartProfileInfo implements IFrameProfileInfo {\r\n private static _properties: (keyof IChartProfileInfo)[] = [\"condition\", \"chartName\", \"chartType\",\r\n \"dataSets\", \"frameName\", \"masterFrameName\", \"objectName\", \"showLegend\", \"showAxisValues\", \"xAxisAttr\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IFrameProfileInfo;\r\n }\r\n}\r\n","import { IFormProfileDataContainer } from \"./IFormProfileInfo\";\r\n/**\r\n* Základní informace o profilu formuláře a jeho definice\r\n*/\r\nexport class FormProfileBasicItem {\r\n public id: number;\r\n public name: string;\r\n public locKey: string;\r\n public data: IFormProfileDataContainer;\r\n public jsonData: string;\r\n /** Režim formuláře, ve kterém nejsou při jeho otevření načteny žádná data */\r\n public queryMode: boolean | null;\r\n public selected: boolean;\r\n public defaultProfile: boolean;\r\n public showInNavigationTree: boolean;\r\n public storeFilters: boolean;\r\n public isImplementation: boolean;\r\n public get basic(): boolean {\r\n return this.id == null;\r\n }\r\n\r\n constructor(id: number | string, name: string, jsonData: string, data: IFormProfileDataContainer, defaultProfile: boolean, showInNavigationTree: boolean, isImplementation: boolean, locKey: string = \"\") {\r\n this.id = (typeof id === \"string\") ? Number(id) : id;\r\n this.name = name;\r\n this.locKey = locKey;\r\n this.jsonData = jsonData;\r\n this.data = data;\r\n this.selected = false;\r\n this.defaultProfile = defaultProfile;\r\n this.showInNavigationTree = showInNavigationTree;\r\n this.queryMode = data.formProfileData?.queryMode;\r\n this.storeFilters = data.formProfileData?.storeFilters ?? true;\r\n this.isImplementation = isImplementation;\r\n }\r\n}\r\n","import { IFormProfile } from \"@multiweb/types/contracts\";\r\nimport { AwaitableStandardEvent, Event } from \"../../../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../../../Global/Base/IDisposable\";\r\nimport { FormProfileItemBuilder } from \"../../DataBuilders/FormProfileItemBuilder\";\r\nimport { DropDownMenuFormProfileItem } from \"../Filters/DropDownMenuItems/DropDownMenuFormProfileItem\";\r\nimport { FormProfileBasicItem } from \"./FormProfileBasicItem\";\r\nimport { IFormProfileDataContainer } from \"./IFormProfileInfo\";\r\n/**\r\n* Položka profilu. Zapouzdřuje základní informace o profilu formuláře a položky ve form menu a side panelu profilů.\r\n* Umožňuje označení profilu (resp. jako defaultní) s notifikací pomocí eventů.\r\n*/\r\nexport class FormProfileItem implements IFormProfile, IDisposable {\r\n public selectPreview: AwaitableStandardEvent = new AwaitableStandardEvent();\r\n public selectionChanged: Event = new Event();\r\n public defaultChanged: Event = new Event();\r\n\r\n private _isEdited: boolean = false;\r\n\r\n private _profileBasicItem: FormProfileBasicItem;\r\n private _sidePanelItem: FormProfileItemBuilder;\r\n private _formDropDownMenuItem: DropDownMenuFormProfileItem;\r\n private _formCode: string;\r\n private _isDisposed = false;\r\n\r\n public get id(): number {\r\n return this._profileBasicItem.id;\r\n }\r\n\r\n public get title(): string {\r\n return this._profileBasicItem.name;\r\n }\r\n\r\n public set title(value: string) {\r\n this._profileBasicItem.name = value;\r\n this._sidePanelItem.title = value;\r\n this._formDropDownMenuItem.profileName = value;\r\n }\r\n\r\n public get locKey(): string {\r\n return this._profileBasicItem.locKey;\r\n }\r\n\r\n public get formCode(): string {\r\n return this._formCode;\r\n }\r\n\r\n public get selected(): boolean {\r\n return this._profileBasicItem.selected;\r\n }\r\n\r\n public set selected(value: boolean) {\r\n const oldValue = this._profileBasicItem.selected;\r\n\r\n this.selectPreview.trigger(this, value).then((cancelEvent) => {\r\n if (value !== oldValue) {\r\n if (!cancelEvent) { // pokud došlo ke zrušení eventu, nepokračovat\r\n this._profileBasicItem.selected = value;\r\n if (this._sidePanelItem)\r\n this._sidePanelItem.selected = value;\r\n if (this._formDropDownMenuItem)\r\n this._formDropDownMenuItem.selected = value;\r\n if (value) {\r\n this.selectionChanged.trigger(this, value);\r\n if (this._sidePanelItem && value)\r\n this._sidePanelItem.scrollIntoView();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public get default(): boolean {\r\n return this._profileBasicItem.defaultProfile;\r\n }\r\n\r\n public set default(value: boolean) {\r\n const oldValue = this._profileBasicItem.defaultProfile;\r\n this._profileBasicItem.defaultProfile = value;\r\n if (this._sidePanelItem)\r\n this._sidePanelItem.isDefault = value;\r\n if (this._formDropDownMenuItem)\r\n this._formDropDownMenuItem.defaultProfile = value;\r\n if (value && value !== oldValue)\r\n this.defaultChanged.trigger(this, value);\r\n }\r\n\r\n public get isEdited(): boolean {\r\n return this._isEdited;\r\n }\r\n\r\n public set isEdited(value: boolean) {\r\n this._isEdited = value;\r\n if (this._sidePanelItem)\r\n this._sidePanelItem.isEdited = value;\r\n if (this._formDropDownMenuItem)\r\n this._formDropDownMenuItem.isEdited = value;\r\n }\r\n\r\n public get data(): IFormProfileDataContainer {\r\n return this._profileBasicItem.data;\r\n }\r\n\r\n public set data(value: IFormProfileDataContainer) {\r\n this._profileBasicItem.data = value;\r\n }\r\n\r\n public get jsonData(): string {\r\n return this._profileBasicItem.jsonData;\r\n }\r\n\r\n public set jsonData(value: string) {\r\n this._profileBasicItem.jsonData = value;\r\n }\r\n\r\n public set showInNavigationTree(value: boolean) {\r\n this._profileBasicItem.showInNavigationTree = value;\r\n }\r\n\r\n public get showInNavigationTree(): boolean {\r\n return this._profileBasicItem.showInNavigationTree;\r\n }\r\n\r\n /** Režim formuláře, ve kterém nejsou při jeho otevření načteny žádná data */\r\n public set queryMode(value: boolean | null) {\r\n this._profileBasicItem.queryMode = value;\r\n }\r\n\r\n /** Režim formuláře, ve kterém nejsou při jeho otevření načteny žádná data */\r\n public get queryMode(): boolean | null {\r\n return this._profileBasicItem.queryMode;\r\n }\r\n\r\n public get storeFilters(): boolean | null {\r\n return this._profileBasicItem.storeFilters;\r\n }\r\n public set storeFilters(v: boolean | null) {\r\n this._profileBasicItem.storeFilters = v;\r\n }\r\n\r\n public set isImplementation(value: boolean) {\r\n this._profileBasicItem.isImplementation = value;\r\n this._formDropDownMenuItem.isImplementation = value;\r\n }\r\n\r\n public get isImplementation(): boolean {\r\n return this._profileBasicItem.isImplementation;\r\n }\r\n\r\n /**\r\n * Zda je profil základním profilem, tedy systémovým profilem bez jakýchkoliv úprav uživatelem\r\n */\r\n public get basic(): boolean {\r\n return this._profileBasicItem.basic;\r\n }\r\n\r\n public setSidePanelItem(sidePanelItem: FormProfileItemBuilder): void {\r\n this._sidePanelItem = sidePanelItem;\r\n this._sidePanelItem.isEdited = this._isEdited;\r\n }\r\n\r\n public setFormDropDownMenuItem(formDropDownMenuItem: DropDownMenuFormProfileItem): void {\r\n this._formDropDownMenuItem = formDropDownMenuItem;\r\n if (this._formDropDownMenuItem == null)\r\n return;\r\n\r\n this._formDropDownMenuItem.isEdited = this._isEdited;\r\n this._formDropDownMenuItem.defaultProfile = this._profileBasicItem.defaultProfile;\r\n this._formDropDownMenuItem.selected = this._profileBasicItem.selected;\r\n this._formDropDownMenuItem.profileName = this._profileBasicItem.name;\r\n this._formDropDownMenuItem.isImplementation = this._profileBasicItem.isImplementation;\r\n }\r\n\r\n constructor(formCode: string, formProfileBasicItem: FormProfileBasicItem, dropDownMenuItem: DropDownMenuFormProfileItem = null) {\r\n this._formCode = formCode;\r\n this._profileBasicItem = formProfileBasicItem;\r\n this.setFormDropDownMenuItem(dropDownMenuItem);\r\n }\r\n\r\n public getProfileBasicItem(): FormProfileBasicItem {\r\n return this._profileBasicItem;\r\n }\r\n\r\n public getFormDropDownMenuItem(): DropDownMenuFormProfileItem {\r\n return this._formDropDownMenuItem;\r\n }\r\n\r\n public select(): void {\r\n this.selected = true;\r\n }\r\n\r\n /**\r\n * Odstraní položku profilu. Po odstranění již položka nevysílá žádné události. Neuvolňuje však své zdroje, takže je možné položku použít např. jako parametr\r\n * pro událost profileRemoved v {@link FormProfileManager}. K uvolnění zdrojů je nutné zavolat {@link FormProfileItem.dispose}.\r\n */\r\n public remove(): void {\r\n this.selectPreview.removeAll();\r\n this.selectionChanged.removeAll();\r\n this.defaultChanged.removeAll();\r\n }\r\n\r\n public discardChanges(): void {\r\n this.data = this.jsonData ? JSON.parse(this.jsonData) : {};\r\n this.isEdited = false;\r\n }\r\n\r\n public isDisposed(): boolean {\r\n return this._isDisposed;\r\n }\r\n\r\n public dispose(): void {\r\n this.selectPreview.removeAll();\r\n this.selectionChanged.removeAll();\r\n this.defaultChanged.removeAll();\r\n\r\n this._sidePanelItem?.remove();\r\n this._formDropDownMenuItem?.remove();\r\n this._formDropDownMenuItem?.dispose();\r\n\r\n this._isDisposed = true;\r\n }\r\n}\r\n","import { IListener } from \"../../../../Global/Base/Events\";\r\nimport { Localization } from \"../../../../OW.Remoting/Remoting/Localization\";\r\nimport { createElement } from \"../../../UI.ElementarControls/Utils/CustomElementUtils\";\r\nimport { Icon } from \"../FormUI/FormUI\";\r\nimport { FormProfileItem } from \"../XGControls/Forms/FormProfileItem\";\r\nimport { FormProfileManager } from \"../XGControls/Forms/FormProfileManager\";\r\nimport { FormProfileDetailBuilder, IProfileData } from \"./FormProfileDetailBuilder\";\r\nimport { FormProfileItemBuilder } from \"./FormProfileItemBuilder\";\r\nimport { IContentBuilder } from \"./IContentBuilder\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport class FormProfileBuilder implements IContentBuilder {\r\n //#region Fields\r\n private readonly _profileManager: FormProfileManager;\r\n private readonly _element: HTMLElement;\r\n /** Zda mají být zobrazeny akce spojené s menu */\r\n private readonly _showMenuActions: boolean;\r\n //#endregion Fields\r\n\r\n /**\r\n * Konstruktor\r\n * @param profileManager Manažer s profily\r\n * @param showMenuActions Zda se mají zobrazovat akce spojené s menu\r\n */\r\n constructor(profileManager: FormProfileManager, showMenuActions: boolean) {\r\n this._profileManager = profileManager;\r\n this._showMenuActions = showMenuActions;\r\n\r\n this._element = createElement({ classes: \"form-profile-builder\" });\r\n this._element.appendChild(this._createAddButton());\r\n }\r\n\r\n //#region Methods\r\n /** Načte profily z managera a spustí vytvoření jejich prvků */\r\n private async _loadData(): Promise {\r\n for (const formProfile of this._profileManager.profiles) {\r\n await this._createProfileButton(formProfile);\r\n }\r\n }\r\n\r\n /** Vytvoří strukturu ke zobrazení */\r\n public async build(): Promise {\r\n await this._loadData();\r\n\r\n return this._element;\r\n }\r\n\r\n /**\r\n * Vytvoří prvek s informacemi o jednom profilu\r\n * @param profile Jeden konkrétní profil\r\n */\r\n private async _createProfileButton(profile: FormProfileItem): Promise {\r\n const formProfileItem = new FormProfileItemBuilder(this._profileManager, profile);\r\n formProfileItem.updateMenuActionsVisibility(this._showMenuActions);\r\n\r\n this._element.appendChild(await formProfileItem.build());\r\n }\r\n\r\n /** Vytvoří tlačítko pro tvorbu nového profilu */\r\n private _createAddButton(): HTMLElement {\r\n const element = createElement({ classes: \"form-profile-item\" });\r\n const iconElement = createElement({ classes: `icon ${Icon[Icon.new]}` }); //`\r\n const textElement = createElement({ classes: \"text\" });\r\n const titleElement = createElement({ classes: \"title\" });\r\n Localization.addLocData(titleElement, \"GUI-623219\"); // Přidat zobrazení\r\n\r\n textElement.appendChild(titleElement);\r\n\r\n element.appendChild(iconElement);\r\n element.appendChild(textElement);\r\n element.addEventListener(\"click\", async () => this._createEditableDetail(element));\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * Vytvoří detail pro nový profil\r\n * @param element Element tlačítka, který tento detail vytvořil\r\n */\r\n private async _createEditableDetail(element: HTMLElement): Promise {\r\n const removeNamingBox = () => {\r\n namingBox.remove();\r\n element.classList.remove(\"hidden\");\r\n };\r\n\r\n const save = async (profileInfo: IProfileData) => {\r\n const result = await this._profileManager.saveNewProfile(profileInfo);\r\n\r\n if (result) { // Je-li null, tak byla zobrazena hláška o již existujícím názvu profilu a nebude se dělat nic\r\n removeNamingBox();\r\n\r\n this._createProfileButton(result);\r\n }\r\n };\r\n\r\n this._profileManager.profileEdited.trigger(this._profileManager, null);\r\n element.classList.add(\"hidden\");\r\n\r\n const namingBox = createElement({ classes: \"naming-box-outer\" });\r\n const formProfileDetailBuilder = new FormProfileDetailBuilder({\r\n profileManager: this._profileManager,\r\n name: \"\",\r\n isDefault: false,\r\n isBasicProfile: false,\r\n showInNavigationTree: false,\r\n queryMode: null,\r\n showMenuActions: this._showMenuActions,\r\n saveFunction: save,\r\n isImplementation: false,\r\n cancelFunction: () => {\r\n removeNamingBox();\r\n\r\n this._profileManager.reloadActualProfile();\r\n },\r\n storeFilters: true,\r\n });\r\n namingBox.appendChild(await formProfileDetailBuilder.build());\r\n\r\n let editListener: IListener;\r\n\r\n this._profileManager.profileEdited.add(editListener = () => {\r\n removeNamingBox();\r\n\r\n this._profileManager.profileEdited.remove(editListener);\r\n });\r\n\r\n element.insertAdjacentElement(\"afterend\", namingBox);\r\n }\r\n //#endregion Methods\r\n}\r\n","import { InjectedProperty } from \"../../../Global/Base/DIContainer\";\r\nimport { GlobalContext } from \"../../../Global/Base/GlobalContext\";\r\n/**Rozhraní aplikační cache*/\r\nexport interface IAppCache {\r\n /**\r\n * Nastaví hodnotu pro property v cache.\r\n * @param property Unikátní název nebo ID property.\r\n * @param value Hodnota property.\r\n */\r\n setValue(property: string | number, value: any): void;\r\n\r\n /**\r\n * Získá hodnotu property v cache\r\n * @param property Unikátní název nebo ID property.\r\n */\r\n getValue(property: string | number): T | undefined;\r\n}\r\n\r\nexport class IAppCache {\r\n private static _properties = [\"setValue\", \"getValue\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value));\r\n }\r\n}\r\n\r\nexport class ApplicationCache {\r\n public static get instance(): IAppCache {\r\n return {} as any;\r\n }\r\n}\r\n\r\nInjectedProperty.bindProperty(ApplicationCache, \"instance\", IAppCache);\r\nGlobalContext.register(\"ApplicationCache\", ApplicationCache);\r\n","import { GlobalContext } from \"../../Global/Base/GlobalContext\";\r\nimport { ApplicationCache, IAppCache } from \"./Cache/IAppCache\";\r\n/**Výčet atributů pro cache*/\r\nexport enum AppCacheProperties {\r\n systemOperationRights,\r\n}\r\n\r\n/**\r\n * Aplikační cache s daty uchovávanými v paměti\r\n */\r\nexport class AppMemCache implements IAppCache {\r\n private __data?: Map;\r\n\r\n private get _topInstance(): AppMemCache {\r\n return GlobalContext.getType(ApplicationCache).instance as AppMemCache;\r\n }\r\n\r\n private get _data(): Map {\r\n if (!this._topInstance.__data)\r\n this._topInstance.__data = new Map();\r\n return this._topInstance.__data;\r\n }\r\n\r\n private set _data(val: Map) {\r\n this._topInstance.__data = val;\r\n }\r\n\r\n /**\r\n * Získá hodnotu property v cache\r\n * @param property Unikátní název nebo ID property.\r\n */\r\n public getValue(property: string | number): T | undefined {\r\n return this._data.has(property) ? this._data.get(property) as T : undefined;\r\n }\r\n\r\n /**\r\n * Nastaví hodnotu pro property v cache.\r\n * @param property Unikátní název nebo ID property.\r\n * @param value Hodnota property.\r\n */\r\n public setValue(property: string | number, value: T): void {\r\n this._data.set(property, value);\r\n }\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { ISectionLogger } from \"@multiweb/logging\";\r\nimport { CancellationToken } from \"Global/Base/Promises/CancellationTokenSource\";\r\nimport { ICommunicationManager } from \"OW.Remoting/Remoting/ICommunicationManager\";\r\nimport { RequestContextWithoutTransactionContextId } from \"OW.Remoting/Remoting/RequestContextWithoutTransactionContextId\";\r\nimport { ASServices } from \"../../../../OW.Remoting/Basic/ServiceEndpoints\";\r\nimport { AppCacheProperties } from \"../../../../OW.Remoting/Remoting/AppMemCache\";\r\nimport { ApplicationCache } from \"../../../../OW.Remoting/Remoting/Cache/IAppCache\";\r\n\r\n/**\r\n * výčet systémových operací\r\n */\r\nexport enum SystemOperation {\r\n FRMLOC = \"FRMLOC\",\r\n SHOWAUDITDATA = \"SHOWAUDITDATA\",\r\n SHOWWFSTATUS = \"SHOWWFSTATUS\",\r\n SHOWWFPARTICIPANTS = \"SHOWWFPARTICIPANTS\",\r\n SHOWWFHISTORY = \"SHOWWFHISTORY\",\r\n SHOWRECORDFIRST = \"SHOWRECORDFIRST\",\r\n SHOWFULLFORMINFO = \"SHOWFULLFORMINFO\",\r\n EDITIMPPROFILE = \"EDITIMPPROFILE\",\r\n EDITIMPSHORTCUTS = \"EDITIMPSHORTCUTS\",\r\n GETVERSIONINFO = \"GETVERSIONINFO\",\r\n ADVBRDCRMB = \"ADVBRDCRMB\",\r\n aud = \"aud\",\r\n}\r\n\r\n/**\r\n * Kolekce vyhodnocených práv\r\n */\r\ninterface IRightResultCollection {\r\n [attribute: string]: boolean;\r\n}\r\n\r\n/**\r\n * Rozhraní pro třídu vyhodnocující práva k systémovým operacím\r\n * @includeToDoc\r\n */\r\nexport interface ISystemOperationRights {\r\n /**\r\n * Vrací právo pro zadanou systémovou operaci\r\n * @param operation Název operace\r\n */\r\n get(operation: SystemOperation | string): Promise;\r\n\r\n /**\r\n * Pročistí cache vyhodnocených práv\r\n */\r\n clearCache(): void;\r\n}\r\n\r\nexport class ISystemOperationRights {\r\n private static _methods = [\"get\", \"clearCache\"];\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * Třída pro kešování práv na systémové operace\r\n */\r\nexport class SystemOperationRights implements ISystemOperationRights {\r\n private readonly _logger: ISectionLogger;\r\n\r\n /** Práva která mají být načtena prvním dotazem na server */\r\n private _initEvalRights: (SystemOperation | string)[] = [SystemOperation.EDITIMPPROFILE, SystemOperation.SHOWAUDITDATA, SystemOperation.SHOWWFHISTORY, SystemOperation.SHOWWFPARTICIPANTS, SystemOperation.SHOWWFSTATUS];\r\n private _initCachePromise: Promise | false = false;\r\n private readonly _communicationManager: ICommunicationManager;\r\n\r\n constructor(communicationManager: ICommunicationManager, logger: ISectionLogger) {\r\n this._communicationManager = communicationManager;\r\n this._logger = logger;\r\n }\r\n\r\n /** Získá práva pro zadanou systémovou operaci\r\n * @param operation Systémová operace\r\n * @param defaultValue Výchozí hodnota, pokud uživatel nemá právo nastaveno\r\n */\r\n public async get(operation: SystemOperation | string, defaultValue: boolean = false): Promise {\r\n let cachedValues = ApplicationCache && ApplicationCache.instance.getValue(AppCacheProperties.systemOperationRights);\r\n if (!cachedValues && !this._initCachePromise)\r\n this._initCachePromise = this._initCache(operation);\r\n await this._initCachePromise;\r\n\r\n cachedValues = ApplicationCache && ApplicationCache.instance.getValue(AppCacheProperties.systemOperationRights);\r\n if (!cachedValues) {\r\n this._logger.error(`Unable to evaluate right for '${operation}'. Failed to evaluate default rights.`);\r\n } else if (!Object.prototype.hasOwnProperty.call(cachedValues, operation)) { //keš existuje, ale nemá vyhodnocené zadané právo > doptá se serveru.\r\n const operationRight = await this._evaluateSystemOperationRights([operation], defaultValue);\r\n if (!operationRight) {\r\n this._logger.error(`Unable to evaluate right for '${operation}'. Server responded with invalid value`);\r\n } else {\r\n cachedValues[operation] = operationRight[operation];\r\n if (ApplicationCache)\r\n ApplicationCache.instance.setValue(AppCacheProperties.systemOperationRights, cachedValues);\r\n }\r\n }\r\n return cachedValues && cachedValues[operation] ? cachedValues[operation] : defaultValue;\r\n }\r\n\r\n /**\r\n * Inicializuje cache\r\n */\r\n private async _initCache(operation: string | SystemOperation): Promise {\r\n const firstBatch = [...this._initEvalRights];\r\n if (!firstBatch.includes(operation))\r\n firstBatch.push(operation);\r\n const cachedValues = await this._evaluateSystemOperationRights(firstBatch, false);\r\n if (ApplicationCache)\r\n ApplicationCache.instance.setValue(AppCacheProperties.systemOperationRights, cachedValues);\r\n return cachedValues;\r\n }\r\n\r\n /**\r\n * Hromadně vyhodnocuje oprávnění na systémové operace ze serveru\r\n * @param operations Kolekce operací, které se mají vyhodnotit\r\n * @param defaultValue Výchozí hodnota, pokud pro danou operaci nejsou definována práva\r\n */\r\n private async _evaluateSystemOperationRights(operations: (SystemOperation | string)[], defaultValue = false): Promise {\r\n try {\r\n // Systémové operace jsou na speciální právo, které se nevztahuje k business datům. Proto není potřeba rolí ani transakčního kontextu.\r\n const requestContext = this._getRequestContext();\r\n return await this._communicationManager.callPOSTRequest(\"EvaluateSystemOperationRightsForUser\", ASServices.owManager, { defaultValue: defaultValue }, operations, undefined, requestContext);\r\n } catch (e) {\r\n this._logger.error(\"Failed to fetch SystemOperation rights.\", e);\r\n return {};\r\n }\r\n }\r\n\r\n public clearCache(): void {\r\n if (ApplicationCache) {\r\n ApplicationCache.instance.setValue(AppCacheProperties.systemOperationRights, undefined);\r\n this._initCachePromise = false;\r\n }\r\n }\r\n\r\n /**\r\n * Systémové operace editačnímu kontextu nepodléhají\r\n * @param cancellationToken Umožňuje zrušit běžící dotaz\r\n */\r\n private _getRequestContext(cancellationToken: CancellationToken = CancellationToken.none): RequestContextWithoutTransactionContextId {\r\n return {\r\n roles: AppContext.instance.activeUserRolesIds,\r\n cancellationToken,\r\n };\r\n }\r\n}\r\n","import { Event } from \"../../../../../Global/Base/Events\";\r\nimport { IDisposable } from \"../../../../../Global/Base/IDisposable\";\r\nimport { IProfileData } from \"../../DataBuilders/FormProfileDetailBuilder\";\r\nimport { FormProfileItem } from \"./FormProfileItem\";\r\n\r\n/**\r\n * Umožňuje spravovat profily formulářů (jejich framů a dalších komponent), což jsou rozložení jejich komponent, nastavení sloupců seznamů, velikosti split panelů a pod.\r\n * @includeToDoc\r\n */\r\nexport interface IFormProfileManager extends IDisposable {\r\n /**\r\n * Událost změny aktuálně vybraného profilu\r\n */\r\n readonly selectedProfileChanged: Event;\r\n /**\r\n * Událost změny výchozího profilu\r\n */\r\n readonly defaultProfileChanged: Event;\r\n /**\r\n * Událost odstranění profilu\r\n */\r\n readonly profileRemoved: Event;\r\n /**\r\n * Událost aktualizace profilu\r\n */\r\n readonly profileUpdated: Event;\r\n /**\r\n * Událost přidání profilu\r\n */\r\n readonly profileAdded: Event;\r\n /**\r\n * Událost editace profilu\r\n */\r\n readonly profileEdited: Event;\r\n\r\n /** Umožňuje čekat na načtení profilů při otevírání formuláře */\r\n\r\n /**\r\n * Vrátí aktuálně vybraný profil\r\n */\r\n readonly selectedProfile: FormProfileItem | undefined;\r\n\r\n readonly canEditImplementationProfiles: boolean;\r\n\r\n /**\r\n * Všechny profily\r\n */\r\n readonly profiles: Iterable;\r\n\r\n //static getUserFormProfiles(): Promise;\r\n\r\n /** Vrátí zda existuje zadaný název filtru */\r\n doesFilterNameExist(profileName: string): Promise;\r\n\r\n /**\r\n * Předanému formu vytvoří nový SidePanel s profily\r\n */\r\n createFromSettingsPanel(): Promise;\r\n\r\n /**\r\n * Přednačtení uložených profilů formuláře z DB\r\n */\r\n preloadSavedProfiles(): Promise;\r\n\r\n /**\r\n * Inicializace profilů\r\n * @param applyFormProfileID ID profilu, který se má po otevření formuláře aplikovat místo výchozího\r\n */\r\n initializeProfiles(applyFormProfileID: number | null): Promise;\r\n\r\n /**\r\n * Načte základní profil (implicitní nebo zruši veškeré nastavení profilů)\r\n */\r\n loadBasicProfile(): void;\r\n\r\n /**\r\n * Načte výchozí profil\r\n */\r\n loadDefaultProfile(): void;\r\n\r\n loadProfileById(id: number): void;\r\n\r\n /**\r\n * nacteni profilu formulare\r\n */\r\n loadProfile(profileItem: FormProfileItem): void;\r\n\r\n /**\r\n * Zahodí změny a znovu načte aktuální profil\r\n * @returns Vrací true, pokud znovu načten profil, jinak false\r\n */\r\n reloadActualProfile(): Promise;\r\n\r\n /**\r\n * Uložení aktuálního profilu formuláře. Vrací true v případě úspěchu\r\n */\r\n saveCurrentProfile(profile: FormProfileItem): Promise;\r\n\r\n /**\r\n * ulozeni profilu formulare\r\n */\r\n saveNewProfile(profileParams: IProfileData): Promise;\r\n\r\n /**\r\n * vycisteni profilu, smaze polozky v hodnim menu a v manu stravy profilu\r\n */\r\n clearProfiles(): void;\r\n\r\n /**\r\n * Odstraní profil\r\n */\r\n removeProfile(profile: FormProfileItem): Promise;\r\n\r\n /**\r\n * Označí aktuální profil jako upravný (neuložený)\r\n */\r\n setActualProfileEdited(): void;\r\n\r\n /**\r\n * Označí aktuální profil jako neupravený (uložený)\r\n */\r\n setActualProfileUnchanged(): void;\r\n\r\n /**\r\n * Nastaví \"Základní\" profil jako \"Výchozí\"\r\n */\r\n setBasicProfileDefault(): void;\r\n\r\n /**\r\n * Vrací seznam viditelných a zneviditelněných sloupců daného framu pro předaný nebo výchozí profil přidruženého formuláře\r\n * @param frameName Název framu\r\n * @returns Vrací dvě pole názvů viditelných a zneviditelněných sloupců. Nebo vrací null, pokud nebyl nalezen výchozí profil nebo předaný název framu\r\n */\r\n getColumnsVisibilitiesByFrameName(frameName: string, profileId?: number): { visibleColumns: string[]; invisibleColumns: string[] } | null;\r\n\r\n isProfileNameUnique(profileId: number, name: string): Promise;\r\n\r\n}\r\n","import { getDataReaderClient } from \"@multiweb/clients/util\";\r\nimport { LazyLoadingSectionLogger, LoggingSection } from \"@multiweb/logging\";\r\nimport { bridge, createSelectedProfileChangedAction } from \"@multiweb/reactCore/bridge\";\r\nimport { IFormProfile, IRowData, IUser } from \"@multiweb/types/contracts\";\r\nimport { AdditionalOrdering } from \"Global/Base/DataSources/Interfaces\";\r\nimport { DIContainer } from \"Global/Base/DIContainer\";\r\nimport { Event } from \"../../../../../Global/Base/Events\";\r\nimport { InvalidOperationException } from \"../../../../../Global/Base/Exceptions\";\r\nimport { CancellationToken } from \"../../../../../Global/Base/Promises/CancellationTokenSource\";\r\nimport { DeferredStateful, PromiseUtils } from \"../../../../../Global/Base/Promises/PromiseUtils\";\r\nimport { StringUtils } from \"../../../../../Global/Base/Utils/StringUtils\";\r\nimport { EventsController } from \"../../../../../Global/Dom/EventsController\";\r\nimport { AttrValueReader } from \"../../../../../OW.Remoting/Remoting/AttrValueReader\";\r\nimport { NullOWObject } from \"../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { Localization } from \"../../../../../OW.Remoting/Remoting/Localization\";\r\nimport { OWManager } from \"../../../../../OW.Remoting/Remoting/OWManager\";\r\nimport {\r\n RequestContextWithoutTransactionContextId,\r\n} from \"../../../../../OW.Remoting/Remoting/RequestContextWithoutTransactionContextId\";\r\nimport { FormProfileBuilder } from \"../../DataBuilders/FormProfileBuilder\";\r\nimport { IProfileData } from \"../../DataBuilders/FormProfileDetailBuilder\";\r\nimport { LocalizedStringBuilder } from \"../../DataBuilders/LocalizedStringBuilder\";\r\nimport { FormManager } from \"../../FormManager/IFormManager\";\r\nimport { FormManagerProperty } from \"../../FormManager/IFormManagerInterfaces\";\r\nimport { ISystemOperationRights, SystemOperation } from \"../../Helpers/SystemOperationRights\";\r\nimport { IFrameProfileInfo } from \"../../IFrameColumnInfo\";\r\nimport { MessageWindow } from \"../../MessageWindow\";\r\nimport { UIManager } from \"../../UIManager\";\r\nimport { WindowState } from \"../../UIManagerInterfaces\";\r\nimport { Form } from \"../Form\";\r\nimport {\r\n IFrameWithChildFrames,\r\n IFrameWithFiltering,\r\n IFrameWithProfile,\r\n IFrameWithUniqueIAttribute,\r\n IMasterableFrame,\r\n} from \"../Frames/FrameInterfaces\";\r\nimport { IForm } from \"../IForm\";\r\nimport { IFrame, IListFrame } from \"../IFrame\";\r\nimport { FormProfileBasicItem } from \"./FormProfileBasicItem\";\r\nimport { FormProfileItem } from \"./FormProfileItem\";\r\nimport { IFormProfileDataContainer } from \"./IFormProfileInfo\";\r\nimport { IFormProfileManager } from \"./IFormProfileManager\";\r\n\r\nconst {\r\n dispatchAction,\r\n} = bridge;\r\n\r\nconst logger = LazyLoadingSectionLogger.create(LoggingSection.formProfiles);\r\n/** Indikuje pocet filtru, ktere muzou mit stejny nazev + cislo poradi */\r\nconst MAX_FILTER_COUNT_WITH_SAME_NAME = 10_000;\r\n\r\n/**\r\n * Umožňuje spravovat profily formulářů (jejich framů a dalších komponent), což jsou rozložení jejich komponent, nastavení sloupců seznamů, velikosti split panelů a pod.\r\n * @includeToDoc\r\n */\r\nexport class FormProfileManager implements IFormProfileManager {\r\n /**\r\n * Událost změny aktuálně vybraného profilu\r\n */\r\n public readonly selectedProfileChanged: Event = new Event();\r\n /**\r\n * Událost změny výchozího profilu\r\n */\r\n public readonly defaultProfileChanged: Event = new Event();\r\n /**\r\n * Událost odstranění profilu\r\n */\r\n public readonly profileRemoved: Event = new Event();\r\n /**\r\n * Událost aktualizace profilu\r\n */\r\n public readonly profileUpdated: Event = new Event();\r\n /**\r\n * Událost přidání profilu\r\n */\r\n public readonly profileAdded: Event = new Event();\r\n /**\r\n * Událost editace profilu\r\n */\r\n public readonly profileEdited: Event = new Event();\r\n\r\n private _eventsController = new EventsController();\r\n\r\n /** Umožňuje čekat na načtení profilů při otevírání formuláře */\r\n private _profilesLoading: DeferredStateful = PromiseUtils.deferStateful();\r\n\r\n private _profiles: FormProfileItem[] = [];\r\n\r\n private readonly _form: IForm;\r\n /**\r\n * Položka \"Základní\"\r\n */\r\n private _basicFormProfileItem: FormProfileItem;\r\n /**\r\n * Poslední označený profil\r\n */\r\n private _selectedFormProfile: FormProfileItem;\r\n /**\r\n * Příznak, zda došlo k označení výchozího profilu po načtení a inicializaci profilů\r\n */\r\n private _initialProfileSelected: boolean = false;\r\n\r\n private readonly _currentUserId: number;\r\n\r\n private _canEditImplementationProfiles: boolean = false;\r\n\r\n /**\r\n * Výchozí implementační profil\r\n */\r\n private _defaultImplementationProfile: FormProfileItem = undefined;\r\n\r\n protected _isProfileBeingLoaded: boolean = false;\r\n\r\n public get canEditImplementationProfiles(): boolean {\r\n return this._canEditImplementationProfiles;\r\n }\r\n\r\n /**\r\n * Všechny profily\r\n */\r\n public get profiles(): Iterable {\r\n return this._profileItemsIterator();\r\n }\r\n\r\n /**\r\n * Výchozí implementační profil\r\n */\r\n public get defaultImplementationProfile(): FormProfileItem | undefined {\r\n return this._defaultImplementationProfile;\r\n }\r\n\r\n constructor(form: IForm, { id }: IUser) {\r\n this._form = form;\r\n this._currentUserId = id;\r\n this.selectedProfileChanged.add((profileItem) => {\r\n if (this._form instanceof Form) {\r\n this._form.setState(WindowState.favorite, FormManager.instance.getProperty(FormManagerProperty.favoriteForm, { menuId: this._form.menuItemId, formCode: this._form.formName, profileId: profileItem.id }));\r\n }\r\n if (profileItem.basic) {\r\n this.loadBasicProfile();\r\n\r\n this._profilesLoading.resolve();\r\n\r\n return;\r\n }\r\n this.loadProfile(profileItem);\r\n this._profilesLoading.resolve();\r\n\r\n dispatchAction(createSelectedProfileChangedAction(this._form?.formInstanceId, profileItem));\r\n });\r\n }\r\n public get selectedProfile(): FormProfileItem {\r\n return this._selectedFormProfile;\r\n }\r\n\r\n public async doesFilterNameExist(profileName: string): Promise {\r\n for (const frame of this._form.frames) {\r\n if (frame instanceof IListFrame) {\r\n if (await frame.filterManager?.doesFilterNameExist(profileName)) return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _updateItemSelectionState(profileItem: FormProfileItem, selectedProfileItem: FormProfileItem): void {\r\n if (profileItem.id !== selectedProfileItem.id)\r\n profileItem.selected = false;\r\n }\r\n\r\n private _updateItemDefaultState(profileItem: FormProfileItem, newDefaultProfileItem: FormProfileItem): void {\r\n if (profileItem.id !== newDefaultProfileItem.id)\r\n profileItem.default = false;\r\n }\r\n\r\n private *_profileItemsIterator(): IterableIterator {\r\n for (const p of this._profiles)\r\n yield p;\r\n }\r\n\r\n /**\r\n * Zaregistruje položce profilu eventy pro správné nastavování označení a výchozího profilu\r\n */\r\n private _registerFormProfileItemEvents(formProfileItem: FormProfileItem): void {\r\n formProfileItem.selectPreview.add(async (previewArgs, _profileItem, settedValue) => {\r\n if (!previewArgs.cancelEvent && settedValue && this._initialProfileSelected && !(await this._canSelectedItemChange()))\r\n previewArgs.cancel();\r\n });\r\n\r\n formProfileItem.selectionChanged.add((profileItem, value) =>\r\n this._triggerSelectedProfileChanged(profileItem, value),\r\n );\r\n formProfileItem.defaultChanged.add((newDefaultProfileItem, value) =>\r\n this._triggerDefaultProfileChanged(newDefaultProfileItem, value),\r\n );\r\n\r\n const formProfileItemId = this._getFormProfileId(formProfileItem);\r\n this._eventsController.addWithKey(formProfileItemId, this.selectedProfileChanged, (selectedProfileItem) => {\r\n this._updateItemSelectionState(formProfileItem, selectedProfileItem);\r\n });\r\n this._eventsController.addWithKey(formProfileItemId, this.defaultProfileChanged, (newDefaultProfileItem) => {\r\n this._updateItemDefaultState(formProfileItem, newDefaultProfileItem);\r\n });\r\n }\r\n\r\n private _triggerSelectedProfileChanged(profileItem: FormProfileItem, value: boolean): void {\r\n if (profileItem) {\r\n this.selectedProfileChanged.trigger(profileItem, value);\r\n\r\n if (this._selectedFormProfile)\r\n this._selectedFormProfile.isEdited = false;\r\n\r\n this._selectedFormProfile = profileItem;\r\n }\r\n }\r\n\r\n private _triggerDefaultProfileChanged(newDefaultProfileItem: FormProfileItem, value: boolean): void {\r\n if (newDefaultProfileItem)\r\n this.defaultProfileChanged.trigger(newDefaultProfileItem, value);\r\n }\r\n\r\n // @ts-ignore // nevyužito, ale ponecháno\r\n private _selectProfile(profile: FormProfileItem): void {\r\n profile.selected = true;\r\n }\r\n\r\n public static async getUserFormProfiles(): Promise {\r\n const userFormProfiles: IFormProfile[] = [];\r\n const profiles = await getDataReaderClient().getDataRowsWithParams(\r\n \"UserProfile\",\r\n [\"ID\", \"FormName\", \"Name\"],\r\n \":UserProfile.ActualUserProfiles() AND (DataType = @0) AND ShowInNavigationTree = @1\", //OR DataType = @2 OR DataType = @3 OR DataType = @4\r\n { params: [\"FormProfileMW\", true], dataLength: -1 }); //, \"GrafyProfile\", \"GrafySettings\", \"ModalFormProfile\"\r\n for (const profile of profiles) {\r\n userFormProfiles.push({ id: AttrValueReader.read(profile[\"ID\"]), title: AttrValueReader.read(profile[\"Name\"]), formCode: AttrValueReader.read(profile[\"FormName\"]), showInNavigationTree: true });\r\n }\r\n\r\n return userFormProfiles;\r\n }\r\n\r\n /**\r\n * Předanému formu vytvoří nový SidePanel s profily\r\n */\r\n public async createFromSettingsPanel(): Promise {\r\n this._form.formSettingsPanel.titleBuilder = new LocalizedStringBuilder(\"GUI-623204\"); // Správa zobrazení\r\n this._form.formSettingsPanel.contentBuilder = new FormProfileBuilder(this, !this._form.isModal && StringUtils.isNullOrEmpty(this._form.formCondition));\r\n }\r\n\r\n /**\r\n * Sestaví datový objekt profilu z jednotlivých framů na formu\r\n * @param storeFilters Příznak, zda se mají do profilu uložit aktuální filtry framů\r\n * @param isImplementation Příznak, zda je zobrazení implementační\r\n * @param existingProfile (Nepovinný) Pokud se sestavuje objekt z již existujícího profilu, předá se zde\r\n */\r\n private async _buildFormProfileData(options: {storeFilters: boolean; isImplementation: boolean; profileName: string; existingProfile?: FormProfileItem}): Promise {\r\n const data: IFormProfileDataContainer = {\r\n formProfileData: this._form.profileInfo, // Nastavení, které se týká formuláře jako celku a ne jeho jednotlivých framů\r\n };\r\n\r\n const {\r\n storeFilters,\r\n existingProfile,\r\n profileName,\r\n isImplementation,\r\n } = options;\r\n\r\n for (const frame of this._getAllFramesWithProfiles()) { // Nastavení, které se týká jednotlivých framů formuláře\r\n let profileInfo = frame.profileInfo;\r\n profileInfo.attributesToGroup = frame.currentAttributesToGroup;\r\n\r\n if (frame instanceof IMasterableFrame)\r\n profileInfo.showSubRecords = frame.showSubRecords ?? false;\r\n\r\n if (storeFilters) {\r\n if (frame instanceof IFrameWithFiltering) {\r\n let newFilterId: string | null;\r\n\r\n if (frame.filterManager) {\r\n // Pokud je aktivní filtr, použije se jeho identifikátor, jinak se uloží null jako prázdný filtr (\"Vše\")\r\n if (!frame.filterManager.currentFilter) {\r\n newFilterId = null;\r\n } else {\r\n // Pokud je ukladane zobrazeni implementacni, ale filtr ne, prepneme ho na implementační\r\n if (isImplementation && !frame.filterManager.currentFilter.isImplementationFilter) {\r\n frame.filterManager.currentFilter.isImplementationFilter = true;\r\n }\r\n if (!frame.filterManager.currentFilter.filterId) {\r\n const originalFilterName = profileName;\r\n let ordNumber = 1;\r\n let finalFilterName = profileName;\r\n do {\r\n if (await frame.filterManager?.doesFilterNameExist(finalFilterName)) {\r\n finalFilterName = `${originalFilterName} ${ordNumber}`;\r\n } else break;\r\n } while (ordNumber++ < MAX_FILTER_COUNT_WITH_SAME_NAME);\r\n if (await frame.filterManager?.doesFilterNameExist(finalFilterName)) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-749397\", [ MAX_FILTER_COUNT_WITH_SAME_NAME.toLocaleString() ])); // Počet filtrů v řadě s tímto názvem dosáhl svého maximálního limitu a nebude uložen. (Limit: @0)\r\n return null;\r\n }\r\n\r\n await frame.filterManager.currentFilter.save(finalFilterName, frame.filterManager);\r\n } else {\r\n await frame.filterManager.currentFilter.save(frame.filterManager.currentFilter.filterName, frame.filterManager);\r\n }\r\n\r\n newFilterId = frame.filterManager.currentFilter.filterId;\r\n }\r\n } else {\r\n // Pokud frame nemá filterManager, je neinicializovaný. Aktuální nastavení filtru bereme z existujícího profilu, pokud existuje.\r\n // Na neinicializovaný frame totiž není tato informace propsána.\r\n const frameProfileInfo = existingProfile?.data[frame.frameName];\r\n if (frameProfileInfo instanceof IFrameProfileInfo) {\r\n if (frameProfileInfo.filterId == null) { // Pokud je filtr nedefinovaný nebo prázdný, ukládáme prázdný; ! Dvojité == je tu záměrně\r\n newFilterId = null;\r\n } else {\r\n newFilterId = frameProfileInfo.filterId;\r\n }\r\n }\r\n }\r\n\r\n profileInfo = {\r\n ...profileInfo,\r\n filterId: newFilterId,\r\n };\r\n }\r\n } else {\r\n profileInfo.filterId = undefined; // JSON.stringify vynechává fieldy s \"undefined\" - tzn. žádná informace o filtru\r\n }\r\n\r\n if (frame instanceof IFrameWithUniqueIAttribute) {\r\n data[frame.uniqueIAttrIdentifier] = profileInfo;\r\n } else if (frame instanceof IFrame) {\r\n data[frame.frameName] = profileInfo;\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /*\r\n * Získá všechny framy na formuláři které mají profil (včetně vnořených framů v komponentách TreeFrame a TwoListFrame)\r\n */\r\n private _getAllFramesWithProfiles(): IFrameWithProfile[] {\r\n const frames: IFrameWithProfile[] = [];\r\n this._form.masterableFrames.forEach(item => {\r\n if (item instanceof IFrameWithProfile)\r\n frames.push(item);\r\n\r\n if (item instanceof IFrameWithChildFrames)\r\n item.childFrames.forEach(child => child instanceof IFrameWithProfile && frames.push(child));\r\n });\r\n return frames;\r\n }\r\n\r\n /**\r\n * Přednačtení uložených profilů formuláře z DB\r\n */\r\n public async preloadSavedProfiles(): Promise {\r\n this._canEditImplementationProfiles = await DIContainer.instance.create(ISystemOperationRights).get(SystemOperation.EDITIMPPROFILE);\r\n\r\n // \"Základní\" položka profilu\r\n const defaultBasicItem = new FormProfileBasicItem(null, await Localization.getTextPromise(\"GUI-623212\"), \"\", {}, false, false, false, \"GUI-623212\"); // Základní\r\n\r\n defaultBasicItem.selected = true;\r\n this._basicFormProfileItem = new FormProfileItem(this._form.formName, defaultBasicItem);\r\n this._profiles.push(this._basicFormProfileItem);\r\n\r\n const requestContext: RequestContextWithoutTransactionContextId = {\r\n roles: this._form.ownerForm?.formContext?.roles,\r\n cancellationToken: CancellationToken.none,\r\n };\r\n const formProfiles = await getDataReaderClient().getDataRowsWithParams(\"UserProfile\", [\"ID\", \"Name\", \"User\", \"Data\", \"IsDefault\", \"ShowInNavigationTree\"],\r\n \":UserProfile.ActualUserProfiles() AND FormName = @0 AND DataType = @1\",\r\n { params: [this._form.formName, \"FormProfileMW\"], dataLength: -1, orderBy: [`${AdditionalOrdering.linguistic} Name`] },\r\n undefined, requestContext);\r\n\r\n for (const formProfile of formProfiles) {\r\n const formProfileJsonData = AttrValueReader.read(formProfile[\"Data\"]);\r\n const fromProfileParsedData: IFormProfileDataContainer = JSON.parse(formProfileJsonData || null) || {};\r\n const profileBasicItem = new FormProfileBasicItem(\r\n AttrValueReader.read(formProfile[\"ID\"]),\r\n AttrValueReader.read(formProfile[\"Name\"]),\r\n formProfileJsonData, fromProfileParsedData, AttrValueReader.read(formProfile[\"IsDefault\"]),\r\n AttrValueReader.read(formProfile[\"ShowInNavigationTree\"]),\r\n AttrValueReader.read(formProfile[\"User\"]) === 0);\r\n const formProfileItem = new FormProfileItem(this._form.formName, profileBasicItem);\r\n\r\n this._profiles.push(formProfileItem);\r\n }\r\n }\r\n\r\n /**\r\n * Inicializace profilů\r\n * @param applyFormProfileID ID profilu, který se má po otevření formuláře aplikovat místo výchozího\r\n */\r\n public async initializeProfiles(applyFormProfileID: number | null = null): Promise {\r\n let loadedDefaultItem = this._basicFormProfileItem;\r\n this._basicFormProfileItem.default = true;\r\n\r\n let userDefaultProfileLoaded = false;\r\n\r\n for (const formProfileItem of this.profiles) {\r\n this._registerFormProfileItemEvents(formProfileItem);\r\n\r\n if (formProfileItem.default && formProfileItem !== this._basicFormProfileItem) {\r\n this._basicFormProfileItem.default = false;\r\n }\r\n\r\n if (formProfileItem.default && formProfileItem.isImplementation) {\r\n // Uložíme si defaultní implementační profil.\r\n this._defaultImplementationProfile = formProfileItem;\r\n }\r\n\r\n // nastavi jako profil, ktery se aplikuje\r\n if ((applyFormProfileID && (formProfileItem.id === applyFormProfileID)) || (!applyFormProfileID && formProfileItem.default)) {\r\n if (formProfileItem.isImplementation && userDefaultProfileLoaded) {\r\n // V případě, že se jedná o implementační profil a již je načtený defaultní uživatelský profil,\r\n // uživatelský profil má přednost a proto zde pokračujeme na další iteraci.\r\n continue;\r\n } else if (formProfileItem !== this._basicFormProfileItem) {\r\n // Pokud se jedná o jiný profil než \"Základní\", uložíme si příznak,\r\n // že byl načten uživatelský defaultní profil.\r\n userDefaultProfileLoaded = true;\r\n }\r\n loadedDefaultItem = formProfileItem;\r\n }\r\n }\r\n\r\n // Pokud je defaultní uživatelský profil, u defaultního implementačního zrušíme příznak, že je defaultní.\r\n if (this._defaultImplementationProfile && loadedDefaultItem !== this._defaultImplementationProfile) {\r\n this._defaultImplementationProfile.default = false;\r\n }\r\n\r\n if (loadedDefaultItem === this._basicFormProfileItem) {\r\n this._profilesLoading.resolve(); // U základního profilu nechceme čekat, není na co a ani nedojde k vyvolání žádných událostí, které by provedly resolve\r\n }\r\n\r\n loadedDefaultItem.select();\r\n this._initialProfileSelected = true;\r\n this._selectedFormProfile = loadedDefaultItem;\r\n\r\n return this._profilesLoading.promise; // Jinak může dojít k situaci, kdy jsou framy inicializovány dříve než data, podle kterých se mají nastavit\r\n }\r\n\r\n private _isCurrentFilterSaved(): boolean {\r\n return !!this._form.filterPanel?.currentFilterBlock?.isSaved;\r\n }\r\n\r\n /**\r\n * Načte základní profil (implicitní nebo zruší veškeré nastavení profilů)\r\n */\r\n public loadBasicProfile(): void {\r\n this._isProfileBeingLoaded = true;\r\n\r\n this._form.clearProfileInfo(); // Nejdříve je třeba resetovat globální hodnoty formu, které jsou následně použity pro nastavení během téhož na framech (QueryMode)\r\n\r\n for (const frame of this._getAllFramesWithProfiles()) {\r\n frame.clearProfileInfo();\r\n if (frame instanceof IFrameWithFiltering && this._isCurrentFilterSaved())\r\n frame.filterManager?.clearFilter();\r\n }\r\n\r\n this._basicFormProfileItem.select();\r\n this._isProfileBeingLoaded = false;\r\n dispatchAction(createSelectedProfileChangedAction(this._form?.formInstanceId));\r\n }\r\n\r\n /**\r\n * Načte výchozí profil\r\n */\r\n public loadDefaultProfile(): void {\r\n for (const profile of this._profiles) {\r\n if (profile.default) {\r\n this.loadProfile(profile);\r\n profile.select();\r\n return;\r\n }\r\n }\r\n\r\n this.loadBasicProfile();\r\n this._basicFormProfileItem.default = true;\r\n logger.info(\"Default profile not found\");\r\n }\r\n\r\n public loadProfileById(id: number): void {\r\n let profileItem: FormProfileItem = undefined;\r\n for (const item of this._profiles) {\r\n if (item.id === id) {\r\n profileItem = item;\r\n break;\r\n }\r\n }\r\n\r\n this.loadProfile(profileItem);\r\n }\r\n\r\n /**\r\n * nacteni profilu formulare\r\n */\r\n public loadProfile(profileItem: FormProfileItem): void {\r\n if (profileItem == undefined) {\r\n logger.error(\"Profile not found\");\r\n return;\r\n }\r\n\r\n this._isProfileBeingLoaded = true;\r\n\r\n if (this._selectedFormProfile && this._selectedFormProfile.isEdited)\r\n this._selectedFormProfile.discardChanges();\r\n\r\n if (profileItem.basic) {\r\n this.loadBasicProfile();\r\n return;\r\n }\r\n\r\n if (this._selectedFormProfile !== profileItem || !profileItem.selected)\r\n profileItem.select();\r\n\r\n const framesToLoadProfiles: {\r\n frame: IFrameWithFiltering;\r\n filterId: string | undefined | null;\r\n queryMode: boolean;\r\n }[] = [];\r\n\r\n try {\r\n const data: IFormProfileDataContainer = profileItem.data;\r\n\r\n for (const frame of this._getAllFramesWithProfiles()) {\r\n let profileInfo: IFrameProfileInfo;\r\n\r\n if (frame instanceof IFrameWithUniqueIAttribute) {\r\n profileInfo = data[frame.uniqueIAttrIdentifier] as IFrameProfileInfo;\r\n } else if (frame instanceof IFrame) {\r\n profileInfo = data[frame.frameName] as IFrameProfileInfo;\r\n }\r\n\r\n this._form.profileInfo = data.formProfileData;\r\n if (profileInfo) {\r\n frame.profileInfo = this._processProfileData(profileInfo);\r\n\r\n if (frame instanceof IFrameWithFiltering) {\r\n if (profileItem.storeFilters && profileInfo.filterId) {\r\n frame.isInitExecuteFilter = true;\r\n if (frame instanceof IFrameWithFiltering) {\r\n framesToLoadProfiles.push({ frame, filterId: profileInfo.filterId, queryMode: profileItem.queryMode });\r\n }\r\n } else {\r\n frame.filterManager?.clearFilter();\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const { frame, filterId, queryMode } of framesToLoadProfiles) {\r\n frame.initialized.add(() => {\r\n frame.loadProfile(filterId, queryMode);\r\n });\r\n }\r\n } catch (ex) {\r\n logger.error(ex);\r\n } finally {\r\n this._isProfileBeingLoaded = false;\r\n }\r\n }\r\n\r\n private _processProfileData(data: IFrameProfileInfo): IFrameProfileInfo {\r\n const orderBy = data.order;\r\n if (orderBy != null) {\r\n for (const o of orderBy) {\r\n // zachování zpětné kompatibility po přejmenování s existujícími profily\r\n if (Reflect.has(o, \"Order\") && Reflect.has(o, \"AttributeName\")) {\r\n o.order = (o as any).Order;\r\n (o as any).Order = undefined;\r\n o.attributeName = (o as any).AttributeName;\r\n (o as any).AttributeName = undefined;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Zahodí změny a znovu načte aktuální profil\r\n * @returns Vrací true, pokud znovu načten profil, jinak false\r\n */\r\n public async reloadActualProfile(): Promise {\r\n if (await this._form.checkAndSaveForm()) {\r\n if (this._selectedFormProfile) {\r\n this.loadProfile(this._selectedFormProfile);\r\n this._selectedFormProfile.isEdited = false;\r\n return true;\r\n } else\r\n throw new InvalidOperationException(\"ActualProfile is not set.\");\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Uložení aktuálního profilu formuláře. Vrací true v případě úspěchu\r\n */\r\n public async saveCurrentProfile(profile: FormProfileItem = null): Promise {\r\n if (profile.isImplementation && !this._canEditImplementationProfiles)\r\n return false;\r\n\r\n if (this._selectedFormProfile == null) {\r\n throw new InvalidOperationException(\"ActualProfile is not set.\");\r\n }\r\n\r\n UIManager.instance.showLoader();\r\n try {\r\n if (profile) {\r\n if (!await this.isProfileNameUnique(profile.id, profile.title)) { // kontrola, zda je některý z aktuálně použitých filtrů neuložený, a pokud není, tak zkontrolovat, zda již neexistuje takový, který má shodné jméno s názvem ukládaného profilu\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-623849\")); // Zobrazení s tímto názvem již existuje. Zkuste nějaký jiný.\r\n\r\n return false;\r\n }\r\n\r\n if (profile.default) {\r\n await this._unsetAllDefaultProfiles();\r\n }\r\n }\r\n\r\n if (!profile || (profile && !profile.basic)) {\r\n const profileObj = await OWManager.getObject(this._selectedFormProfile.id, \"UserProfile\", undefined);\r\n const dataContainer: IFormProfileDataContainer = await this._buildFormProfileData({ storeFilters: profile.storeFilters, isImplementation: profile.isImplementation, existingProfile: profile, profileName: profile.title });\r\n if (dataContainer === null) {\r\n return false;\r\n }\r\n dataContainer.formProfileData.queryMode = profile.queryMode;\r\n dataContainer.formProfileData.storeFilters = profile.storeFilters;\r\n\r\n const profileDataJSON = JSON.stringify(dataContainer);\r\n profileObj.setValue(\"Data\", profileDataJSON);\r\n profileObj.isChanged = true;\r\n if (profile) {\r\n const user = this._canEditImplementationProfiles && profile.isImplementation ? null : this._currentUserId;\r\n profileObj.setValue(\"User\", user);\r\n profileObj.setValue(\"Name\", profile.title);\r\n profileObj.setValue(\"IsDefault\", profile.default);\r\n profileObj.setValue(\"ShowInNavigationTree\", profile.showInNavigationTree);\r\n }\r\n await profileObj.applyUpdates();\r\n this._selectedFormProfile.jsonData = profileDataJSON;\r\n this._selectedFormProfile.data = dataContainer;\r\n this._selectedFormProfile.isEdited = false;\r\n this.profileUpdated.trigger(this, this._selectedFormProfile);\r\n }\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * ulozeni profilu formulare\r\n */\r\n public async saveNewProfile(profileParams: IProfileData): Promise {\r\n UIManager.instance.showLoader();\r\n try {\r\n const profileExists = await getDataReaderClient().exists(\"UserProfile\",\r\n \":UserProfile.ActualUserProfiles() AND DB.Upper(FormName) = DB.Upper(@0) AND DataType = @1 AND Name = @2\",\r\n [this._form.formName, \"FormProfileMW\", profileParams.name]);\r\n\r\n if (profileExists) {\r\n await MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-623849\")); // Zobrazení s tímto názvem již existuje. Zkuste nějaký jiný.\r\n\r\n return null;\r\n }\r\n\r\n if (profileParams.isDefault)\r\n await this._unsetAllDefaultProfiles();\r\n\r\n const newObj = await OWManager.newObject(\"UserProfile\", undefined);\r\n\r\n const user = this._canEditImplementationProfiles && profileParams.isImplementation ? null : this._currentUserId;\r\n if (!profileParams.name) {\r\n MessageWindow.showAlert(new LocalizedStringBuilder(\"GUI-749906\")); // Název profilu nesmí být prázdný\r\n return null;\r\n }\r\n\r\n const attributes = [\r\n { attributeName: \"User\", value: user },\r\n { attributeName: \"Name\", value: profileParams.name },\r\n { attributeName: \"IsDefault\", value: profileParams.isDefault },\r\n { attributeName: \"FormName\", value: this._form.formName },\r\n { attributeName: \"ShowInNavigationTree\", value: profileParams.showInNavigationTree },\r\n ];\r\n\r\n await newObj.setValues(attributes);\r\n const data = await this._buildFormProfileData({ storeFilters: profileParams.storeFilters, isImplementation: profileParams.isImplementation, profileName: profileParams.name });\r\n if (data === null) {\r\n return null;\r\n }\r\n\r\n data.formProfileData.queryMode = profileParams.queryMode;\r\n data.formProfileData.storeFilters = profileParams.storeFilters;\r\n\r\n const jsonData = JSON.stringify(data);\r\n newObj.setValue(\"Data\", jsonData);\r\n newObj.setValue(\"DataType\", \"FormProfileMW\");\r\n await newObj.applyUpdates();\r\n\r\n const newBasicProfileItem = new FormProfileBasicItem(newObj.id, profileParams.name, jsonData, JSON.parse(jsonData || null), profileParams.isDefault, profileParams.showInNavigationTree, !user);\r\n const newFormProfileItem = new FormProfileItem(this._form.formName, newBasicProfileItem);\r\n\r\n this._registerFormProfileItemEvents(newFormProfileItem);\r\n newFormProfileItem.select();\r\n this._profiles.push(newFormProfileItem);\r\n this.profileAdded.trigger(this, newFormProfileItem);\r\n\r\n if (newFormProfileItem.default)\r\n this._triggerDefaultProfileChanged(newFormProfileItem, true);\r\n\r\n return newFormProfileItem;\r\n } finally {\r\n UIManager.instance.hideLoader();\r\n }\r\n }\r\n\r\n /**\r\n * vycisteni profilu, smaze polozky v hornim menu a v menu stravy profilu\r\n */\r\n public clearProfiles(): void {\r\n // Prazdna metoda\r\n }\r\n\r\n /**\r\n * Odstraní profil\r\n */\r\n public async removeProfile(profile: FormProfileItem): Promise {\r\n if (profile && !profile.basic) {\r\n // smazani profilu z oblíbených\r\n if (this._form instanceof Form) {\r\n FormManager.instance.setProperty(FormManagerProperty.favoriteForm, { menuId: this._form.menuItemId, formName: this._form.formName, value: false, profile: profile });\r\n }\r\n\r\n const obj = await OWManager.getObject(profile.id, \"UserProfile\", undefined);\r\n await obj.delete();\r\n\r\n const indexToRemove = this._profiles.indexOf(profile);\r\n const itemToRemove = this._profiles[indexToRemove];\r\n itemToRemove.remove();\r\n this._eventsController.removeByKey(this._getFormProfileId(itemToRemove));\r\n this._profiles.splice(indexToRemove, 1);\r\n if (itemToRemove.selected) {\r\n // pokud je mazaný profil vybraný, načte se buď defaultní implementační nebo \"Základní\".\r\n if (itemToRemove.default && this.defaultImplementationProfile) {\r\n this.defaultImplementationProfile.default = true;\r\n }\r\n this.loadDefaultProfile();\r\n } else {\r\n if (itemToRemove.default) {\r\n // pokud je mazán nevybraný profil a je defaultní, nastaví se jako defaultní buď defaultní implementační nebo \"Základní\".\r\n if (this.defaultImplementationProfile) {\r\n this.defaultImplementationProfile.default = true;\r\n } else {\r\n this._basicFormProfileItem.default = true;\r\n }\r\n }\r\n }\r\n\r\n this.profileRemoved.trigger(this, profile);\r\n itemToRemove.dispose(); //dispose musíme volat až po zpracování posluchačů odebrání\r\n\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Označí aktuální profil jako upravený (neuložený)\r\n */\r\n public setActualProfileEdited(): void {\r\n if (this._selectedFormProfile)\r\n this._selectedFormProfile.isEdited = true;\r\n }\r\n\r\n /**\r\n * Označí aktuální profil jako neupravený (uložený)\r\n */\r\n public setActualProfileUnchanged(): void {\r\n if (this._selectedFormProfile)\r\n this._selectedFormProfile.isEdited = false;\r\n }\r\n\r\n /**\r\n * Nastaví \"Základní\" profil jako \"Výchozí\"\r\n */\r\n public setBasicProfileDefault(): void {\r\n if (this._basicFormProfileItem)\r\n this._basicFormProfileItem.default = true;\r\n }\r\n\r\n /**\r\n * Kontrola rozeditovanosti formuláře a případné zobrazení YNC.\r\n * Při zrušení/cancelu se zablokuje změna profilu.\r\n */\r\n private async _canSelectedItemChange(): Promise {\r\n return await this._form.checkAndSaveForm();\r\n }\r\n\r\n /**\r\n * Vrací seznam viditelných a zneviditelněných sloupců daného framu pro předaný nebo výchozí profil přidruženého formuláře\r\n * @param frameName Název framu\r\n * @returns Vrací dvě pole názvů viditelných a zneviditelněných sloupců. Nebo vrací null, pokud nebyl nalezen výchozí profil nebo předaný název framu\r\n */\r\n public getColumnsVisibilitiesByFrameName(frameName: string, profileId?: number): { visibleColumns: string[]; invisibleColumns: string[] } | null {\r\n const visibleColumns = [];\r\n const invisibleColumns = [];\r\n for (const profileItem of this.profiles) {\r\n if (((profileId) ? profileItem.id === profileId : profileItem.default) && profileItem.data) {\r\n if (profileItem.data[frameName] == null)\r\n return null;\r\n\r\n const frameColumns = (profileItem.data[frameName] as IFrameProfileInfo).columns;\r\n if (frameColumns == null)\r\n return null;\r\n\r\n for (const columnName of Object.keys(frameColumns)) {\r\n const columnValue = (profileItem.data[frameName] as IFrameProfileInfo).columns[columnName];\r\n if (columnValue) {\r\n if (columnValue.visible)\r\n visibleColumns.push(columnName);\r\n else if (columnValue.visible === false) { // explicitně kontrola false, null/undefined zahrnovat nechci\r\n invisibleColumns.push(columnName);\r\n }\r\n }\r\n }\r\n\r\n return { visibleColumns: visibleColumns, invisibleColumns: invisibleColumns };\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Vrací všechny profily s příznakem IsDefault. Korektně by měl být jen jeden.\r\n */\r\n private async _getDefaultProfiles(): Promise {\r\n return await getDataReaderClient().getDataRowsWithParams(\"UserProfile\",\r\n [\"ID\", \"Name\", \"Data\", \"IsDefault\", \"User\"],\r\n \":UserProfile.ActualUserProfiles() AND DB.Upper(FormName) = DB.Upper(@0) AND DataType = @1 AND IsDefault = @2\",\r\n { params: [this._form.formName, \"FormProfileMW\", true], dataLength: -1 });\r\n }\r\n\r\n /**\r\n * Všem stávajícím profilům s příznakem IsDefault jej odebere (i na DB).\r\n */\r\n private async _unsetAllDefaultProfiles(): Promise {\r\n const defaultProfiles = await this._getDefaultProfiles();\r\n if (defaultProfiles.length > 0) {\r\n for (const defaultProfile of defaultProfiles) {\r\n const profileObject = await OWManager.getObject(defaultProfile.ID.valueOf(), \"UserProfile\", undefined);\r\n if ((await profileObject.getValue(\"User\")) instanceof NullOWObject && !this.canEditImplementationProfiles) {\r\n // Pokud profil nemá uživatele, jedná se o implementační profil.\r\n // Pokud uživatel nemá právo pro editaci implementačních profilů, pokračujeme na další.\r\n continue;\r\n }\r\n profileObject.isChanged = true;\r\n profileObject.setValue(\"IsDefault\", false);\r\n await profileObject.applyUpdates();\r\n }\r\n }\r\n }\r\n\r\n public async isProfileNameUnique(profileId: number, name: string): Promise {\r\n const savedProfiles = await getDataReaderClient().getDataRowsWithParams(\"UserProfile\",\r\n [\"ID\", \"Name\", \"Data\", \"IsDefault\"],\r\n \":UserProfile.ActualUserProfiles() AND NOT(ID = @0) AND Name = @1 AND DB.Upper(FormName) = DB.Upper(@2) AND DataType = @3\",\r\n { params: [profileId, name, this._form.formName, \"FormProfileMW\"], dataLength: -1 });\r\n\r\n return savedProfiles.length <= 0;\r\n }\r\n\r\n /**\r\n * Získá id z položky profilu formuláře a převede ho na string. Podporuje i výchozí položky, které mají id nastavené na null.\r\n * Pro takové vrací \"null\".\r\n * @param formProfileItem\r\n * @private\r\n */\r\n private _getFormProfileId(formProfileItem: FormProfileItem): string {\r\n return `${formProfileItem.id}`;\r\n }\r\n\r\n public dispose(): void {\r\n this._eventsController?.dispose();\r\n this._profiles?.forEach(profile => profile.dispose());\r\n }\r\n}\r\n","import { Event, StatefulEvent } from \"../../../../../Global/Base/Events\";\r\nimport { OWObject } from \"../../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { SaveResultData } from \"../../../../UI.Controls/DataSource/EditableDBDataSource\";\r\nimport { ComponentTreeType } from \"../../../LogicalTree/Definitions\";\r\nimport { FrameSelChanged, IActualObjectChangedEventArgs } from \"../Frames\";\r\nimport { IFrame, IFrameWithRights } from \"../IFrame\";\r\nimport { IMasterableFrame, IMasterableFrameWithDataGrid } from \"./FrameInterfaces\";\r\n\r\n/**\r\n * Rozhraní pro obecnou implementaci framu, ktery obsahuje detail\r\n *\r\n * @includeToDoc\r\n */\r\nexport interface IDetailMasterableFrame extends IMasterableFrame {\r\n detail: IFrame | null;\r\n detailForm: string | null;\r\n\r\n readonly selectionChanged: Event;\r\n readonly changesCanceled: Event;\r\n readonly recordChangesCanceled: Event;\r\n readonly editingRow: Event;\r\n readonly actualObjectChanged: Event;\r\n readonly actualObjectSaved: Event;\r\n readonly actualObjectValueChanged: Event;\r\n readonly initialized: StatefulEvent;\r\n readonly dataLoaded: Event;\r\n readonly dataLoadingCancelled: Event;\r\n readonly dataLoadingFailed: Event;\r\n /**\r\n * TODO-rites: ? bude potřeba?\r\n */\r\n readonly detailComponentTree: ComponentTreeType | null;\r\n\r\n /**\r\n * Příznak, jestli je detail otevřen v modálním okně\r\n * @internal\r\n */\r\n hasOpenedDetailInModal?: boolean;\r\n /**\r\n * Příznak zda form podporuje editaci více záznamů současně\r\n * @internal\r\n */\r\n supportsMultiEditing?: boolean;\r\n}\r\n\r\nexport class IDetailMasterableFrame {\r\n private static _properties = [\r\n \"detail\", \"detailForm\", \"selectionChanged\", \"changesCanceled\", \"recordChangesCanceled\", \"editingRow\",\r\n \"actualObjectChanged\", \"actualObjectSaved\", \"actualObjectValueChanged\",\r\n \"initialized\", \"dataLoaded\", \"dataLoadingCancelled\", \"dataLoadingFailed\", \"detailComponentTree\",\r\n ];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IMasterableFrame;\r\n }\r\n}\r\n\r\n/**\r\n * Interface pro použiti z DetailFrame\r\n *\r\n * @generateInstanceClass\r\n */\r\nexport interface IDetailFrame extends IFrameWithRights {\r\n readonly canUseLikeDetail: boolean;\r\n readonly detailResized: Event;\r\n readonly actualObjectChanged: Event;\r\n readonly actualObjectValueChanged: Event;\r\n readonly changesCanceled: Event;\r\n readonly editingRow: Event;\r\n /**\r\n * TODO-rites: ? bude potřeba?\r\n */\r\n readonly mastersSuperComponentTree: ComponentTreeType | null;\r\n // Příznak, že se má pro práva ignorovat master. Třída na něm může mít s třídou objektu v detailu vztah předek - potomek a tím pádem jinak nastavená práva.\r\n readonly ignoreMasterRightsObject?: boolean;\r\n setDetailToEditMode(isEditing: boolean, alsoMasterListFrame: boolean): Promise;\r\n}\r\n\r\nexport class IDetailFrame {\r\n private static _properties: (keyof (IDetailFrame))[] = [\"canUseLikeDetail\", \"detailResized\", \"actualObjectChanged\", \"actualObjectValueChanged\", \"changesCanceled\", \"editingRow\", \"mastersSuperComponentTree\"];\r\n private static _methods: (keyof (IDetailFrame))[] = [\"setDetailToEditMode\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\") && instance instanceof IFrame;\r\n }\r\n}\r\n\r\n/**\r\n * Interface pro použiti z SeparateDetailFrame\r\n *\r\n * @generateInstanceClass\r\n */\r\nexport interface ISeparateDetailFrame extends IDetailFrame {\r\n readonly canUseLikeSeparateDetailFrame: boolean;\r\n readonly hideCloseButton: boolean;\r\n}\r\n\r\nexport class ISeparateDetailFrame {\r\n private static _properties = [\"canUseLikeSeparateDetailFrame\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) && instance instanceof IFrame;\r\n }\r\n}\r\n\r\n/**\r\n * Interface pro samostatně uložitelný detail\r\n * @generateInstanceClass\r\n */\r\nexport interface ISaveable {\r\n /** Uloží záznam/objekt/frame */\r\n save(skipSavingEditContextId?: boolean): Promise;\r\n}\r\n\r\nexport class ISaveable {\r\n private static _properties: (keyof (ISaveable))[] = [];\r\n private static _methods: (keyof (ISaveable))[] = [\"save\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n\r\n/**\r\n * @includeToDoc\r\n * @generateInstanceClass\r\n */\r\nexport interface ICalendarFrame extends IDetailMasterableFrame, IMasterableFrameWithDataGrid {\r\n /**\r\n * Aktuální dataGrid, pokud jich má frame víc\r\n */\r\n actualObjectComplexKey: string;\r\n /**\r\n * Návratové hodnoty:\r\n * null - uložení proběhlo v pořádku\r\n * prázdné pole - uložení se nepodařilo, ale není co zpracovat\r\n * naplněné pole - vrací vyjímky vzniklé při ukládání\r\n * @param id Pokud je vyplněn, uloží pouze jeden záznam. V opačném případě ukládá všechny rozeditované objekty.\r\n */\r\n saveRecords(id?: string, checkRecommended?: boolean): Promise;\r\n /**\r\n * Zruší editaci\r\n */\r\n cancelChanges(): Promise;\r\n}\r\n\r\nexport class ICalendarFrame {\r\n private static _properties = [\"actualObjectComplexKey\"];\r\n private static _methods: (keyof (ICalendarFrame))[] = [\"saveRecords\", \"cancelChanges\"];\r\n\r\n public static [Symbol.hasInstance](instance: any): boolean {\r\n return instance != null && !this._properties.some((value) => !Reflect.has(instance, value)) &&\r\n !this._methods.some(value => typeof instance[value] !== \"function\");\r\n }\r\n}\r\n","import { AppContext } from \"App\";\r\n\r\nimport { createDeleteFormAction, createInitFormAction } from \"@multiweb/forms\";\r\nimport { bridge } from \"@multiweb/reactCore/bridge\";\r\nimport { StoreManager } from \"@multiweb/reactSetup\";\r\nimport { DataConverter } from \"Global/Base/Converters/DataConverter\";\r\nimport { GenericControl } from \"UI/UI.BaseControls/GenericControl\";\r\nimport { IFormRight } from \"UI/UI/Rights/FormRight\";\r\nimport { getExtendedPropertiesFromElement, getTagsFromElement } from \"UI/utils\";\r\nimport { AwaitableStandardEvent, Event } from \"../../../../Global/Base/Events\";\r\nimport { NotImplementedException } from \"../../../../Global/Base/Exceptions\";\r\nimport { IDisposable } from \"../../../../Global/Base/IDisposable\";\r\nimport { OWObject } from \"../../../../OW.Remoting/Remoting/DataTypes/OWObject\";\r\nimport { IRightConditionItem } from \"../../../../OW.Remoting/Remoting/Rights\";\r\nimport { FormControlParams, IHTMLElementWithControl } from \"../Controls/ControlInterfaces\";\r\nimport { IFRMParams } from \"../Controls/FormParameters\";\r\nimport { SidePanel } from \"../Controls/SidePanel\";\r\nimport { IFormUI } from \"../FormUI/FormUI\";\r\nimport { UIManager } from \"../UIManager\";\r\nimport { FormContext, IWindowable, WindowState } from \"../UIManagerInterfaces\";\r\nimport { OpenModeType } from \"./Actions/DetailFormAction\";\r\nimport { FilterPanel } from \"./Filters/FilterPanel\";\r\nimport { FormControl } from \"./FormControl\";\r\nimport { FormProfileManager } from \"./Forms/FormProfileManager\";\r\nimport { FormResult } from \"./Forms/FormResult\";\r\nimport { IFormProfileInfo } from \"./Forms/IFormProfileInfo\";\r\nimport { IFormProfileManager } from \"./Forms/IFormProfileManager\";\r\nimport { IFrameWithProfile, IMasterableFrame } from \"./Frames/FrameInterfaces\";\r\nimport { IDetailFrame } from \"./Frames/IDetailMasterableFrame\";\r\nimport { IForm, IFormClosingCancelledEventArgs, IFormSavingParameters } from \"./IForm\";\r\nimport { IFrame } from \"./IFrame\";\r\n\r\nconst { dispatchAction } = bridge;\r\n\r\n/**\r\n * Parametry konstruktoru tridy {@link BaseForm}.\r\n */\r\nexport type BaseFormParams = FormControlParams & {\r\n formInstanceId: string;\r\n registerToBrowserHistory?: boolean;\r\n};\r\n\r\nexport abstract class BaseForm extends FormControl implements IForm {\r\n //#region Fields\r\n public readonly formName: string;\r\n public readonly formInstanceId: string;\r\n public readonly profileId: string;\r\n public readonly height: number;\r\n public readonly width: number;\r\n public readonly isPreviewMode: boolean;\r\n public readonly lovFrame: string | undefined;\r\n\r\n public readonly formProfileChanged: Event = new Event();\r\n public readonly framesInitialized: Event = new Event();\r\n\r\n /** Vrací kontext formuláře spolu s rolemi, které měly právo formulář zobrazit v menu */\r\n private _formContext: FormContext;\r\n public openMode: OpenModeType = OpenModeType.standard;\r\n public masterObjectChanged: Event = new Event();\r\n public onDoOpen: Event = new Event();\r\n //#region IWindowableEvents\r\n public stateChanged: Event = new Event();\r\n public closed: Event = new Event();\r\n public closing: Event = new Event();\r\n public closingPreview: AwaitableStandardEvent = new AwaitableStandardEvent();\r\n public closingCancelled: Event = new Event();\r\n //#endregion IWindowableEvents\r\n public childOpened: Event = new Event(); // Událost vyvolaná pokud se otevře child tohoto formuláře\r\n public childClosed: Event = new Event();\r\n public readOnlyChanged: Event = new Event();\r\n /** Je vyvolána v případě, kdy došlo ke změně titulku formuláře */\r\n public titleChanged: Event = new Event();\r\n\r\n protected _isDetailForm: boolean = false;\r\n public get isDetailForm(): boolean {\r\n return this._isDetailForm;\r\n }\r\n\r\n public setAttributesOnNewObject: string;\r\n public showDetail: boolean = true;\r\n\r\n public hideWindowActions: boolean;\r\n public visibleOnlyDetail: boolean = false;\r\n public filterPanel: FilterPanel = new FilterPanel();\r\n public formSettingsPanel: SidePanel = new SidePanel();\r\n\r\n public viewMode: boolean = undefined;\r\n\r\n private _formUI: IFormUI;\r\n public get formUI(): IFormUI {\r\n return this._formUI;\r\n }\r\n public set formUI(value: IFormUI) {\r\n this._formUI = value;\r\n }\r\n\r\n public canClose: boolean = false;\r\n public subtitle: string = \"\";\r\n\r\n /**\r\n * Seznam podmínek z definice formuláře\r\n */\r\n public conditionItems: IRightConditionItem[] = new Array();\r\n public usedConditionItemsId: Array = new Array();\r\n\r\n protected readonly _frames: FramesArray;\r\n protected readonly _profileManager: IFormProfileManager;\r\n protected readonly _masterableFrames: IMasterableFrame[];\r\n protected readonly _topLevelFrames: Array