herum-shared 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/herum-shared-mongo-services.mjs +2 -2
- package/fesm2022/herum-shared-mongo-services.mjs.map +1 -1
- package/fesm2022/herum-shared-mongo.mjs +2 -2
- package/fesm2022/herum-shared-mongo.mjs.map +1 -1
- package/fesm2022/herum-shared-services.mjs +77 -8
- package/fesm2022/herum-shared-services.mjs.map +1 -1
- package/fesm2022/herum-shared-static-services.mjs +1 -69
- package/fesm2022/herum-shared-static-services.mjs.map +1 -1
- package/fesm2022/herum-shared-utils.mjs +34 -40
- package/fesm2022/herum-shared-utils.mjs.map +1 -1
- package/fesm2022/herum-shared.mjs +88 -149
- package/fesm2022/herum-shared.mjs.map +1 -1
- package/index.d.ts +3 -3
- package/molecules/index.d.ts +1 -1
- package/mongo/index.d.ts +1 -1
- package/mongo/services/index.d.ts +1 -1
- package/package.json +1 -1
- package/services/index.d.ts +14 -3
- package/static-services/index.d.ts +1 -14
- package/utils/index.d.ts +2 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herum-shared-static-services.mjs","sources":["../../../projects/herum-shared/static-services/storage.service.ts","../../../projects/herum-shared/static-services/utils.service.ts","../../../projects/herum-shared/static-services/herum-shared-static-services.ts"],"sourcesContent":["export class StorageService {\r\n\r\n private static cache: { [key: string]: string | null } = {};\r\n\r\n public static getItem(key: string): string | null {\r\n const cachedValue = StorageService.cache[key];\r\n\r\n if (cachedValue)\r\n return cachedValue;\r\n\r\n else {\r\n let value: string | null = StorageService.getCookie(key);\r\n if (!value)\r\n value = localStorage.getItem(key);\r\n\r\n StorageService.cache[key] = value;\r\n return value;\r\n }\r\n }\r\n\r\n public static setItem(key: string, value: any): void {\r\n let stringifyValue = value;\r\n\r\n if (typeof value != \"string\")\r\n stringifyValue = JSON.stringify(value)\r\n\r\n StorageService.cache[key] = stringifyValue;\r\n try {\r\n StorageService.setCookie(key, stringifyValue);\r\n } catch (error) {\r\n localStorage.setItem(key, stringifyValue);\r\n }\r\n }\r\n\r\n public static removeItem(key: string): void {\r\n StorageService.cache[key] = null;\r\n localStorage.removeItem(key);\r\n StorageService.deleteCookie(key);\r\n }\r\n\r\n public static deleteAll() {\r\n StorageService.cache = {};\r\n const cookies = document.cookie.split(';');\r\n\r\n cookies.forEach((cookie) => {\r\n const equalsIndex = cookie.indexOf('=');\r\n const key = equalsIndex > -1 ? cookie.substring(0, equalsIndex) : cookie;\r\n this.deleteCookie(key);\r\n });\r\n }\r\n\r\n private static deleteCookie(key: string): void {\r\n document.cookie = key + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';\r\n }\r\n\r\n private static setCookie(cname: string, cvalue: string, exdays: number = 100) {\r\n StorageService.deleteCookie(cname);\r\n\r\n const date = new Date();\r\n date.setTime(date.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n const expires = 'expires=' + date.toUTCString();\r\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\r\n }\r\n\r\n private static getCookie(cname: string): string {\r\n const name = cname + '=';\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let cookieChar = ca[i];\r\n while (cookieChar.charAt(0) === ' ') {\r\n cookieChar = cookieChar.substring(1);\r\n }\r\n if (cookieChar.indexOf(name) === 0) {\r\n return cookieChar.substring(name.length, cookieChar.length);\r\n }\r\n }\r\n return '';\r\n }\r\n}","import { Inject, Injectable } from '@angular/core';\nimport { getMongoMethodsDisplayedNamesMap } from 'herum-shared/constants';\nimport { EnvironmentConfig, HERUM_SHARED_CONFIG_TOKEN } from 'herum-shared/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(@Inject(HERUM_SHARED_CONFIG_TOKEN) private environmentConfig: EnvironmentConfig) { }\n\n getDisplayedNameForMongoMethodByUserActivity(urlRequest: string): string | undefined {\n let mongoMethodDisplayedName!: string | undefined;\n\n const mongoMethodsDisplayedNamesMap = getMongoMethodsDisplayedNamesMap(\n this.environmentConfig?.mongoUpdates,\n this.environmentConfig?.authenticationPaths\n );\n\n Object.entries(mongoMethodsDisplayedNamesMap).forEach(([mongoMethod, displayedName]) => {\n const urlParts: string[] = urlRequest?.split('/');\n const matchedMethod: string | undefined = urlParts?.find(urlPart => urlPart === mongoMethod);\n\n if (matchedMethod)\n mongoMethodDisplayedName = displayedName;\n });\n\n return mongoMethodDisplayedName;\n }\n\n fetchFiles(fileId: string, resourceType: string, bucket?: string): Promise<Response> {\n if (!fileId)\n return Promise.reject();\n\n const bucketPath = bucket ? bucket : this.environmentConfig?.buckets[resourceType];\n\n if (fileId && fileId[0] != '/' && bucketPath[bucketPath.length - 1] != '/') fileId = \"/\" + fileId;\n\n const path = this.environmentConfig?.environment?.s3ServerPath + bucketPath + fileId;\n return fetch(path);\n }\n\n async initAudioFile(fileId: string, bucketName?: string, signal?: AbortSignal) {\n const audioBucketName = bucketName ? (bucketName + \"/\") : this.environmentConfig?.buckets.Audio;\n\n return fetch(this.environmentConfig?.environment?.s3ServerPath + audioBucketName + fileId, { signal: signal })\n .then(async (response) => {\n const arrayBuffer = await response.arrayBuffer();\n if (arrayBuffer.byteLength === 0) {\n const blob = await response.blob();\n const reader = new FileReader();\n reader.onload = () => {\n const arrayBuffer = reader.result as ArrayBuffer;\n const file = new File([arrayBuffer], fileId, {\n type: 'audio/mp3',\n });\n return file;\n };\n reader.readAsArrayBuffer(blob);\n } else {\n const file = new File([arrayBuffer], fileId, {\n type: 'audio/mpeg',\n });\n return file;\n }\n })\n }\n}\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-static-services.mjs","sources":["../../../projects/herum-shared/static-services/storage.service.ts","../../../projects/herum-shared/static-services/herum-shared-static-services.ts"],"sourcesContent":["export class StorageService {\r\n\r\n private static cache: { [key: string]: string | null } = {};\r\n\r\n public static getItem(key: string): string | null {\r\n const cachedValue = StorageService.cache[key];\r\n\r\n if (cachedValue)\r\n return cachedValue;\r\n\r\n else {\r\n let value: string | null = StorageService.getCookie(key);\r\n if (!value)\r\n value = localStorage.getItem(key);\r\n\r\n StorageService.cache[key] = value;\r\n return value;\r\n }\r\n }\r\n\r\n public static setItem(key: string, value: any): void {\r\n let stringifyValue = value;\r\n\r\n if (typeof value != \"string\")\r\n stringifyValue = JSON.stringify(value)\r\n\r\n StorageService.cache[key] = stringifyValue;\r\n try {\r\n StorageService.setCookie(key, stringifyValue);\r\n } catch (error) {\r\n localStorage.setItem(key, stringifyValue);\r\n }\r\n }\r\n\r\n public static removeItem(key: string): void {\r\n StorageService.cache[key] = null;\r\n localStorage.removeItem(key);\r\n StorageService.deleteCookie(key);\r\n }\r\n\r\n public static deleteAll() {\r\n StorageService.cache = {};\r\n const cookies = document.cookie.split(';');\r\n\r\n cookies.forEach((cookie) => {\r\n const equalsIndex = cookie.indexOf('=');\r\n const key = equalsIndex > -1 ? cookie.substring(0, equalsIndex) : cookie;\r\n this.deleteCookie(key);\r\n });\r\n }\r\n\r\n private static deleteCookie(key: string): void {\r\n document.cookie = key + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';\r\n }\r\n\r\n private static setCookie(cname: string, cvalue: string, exdays: number = 100) {\r\n StorageService.deleteCookie(cname);\r\n\r\n const date = new Date();\r\n date.setTime(date.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n const expires = 'expires=' + date.toUTCString();\r\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\r\n }\r\n\r\n private static getCookie(cname: string): string {\r\n const name = cname + '=';\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let cookieChar = ca[i];\r\n while (cookieChar.charAt(0) === ' ') {\r\n cookieChar = cookieChar.substring(1);\r\n }\r\n if (cookieChar.indexOf(name) === 0) {\r\n return cookieChar.substring(name.length, cookieChar.length);\r\n }\r\n }\r\n return '';\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cloneDeep } from 'lodash';
|
|
2
|
+
import { regexExpressions, types, uploadsManagerKeys } from 'herum-shared/constants';
|
|
2
3
|
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
-
import { uploadsManagerKeys, regexExpressions, types } from 'herum-shared/constants';
|
|
4
4
|
import jsSHA from 'jssha';
|
|
5
5
|
|
|
6
6
|
const flatten = (arr) => {
|
|
@@ -228,48 +228,10 @@ const setNavFlexLayout = (entitiesSectionElement, entitiesWrapperElement, navBut
|
|
|
228
228
|
return numberOfElementsInPage;
|
|
229
229
|
};
|
|
230
230
|
|
|
231
|
-
const minuteInMilliseconds = 60 * 1000;
|
|
232
|
-
const safetyMarginInMilliseconds = 2 * 60 * 1000;
|
|
233
|
-
const buildPath = (parts) => {
|
|
234
|
-
return parts.reduce((path, part) => {
|
|
235
|
-
return path + '/' + part;
|
|
236
|
-
}, '').slice(1);
|
|
237
|
-
};
|
|
238
|
-
const setHeaders = (headers, headersToSet, isEncodeURIComponent) => {
|
|
239
|
-
headersToSet.forEach(headerToSet => {
|
|
240
|
-
headers = headers.set(headerToSet.key, isEncodeURIComponent ? encodeURIComponent((headerToSet.value).toString()) : (headerToSet.value).toString());
|
|
241
|
-
});
|
|
242
|
-
return headers;
|
|
243
|
-
};
|
|
244
|
-
const convertDependentMetadataToHeaders = (dependentMetadata) => {
|
|
245
|
-
if (dependentMetadata)
|
|
246
|
-
var { dependentId, commonDependentsId, numberOfObservableArrowFunctions } = dependentMetadata;
|
|
247
|
-
let headers = new HttpHeaders();
|
|
248
|
-
if (dependentId) {
|
|
249
|
-
headers = setHeaders(headers, [
|
|
250
|
-
{ key: uploadsManagerKeys.dependentIdHeader, value: dependentId },
|
|
251
|
-
{ key: uploadsManagerKeys.commonDependentsIdHeader, value: commonDependentsId },
|
|
252
|
-
{ key: uploadsManagerKeys.numberOfObservableArrowFunctionsHeader, value: numberOfObservableArrowFunctions }
|
|
253
|
-
]);
|
|
254
|
-
}
|
|
255
|
-
return headers;
|
|
256
|
-
};
|
|
257
|
-
const getVersionPathParameter = (lastUpdateTime) => {
|
|
258
|
-
if (!lastUpdateTime)
|
|
259
|
-
return;
|
|
260
|
-
return (Date.now() - lastUpdateTime?.getTime() < 10 * minuteInMilliseconds + safetyMarginInMilliseconds) ? `?v=${lastUpdateTime?.toISOString()}` : '';
|
|
261
|
-
};
|
|
262
|
-
|
|
263
231
|
const getDeserializedFile = async (response, fileName, fileType) => {
|
|
264
232
|
const blob = await response.blob();
|
|
265
233
|
return new File([blob], fileName, { type: fileType ?? blob.type });
|
|
266
234
|
};
|
|
267
|
-
const getUrlFromFileData = (fileData, s3ServerPath) => {
|
|
268
|
-
if (!fileData?.key || !fileData?.bucket)
|
|
269
|
-
return;
|
|
270
|
-
const fileDataKeyWithoutTrailingSlash = fileData.key.endsWith('/') ? fileData.key.slice(0, -1) : fileData.key;
|
|
271
|
-
return buildPath([s3ServerPath + fileData.bucket, fileDataKeyWithoutTrailingSlash]);
|
|
272
|
-
};
|
|
273
235
|
const downloadFile = (fileName, data) => {
|
|
274
236
|
const objectUrl = URL.createObjectURL(data);
|
|
275
237
|
const anchorElement = document.createElement('a');
|
|
@@ -316,6 +278,38 @@ const removeUnwantedProperties = (baseObject, wantedProperties) => {
|
|
|
316
278
|
return baseObject;
|
|
317
279
|
};
|
|
318
280
|
|
|
281
|
+
const minuteInMilliseconds = 60 * 1000;
|
|
282
|
+
const safetyMarginInMilliseconds = 2 * 60 * 1000;
|
|
283
|
+
const buildPath = (parts) => {
|
|
284
|
+
return parts.reduce((path, part) => {
|
|
285
|
+
return path + '/' + part;
|
|
286
|
+
}, '').slice(1);
|
|
287
|
+
};
|
|
288
|
+
const setHeaders = (headers, headersToSet, isEncodeURIComponent) => {
|
|
289
|
+
headersToSet.forEach(headerToSet => {
|
|
290
|
+
headers = headers.set(headerToSet.key, isEncodeURIComponent ? encodeURIComponent((headerToSet.value).toString()) : (headerToSet.value).toString());
|
|
291
|
+
});
|
|
292
|
+
return headers;
|
|
293
|
+
};
|
|
294
|
+
const convertDependentMetadataToHeaders = (dependentMetadata) => {
|
|
295
|
+
if (dependentMetadata)
|
|
296
|
+
var { dependentId, commonDependentsId, numberOfObservableArrowFunctions } = dependentMetadata;
|
|
297
|
+
let headers = new HttpHeaders();
|
|
298
|
+
if (dependentId) {
|
|
299
|
+
headers = setHeaders(headers, [
|
|
300
|
+
{ key: uploadsManagerKeys.dependentIdHeader, value: dependentId },
|
|
301
|
+
{ key: uploadsManagerKeys.commonDependentsIdHeader, value: commonDependentsId },
|
|
302
|
+
{ key: uploadsManagerKeys.numberOfObservableArrowFunctionsHeader, value: numberOfObservableArrowFunctions }
|
|
303
|
+
]);
|
|
304
|
+
}
|
|
305
|
+
return headers;
|
|
306
|
+
};
|
|
307
|
+
const getVersionPathParameter = (lastUpdateTime) => {
|
|
308
|
+
if (!lastUpdateTime)
|
|
309
|
+
return;
|
|
310
|
+
return (Date.now() - lastUpdateTime?.getTime() < 10 * minuteInMilliseconds + safetyMarginInMilliseconds) ? `?v=${lastUpdateTime?.toISOString()}` : '';
|
|
311
|
+
};
|
|
312
|
+
|
|
319
313
|
const convertHeightToPixels = (value) => {
|
|
320
314
|
const numberValue = parseInt(value, 10);
|
|
321
315
|
if (value.endsWith('vh'))
|
|
@@ -376,5 +370,5 @@ const replaceInterpolateKeysWithObjectProperties = (string, object) => {
|
|
|
376
370
|
* Generated bundle index. Do not edit.
|
|
377
371
|
*/
|
|
378
372
|
|
|
379
|
-
export { buildPath, bytesToMegabytes, camelCaseToPascalCase, capitalizeWord, convertDependentMetadataToHeaders, convertHeightToPixels, convertToDate, downloadFile, findKeyByValue, flatten, generateNewTimeStamp, getAssignmentStateDisplayName, getBrowserVersion, getChromeVersion, getDeserializedFile, getDifferencesInLists, getDifferencesInObjects, getDropdownAnimationStates, getEntitiesLayoutProperties, getHierarchyPartIfExist, getLastSubscriptionByField, getMicroResourceTextualTimeString, getSubscriptionWithLastActivityTime, getTimeAsAgo,
|
|
373
|
+
export { buildPath, bytesToMegabytes, camelCaseToPascalCase, capitalizeWord, convertDependentMetadataToHeaders, convertHeightToPixels, convertToDate, downloadFile, findKeyByValue, flatten, generateNewTimeStamp, getAssignmentStateDisplayName, getBrowserVersion, getChromeVersion, getDeserializedFile, getDifferencesInLists, getDifferencesInObjects, getDropdownAnimationStates, getEntitiesLayoutProperties, getHierarchyPartIfExist, getLastSubscriptionByField, getMicroResourceTextualTimeString, getSubscriptionWithLastActivityTime, getTimeAsAgo, getVersionPathParameter, isTruncatedTitleElement, parseToIdentifiedEntitiesArray, remainJustWantedValueInDictionary, removeCommonItemsInObjectsFields, removeCommonObjectsBetweenArrays, removeDuplicatesBetweenArrays, removeUnwantedProperties, replaceInterpolateKeysWithObjectProperties, setElementsGridStyle, setHeaders, setNavFlexLayout, setNavFlexLayoutStyle, toFirstCapitalLetter, toFirstLowerCaseLetter, toHash, updateFullYear };
|
|
380
374
|
//# sourceMappingURL=herum-shared-utils.mjs.map
|
|
@@ -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/request-helpers.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/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","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};","import { FileData } from 'herum-shared/herum-types';\nimport { buildPath } from './request-helpers';\n\nexport 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 getUrlFromFileData = (fileData: Partial<FileData>, s3ServerPath: string) => {\n if (!fileData?.key || !fileData?.bucket) return;\n\n const fileDataKeyWithoutTrailingSlash = fileData.key.endsWith('/') ? fileData.key.slice(0, -1) : fileData.key;\n\n return buildPath([s3ServerPath + fileData.bucket, fileDataKeyWithoutTrailingSlash]);\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};","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":";;;;;AAEO,MAAM,OAAO,GAAG,CAAI,GAAU,KAAS;AAC1C,IAAA,IAAI,CAAC,GAAG;AACJ,QAAA,OAAO,EAAE;IAEb,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AACxD;MAEa,cAAc,GAAG,CAAC,KAAW,EAAE,KAAU,KAAI;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzE,IAAA,OAAO,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;AACpD;AAEO,MAAM,8BAA8B,GAAG,CAAC,KAAe,KAAwB;IAClF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI,EAAG,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAA,CAAC,CAAC,CAAC;AAChF;;AChBO,MAAM,6BAA6B,GAAG,CAAC,KAAK,KAAI;IACrD,OAAO,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;AACjE;;MCEa,uBAAuB,GAAG,CAA4B,UAAsB,EAAE,cAA6B,KAAI;IACxH,IAAI,mBAAmB,GAA6B,EAAE;IACtD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACtC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC;AACrD,YAAA,mBAAmB,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE9H,QAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM;AACjC,YAAA,OAAO,mBAAmB,CAAC,GAAG,CAAC;AACvC,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,mBAAmB;AAC9B;MAEa,gCAAgC,GAAG,CAAwE,SAAqB,EAAE,YAA2B,KAAgB;AACtL,IAAA,MAAM,eAAe,GAAe,SAAS,CAAC,SAAS,CAAC;IACxD,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClH;MAEa,gCAAgC,GAAG,CAAC,UAAkC,EAAE,eAAuC,KAAI;IAC5H,MAAM,QAAQ,GAAa,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;IAClD,MAAM,aAAa,GAAa,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AAE5D,IAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACvB,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC;AAErC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC1B,YAAA,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;AAEnD,YAAA,aAAa,CAAC,OAAO,CAAC,YAAY,IAAG;AACjC,gBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,CAAC;AAEpD,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;oBAC/B,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClF,oBAAA,eAAe,CAAC,YAAY,CAAC,GAAG,WAAW;AAE3C,oBAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,MAAM;AACrC,wBAAA,OAAO,eAAe,CAAC,YAAY,CAAC;gBAC5C;AACJ,YAAA,CAAC,CAAC;QACN;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,eAAe;AAC1B;AAEO,MAAM,qBAAqB,GAAG,CAAoE,UAAkB,EAAE,UAAkB,EAAE,iBAAyB,KAAsB;AAC5L,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAClH;AACD,IAAA,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAClC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAClH;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,IAAG;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;AAE7G,QAAA,OAAO,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChE,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE;AACzF;MAEa,6BAA6B,GAAG,CAAO,SAAiB,EAAE,UAAkB,KAAY;AACjG,IAAA,MAAM,SAAS,GAAG,CAAC,CAAM,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AAClD,IAAA,MAAM,gBAAgB,GAAW,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE;AACvF,IAAA,MAAM,eAAe,GAAW,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;AAEpF,IAAA,MAAM,YAAY,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC;AAE7J,IAAA,OAAO,YAAY;AACvB;;ACxEO,MAAM,aAAa,GAAG,CAAC,UAAkB,KAAI;AAChD,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;AAEjC,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;AACjC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;IAE/B,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;AAAE,QAAA,OAAO,kBAAkB;AAElE,IAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;AACpC;AAEO,MAAM,oBAAoB,GAAG,MAAK;AACrC,IAAA,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;AAErB,IAAA,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAChC,IAAA,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,IAAA,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACpD,IAAA,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACvD,IAAA,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,IAAA,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,IAAA,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAErE,IAAA,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,IAAI,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA,EAAI,YAAY,GAAG;AACpF;MAEa,cAAc,GAAG,CAAC,YAAkB,EAAE,IAAU,KAAI;AAC7D,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/B,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;IAC1B,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAE1C,IAAA,OAAO,YAAY;AACvB;AAEO,MAAM,iCAAiC,GAAG,CAAC,0BAA0D,KAAY;AACpH,IAAA,IAAI,CAAC,0BAA0B;AAAE,QAAA,OAAO,SAAS;AACjD,IAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE;IACtB,IAAI,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;IAC5I,IAAI,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE;IAE5I,IAAI,iBAAiB,IAAI,iBAAiB;AAAE,QAAA,OAAO,MAAM;AAEzD,IAAA,IAAI,IAAI,GAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG,0BAA0B,CAAC,WAAW,GAAG,0BAA0B,CAAC,WAAW,CAAC;AAC9H,IAAA,IAAI,GAAW;AAEf,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;IAEpC,IAAI,iBAAiB,EAAE;QACnB,IAAI,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;QACvD,IAAI,KAAK,GAAG,EAAE;AAAE,YAAA,OAAO,MAAM;QAE7B,GAAG,GAAG,YAAY;IACtB;SACK;QACD,IAAI,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC;AACvD,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAAE,YAAA,OAAO,MAAM;QACxC,IAAI,KAAK,GAAG,EAAE;AAAE,YAAA,OAAO,MAAM;QAE7B,GAAG,GAAG,YAAY;IACtB;IAEA,IAAI,KAAK,IAAI,CAAC;AACV,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO;SACrB,IAAI,MAAM,IAAI,CAAC;AAChB,QAAA,GAAG,IAAI,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS;SACxB,IAAI,KAAK,IAAI,CAAC;AACf,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS;SACvB,IAAI,IAAI,IAAI,CAAC;AACd,QAAA,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,KAAA,CAAO;SACpB,IAAI,KAAK,IAAI,CAAC;AACf,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO;SACrB,IAAI,OAAO,IAAI,CAAC;AACjB,QAAA,GAAG,IAAI,CAAA,EAAG,OAAO,CAAA,KAAA,CAAO;SACvB,IAAI,OAAO,IAAI,CAAC;AACjB,QAAA,GAAG,IAAI,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ;;QAEzB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ;AACvC,IAAA,OAAO,GAAG;AACd;AAEO,MAAM,YAAY,GAAG,CAAC,IAAU,KAAI;AACvC,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;IAEpC,IAAI,GAAG,GAAG,OAAO;IACjB,IAAI,KAAK,IAAI,CAAC;AACV,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO;SACrB,IAAI,MAAM,IAAI,CAAC;AAChB,QAAA,GAAG,IAAI,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS;SACxB,IAAI,KAAK,IAAI,CAAC;AACf,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS;SACvB,IAAI,IAAI,IAAI,CAAC;AACd,QAAA,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,KAAA,CAAO;SACpB,IAAI,KAAK,IAAI,CAAC;AACf,QAAA,GAAG,IAAI,CAAA,EAAG,KAAK,CAAA,KAAA,CAAO;SACrB,IAAI,OAAO,IAAI,CAAC;AACjB,QAAA,GAAG,IAAI,CAAA,EAAG,OAAO,CAAA,KAAA,CAAO;SACvB,IAAI,OAAO,IAAI,CAAC;AACjB,QAAA,GAAG,IAAI,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ;;QAEzB,GAAG,GAAG,QAAQ;AAElB,IAAA,OAAO,GAAG;AACd;;ACpHA,MAAM,SAAS,GAAW,EAAE;AAErB,MAAM,uBAAuB,GAAG,CAAC,OAAoB,KAAa;AACrE,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;AACzC,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;IAEvC,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,GAAG,WAAW,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;AAC1H;AAEO,MAAM,2BAA2B,GAAG,CAAC,sBAAkC,EAAE,eAAsC,EAAE,QAAmB,EAAE,qBAA8B,KAA8B;AACrM,IAAA,MAAM,eAAe,GAAG,sBAAsB,CAAC,aAAa;AAC5D,IAAA,MAAM,oBAAoB,GAAG,eAAe,CAAC,WAAW;AAExD,IAAA,qBAAqB,GAAG,qBAAqB,IAAI,eAAe,CAAC,YAAY;IAE7E,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,YAAY;IAErE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,GAAG,SAAS,KAAK,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC;IACvG,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,qBAAqB,GAAG,SAAS,KAAK,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC;AAEpG,IAAA,MAAM,sBAAsB,GAAG,IAAI,GAAG,OAAO;AAC7C,IAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC;AAEtE,IAAA,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE;AACxI;MAEa,oBAAoB,GAAG,CAAC,sBAAkC,EAAE,gBAA0C,KAAI;AACnH,IAAA,MAAM,eAAe,GAAG,sBAAsB,CAAC,aAAa;AAC5D,IAAA,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,gBAAgB;AAEhH,IAAA,MAAM,SAAS,GAAG,CAAC,oBAAoB,GAAG,OAAO,GAAG,WAAW,IAAI,OAAO,GAAG,CAAC;AAC9E,IAAA,MAAM,MAAM,GAAG,CAAC,qBAAqB,GAAG,IAAI,GAAG,YAAY,IAAI,IAAI,GAAG,CAAC;IAEvE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;AACrC,IAAA,GAAG,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG;IAEvC,eAAe,CAAC,KAAK,CAAC,mBAAmB,GAAG,UAAU,OAAO,CAAA,EAAA,EAAK,WAAW,CAAA,GAAA,CAAK;IAClF,eAAe,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,IAAI,CAAA,EAAA,EAAK,YAAY,CAAA,GAAA,CAAK;IAC7E,eAAe,CAAC,KAAK,CAAC,YAAY,GAAG,CAAA,EAAG,YAAY,KAAK;IACzD,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,GAAG,IAAI;AAC1C;AAEO,MAAM,qBAAqB,GAAG,CAAC,sBAAkC,EAAE,sBAAkC,EAAE,cAAuB,EAAE,eAAuB,KAAI;AAC9J,IAAA,MAAM,eAAe,GAAG,sBAAsB,CAAC,aAAa;IAE5D,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,cAAc,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,GAAG,eAAe,GAAG,CAAC,CAAA,GAAA,CAAK;IAElI,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;QAC1C,sBAAsB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;AAEhE,QAAA,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;QACtC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,SAAS,IAAI;AAC5C,QAAA,eAAe,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ;IACnD;AACJ;AAEO,MAAM,gBAAgB,GAAG,CAAC,sBAAkC,EAAE,sBAAkC,EAAE,gBAA4B,EAAE,eAAsC,KAAI;AAC7K,IAAA,MAAM,2BAA2B,GAAG,sBAAsB,CAAC,aAAa,CAAC,WAAW;IACpF,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW;IAEnE,MAAM,eAAe,GAAG,gBAAgB,EAAE,aAAa,EAAE,WAAW,IAAI,CAAC;AAEzE,IAAA,MAAM,cAAc,GAAG,2BAA2B,GAAG,eAAe;IACpE,MAAM,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;IAE9G,MAAM,cAAc,GAAG,eAAe,EAAE,MAAM,GAAG,sBAAsB,GAAG,CAAC;IAC3E,qBAAqB,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,eAAe,CAAC;AAEtG,IAAA,OAAO,sBAAsB;AACjC;;ACrEA,MAAM,oBAAoB,GAAW,EAAE,GAAG,IAAI;AAC9C,MAAM,0BAA0B,GAAW,CAAC,GAAG,EAAE,GAAG,IAAI;AAEjD,MAAM,SAAS,GAAG,CAAC,KAAe,KAAI;IACzC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAI;AAC/B,QAAA,OAAO,IAAI,GAAG,GAAG,GAAG,IAAI;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB;AAEO,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,YAA2C,EAAE,oBAA8B,KAAiB;AACzI,IAAA,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;AAC/B,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;AACtJ,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,OAAO;AAClB;AAEO,MAAM,iCAAiC,GAAG,CAAC,iBAAoC,KAAI;AACtF,IAAA,IAAI,iBAAiB;QACjB,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,gCAAgC,EAAE,GAAG,iBAAiB;AAEjG,IAAA,IAAI,OAAO,GAAgB,IAAI,WAAW,EAAE;IAE5C,IAAI,WAAW,EAAE;AACb,QAAA,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE;YAC1B,EAAE,GAAG,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE;YACjE,EAAE,GAAG,EAAE,kBAAkB,CAAC,wBAAwB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YAC/E,EAAE,GAAG,EAAE,kBAAkB,CAAC,sCAAsC,EAAE,KAAK,EAAE,gCAAgC;AAC5G,SAAA,CAAC;IACN;AAEA,IAAA,OAAO,OAAO;AAClB;AAEO,MAAM,uBAAuB,GAAG,CAAC,cAAoB,KAAI;AAC5D,IAAA,IAAI,CAAC,cAAc;QAAE;AACrB,IAAA,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,oBAAoB,GAAG,0BAA0B,IAAI,CAAA,GAAA,EAAM,cAAc,EAAE,WAAW,EAAE,CAAA,CAAE,GAAG,EAAE;AACzJ;;ACrCO,MAAM,mBAAmB,GAAG,OAAO,QAAkB,EAAE,QAAgB,EAAE,QAAiB,KAAI;AACjG,IAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClC,IAAA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AACtE;MAEa,kBAAkB,GAAG,CAAC,QAA2B,EAAE,YAAoB,KAAI;IACpF,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM;QAAE;AAEzC,IAAA,MAAM,+BAA+B,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG;AAE7G,IAAA,OAAO,SAAS,CAAC,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;AACvF;MAEa,YAAY,GAAG,CAAC,QAAgB,EAAE,IAAiB,KAAI;IAChE,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACjD,IAAA,aAAa,CAAC,IAAI,GAAG,SAAS;AAC9B,IAAA,aAAa,CAAC,QAAQ,GAAG,QAAQ;IACjC,aAAa,CAAC,KAAK,EAAE;IAErB,aAAa,CAAC,MAAM,EAAE;AACtB,IAAA,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;AAClC;;ACvBO,MAAM,iBAAiB,GAAG,CAAC,eAAuB,KAAwB;IAC7E,IAAI,yBAAyB,GAAqB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC;AAC5F,IAAA,OAAO,yBAAyB,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS;AAC7F;AAGO,MAAM,gBAAgB,GAAG,MAAK;AACjC,IAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;IACrC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAClE,IAAA,IAAI,KAAK;AACL,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC;AAEnB,IAAA,OAAO,SAAS;AACpB;;MCba,uBAAuB,GAAG,CAAC,KAAe,EAAE,IAA8B,KAAI;AACzF,IAAA,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;AAC/C;;ACJO,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAY;AACtD,IAAA,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC;AAC9B;;MCAa,iCAAiC,GAAG,CAAC,WAAmB,EAAE,MAA8B,KAAI;IACrG,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QAC5C,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC;;AAE/H,gBAAA,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC;AAErG,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACjB;MAEa,wBAAwB,GAAG,CAAC,UAAe,EAAE,gBAA0B,KAAI;IACpF,IAAI,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzG,IAAA,kBAAkB,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnE,IAAA,OAAO,UAAU;AACrB;;ACnBO,MAAM,qBAAqB,GAAG,CAAC,KAAa,KAAY;IAC7D,MAAM,WAAW,GAAW,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AAE/C,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,OAAO,WAAW,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;AAC5C,SAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,QAAA,OAAO,WAAW;AAEpB,IAAA,OAAO,WAAW;AACpB;MAEa,0BAA0B,GAAG,CACxC,cAAuB,EACvB,iBAA0C,KACxC;AACF,IAAA,IAAI,cAAc;QAChB,OAAO,iBAAiB,KAAK,SAAS,GAAG,QAAQ,GAAG,UAAU;IAEhE,OAAO,iBAAiB,KAAK,SAAS,GAAG,WAAW,GAAG,SAAS;AAClE;;ACjBO,MAAM,mCAAmC,GAAG,CACjD,aAAgE,KACtC;IAC1B,IAAI,CAAC,aAAa,EAAE,MAAM;AACxB,QAAA,OAAO,IAAI;IAEb,OAAQ,aAA0C,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,KAAI;QAC/E,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,YAAY,GAAG,GAAG;AACxG,IAAA,CAAC,CAAC;AACJ;MAEa,0BAA0B,GAAG,CACxC,aAAgE,EAChE,KAAa,KACa;IAC1B,IAAI,CAAC,aAAa,EAAE,MAAM;AACxB,QAAA,OAAO,IAAI;IAEb,OAAQ,aAA0C,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,YAAY,KAAI;QAC/E,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,YAAY,GAAG,GAAG;AACpF,IAAA,CAAC,CAAC;AACJ;;ACnBO,MAAM,MAAM,GAAG,CAAC,MAAc,KAAI;IACrC,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;AACzC,IAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACrB,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AAEhC,IAAA,OAAO,IAAI;AACf;AAEO,MAAM,oBAAoB,GAAG,CAAC,IAAY,KAAI;AACjD,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD;AAEO,MAAM,sBAAsB,GAAG,CAAC,IAAY,KAAI;AACnD,IAAA,IAAI,CAAC,IAAI;QAAE;AACX,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD;AAEO,MAAM,qBAAqB,GAAG,CAAC,SAAiB,KAAI;AACvD,IAAA,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE;AAEO,MAAM,cAAc,GAAG,CAAC,IAAY,KAAY;AACnD,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD;MAEa,0CAA0C,GAAG,CAAC,MAAc,EAAE,MAAc,KAAY;IACjG,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;AAEpE,IAAA,IAAI,OAAO;AACP,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI,EAAG,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;AAE/G,IAAA,OAAO,MAAM;AACjB;;ACpCA;;AAEG;;;;"}
|
|
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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"}
|