herum-shared 0.1.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/animations/index.d.ts +5 -0
- package/assets/feed/exercise/exerciseAchivment.svg +11 -0
- package/assets/feed/icons/active/audio.svg +5 -0
- package/assets/feed/icons/active/collection.svg +15 -0
- package/assets/feed/icons/active/exercise.svg +13 -0
- package/assets/feed/icons/active/generic-file.svg +8 -0
- package/assets/feed/icons/active/image.svg +11 -0
- package/assets/feed/icons/active/link.svg +6 -0
- package/assets/feed/icons/active/pdf.svg +14 -0
- package/assets/feed/icons/active/presentation.svg +11 -0
- package/assets/feed/icons/active/quiz.svg +17 -0
- package/assets/feed/icons/active/story.svg +7 -0
- package/assets/feed/icons/active/video.svg +11 -0
- package/assets/feed/icons/comment.svg +12 -0
- package/assets/feed/icons/error/audio.svg +5 -0
- package/assets/feed/icons/error/collection.svg +15 -0
- package/assets/feed/icons/error/exercise.svg +13 -0
- package/assets/feed/icons/error/generic-file.svg +8 -0
- package/assets/feed/icons/error/image.svg +11 -0
- package/assets/feed/icons/error/pdf.svg +14 -0
- package/assets/feed/icons/error/presentation.svg +11 -0
- package/assets/feed/icons/error/quiz.svg +17 -0
- package/assets/feed/icons/error/story.svg +7 -0
- package/assets/feed/icons/error/video.svg +11 -0
- package/assets/feed/icons/eye.svg +13 -0
- package/assets/feed/icons/garbage-secondary.svg +14 -0
- package/assets/feed/icons/garbage.svg +14 -0
- package/assets/feed/icons/green-x.svg +165 -0
- package/assets/feed/icons/hamburger.svg +2 -0
- package/assets/feed/icons/inactive/audio.svg +5 -0
- package/assets/feed/icons/inactive/exercise.svg +17 -0
- package/assets/feed/icons/inactive/link.svg +6 -0
- package/assets/feed/icons/inactive/pdf.svg +19 -0
- package/assets/feed/icons/inactive/presentation.svg +13 -0
- package/assets/feed/icons/inactive/quiz.svg +25 -0
- package/assets/feed/icons/inactive/story.svg +7 -0
- package/assets/feed/icons/inactive/video.svg +13 -0
- package/assets/feed/icons/status/Group 856.svg +11 -0
- package/assets/feed/icons/status/almostDone.svg +11 -0
- package/assets/feed/icons/status/done.svg +11 -0
- package/assets/feed/icons/status/inProgress.svg +13 -0
- package/assets/feed/icons/white-chevron.svg +3 -0
- package/assets/feed/icons/wide-mode.png +0 -0
- package/assets/feed/icons/wide-mode.svg +7 -0
- package/assets/feed/icons/wide-mode2.svg +8 -0
- package/assets/files-icons/.image.svg +11 -0
- package/assets/files-icons/.mp4.png +0 -0
- package/assets/files-icons/.mp4.svg +12 -0
- package/assets/files-icons/.pdf.png +0 -0
- package/assets/files-icons/.pdf.svg +16 -0
- package/assets/files-icons/.pptx.png +0 -0
- package/assets/files-icons/.pptx.svg +12 -0
- package/assets/files-icons/.video.svg +12 -0
- package/assets/files-icons/default-file.png +0 -0
- package/assets/files-icons/generic-file.svg +8 -0
- package/assets/files-icons/story.png +0 -0
- package/assets/files-icons/story.svg +3 -0
- package/assets/files-icons/upload-file.svg +4 -0
- package/assets/general/calendar.svg +12 -0
- package/assets/general/chevron.svg +3 -0
- package/assets/general/clock.svg +4 -0
- package/assets/general/closed-chevron.png +0 -0
- package/assets/general/college-calendar.svg +12 -0
- package/assets/general/comment-icon.svg +12 -0
- package/assets/general/dialogX.png +0 -0
- package/assets/general/errorOwl.png +0 -0
- package/assets/general/green-x.svg +4 -0
- package/assets/general/grey-chevron.svg +3 -0
- package/assets/general/keyboardLink.svg +15 -0
- package/assets/general/logo.png +0 -0
- package/assets/general/noCollectionsMessage.svg +59 -0
- package/assets/general/open-chevron.png +0 -0
- package/assets/general/owl-logo.svg +98 -0
- package/assets/general/secondary-x.svg +3 -0
- package/assets/general/user.svg +15 -0
- package/assets/general/white-chevron.svg +3 -0
- package/assets/quiz/greenHeaderArrow.svg +12 -0
- package/assets/quiz/greyHeaderArrow.svg +12 -0
- package/assets/quiz/happyOwl.svg +126 -0
- package/assets/quiz/sadOwl.svg +94 -0
- package/assets/quiz/skip.svg +5 -0
- package/assets/shared/atoms/inputs/herum-inputs.component.scss +56 -0
- package/assets/shared/atoms/selects/herum-selects.component.scss +141 -0
- package/assets/shared/atoms/uploadingStatuses/error.svg +8 -0
- package/assets/shared/atoms/uploadingStatuses/information.svg +6 -0
- package/assets/shared/atoms/uploadingStatuses/success.svg +9 -0
- package/assets/shared/audio-images/gray-pause.svg +4 -0
- package/assets/shared/audio-images/gray-play.svg +3 -0
- package/assets/shared/audio-images/next15.svg +7 -0
- package/assets/shared/audio-images/pause.svg +4 -0
- package/assets/shared/audio-images/play.svg +3 -0
- package/assets/shared/audio-images/previous15.svg +7 -0
- package/assets/shared/background/cubes.png +0 -0
- package/assets/shared/background/cubes.svg +1900 -0
- package/assets/shared/icons/V.svg +3 -0
- package/assets/shared/icons/X.svg +3 -0
- package/assets/shared/icons/active-clipboard.svg +7 -0
- package/assets/shared/icons/active-drag.svg +44 -0
- package/assets/shared/icons/active-upload.svg +3 -0
- package/assets/shared/icons/add.svg +3 -0
- package/assets/shared/icons/attachUsers.png +0 -0
- package/assets/shared/icons/big-no-result-owl.png +0 -0
- package/assets/shared/icons/bigV.svg +3 -0
- package/assets/shared/icons/celeb-owl.png +0 -0
- package/assets/shared/icons/clock.svg +3 -0
- package/assets/shared/icons/drag.svg +44 -0
- package/assets/shared/icons/edit.svg +3 -0
- package/assets/shared/icons/editCollection.png +0 -0
- package/assets/shared/icons/femaleAvatar.svg +80 -0
- package/assets/shared/icons/inactive-clipboard.svg +7 -0
- package/assets/shared/icons/input/X.png +0 -0
- package/assets/shared/icons/input/X.svg +3 -0
- package/assets/shared/icons/input/drag.svg +6 -0
- package/assets/shared/icons/input/green-search.png +0 -0
- package/assets/shared/icons/input/grey-search.png +0 -0
- package/assets/shared/icons/input/search.svg +4 -0
- package/assets/shared/icons/maleAvatar.svg +55 -0
- package/assets/shared/icons/no-result-owl.png +0 -0
- package/assets/shared/icons/resources.svg +6 -0
- package/assets/shared/icons/secondary-x.svg +3 -0
- package/assets/shared/icons/settings.png +0 -0
- package/assets/shared/icons/stepper/white-v.svg +3 -0
- package/assets/shared/icons/table/edit.svg +3 -0
- package/assets/shared/icons/target.png +0 -0
- package/assets/shared/icons/upload.png +0 -0
- package/assets/shared/icons/upload.svg +7 -0
- package/assets/shared/icons/user.svg +8 -0
- package/assets/shared/icons/video/Play.PNG +0 -0
- package/assets/shared/icons/video/back10.PNG +0 -0
- package/assets/shared/icons/video/back10.svg +7 -0
- package/assets/shared/icons/video/download.PNG +0 -0
- package/assets/shared/icons/video/download.svg +4 -0
- package/assets/shared/icons/video/fullScreen.PNG +0 -0
- package/assets/shared/icons/video/fullScreen.svg +7 -0
- package/assets/shared/icons/video/minimize.png +0 -0
- package/assets/shared/icons/video/mute.png +0 -0
- package/assets/shared/icons/video/mute.svg +7 -0
- package/assets/shared/icons/video/next10.PNG +0 -0
- package/assets/shared/icons/video/next10.svg +7 -0
- package/assets/shared/icons/video/pause.PNG +0 -0
- package/assets/shared/icons/video/pause.svg +5 -0
- package/assets/shared/icons/video/pictureInPicture.png +0 -0
- package/assets/shared/icons/video/pictureInPicture.svg +5 -0
- package/assets/shared/icons/video/pictureInPictureOff.svg +7 -0
- package/assets/shared/icons/video/play.svg +4 -0
- package/assets/shared/icons/video/primary-play.png +0 -0
- package/assets/shared/icons/video/primaryPlay.svg +22 -0
- package/assets/shared/icons/video/sound.svg +8 -0
- package/assets/shared/icons/video/speaker.PNG +0 -0
- package/assets/shared/trackChanges/edit.svg +11 -0
- package/assets/shared/trackChanges/message-plus.svg +14 -0
- package/assets/shared/trackChanges/show-comments.svg +5 -0
- package/assets/shared/trackChanges/text-reference.svg +3 -0
- package/assets/shared/trackChanges/trash.svg +9 -0
- package/atoms/index.d.ts +836 -0
- package/constants/index.d.ts +795 -0
- package/decorators/index.d.ts +3 -0
- package/dialogs/index.d.ts +41 -0
- package/directives/index.d.ts +55 -0
- package/environment/index.d.ts +129 -0
- package/errors/index.d.ts +26 -0
- package/fesm2022/herum-shared-animations.mjs +41 -0
- package/fesm2022/herum-shared-animations.mjs.map +1 -0
- package/fesm2022/herum-shared-atoms.mjs +2919 -0
- package/fesm2022/herum-shared-atoms.mjs.map +1 -0
- package/fesm2022/herum-shared-constants.mjs +711 -0
- package/fesm2022/herum-shared-constants.mjs.map +1 -0
- package/fesm2022/herum-shared-decorators.mjs +12 -0
- package/fesm2022/herum-shared-decorators.mjs.map +1 -0
- package/fesm2022/herum-shared-dialogs.mjs +113 -0
- package/fesm2022/herum-shared-dialogs.mjs.map +1 -0
- package/fesm2022/herum-shared-directives.mjs +226 -0
- package/fesm2022/herum-shared-directives.mjs.map +1 -0
- package/fesm2022/herum-shared-environment.mjs +10 -0
- package/fesm2022/herum-shared-environment.mjs.map +1 -0
- package/fesm2022/herum-shared-errors.mjs +71 -0
- package/fesm2022/herum-shared-errors.mjs.map +1 -0
- package/fesm2022/herum-shared-fetched-message.mjs +118 -0
- package/fesm2022/herum-shared-fetched-message.mjs.map +1 -0
- package/fesm2022/herum-shared-herum-types.mjs +106 -0
- package/fesm2022/herum-shared-herum-types.mjs.map +1 -0
- package/fesm2022/herum-shared-molecules.mjs +1530 -0
- package/fesm2022/herum-shared-molecules.mjs.map +1 -0
- package/fesm2022/herum-shared-mongo-molecules.mjs +269 -0
- package/fesm2022/herum-shared-mongo-molecules.mjs.map +1 -0
- package/fesm2022/herum-shared-mongo-services.mjs +441 -0
- package/fesm2022/herum-shared-mongo-services.mjs.map +1 -0
- package/fesm2022/herum-shared-mongo.mjs +729 -0
- package/fesm2022/herum-shared-mongo.mjs.map +1 -0
- package/fesm2022/herum-shared-objectsExample.mjs +190 -0
- package/fesm2022/herum-shared-objectsExample.mjs.map +1 -0
- package/fesm2022/herum-shared-pipes.mjs +406 -0
- package/fesm2022/herum-shared-pipes.mjs.map +1 -0
- package/fesm2022/herum-shared-services.mjs +1107 -0
- package/fesm2022/herum-shared-services.mjs.map +1 -0
- package/fesm2022/herum-shared-static-services.mjs +140 -0
- package/fesm2022/herum-shared-static-services.mjs.map +1 -0
- package/fesm2022/herum-shared-table.mjs +837 -0
- package/fesm2022/herum-shared-table.mjs.map +1 -0
- package/fesm2022/herum-shared-testsObjects.mjs +5722 -0
- package/fesm2022/herum-shared-testsObjects.mjs.map +1 -0
- package/fesm2022/herum-shared-tokens.mjs +13 -0
- package/fesm2022/herum-shared-tokens.mjs.map +1 -0
- package/fesm2022/herum-shared-utils.mjs +380 -0
- package/fesm2022/herum-shared-utils.mjs.map +1 -0
- package/fesm2022/herum-shared-validators.mjs +76 -0
- package/fesm2022/herum-shared-validators.mjs.map +1 -0
- package/fesm2022/herum-shared.mjs +11709 -0
- package/fesm2022/herum-shared.mjs.map +1 -0
- package/fetched-message/index.d.ts +49 -0
- package/herum-types/index.d.ts +198 -0
- package/index.d.ts +2946 -0
- package/molecules/index.d.ts +458 -0
- package/mongo/index.d.ts +175 -0
- package/mongo/molecules/index.d.ts +76 -0
- package/mongo/services/index.d.ts +98 -0
- package/objectsExample/index.d.ts +11 -0
- package/package.json +128 -0
- package/pipes/index.d.ts +93 -0
- package/services/index.d.ts +266 -0
- package/static-services/index.d.ts +25 -0
- package/styles/_mixin.scss +86 -0
- package/styles/collection-wizard-layout.component.scss +70 -0
- package/styles/dialogs.scss +49 -0
- package/styles/forms.scss +18 -0
- package/styles/overView.scss +115 -0
- package/styles/variables/_colors.college.scss +65 -0
- package/styles/variables/_colors.scss +161 -0
- package/styles/variables/_sizes.scss +73 -0
- package/styles/wizard-steps-layout.scss +21 -0
- package/table/index.d.ts +233 -0
- package/testsObjects/index.d.ts +91 -0
- package/tokens/index.d.ts +8 -0
- package/utils/index.d.ts +92 -0
- package/validators/index.d.ts +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"herum-shared-atoms.mjs","sources":["../../../projects/herum-shared/atoms/college-loader/college-loader.component.ts","../../../projects/herum-shared/atoms/college-loader/college-loader.component.html","../../../projects/herum-shared/atoms/herum-breadcrumbs/slice-breadcrumbs.pipe.ts","../../../projects/herum-shared/atoms/herum-breadcrumbs/herum-breadcrumbs.component.ts","../../../projects/herum-shared/atoms/herum-breadcrumbs/herum-breadcrumbs.component.html","../../../projects/herum-shared/atoms/herum-button/herum-button.component.ts","../../../projects/herum-shared/atoms/herum-button/herum-button.component.html","../../../projects/herum-shared/atoms/herum-checkbox/herum-checkbox.component.ts","../../../projects/herum-shared/atoms/herum-checkbox/herum-checkbox.component.html","../../../projects/herum-shared/atoms/herum-chip/herum-chip.component.ts","../../../projects/herum-shared/atoms/herum-chip/herum-chip.component.html","../../../projects/herum-shared/atoms/herum-circular-progress-bar/herum-circular-progress-bar.component.ts","../../../projects/herum-shared/atoms/herum-circular-progress-bar/herum-circular-progress-bar.component.html","../../../projects/herum-shared/atoms/herum-date-picker/herum-date-picker.component.ts","../../../projects/herum-shared/atoms/herum-date-picker/herum-date-picker.component.html","../../../projects/herum-shared/atoms/herum-download-file/herum-download-file.component.ts","../../../projects/herum-shared/atoms/herum-download-file/herum-download-file.component.html","../../../projects/herum-shared/atoms/herum-ellipsis-loader/herum-ellipsis-loader.component.ts","../../../projects/herum-shared/atoms/herum-ellipsis-loader/herum-ellipsis-loader.component.html","../../../projects/herum-shared/atoms/herum-form-control/herum-form-control.ts","../../../projects/herum-shared/atoms/herum-icon-label/herum-icon-label.component.ts","../../../projects/herum-shared/atoms/herum-icon-label/herum-icon-label.component.html","../../../projects/herum-shared/atoms/herum-indeterminate/herum-indeterminate.component.ts","../../../projects/herum-shared/atoms/herum-indeterminate/herum-indeterminate.component.html","../../../projects/herum-shared/atoms/herum-input-field/conditional-form-control-name.directive.ts","../../../projects/herum-shared/atoms/herum-input-field/herum-input-field.component.ts","../../../projects/herum-shared/atoms/herum-input-field/herum-input-field.component.html","../../../projects/herum-shared/atoms/herum-logo/herum-logo.component.ts","../../../projects/herum-shared/atoms/herum-logo/herum-logo.component.html","../../../projects/herum-shared/atoms/herum-options-list/herum-options-list.component.ts","../../../projects/herum-shared/atoms/herum-options-list/herum-options-list.component.html","../../../projects/herum-shared/atoms/herum-recursive-hierarchy-options-list/herum-recursive-hierarchy-options-list.component.ts","../../../projects/herum-shared/atoms/herum-recursive-hierarchy-options-list/herum-recursive-hierarchy-options-list.component.html","../../../projects/herum-shared/atoms/herum-multi-select/herum-multi-select.component.ts","../../../projects/herum-shared/atoms/herum-multi-select/herum-multi-select.component.html","../../../projects/herum-shared/atoms/herum-narrow-collection-menu-item/herum-narrow-collection-menu-item.component.ts","../../../projects/herum-shared/atoms/herum-narrow-collection-menu-item/herum-narrow-collection-menu-item.component.html","../../../projects/herum-shared/atoms/herum-no-result-message/herum-no-result-message.component.ts","../../../projects/herum-shared/atoms/herum-no-result-message/herum-no-result-message.component.html","../../../projects/herum-shared/atoms/herum-paginator/herum-paginator.component.ts","../../../projects/herum-shared/atoms/herum-paginator/herum-paginator.component.html","../../../projects/herum-shared/atoms/herum-panel-links/herum-panel-links.component.ts","../../../projects/herum-shared/atoms/herum-panel-links/herum-panel-links.component.html","../../../projects/herum-shared/atoms/herum-progress-bar/herum-progress-bar.component.ts","../../../projects/herum-shared/atoms/herum-progress-bar/herum-progress-bar.component.html","../../../projects/herum-shared/atoms/herum-quiz-header-item/herum-quiz-header-item.component.ts","../../../projects/herum-shared/atoms/herum-quiz-header-item/herum-quiz-header-item.component.html","../../../projects/herum-shared/atoms/herum-select/herum-select.component.ts","../../../projects/herum-shared/atoms/herum-select/herum-select.component.html","../../../projects/herum-shared/atoms/herum-slider/herum-slider.component.ts","../../../projects/herum-shared/atoms/herum-slider/herum-slider.component.html","../../../projects/herum-shared/atoms/herum-spinner/herum-spinner.component.ts","../../../projects/herum-shared/atoms/herum-spinner/herum-spinner.component.html","../../../projects/herum-shared/atoms/herum-switch/herum-switch.component.ts","../../../projects/herum-shared/atoms/herum-switch/herum-switch.component.html","../../../projects/herum-shared/atoms/herum-text-area/herum-text-area.component.ts","../../../projects/herum-shared/atoms/herum-text-area/herum-text-area.component.html","../../../projects/herum-shared/atoms/herum-time-picker/herum-time-picker.component.ts","../../../projects/herum-shared/atoms/herum-time-picker/herum-time-picker.component.html","../../../projects/herum-shared/atoms/herum-toggle-button/herum-toggle-button.component.ts","../../../projects/herum-shared/atoms/herum-toggle-button/herum-toggle-button.component.html","../../../projects/herum-shared/atoms/herum-upload-file/herum-upload-file.component.ts","../../../projects/herum-shared/atoms/herum-upload-file/herum-upload-file.component.html","../../../projects/herum-shared/atoms/herum-video-select/herum-video-select.component.ts","../../../projects/herum-shared/atoms/herum-video-select/herum-video-select.component.html","../../../projects/herum-shared/atoms/radio-button/radio-button.component.ts","../../../projects/herum-shared/atoms/radio-button/radio-button.component.html","../../../projects/herum-shared/atoms/rounded-vertical-menu/rounded-vertical-menu.component.ts","../../../projects/herum-shared/atoms/rounded-vertical-menu/rounded-vertical-menu.component.html","../../../projects/herum-shared/atoms/track-text-changes-notes/track-text-changes-notes.component.ts","../../../projects/herum-shared/atoms/track-text-changes-notes/track-text-changes-notes.component.html","../../../projects/herum-shared/atoms/user-profile-image/user-profile-image.component.ts","../../../projects/herum-shared/atoms/user-profile-image/user-profile-image.component.html","../../../projects/herum-shared/atoms/users-profile-preview/users-profile-preview.component.ts","../../../projects/herum-shared/atoms/users-profile-preview/users-profile-preview.component.html","../../../projects/herum-shared/atoms/atoms-module.ts","../../../projects/herum-shared/atoms/herum-shared-atoms.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'college-loader',\r\n templateUrl: './college-loader.component.html',\r\n styleUrls: ['./college-loader.component.scss']\r\n})\r\nexport class CollegeLoaderComponent implements OnInit {\r\n\r\n bars = new Array(8).fill(8);\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n}","<div class=\"container\">\r\n <div class=\"bar\" *ngFor=\"let bar of bars\"></div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\n@Pipe({\r\n standalone: false,\r\n name: 'sliceBreadcrumbs'\r\n})\r\nexport class SliceBreadcrumbsPipe implements PipeTransform {\r\n\r\n transform(items: IdentifiedEntity[], ...args: unknown[]): IdentifiedEntity[] {\r\n if (!items) return [];\r\n\r\n items = [...items]\r\n\r\n if (items?.length > 4)\r\n items = items.slice(items?.length - 4, items?.length);\r\n\r\n return items;\r\n }\r\n}","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\nconst itemInput: string = 'item';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-breadcrumbs',\r\n templateUrl: './herum-breadcrumbs.component.html',\r\n styleUrls: ['./herum-breadcrumbs.component.scss']\r\n})\r\nexport class HerumBreadcrumbsComponent {\r\n\r\n @Input() items!: IdentifiedEntity[];\r\n @Input() itemToSet!: IdentifiedEntity;\r\n @Output() itemEmitter = new EventEmitter<IdentifiedEntity[]>();\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes[itemInput]?.currentValue && changes[itemInput].firstChange)\r\n this.handleItemInput(this.itemToSet);\r\n }\r\n\r\n _onClick(itemIndex: number, isLastItem: boolean) {\r\n if (isLastItem || this.items.length === 1)\r\n return;\r\n\r\n const numberOfItemForRemoval = this.items.length - itemIndex - 1;\r\n const startIndexForRemoval = itemIndex + 1;\r\n\r\n this.items.splice(startIndexForRemoval, numberOfItemForRemoval);\r\n this.itemEmitter.emit(this.items);\r\n }\r\n\r\n private handleItemInput(itemInput: IdentifiedEntity) {\r\n this.items.some(item => item.id === itemInput.id) ? this.updateCurrentItem(itemInput) : this.addItem(itemInput);\r\n }\r\n\r\n private updateCurrentItem(updatedItem: IdentifiedEntity) {\r\n const updatedItemIndex = this.items.findIndex(item => item.id === updatedItem.id);\r\n\r\n if (updatedItemIndex !== (this.items.length - 1))\r\n this._onClick(updatedItemIndex, false);\r\n }\r\n\r\n private addItem(item: IdentifiedEntity) {\r\n this.items.push(item);\r\n }\r\n}","<div class=\"d-flex\">\r\n <li *ngFor=\"let item of (items | sliceBreadcrumbs), let index = index, let last = last\">\r\n <span class=\"item clickable-text\" [ngClass]=\"{'last-item':last}\"\r\n (click)=\"_onClick(index,last)\">{{item.name}}</span>\r\n\r\n <img class=\"chevron\" *ngIf=\"!last\" src=\"../../assets/general/grey-chevron.svg\">\r\n </li>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-button',\r\n templateUrl: './herum-button.component.html',\r\n styleUrls: ['./herum-button.component.scss']\r\n})\r\nexport class HerumButtonComponent {\r\n\r\n @Input() type: 'primary' | 'secondary' | 'ghost' | 'white' = 'primary';\r\n @Input() color: 'regular' | 'error' = 'regular';\r\n @Input() size: 'fit' | 'small' | 'medium' | 'medium-square' | 'big' = 'medium';\r\n @Input() roundedCorners: 'up' | 'down' | 'default' = 'default';\r\n @Input() disabled: boolean = false;\r\n @Input() isLoading: boolean = false;\r\n @Input() name: string;\r\n}","<button userAction class=\"herum-button shadow\" [name]=\"name\"\r\n [ngClass]=\"[type, color ?? '', size, roundedCorners + '-rounded-corners', isLoading ? 'skeleton' : '']\"\r\n [disabled]=\"disabled\">\r\n <ng-content></ng-content>\r\n</button>","import { Component, Input, Output, EventEmitter, forwardRef, Inject, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { HerumTableParams } from 'herum-shared/herum-types';\r\nimport { HERUM_SHARED_CONFIG_TOKEN, EnvironmentConfig } from 'herum-shared/environment';\r\n\r\nconst CUSTOM_CHECKBOX_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumCheckboxComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-checkbox',\r\n templateUrl: './herum-checkbox.component.html',\r\n styleUrls: ['./herum-checkbox.component.scss'],\r\n providers: [CUSTOM_CHECKBOX_VALUE_ACCESSOR]\r\n})\r\nexport class HerumCheckboxComponent implements ControlValueAccessor, OnInit {\r\n\r\n @Input() type: 'checked' | 'indeterminate' | 'error' | 'disabled' | 'unchecked';\r\n @Input() isChecked: boolean = false;\r\n @Input() isBlocked: boolean = false;\r\n @Output() checkedEmitter = new EventEmitter<boolean>();\r\n\r\n indeterminate: string;\r\n checked: string;\r\n error: string;\r\n checkboxClasses: string = '';\r\n params: HerumTableParams;\r\n\r\n constructor(@Inject(HERUM_SHARED_CONFIG_TOKEN) private environmentConfig: EnvironmentConfig) { }\r\n\r\n ngOnInit(): void {\r\n this.indeterminate = this.environmentConfig.checkboxTypes.indeterminate;\r\n this.checked = this.environmentConfig.checkboxTypes.checked;\r\n this.error = this.environmentConfig.checkboxTypes.error;\r\n }\r\n\r\n _onClick() {\r\n if (this.isBlocked)\r\n return;\r\n\r\n if (this.type === this.environmentConfig.checkboxTypes.indeterminate || this.type === this.environmentConfig.checkboxTypes.checked) {\r\n this.type = undefined;\r\n this.isChecked = false;\r\n }\r\n else if (this.type === this.environmentConfig.checkboxTypes.unchecked)\r\n this.isChecked = false;\r\n else\r\n this.isChecked = !this.isChecked;\r\n\r\n if (this.params) {\r\n this.params.value = this.isChecked;\r\n this.params.context.componentParent.selectedRowByChildComponent(this.params);\r\n }\r\n\r\n this.checkedEmitter.emit(this.isChecked); // it has to be refactor - working with object\r\n this.onChange(this.isChecked);// it has to be refactor - working with object\r\n }\r\n\r\n getCheckboxClasses(): string {\r\n let classes: string = ``;\r\n\r\n if (this.type)\r\n classes += `${this.type} `;\r\n\r\n if (this.type !== this.environmentConfig.checkboxTypes.disabled)\r\n classes += 'full-opacity '\r\n\r\n if (this.isChecked && !this.type)\r\n classes += `checked `;\r\n\r\n return classes.trim();\r\n }\r\n\r\n onChange: (value: any) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(value: { type: any, isChecked: boolean } | boolean): void {\r\n if (value === null || value === undefined)\r\n return;\r\n\r\n if (typeof value === 'boolean') {\r\n this.isChecked = value;\r\n return;\r\n }\r\n\r\n this.type = value.type;\r\n this.isChecked = value.isChecked;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}","<label class=\"custom-checkbox-container\" [ngClass]=\"isBlocked ? 'not-clickable' : 'cursor-pointer'\"\r\n (click)=\"_onClick()\">\r\n <span class=\"unchecked\" [ngClass]=\"getCheckboxClasses()\">\r\n <img *ngIf=\"(isChecked && !type) || type===checked\" class=\"custom-checkmark-image\"\r\n src=\"assets/shared/icons/V.svg\" alt=\"Custom Checkmark\">\r\n\r\n <img class=\"custom-checkmark-image d-block\" *ngIf=\"type===error\" src=\"assets/shared/icons/X.svg\"\r\n alt=\"Custom Checkmark\">\r\n\r\n <div *ngIf=\"type===indeterminate\" class=\"indeterminate-shape\"></div>\r\n </span>\r\n</label>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nconst splitKey: string = 'וגם';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-chip',\r\n templateUrl: './herum-chip.component.html',\r\n styleUrls: ['./herum-chip.component.scss']\r\n})\r\nexport class HerumChipComponent {\r\n\r\n @Input() title: string = '';\r\n @Input() isDeleteButtonNeeded: boolean = true;\r\n @Input() isActive = false;\r\n @Input() isMenuMode: boolean = false;\r\n @Input() type: 'positive' | 'negative' | 'regular' = 'regular';\r\n\r\n @Output() remove = new EventEmitter<boolean>();\r\n @Output() chipsActivation = new EventEmitter<boolean>();\r\n\r\n _onRemove() {\r\n this.remove.emit(true);\r\n }\r\n\r\n _onChipsSelect() {\r\n if (this.isMenuMode)\r\n this.isActive = !this.isActive;\r\n\r\n this.chipsActivation.emit(this.isActive);\r\n }\r\n\r\n get splittedTitle() {\r\n if (!this.isTitleToBeSplitted)\r\n return null;\r\n\r\n const titleParts = this.title.split(' ');\r\n const splitKeyIndices = [];\r\n\r\n titleParts.forEach((part, index) => {\r\n if (part === splitKey)\r\n splitKeyIndices.push(index);\r\n });\r\n\r\n let html: string = '';\r\n let lastIndex: number = 0;\r\n\r\n splitKeyIndices.forEach((index) => {\r\n html += `<span>${titleParts.slice(lastIndex, index).join(' ')}</span>`;\r\n html += ` <b>${titleParts[index]}</b> `;\r\n lastIndex = index + 1;\r\n });\r\n\r\n html += `<span>${titleParts.slice(lastIndex).join(' ')}</span>`;\r\n\r\n return html;\r\n }\r\n\r\n\r\n get isTitleToBeSplitted() {\r\n return this.title?.includes(splitKey);\r\n }\r\n}","<div class=\"herum-chip-container\" [class]=\"type\" [ngClass]=\"{'active':isActive, 'menu-chip':isMenuMode}\" (click)=\"_onChipsSelect()\"\r\n dir=\"rtl\">\r\n\r\n <ng-container *ngIf=\"isTitleToBeSplitted; else defaultTitle\">\r\n <span [innerHTML]=\"splittedTitle | safeHtml\"></span>\r\n </ng-container>\r\n\r\n <ng-template #defaultTitle>{{title}}</ng-template>\r\n\r\n <img *ngIf=\"isDeleteButtonNeeded\" src=\"../../assets/general/secondary-x.svg\" (click)=\"_onRemove()\">\r\n</div>","import { Component, Input, SimpleChanges } from '@angular/core';\r\n\r\nconst defaultFirstGradient: string = 'var(--icons-color)';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-circular-progress-bar',\r\n templateUrl: './herum-circular-progress-bar.component.html',\r\n styleUrls: ['./herum-circular-progress-bar.component.scss']\r\n})\r\nexport class HerumCircularProgressBarComponent {\r\n\r\n @Input() percentage: number = 65;\r\n @Input() fill: boolean = false;\r\n @Input() size: 'default-size' | 'big-size' = 'default-size';\r\n @Input() firstGradient = defaultFirstGradient;\r\n @Input() fillColor = 'white';\r\n @Input() showPercentage: boolean = false;\r\n @Input() displayedContent: number | string;\r\n @Input() displayedContentColorMatchesGradientColor: boolean = false;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['percentage'])\r\n this.displayedContent = this.displayedContent || this.percentage;\r\n\r\n if (changes['firstGradient'])\r\n this.firstGradient = this.firstGradient || defaultFirstGradient;\r\n }\r\n\r\n getGradientStyle() {\r\n return this.fill ?\r\n `radial-gradient(closest-side, transparent 79%, transparent 80% 100%), conic-gradient(${this.firstGradient} ${this.percentage}%, #1609291F 80%)` :\r\n `radial-gradient(closest-side, ${this.fillColor} 79%, transparent 80% 100%), conic-gradient(${this.firstGradient} ${this.percentage}%, #1609291F 0)`;\r\n }\r\n\r\n get percentageText() {\r\n return this.percentage >=0 ? this.percentage : '-';\r\n }\r\n}","<div class=\"progress-bar\" [ngClass]=\"size\" [style.background-image]=\"getGradientStyle()\">\r\n <span *ngIf=\"showPercentage\" class=\"percentage-text\"\r\n [style.color]=\"displayedContentColorMatchesGradientColor ? firstGradient : null\">{{ displayedContent }}</span>\r\n <progress value=\"38\" min=\"0\" max=\"100\" style=\"visibility:hidden;height:0;width:0;\"></progress>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { DateRange, MatCalendar } from '@angular/material/datepicker';\r\nimport { calendarActiveColorCssVariable, calendarHoverColorCssVariable, calendarLibrarySelector, calendarLibraryBodyCellSelector } from 'herum-shared/constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-date-picker',\r\n templateUrl: './herum-date-picker.component.html',\r\n styleUrls: ['./herum-date-picker.component.scss']\r\n})\r\nexport class HerumDatePickerComponent {\r\n\r\n @Input() activeColor: string = 'green';\r\n @Input() hoverColor: string = 'yellow';\r\n\r\n @Input() minDate!: Date;\r\n @Input() rangeMode: boolean = false;\r\n @Input() selectedDate: Date | DateRange<Date> = new Date();\r\n\r\n @Output() dateChange = new EventEmitter<Date | DateRange<Date>>();\r\n @ViewChild('calendar') calendar!: MatCalendar<Date | DateRange<Date>>;\r\n\r\n hostElement!: HTMLElement;\r\n startDate!: Date;\r\n endDate: Date | null;\r\n matCalendarContainerHeight: number;\r\n\r\n constructor(private elementRef: ElementRef, private dateAdapter: DateAdapter<Date>, private changeDetectorRef: ChangeDetectorRef) {\r\n this.hostElement = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.hostElement)\r\n this.setStyleProperties(changes);\r\n\r\n if (changes['selectedDate']?.currentValue)\r\n this.handleSelectedDateChange();\r\n }\r\n\r\n private setStyleProperties(changes: SimpleChanges) {\r\n if (changes['activeColor']?.currentValue)\r\n this.hostElement.style.setProperty(calendarActiveColorCssVariable, this.activeColor);\r\n\r\n if (changes['hoverColor']?.currentValue)\r\n this.hostElement.style.setProperty(calendarHoverColorCssVariable, this.hoverColor);\r\n }\r\n\r\n private handleSelectedDateChange() {\r\n if (this.calendar && this.selectedDate instanceof Date)\r\n this.calendar.activeDate = this.selectedDate;\r\n\r\n if (this.selectedDate instanceof DateRange) {\r\n this.setRangeDates(this.selectedDate.start);\r\n this.setRangeDates(this.selectedDate.end);\r\n\r\n if (this.calendar)\r\n this.calendar.activeDate = this.startDate;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setMatCalendarContainerHeight();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n private setMatCalendarContainerHeight() {\r\n const calendarHeight = this.hostElement.querySelector(calendarLibrarySelector)?.clientHeight;\r\n const cellHeight = this.hostElement.querySelector(calendarLibraryBodyCellSelector)?.clientHeight;\r\n\r\n // if (calendarHeight && cellHeight)\r\n // this.matCalendarContainerHeight = calendarHeight + cellHeight;\r\n }\r\n\r\n _onSelectedDateChange(date: Date): void {\r\n if (!this.rangeMode) {\r\n this.handleSingleDateMode(date)\r\n return;\r\n }\r\n\r\n this.handleRangeMode(date);\r\n }\r\n\r\n private handleSingleDateMode(date: Date) {\r\n this.selectedDate = date;\r\n this.dateChange.emit(date);\r\n }\r\n\r\n private handleRangeMode(date: Date) {\r\n this.setRangeDates(date);\r\n\r\n this.selectedDate = new DateRange(this.startDate, this.endDate);\r\n\r\n if (this.startDate && this.endDate)\r\n this.dateChange.emit(this.selectedDate);\r\n }\r\n\r\n private setRangeDates(date: Date | null) {\r\n if (!date)\r\n return;\r\n\r\n if (!this.startDate) {\r\n this.startDate = date;\r\n return;\r\n };\r\n\r\n if (!this.endDate && this.dateAdapter.compareDate(date, this.startDate) >= 0) {\r\n this.endDate = date;\r\n return;\r\n };\r\n\r\n this.startDate = date;\r\n this.endDate = null;\r\n }\r\n\r\n _minDateFilter = (date: Date): boolean => {\r\n if (!this.minDate)\r\n return true;\r\n\r\n return date >= this.minDate;\r\n }\r\n}","<div [ngStyle]=\"{ 'height.px': matCalendarContainerHeight }\">\r\n <mat-calendar #calendar [dateFilter]=\"_minDateFilter\" [selected]=\"selectedDate\"\r\n (selectedChange)=\"_onSelectedDateChange($event)\">\r\n </mat-calendar>\r\n</div>","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { svgsStrings } from 'herum-shared/constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-download-file',\r\n templateUrl: './herum-download-file.component.html',\r\n styleUrls: ['./herum-download-file.component.scss']\r\n})\r\nexport class HerumDownloadFileComponent {\r\n\r\n @Input() fileId: string;\r\n @Input() filePath: string = '';\r\n @Input() linkText: string = 'להורדת הקובץ';\r\n\r\n @Output() downloadFile = new EventEmitter<string>();\r\n\r\n @ViewChild('downloadFile') downloadFileElement: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n if (this.downloadFileElement && this.filePath)\r\n this.downloadFileElement.nativeElement.setAttribute('href', this.filePath);\r\n }\r\n\r\n _onDownloadFile(fileId: string) {\r\n if (this.filePath)\r\n return;\r\n\r\n this.downloadFile.emit(fileId);\r\n }\r\n\r\n get downloadFileSvgString() {\r\n return svgsStrings.downloadFile;\r\n }\r\n}","<a #downloadFile class=\"download-file\" (click)=\"_onDownloadFile(fileId)\">\r\n <span class=\"download-file-icon\" [innerHTML]=\"downloadFileSvgString | safeHtml\"></span>\r\n <span class=\"clickable-text\">{{ linkText }}</span>\r\n</a>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-ellipsis-loader',\r\n templateUrl: './herum-ellipsis-loader.component.html',\r\n styleUrls: ['./herum-ellipsis-loader.component.scss']\r\n})\r\nexport class HerumEllipsisLoaderComponent { }","<div class=\"herum-ellipsis\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n</div>","import { AsyncValidatorFn, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nexport class HerumFormControl extends FormControl {\r\n\r\n errorMessages: { [key: string]: string } = {};\r\n currentErrorMessage: string = '';\r\n destroySubject$: Subject<null> = new Subject<null>();\r\n\r\n /**\r\n @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 \r\n */\r\n constructor(\r\n formState: any,\r\n validatorOrOpts: ValidatorFn | ValidatorFn[] | null,\r\n asyncValidator: AsyncValidatorFn | AsyncValidatorFn[] | null,\r\n errorMessages: { [key: string]: string },\r\n componentReference: any\r\n ) {\r\n super(formState, validatorOrOpts, asyncValidator);\r\n\r\n if (errorMessages)\r\n this.errorMessages = errorMessages;\r\n\r\n this.statusChanges.pipe(takeUntil(this.destroySubject$)).subscribe(() => this.setCurrentErrorMessage());\r\n\r\n componentReference.destroySubject$.pipe(takeUntil(this.destroySubject$)).subscribe(\r\n () => {\r\n this.destroySubject$.next(null);\r\n this.destroySubject$.complete();\r\n }\r\n );\r\n }\r\n\r\n private setCurrentErrorMessage(): void {\r\n this.currentErrorMessage = this.errors ? this.errorMessages[Object.keys(this.errors)[0]] : null;\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-icon-label',\r\n templateUrl: './herum-icon-label.component.html',\r\n styleUrls: ['./herum-icon-label.component.scss']\r\n})\r\nexport class HerumIconLabelComponent {\r\n\r\n @Input() iconPath: string = '';\r\n @Input() isLoading: boolean = false;\r\n}","<div class=\"label-container\">\r\n <img [src]=\"iconPath\">\r\n <p class=\"m-0\" [ngClass]=\"{'content-skeleton': isLoading, 'skeleton': isLoading}\">\r\n <ng-content *ngIf=\"!isLoading\"></ng-content>\r\n </p>\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'app-herum-indeterminate',\r\n templateUrl: './herum-indeterminate.component.html',\r\n styleUrls: ['./herum-indeterminate.component.scss']\r\n})\r\nexport class HerumIndeterminateComponent { }","<div class=\"checkbox-wrapper-48\">\r\n <label><input type=\"checkbox\" name=\"cb\"></label>\r\n</div>","import { Directive, Input, ElementRef, Renderer2 } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n standalone: false,\r\n selector: '[appConditionalFormControlName]'\r\n})\r\nexport class ConditionalFormControlNameDirective {\r\n\r\n @Input('appConditionalFormControlName') set formControlName(value: string) {\r\n this.controlName = value;\r\n this.updateFormControlName();\r\n }\r\n\r\n private controlName!: string;\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n private ngControl: NgControl\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.updateFormControlName();\r\n }\r\n\r\n private updateFormControlName() {\r\n if (this.controlName && this.ngControl) {\r\n this.renderer.setAttribute(this.el.nativeElement, 'formControlName', this.controlName);\r\n } else {\r\n this.renderer.removeAttribute(this.el.nativeElement, 'formControlName');\r\n }\r\n }\r\n}","import { Component, EventEmitter, Input, OnInit, Output, HostListener, ViewChild, ElementRef, Optional, Self, ChangeDetectorRef, HostBinding } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControlName, NgControl, Validators } from '@angular/forms';\r\nimport { defaultPlaceholder, formStatuses, keyboardAsciiCodes, types, regexExpressions, svgsStrings } from 'herum-shared/constants';\r\nimport { HerumFormControl } from '../herum-form-control/herum-form-control';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil, tap } from 'rxjs/operators';\r\n\r\nconst emptyNumberInputValue: string = '0';\r\nconst numericTextType: string = 'numeric-text';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-input-field',\r\n templateUrl: './herum-input-field.component.html',\r\n styleUrls: [\r\n './herum-input-field.component.scss',\r\n '../../assets/shared/atoms/inputs/herum-inputs.component.scss'],\r\n host: { '[class.required-control]': 'isRequired' }\r\n})\r\nexport class HerumInputFieldComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() type: 'number' | 'text' | 'search' | 'textBox' | 'search-blur' | 'numeric-text' | 'password' = 'text';\r\n @Input() placeholder: string = defaultPlaceholder;\r\n @Input() disabled: boolean = false;\r\n @Input() isBlocked: boolean = false;\r\n @Input() isValid: boolean = true;\r\n @Input() errorMsg: string = '';\r\n @Input() showErrorMsgGap: boolean = true;\r\n @Input() inputValue: string = '';\r\n @Input() isLoading: boolean = false;\r\n @Input() id: string = '';\r\n @Input() debounceTime: number = 0;\r\n @Input() minValue: number;\r\n @Input() maxValue: number;\r\n @Input() isBlurred: boolean = false;\r\n @Input() touched: boolean = false;\r\n @Input() ltrMode: boolean = false;\r\n @Input() preventMacroKeysPressEvent: number[] = [keyboardAsciiCodes.space, keyboardAsciiCodes.right, keyboardAsciiCodes.left];\r\n\r\n @Output() inputValueEmitter = new EventEmitter<string | number>();\r\n\r\n @ViewChild('inputElement') inputElement!: ElementRef<HTMLInputElement>;\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n const alt: string = (event.target as HTMLInputElement).alt;\r\n\r\n if ((alt === types.number || alt === numericTextType) && !(event.keyCode >= 48 && event.keyCode <= 57))\r\n event.preventDefault();\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n onPaste(event: ClipboardEvent) {\r\n const alt: string = (event.target as HTMLInputElement).alt;\r\n\r\n if (alt === types.number || alt === numericTextType) {\r\n let pastedText = '';\r\n\r\n if (event.clipboardData && event.clipboardData.getData)\r\n pastedText = event.clipboardData.getData('text/plain');\r\n else if (window['clipboardData'] && window['clipboardData']['getData'])\r\n pastedText = window['clipboardData']['getData']('Text');\r\n\r\n const numbersOnly = /^[0-9]*$/.test(pastedText);\r\n if (!numbersOnly)\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n formControlName: string = '';\r\n isPasswordVisible: boolean = false;\r\n\r\n inputSubject$ = new Subject<string>();\r\n destroySubject$ = new Subject<null>();\r\n\r\n constructor(@Optional() @Self() private ngControl: NgControl, private cdr: ChangeDetectorRef) {\r\n if (this.ngControl)\r\n this.ngControl.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initInputSubject$();\r\n this.setInputsByFormControl();\r\n }\r\n\r\n private initInputSubject$() {\r\n this.inputSubject$.pipe(\r\n takeUntil(this.destroySubject$),\r\n debounceTime(this.debounceTime),\r\n tap(value => {\r\n this.inputValue = value;\r\n const valueToEmit = this.type === types.number ? Number(value) : this.inputValue;\r\n\r\n this.onChange(valueToEmit);\r\n this.inputValueEmitter.emit(valueToEmit);\r\n })\r\n ).subscribe();\r\n }\r\n\r\n private setInputsByFormControl() {\r\n if (!this.ngControl)\r\n return;\r\n\r\n if (this.ngControl instanceof FormControlName)\r\n this.formControlName = this.ngControl.name?.toString() || '';\r\n\r\n this.ngControl.control.statusChanges.pipe(takeUntil(this.destroySubject$)).subscribe(status => {\r\n if (this.ngControl.control instanceof HerumFormControl)\r\n this.errorMsg = this.ngControl.control.currentErrorMessage;\r\n\r\n const controlStatus: string = this.ngControl.control.status;\r\n this.isValid = controlStatus === formStatuses.valid;\r\n this.isLoading = controlStatus === formStatuses.pending;\r\n });\r\n }\r\n\r\n clearInput() {\r\n const isTypeNumber: boolean = this.type === types.number;\r\n this.inputValue = isTypeNumber ? this.minValue !== undefined ? this.minValue.toString() : emptyNumberInputValue : '';\r\n const valueToEmit = isTypeNumber ? Number(this.inputValue) : this.inputValue;\r\n\r\n this.inputValueEmitter.emit(valueToEmit);\r\n this.onChange(valueToEmit);\r\n }\r\n\r\n _onInput(freeText: string) {\r\n this.touched = true;\r\n\r\n let value: string = freeText;\r\n\r\n if (this.type == types.number) {\r\n if (!freeText) {\r\n this.cdr.detectChanges();\r\n this.inputValue = value = emptyNumberInputValue;\r\n }\r\n\r\n if (!freeText.match(regexExpressions.digitsOnly))\r\n value = value.replace(/[^0-9]/g, '');\r\n\r\n this.errorMsg = this.getRangeErrorMessage(freeText);\r\n this.isValid = !this.errorMsg;\r\n\r\n if (this.ngControl)\r\n this.setNgControlRangeValidator();\r\n\r\n if (!this.isValid)\r\n return;\r\n }\r\n\r\n this.inputSubject$.next(value);\r\n }\r\n\r\n private setNgControlRangeValidator() {\r\n const inputNumberRangeValidatorName: string = 'inputNumberRangeValidator';\r\n\r\n if (!this.isValid) {\r\n this.ngControl.control.setErrors({ [inputNumberRangeValidatorName]: this.isValid });\r\n return;\r\n }\r\n\r\n if (this.ngControl.control.errors)\r\n delete this.ngControl.control.errors[inputNumberRangeValidatorName];\r\n }\r\n\r\n private getRangeErrorMessage(freeText: string) {\r\n const parsedValue = parseFloat(freeText);\r\n const hasMinValue = Number.isFinite(this.minValue);\r\n const hasMaxValue = Number.isFinite(this.maxValue);\r\n const insertValue: string = 'נא להזין ערך';\r\n\r\n if (hasMinValue && hasMaxValue && (parsedValue < this.minValue || parsedValue > this.maxValue))\r\n return (this.minValue === this.maxValue) ? `הערך שניתן להזין הוא${this.maxValue}` : `${insertValue} מ ${this.minValue} עד ${this.maxValue}`;\r\n else if (hasMinValue && !hasMaxValue && parsedValue <= this.minValue - 1)\r\n return `${insertValue} גדול מ${this.minValue - 1}`;\r\n else if (!hasMinValue && hasMaxValue && parsedValue >= this.maxValue + 1)\r\n return `${insertValue} קטן מ${this.maxValue + 1}`;\r\n else\r\n return '';\r\n }\r\n\r\n onChange: (value: any) => void = () => { };\r\n\r\n onTouched: () => void = () => { };\r\n\r\n writeValue(value: string): void {\r\n if (this.inputValue !== value)\r\n this.inputValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n _setBlurred() {\r\n this.isBlurred = true;\r\n }\r\n\r\n _onTogglePasswordVisibility(event?: MouseEvent): void {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n\r\n this.isPasswordVisible = !this.isPasswordVisible;\r\n }\r\n\r\n get searchImageSvg() {\r\n return svgsStrings.search;\r\n }\r\n\r\n get whiteSearchImageSvg() {\r\n return svgsStrings.search;\r\n }\r\n\r\n get xImageSvg() {\r\n return svgsStrings.X;\r\n }\r\n\r\n get inputHtmlType(): string {\r\n if (this.type === 'password')\r\n return this.isPasswordVisible ? 'text' : 'password';\r\n\r\n if (this.type === 'number') return 'number';\r\n\r\n return 'text';\r\n }\r\n\r\n get passwordEyeSource(): string {\r\n return `/assets/loginPage/icons/eye-${this.isPasswordVisible ? 'open' : 'closed'}.svg`;\r\n }\r\n\r\n get isRequired(): boolean {\r\n const control = this.ngControl?.control;\r\n if (!control) return false;\r\n\r\n const anyControl = control as any;\r\n if (typeof anyControl.hasValidator === 'function'){\r\n return anyControl.hasValidator(Validators.required);\r\n }\r\n\r\n if (!control.validator) return false;\r\n const result = control.validator({} as AbstractControl);\r\n return !!result['required'];\r\n }\r\n\r\n get shouldShowClearIcon(): boolean {\r\n return !!this.inputValue && !this.disabled && !this.isBlocked && this.type !== 'password';\r\n }\r\n\r\n get shouldShowPasswordToggle(): boolean {\r\n return this.type === 'password' && !this.disabled && !this.isBlocked;\r\n }\r\n\r\n get shouldShowErrorMsg(): boolean {\r\n return (!this.isValid && this.touched && this.isBlurred && this.showErrorMsgGap && !!this.errorMsg);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngControl) {\r\n this.destroySubject$.next(null);\r\n this.destroySubject$.complete();\r\n }\r\n }\r\n}","<div class=\"input-container\" [class]=\"type\">\r\n <input [type]=\"inputHtmlType\" dir=\"rtl\" class=\"w-100 input-field\"\r\n [ngClass]=\"{'error-input':!isValid && !isLoading && touched && isBlurred , 'transparent-text': isLoading, 'ltr':ltrMode}\"\r\n [ngStyle]=\"{'resize': type == 'textBox' ? 'vertical' : 'none'}\" [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled || isBlocked || isLoading\" [(ngModel)]=\"inputValue\" [alt]=\"type\"\r\n [id]=\"id ? id :formControlName\" [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\"\r\n (ngModelChange)=\"_onInput($event)\" (blur)=\"_setBlurred()\" />\r\n\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngIf=\"type=='search' || type=='search-blur'\">\r\n <span class=\"icon\" [innerHTML]=\"searchImageSvg | safeHtml\" *ngIf=\"!inputValue && !disabled\">\r\n </span>\r\n\r\n <span class=\"icon\" *ngIf=\"disabled\">\r\n <img src=\"assets/shared/icons/input/grey-search.png\" />\r\n </span>\r\n </ng-container>\r\n\r\n <span class=\"icon clickable small-icon\" *ngIf=\"shouldShowClearIcon\" (click)=\"clearInput()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xImageSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <span class=\"icon clickable eye-icon\" *ngIf=\"shouldShowPasswordToggle\"\r\n (mousedown)=\"$event.preventDefault()\" (click)=\"_onTogglePasswordVisibility($event)\">\r\n <img [src]=\"passwordEyeSource\">\r\n </span>\r\n </ng-container>\r\n\r\n <div *ngIf=\"isLoading\" class=\"skeleton skeleton-text input-skeleton\"></div>\r\n</div>\r\n\r\n<label class=\"error-msg right\" *ngIf=\"shouldShowErrorMsg\">\r\n {{errorMsg}}\r\n</label>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-logo',\r\n templateUrl: './herum-logo.component.html',\r\n styleUrls: ['./herum-logo.component.scss']\r\n})\r\nexport class HerumLogoComponent {\r\n\r\n @Input() logoTextSize: 'bigSize' | 'defaultSize' = 'defaultSize';\r\n @Input() logoTextColor: 'primaryColor' | 'secondaryColor' = 'primaryColor';\r\n @Input() logoText: string = 'בית הספר הדיגיטלי לחירום';\r\n\r\n get logoTextWidth() {\r\n return this.logoTextSize === 'defaultSize' ? 'default-text-size-width' : 'big-text-size-width';\r\n }\r\n}","<div class=\"logo-container\">\r\n <img src=\"/lib/assets/general/owl-logo.svg\" id=\"logo\">\r\n <span class=\"logo-text\" [ngClass]=\"[logoTextSize, logoTextColor, logoTextWidth]\">{{logoText}}</span>\r\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-options-list',\r\n templateUrl: './herum-options-list.component.html',\r\n styleUrls: [\r\n './herum-options-list.component.scss',\r\n '../../assets/shared/atoms/selects/herum-selects.component.scss'\r\n ]\r\n})\r\nexport class HerumOptionsListComponent {\r\n\r\n @Input() options!: IdentifiedEntity[];\r\n @Input() selectedOptions!: IdentifiedEntity[];\r\n @Input() isContentInsideExpendablePanel: boolean = false;\r\n @Input() isInternalMode: boolean = true;\r\n\r\n @Output() selectedOptionsEmitter = new EventEmitter<IdentifiedEntity>();\r\n\r\n _onSelect(option: IdentifiedEntity) {\r\n this.selectedOptionsEmitter.emit(option);\r\n }\r\n\r\n isOptionSelected(option: IdentifiedEntity) {\r\n if (!option)\r\n return false;\r\n\r\n return this.selectedOptions.some(selectedOption => selectedOption.id === option.id);\r\n }\r\n}","<a class=\"option\" *ngFor=\"let option of options\" (click)=\"_onSelect(option)\"\r\n [ngClass]=\"{\r\n 'selected': isOptionSelected(option),\r\n 'expendable-panel-content': isContentInsideExpendablePanel,\r\n 'internal': isInternalMode}\">\r\n {{ option?.name }}\r\n</a>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { IdentifiedEntity, RecursiveTitledOption } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-recursive-hierarchy-options-list',\r\n templateUrl: './herum-recursive-hierarchy-options-list.component.html',\r\n styleUrls: ['./herum-recursive-hierarchy-options-list.component.scss']\r\n})\r\nexport class HerumRecursiveHierarchyOptionsListComponent {\r\n\r\n @Input() options!: IdentifiedEntity[];\r\n @Input() selectedOptions!: IdentifiedEntity[];\r\n @Input() recursiveTitledOption!: RecursiveTitledOption;\r\n\r\n @Output() selectedOptionsEmitter = new EventEmitter<IdentifiedEntity>();\r\n @Output() selectedRecursiveOptionsEmitter = new EventEmitter<RecursiveTitledOption>();\r\n\r\n _onSelect(option: RecursiveTitledOption) {\r\n this.selectedOptionsEmitter.emit(option.data);\r\n this.selectedRecursiveOptionsEmitter.emit(option)\r\n }\r\n\r\n _isOptionSelected(option: IdentifiedEntity) {\r\n return this.selectedOptions.some(selectedOption => selectedOption.id === option.id);\r\n }\r\n}","<ng-container *ngTemplateOutlet=\"recursiveTitledOptionTemplate; context:{ $implicit: recursiveTitledOption }\">\r\n</ng-container>\r\n\r\n<ng-template #recursiveTitledOptionTemplate let-recursiveTitledOption>\r\n <ng-container>\r\n <div class=\"option-container internal\">\r\n <img src=\"../../assets/general/chevron.svg\" class=\"internal\"\r\n *ngIf=\"recursiveTitledOption.childrens.length > 0\"\r\n [class]=\"recursiveTitledOption.isExpended ? 'open' : 'closed'\"\r\n (click)=\"recursiveTitledOption.isExpended=!recursiveTitledOption.isExpended\">\r\n <a class=\"option internal w-100\" (click)=\"_onSelect(recursiveTitledOption)\"\r\n [ngClass]=\"{'selected': _isOptionSelected(recursiveTitledOption)}\">\r\n {{recursiveTitledOption.data.name}}\r\n </a>\r\n </div>\r\n\r\n <ng-container *ngIf=\"recursiveTitledOption.isExpended\">\r\n <div class=\"childrens\">\r\n <ng-container *ngFor=\"let children of recursiveTitledOption.childrens\">\r\n <ng-container *ngTemplateOutlet=\"recursiveTitledOptionTemplate; context:{ $implicit: children }\">\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, SimpleChanges, forwardRef, ViewChild, HostListener, ElementRef } from '@angular/core';\r\nimport { HerumInputFieldComponent } from '../herum-input-field/herum-input-field.component';\r\nimport { openClose } from 'herum-shared/animations';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { IdentifiedEntity, RecursiveTitledOption } from 'herum-shared/herum-types';\r\nimport { getDropdownAnimationStates } from 'herum-shared/utils';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nconst CUSTOM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumMultiSelectComponent),\r\n multi: true,\r\n};\r\n\r\nconst selectedOptionsInput: string = 'selectedOptionsInput';\r\nconst optionsInput: string = 'options';\r\nconst titledOptionsList: string = 'titledOptionsList';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-multi-select',\r\n templateUrl: './herum-multi-select.component.html',\r\n styleUrls: ['./herum-multi-select.component.scss',\r\n '../../assets/shared/atoms/selects/herum-selects.component.scss'],\r\n providers: [CUSTOM_MULTI_SELECT_CONTROL_VALUE_ACCESSOR],\r\n animations: [openClose]\r\n})\r\nexport class HerumMultiSelectComponent implements ControlValueAccessor {\r\n\r\n @HostListener('window:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n this.closeDropdown(event);\r\n }\r\n\r\n @Input() placeholder: string = 'בחר/י...';\r\n\r\n @Input() options!: IdentifiedEntity[];\r\n @Input() titledOptionsList!: { title: string, options: IdentifiedEntity[] }[];\r\n @Input() recursiveTitledOption!: RecursiveTitledOption[] | RecursiveTitledOption;\r\n\r\n @Input() selectedOptionsInput!: IdentifiedEntity[];\r\n @Input() maxChips: number = 2;\r\n @Input() disabled: boolean = false;\r\n @Input() size: 'fit' | 'default' | 'responsive' = 'default';\r\n @Input() isDropDownInPositionFixed: boolean = false;\r\n @Input() dropDownDirection: 'upwards' | 'downwards' = 'downwards';\r\n @Input() isMultiHeads: boolean = false;\r\n\r\n @Output() selectedOptions = new EventEmitter<IdentifiedEntity[]>();\r\n @Output() selectedRecursiveOptions = new EventEmitter<RecursiveTitledOption>();\r\n\r\n @ViewChild('filterInput') filterInput: HerumInputFieldComponent;\r\n @ViewChild('dropContainer') dropContainer: ElementRef;\r\n\r\n filteredOptions!: IdentifiedEntity[];\r\n filteredTitledOptionsList!: { title: string, options: IdentifiedEntity[] }[];\r\n\r\n selectedOptionsValue: IdentifiedEntity[] = [];\r\n isDropdownOpen = false;\r\n isShowAll: boolean = false;\r\n currentDropdownId: string = '';\r\n destroySubject$ = new Subject<null>();\r\n componentId: string = '';\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes[selectedOptionsInput] && changes[selectedOptionsInput].currentValue?.length && !this.selectedOptionsValue.length)\r\n this.selectedOptionsValue = changes[selectedOptionsInput].currentValue;\r\n\r\n if (changes[optionsInput] && changes[optionsInput].currentValue?.length && !this.filteredOptions)\r\n this.filteredOptions = changes[optionsInput].currentValue;\r\n\r\n if (changes[titledOptionsList] && changes[titledOptionsList].currentValue?.length)\r\n this.filteredTitledOptionsList = changes[titledOptionsList].currentValue;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.componentId = uuidv4();\r\n this.dropContainer.nativeElement.id += `component-id-${this.componentId}`;\r\n }\r\n\r\n _onStopPropagation(event: MouseEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n _onFilterDropDown(text: string) {\r\n if (!text) {\r\n this.setFilteredOptionsTypes()\r\n return;\r\n }\r\n\r\n this.getFilteredOptions(text);\r\n }\r\n\r\n private setFilteredOptionsTypes() {\r\n if (this.options)\r\n this.filteredOptions = this.options;\r\n else if (this.filteredTitledOptionsList) {\r\n this.filteredTitledOptionsList = this.titledOptionsList.map(titledOptions => ({\r\n title: titledOptions.title,\r\n options: titledOptions.options\r\n }));\r\n }\r\n }\r\n\r\n private getFilteredOptions(text: string) {\r\n if (this.titledOptionsList) {\r\n this.filteredTitledOptionsList = this.titledOptionsList.map(titledOptions => ({\r\n title: titledOptions.title,\r\n options: this.getFilteredList(titledOptions.options, text)\r\n }));\r\n }\r\n else\r\n this.filteredOptions = this.options.filter(filteredOption => filteredOption.name.includes(text));\r\n }\r\n\r\n private getFilteredList(options: IdentifiedEntity[], text: string) {\r\n return options.filter(option => option?.name.includes(text));\r\n }\r\n\r\n _select(option: IdentifiedEntity): void {\r\n this.resetFiltering();\r\n\r\n if (this.selectedOptionsValue.find((selectedOption) => selectedOption.id === option.id))\r\n this.removeSelectedOption(option);\r\n else\r\n this.selectedOptionsValue.push(option);\r\n\r\n this.onChange(this.selectedOptionsValue);\r\n this.selectedOptions.emit(this.selectedOptionsValue);\r\n }\r\n\r\n _selectRecursive(selectedRecursiveOptions: RecursiveTitledOption) {\r\n this.selectedRecursiveOptions.emit(selectedRecursiveOptions)\r\n }\r\n\r\n private removeSelectedOption(option: IdentifiedEntity): void {\r\n const index = this.selectedOptionsValue.findIndex(((selectedOption) => selectedOption.id === option.id));\r\n\r\n if (index >= 0)\r\n this.selectedOptionsValue.splice(index, 1);\r\n\r\n this.onChange(this.selectedOptionsValue);\r\n this.selectedOptions.emit(this.selectedOptionsValue);\r\n }\r\n\r\n getLimitedList() {\r\n if (this.selectedOptionsValue?.length < this.maxChips)\r\n return this.selectedOptionsValue;\r\n\r\n return this.selectedOptionsValue.slice(0, this.maxChips);\r\n }\r\n\r\n _getHiddenOptions() {\r\n return this.selectedOptionsValue.map(selectedOptionValue => selectedOptionValue.name).slice(this.maxChips).join(',');\r\n }\r\n\r\n showAll() {\r\n this.isShowAll = !this.isShowAll;\r\n }\r\n\r\n isOptionSelected(option: IdentifiedEntity) {\r\n return this.selectedOptionsValue.find((selectedOption) => selectedOption.id === option.id);\r\n }\r\n\r\n toggleDropdown() {\r\n this.isDropdownOpen = !this.isDropdownOpen;\r\n }\r\n\r\n closeDropdown(event: MouseEvent) {\r\n if (!this.isDropdownOpen)\r\n return;\r\n\r\n const isClickedOutsideComponent: boolean = event.composedPath().some(path => (path as HTMLElement).id?.includes(this.componentId));\r\n\r\n if (!(event.target as HTMLElement).matches('.internal') || !isClickedOutsideComponent) {\r\n this.isDropdownOpen = false;\r\n\r\n if (this.filterInput)\r\n this.resetFiltering();\r\n }\r\n }\r\n\r\n private resetFiltering() {\r\n this.filterInput?.clearInput();\r\n this.filteredOptions = this.options;\r\n }\r\n\r\n get dropdownClasses(): string {\r\n let classes = `dropdown-content dropdown-${this.dropDownDirection} ${this.size}-dropdown`;\r\n\r\n if (this.isDropDownInPositionFixed)\r\n classes += ' fixed';\r\n\r\n classes += (this.filteredOptions?.length || this.filteredTitledOptionsList?.length) ? ' scrollable-settings' :\r\n (Array.isArray(this.recursiveTitledOption) && this.recursiveTitledOption?.length) ? ' big-scroll-view' : ' overflow-hidden';\r\n\r\n return classes;\r\n }\r\n\r\n hasNoResults(): boolean {\r\n if (this.titledOptionsList)\r\n return this.filteredTitledOptionsList?.every(filteredTitledOptions => filteredTitledOptions.options.length === 0);\r\n\r\n return !this.filteredOptions?.length && !this.recursiveTitledOption;\r\n }\r\n\r\n get optionsLength(): number {\r\n if (this.titledOptionsList) {\r\n let optionsList = this.titledOptionsList?.map(titledOptions => titledOptions.options)\r\n return optionsList.reduce((total, currentArray) => { return total + currentArray.length; }, 0);\r\n }\r\n\r\n return this.options?.length;\r\n }\r\n\r\n get _getDropdownStates() {\r\n return getDropdownAnimationStates(this.isDropdownOpen, this.dropDownDirection);\r\n }\r\n\r\n onChange: (value: any) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(selectedOptionsValue: IdentifiedEntity[]): void {\r\n this.selectedOptionsValue = selectedOptionsValue || [];\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n showErrors() { }\r\n\r\n ngOnDestroy() {\r\n this.destroySubject$.next(null);\r\n this.destroySubject$.complete();\r\n }\r\n}","<div #dropContainer class=\"dropdown\" dir=\"rtl\" [ngClass]=\"{'w-100': size === 'responsive'}\">\r\n <button class=\"drop-button internal\" [class]=\"size\"\r\n [ngClass]=\"(isDropdownOpen ? 'open-drop-button-' + dropDownDirection : '')\" (click)=\"toggleDropdown()\">\r\n <span class=\"button-placeholder internal\" *ngIf=\"!selectedOptionsValue?.length\">{{placeholder}}</span>\r\n\r\n <div class=\"herum-chips-container\">\r\n <herum-chip *ngFor=\"let option of getLimitedList()\" [title]=\"option.name\"\r\n (remove)=\"removeSelectedOption(option)\"></herum-chip>\r\n\r\n <ng-container *ngIf=\"selectedOptionsValue && selectedOptionsValue.length > maxChips\">\r\n <herum-chip class=\"last-chip\" [matTooltip]=\"_getHiddenOptions()\"\r\n [title]=\"(selectedOptionsValue.length - maxChips) + '+'\" [isDeleteButtonNeeded]=\"false\">\r\n </herum-chip>\r\n </ng-container>\r\n </div>\r\n\r\n <span class=\"shevron-icon internal\" [ngClass]=\"{'rotate-chevron': isDropdownOpen}\">\r\n <svg class=\"internal\" xmlns=\"http://www.w3.org/2000/svg\" width=\"11.299\" height=\"6.649\" viewBox=\"0 0 11.299 6.649\">\r\n <path id=\"Vector_43-2\" data-name=\"Vector 43-2\" d=\"M1006.235,549.5,1002,553.735l-4.236-4.235\"\r\n transform=\"translate(-996.35 -548.086)\" fill=\"none\" stroke=\"var(--icons-color)\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" />\r\n </svg>\r\n </span>\r\n </button>\r\n\r\n <div id=\"myDropdown\" class=\"internal\" [ngClass]=\"dropdownClasses\" [@openClose]=\"_getDropdownStates\">\r\n <herum-input-field #filterInput *ngIf=\"optionsLength>2\" class=\"input-filter\" [type]=\"'search'\"\r\n [placeholder]=\"'חפש/י ערך מבוקש...'\" (click)=\"_onStopPropagation($event)\"\r\n (inputValueEmitter)=\"_onFilterDropDown($event)\"></herum-input-field>\r\n\r\n <ng-container *ngIf=\"options\">\r\n <herum-options-list [options]=\"filteredOptions\" [selectedOptions]=\"selectedOptionsValue\"\r\n (selectedOptionsEmitter)=\"_select($event)\">\r\n </herum-options-list>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"titledOptionsList\">\r\n <ng-container *ngFor=\"let filteredTitledOptions of filteredTitledOptionsList\">\r\n <herum-expendable-panel [title]=\"filteredTitledOptions.title\" [isBoldTitle]=\"true\">\r\n <herum-options-list [options]=\"filteredTitledOptions.options\"\r\n [isContentInsideExpendablePanel]=\"true\" [selectedOptions]=\"selectedOptionsValue\"\r\n (selectedOptionsEmitter)=\"_select($event)\"></herum-options-list>\r\n </herum-expendable-panel>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"recursiveTitledOption\">\r\n <ng-container *ngIf=\"isMultiHeads\">\r\n <herum-recursive-hierarchy-options-list *ngFor=\"let treeHead of recursiveTitledOption\"\r\n [recursiveTitledOption]=\"treeHead\" [selectedOptions]=\"selectedOptionsValue\"\r\n (selectedOptionsEmitter)=\"_select($event)\"\r\n (selectedRecursiveOptionsEmitter)=\"_selectRecursive($event)\">\r\n </herum-recursive-hierarchy-options-list>\r\n </ng-container>\r\n\r\n <herum-recursive-hierarchy-options-list *ngIf=\"!isMultiHeads\"\r\n [recursiveTitledOption]=\"recursiveTitledOption\" [selectedOptions]=\"selectedOptionsValue\"\r\n (selectedOptionsEmitter)=\"_select($event)\">\r\n </herum-recursive-hierarchy-options-list>\r\n </ng-container>\r\n\r\n <a class=\"text-center\" *ngIf=\"hasNoResults()\">לא נמצאו תוצאות</a>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { ResourceState } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-narrow-collection-menu-item',\r\n templateUrl: './herum-narrow-collection-menu-item.component.html',\r\n styleUrls: ['./herum-narrow-collection-menu-item.component.scss']\r\n})\r\nexport class HerumNarrowCollectionMenuItemComponent {\r\n\r\n @Input() index!: string;\r\n @Input() item!: {};\r\n @Input() itemState!: {};\r\n\r\n @Output() itemEmitter = new EventEmitter();\r\n\r\n isAvailable!: boolean;\r\n isActive!: boolean;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['itemState'])\r\n this.setItemState();\r\n }\r\n\r\n _onSelectItem() {\r\n this.itemEmitter.emit(this.item);\r\n }\r\n\r\n setItemState() {\r\n switch (this.itemState) {\r\n case ResourceState.default:\r\n break;\r\n case ResourceState.isActive:\r\n this.isActive = true;\r\n break;\r\n case ResourceState.isAvailable:\r\n this.isAvailable = true;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}","<div class=\"item\" (click)=\"_onSelectItem()\" [ngClass]=\"{'not-seen': isAvailable,'active-item': isActive}\">\r\n {{index}}\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-no-result-message',\r\n templateUrl: './herum-no-result-message.component.html',\r\n styleUrls: ['./herum-no-result-message.component.scss']\r\n})\r\nexport class HerumNoResultMessageComponent {\r\n\r\n @Input() mainTitle: string = 'לא נמצאו תוצאות לחיפוש שלך';\r\n @Input() secondaryTitle: string = 'ניתן לנסות לחפש משהו אחר שיניב אולי תוצאות';\r\n @Input() alignItems: 'center' | 'right' = 'center';\r\n @Input() iconSize: 'small' | 'big' = 'small';\r\n}","<div class=\"no-result-container\" [ngClass]=\"alignItems\">\r\n <img [ngClass]=\"iconSize\" src=\"assets/shared/icons/no-result-owl.png\">\r\n\r\n <div class=\"titles-container\" [ngClass]=\"alignItems\">\r\n <h1 class=\"section-big-title\">{{ mainTitle }}</h1>\r\n <h2 class=\"section-title\"> {{ secondaryTitle }}</h2>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { types, svgsStrings } from 'herum-shared/constants';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-paginator',\r\n templateUrl: './herum-paginator.component.html',\r\n styleUrls: ['./herum-paginator.component.scss']\r\n})\r\nexport class HerumPaginatorComponent {\r\n\r\n @Input() numberOfSlots: number = 7;\r\n @Input() elementsToSlice!: Array<unknown>;\r\n @Input() numberOfElementsInPage!: number;\r\n @Input() currentPage: number = 1;\r\n @Input() totalPages!: number;\r\n @Input() showArrows: boolean = true;\r\n @Input() slicerMode: boolean = false;\r\n\r\n @Output() slicedElements = new EventEmitter<Array<unknown>>();\r\n @Output() currentPageChange = new EventEmitter<number>();\r\n @Output() paginatorRenderChange = new EventEmitter();\r\n\r\n @ViewChild('element') element!: ElementRef;\r\n\r\n visiblePages: Array<number | string> = [];\r\n\r\n startEllipsisPosition: number = 4;\r\n endEllipsisPosition: number = -3;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['elementsToSlice']?.currentValue && !this.totalPages && this.numberOfElementsInPage)\r\n this.totalPages = Math.ceil((this.elementsToSlice.length / this.numberOfElementsInPage));\r\n\r\n if (changes['totalPages']?.currentValue || changes['elementsToSlice']?.currentValue || changes['numberOfElementsInPage']?.currentValue)\r\n this.updateVisiblePages();\r\n\r\n if (changes['totalPages']?.currentValue) {\r\n this.changeDetectorRef.detectChanges();\r\n\r\n window.requestAnimationFrame(_ => {\r\n if (this.totalPages > 1)\r\n this.paginatorRenderChange.emit();\r\n });\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateVisiblePages();\r\n this.numberOfSlotsValidation();\r\n this.showArrowsValidation();\r\n }\r\n\r\n private showArrowsValidation() {\r\n const isOneMiddleSlot = this.numberOfSlots < 6;\r\n\r\n if (isOneMiddleSlot && !this.showArrows)\r\n this.showArrows = true;\r\n }\r\n\r\n private numberOfSlotsValidation() {\r\n if (this.numberOfSlots < 5)\r\n this.numberOfSlots = 5;\r\n }\r\n\r\n _onChangePage(page: number | string): void {\r\n if (!this.isValidPageNumber(page))\r\n return;\r\n\r\n this.currentPage = page as number;\r\n this.currentPageChange.emit(this.currentPage);\r\n this.updateVisiblePages();\r\n }\r\n\r\n private updateVisiblePages(): void {\r\n this.visiblePages = [];\r\n\r\n if (this.shouldShowAllPages()) {\r\n this.displayAllPages();\r\n return;\r\n }\r\n\r\n this.addFirstPage();\r\n this.addStartEllipsis();\r\n this.addMiddlePagesSlots();\r\n this.addEndEllipsis();\r\n this.addLastPage();\r\n this.emitElementsPerCurrentPage();\r\n }\r\n\r\n private shouldShowAllPages(): boolean {\r\n return this.totalPages <= this.numberOfSlots;\r\n }\r\n\r\n private displayAllPages(): void {\r\n this.visiblePages = Array.from({ length: this.totalPages }, (_, index) => index + 1);\r\n this.emitElementsPerCurrentPage();\r\n }\r\n\r\n private addFirstPage(): void {\r\n this.visiblePages.push(1);\r\n }\r\n\r\n private addStartEllipsis(): void {\r\n if (this.currentPage >= this.startEllipsisPosition)\r\n this.visiblePages.push('...');\r\n }\r\n\r\n private addMiddlePagesSlots(): void {\r\n const { start, end } = this.calculateMiddlePageSlots();\r\n const middlePages = Array.from({ length: end - start + 1 }, (_, index) => start + index);\r\n\r\n middlePages.forEach(page => this.visiblePages.push(page));\r\n }\r\n\r\n private calculateMiddlePageSlots(): { start: number, end: number } {\r\n const middleStartPageNumber = Math.max(2, this.currentPage - 1);\r\n const middleEndPageNumber = Math.min(this.totalPages - 1, this.currentPage + 1);\r\n\r\n const availableMiddleSlots = this.calculateAvailableMiddleSlots();\r\n const currentMiddleItemsCount = middleEndPageNumber - middleStartPageNumber + 1;\r\n\r\n if (currentMiddleItemsCount < availableMiddleSlots)\r\n return this.expandMiddleRange(middleStartPageNumber, middleEndPageNumber, availableMiddleSlots, currentMiddleItemsCount);\r\n\r\n if (currentMiddleItemsCount > availableMiddleSlots)\r\n return this.shrinkMiddleRange(middleStartPageNumber, middleEndPageNumber, availableMiddleSlots, currentMiddleItemsCount);\r\n\r\n return { start: middleStartPageNumber, end: middleEndPageNumber };\r\n }\r\n\r\n private calculateAvailableMiddleSlots(): number {\r\n const startEllipsisCount = this.currentPage >= this.startEllipsisPosition ? 1 : 0;\r\n const endEllipsisCount = this.currentPage <= this.totalPages + this.endEllipsisPosition ? 1 : 0;\r\n const firstPageCount = 1;\r\n const lastPageCount = 1;\r\n\r\n return this.numberOfSlots - firstPageCount - lastPageCount - startEllipsisCount - endEllipsisCount;\r\n }\r\n\r\n private expandMiddleRange(start: number, end: number, availableSlots: number, currentMiddleItemsCount: number): { start: number, end: number } {\r\n const slotsToAdd = availableSlots - currentMiddleItemsCount;\r\n const isExpandFromStart = start === 2;\r\n const isExpandFromEnd = end === this.totalPages - 1;\r\n\r\n if (isExpandFromStart)\r\n return { start, end: Math.min(this.totalPages - 1, end + slotsToAdd) };\r\n\r\n if (isExpandFromEnd)\r\n return { start: Math.max(2, start - slotsToAdd), end };\r\n\r\n const startExpand = Math.floor(slotsToAdd / 2);\r\n const endExpand = slotsToAdd - startExpand;\r\n\r\n return {\r\n start: Math.max(2, start - startExpand),\r\n end: Math.min(this.totalPages - 1, end + endExpand)\r\n };\r\n }\r\n\r\n private shrinkMiddleRange(start: number, end: number, availableSlots: number, currentMiddleItemsCount: number): { start: number, end: number } {\r\n if (availableSlots === 1)\r\n return { start: this.currentPage, end: this.currentPage };\r\n\r\n const slotsToRemove = currentMiddleItemsCount - availableSlots;\r\n const distanceToStart = this.currentPage - start;\r\n const distanceToEnd = end - this.currentPage;\r\n\r\n if (distanceToStart > distanceToEnd)\r\n return { start: start + slotsToRemove, end };\r\n\r\n return { start, end: end - slotsToRemove };\r\n }\r\n\r\n private addEndEllipsis(): void {\r\n if (this.currentPage < this.totalPages - 2)\r\n this.visiblePages.push('...');\r\n }\r\n\r\n private addLastPage(): void {\r\n this.visiblePages.push(this.totalPages);\r\n }\r\n\r\n private emitElementsPerCurrentPage(): void {\r\n if (!this.slicerMode || !this.elementsToSlice)\r\n return;\r\n\r\n const startIndex = this.numberOfElementsInPage * (this.currentPage - 1);\r\n const endIndex = this.numberOfElementsInPage * this.currentPage;\r\n const slicedItems = this.elementsToSlice.slice(startIndex, endIndex);\r\n\r\n this.slicedElements.emit(slicedItems);\r\n }\r\n\r\n private isValidPageNumber(page: number | string): boolean {\r\n return (typeof page === types.number) && page as number >= 1 && page as number <= this.totalPages;\r\n }\r\n\r\n _isNumber(value: any): boolean {\r\n return typeof value === types.number;\r\n }\r\n\r\n get chevronIcon() {\r\n return svgsStrings.chevron;\r\n }\r\n}\r\n","<div #element *ngIf=\"totalPages > 1\" class=\"paginator-container\">\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === 1}\" class=\"item chevron right-chevron\"\r\n [innerHTML]=\"chevronIcon | safeHtml\" (click)=\"_onChangePage(currentPage -1)\">\r\n </span>\r\n\r\n <ng-container *ngFor=\"let item of visiblePages\">\r\n <span class=\"item\" *ngIf=\"_isNumber(item); else ellipsis\" (click)=\"_onChangePage(item)\"\r\n [ngClass]=\"{'herum-card': currentPage === item}\">\r\n {{ item }}\r\n </span>\r\n\r\n <ng-template #ellipsis>\r\n <span class=\"ellipsis\">{{ item }}</span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <span *ngIf=\"showArrows\" [ngClass]=\"{'cursor-not-allowed': currentPage === totalPages}\"\r\n class=\"item chevron left-chevron\" [innerHTML]=\"chevronIcon | safeHtml\"\r\n (click)=\"_onChangePage(currentPage + 1)\">\r\n </span>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-panel-links',\r\n templateUrl: './herum-panel-links.component.html',\r\n styleUrls: ['./herum-panel-links.component.scss']\r\n})\r\nexport class HerumPanelLinksComponent {\r\n\r\n @Input() selectedLink!: IdentifiedEntity;\r\n @Input() links!: IdentifiedEntity[];\r\n @Output() linkEmitter = new EventEmitter<IdentifiedEntity>();\r\n\r\n _onClick(link: IdentifiedEntity) {\r\n this.selectedLink = link;\r\n this.linkEmitter.emit(link);\r\n }\r\n\r\n _isActiveLink(linkId: string) {\r\n return this.selectedLink?.id === linkId;\r\n }\r\n}","<div class=\"links-container\">\r\n <a *ngFor=\"let link of links\" class=\"link-item\" [ngClass]=\"{'active-link':_isActiveLink(link.id)}\"\r\n (click)=\"_onClick(link)\">\r\n\r\n <span class=\"link-text\">\r\n {{link.name}}\r\n </span>\r\n </a>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\nconst upPosition: string = 'up';\r\nconst leftPosition: string = 'left';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-progress-bar',\r\n templateUrl: './herum-progress-bar.component.html',\r\n styleUrls: ['./herum-progress-bar.component.scss']\r\n})\r\nexport class HerumProgressBarComponent {\r\n\r\n @Input() percentage: number = 65;\r\n @Input() invalidPercentage: number = 0;\r\n @Input() showPercentage: boolean = true;\r\n @Input() percentagePosition: string = 'up';\r\n @Input() type: 'gradient' | 'solid' = 'gradient';\r\n @Input() size: 'tight' | 'regular' = 'regular';\r\n @Input() color: string = \"#26C593\";\r\n @Input() borderRadius: \"none\" | \"right\" | \"left\" | \"both\" = \"both\";\r\n @Input() total: string = \"100\";\r\n @Input() showBorder: boolean = true;\r\n @Input() thickness: 'thin' | 'thick' = 'thick';\r\n\r\n getPercentageFormat(): string {\r\n return this.percentagePosition === upPosition || this.percentagePosition === leftPosition ?\r\n (!this.invalidPercentage ? 0 + this.percentage + '%' : `${!this.isInfinity ? Math.floor(this.invalidPercentage + this.percentage) + '%' : '∞'}`) :\r\n `${this.percentage}/${this.total}`;\r\n }\r\n\r\n get invalidPercentageCalculation() {\r\n let sum = Math.floor(this.percentage + this.invalidPercentage);\r\n return !sum ? 0 : sum <= 100 ? this.invalidPercentage : 100 - this.percentage;\r\n }\r\n\r\n get isInfinity() {\r\n return this.percentage + this.invalidPercentage > 3000\r\n }\r\n}","<div class=\"container p-0\" [ngClass]=\"percentagePosition + '-container'\" [ngClass]=\"borderRadius + '-radius'\">\r\n <div class=\"progress-bar\" [ngClass]=\"{ 'colored-empty-bar': type == 'solid', 'tight': size=='tight', 'thin': thickness == 'thin', 'thick': thickness == 'thick' }\" \r\n [ngStyle]=\"{ 'border': showBorder ? '1px solid var(--chips-divider-color)' : 'unset' }\">\r\n <div class=\"progress-bar-fill\" [ngClass]=\"type\" [ngStyle]=\"{'width':percentage + '%', 'background':color}\" ></div>\r\n <div class=\"invalid-progress-bar-fill\" [ngStyle]=\"{'width':invalidPercentageCalculation + '%'}\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"showPercentage\" class=\"percentage\" [ngClass]=\"percentagePosition + ' ' + size\" [class.big-font]=\"isInfinity\" [ngStyle]=\"{'width':invalidPercentageCalculation + percentage + '%'}\">\r\n {{ getPercentageFormat() }}\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { QuizHeaderState } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-quiz-header-item',\r\n templateUrl: './herum-quiz-header-item.component.html',\r\n styleUrls: ['./herum-quiz-header-item.component.scss']\r\n})\r\nexport class HerumQuizHeaderItemComponent {\r\n\r\n @Input() index!: string;\r\n @Input() item!: {};\r\n @Input() itemState!: {};\r\n @Output() itemEmitter = new EventEmitter();\r\n\r\n _onSelectItem(index: string) {\r\n this.itemEmitter.emit(index);\r\n }\r\n\r\n getItemClass(itemState: {}): string {\r\n switch (itemState) {\r\n case QuizHeaderState.current:\r\n return 'current';\r\n case QuizHeaderState.correct:\r\n return 'correct';\r\n case QuizHeaderState.wrong:\r\n return 'wrong';\r\n case QuizHeaderState.answered:\r\n return 'answered';\r\n case QuizHeaderState.unanswered:\r\n return 'unanswered';\r\n case QuizHeaderState.skipped:\r\n return 'skipped';\r\n default:\r\n return 'current';\r\n }\r\n }\r\n}","<div class=\"item\" (click)=\"_onSelectItem(index)\">\r\n <div class=\"item-number\" [ngClass]=\"getItemClass(itemState)\">{{index +1}}\r\n </div>\r\n</div>","import { Component, Input, EventEmitter, Output, ViewChild, forwardRef, SimpleChanges, ElementRef, HostListener } from '@angular/core';\r\nimport { HerumInputFieldComponent } from '../herum-input-field/herum-input-field.component';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { openClose } from 'herum-shared/animations';\r\nimport { Subject } from 'rxjs';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\nimport { getDropdownAnimationStates } from 'herum-shared/utils';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nconst dummySkeletonArray = [1, 2, 3, 4];\r\n\r\nconst CUSTOM_SELECT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumSelectComponent),\r\n multi: true,\r\n};\r\nconst optionsInput: string = 'options';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-select',\r\n templateUrl: './herum-select.component.html',\r\n styleUrls: [\r\n './herum-select.component.scss',\r\n '../../assets/shared/atoms/selects/herum-selects.component.scss'\r\n ],\r\n providers: [CUSTOM_SELECT_CONTROL_VALUE_ACCESSOR],\r\n animations: [openClose]\r\n})\r\nexport class HerumSelectComponent implements ControlValueAccessor {\r\n\r\n @Input() options: IdentifiedEntity[] = [];\r\n @Input() displayBy: string = 'name';\r\n @Input() placeholder: string = 'בחר/י...';\r\n @Input() selectedOption!: IdentifiedEntity;\r\n @Input() disabled: boolean = false;\r\n @Input() isDropDownInPositionFixed: boolean = false;\r\n @Input() iconPath: string = '';\r\n @Input() isAutoComplete: boolean = false;\r\n @Input() title: string = '';\r\n @Input() size: 'min' | 'fit' | 'default' | 'big' | 'responsive' | 'fill-container' = 'default';\r\n @Input() displayLoadingMode: boolean = false;\r\n @Input() isLoadingInput: boolean = false;\r\n @Input() dropDownDirection: 'upwards' | 'downwards' = 'downwards';\r\n @Input() filterPlaceholder = \"חפש/י...\"\r\n @Input() debounceTime: number = 0;\r\n\r\n @Output() selectedOptionEmitter = new EventEmitter<IdentifiedEntity>();\r\n @Output() filterTextEmitter = new EventEmitter<string>();\r\n\r\n @ViewChild('filterInput') filterInput: HerumInputFieldComponent;\r\n @ViewChild('dropContainer') dropContainer: ElementRef;\r\n @ViewChild('dropdown') dropdown: ElementRef;\r\n\r\n @HostListener('window:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n this.closeDropdown(event);\r\n }\r\n\r\n narrowSelect: boolean = false\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: Event) {\r\n this.narrowSelect = window.innerWidth < 1300 && !!this.iconPath;\r\n }\r\n\r\n filteredOptions: IdentifiedEntity[] = [];\r\n isDropdownOpen: boolean = false;\r\n destroySubject$ = new Subject<null>();\r\n componentId: string = '';\r\n\r\n get errorOccurred() {\r\n this.placeholder = 'התרחשה שגיאה בקבלת פרטי המשתמש';\r\n return false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.narrowSelect = window.innerWidth < 1300 && !!this.iconPath;\r\n if (this.isAutoComplete && !this.isLoadingInput || changes[optionsInput]?.currentValue?.length && !this.filteredOptions?.length)\r\n this.filteredOptions = changes[optionsInput]?.currentValue;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.componentId = uuidv4();\r\n this.dropContainer.nativeElement.id += `component-id-${this.componentId}`;\r\n }\r\n\r\n _onSelectOption(selectedOption: IdentifiedEntity) {\r\n this.resetFiltering();\r\n this.selectedOption = selectedOption;\r\n this.onChange(selectedOption);\r\n this.selectedOptionEmitter.emit(selectedOption);\r\n }\r\n\r\n _onStopPropagation(event: MouseEvent): void {\r\n event.stopPropagation();\r\n }\r\n\r\n _onFilterDropDown(text: string) {\r\n this.filteredOptions = this.options;\r\n if (!text && !this.isAutoComplete)\r\n return;\r\n\r\n if (!this.isAutoComplete)\r\n this.filteredOptions = this.options.filter(filteredOption => filteredOption[this.displayBy].includes(text));\r\n\r\n this.filterTextEmitter.emit(text);\r\n }\r\n\r\n toggleDropdown() {\r\n this.isDropdownOpen = !this.isDropdownOpen;\r\n }\r\n\r\n closeDropdown(event: MouseEvent) {\r\n if (!this.isDropdownOpen)\r\n return;\r\n\r\n const isClickedOutsideComponent: boolean = !event.composedPath().some(path => (path as HTMLElement).id?.includes(this.componentId));\r\n\r\n if (!(event.target as HTMLElement).matches('.internal') || isClickedOutsideComponent) {\r\n this.isDropdownOpen = false;\r\n this.resetFiltering();\r\n }\r\n }\r\n\r\n isSelectedOption(option: IdentifiedEntity) {\r\n if (!this.selectedOption)\r\n return false;\r\n\r\n return this.selectedOption.id === option.id;\r\n }\r\n\r\n private resetFiltering() {\r\n this.filterInput?.clearInput();\r\n this.filteredOptions = this.options;\r\n }\r\n\r\n _isLoading() {\r\n return (this.displayLoadingMode && !this.title?.length) || this.isLoadingInput;\r\n }\r\n\r\n\r\n onChange: (selectedOption: IdentifiedEntity) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(selectedOption: IdentifiedEntity): void {\r\n this.selectedOption = selectedOption;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroySubject$.next(null);\r\n this.destroySubject$.complete();\r\n }\r\n\r\n get dropdownClasses(): string {\r\n let classes = `dropdown-content dropdown-${this.dropDownDirection} ${this.size}-dropdown`;\r\n\r\n if (this.isDropDownInPositionFixed)\r\n classes += ' fixed';\r\n\r\n if (this.filteredOptions?.length)\r\n classes += ' scrollable-settings';\r\n\r\n return classes;\r\n }\r\n\r\n get _getDropdownStates() {\r\n return getDropdownAnimationStates(this.isDropdownOpen, this.dropDownDirection);\r\n }\r\n\r\n get skeletonArray() {\r\n return dummySkeletonArray;\r\n }\r\n}","<div #dropContainer class=\"dropdown\" dir=\"rtl\"\r\n [ngClass]=\"{'w-100': size === 'responsive', 'fill-container':size === 'fill-container' }\"\r\n (click)=\"toggleDropdown()\">\r\n <button class=\"drop-button internal\" [class]=\"narrowSelect ? 'narrow' : size\"\r\n [ngClass]=\"(isDropdownOpen ? 'open-drop-button-' + dropDownDirection : '')\"\r\n [ngStyle]=\" {'padding': iconPath ? '4px 12px 4px 4px' : null }\">\r\n <div class=\"selected-option-container internal\" [ngClass]=\"{'skeleton-container':_isLoading()}\" *ngIf=\"iconPath\">\r\n <span class=\"title internal\">\r\n <img *ngIf=\"iconPath\" [src]=\"iconPath\" alt=\"icon\" class=\"icon\">\r\n\r\n <span *ngIf=\"!narrowSelect\" [ngClass]=\"{'skeleton':_isLoading(), 'skeleton-text':_isLoading()}\">\r\n {{errorOccurred ? 'התרחשה שגיאה' :title}}\r\n </span>\r\n </span>\r\n\r\n <br *ngIf=\"!_isLoading()\">\r\n\r\n <span class=\"selected-option internal\"\r\n [ngClass]=\"{'skeleton':_isLoading(),'skeleton-text':_isLoading(), 'skeleton-selected-option':_isLoading()}\">\r\n {{selectedOption ? selectedOption[displayBy] : title}}\r\n </span>\r\n </div>\r\n\r\n <ng-container *ngIf=\"iconPath == ''\">\r\n {{selectedOption ? selectedOption[displayBy] : placeholder }}\r\n </ng-container>\r\n\r\n <span class=\"shevron-icon internal\" [ngClass]=\"{'rotate-chevron': isDropdownOpen}\">\r\n <svg class=\"internal\" xmlns=\"http://www.w3.org/2000/svg\" width=\"11.299\" height=\"6.649\"\r\n viewBox=\"0 0 11.299 6.649\">\r\n <path id=\"Vector_43-2\" data-name=\"Vector 43-2\" d=\"M1006.235,549.5,1002,553.735l-4.236-4.235\"\r\n transform=\"translate(-996.35 -548.086)\" fill=\"none\" stroke=\"var(--icons-color)\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" />\r\n </svg>\r\n </span>\r\n </button>\r\n\r\n <div #dropdown id=\"myDropdown\" [ngClass]=\"dropdownClasses\" [@openClose]=\"_getDropdownStates\">\r\n <herum-input-field #filterInput *ngIf=\"options?.length>2 || isAutoComplete\" class=\"input-filter\"\r\n [type]=\"'search'\" [placeholder]=\"filterPlaceholder\" [debounceTime]=\"debounceTime\"\r\n (click)=\"_onStopPropagation($event)\" (inputValueEmitter)=\"_onFilterDropDown($event)\"></herum-input-field>\r\n <ng-container *ngFor=\"let option of isLoadingInput ? skeletonArray : filteredOptions; let index = index\">\r\n <a (click)=\"_onSelectOption(option)\" id=\"select-{{index}}\"\r\n [ngClass]=\"{'selected': isSelectedOption(option), 'skeleton skeleton-text m-3':isLoadingInput}\">\r\n {{option[displayBy]}}</a>\r\n </ng-container>\r\n\r\n <a class=\"text-center\" *ngIf=\"!filteredOptions?.length && !isLoadingInput\">לא נמצאו תוצאות</a>\r\n </div>\r\n</div>","import { Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\n\r\nconst smallSize = 'small';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-slider',\r\n templateUrl: './herum-slider.component.html',\r\n styleUrls: ['./herum-slider.component.scss']\r\n})\r\nexport class HerumSliderComponent {\r\n\r\n @Input() size: string = 'default';\r\n @Input() maxSliderValue: number;\r\n @Input() currentSliderValue: number;\r\n @Input() initSlider: boolean;\r\n l\r\n @Output() isDraggingEmitter = new EventEmitter<boolean>();\r\n @Output() updatedSliderValue = new EventEmitter<number>();\r\n @ViewChild('slider') slider: ElementRef;\r\n\r\n progress: number;\r\n isDragging: boolean = false;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['currentSliderValue']) {\r\n if (changes['currentSliderValue'].currentValue === 0)\r\n this.progress = 0;\r\n else\r\n this.progress = (100 / this.maxSliderValue) * changes['currentSliderValue'].currentValue;\r\n }\r\n }\r\n\r\n _onUpdateProgressMouseClicked(event: MouseEvent) {\r\n this.updateSliderOnMouseEvent(event);\r\n }\r\n\r\n _onUpdateProgressMouseDown(event: MouseEvent) {\r\n event.preventDefault();\r\n this.isDragging = true;\r\n document.body.classList.add('grabbing');\r\n\r\n this.isDraggingEmitter.emit(true);\r\n\r\n const mouseMoveListener = (event: MouseEvent) => { this.updateSliderOnMouseEvent(event); };\r\n const mouseUpListener = () => {\r\n this.isDragging = false;\r\n document.body.classList.remove('grabbing');\r\n this.isDraggingEmitter.emit(false);\r\n\r\n document.removeEventListener('mousemove', mouseMoveListener);\r\n document.removeEventListener('mouseup', mouseUpListener);\r\n };\r\n\r\n document.addEventListener('mouseup', mouseUpListener);\r\n document.addEventListener('mousemove', mouseMoveListener);\r\n }\r\n\r\n calculateSliderProgress(): number {\r\n return this.progress === 100 ? this.progress - 1.5 : this.progress;\r\n }\r\n\r\n isSmallSizeSlider(): boolean {\r\n return this.size === smallSize;\r\n }\r\n\r\n private updateSliderOnMouseEvent(event: MouseEvent): void {\r\n const containerWidth = this.slider.nativeElement.clientWidth;\r\n const offsetX = event.pageX - this.slider.nativeElement.getBoundingClientRect().left;\r\n this.updatedSliderValue.emit((offsetX / containerWidth) * this.maxSliderValue);\r\n }\r\n}\r\n","<div class=\"slider-container\" (click)=\"_onUpdateProgressMouseClicked($event)\">\r\n <div #slider class=\"slider-wrapper\" [ngClass]=\"{'small-slider-wrapper':isSmallSizeSlider()}\"\r\n [ngStyle]=\"{'cursor': isDragging ? 'grabbing' : 'grab'}\" (mousedown)=\"_onUpdateProgressMouseDown($event)\">\r\n <div class=\"slider-track\" [style.width.%]=\"calculateSliderProgress()\"></div>\r\n\r\n <div class=\"slider-thumb\" [style.left.%]=\"calculateSliderProgress()\"\r\n [ngClass]=\"{'small-slider-thumb': isSmallSizeSlider()}\">\r\n </div>\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-spinner',\r\n templateUrl: './herum-spinner.component.html',\r\n styleUrls: ['./herum-spinner.component.scss']\r\n})\r\nexport class HerumSpinnerComponent {\r\n\r\n @Input() size: 'default-size' = 'default-size';\r\n @Input() borderColor: 'default-border-color' = 'default-border-color';\r\n @Input() borderWidth: 'default-border-width' = 'default-border-width';\r\n @Input() borderTopColor: 'default-border-top-color' = 'default-border-top-color';\r\n @Input() shape: 'circle' = 'circle';\r\n}","<div class=\"spinner\" [ngClass]=\"[size,borderColor, borderTopColor,borderWidth,shape]\"></div>","import { Component, forwardRef, Output, EventEmitter, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst CUSTOM_SWITCH_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumSwitchComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-switch',\r\n templateUrl: './herum-switch.component.html',\r\n styleUrls: ['./herum-switch.component.scss'],\r\n providers: [CUSTOM_SWITCH_CONTROL_VALUE_ACCESSOR]\r\n\r\n})\r\nexport class HerumSwitchComponent implements ControlValueAccessor {\r\n\r\n @Input() isChecked: boolean = false;\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() checked = new EventEmitter<boolean>();\r\n\r\n _onCheck() {\r\n this.isChecked = !this.isChecked;\r\n this.checked.emit(this.isChecked);\r\n this.onChange(this.isChecked);\r\n }\r\n\r\n onChange: (value: any) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(isChecked: any): void {\r\n this.isChecked = isChecked;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}","<label class=\"switch\" [class.disabled]=\"disabled\">\r\n <input [checked]=\"isChecked\" type=\"checkbox\" (click)=\"_onCheck()\" [disabled]=\"disabled\">\r\n <span class=\"slider round\"></span>\r\n</label>","import { Component, EventEmitter, Input, Output, forwardRef, HostListener, ViewChild, ElementRef, } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { defaultPlaceholder, keyboardAsciiCodes, svgsStrings } from 'herum-shared/constants';\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumTextAreaComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-text-area',\r\n templateUrl: './herum-text-area.component.html',\r\n styleUrls: [\r\n './herum-text-area.component.scss',\r\n '../../assets/shared/atoms/inputs/herum-inputs.component.scss'\r\n ],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class HerumTextAreaComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string = defaultPlaceholder;\r\n @Input() disabled: boolean = false;\r\n @Input() formControlName: string = '';\r\n @Input() isValid: boolean = true;\r\n @Input() isLoading: boolean = false;\r\n @Input() errorMsg: string = '';\r\n @Input() showErrorMsgGap: boolean = true;\r\n @Input() id: string = '';\r\n @Input() preventMacroKeysPressEvent: number[] = [keyboardAsciiCodes.space, keyboardAsciiCodes.right, keyboardAsciiCodes.left];\r\n @Input() heightMode: 'regular' | 'max' = 'regular'\r\n @Input() fontSize: number;\r\n @Input() inputValue: string = '';\r\n @Input() maxLength: number;\r\n\r\n @Output() inputValueEmitter = new EventEmitter<string>();\r\n\r\n @HostListener('keypress', ['$event'])\r\n onKeyPress(event: KeyboardEvent) {\r\n if ((event.target as HTMLInputElement).alt == 'number' && !(event.keyCode >= 48 && event.keyCode <= 57)) {\r\n event.preventDefault();\r\n }\r\n }\r\n @ViewChild('textarea') textarea!: ElementRef;\r\n\r\n touched: boolean = false;\r\n isBlurred: boolean = false;\r\n\r\n ngAfterViewInit() {\r\n if (this.fontSize)\r\n this.textarea.nativeElement.style.fontSize = `${this.fontSize}px`;\r\n }\r\n\r\n _onClearTextArea() {\r\n this.inputValue = '';\r\n this.onChange(this.inputValue);\r\n }\r\n\r\n _onInput(event: string) {\r\n this.onChange(this.inputValue);\r\n this.inputValueEmitter.emit(this.inputValue);\r\n this.touched = true;\r\n }\r\n\r\n onChange: (value: any) => void = () => { };\r\n onTouched: () => void = () => { };\r\n\r\n writeValue(value: any): void {\r\n this.inputValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n showErrors() { }\r\n\r\n setBlurred() {\r\n this.isBlurred = true;\r\n }\r\n\r\n get xSvg() {\r\n return svgsStrings.X\r\n }\r\n}","<div class=\"input-container custom-resizer\" [ngClass]=\"heightMode\">\r\n <textarea #textarea class=\"input-field no-resizer min-height-input w-100\"\r\n [ngClass]=\"{'error-input':!isValid && touched && isBlurred}\" [placeholder]=\"placeholder\" [disabled]=\"disabled\" [maxlength]=\"maxLength\"\r\n [(ngModel)]=\"inputValue\" [id]=\"id ? id : formControlName\"\r\n [attr.prevent-macro-keys-press-event]=\"preventMacroKeysPressEvent\" (ngModelChange)=\"_onInput($event)\"\r\n (blur)=\"setBlurred()\">\r\n </textarea>\r\n\r\n <span class=\"icon clickable\" *ngIf=\"inputValue && !disabled && !isLoading\" (click)=\"_onClearTextArea()\">\r\n <span class=\"small-icon\" [innerHTML]=\"xSvg | safeHtml\"></span>\r\n </span>\r\n\r\n <herum-spinner class=\"small-icon\" *ngIf=\"isLoading\"></herum-spinner>\r\n</div>\r\n\r\n<ng-container *ngIf=\"!isValid && touched && isBlurred\">\r\n <label class=\"error-msg right\" *ngIf=\"showErrorMsgGap\">\r\n {{ errorMsg }}\r\n </label>\r\n</ng-container>","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { timerActiveColorCssVariable, timerHoverColorCssVariable, timerItemSizeColorCssVariable } from 'herum-shared/constants';\r\nimport { TimeUnit } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-time-picker',\r\n templateUrl: './herum-time-picker.component.html',\r\n styleUrls: ['./herum-time-picker.component.scss']\r\n})\r\nexport class HerumTimePickerComponent {\r\n\r\n @Input() activeColor: string = 'green';\r\n @Input() hoverColor: string = 'yellow';\r\n @Input() itemSize: string = '46px';\r\n @Input() selectedTime: string = '00:00:00';\r\n @Input() showSeconds: boolean = true;\r\n\r\n @Output() timeChange = new EventEmitter<string>();\r\n\r\n @ViewChild('hoursColumn') hoursColumn: ElementRef;\r\n @ViewChild('minutesColumn') minutesColumn: ElementRef;\r\n @ViewChild('secondsColumn') secondsColumn: ElementRef;\r\n\r\n hours: string[] = Array.from({ length: 24 }, (_, index) => String(index).padStart(2, '0'));\r\n minutes: string[] = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\r\n seconds: string[] = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\r\n\r\n selectedHour: number = 0;\r\n selectedMinute: number = 0;\r\n selectedSecond: number = 0;\r\n hostElement!: HTMLElement;\r\n columnHeight: string = '100%';\r\n\r\n constructor(private elementRef: ElementRef, private changeDetectorRef: ChangeDetectorRef) {\r\n this.hostElement = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.hostElement) {\r\n if (changes['activeColor']?.currentValue)\r\n this.hostElement.style.setProperty(timerActiveColorCssVariable, this.activeColor);\r\n\r\n if (changes['hoverColor']?.currentValue)\r\n this.hostElement.style.setProperty(timerHoverColorCssVariable, this.hoverColor);\r\n\r\n if (changes['itemSize']?.currentValue) {\r\n this.hostElement.style.setProperty(timerItemSizeColorCssVariable, this.itemSize);\r\n this.calculateColumnHeight();\r\n }\r\n }\r\n\r\n if (changes['selectedTime']?.currentValue) {\r\n this.setTime(this.selectedTime);\r\n this.handleScrollToSelectedTime(this.selectedTime);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.handleScrollToSelectedTime(this.selectedTime);\r\n this.calculateColumnHeight();\r\n }\r\n\r\n _onSelectHour(index: number): void {\r\n this.selectedHour = index;\r\n this.emitSelectedTime();\r\n }\r\n\r\n _onSelectMinute(index: number): void {\r\n this.selectedMinute = index;\r\n this.emitSelectedTime();\r\n }\r\n\r\n _onSelectSecond(index: number): void {\r\n this.selectedSecond = index;\r\n this.emitSelectedTime();\r\n }\r\n\r\n private emitSelectedTime() {\r\n const formattedTime = this.formatTime(this.selectedHour, this.selectedMinute, this.selectedSecond);\r\n this.selectedTime = formattedTime;\r\n this.timeChange.emit(formattedTime);\r\n }\r\n\r\n private setTime(selectedTime: string) {\r\n [this.selectedHour, this.selectedMinute, this.selectedSecond] = selectedTime.split(':').map(Number);\r\n }\r\n\r\n private formatTime(hours: number, minutes: number, seconds: number): string {\r\n const hoursAndMinutes = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;\r\n return !this.showSeconds ? hoursAndMinutes : hoursAndMinutes + `:${seconds?.toString().padStart(2, '0')}`;\r\n }\r\n\r\n private scrollToSelectedTime(type: number, index: number) {\r\n let column!: ElementRef;\r\n\r\n switch (type) {\r\n case TimeUnit.hours:\r\n column = this.hoursColumn;\r\n this.selectedHour = index\r\n break;\r\n\r\n case TimeUnit.minutes:\r\n column = this.minutesColumn;\r\n this.selectedMinute = index\r\n break;\r\n\r\n case TimeUnit.seconds:\r\n column = this.secondsColumn;\r\n this.selectedSecond = index\r\n break;\r\n }\r\n\r\n if (column) {\r\n const columnHeight = column.nativeElement.getBoundingClientRect().height;\r\n const itemHeight = column.nativeElement.children[index].getBoundingClientRect().height;\r\n const itemDistanceFromColumnTop = Math.floor(itemHeight * index) - columnHeight * 0.5 + itemHeight * 0.5;\r\n column.nativeElement.scrollTo({ top: itemDistanceFromColumnTop, behavior: 'smooth' });\r\n }\r\n }\r\n\r\n private handleScrollToSelectedTime(selectedTime: string) {\r\n const [hours, minutes, seconds] = selectedTime.split(':').map(Number);\r\n\r\n this.scrollToSelectedTime(TimeUnit.minutes, minutes);\r\n this.scrollToSelectedTime(TimeUnit.hours, hours);\r\n\r\n if (this.showSeconds)\r\n this.scrollToSelectedTime(TimeUnit.seconds, seconds);\r\n }\r\n\r\n private calculateColumnHeight() {\r\n const randomColumnElement = this.hoursColumn?.nativeElement;\r\n\r\n if (!randomColumnElement)\r\n return;\r\n\r\n const randomColumnHeight = randomColumnElement.getBoundingClientRect().height;\r\n const items = randomColumnElement.children;\r\n const randomItemHeight = items[0].getBoundingClientRect().height;\r\n const calculatedHeight = Math.floor(randomColumnHeight / randomItemHeight) * randomItemHeight;\r\n this.columnHeight = `${calculatedHeight}px`;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n}","<div class=\"time-picker\">\r\n <div *ngIf=\"showSeconds\" class=\"container\">\r\n <div class=\"units-title\">שניות</div>\r\n\r\n <div #secondsColumn class=\"column\" [ngStyle]=\"{ height: columnHeight }\">\r\n <div class=\"item\" *ngFor=\"let second of seconds; let index = index\" [class.active]=\"selectedSecond === index\"\r\n (click)=\"_onSelectSecond(index)\">\r\n {{ second }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"container\" [ngClass]=\"showSeconds ? 'container-border' : '' \">\r\n <span class=\"units-title\">דקות</span>\r\n\r\n <div #minutesColumn class=\"column\" [ngStyle]=\"{ height: columnHeight }\">\r\n <div class=\"item\" *ngFor=\"let minute of minutes; let index = index\" [class.active]=\"selectedMinute === index\"\r\n (click)=\"_onSelectMinute(index)\">\r\n {{ minute }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"container container-border\">\r\n <span class=\"units-title\">שעות</span>\r\n\r\n <div #hoursColumn class=\"column\" [ngStyle]=\"{ height: columnHeight }\">\r\n <div class=\"item\" *ngFor=\"let hour of hours; let index = index\" [class.active]=\"selectedHour === index\"\r\n (click)=\"_onSelectHour(index)\">\r\n {{ hour }}\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Input, Output, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { types } from 'herum-shared/constants';\r\n\r\nconst CUSTOM_TOGGLE_BUTTON_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumToggleButtonComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-toggle-button',\r\n templateUrl: './herum-toggle-button.component.html',\r\n styleUrls: ['./herum-toggle-button.component.scss', '../herum-button/herum-button.component.scss'],\r\n providers: [CUSTOM_TOGGLE_BUTTON_CONTROL_VALUE_ACCESSOR]\r\n\r\n})\r\nexport class HerumToggleButtonComponent implements ControlValueAccessor {\r\n\r\n @Input() options: string[] = [];\r\n @Input() selectedOption: string = 'none';\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() onSelectedOption = new EventEmitter<string>();\r\n selectedOptionIndex: number | undefined;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selectedOption'])\r\n this.selectedOptionIndex = this.options.findIndex(option => option == this.selectedOption);\r\n }\r\n\r\n toggleOption(selectedOptionIndex: number) {\r\n this.selectedOption = this.options[selectedOptionIndex];\r\n this.selectedOptionIndex = selectedOptionIndex;\r\n\r\n this.onSelectedOption.emit(this.selectedOption);\r\n this.onChange(this.selectedOption);\r\n }\r\n\r\n isOptionSelected(selectedOptionIndex: number) {\r\n return this.selectedOptionIndex === selectedOptionIndex;\r\n }\r\n\r\n isBorderNeeded(elementIndex: number) {\r\n return elementIndex != this.options.length - 1 && !this.isOptionSelected(elementIndex + 1) && !this.isOptionSelected(elementIndex);\r\n }\r\n\r\n onChange: (value: any) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(selectedOption: string): void {\r\n if (typeof selectedOption === types.string) {\r\n this.selectedOption = selectedOption;\r\n this.selectedOptionIndex = this.options.findIndex(option => option == this.selectedOption);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","<div class=\"toggle-container\">\r\n <div *ngFor=\"let option of options; let i = index\">\r\n <button [value]=\"i\" (click)=\"toggleOption(i)\" class=\"small\" type=\"button\"\r\n [class.primary]=\"isOptionSelected(i)\" [disabled]=\"disabled\">\r\n {{option}}\r\n </button>\r\n </div>\r\n</div>","import { Component, Output, EventEmitter, Input, ViewChild, ElementRef, forwardRef, Inject, Optional, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ControlContainer } from '@angular/forms';\r\nimport { resourcesFilesSuffixes, anySubFileTypeWildCard, svgsStrings } from 'herum-shared/constants';\r\nimport { FileData } from 'herum-shared/herum-types';\r\n\r\nconst storyFile: string = 'story.html';\r\nconst defaultPlaceholder: string = 'העלה/י קבצי לומדה...';\r\nconst invalidUploadKey: string = 'invalid Upload';\r\nconst requiredErrorKey: string = 'required';\r\n\r\nconst CUSTOM_UPLOAD_FILE_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumUploadFileComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-upload-file',\r\n templateUrl: './herum-upload-file.component.html',\r\n styleUrls: ['./herum-upload-file.component.scss'],\r\n providers: [CUSTOM_UPLOAD_FILE_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class HerumUploadFileComponent implements ControlValueAccessor {\r\n\r\n @Input() size: 'default' | 'responsive' = 'default';\r\n @Input() placeholder: string = defaultPlaceholder;\r\n @Input() isDirectoryMode: boolean = false;\r\n @Input() allowedFileTypes: string[] = [];\r\n @Input() selectedFile: FileData;\r\n @Input() formControlName!: string;\r\n @Input() isEditMode!: boolean;\r\n\r\n @Output() uploadFile = new EventEmitter<File[]>();\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n\r\n files!: File[];\r\n uploadName!: string;\r\n filesSuffixes: { [key: string]: string } = resourcesFilesSuffixes;\r\n fileSuffix!: string;\r\n isValidirectory: boolean = true;\r\n hasTouched: boolean = false;\r\n uploadFileSvg: string = svgsStrings.greyUploadFile;\r\n\r\n constructor(@Optional() @Inject(ControlContainer) private parentForm: ControlContainer) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.selectedFile && this.selectedFile)\r\n this.setExistingFile();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.fileInput.nativeElement.setAttribute('title', '');\r\n }\r\n\r\n _onPreventDefault(event: DragEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n _onDrop(event: DragEvent): void {\r\n this._onPreventDefault(event);\r\n event.stopPropagation();\r\n const fileList = Array.from(event.dataTransfer.files);\r\n this.uploadName = event.dataTransfer?.files[0]?.name;\r\n this._onUploadFile(fileList);\r\n }\r\n\r\n _onUploadFile(files: File[]): void {\r\n if (!files.length)\r\n return;\r\n\r\n this.files = [];\r\n\r\n if (!this.isDirectoryMode) {\r\n this.fileSuffix = '.' + files[0]?.name.split('.').pop();\r\n\r\n if (!this.isFileTypeAllowed()) {\r\n this.formControl?.setErrors({ [invalidUploadKey]: true })\r\n return;\r\n }\r\n\r\n this.uploadName = files[0]?.name.split('.')[0];\r\n }\r\n else {\r\n this.directoryValidation(Array.from(files));\r\n if (!this.isValidirectory) {\r\n this.formControl?.setErrors({ [invalidUploadKey]: true })\r\n return;\r\n }\r\n else\r\n this.uploadName = (files[0] as any)?.webkitRelativePath?.split('/')[0] || '';\r\n }\r\n\r\n this.getIconPath();\r\n this.files = files;\r\n this.uploadFile.emit(this.files);\r\n this.onChange(this.files);\r\n this.formControl?.setErrors(null);\r\n }\r\n\r\n private setExistingFile() {\r\n if (!this.files) this.files = [];\r\n\r\n this.files.push({\r\n name: this.selectedFile.name,\r\n lastModified: new Date(this.selectedFile.uploadTime).getTime(),\r\n type: this.selectedFile.type,\r\n } as File);\r\n\r\n this.uploadName = this.selectedFile.name\r\n }\r\n\r\n private isFileTypeAllowed(): boolean {\r\n return (this.fileSuffix && this.allowedFileTypes?.length && !this.allowedFileTypes.some(value => value === undefined)) ? this.allowedFileTypes.includes(this.fileSuffix) : true;\r\n }\r\n\r\n private directoryValidation(files: File[]) {\r\n this.isValidirectory = files.some((file) => { return file.name === storyFile; });\r\n }\r\n\r\n private getIconPath(): void {\r\n if (this.isDirectoryMode) {\r\n this.uploadFileSvg = svgsStrings.story;\r\n return;\r\n }\r\n\r\n let hasFileSuffixFound = false;\r\n\r\n Object.values(resourcesFilesSuffixes).forEach(fileSuffix => {\r\n if (fileSuffix === this.fileSuffix) {\r\n this.uploadFileSvg = svgsStrings[fileSuffix];\r\n hasFileSuffixFound = true;\r\n }\r\n })\r\n\r\n if (!hasFileSuffixFound)\r\n this.uploadFileSvg = svgsStrings.greyUploadFile;\r\n }\r\n\r\n _onRemoveFiles(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.fileInput.nativeElement.value = '';\r\n this.files = null;\r\n this.uploadFile.emit([]);\r\n this.onChange([]);\r\n this.uploadFileSvg = svgsStrings.greyUploadFile;\r\n\r\n if (this.isDirectoryMode) {\r\n this.fileSuffix = '';\r\n this.uploadName = '';\r\n }\r\n else\r\n this.isValidirectory = true;\r\n }\r\n\r\n _onCancelUploadFile() {\r\n this.hasTouched = true;\r\n this.onTouched();\r\n if (!this.files && !this.files?.length && this.formControl)\r\n this.formControl.hasError(requiredErrorKey)\r\n }\r\n\r\n getAcceptValue(allowedFileTypes: string[]): string {\r\n if (!allowedFileTypes && !allowedFileTypes?.length)\r\n return anySubFileTypeWildCard;\r\n\r\n return allowedFileTypes.join(', ');\r\n }\r\n\r\n _isTruncatedTitleElement(element: HTMLElement): boolean {\r\n return element.innerText.includes('...');\r\n }\r\n\r\n onChange: (value: any) => void = () => { };\r\n\r\n onTouched: () => void = () => { };\r\n\r\n writeValue(value: any): void {\r\n if (value) {\r\n !value.length ? this.resetData() : this._onUploadFile(value);\r\n if (value.length > 1)\r\n this.isDirectoryMode = true;\r\n }\r\n }\r\n\r\n private resetData() {\r\n this.files = undefined;\r\n this.fileSuffix = undefined;\r\n this.hasTouched = false;\r\n this.uploadFileSvg = svgsStrings.greyUploadFile;\r\n\r\n if (this.fileInput)\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get directoryName() {\r\n return this.isEditMode ? this.uploadName : `${this.uploadName}- נבחרו ${this.files?.length} קבצים`;\r\n }\r\n\r\n get formControl() {\r\n return this.parentForm?.control.get(this.formControlName);\r\n }\r\n}","<button svgOnHover class=\"upload-file-button upload-file-border\" [class]=\"size\" (click)=\"fileInput.click()\"\r\n (drop)=\"_onDrop($event)\" (dragover)=\"_onPreventDefault($event)\">\r\n <ng-container *ngIf=\"!hasTouched && !files\">\r\n <div class=\"placeholder-container\">\r\n <span class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n <span dir=\"rtl\" class=\"button-placeholder\">{{placeholder}}</span>\r\n </div>\r\n </ng-container>\r\n\r\n <span class=\"error\" *ngIf=\"hasTouched && !files\">\r\n חובה להעלות קובץ\r\n </span>\r\n\r\n <div svgOnHover *ngIf=\"files?.length>=0\" class=\"file-container\">\r\n <span *ngIf=\"files?.length>0\" class=\"upload-file-icon\" [innerHTML]=\"uploadFileSvg | safeHtml\"></span>\r\n\r\n <ng-container *ngIf=\"!isDirectoryMode\">\r\n <span #fileName class=\"file-name\" *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(fileName) ? uploadName : ''\">\r\n {{uploadName | ellipsis:fileName}}\r\n </span>\r\n\r\n <img class=\"delete-button\" *ngIf=\"files?.length\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isFileTypeAllowed()\">סוג הקובץ אינו מורשה/תקין</span>\r\n </ng-container>\r\n\r\n <ng-container class=\"cursor-pointer\" *ngIf=\"isDirectoryMode\">\r\n <span class=\"directory-name-upload\" #directoryNameUpload *ngIf=\"files?.length\"\r\n [matTooltip]=\"_isTruncatedTitleElement(directoryNameUpload) ? directoryName : ''\">\r\n {{directoryName | ellipsis:directoryNameUpload}}\r\n </span>\r\n\r\n <img *ngIf=\"files?.length\" class=\"delete-button\" src=\"../../assets/general/secondary-x.svg\"\r\n (click)=\"_onRemoveFiles($event)\">\r\n\r\n <span class=\"error\" *ngIf=\"!isValidirectory\">התייקיה אינה סטורי</span>\r\n </ng-container>\r\n </div>\r\n</button>\r\n\r\n<input #fileInput class=\"d-none\" type=\"file\" [accept]=\"getAcceptValue(allowedFileTypes)\"\r\n [attr.webkitDirectory]=\"isDirectoryMode ? '' : null\" (change)=\"_onUploadFile($event.target.files)\"\r\n (cancel)=\"_onCancelUploadFile()\">","import { Component, OnInit, Input, EventEmitter, Output, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-video-select',\r\n templateUrl: './herum-video-select.component.html',\r\n styleUrls: ['./herum-video-select.component.scss'],\r\n})\r\nexport class HerumVideoSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() currentVideoSpeed!: number\r\n @Input() options: number[] = [];\r\n @Output() selectedOptionEmitter = new EventEmitter<number>();\r\n\r\n selectedOption: number = 1;\r\n selectedOptionIndexValue: number = -1;\r\n isDropupOpen = false;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['currentVideoSpeed'])\r\n this.selectedOption = changes['currentVideoSpeed'].currentValue;\r\n }\r\n\r\n ngOnInit() {\r\n window.addEventListener('click', (event) => this.closeDropup(event));\r\n }\r\n\r\n onChange: (value: any) => void = () => { };\r\n\r\n onTouched: () => void = () => { };\r\n\r\n writeValue(value: any): void {\r\n this.selectedOption = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n _onToggleDropup() {\r\n this.isDropupOpen = true;\r\n }\r\n\r\n closeDropup(event: MouseEvent) {\r\n if (!(event.target as HTMLElement).matches('.internal'))\r\n this.isDropupOpen = false;\r\n }\r\n\r\n selectOption(optionIndex: number) {\r\n this.selectedOptionIndexValue = optionIndex;\r\n this.selectedOptionEmitter.emit(Number(this.options[optionIndex]));\r\n this.selectedOption = this.options[optionIndex];\r\n }\r\n\r\n isSelectedOption(optionIndex: number) {\r\n return this.selectedOptionIndexValue == optionIndex;\r\n }\r\n\r\n show() {\r\n return this.isDropupOpen;\r\n }\r\n\r\n ngOnDestroy() {\r\n window.removeEventListener('click', (event) => this.closeDropup(event));\r\n }\r\n}","<div class=\"dropup internal\" dir=\"rtl\" (click)=\"_onToggleDropup()\">\r\n <button class=\"drop-button internal selected\"\r\n [ngClass]=\"{'open-drop-button': show(), 'displayed-selected-option':selectedOption }\">\r\n {{selectedOption ? selectedOption +'X' : '1X'}}\r\n </button>\r\n\r\n <div id=\"myDropup\" [ngClass]=\"{'dropup-content': true, 'show': show()}\">\r\n <a *ngFor=\"let option of options; let i=index\" (click)=\"selectOption(i)\"\r\n [ngClass]=\"{'selected': isSelectedOption(i)}\">\r\n {{option}}X\r\n </a>\r\n </div>\r\n</div>","import { Component, Input, EventEmitter, Output, forwardRef, SimpleChanges, Inject } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { IdentifiedEntity } from 'herum-shared/herum-types';\r\nimport { EnvironmentConfig, HERUM_SHARED_CONFIG_TOKEN } from 'herum-shared/environment';\r\n\r\nconst CUSTOM_RADIO_BUTTON_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HerumRadioButtonComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'herum-radio-button',\r\n templateUrl: './radio-button.component.html',\r\n styleUrls: ['./radio-button.component.scss'],\r\n providers: [CUSTOM_RADIO_BUTTON_CONTROL_VALUE_ACCESSOR]\r\n\r\n})\r\nexport class HerumRadioButtonComponent implements ControlValueAccessor {\r\n\r\n @Input() options: IdentifiedEntity[] = [];\r\n @Input() isValid: boolean = false;\r\n @Input() errorMsg: string = '';\r\n @Input() isVertical: boolean = false;\r\n @Output() selectOptionEmitter = new EventEmitter<string>();\r\n @Input() isBlocked: boolean = false;\r\n @Input() type: 'checked' | 'error' | 'disabled' | 'completed';\r\n @Input() selectedOption!: string\r\n @Input() additionalOptionsText: string[] = []\r\n @Input() showAdditionalOptionsText: boolean = false;\r\n\r\n @Input() secondarySelectedOption: IdentifiedEntity;\r\n\r\n selectedOptionId!: string;\r\n isSelectedOptionFocused: boolean = false;\r\n isOptionFocused: boolean = false;\r\n focusedIdOption!: string;\r\n\r\n constructor(@Inject(HERUM_SHARED_CONFIG_TOKEN) private environmentConfig: EnvironmentConfig) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['selectedOption']?.currentValue)\r\n this.selectedOptionId = changes['selectedOption'].currentValue;\r\n\r\n if (changes['type']?.currentValue)\r\n changes['type'].currentValue === this.environmentConfig?.radioButtonTypes?.disabled ? this.isBlocked = true : null;\r\n }\r\n\r\n _onSelect(option: IdentifiedEntity) {\r\n if (this.isBlocked)\r\n return;\r\n\r\n this.selectedOptionId = option.id;\r\n this.onChange(option);\r\n this.selectOptionEmitter.emit(option.id);\r\n }\r\n\r\n getRadioButtonClasses(id: string) {\r\n let classes: string = this.isBlocked ? 'not-clickable ' : '';\r\n\r\n if (this.type === this.environmentConfig?.radioButtonTypes?.disabled && !this.selectedOption)\r\n return classes += this.setAllButtonsToDisabled(classes, id);\r\n\r\n if (id === this.selectedOptionId)\r\n classes += this.setSelectedButton(classes);\r\n\r\n if ((this.isOptionFocused && id !== this.selectedOption && this.selectedOption) || (!this.selectedOption && this.focusedIdOption === id && this.isOptionFocused))\r\n classes += `default-focused-radio `;\r\n\r\n return classes.trim();\r\n }\r\n\r\n private setAllButtonsToDisabled(classes: string, id: string): string {\r\n classes += `${this.type}-border `;\r\n return this.focusedIdOption === id ? classes += `${this.type}-focused-radio` : classes;\r\n }\r\n\r\n private setSelectedButton(classes: string): string {\r\n classes += this.type ? `${this.type}-border ` : 'checked-border ';\r\n\r\n if (this.isSelectedOptionFocused)\r\n classes += this.type ? `${this.type}-focused-radio ` : 'default-focused-radio ';\r\n\r\n return classes;\r\n }\r\n\r\n getRadioButtonInnerCircleClasses(id: string) {\r\n let classes: string = ``;\r\n\r\n if (this.type === this.environmentConfig?.radioButtonTypes?.disabled && !this.selectedOption)\r\n return `${this.type}-background ${this.type}-inner-circle`;\r\n\r\n if (id === this.selectedOptionId)\r\n classes += this.type ? `${this.type}-background ` : 'checked-background ';\r\n\r\n classes += this.type === this.environmentConfig?.radioButtonTypes?.disabled || this.type === this.environmentConfig?.radioButtonTypes?.completed ? `${this.type}-inner-circle ` : 'default-inner-circle ';\r\n\r\n return classes.trim();\r\n }\r\n\r\n _isRadioButtonFocused(id: string, value: boolean) {\r\n this.focusedIdOption = id;\r\n\r\n if (id === this.selectedOption)\r\n this.isSelectedOptionFocused = value;\r\n else\r\n this.isOptionFocused = value;\r\n }\r\n\r\n onChange: (value: any) => void = () => { }\r\n\r\n onTouched: () => void = () => { }\r\n\r\n writeValue(value: { type: any, id: string, isBlocked: boolean }): void {\r\n if (value === null || value == undefined) return;\r\n\r\n if(typeof value === 'string' || typeof value === 'number'){\r\n this.selectedOptionId = value;\r\n return\r\n }\r\n\r\n this.selectedOptionId = value.id;\r\n this.type = value.type;\r\n this.isBlocked = value.isBlocked || this.isBlocked;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}","<div class=\"options-container\" [ngClass]=\"{'direction-column':isVertical}\">\r\n <label class=\"label\" *ngFor=\"let option of options ;let i = index\">\r\n <div class=\"option\" [attr.includes-additional-option-text]=\" additionalOptionsText[i] ? 'true' : 'false'\"\r\n [attr.type]=\"selectedOptionId===option.id ? type+'-selected': secondarySelectedOption?.id===option.id ? 'checked' : ''\">\r\n <div class=\"radio-container\" [ngClass]=\"getRadioButtonClasses(option.id)\" [tabindex]=\"'radio-' + i\"\r\n id=\"radio-{{option.id}}\" (click)=\"_onSelect(option)\" (blur)=\"_isRadioButtonFocused(option.id,false)\">\r\n <div class=\"inner-circle\" [ngClass]=\"getRadioButtonInnerCircleClasses(option.id)\">\r\n </div>\r\n </div>\r\n\r\n <span class=\"option-name\" [attr.type]=\"type\" [ngClass]=\"{'cursor-pointer':type===undefined}\"\r\n (click)=\"_onSelect(option)\">\r\n {{option?.name }}\r\n </span>\r\n </div>\r\n\r\n <span *ngIf=\"additionalOptionsText[i] && showAdditionalOptionsText\" class=\"additional-option-text\">\r\n {{ additionalOptionsText[i] }}\r\n </span>\r\n </label>\r\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { User } from 'herum-shared/herum-types';\r\nimport { MenuItem } from 'herum-shared/herum-types';\r\n\r\ntype MenuItemWithDisabled = MenuItem & { disabled: boolean, disabledTooltip?: string };\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'rounded-vertical-menu',\r\n templateUrl: './rounded-vertical-menu.component.html',\r\n styleUrls: ['./rounded-vertical-menu.component.scss']\r\n})\r\nexport class RoundedVerticalMenuComponent implements OnInit, OnChanges {\r\n @Input() menuItems: MenuItemWithDisabled[] = [];\r\n @Input() currentItem?: MenuItemWithDisabled;\r\n @Input() currentUser: User;\r\n\r\n @Output() itemSelected = new EventEmitter<MenuItem>();\r\n\r\n ngOnInit(): void {\r\n if (!this.currentItem) this.currentItem = this.menuItems[0];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.menuItems || changes.currentUser) {\r\n this.updateDisabledMenuItems();\r\n\r\n this.currentItem = this.menuItems.find(menuItem => menuItem.id === this.currentItem?.id);\r\n }\r\n\r\n if (this.currentItem.disabled) {\r\n this.currentItem = this.menuItems.find(menuItem => !menuItem.disabled);\r\n this._onSelectItem(this.currentItem);\r\n }\r\n }\r\n\r\n _onSelectItem(item: MenuItemWithDisabled) {\r\n if (item.disabled) return;\r\n\r\n this.itemSelected.next(item);\r\n }\r\n\r\n private updateDisabledMenuItems() {\r\n this.menuItems = this.menuItems.map(menuItem => {\r\n if (!!menuItem.accessValidator) {\r\n const result = menuItem.accessValidator(this.currentUser);\r\n\r\n if (result) return { ...menuItem, disabledTooltip: result.error, disabled: true };\r\n \r\n return { ...menuItem, disabledTooltip: null, disabled: false };\r\n }\r\n\r\n return menuItem;\r\n })\r\n }\r\n}\r\n","<ul class=\"nav-list\">\r\n <li *ngFor=\"let item of menuItems\" [class.active]=\"item === currentItem\" (click)=\"_onSelectItem(item)\"\r\n [class.disabled]=\"item.disabled\" appHerumToolTip [matTooltip]=\"item.disabledTooltip\">\r\n <img src=\"assets/hadracha/creation-icons/{{item.disabled ? 'disabled' : item === currentItem ? 'active' : 'regular'}}/{{ item.iconName }}.svg\"\r\n alt=\"{{ item.label }} icon\">\r\n <a>{{ item.label }}</a>\r\n </li>\r\n</ul>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { svgsStrings } from 'herum-shared/constants';\r\nimport { TextChange } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'track-text-changes-notes',\r\n templateUrl: './track-text-changes-notes.component.html',\r\n styleUrls: ['./track-text-changes-notes.component.scss']\r\n})\r\nexport class TrackTextChangesNotesComponent {\r\n\r\n @Input() textChanges: TextChange[];\r\n @Input() enableDeleteNote: boolean = true;\r\n\r\n @Output() deleteNoteChange = new EventEmitter<TextChange[]>();\r\n @Output() hoverNote = new EventEmitter<TextChange>();\r\n\r\n noteTypesToDisplay: string[];\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['textChanges']?.currentValue)\r\n this.setNoteTypesToDisplay();\r\n }\r\n\r\n private setNoteTypesToDisplay() {\r\n this.noteTypesToDisplay = this.textChanges.map(textChange => {\r\n switch (textChange.type) {\r\n case 'addition':\r\n return 'טקסט שנוסף';\r\n case 'deletion':\r\n return 'טקסט שנמחק';\r\n case 'comment':\r\n return 'טקסט מסומן';\r\n case 'generalNote':\r\n return 'הערה כללית';\r\n }\r\n });\r\n }\r\n\r\n _onDeleteTextChange(textChangeToDelete: TextChange) {\r\n const index = this.textChanges.findIndex(textChange => textChange === textChangeToDelete);\r\n\r\n if (index !== -1)\r\n this.textChanges.splice(index, 1);\r\n\r\n this.deleteNoteChange.emit(this.textChanges);\r\n this.setNoteTypesToDisplay();\r\n }\r\n\r\n _onHoverNote(hoveredTextChange: TextChange) {\r\n this.hoverNote.emit(hoveredTextChange);\r\n }\r\n\r\n _trackNote(index: number, textChange: TextChange) {\r\n return textChange.id || index;\r\n }\r\n\r\n get deleteSvgString() {\r\n return svgsStrings.X;\r\n }\r\n}\r\n","<div class=\"notes-title\">הערות</div>\r\n\r\n<div *ngIf=\"textChanges?.length; else noNotes\" class=\"notes\">\r\n <div class=\"note\" *ngFor=\"let textChange of textChanges; let index=index; trackBy:_trackNote\">\r\n <button *ngIf=\"enableDeleteNote\" class=\"delete-button\" (click)=\"_onDeleteTextChange(textChange)\">\r\n <span class=\"delete-icon\" [innerHTML]=\"deleteSvgString | safeHtml\"> </span>\r\n </button>\r\n\r\n <div class=\"note-card\" (mouseenter)=\"_onHoverNote(textChange)\" (mouseleave)=\"_onHoverNote(undefined)\">\r\n <ng-container *ngIf=\"textChange.type!=='generalNote'; else generalNote\">\r\n <p class=\"note-header\" [ngClass]=\"[textChange.type]\">\r\n <span [class]=\"textChange.type+'-note'\">{{ textChange.note }}</span>\r\n <span>{{ noteTypesToDisplay[index] }}</span>\r\n </p>\r\n\r\n <p class=\"comment-text\">\r\n {{ textChange.commentText ? textChange.commentText : 'ללא הערה' }}\r\n </p>\r\n </ng-container>\r\n\r\n <ng-template #generalNote>\r\n <p class=\"general-note comment-text\">\r\n {{ textChange.note }}\r\n </p>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #noNotes>\r\n <div>אין הערות</div>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { femaleAvatarPath, maleAvatarPath } from 'herum-shared/constants';\r\nimport { Gender } from 'herum-shared/herum-types';\r\nimport { UserPreview } from 'herum-shared/herum-types';\r\nimport { User } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'user-profile-image',\r\n templateUrl: './user-profile-image.component.html',\r\n styleUrls: ['./user-profile-image.component.scss']\r\n})\r\nexport class UserProfileImageComponent {\r\n\r\n @Input() imageSize: 'image-default-size' | 'image-small-size' | 'responsive' = 'image-default-size';\r\n @Input() mode: 'vertical' | 'horizontal' = 'horizontal';\r\n\r\n @Input() user: User | UserPreview;\r\n @Input() isLoadingUser: boolean;\r\n @Input() isUserClickAble: boolean = false;\r\n\r\n @Output() userClicked = new EventEmitter<User | UserPreview>();\r\n\r\n imagePath: string = '';\r\n isLoadingImage: boolean = true;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['user']?.currentValue && !this.isLoadingUser)\r\n this.imagePath = this.userProfileImage;\r\n }\r\n\r\n _onUserClicked() {\r\n if (!this.isUserClickAble)\r\n return;\r\n\r\n this.userClicked.emit(this.user)\r\n }\r\n\r\n _useFallbackProfileImage(event: Event) {\r\n event.preventDefault();\r\n this.imagePath = this.fallbackProfileImage;\r\n }\r\n\r\n _loadComplete() {\r\n this.isLoadingImage = false;\r\n }\r\n\r\n get userProfileImage() {\r\n if (this.user.pictureUrl)\r\n return this.user.pictureUrl;\r\n\r\n if (!('gender' in this.user))\r\n return maleAvatarPath;\r\n\r\n return (this.user.gender == Gender.Male ? maleAvatarPath : femaleAvatarPath);\r\n }\r\n\r\n get fallbackProfileImage() {\r\n if (!this.user)\r\n return maleAvatarPath;\r\n\r\n if (!('gender' in this.user))\r\n return maleAvatarPath;\r\n\r\n return this.user.gender == Gender.Male ? maleAvatarPath : femaleAvatarPath;\r\n }\r\n}\r\n","<div class=\"profile-image-container\" [ngClass]=\"[mode]\">\r\n <div class=\"profile-image\"\r\n [ngClass]=\"[imageSize, isLoadingImage || isLoadingUser ? 'skeleton' : '',isUserClickAble ? 'cursor-pointer':'']\"\r\n [style.background-image]=\"'url(' + imagePath + ')'\" (click)=\"_onUserClicked()\"></div>\r\n\r\n <img *ngIf=\"!isLoadingUser\" [src]=\"imagePath\" class=\"profile-image-for-fallback\" [ngClass]=\"[imageSize ]\"\r\n (error)=\"_useFallbackProfileImage($event)\" (load)=\"_loadComplete()\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, SimpleChanges } from '@angular/core';\r\nimport { femaleAvatarPath, maleAvatarPath } from 'herum-shared/constants';\r\nimport { Gender } from 'herum-shared/herum-types';\r\nimport { User } from 'herum-shared/herum-types';\r\n\r\n@Component({\r\n standalone: false,\r\n selector: 'users-profile-preview',\r\n templateUrl: './users-profile-preview.component.html',\r\n styleUrls: ['./users-profile-preview.component.scss']\r\n})\r\nexport class UsersProfilePreviewComponent {\r\n\r\n @Input() users: Partial<User>[] = [];\r\n @Input() title: string = '';\r\n @Input() searchFields: (keyof User)[] = ['militaryId', 'firstName'];\r\n @Input() placeholder: string = 'חפש לפי שם / מ.א';\r\n\r\n filteredUsers: Partial<User>[] = [];\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['users']?.currentValue)\r\n this.filteredUsers = this.users;\r\n }\r\n\r\n _filterUsers(freeText: string) {\r\n this.filteredUsers = this.users.filter(user => this.searchFields.some((field: string) => user[field]?.includes(freeText)));\r\n }\r\n\r\n fallbackProfileImage(user: Partial<User>) {\r\n return user.gender == Gender.Male ? maleAvatarPath : femaleAvatarPath;\r\n }\r\n}","<div *ngIf=\"users?.length\" class=\"users-profile-preview\">\r\n <herum-input-field type=\"search\" [placeholder]=\"placeholder\"\r\n (inputValueEmitter)=\"_filterUsers($event)\"></herum-input-field>\r\n\r\n <div class=\"users-container\">\r\n <div class=\"user\" *ngFor=\"let user of filteredUsers\">\r\n <div class=\"details\">\r\n <div class=\"profile-image-container\">\r\n <user-profile-image [user]=\"user\" imageSize=\"image-small-size\"></user-profile-image>\r\n\r\n <h2 class=\"user-name section-title m-0\">\r\n {{ user.firstName }} {{ user.lastName }}\r\n </h2>\r\n </div>\r\n\r\n <div class=\"d-flex\">\r\n <p class=\"user-id section-title\">{{user.militaryId}}</p>\r\n\r\n <!-- uncomment when its connected -->\r\n <!-- <img src=\"assets/college/learningArea/menu-button.svg\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';\r\nimport { CollegeLoaderComponent } from './college-loader/college-loader.component';\r\nimport { HerumBreadcrumbsComponent } from './herum-breadcrumbs/herum-breadcrumbs.component';\r\nimport { SliceBreadcrumbsPipe } from './herum-breadcrumbs/slice-breadcrumbs.pipe';\r\nimport { HerumButtonComponent } from './herum-button/herum-button.component';\r\nimport { HerumCheckboxComponent } from './herum-checkbox/herum-checkbox.component';\r\nimport { HerumChipComponent } from './herum-chip/herum-chip.component';\r\nimport { HerumCircularProgressBarComponent } from './herum-circular-progress-bar/herum-circular-progress-bar.component';\r\nimport { HerumDatePickerComponent } from './herum-date-picker/herum-date-picker.component';\r\nimport { HerumDownloadFileComponent } from './herum-download-file/herum-download-file.component';\r\nimport { HerumEllipsisLoaderComponent } from './herum-ellipsis-loader/herum-ellipsis-loader.component';\r\nimport { HerumIconLabelComponent } from './herum-icon-label/herum-icon-label.component';\r\nimport { HerumIndeterminateComponent } from './herum-indeterminate/herum-indeterminate.component';\r\nimport { ConditionalFormControlNameDirective } from './herum-input-field/conditional-form-control-name.directive';\r\nimport { HerumInputFieldComponent } from './herum-input-field/herum-input-field.component';\r\nimport { HerumLogoComponent } from './herum-logo/herum-logo.component';\r\nimport { HerumMultiSelectComponent } from './herum-multi-select/herum-multi-select.component';\r\nimport { HerumNarrowCollectionMenuItemComponent } from './herum-narrow-collection-menu-item/herum-narrow-collection-menu-item.component';\r\nimport { HerumNoResultMessageComponent } from './herum-no-result-message/herum-no-result-message.component';\r\nimport { HerumOptionsListComponent } from './herum-options-list/herum-options-list.component';\r\nimport { HerumPaginatorComponent } from './herum-paginator/herum-paginator.component';\r\nimport { HerumPanelLinksComponent } from './herum-panel-links/herum-panel-links.component';\r\nimport { HerumProgressBarComponent } from './herum-progress-bar/herum-progress-bar.component';\r\nimport { HerumQuizHeaderItemComponent } from './herum-quiz-header-item/herum-quiz-header-item.component';\r\nimport { HerumRecursiveHierarchyOptionsListComponent } from './herum-recursive-hierarchy-options-list/herum-recursive-hierarchy-options-list.component';\r\nimport { HerumSelectComponent } from './herum-select/herum-select.component';\r\nimport { HerumSliderComponent } from './herum-slider/herum-slider.component';\r\nimport { HerumSpinnerComponent } from './herum-spinner/herum-spinner.component';\r\nimport { HerumSwitchComponent } from './herum-switch/herum-switch.component';\r\nimport { HerumTextAreaComponent } from './herum-text-area/herum-text-area.component';\r\nimport { HerumTimePickerComponent } from './herum-time-picker/herum-time-picker.component';\r\nimport { HerumToggleButtonComponent } from './herum-toggle-button/herum-toggle-button.component';\r\nimport { HerumUploadFileComponent } from './herum-upload-file/herum-upload-file.component';\r\nimport { HerumVideoSelectComponent } from './herum-video-select/herum-video-select.component';\r\nimport { HerumRadioButtonComponent } from './radio-button/radio-button.component';\r\nimport { RoundedVerticalMenuComponent } from './rounded-vertical-menu/rounded-vertical-menu.component';\r\nimport { TrackTextChangesNotesComponent } from './track-text-changes-notes/track-text-changes-notes.component';\r\nimport { UserProfileImageComponent } from './user-profile-image/user-profile-image.component';\r\nimport { UsersProfilePreviewComponent } from './users-profile-preview/users-profile-preview.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { PipesModule } from 'herum-shared/pipes';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CollegeLoaderComponent,\r\n UsersProfilePreviewComponent,\r\n HerumBreadcrumbsComponent,\r\n SliceBreadcrumbsPipe,\r\n HerumButtonComponent,\r\n HerumCheckboxComponent,\r\n HerumChipComponent,\r\n HerumCircularProgressBarComponent,\r\n HerumDatePickerComponent,\r\n HerumDownloadFileComponent,\r\n HerumEllipsisLoaderComponent,\r\n HerumIconLabelComponent,\r\n HerumIndeterminateComponent,\r\n ConditionalFormControlNameDirective,\r\n HerumInputFieldComponent,\r\n HerumLogoComponent,\r\n HerumMultiSelectComponent,\r\n HerumNarrowCollectionMenuItemComponent,\r\n HerumNoResultMessageComponent,\r\n HerumOptionsListComponent,\r\n HerumPaginatorComponent,\r\n HerumPanelLinksComponent,\r\n HerumProgressBarComponent,\r\n HerumQuizHeaderItemComponent,\r\n HerumRecursiveHierarchyOptionsListComponent,\r\n HerumSelectComponent,\r\n HerumSliderComponent,\r\n HerumSpinnerComponent,\r\n HerumSwitchComponent,\r\n HerumTextAreaComponent,\r\n HerumTimePickerComponent,\r\n HerumToggleButtonComponent,\r\n HerumUploadFileComponent,\r\n HerumVideoSelectComponent,\r\n HerumRadioButtonComponent,\r\n RoundedVerticalMenuComponent,\r\n TrackTextChangesNotesComponent,\r\n UserProfileImageComponent\r\n ],\r\n exports: [\r\n CollegeLoaderComponent,\r\n UsersProfilePreviewComponent,\r\n HerumBreadcrumbsComponent,\r\n SliceBreadcrumbsPipe,\r\n HerumButtonComponent,\r\n HerumCheckboxComponent,\r\n HerumChipComponent,\r\n HerumCircularProgressBarComponent,\r\n HerumDatePickerComponent,\r\n HerumDownloadFileComponent,\r\n HerumEllipsisLoaderComponent,\r\n HerumIconLabelComponent,\r\n HerumIndeterminateComponent,\r\n ConditionalFormControlNameDirective,\r\n HerumInputFieldComponent,\r\n HerumLogoComponent,\r\n HerumMultiSelectComponent,\r\n HerumNarrowCollectionMenuItemComponent,\r\n HerumNoResultMessageComponent,\r\n HerumOptionsListComponent,\r\n HerumPaginatorComponent,\r\n HerumPanelLinksComponent,\r\n HerumProgressBarComponent,\r\n HerumQuizHeaderItemComponent,\r\n HerumRecursiveHierarchyOptionsListComponent,\r\n HerumSelectComponent,\r\n HerumSliderComponent,\r\n HerumSpinnerComponent,\r\n HerumSwitchComponent,\r\n HerumTextAreaComponent,\r\n HerumTimePickerComponent,\r\n HerumToggleButtonComponent,\r\n HerumUploadFileComponent,\r\n HerumVideoSelectComponent,\r\n HerumRadioButtonComponent,\r\n RoundedVerticalMenuComponent,\r\n TrackTextChangesNotesComponent,\r\n UserProfileImageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatMenuModule,\r\n ClipboardModule,\r\n MatAutocompleteModule,\r\n MatChipsModule,\r\n MatFormFieldModule,\r\n MatTooltipModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n MatCheckboxModule,\r\n MatSliderModule,\r\n DragDropModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n PipesModule\r\n ],\r\n providers: [\r\n { provide: MAT_DATE_LOCALE, useValue: 'he-IL' },\r\n ]\r\n})\r\nexport class AtomsModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SliceBreadcrumbsPipe","i3","i1","i2","defaultPlaceholder","optionsInput","uuidv4","i4.HerumChipComponent","i5.HerumInputFieldComponent","i6.HerumOptionsListComponent","i7.HerumRecursiveHierarchyOptionsListComponent","i3.HerumInputFieldComponent","i3.HerumSpinnerComponent","i2.HerumInputFieldComponent","i3.UserProfileImageComponent"],"mappings":"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"}
|