herum-shared 0.1.36 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"herum-shared-utils.mjs","sources":["../../../projects/herum-shared/utils/array.ts","../../../projects/herum-shared/utils/assignment.ts","../../../projects/herum-shared/utils/comparers.ts","../../../projects/herum-shared/utils/date.ts","../../../projects/herum-shared/utils/element.ts","../../../projects/herum-shared/utils/file.ts","../../../projects/herum-shared/utils/browser.ts","../../../projects/herum-shared/utils/hierarchy.ts","../../../projects/herum-shared/utils/number.ts","../../../projects/herum-shared/utils/object.ts","../../../projects/herum-shared/utils/request-helpers.ts","../../../projects/herum-shared/utils/style.ts","../../../projects/herum-shared/utils/subscription.ts","../../../projects/herum-shared/utils/string.ts","../../../projects/herum-shared/utils/herum-shared-utils.ts"],"sourcesContent":["import { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\nexport const flatten = <T>(arr: T[][]): T[] => {\r\n if (!arr)\r\n return [];\r\n\r\n return arr.reduce((acc, cur) => acc.concat(cur), []);\r\n};\r\n\r\nexport const findKeyByValue = (array: {}[], value: any) => {\r\n const entry = array.find(object => Object.values(object).includes(value));\r\n return entry ? Object.keys(entry)[0] : undefined;\r\n};\r\n\r\nexport const parseToIdentifiedEntitiesArray = (array: string[]): IdentifiedEntity[] => {\r\n return array.map((name, index) => { return { name, id: index.toString() } });\r\n};","export const getAssignmentStateDisplayName = (state) => {\n return state == 0 ? 'שיבוץ זמני' : state == 1 ? 'אכ\"א' : 'אג\"ת';\n};\n","import { cloneDeep } from \"lodash\";\r\n\r\nexport type ListsDiffs<Item extends { [innerItemProperty: string]: { id: string } } | {}> = { deletedItems: Item[], newItems: Item[], updatedItems: Item[] };\r\n\r\nexport const getDifferencesInObjects = <MainObject, ObjectToCheck>(mainObject: MainObject, comparedObject: ObjectToCheck) => {\r\n let changedFieldsObject: { [key: string]: any[] } = {};\r\n Object.keys(comparedObject).forEach(key => {\r\n if (Array.isArray(comparedObject[key]) && mainObject[key])\r\n changedFieldsObject[key] = mainObject[key].filter(item => !comparedObject[key].map(object => object.id).includes(item.id));\r\n\r\n if (!changedFieldsObject[key]?.length)\r\n delete changedFieldsObject[key];\r\n })\r\n\r\n return changedFieldsObject;\r\n};\r\n\r\nexport const removeCommonObjectsBetweenArrays = <MainItem extends { id: string; }, CheckedItem extends { id: string; }>(mainArray: MainItem[], checkedArray: CheckedItem[]): MainItem[] => {\r\n const clonedMainArray: MainItem[] = cloneDeep(mainArray);\r\n return clonedMainArray.filter(mainItem => !checkedArray.some(comparedItem => comparedItem.id === mainItem.id));\r\n};\r\n\r\nexport const removeCommonItemsInObjectsFields = (mainObject: { [key: string]: any }, secondaryObject: { [key: string]: any }) => {\r\n const mainKeys: string[] = Object.keys(mainObject);\r\n const secondaryKeys: string[] = Object.keys(secondaryObject);\r\n\r\n mainKeys.forEach(mainKey => {\r\n const mainValue = mainObject[mainKey];\r\n\r\n if (Array.isArray(mainValue)) {\r\n const mainItemsIds = mainValue.map(item => item.id);\r\n\r\n secondaryKeys.forEach(secondaryKey => {\r\n const secondaryValue = secondaryObject[secondaryKey];\r\n\r\n if (Array.isArray(secondaryValue)) {\r\n const uniqueItems = secondaryValue.filter(item => !mainItemsIds.includes(item.id));\r\n secondaryObject[secondaryKey] = uniqueItems;\r\n\r\n if (!secondaryObject[secondaryKey].length)\r\n delete secondaryObject[secondaryKey];\r\n }\r\n });\r\n }\r\n });\r\n\r\n return secondaryObject;\r\n};\r\n\r\nexport const getDifferencesInLists = <Item extends { [innerItemProperty: string]: { id: string } } | {}>(sourceList: Item[], editedList: Item[], innerItemProperty: string): ListsDiffs<Item> => {\r\n const newItems = editedList.filter(\r\n newItem => !sourceList.some(sourceItem => sourceItem[innerItemProperty]?.id === newItem[innerItemProperty]?.id)\r\n );\r\n const deletedItems = sourceList.filter(\r\n sourceItem => !editedList.some(newItem => newItem[innerItemProperty]?.id === sourceItem[innerItemProperty]?.id)\r\n );\r\n\r\n const updatedItems = editedList.filter(item => {\r\n const prev = sourceList.find(sourceItem => sourceItem[innerItemProperty]?.id === item[innerItemProperty]?.id);\r\n\r\n return prev && JSON.stringify(prev) !== JSON.stringify(item);\r\n });\r\n\r\n return { deletedItems: deletedItems, newItems: newItems, updatedItems: updatedItems };\r\n};\r\n\r\nexport const removeDuplicatesBetweenArrays = <Item>(mainArray: Item[], otherArray: Item[]): Item[] => {\r\n const getUserId = (u: any) => u?.user?.id ?? u?.id;\r\n const clonedOtherArray: Item[] = Array.isArray(otherArray) ? cloneDeep(otherArray) : [];\r\n const clonedMainArray: Item[] = Array.isArray(mainArray) ? cloneDeep(mainArray) : [];\r\n\r\n const mergedArrays = [...clonedMainArray, ...clonedOtherArray].filter((user, index, arr) => arr.findIndex((u) => getUserId(u) === getUserId(user)) === index);\r\n\r\n return mergedArrays;\r\n};","import { MicroResourceAuthorizationBase } from 'herum-shared/herum-types';\r\n\r\nexport const convertToDate = (dateString: string) => {\r\n const date = new Date(dateString);\r\n\r\n const day = date.getDate();\r\n const month = date.getMonth() + 1;\r\n const year = date.getFullYear();\r\n\r\n if (day == 1 && month == 1 && year == 1) return '(התאריך לא קיים)'\r\n\r\n return `${day}/${month}/${year}`;\r\n};\r\n\r\nexport const generateNewTimeStamp = () => {\r\n let date = new Date();\r\n\r\n let year = date.getUTCFullYear();\r\n let month = String(date.getUTCMonth() + 1).padStart(2, '0');\r\n let day = String(date.getUTCDate()).padStart(2, '0');\r\n let hours = String(date.getUTCHours()).padStart(2, '0');\r\n let minutes = String(date.getUTCMinutes()).padStart(2, '0');\r\n let seconds = String(date.getUTCSeconds()).padStart(2, '0');\r\n let milliseconds = String(date.getUTCMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}Z`;\r\n};\r\n\r\nexport const updateFullYear = (dateToUpdate: Date, date: Date) => {\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n dateToUpdate.setFullYear(year, month, day);\r\n\r\n return dateToUpdate;\r\n};\r\n\r\nexport const getMicroResourceTextualTimeString = (microResourceAuthorization: MicroResourceAuthorizationBase): string => {\r\n if (!microResourceAuthorization) return 'לא קיים'\r\n const now = new Date();\r\n let isOpeningTimePass = microResourceAuthorization.openingTime && new Date(microResourceAuthorization.openingTime).getTime() < now.getTime();\r\n let isClosingTimePass = microResourceAuthorization.closingTime && new Date(microResourceAuthorization.closingTime).getTime() < now.getTime();\r\n\r\n if (isClosingTimePass && isOpeningTimePass) return 'סגור';\r\n\r\n let time: Date = new Date(isOpeningTimePass ? microResourceAuthorization.closingTime : microResourceAuthorization.openingTime)\r\n let res: string;\r\n\r\n const diff = Math.abs(time.getTime() - now.getTime());\r\n const seconds = Math.floor(diff / 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 const weeks = Math.floor(days / 7);\r\n const months = Math.floor(days / 30);\r\n const years = Math.floor(days / 365);\r\n\r\n if (isOpeningTimePass) {\r\n time = new Date(microResourceAuthorization.closingTime)\r\n if (years > 10) return 'פתוח'\r\n\r\n res = \"יסגר בעוד \"\r\n }\r\n else {\r\n time = new Date(microResourceAuthorization.openingTime);\r\n if (isNaN(time.getTime())) return 'סגור';\r\n if (years > 10) return 'סגור'\r\n\r\n res = \"יפתח בעוד \"\r\n }\r\n\r\n if (years != 0)\r\n res += `${years} שנים`;\r\n else if (months != 0)\r\n res += `${months} חודשים`;\r\n else if (weeks != 0)\r\n res += `${weeks} שבועות`;\r\n else if (days != 0)\r\n res += `${days} ימים`;\r\n else if (hours != 0)\r\n res += `${hours} שעות`;\r\n else if (minutes != 0)\r\n res += `${minutes} דקות`;\r\n else if (seconds != 0)\r\n res += `${seconds} שניות`;\r\n else\r\n return res.split(\" \")[0] + ' עכשיו';\r\n return res;\r\n};\r\n\r\nexport const getTimeAsAgo = (time: Date) => {\r\n const diff = new Date().getTime() - time.getTime();\r\n const seconds = Math.floor(diff / 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 const weeks = Math.floor(days / 7);\r\n const months = Math.floor(days / 30);\r\n const years = Math.floor(days / 365);\r\n\r\n let res = 'לפני ';\r\n if (years != 0)\r\n res += `${years} שנים`;\r\n else if (months != 0)\r\n res += `${months} חודשים`;\r\n else if (weeks != 0)\r\n res += `${weeks} שבועות`;\r\n else if (days != 0)\r\n res += `${days} ימים`;\r\n else if (hours != 0)\r\n res += `${hours} שעות`;\r\n else if (minutes != 0)\r\n res += `${minutes} דקות`;\r\n else if (seconds != 0)\r\n res += `${seconds} שניות`;\r\n else\r\n res = ' עכשיו';\r\n\r\n return res;\r\n};","import { ElementRef, QueryList } from \"@angular/core\";\r\nimport { EntitiesLayoutProperties } from 'herum-shared/herum-types';\r\n\r\nconst entityGap: number = 12;\r\n\r\nexport const isTruncatedTitleElement = (element: HTMLElement): boolean => {\r\n const renderedWidth = element.offsetWidth;\r\n const scrollWidth = element.scrollWidth;\r\n\r\n return element.innerText.includes('...') || renderedWidth < scrollWidth || element.scrollHeight > element.offsetHeight;\r\n};\r\n\r\nexport const getEntitiesLayoutProperties = (entitiesWrapperElement: ElementRef, entitiesElement: QueryList<ElementRef>, entities: unknown[], entitiesWrapperHeight?: number): EntitiesLayoutProperties => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n const entitiesWrapperWidth = entitiesWrapper.clientWidth;\r\n\r\n entitiesWrapperHeight = entitiesWrapperHeight ?? entitiesWrapper.clientHeight;\r\n\r\n const entityWidth = entitiesElement.first.nativeElement.offsetWidth;\r\n const entityHeight = entitiesElement.first.nativeElement.offsetHeight;\r\n\r\n const columns = Math.max(1, Math.floor((entitiesWrapperWidth + entityGap) / (entityWidth + entityGap)));\r\n let rows = Math.max(1, Math.floor((entitiesWrapperHeight + entityGap) / (entityHeight + entityGap)));\r\n\r\n const numberOfElementsInPage = rows * columns;\r\n const totalPages = Math.ceil(entities.length / numberOfElementsInPage);\r\n\r\n return { numberOfElementsInPage, totalPages, columns, rows, entityWidth, entityHeight, entitiesWrapperHeight, entitiesWrapperWidth };\r\n};\r\n\r\nexport const setElementsGridStyle = (entitiesWrapperElement: ElementRef, layoutProperties: EntitiesLayoutProperties) => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n let { columns, rows, entityWidth, entityHeight, entitiesWrapperWidth, entitiesWrapperHeight } = layoutProperties;\r\n\r\n const columnGap = (entitiesWrapperWidth - columns * entityWidth) / columns - 1;\r\n const rowGap = (entitiesWrapperHeight - rows * entityHeight) / rows - 1;\r\n\r\n let gap = Math.min(columnGap, rowGap);\r\n gap = gap < entityGap ? entityGap : gap;\r\n\r\n entitiesWrapper.style.gridTemplateColumns = `repeat(${columns}, ${entityWidth}px)`;\r\n entitiesWrapper.style.gridTemplateRows = `repeat(${rows}, ${entityHeight}px)`;\r\n entitiesWrapper.style.gridAutoRows = `${entityHeight} px`;\r\n entitiesWrapper.style.gap = `${gap}px`;\r\n};\r\n\r\nexport const setNavFlexLayoutStyle = (entitiesSectionElement: ElementRef, entitiesWrapperElement: ElementRef, showNavButtons: boolean, navButtonsWidth: number) => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n\r\n entitiesWrapper.style.width = `calc(100% - ${showNavButtons || entitiesWrapper.style.display === 'grid' ? navButtonsWidth : 0}px)`;\r\n\r\n if (entitiesWrapper.style.display !== 'flex') {\r\n entitiesSectionElement.nativeElement.style.alignItems = 'center';\r\n\r\n entitiesWrapper.style.display = 'flex';\r\n entitiesWrapper.style.gap = `${entityGap}px`;\r\n entitiesWrapper.style.justifyContent = 'normal';\r\n }\r\n};\r\n\r\nexport const setNavFlexLayout = (entitiesSectionElement: ElementRef, entitiesWrapperElement: ElementRef, navButtonElement: ElementRef, entitiesElement: QueryList<ElementRef>) => {\r\n const entitiesSectionElementWidth = entitiesSectionElement.nativeElement.clientWidth;\r\n const cardWidth = entitiesElement.first?.nativeElement?.clientWidth;\r\n\r\n const navButtonsWidth = navButtonElement?.nativeElement?.offsetWidth ?? 0;\r\n\r\n const availableWidth = entitiesSectionElementWidth - navButtonsWidth;\r\n const numberOfElementsInPage = Math.max(1, Math.floor((availableWidth + entityGap) / (cardWidth + entityGap)));\r\n\r\n const showNavButtons = entitiesElement?.length - numberOfElementsInPage > 0;\r\n setNavFlexLayoutStyle(entitiesSectionElement, entitiesWrapperElement, showNavButtons, navButtonsWidth);\r\n\r\n return numberOfElementsInPage;\r\n};\r\n","export const getDeserializedFile = async (response: Response, fileName: string, fileType?: string) => {\n const blob = await response.blob();\n return new File([blob], fileName, { type: fileType ?? blob.type });\n};\n\nexport const downloadFile = (fileName: string, data: File | Blob) => {\n const objectUrl = URL.createObjectURL(data);\n const anchorElement = document.createElement('a');\n anchorElement.href = objectUrl;\n anchorElement.download = fileName;\n anchorElement.click();\n\n anchorElement.remove();\n URL.revokeObjectURL(objectUrl);\n};","import { regexExpressions } from \"herum-shared/constants\";\r\n\r\nexport const getBrowserVersion = (browserRegexExp: RegExp): number | undefined => {\r\n let browserVersionMatchResult: RegExpMatchArray = navigator.userAgent.match(browserRegexExp);\r\n return browserVersionMatchResult ? parseInt(browserVersionMatchResult[1], 10) : undefined;\r\n};\r\n\r\n\r\nexport const getChromeVersion = () => {\r\n const userAgent = navigator.userAgent;\r\n const match = userAgent.match(regexExpressions.chromeVersionRegex);\r\n if (match)\r\n return match[1];\r\n\r\n return undefined;\r\n};","import { FullHierarchyPartsPlaces } from 'herum-shared/herum-types';\n\nexport const getHierarchyPartIfExist = (parts: string[], part: FullHierarchyPartsPlaces) => {\n return parts.length > part ? parts[part] : '';\n};\n","export const bytesToMegabytes = (bytes: number): number => {\r\n return bytes / (1024 ** 2);\r\n};","import { types } from \"herum-shared/constants\";\r\n\r\nexport const remainJustWantedValueInDictionary = (wantedValue: string, fields: { [key: string]: any }) => {\r\n let object = {};\r\n\r\n Object.entries(fields).forEach(([key, value]) => {\r\n (Array.isArray(value)) ?\r\n object[key] = value.map(item => (typeof item === types.object ? { [wantedValue]: item[wantedValue] } : { [wantedValue]: item }))\r\n :\r\n object[key] = (typeof value === types.object ? { [wantedValue]: value[wantedValue] } : value);\r\n\r\n });\r\n return object;\r\n};\r\n\r\nexport const removeUnwantedProperties = (baseObject: any, wantedProperties: string[]) => {\r\n let unwantedProperties = Object.keys(baseObject).filter(property => !wantedProperties.includes(property))\r\n unwantedProperties.forEach(property => delete baseObject[property])\r\n return baseObject;\r\n};","import { HttpHeaders } from \"@angular/common/http\";\r\nimport { uploadsManagerKeys } from \"herum-shared/constants\";\r\nimport { DependentMetadata } from 'herum-shared/herum-types';\r\n\r\nconst minuteInMilliseconds: number = 60 * 1000;\r\nconst safetyMarginInMilliseconds: number = 2 * 60 * 1000;\r\n\r\nexport const buildPath = (parts: string[]) => {\r\n return parts.reduce((path, part) => {\r\n return path + '/' + part;\r\n }, '').slice(1);\r\n};\r\n\r\nexport const setHeaders = (headers: HttpHeaders, headersToSet: { key: string, value: any }[], isEncodeURIComponent?: boolean): HttpHeaders => {\r\n headersToSet.forEach(headerToSet => {\r\n headers = headers.set(headerToSet.key, isEncodeURIComponent ? encodeURIComponent((headerToSet.value).toString()) : (headerToSet.value).toString());\r\n });\r\n return headers;\r\n};\r\n\r\nexport const convertDependentMetadataToHeaders = (dependentMetadata: DependentMetadata) => {\r\n if (dependentMetadata)\r\n var { dependentId, commonDependentsId, numberOfObservableArrowFunctions } = dependentMetadata;\r\n\r\n let headers: HttpHeaders = new HttpHeaders();\r\n\r\n if (dependentId) {\r\n headers = setHeaders(headers, [\r\n { key: uploadsManagerKeys.dependentIdHeader, value: dependentId },\r\n { key: uploadsManagerKeys.commonDependentsIdHeader, value: commonDependentsId },\r\n { key: uploadsManagerKeys.numberOfObservableArrowFunctionsHeader, value: numberOfObservableArrowFunctions }\r\n ]);\r\n }\r\n\r\n return headers;\r\n};\r\n\r\nexport const getVersionPathParameter = (lastUpdateTime: Date) => {\r\n if (!lastUpdateTime) return;\r\n return (Date.now() - lastUpdateTime?.getTime() < 10 * minuteInMilliseconds + safetyMarginInMilliseconds) ? `?v=${lastUpdateTime?.toISOString()}` : '';\r\n};","export const convertHeightToPixels = (value: string): number => {\n const numberValue: number = parseInt(value, 10);\n\n if (value.endsWith('vh'))\n return numberValue * (window.innerHeight / 100);\n else if (value.endsWith('px'))\n return numberValue;\n\n return numberValue;\n};\n\nexport const getDropdownAnimationStates = (\n isDropdownOpen: boolean,\n dropDownDirection: 'upwards' | 'downwards'\n) => {\n if (isDropdownOpen)\n return dropDownDirection === 'upwards' ? 'openUp' : 'openDown';\n\n return dropDownDirection === 'upwards' ? 'closeDown' : 'closeUp';\n};","import { CollectionSubscription, ResourceSubscription } from 'herum-shared/herum-types';\n\nexport const getSubscriptionWithLastActivityTime = (\n subscriptions: CollectionSubscription[] | ResourceSubscription[]\n): CollectionSubscription => {\n if (!subscriptions?.length)\n return null;\n\n return (subscriptions as CollectionSubscription[])?.reduce((max, subscription) => {\n return (new Date(subscription.lastActivityTime) > new Date(max.lastActivityTime)) ? subscription : max;\n });\n};\n\nexport const getLastSubscriptionByField = (\n subscriptions: CollectionSubscription[] | ResourceSubscription[],\n field: string\n): CollectionSubscription => {\n if (!subscriptions?.length)\n return null;\n\n return (subscriptions as CollectionSubscription[])?.reduce((max, subscription) => {\n return (new Date(subscription[field]) > new Date(max[field])) ? subscription : max;\n });\n};","import { regexExpressions } from \"herum-shared/constants\";\r\n\r\nimport jsSHA from 'jssha';\r\n\r\nexport const toHash = (source: string) => {\r\n let shaObj = new jsSHA('SHA-256', 'TEXT');\r\n shaObj.update(source);\r\n let hash = shaObj.getHash('HEX');\r\n\r\n return hash;\r\n};\r\n\r\nexport const toFirstCapitalLetter = (text: string) => {\r\n return text[0].toUpperCase() + text.slice(1);\r\n};\r\n\r\nexport const toFirstLowerCaseLetter = (text: string) => {\r\n if (!text) return;\r\n return text[0].toLocaleLowerCase() + text.slice(1);\r\n};\r\n\r\nexport const camelCaseToPascalCase = (camelCase: string) => {\r\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\r\n};\r\n\r\nexport const capitalizeWord = (word: string): string => {\r\n return word.charAt(0).toUpperCase() + word.slice(1);\r\n};\r\n\r\nexport const replaceInterpolateKeysWithObjectProperties = (string: string, object: Object): string => {\r\n const matches = string.match(regexExpressions.templateInterpolation);\r\n\r\n if (matches)\r\n matches.forEach((match) => { const key = match.slice(2, -2); string = string.replace(match, object[key]) });\r\n\r\n return string;\r\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"herum-shared-utils.mjs","sources":["../../../projects/herum-shared/utils/array.ts","../../../projects/herum-shared/utils/assignment.ts","../../../projects/herum-shared/utils/comparers.ts","../../../projects/herum-shared/utils/date.ts","../../../projects/herum-shared/utils/element.ts","../../../projects/herum-shared/utils/file.ts","../../../projects/herum-shared/utils/browser.ts","../../../projects/herum-shared/utils/hierarchy.ts","../../../projects/herum-shared/utils/number.ts","../../../projects/herum-shared/utils/object.ts","../../../projects/herum-shared/utils/request-helpers.ts","../../../projects/herum-shared/utils/style.ts","../../../projects/herum-shared/utils/subscription.ts","../../../projects/herum-shared/utils/string.ts","../../../projects/herum-shared/utils/herum-shared-utils.ts"],"sourcesContent":["import { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\nexport const flatten = <T>(arr: T[][]): T[] => {\r\n if (!arr)\r\n return [];\r\n\r\n return arr.reduce((acc, cur) => acc.concat(cur), []);\r\n};\r\n\r\nexport const findKeyByValue = (array: {}[], value: any) => {\r\n const entry = array.find(object => Object.values(object).includes(value));\r\n return entry ? Object.keys(entry)[0] : undefined;\r\n};\r\n\r\nexport const parseToIdentifiedEntitiesArray = (array: string[]): IdentifiedEntity[] => {\r\n return array.map((name, index) => { return { name, id: index.toString() } });\r\n};","export const getAssignmentStateDisplayName = (state) => {\n return state == 0 ? 'שיבוץ זמני' : state == 1 ? 'אכ\"א' : 'אג\"ת';\n};\n","import { cloneDeep } from \"lodash\";\r\n\r\nexport type ListsDiffs<Item extends { [innerItemProperty: string]: { id: string } } | {}> = { deletedItems: Item[], newItems: Item[], updatedItems: Item[] };\r\n\r\nexport const getDifferencesInObjects = <MainObject, ObjectToCheck>(mainObject: MainObject, comparedObject: ObjectToCheck) => {\r\n let changedFieldsObject: { [key: string]: any[] } = {};\r\n Object.keys(comparedObject).forEach(key => {\r\n if (Array.isArray(comparedObject[key]) && mainObject[key])\r\n changedFieldsObject[key] = mainObject[key].filter(item => !comparedObject[key].map(object => object.id).includes(item.id));\r\n\r\n if (!changedFieldsObject[key]?.length)\r\n delete changedFieldsObject[key];\r\n })\r\n\r\n return changedFieldsObject;\r\n};\r\n\r\nexport const removeCommonObjectsBetweenArrays = <MainItem extends { id: string; }, CheckedItem extends { id: string; }>(mainArray: MainItem[], checkedArray: CheckedItem[]): MainItem[] => {\r\n const clonedMainArray: MainItem[] = cloneDeep(mainArray);\r\n return clonedMainArray.filter(mainItem => !checkedArray.some(comparedItem => comparedItem.id === mainItem.id));\r\n};\r\n\r\nexport const removeCommonItemsInObjectsFields = (mainObject: { [key: string]: any }, secondaryObject: { [key: string]: any }) => {\r\n const mainKeys: string[] = Object.keys(mainObject);\r\n const secondaryKeys: string[] = Object.keys(secondaryObject);\r\n\r\n mainKeys.forEach(mainKey => {\r\n const mainValue = mainObject[mainKey];\r\n\r\n if (Array.isArray(mainValue)) {\r\n const mainItemsIds = mainValue.map(item => item.id);\r\n\r\n secondaryKeys.forEach(secondaryKey => {\r\n const secondaryValue = secondaryObject[secondaryKey];\r\n\r\n if (Array.isArray(secondaryValue)) {\r\n const uniqueItems = secondaryValue.filter(item => !mainItemsIds.includes(item.id));\r\n secondaryObject[secondaryKey] = uniqueItems;\r\n\r\n if (!secondaryObject[secondaryKey].length)\r\n delete secondaryObject[secondaryKey];\r\n }\r\n });\r\n }\r\n });\r\n\r\n return secondaryObject;\r\n};\r\n\r\nexport const getDifferencesInLists = <Item extends { [innerItemProperty: string]: { id: string } } | {}>(sourceList: Item[], editedList: Item[], innerItemProperty: string): ListsDiffs<Item> => {\r\n const newItems = editedList.filter(\r\n newItem => !sourceList.some(sourceItem => sourceItem[innerItemProperty]?.id === newItem[innerItemProperty]?.id)\r\n );\r\n const deletedItems = sourceList.filter(\r\n sourceItem => !editedList.some(newItem => newItem[innerItemProperty]?.id === sourceItem[innerItemProperty]?.id)\r\n );\r\n\r\n const updatedItems = editedList.filter(item => {\r\n const prev = sourceList.find(sourceItem => sourceItem[innerItemProperty]?.id === item[innerItemProperty]?.id);\r\n\r\n return prev && JSON.stringify(prev) !== JSON.stringify(item);\r\n });\r\n\r\n return { deletedItems: deletedItems, newItems: newItems, updatedItems: updatedItems };\r\n};\r\n\r\nexport const removeDuplicatesBetweenArrays = <Item>(mainArray: Item[], otherArray: Item[]): Item[] => {\r\n const getUserId = (u: any) => u?.user?.id ?? u?.id;\r\n const clonedOtherArray: Item[] = Array.isArray(otherArray) ? cloneDeep(otherArray) : [];\r\n const clonedMainArray: Item[] = Array.isArray(mainArray) ? cloneDeep(mainArray) : [];\r\n\r\n const mergedArrays = [...clonedMainArray, ...clonedOtherArray].filter((user, index, arr) => arr.findIndex((u) => getUserId(u) === getUserId(user)) === index);\r\n\r\n return mergedArrays;\r\n};","import { MicroResourceAuthorizationBase } from 'herum-shared/herum-types';\r\n\r\nexport const convertToDate = (dateString: string) => {\r\n const date = new Date(dateString);\r\n\r\n const day = date.getDate();\r\n const month = date.getMonth() + 1;\r\n const year = date.getFullYear();\r\n\r\n if (day == 1 && month == 1 && year == 1) return '(התאריך לא קיים)'\r\n\r\n return `${day}/${month}/${year}`;\r\n};\r\n\r\nexport const generateNewTimeStamp = () => {\r\n let date = new Date();\r\n\r\n let year = date.getUTCFullYear();\r\n let month = String(date.getUTCMonth() + 1).padStart(2, '0');\r\n let day = String(date.getUTCDate()).padStart(2, '0');\r\n let hours = String(date.getUTCHours()).padStart(2, '0');\r\n let minutes = String(date.getUTCMinutes()).padStart(2, '0');\r\n let seconds = String(date.getUTCSeconds()).padStart(2, '0');\r\n let milliseconds = String(date.getUTCMilliseconds()).padStart(3, '0');\r\n\r\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}Z`;\r\n};\r\n\r\nexport const updateFullYear = (dateToUpdate: Date, date: Date) => {\r\n const year = date.getFullYear();\r\n const month = date.getMonth();\r\n const day = date.getDate();\r\n dateToUpdate.setFullYear(year, month, day);\r\n\r\n return dateToUpdate;\r\n};\r\n\r\nexport const getMicroResourceTextualTimeString = (microResourceAuthorization: MicroResourceAuthorizationBase): string => {\r\n if (!microResourceAuthorization) return 'לא קיים'\r\n const now = new Date();\r\n let isOpeningTimePass = microResourceAuthorization.openingTime && new Date(microResourceAuthorization.openingTime).getTime() < now.getTime();\r\n let isClosingTimePass = microResourceAuthorization.closingTime && new Date(microResourceAuthorization.closingTime).getTime() < now.getTime();\r\n\r\n if (isClosingTimePass && isOpeningTimePass) return 'סגור';\r\n\r\n let time: Date = new Date(isOpeningTimePass ? microResourceAuthorization.closingTime : microResourceAuthorization.openingTime)\r\n let res: string;\r\n\r\n const diff = Math.abs(time.getTime() - now.getTime());\r\n const seconds = Math.floor(diff / 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 const weeks = Math.floor(days / 7);\r\n const months = Math.floor(days / 30);\r\n const years = Math.floor(days / 365);\r\n\r\n if (isOpeningTimePass) {\r\n time = new Date(microResourceAuthorization.closingTime)\r\n if (years > 10) return 'פתוח'\r\n\r\n res = \"יסגר בעוד \"\r\n }\r\n else {\r\n time = new Date(microResourceAuthorization.openingTime);\r\n if (isNaN(time.getTime())) return 'סגור';\r\n if (years > 10) return 'סגור'\r\n\r\n res = \"יפתח בעוד \"\r\n }\r\n\r\n if (years != 0)\r\n res += `${years} שנים`;\r\n else if (months != 0)\r\n res += `${months} חודשים`;\r\n else if (weeks != 0)\r\n res += `${weeks} שבועות`;\r\n else if (days != 0)\r\n res += `${days} ימים`;\r\n else if (hours != 0)\r\n res += `${hours} שעות`;\r\n else if (minutes != 0)\r\n res += `${minutes} דקות`;\r\n else if (seconds != 0)\r\n res += `${seconds} שניות`;\r\n else\r\n return res.split(\" \")[0] + ' עכשיו';\r\n return res;\r\n};\r\n\r\nexport const getTimeAsAgo = (time: Date) => {\r\n const diff = new Date().getTime() - time.getTime();\r\n const seconds = Math.floor(diff / 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 const weeks = Math.floor(days / 7);\r\n const months = Math.floor(days / 30);\r\n const years = Math.floor(days / 365);\r\n\r\n let res = 'לפני ';\r\n if (years != 0)\r\n res += `${years} שנים`;\r\n else if (months != 0)\r\n res += `${months} חודשים`;\r\n else if (weeks != 0)\r\n res += `${weeks} שבועות`;\r\n else if (days != 0)\r\n res += `${days} ימים`;\r\n else if (hours != 0)\r\n res += `${hours} שעות`;\r\n else if (minutes != 0)\r\n res += `${minutes} דקות`;\r\n else if (seconds != 0)\r\n res += `${seconds} שניות`;\r\n else\r\n res = ' עכשיו';\r\n\r\n return res;\r\n};","import { ElementRef, QueryList } from \"@angular/core\";\r\nimport { EntitiesLayoutProperties } from 'herum-shared/herum-types';\r\n\r\nconst entityGap: number = 12;\r\n\r\nexport const isTruncatedTitleElement = (element: HTMLElement): boolean => {\r\n const renderedWidth = element.offsetWidth;\r\n const scrollWidth = element.scrollWidth;\r\n\r\n return element.innerText.includes('...') || renderedWidth < scrollWidth || element.scrollHeight > element.offsetHeight;\r\n};\r\n\r\nexport const getEntitiesLayoutProperties = (entitiesWrapperElement: ElementRef, entitiesElement: QueryList<ElementRef>, entities: unknown[], entitiesWrapperHeight?: number): EntitiesLayoutProperties => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n const entitiesWrapperWidth = entitiesWrapper.clientWidth;\r\n\r\n entitiesWrapperHeight = entitiesWrapperHeight ?? entitiesWrapper.clientHeight;\r\n\r\n const entityWidth = entitiesElement.first.nativeElement.offsetWidth;\r\n const entityHeight = entitiesElement.first.nativeElement.offsetHeight;\r\n\r\n const columns = Math.max(1, Math.floor((entitiesWrapperWidth + entityGap) / (entityWidth + entityGap)));\r\n let rows = Math.max(1, Math.floor((entitiesWrapperHeight + entityGap) / (entityHeight + entityGap)));\r\n\r\n const numberOfElementsInPage = rows * columns;\r\n const totalPages = Math.ceil(entities.length / numberOfElementsInPage);\r\n\r\n return { numberOfElementsInPage, totalPages, columns, rows, entityWidth, entityHeight, entitiesWrapperHeight, entitiesWrapperWidth };\r\n};\r\n\r\nexport const setElementsGridStyle = (entitiesWrapperElement: ElementRef, layoutProperties: EntitiesLayoutProperties) => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n let { columns, rows, entityWidth, entityHeight, entitiesWrapperWidth, entitiesWrapperHeight } = layoutProperties;\r\n\r\n const columnGap = (entitiesWrapperWidth - columns * entityWidth) / columns - 1;\r\n const rowGap = (entitiesWrapperHeight - rows * entityHeight) / rows - 1;\r\n\r\n let gap = Math.min(columnGap, rowGap);\r\n gap = gap < entityGap ? entityGap : gap;\r\n\r\n entitiesWrapper.style.gridTemplateColumns = `repeat(${columns}, ${entityWidth}px)`;\r\n entitiesWrapper.style.gridTemplateRows = `repeat(${rows}, ${entityHeight}px)`;\r\n entitiesWrapper.style.gridAutoRows = `${entityHeight} px`;\r\n entitiesWrapper.style.gap = `${gap}px`;\r\n};\r\n\r\nexport const setNavFlexLayoutStyle = (entitiesSectionElement: ElementRef, entitiesWrapperElement: ElementRef, showNavButtons: boolean, navButtonsWidth: number) => {\r\n const entitiesWrapper = entitiesWrapperElement.nativeElement;\r\n\r\n entitiesWrapper.style.width = `calc(100% - ${showNavButtons || entitiesWrapper.style.display === 'grid' ? navButtonsWidth : 0}px)`;\r\n\r\n if (entitiesWrapper.style.display !== 'flex') {\r\n entitiesSectionElement.nativeElement.style.alignItems = 'center';\r\n\r\n entitiesWrapper.style.display = 'flex';\r\n entitiesWrapper.style.gap = `${entityGap}px`;\r\n entitiesWrapper.style.justifyContent = 'normal';\r\n }\r\n};\r\n\r\nexport const setNavFlexLayout = (entitiesSectionElement: ElementRef, entitiesWrapperElement: ElementRef, navButtonElement: ElementRef, entitiesElement: QueryList<ElementRef>) => {\r\n const entitiesSectionElementWidth = entitiesSectionElement.nativeElement.clientWidth;\r\n const cardWidth = entitiesElement.first?.nativeElement?.clientWidth;\r\n\r\n const navButtonsWidth = navButtonElement?.nativeElement?.offsetWidth ?? 0;\r\n\r\n const availableWidth = entitiesSectionElementWidth - navButtonsWidth;\r\n const numberOfElementsInPage = Math.max(1, Math.floor((availableWidth + entityGap) / (cardWidth + entityGap)));\r\n\r\n const showNavButtons = entitiesElement?.length - numberOfElementsInPage > 0;\r\n setNavFlexLayoutStyle(entitiesSectionElement, entitiesWrapperElement, showNavButtons, navButtonsWidth);\r\n\r\n return numberOfElementsInPage;\r\n};\r\n","export const getDeserializedFile = async (response: Response, fileName: string, fileType?: string) => {\n const blob = await response.blob();\n return new File([blob], fileName, { type: fileType ?? blob.type });\n};\n\nexport const downloadFile = (fileName: string, data: File | Blob) => {\n const objectUrl = URL.createObjectURL(data);\n const anchorElement = document.createElement('a');\n anchorElement.href = objectUrl;\n anchorElement.download = fileName;\n anchorElement.click();\n\n anchorElement.remove();\n URL.revokeObjectURL(objectUrl);\n};","import { regexExpressions } from \"herum-shared/constants\";\r\n\r\nexport const getBrowserVersion = (browserRegexExp: RegExp): number | undefined => {\r\n let browserVersionMatchResult: RegExpMatchArray = navigator.userAgent.match(browserRegexExp);\r\n return browserVersionMatchResult ? parseInt(browserVersionMatchResult[1], 10) : undefined;\r\n};\r\n\r\n\r\nexport const getChromeVersion = () => {\r\n const userAgent = navigator.userAgent;\r\n const match = userAgent.match(regexExpressions.chromeVersionRegex);\r\n if (match)\r\n return match[1];\r\n\r\n return undefined;\r\n};","import { FullHierarchyPartsPlaces } from 'herum-shared/herum-types';\n\nexport const getHierarchyPartIfExist = (parts: string[], part: FullHierarchyPartsPlaces) => {\n return parts.length > part ? parts[part] : '';\n};\n","export const bytesToMegabytes = (bytes: number): number => {\r\n return bytes / (1024 ** 2);\r\n};","import { types } from \"herum-shared/constants\";\r\n\r\nexport const remainJustWantedValueInDictionary = (wantedValue: string, fields: { [key: string]: any }) => {\r\n let object = {};\r\n\r\n Object.entries(fields).forEach(([key, value]) => {\r\n (Array.isArray(value)) ?\r\n object[key] = value.map(item => (typeof item === types.object ? { [wantedValue]: item[wantedValue] } : { [wantedValue]: item }))\r\n :\r\n object[key] = (typeof value === types.object ? { [wantedValue]: value[wantedValue] } : value);\r\n\r\n });\r\n return object;\r\n};\r\n\r\nexport const removeUnwantedProperties = (baseObject: any, wantedProperties: string[]) => {\r\n let unwantedProperties = Object.keys(baseObject).filter(property => !wantedProperties.includes(property))\r\n unwantedProperties.forEach(property => delete baseObject[property])\r\n return baseObject;\r\n};","import { HttpHeaders } from \"@angular/common/http\";\r\nimport { minuteInMilliseconds, uploadsManagerKeys } from \"herum-shared/constants\";\r\nimport { DependentMetadata } from 'herum-shared/herum-types';\r\n\r\nconst safetyMarginInMilliseconds: number = 2 * 60 * 1000;\r\n\r\nexport const buildPath = (parts: string[]) => {\r\n return parts.reduce((path, part) => {\r\n return path + '/' + part;\r\n }, '').slice(1);\r\n};\r\n\r\nexport const setHeaders = (headers: HttpHeaders, headersToSet: { key: string, value: any }[], isEncodeURIComponent?: boolean): HttpHeaders => {\r\n headersToSet.forEach(headerToSet => {\r\n headers = headers.set(headerToSet.key, isEncodeURIComponent ? encodeURIComponent((headerToSet.value).toString()) : (headerToSet.value).toString());\r\n });\r\n return headers;\r\n};\r\n\r\nexport const convertDependentMetadataToHeaders = (dependentMetadata: DependentMetadata) => {\r\n if (dependentMetadata)\r\n var { dependentId, commonDependentsId, numberOfObservableArrowFunctions } = dependentMetadata;\r\n\r\n let headers: HttpHeaders = new HttpHeaders();\r\n\r\n if (dependentId) {\r\n headers = setHeaders(headers, [\r\n { key: uploadsManagerKeys.dependentIdHeader, value: dependentId },\r\n { key: uploadsManagerKeys.commonDependentsIdHeader, value: commonDependentsId },\r\n { key: uploadsManagerKeys.numberOfObservableArrowFunctionsHeader, value: numberOfObservableArrowFunctions }\r\n ]);\r\n }\r\n\r\n return headers;\r\n};\r\n\r\nexport const getVersionPathParameter = (lastUpdateTime: Date) => {\r\n if (!lastUpdateTime) return;\r\n return (Date.now() - lastUpdateTime?.getTime() < 10 * minuteInMilliseconds + safetyMarginInMilliseconds) ? `?v=${lastUpdateTime?.toISOString()}` : '';\r\n};","export const convertHeightToPixels = (value: string): number => {\n const numberValue: number = parseInt(value, 10);\n\n if (value.endsWith('vh'))\n return numberValue * (window.innerHeight / 100);\n else if (value.endsWith('px'))\n return numberValue;\n\n return numberValue;\n};\n\nexport const getDropdownAnimationStates = (\n isDropdownOpen: boolean,\n dropDownDirection: 'upwards' | 'downwards'\n) => {\n if (isDropdownOpen)\n return dropDownDirection === 'upwards' ? 'openUp' : 'openDown';\n\n return dropDownDirection === 'upwards' ? 'closeDown' : 'closeUp';\n};","import { CollectionSubscription, ResourceSubscription } from 'herum-shared/herum-types';\n\nexport const getSubscriptionWithLastActivityTime = (\n subscriptions: CollectionSubscription[] | ResourceSubscription[]\n): CollectionSubscription => {\n if (!subscriptions?.length)\n return null;\n\n return (subscriptions as CollectionSubscription[])?.reduce((max, subscription) => {\n return (new Date(subscription.lastActivityTime) > new Date(max.lastActivityTime)) ? subscription : max;\n });\n};\n\nexport const getLastSubscriptionByField = (\n subscriptions: CollectionSubscription[] | ResourceSubscription[],\n field: string\n): CollectionSubscription => {\n if (!subscriptions?.length)\n return null;\n\n return (subscriptions as CollectionSubscription[])?.reduce((max, subscription) => {\n return (new Date(subscription[field]) > new Date(max[field])) ? subscription : max;\n });\n};","import { regexExpressions } from \"herum-shared/constants\";\r\n\r\nimport jsSHA from 'jssha';\r\n\r\nexport const toHash = (source: string) => {\r\n let shaObj = new jsSHA('SHA-256', 'TEXT');\r\n shaObj.update(source);\r\n let hash = shaObj.getHash('HEX');\r\n\r\n return hash;\r\n};\r\n\r\nexport const toFirstCapitalLetter = (text: string) => {\r\n return text[0].toUpperCase() + text.slice(1);\r\n};\r\n\r\nexport const toFirstLowerCaseLetter = (text: string) => {\r\n if (!text) return;\r\n return text[0].toLocaleLowerCase() + text.slice(1);\r\n};\r\n\r\nexport const camelCaseToPascalCase = (camelCase: string) => {\r\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\r\n};\r\n\r\nexport const capitalizeWord = (word: string): string => {\r\n return word.charAt(0).toUpperCase() + word.slice(1);\r\n};\r\n\r\nexport const replaceInterpolateKeysWithObjectProperties = (string: string, object: Object): string => {\r\n const matches = string.match(regexExpressions.templateInterpolation);\r\n\r\n if (matches)\r\n matches.forEach((match) => { const key = match.slice(2, -2); string = string.replace(match, object[key]) });\r\n\r\n return string;\r\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1731,28 +1731,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
1731
1731
  type: Input
1732
1732
  }] } });
1733
1733
 
1734
- class HerumFormControl extends FormControl {
1735
- errorMessages = {};
1736
- currentErrorMessage = '';
1737
- destroySubject$ = new Subject();
1738
- /**
1739
- @comment The component that creates this class should have destroySubject$ so you can listen to its ngOnDestroy life cycle hook so you can unsubscribe statusChangesSubscription
1740
- */
1741
- constructor(formState, validatorOrOpts, asyncValidator, errorMessages, componentReference) {
1742
- super(formState, validatorOrOpts, asyncValidator);
1743
- if (errorMessages)
1744
- this.errorMessages = errorMessages;
1745
- this.statusChanges.pipe(takeUntil(this.destroySubject$)).subscribe(() => this.setCurrentErrorMessage());
1746
- componentReference.destroySubject$.pipe(takeUntil(this.destroySubject$)).subscribe(() => {
1747
- this.destroySubject$.next(null);
1748
- this.destroySubject$.complete();
1749
- });
1750
- }
1751
- setCurrentErrorMessage() {
1752
- this.currentErrorMessage = this.errors ? this.errorMessages[Object.keys(this.errors)[0]] : null;
1753
- }
1754
- }
1755
-
1756
1734
  const emptyNumberInputValue = '0';
1757
1735
  const numericTextType = 'numeric-text';
1758
1736
  class HerumInputFieldComponent {
@@ -1823,12 +1801,9 @@ class HerumInputFieldComponent {
1823
1801
  if (this.ngControl instanceof FormControlName)
1824
1802
  this.formControlName = this.ngControl.name?.toString() || '';
1825
1803
  this.ngControl.control.statusChanges.pipe(takeUntil(this.destroySubject$)).subscribe(status => {
1826
- console.log(Reflect.getPrototypeOf(this.ngControl.control));
1827
- console.log(Reflect.getPrototypeOf(this.ngControl.control) === HerumFormControl.prototype);
1828
- console.log(Reflect.getPrototypeOf(this.ngControl.control) === HerumFormControl);
1829
- console.log(this.ngControl.control.constructor.name === HerumFormControl.prototype.constructor.name);
1830
- if (this.ngControl.control instanceof HerumFormControl)
1831
- this.errorMsg = this.ngControl.control.currentErrorMessage;
1804
+ const controlWithErrorMessage = this.ngControl.control;
1805
+ if (!!controlWithErrorMessage.currentErrorMessage)
1806
+ this.errorMsg = controlWithErrorMessage.currentErrorMessage;
1832
1807
  const controlStatus = this.ngControl.control.status;
1833
1808
  this.isValid = controlStatus === formStatuses.valid;
1834
1809
  this.isLoading = controlStatus === formStatuses.pending;
@@ -9670,6 +9645,28 @@ const openClose = trigger('openClose', [
9670
9645
  ])
9671
9646
  ]);
9672
9647
 
9648
+ class HerumFormControl extends FormControl {
9649
+ errorMessages = {};
9650
+ currentErrorMessage = '';
9651
+ destroySubject$ = new Subject();
9652
+ /**
9653
+ @comment The component that creates this class should have destroySubject$ so you can listen to its ngOnDestroy life cycle hook so you can unsubscribe statusChangesSubscription
9654
+ */
9655
+ constructor(formState, validatorOrOpts, asyncValidator, errorMessages, componentReference) {
9656
+ super(formState, validatorOrOpts, asyncValidator);
9657
+ if (errorMessages)
9658
+ this.errorMessages = errorMessages;
9659
+ this.statusChanges.pipe(takeUntil(this.destroySubject$)).subscribe(() => this.setCurrentErrorMessage());
9660
+ componentReference.destroySubject$.pipe(takeUntil(this.destroySubject$)).subscribe(() => {
9661
+ this.destroySubject$.next(null);
9662
+ this.destroySubject$.complete();
9663
+ });
9664
+ }
9665
+ setCurrentErrorMessage() {
9666
+ this.currentErrorMessage = this.errors ? this.errorMessages[Object.keys(this.errors)[0]] : null;
9667
+ }
9668
+ }
9669
+
9673
9670
  const suffixStorageKey = 'FETCHED_MESSAGE_HAS_SHOWN';
9674
9671
  class FetchedMessageService {
9675
9672
  http;