{"version":3,"file":"nextalys-angular-tools.mjs","sources":["../../src/lib/nextalys-angular.module.ts","../../src/lib/material-icon-picker/material-icon-picker.component.ts","../../src/lib/material-icon-picker/material-icon-picker.component.html","../../src/lib/material-icon-picker/material-icon-picker.module.ts","../../src/lib/nxs-slider/nxs-slider.component.ts","../../src/lib/nxs-slider/nxs-slider.component.html","../../src/lib/nxs-slider/nxs-slider.module.ts","../../src/lib/gdrive-file-manager/gdrive-file-manager.component.ts","../../src/lib/gdrive-file-manager/gdrive-file-manager.component.html","../../src/lib/gdrive-file-manager/bytes.pipe.ts","../../src/lib/gdrive-file-manager/gdrive-file-manager.module.ts","../../src/lib/multiple-select/multiple-select.component.ts","../../src/lib/multiple-select/multiple-select.component.html","../../src/lib/multiple-select/multiple-select.module.ts","../../src/lib/nxs-duration-picker/nxs-duration-picker.component.ts","../../src/lib/nxs-duration-picker/nxs-duration-picker.component.html","../../src/lib/nxs-duration-picker/nxs-duration-picker.module.ts","../../src/lib/year-month-picker/year-month-picker.component.ts","../../src/lib/year-month-picker/year-month-picker.component.html","../../src/lib/year-month-picker/year-month-picker.module.ts","../../src/nextalys-angular-tools.ts"],"sourcesContent":["import { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { NextalysAngularCommonModule, NextalysHttpClientAngular } from \"nextalys-angular-common\";\nimport { NextalysHttpClient } from \"nextalys-js-helpers/dist/http-client\";\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NxsAutocompleteModule } from \"nxs-autocomplete\";\n\n\n@NgModule({\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        MatAutocompleteModule,\n        MatFormFieldModule,\n        FormsModule,\n        MatButtonModule,\n        MatDialogModule,\n        MatInputModule,\n        NextalysAngularCommonModule,\n        MatSnackBarModule,\n        MatIconModule,\n        MatChipsModule,\n        TranslateModule,\n        NxsAutocompleteModule,\n    ],\n    declarations: [\n    ],\n    exports: [\n        NextalysAngularCommonModule,\n    ],\n    providers: [\n        { provide: NextalysHttpClient, useClass: NextalysHttpClientAngular },\n    ]\n})\nexport class NextalysAngularModule { }","import { Component, OnInit, ViewEncapsulation, forwardRef, ViewChild, ElementRef } from '@angular/core';\nimport { UntypedFormControl, NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n    selector: 'nxs-material-icon-picker',\n    templateUrl: './material-icon-picker.component.html',\n    styleUrls: ['./material-icon-picker.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [{\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => MaterialIconPickerComponent),\n            multi: true\n        }],\n    standalone: false\n})\nexport class MaterialIconPickerComponent implements OnInit, ControlValueAccessor {\n\n    //The internal data model\n    private innerValue: any;\n\n    //Placeholders for the callbacks which are later provided\n    //by the Control Value Accessor\n    private onTouchedCallback: () => void = () => { };\n    private onChangeCallback: (_: any) => void = () => { };\n\n    //get accessor\n    get value(): any {\n        return this.innerValue;\n    }\n\n    //set accessor including call the onchange callback\n    set value(v: any) {\n        if (v !== this.innerValue) {\n            this.innerValue = v;\n            this.myControl.setValue(v);\n            this.onChangeCallback(v);\n        }\n    }\n\n\n    public material_icons = ['3d_rotation',\n        'ac_unit', 'access_alarm', 'access_alarms', 'access_time', 'accessibility', 'accessible', 'account_balance',\n        'account_balance_wallet', 'account_box', 'account_circle', 'adb', 'add', 'add_a_photo', 'add_alarm', 'add_alert',\n        'add_box', 'add_circle', 'add_circle_outline', 'add_location', 'add_shopping_cart', 'add_to_photos', 'add_to_queue',\n        'adjust', 'airline_seat_flat', 'airline_seat_flat_angled', 'airline_seat_individual_suite', 'airline_seat_legroom_extra',\n        'airline_seat_legroom_normal', 'airline_seat_legroom_reduced', 'airline_seat_recline_extra', 'airline_seat_recline_normal',\n        'airplanemode_active', 'airplanemode_inactive', 'airplay', 'airport_shuttle', 'alarm', 'alarm_add', 'alarm_off', 'alarm_on', 'album',\n        'all_inclusive', 'all_out', 'android', 'announcement', 'apps', 'archive', 'arrow_back', 'arrow_downward', 'arrow_drop_down',\n        'arrow_drop_down_circle', 'arrow_drop_up', 'arrow_forward', 'arrow_upward', 'art_track', 'aspect_ratio', 'assessment', 'assignment',\n        'assignment_ind', 'assignment_late', 'assignment_return', 'assignment_returned', 'assignment_turned_in', 'assistant', 'assistant_photo',\n        'attach_file', 'attach_money', 'attachment', 'audiotrack', 'autorenew', 'av_timer', 'backspace', 'backup', 'battery_alert',\n        'battery_charging_full', 'battery_full', 'battery_std', 'battery_unknown', 'beach_access', 'beenhere', 'block', 'bluetooth',\n        'bluetooth_audio', 'bluetooth_connected', 'bluetooth_disabled', 'bluetooth_searching', 'blur_circular', 'blur_linear', 'blur_off',\n        'blur_on', 'book', 'bookmark', 'bookmark_border', 'border_all', 'border_bottom', 'border_clear', 'border_color',\n        'border_horizontal', 'border_inner', 'border_left', 'border_outer', 'border_right', 'border_style', 'border_top',\n        'border_vertical', 'branding_watermark', 'brightness_1', 'brightness_2', 'brightness_3', 'brightness_4', 'brightness_5',\n        'brightness_6', 'brightness_7', 'brightness_auto', 'brightness_high', 'brightness_low', 'brightness_medium', 'broken_image',\n        'brush', 'bubble_chart', 'bug_report', 'build', 'burst_mode', 'business', 'business_center', 'cached', 'cake', 'call',\n        'call_end', 'call_made', 'call_merge', 'call_missed', 'call_missed_outgoing', 'call_received', 'call_split', 'call_to_action',\n        'camera', 'camera_alt', 'camera_enhance', 'camera_front', 'camera_rear', 'camera_roll', 'cancel', 'card_giftcard', 'card_membership',\n        'card_travel', 'casino', 'cast', 'cast_connected', 'center_focus_strong', 'center_focus_weak', 'change_history', 'chat',\n        'chat_bubble', 'chat_bubble_outline', 'check', 'check_box', 'check_box_outline_blank', 'check_circle', 'chevron_left',\n        'chevron_right', 'child_care', 'child_friendly', 'chrome_reader_mode', 'class', 'clear', 'clear_all', 'close',\n        'closed_caption', 'cloud', 'cloud_circle', 'cloud_done', 'cloud_download', 'cloud_off', 'cloud_queue', 'cloud_upload',\n        'code', 'collections', 'collections_bookmark', 'color_lens', 'colorize', 'comment', 'compare', 'compare_arrows',\n        'computer', 'confirmation_number', 'contact_mail', 'contact_phone', 'contacts', 'content_copy', 'content_cut',\n        'content_paste', 'control_point', 'control_point_duplicate', 'copyright', 'create', 'create_new_folder', 'credit_card',\n        'crop', 'crop_16_9', 'crop_3_2', 'crop_5_4', 'crop_7_5', 'crop_din', 'crop_free', 'crop_landscape', 'crop_original',\n        'crop_portrait', 'crop_rotate', 'crop_square', 'dashboard', 'data_usage', 'date_range', 'dehaze', 'delete', 'delete_forever',\n        'delete_sweep', 'description', 'desktop_mac', 'desktop_windows', 'details', 'developer_board', 'developer_mode', 'device_hub',\n        'devices', 'devices_other', 'dialer_sip', 'dialpad', 'directions', 'directions_bike', 'directions_boat', 'directions_bus',\n        'directions_car', 'directions_railway', 'directions_run', 'directions_subway', 'directions_transit', 'directions_walk',\n        'disc_full', 'dns', 'do_not_disturb', 'do_not_disturb_alt', 'do_not_disturb_off', 'do_not_disturb_on', 'dock', 'domain',\n        'done', 'done_all', 'donut_large', 'donut_small', 'drafts', 'drag_handle', 'drive_eta', 'dvr', 'edit', 'edit_location',\n        'eject', 'email', 'enhanced_encryption', 'equalizer', 'error', 'error_outline', 'euro_symbol', 'ev_station', 'event', 'event_available',\n        'event_busy', 'event_note', 'event_seat', 'exit_to_app', 'expand_less', 'expand_more', 'explicit', 'explore', 'exposure',\n        'exposure_neg_1', 'exposure_neg_2', 'exposure_plus_1', 'exposure_plus_2', 'exposure_zero', 'extension', 'face', 'fast_forward',\n        'fast_rewind', 'favorite', 'favorite_border', 'featured_play_list', 'featured_video', 'feedback', 'fiber_dvr', 'fiber_manual_record',\n        'fiber_new', 'fiber_pin', 'fiber_smart_record', 'file_download', 'file_upload', 'filter', 'filter_1', 'filter_2', 'filter_3',\n        'filter_4', 'filter_5', 'filter_6', 'filter_7', 'filter_8', 'filter_9', 'filter_9_plus', 'filter_b_and_w', 'filter_center_focus',\n        'filter_drama', 'filter_frames', 'filter_hdr', 'filter_list', 'filter_none', 'filter_tilt_shift', 'filter_vintage', 'find_in_page',\n        'find_replace', 'fingerprint', 'first_page', 'fitness_center', 'flag', 'flare', 'flash_auto', 'flash_off', 'flash_on', 'flight',\n        'flight_land', 'flight_takeoff', 'flip', 'flip_to_back', 'flip_to_front', 'folder', 'folder_open', 'folder_shared', 'folder_special',\n        'font_download', 'format_align_center', 'format_align_justify', 'format_align_left', 'format_align_right', 'format_bold',\n        'format_clear', 'format_color_fill', 'format_color_reset', 'format_color_text', 'format_indent_decrease', 'format_indent_increase',\n        'format_italic', 'format_line_spacing', 'format_list_bulleted', 'format_list_numbered', 'format_paint', 'format_quote',\n        'format_shapes', 'format_size', 'format_strikethrough', 'format_textdirection_l_to_r', 'format_textdirection_r_to_l',\n        'format_underlined', 'forum', 'forward', 'forward_10', 'forward_30', 'forward_5', 'free_breakfast', 'fullscreen',\n        'fullscreen_exit', 'functions', 'g_translate', 'gamepad', 'games', 'gavel', 'gesture', 'get_app', 'gif', 'golf_course',\n        'gps_fixed', 'gps_not_fixed', 'gps_off', 'grade', 'gradient', 'grain', 'graphic_eq', 'grid_off', 'grid_on', 'group',\n        'group_add', 'group_work', 'hd', 'hdr_off', 'hdr_on', 'hdr_strong', 'hdr_weak', 'headset', 'headset_mic', 'healing',\n        'hearing', 'help', 'help_outline', 'high_quality', 'highlight', 'highlight_off', 'history', 'home', 'hot_tub', 'hotel',\n        'hourglass_empty', 'hourglass_full', 'http', 'https', 'image', 'image_aspect_ratio', 'import_contacts', 'import_export',\n        'important_devices', 'inbox', 'indeterminate_check_box', 'info', 'info_outline', 'input', 'insert_chart', 'insert_comment',\n        'insert_drive_file', 'insert_emoticon', 'insert_invitation', 'insert_link', 'insert_photo', 'invert_colors',\n        'invert_colors_off', 'iso', 'keyboard', 'keyboard_arrow_down', 'keyboard_arrow_left', 'keyboard_arrow_right',\n        'keyboard_arrow_up', 'keyboard_backspace', 'keyboard_capslock', 'keyboard_hide', 'keyboard_return', 'keyboard_tab',\n        'keyboard_voice', 'kitchen', 'label', 'label_outline', 'landscape', 'language', 'laptop', 'laptop_chromebook',\n        'laptop_mac', 'laptop_windows', 'last_page', 'launch', 'layers', 'layers_clear', 'leak_add', 'leak_remove',\n        'lens', 'library_add', 'library_books', 'library_music', 'lightbulb_outline', 'line_style', 'line_weight',\n        'linear_scale', 'link', 'linked_camera', 'list', 'live_help', 'live_tv', 'local_activity', 'local_airport',\n        'local_atm', 'local_bar', 'local_cafe', 'local_car_wash', 'local_convenience_store', 'local_dining', 'local_drink',\n        'local_florist', 'local_gas_station', 'local_grocery_store', 'local_hospital', 'local_hotel', 'local_laundry_service',\n        'local_library', 'local_mall', 'local_movies', 'local_offer', 'local_parking', 'local_pharmacy', 'local_phone', 'local_pizza',\n        'local_play', 'local_post_office', 'local_printshop', 'local_see', 'local_shipping', 'local_taxi', 'location_city', 'location_disabled',\n        'location_off', 'location_on', 'location_searching', 'lock', 'lock_open', 'lock_outline', 'looks', 'looks_3', 'looks_4', 'looks_5', 'looks_6',\n        'looks_one', 'looks_two', 'loop', 'loupe', 'low_priority', 'loyalty', 'mail', 'mail_outline', 'map', 'markunread', 'markunread_mailbox',\n        'memory', 'menu', 'merge_type', 'message', 'mic', 'mic_none', 'mic_off', 'mms', 'mode_comment', 'mode_edit', 'monetization_on', 'money_off',\n        'monochrome_photos', 'mood', 'mood_bad', 'more', 'more_horiz', 'more_vert', 'motorcycle', 'mouse', 'move_to_inbox', 'movie', 'movie_creation',\n        'movie_filter', 'multiline_chart', 'music_note', 'music_video', 'my_location', 'nature', 'nature_people', 'navigate_before', 'navigate_next',\n        'navigation', 'near_me', 'network_cell', 'network_check', 'network_locked', 'network_wifi', 'new_releases', 'next_week', 'nfc', 'no_encryption',\n        'no_sim', 'not_interested', 'note', 'note_add', 'notifications', 'notifications_active', 'notifications_none', 'notifications_off',\n        'notifications_paused', 'offline_pin', 'ondemand_video', 'opacity', 'open_in_browser', 'open_in_new', 'open_with', 'pages', 'pageview',\n        'palette', 'pan_tool', 'panorama', 'panorama_fish_eye', 'panorama_horizontal', 'panorama_vertical', 'panorama_wide_angle', 'party_mode',\n        'pause', 'pause_circle_filled', 'pause_circle_outline', 'payment', 'people', 'people_outline', 'perm_camera_mic', 'perm_contact_calendar',\n        'perm_data_setting', 'perm_device_information', 'perm_identity', 'perm_media',\n        'perm_phone_msg', 'perm_scan_wifi', 'person', 'person_add', 'person_outline', 'person_pin', 'person_pin_circle', 'personal_video', 'pets',\n        'phone', 'phone_android', 'phone_bluetooth_speaker', 'phone_forwarded', 'phone_in_talk', 'phone_iphone', 'phone_locked', 'phone_missed',\n        'phone_paused', 'phonelink', 'phonelink_erase', 'phonelink_lock', 'phonelink_off', 'phonelink_ring', 'phonelink_setup', 'photo', 'photo_album',\n        'photo_camera', 'photo_filter', 'photo_library', 'photo_size_select_actual', 'photo_size_select_large', 'photo_size_select_small',\n        'picture_as_pdf', 'picture_in_picture', 'picture_in_picture_alt', 'pie_chart', 'pie_chart_outlined', 'pin_drop', 'place', 'play_arrow',\n        'play_circle_filled', 'play_circle_outline', 'play_for_work', 'playlist_add', 'playlist_add_check', 'playlist_play', 'plus_one', 'poll',\n        'polymer', 'pool', 'portable_wifi_off', 'portrait', 'power', 'power_input', 'power_settings_new', 'pregnant_woman', 'present_to_all',\n        'print', 'priority_high', 'public', 'publish', 'query_builder', 'question_answer', 'queue', 'queue_music', 'queue_play_next', 'radio',\n        'radio_button_checked', 'radio_button_unchecked', 'rate_review', 'receipt', 'recent_actors', 'record_voice_over', 'redeem', 'redo',\n        'refresh', 'remove', 'remove_circle', 'remove_circle_outline', 'remove_from_queue', 'remove_red_eye', 'remove_shopping_cart',\n        'reorder', 'repeat', 'repeat_one', 'replay', 'replay_10', 'replay_30', 'replay_5', 'reply', 'reply_all', 'report', 'report_problem',\n        'restaurant', 'restaurant_menu', 'restore', 'restore_page', 'ring_volume', 'room', 'room_service', 'rotate_90_degrees_ccw', 'rotate_left',\n        'rotate_right', 'rounded_corner', 'router', 'rowing', 'rss_feed', 'rv_hookup', 'satellite', 'save', 'scanner', 'schedule', 'school',\n        'screen_lock_landscape', 'screen_lock_portrait',\n        'screen_lock_rotation', 'screen_rotation', 'screen_share', 'sd_card', 'sd_storage',\n        'search', 'security', 'select_all', 'send', 'sentiment_dissatisfied', 'sentiment_neutral',\n        'sentiment_satisfied', 'sentiment_very_dissatisfied', 'sentiment_very_satisfied', 'settings', 'settings_applications', 'settings_backup_restore',\n        'settings_bluetooth', 'settings_brightness', 'settings_cell', 'settings_ethernet', 'settings_input_antenna', 'settings_input_component',\n        'settings_input_composite', 'settings_input_hdmi', 'settings_input_svideo', 'settings_overscan', 'settings_phone', 'settings_power', 'settings_remote',\n        'settings_system_daydream', 'settings_voice', 'share', 'shop', 'shop_two', 'shopping_basket', 'shopping_cart', 'short_text', 'show_chart', 'shuffle',\n        'signal_cellular_4_bar', 'signal_cellular_connected_no_internet_4_bar', 'signal_cellular_no_sim', 'signal_cellular_null', 'signal_cellular_off',\n        'signal_wifi_4_bar', 'signal_wifi_4_bar_lock', 'signal_wifi_off', 'sim_card', 'sim_card_alert', 'skip_next', 'skip_previous', 'slideshow',\n        'slow_motion_video', 'smartphone', 'smoke_free', 'smoking_rooms', 'sms', 'sms_failed', 'snooze', 'sort',\n        'sort_by_alpha', 'spa', 'space_bar', 'speaker', 'speaker_group', 'speaker_notes', 'speaker_notes_off', 'speaker_phone', 'spellcheck', 'star',\n        'star_border', 'star_half', 'stars', 'stay_current_landscape', 'stay_current_portrait', 'stay_primary_landscape', 'stay_primary_portrait', 'stop',\n        'stop_screen_share', 'storage', 'store', 'store_mall_directory', 'straighten', 'streetview', 'strikethrough_s', 'style', 'subdirectory_arrow_left',\n        'subdirectory_arrow_right', 'subject', 'subscriptions', 'subtitles', 'subway', 'supervisor_account', 'surround_sound', 'swap_calls', 'swap_horiz',\n        'swap_vert', 'swap_vertical_circle', 'switch_camera', 'switch_video', 'sync', 'sync_disabled', 'sync_problem', 'system_update', 'system_update_alt',\n        'tab', 'tab_unselected', 'tablet', 'tablet_android', 'tablet_mac', 'tag_faces', 'tap_and_play', 'terrain',\n        'text_fields', 'text_format', 'textsms', 'texture', 'theaters', 'thumb_down', 'thumb_up', 'thumbs_up_down', 'time_to_leave', 'timelapse', 'timeline',\n        'timer', 'timer_10', 'timer_3', 'timer_off', 'title', 'toc', 'today', 'toll', 'tonality', 'touch_app', 'toys', 'track_changes', 'traffic',\n        'train', 'tram', 'transfer_within_a_station', 'transform', 'translate', 'trending_down', 'trending_flat', 'trending_up', 'tune', 'turned_in',\n        'turned_in_not', 'tv', 'unarchive', 'undo', 'unfold_less', 'unfold_more', 'update', 'usb', 'verified_user', 'vertical_align_bottom',\n        'vertical_align_center', 'vertical_align_top', 'vibration', 'video_call', 'video_label', 'video_library', 'videocam', 'videocam_off',\n        'videogame_asset', 'view_agenda', 'view_array', 'view_carousel', 'view_column', 'view_comfy', 'view_compact', 'view_day', 'view_headline',\n        'view_list', 'view_module', 'view_quilt', 'view_stream', 'view_week', 'vignette', 'visibility', 'visibility_off', 'voice_chat', 'voicemail',\n        'volume_down', 'volume_mute', 'volume_off', 'volume_up', 'vpn_key', 'vpn_lock', 'wallpaper', 'warning', 'watch', 'watch_later', 'wb_auto',\n        'wb_cloudy', 'wb_incandescent', 'wb_iridescent', 'wb_sunny', 'wc', 'web', 'web_asset', 'weekend', 'whatshot', 'widgets', 'wifi', 'wifi_lock',\n        'wifi_tethering', 'work', 'wrap_text', 'youtube_searched_for', 'zoom_in', 'zoom_out', 'zoom_out_map'];\n\n\n\n    iconsList: string[] = [];\n    myControl = new UntypedFormControl();\n\n    topPosition: string = '0px';\n    leftPosition: string = '0px';\n\n    _showIconsList: boolean = false;\n    get showIconsList() {\n        return this._showIconsList;\n    }\n\n    set showIconsList(val: boolean) {\n        this._showIconsList = val;\n        if (!this.inputWrapperElement || !this.inputWrapperElement.nativeElement)\n            return;\n        const divElement = this.inputWrapperElement.nativeElement as HTMLDivElement;\n        const coords = this.getCoords(divElement);\n        console.log(\"Log: MaterialIconPickerComponent -> setshowIconsList -> coords\", coords);\n        this.topPosition = (coords.top + 46) + 'px';\n        this.leftPosition = (coords.left) + 'px';\n    }\n    @ViewChild('inputWrapperElement')\n    inputWrapperElement: ElementRef;\n    constructor() {\n        this.myControl.valueChanges.subscribe(() => {\n            this.iconsList = this.material_icons.filter(x => x.indexOf(this.myControl.value) !== -1);\n        });\n        this.iconsList = this.material_icons;\n    }\n\n    getCoords(elem) { // crossbrowser version\n        var box = elem.getBoundingClientRect();\n\n        var body = document.body;\n        var docEl = document.documentElement;\n\n        var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;\n        var scrollLeft = window.pageXOffset || docEl.scrollLeft || body.scrollLeft;\n\n        var clientTop = docEl.clientTop || body.clientTop || 0;\n        var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n\n        var top = box.top + scrollTop - clientTop;\n        var left = box.left + scrollLeft - clientLeft;\n\n        return { top: Math.round(top), left: Math.round(left) };\n    }\n\n    onBlur() {\n        this.onTouchedCallback();\n    }\n\n    //From ControlValueAccessor interface\n    writeValue(value: any) {\n        if (value !== this.innerValue) {\n            this.innerValue = value;\n            this.myControl.setValue(value);\n        }\n    }\n\n    //From ControlValueAccessor interface\n    registerOnChange(fn: any) {\n        this.onChangeCallback = fn;\n    }\n\n    //From ControlValueAccessor interface\n    registerOnTouched(fn: any) {\n        this.onTouchedCallback = fn;\n    }\n\n    ngOnInit(): void { }\n\n    selectIcon(icon: string) {\n        this.value = icon;\n        this.showIconsList = false;\n    }\n\n\n    overlayClick(evt: MouseEvent) {\n        if (evt.target instanceof HTMLDivElement) {\n            const element = evt.target as HTMLDivElement;\n            if (element.className === 'nxs-mat-icon-picker-overlay')\n                this.showIconsList = false;\n        }\n    }\n}\n","<div #inputWrapperElement>\n    <mat-form-field>\n        <mat-label>Icône</mat-label>\n        <mat-icon *ngIf=\"value\" matPrefix>{{value}}</mat-icon>\n        <input (focus)=\"showIconsList=true\" type=\"text\" placeholder=\"Rechercher une icône\" aria-label=\"Number\" matInput\n            [formControl]=\"myControl\">\n        <button (click)=\"value=''\" mat-icon-button matSuffix>\n            <mat-icon>close</mat-icon>\n        </button>\n    </mat-form-field>\n</div>\n\n\n\n<div class=\"nxs-mat-icon-picker-overlay\" (click)=\"overlayClick($event)\" [style.display]=\"showIconsList ? '' : 'none'\">\n    <div class=\"nxs-mat-icons-wrapper\" [style.top]=\"topPosition\" [style.left]=\"leftPosition\">\n        <button (click)=\"selectIcon(icon)\" mat-icon-button *ngFor=\"let icon of iconsList\">\n            <mat-icon>{{icon}}</mat-icon>\n        </button>\n    </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaterialIconPickerComponent } from './material-icon-picker.component';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n    declarations: [MaterialIconPickerComponent],\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        MatFormFieldModule,\n        MatInputModule,\n        MatIconModule,\n        MatButtonModule,\n    ],\n    exports: [MaterialIconPickerComponent],\n    providers: [],\n})\nexport class MaterialIconPickerModule { }","import { Component, OnInit, ViewEncapsulation, Input, Output, EventEmitter, ViewChildren, QueryList, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n// import { trigger, state, transition, style, animate } from '@angular/animations';\n\nexport interface NxsSliderImage {\n    src: string;\n    alt?: string;\n    class?: string;\n    thumbnail?: string;\n}\n@Component({\n    selector: 'nxs-slider',\n    templateUrl: './nxs-slider.component.html',\n    styleUrls: ['./nxs-slider.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [{\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => NxsSliderComponent),\n            multi: true\n        }],\n    standalone: false\n})\nexport class NxsSliderComponent implements OnInit, ControlValueAccessor {\n\n    @Input()\n    animationMode: 'slide' | 'fade' = 'slide';\n    //Placeholders for the callbacks which are later provided\n    //by the Control Value Accessor\n    private onTouchedCallback: () => void = () => { };\n    private onChangeCallback: (_: any) => void = () => { };\n\n    private pCurrentSlide = 0;\n    get value() {\n        return this.pCurrentSlide;\n    }\n    // @Input('currentSlide')\n    set value(val: number) {\n\n        this.goToSlide(val);\n        // console.log(\"Log: NxsSliderComponent -> setcurrentSlide -> val\", val);\n        // console.log(\"Log: NxsSliderComponent -> setcurrentSlide ->  div.style.marginLeft \", div.style.marginLeft);\n    }\n\n\n\n    @ViewChildren('divImageWrapper') divImageWrappers: QueryList<ElementRef>;\n\n    @Input()\n    images: NxsSliderImage[] = [];\n    @Input()\n    thumbnails: boolean = false;\n    @Input()\n    slidePercentageWidth = 100;\n\n\n    @Output('thumbnailClick')\n    thumbnailClickEmitter = new EventEmitter<NxsSliderImage>();\n    @Output('changeSlide')\n    changeSlideEmitter = new EventEmitter<number>();\n\n    @Output('beforeChangeSlide')\n    beforeChangeSlideEmitter = new EventEmitter<void>();\n    private touchEnabled = false;\n    private touchStartX = 0;\n    private goToSlideIntervalId: any = null;\n    private goToSlideOpacityDescending = true;\n\n    constructor() { }\n\n    ngOnInit(): void { }\n\n    private animationRunning = false;\n    private animationPercentageCurrentValue = 0;\n\n    private slideInitialMarginBeforeAnimation = 0;\n    private slideInitialMarginBeforeTouch = 0;\n\n    private animationIntervalId: any;\n    @Input()\n    public slideDuration = 1000;\n\n    @Input()\n    public useNewSlideAnimation = true;\n\n\n    private getMarginLeftFromIndex(index: number) {\n        return ((100 - this.slidePercentageWidth) / 2) - (index * this.slidePercentageWidth);\n\n    }\n\n    private clearIntervals() {\n        if (this.animationIntervalId)\n            clearInterval(this.animationIntervalId);\n        if (this.goToSlideIntervalId)\n            clearInterval(this.goToSlideIntervalId);\n    }\n\n\n    private startAnimationFade(index: number) {\n        return new Promise<void>((resolve) => {\n            const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n            this.goToSlideOpacityDescending = true;\n            this.clearIntervals();\n            this.goToSlideIntervalId = setInterval(() => {\n\n                if (div.parentElement.style.opacity == null || div.parentElement.style.opacity === '') {\n                    div.parentElement.style.opacity = '1';\n                }\n                // console.log(\"Log: NxsSliderComponent -> this.goToSlideIntervalId -> div.parentElement.style.opacity\", div.parentElement.style.opacity);\n\n                if (parseFloat(div.parentElement.style.opacity) <= 0) {\n                    this.goToSlideOpacityDescending = false;\n                    div.style.marginLeft = this.getMarginLeftFromIndex(index) + '%';\n                }\n\n                if (this.goToSlideOpacityDescending) {\n                    div.parentElement.style.opacity = (parseFloat(div.parentElement.style.opacity) - 0.05).toString();\n                }\n                else {\n                    div.parentElement.style.opacity = (parseFloat(div.parentElement.style.opacity) + 0.05).toString();\n                }\n\n                if (div.parentElement.style.opacity === '1' && !this.goToSlideOpacityDescending) {\n                    resolve();\n                }\n            }, 25);\n\n        });\n\n\n    }\n    private goToSlide(val: number) {\n        if (val == null)\n            val = 0;\n        if (this.pCurrentSlide === val)\n            return;\n        if (val < 0 || val > this.images.length - 1) {\n            if (val < 0)\n                this.startAnimation(this.images.length - 1);\n            if (val > this.images.length - 1)\n                this.startAnimation(0);\n        }\n        else {\n            this.startAnimation(val);\n        }\n    }\n\n    private getDivMarginLeft() {\n        if (!this.divImageWrappers || this.divImageWrappers.length === 0)\n            return 0;\n        const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n        if (div.style.marginLeft) {\n            const percentage = div.style.marginLeft.split('%')[0];\n            // console.log(\"Log: NxsSliderComponent -> startAnimation -> div.style.marginLeft\", div.style.marginLeft);\n            // percentage.replace('-', '');\n            // console.log(\"Log: NxsSliderComponent -> startAnimation -> percentage\", percentage);\n            return parseFloat(percentage);\n\n        }\n        else {\n            return 0;\n        }\n    }\n    private transitionEndListener: () => void;\n    private startAnimationNew(index: number) {\n        return new Promise<void>((resolve) => {\n            const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n            if (!div)\n                return;\n            const target = (index * -100);\n            if (this.transitionEndListener)\n                div.removeEventListener('transitionend', this.transitionEndListener);\n\n            this.transitionEndListener = () => {\n                resolve();\n            };\n            div.addEventListener('transitionend', this.transitionEndListener);\n            div.style.marginLeft = target + '%';\n        });\n\n    }\n\n    private startAnimationCompat(direction: number, maxLeftMargin?: number) {\n        return new Promise<void>((resolve, reject) => {\n            if (maxLeftMargin) {\n                if (maxLeftMargin > (this.slideInitialMarginBeforeAnimation - 1) && direction === 1) {\n                    reject();\n                    return;\n                }\n                if (maxLeftMargin <= (this.slideInitialMarginBeforeAnimation) && direction !== 1) {\n                    reject();\n                    return;\n                }\n            }\n            this.animationPercentageCurrentValue = 0;\n\n            // console.log('start interval', direction, this.slideInitialMarginBeforeAnimation);\n            this.animationIntervalId = setInterval(() => {\n\n                const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n                // console.log(\"Log: NxsSliderComponent -> this.animationIntervalId -> div\", div);\n                this.animationPercentageCurrentValue += 1;\n\n                let marginLeft: number;\n\n                if (direction === 1) {\n                    marginLeft = this.slideInitialMarginBeforeAnimation - this.animationPercentageCurrentValue;\n                    // cnsole.log(\"Log: NxsSliderComponent -> this.animationIntervalId ->  div.style.marginLeft \", this.slideInitialMarginBeforeAnimation + this.animationPercentageCurrentValue + '%');\n                }\n                else {\n                    marginLeft = this.slideInitialMarginBeforeAnimation + this.animationPercentageCurrentValue;\n                }\n\n                // console.log(\"Log: NxsSliderComponent -> this.animationIntervalId -> marginLeft\", marginLeft);\n                // console.log(\"Log: NxsSliderComponent -> this.animationIntervalId -> maxLeftMargin\", maxLeftMargin);\n\n                div.style.marginLeft = marginLeft + '%';\n                // console.log(\"Log: NxsSliderComponent -> this.animationIntervalId -> this.animationPercentageCurrentValue\", this.animationPercentageCurrentValue, direction);\n                if (this.animationPercentageCurrentValue >= 100 || (maxLeftMargin > (marginLeft - 1) && direction === 1) || (direction !== 1 && maxLeftMargin <= marginLeft)) {\n                    resolve();\n                }\n            }, 5);\n        });\n    }\n    async startAnimation(index: number, maxLeftMargin?: number) {\n\n        //TODO : improve touch events (change slider number, prevent touch previous slide when index 0)\n        if (this.animationRunning)\n            return;\n        if (!this.divImageWrappers || this.divImageWrappers.length === 0)\n            return;\n        this.clearIntervals();\n        // console.log(\"Log: NxsSliderComponent -> startAnimation -> div\", div);\n        this.slideInitialMarginBeforeAnimation = Math.round(this.getDivMarginLeft());\n        this.animationRunning = true;\n        try {\n\n            if (this.animationMode == 'fade')\n                await this.startAnimationFade(index);\n            else {\n                if (this.useNewSlideAnimation)\n                    await this.startAnimationNew(index);\n                else {\n                    const diff = Math.abs(this.pCurrentSlide - index);\n                    if (diff > 1) {\n                        await this.startAnimationFade(index);\n                    }\n                    else\n                        await this.startAnimationCompat(this.pCurrentSlide - index > 0 ? -1 : 1, maxLeftMargin);\n\n                }\n            }\n\n            this.finishAnimation(index);\n            this.clearIntervals();\n        }\n        catch (err) {\n            this.animationRunning = false;\n            this.clearIntervals();\n        }\n    }\n\n    finishAnimation(index: number) {\n        this.animationRunning = false;\n        this.pCurrentSlide = index;\n        this.onChangeCallback(this.pCurrentSlide);\n    }\n\n\n    writeValue(value: any) {\n        this.value = value;\n    }\n\n    //From ControlValueAccessor interface\n    registerOnChange(fn: any) {\n        this.onChangeCallback = fn;\n    }\n\n    //From ControlValueAccessor interface\n    registerOnTouched(fn: any) {\n        this.onTouchedCallback = fn;\n    }\n    ngAfterViewInit(): void {\n        // if (!this.divImageWrappers || this.divImageWrappers.length === 0)\n        //     return;\n\n\n        // const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n        // this.transitionstartEventListener = () => {\n        //     this.beforeChangeSlideEmitter.emit();\n        // };\n        // this.transitionendEventListener = () => {\n        //     this.changeSlideEmitter.emit(this.currentSlide);\n        // };\n\n        // div.addEventListener('transitionstart', this.transitionstartEventListener);\n        // div.addEventListener('transitionend', this.transitionendEventListener);\n    }\n\n    ngOnDestroy(): void {\n        // if (!this.divImageWrappers || this.divImageWrappers.length === 0)\n        //     return;\n        // const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n        // div.removeEventListener('transitionstart', this.transitionstartEventListener);\n        // div.removeEventListener('transitionend', this.transitionendEventListener);\n    }\n    // getPreviousImage() {\n\n    //     if (this.currentSlide <= 0)\n    //         return this.images[this.images.length - 1];\n    //     return this.images[this.currentSlide - 1];\n    // }\n    // getCurrentImage() {\n    //     return this.images[this.currentSlide];\n    // }\n    // getNextImage() {\n    //     if (this.currentSlide >= this.images.length - 1)\n    //         return this.images[0];\n    //     return this.images[this.currentSlide + 1];\n    // }\n\n    nextSlide() {\n        this.value++;\n    }\n\n    previousSlide() {\n        this.value--;\n    }\n\n    thumbnailClick(index: number) {\n        this.value = index;\n        this.thumbnailClickEmitter.emit(this.images[index]);\n    }\n\n    onTouchend(evt: TouchEvent) {\n        if (!this.touchEnabled)\n            return;\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> evt\", evt);\n        const diff = this.touchStartX - evt.changedTouches.item(0).clientX;\n\n\n        this.slideInitialMarginBeforeTouch = this.getDivMarginLeft();\n        // console.log(\"Log: NxsSliderComponent -> onTouchend ->  this.slideInitialMarginBeforeTouch \", this.slideInitialMarginBeforeTouch);\n\n        let test = Math.abs(this.slideInitialMarginBeforeTouch) / 100;\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> test befir\", test);\n\n        let testBefore = Math.abs(this.slideInitialMarginBeforeTouch) / 100;\n        test = Math.round(test);\n        let direction;\n        if (testBefore < test) {\n            direction = 1;\n        }\n        else\n            direction = -1;\n\n        test = test * 100;\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> test after\", test);\n\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> test\", test);\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> test\", test);\n\n\n        const maxMargin = this.slideInitialMarginBeforeTouch > 0 ? test : -test;\n        // console.log(\"Log: NxsSliderComponent -> onTouchend -> maxMargin\", maxMargin);\n        this.startAnimation(direction, maxMargin);\n\n        // if (diff < 400)\n        //     (evt.target as HTMLDivElement).style.marginLeft = 0 + 'px';\n        // if (diff < 400)\n        //     (evt.target as HTMLDivElement).style.left = 0 + 'px';\n        // this.imageWrapperAnimationEnabled = true;\n\n\n    }\n    onTouchstart(evt: TouchEvent) {\n        if (!this.touchEnabled)\n            return;\n        this.slideInitialMarginBeforeTouch = this.getDivMarginLeft();\n        // console.log(\"Log: NxsSliderComponent -> onTouchstart -> evt\", evt);\n        this.touchStartX = evt.changedTouches.item(0).clientX;\n        // this.imageWrapperAnimationEnabled = false;\n    }\n    onTouchmove(evt: TouchEvent) {\n        if (!this.touchEnabled)\n            return;\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> evt\", evt);\n        const diff = this.touchStartX - evt.changedTouches.item(0).clientX;\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> diff\", diff);\n        const width = (evt.target as HTMLDivElement).clientWidth;\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> (evt.target as HTMLDivElement).clientWidth\", (evt.target as HTMLDivElement).clientWidth);\n        // if (diff === 0) {\n        //     (evt.target as HTMLDivElement).style.marginLeft = '0%';\n        // }\n        // else {\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> Math.abs(Math.abs(this.slideInitialMarginBeforeTouch)\", this.slideInitialMarginBeforeTouch);\n\n        const diff2 = width - Math.abs(diff);\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> diff2\", diff2);\n        const ratio = diff2 * 100 / width;\n\n        // if (width > diff) {\n        // const ratio = width / diff;\n\n        const marginLeftValue = Math.round((diff > 0 ? ((ratio) - 100) : (-ratio + 100))) + this.slideInitialMarginBeforeTouch;\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> marginLeftValue\", marginLeftValue);\n\n\n        const diffFromStart = Math.abs(Math.abs(this.slideInitialMarginBeforeTouch) - Math.abs(marginLeftValue));\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> diffFromStart\", diffFromStart);\n        if (diffFromStart > 100) {\n            return;\n        }\n\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> marginLeftValue\", marginLeftValue);\n        // console.log(\"Log: NxsSliderComponent -> onTouchmove -> ratio\", ratio);\n\n\n\n        const div = this.divImageWrappers.first.nativeElement as HTMLDivElement;\n\n\n        div.style.marginLeft = marginLeftValue + '%';\n        // }\n\n        //  }\n\n    }\n\n}\n","<div *ngIf=\"images && images.length>0\">\n    <!-- \n    <div class=\"nxs-image-wrapper nxs-previous-image-wrapper\"\n        [style.backgroundImage]=\"'url(' + getPreviousImage().src + ')'\">\n\n    </div>\n    <div class=\"nxs-image-wrapper nxs-current-image-wrapper\"\n        [style.backgroundImage]=\"'url(' + getCurrentImage().src + ')'\">\n\n    </div>\n    <div class=\"nxs-image-wrapper nxs-next-image-wrapper\" [style.backgroundImage]=\"'url(' + getNextImage().src + ')'\">\n\n    </div> -->\n    <!-- <div class=\"nxs-image-wrapper\" [style.width.%]=\"slideWidth\" [style.left.%]=\"getLeftPosition(-1)\"\n        [style.backgroundImage]=\"'url(' + images[images.length-1].src + ')'\">\n\n    </div> -->\n\n    <div #divImageWrapper (touchstart)=\"onTouchstart($event)\" (touchmove)=\"onTouchmove($event)\"\n        (touchend)=\"onTouchend($event)\"\n        [ngClass]=\"{'nxs-image-wrapper':true,'nxs-image-wrapper-animated':(animationMode==='slide' && useNewSlideAnimation)}\"\n        *ngFor=\"let image of images; let i = index\" [style.width.%]=\"slidePercentageWidth\"\n        [style.backgroundImage]=\"'url(' + image.src + ')'\">\n\n    </div>\n\n    <div class=\"nxs-slider-buttons-wrapper\">\n        <button mat-icon-button (click)=\"previousSlide()\">\n            <mat-icon>arrow_left</mat-icon>\n        </button>\n        <button mat-icon-button (click)=\"nextSlide()\">\n            <mat-icon>arrow_right</mat-icon>\n        </button>\n    </div>\n    <div *ngIf=\"thumbnails\" class=\"nxs-thumbnails-wrapper\">\n        <button (click)=\"thumbnailClick(i)\" [ngClass]=\"{'nxs-slider-thumbnail':true,'active':i===value}\"\n            *ngFor=\"let image of images; let i = index\">\n            <div [style.backgroundImage]=\"'url(' + image.thumbnail + ')'\"></div>\n        </button>\n    </div>\n\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NxsSliderComponent } from './nxs-slider.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n    declarations: [NxsSliderComponent],\n    imports: [\n        CommonModule,\n        MatIconModule,\n        MatButtonModule,\n    ],\n    exports: [NxsSliderComponent],\n    providers: [],\n})\nexport class NxsSliderModule { }","import { Component, ViewEncapsulation, Input } from '@angular/core';\nimport { NestedTreeControl } from '@angular/cdk/tree';\nimport { MatTreeNestedDataSource } from '@angular/material/tree';\nimport { MainHelpers } from 'nextalys-js-helpers';\nimport { DialogService } from 'nxs-dialog';\nexport interface GDriveFile {\n    name: string;\n    id: string;\n    mimeType: string;\n    createdTime: string;\n    size: number;\n    children?: GDriveFile[];\n    parents?: string[];\n    isRootFolder?: boolean;\n    checked?: boolean;\n    isContentLoading?: boolean;\n    expanded?: boolean;\n}\nexport interface NxsGenericResponse {\n    success: boolean;\n    message?: string;\n}\nexport interface GDriveGetFilesResponse extends NxsGenericResponse {\n    files: GDriveFile[];\n}\nexport interface GDriveDownloadFileResponse extends NxsGenericResponse {\n    fileUrl: string;\n}\nexport interface GDriveFileManagerController {\n    getFiles?: (parentFolderId?: string) => Promise<GDriveGetFilesResponse>;\n    deleteFile?: (id: string) => Promise<NxsGenericResponse>;\n    downloadFile?: (id: string, output: string) => Promise<GDriveDownloadFileResponse>;\n}\n\n@Component({\n    selector: 'nxs-gdrive-file-manager',\n    templateUrl: './gdrive-file-manager.component.html',\n    styleUrls: ['./gdrive-file-manager.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    standalone: false\n})\nexport class GDriveFileManagerComponent {\n    treeControl = new NestedTreeControl<GDriveFile>(node => node.children);\n    dataSource = new MatTreeNestedDataSource<GDriveFile>();\n    private rootFiles: GDriveFile[];\n    private filesFullList: GDriveFile[];\n    public loading = false;\n    @Input()\n    rootFolder: string;\n    @Input()\n    controller: GDriveFileManagerController;\n\n    constructor(\n        private dialogService: DialogService,\n    ) { }\n\n    hasChildren = (file: GDriveFile) => !!file.children && file.children.length > 0;\n\n    ngOnInit(): void {\n        this.loadFiles();\n    }\n    async loadFiles() {\n        if (!this.controller || !this.controller.getFiles)\n            return;\n        this.loading = true;\n        const response = await this.controller.getFiles(this.rootFolder);\n        // console.log(\"Log: GDriveFileManagerComponent -> loadFiles -> response\", response);\n        this.loading = false;\n        this.handleGetFilesResponse(response, true);\n    }\n\n\n    private findFileRecursive(files: GDriveFile[], fileId: string) {\n        for (const file of files) {\n            if (file.id === fileId)\n                return file;\n            if (file.children && file.children.length) {\n                return this.findFileRecursive(file.children, fileId);\n            }\n        }\n        return null;\n    }\n\n    private handleGetFilesResponse(response: GDriveGetFilesResponse, reset: boolean) {\n        if (!this.filesFullList)\n            this.filesFullList = [];\n        if (!response.success)\n            return;\n\n        if (reset)\n            this.filesFullList = [];\n        for (const file of response.files) {\n\n            if (!this.filesFullList.some(x => x.id === file.id))\n                this.filesFullList.push(file);\n        }\n        // this.filesFullList = response.files;\n        // const filesTree: GDriveFile[] = [];\n        this.filesFullList.forEach(file => {\n            const children = this.getChildrenOfFolder(file.id, this.filesFullList);\n            file.children = children;\n            file.checked = false;\n        });\n        // console.log(\"Log: GDriveFileManagerComponent -> handleGetFilesResponse ->   this.filesFullList\", this.filesFullList);\n        const parentsFilesIds = this.filesFullList.filter(x => x.children && x.children.length > 0).map(x => x.id);\n        this.rootFiles = this.filesFullList.filter(x => !x.parents || x.parents.length === 0 || parentsFilesIds.filter(value => -1 !== x.parents.indexOf(value)).length === 0);\n        // this.files[0].children[0].children.push({ id: 'test', createdTime: '', mimeType: '', name: 'test name', size: 100 });\n        // this.files.push({ id: 'test', name: 'test4', createdTime: '', isRootFolder: true, mimeType: '', size: 0 });\n        this.rootFiles.forEach(file => {\n            file.isRootFolder = true;\n        });\n        // console.log(\"Log: GDriveFileManagerComponent -> handleGetFilesResponse -> this.rootFiles\", this.rootFiles);\n        // this.dataSource = new MatTreeNestedDataSource<GDriveFile>();\n        this.dataSource.data = null;\n        this.dataSource.data = this.rootFiles;\n\n    }\n    async treeNodeClick(file: GDriveFile) {\n        if (!file || file.mimeType !== 'application/vnd.google-apps.folder')\n            return;\n        file.expanded = !file.expanded;\n        if (file.expanded) {\n            await this.loadFolderChildren(file.id);\n        }\n    }\n\n\n    async loadFolderChildren(folderId: string) {\n        if (!this.controller || !this.controller.getFiles)\n            return;\n        const folder = this.filesFullList.find(x => x.id === folderId);\n        if (!folder)\n            return;\n        folder.isContentLoading = true;\n        const response = await this.controller.getFiles(folderId);\n        folder.isContentLoading = false;\n        this.handleGetFilesResponse(response, false);\n    }\n\n\n    getSelectedFilesRecursive(files: GDriveFile[]): GDriveFile[] {\n        if (!files || files.length === 0)\n            return [];\n        const filesToReturn: GDriveFile[] = [];\n        for (let index = 0; index < files.length; index++) {\n            const file = files[index];\n            if (file.checked) {\n                filesToReturn.push(file);\n            }\n            filesToReturn.push(...this.getSelectedFilesRecursive(file.children));\n        }\n        return filesToReturn;\n    }\n    getSelectedFiles() {\n        return this.getSelectedFilesRecursive(this.rootFiles);\n    }\n    get selectedFilesCount() {\n        return this.getSelectedFiles().length;\n    }\n    public async removeSelectedFiles() {\n        const dialogResult = await this.dialogService.showConfirmDialog('Etes-vous sûr de vouloir supprimer le(s) fichier(s) sélectionné(s) ?');\n        if (dialogResult.cancelClicked)\n            return;\n        this.loading = true;\n        const files = this.getSelectedFiles();\n        let success = true;\n        let errorMessage: string = null;\n        for (let index = 0; index < files.length; index++) {\n            const file = files[index];\n            const response = await this.deleteFile(file);\n            success = success && response.success;\n            if (!response.success)\n                errorMessage = response.message;\n        }\n        this.loading = false;\n        if (!success) {\n            this.dialogService.showDialog(errorMessage);\n        }\n        else {\n            this.loadFiles();\n        }\n    }\n\n    private getChildrenOfFolder(parentFileId: string, files: GDriveFile[]) {\n        if (!files)\n            return [];\n\n        const children: GDriveFile[] = [];\n        files.forEach(file => {\n            if (file.parents && file.parents.indexOf(parentFileId) !== -1)\n                children.push(file);\n        });\n        return children;\n    }\n    async deleteFileConfirm(file: GDriveFile) {\n        if (!file || !file.id)\n            return;\n        const dialogResult = await this.dialogService.showConfirmDialog('Etes-vous sûr de vouloir supprimer le ' + (file.mimeType === 'application/vnd.google-apps.folder' ? 'répertoire' : 'fichier') + ' \"' + file.name + '\" ?');\n        if (dialogResult.cancelClicked)\n            return;\n        this.loading = true;\n        const response = await this.deleteFile(file);\n        this.loading = false;\n        if (!response.success) {\n            this.dialogService.showDialog(response.message);\n        }\n        else {\n            this.loadFiles();\n        }\n    }\n\n    async deleteFile(file: GDriveFile): Promise<NxsGenericResponse> {\n        if (!this.controller || !this.controller.deleteFile)\n            return { success: false, message: 'Contrôleur de suppression non défini.' };\n        if (!file || !file.id)\n            return { success: false, message: 'Paramètres incorrects.' };\n        return await this.controller.deleteFile(file.id);\n    }\n    async downloadFile(file: GDriveFile) {\n        if (!this.controller || !this.controller.downloadFile)\n            return;\n        if (!file || !file.id)\n            return;\n        this.loading = true;\n        const response = await this.controller.downloadFile(file.id, file.name);\n        this.loading = false;\n        // console.log(': GDriveManager -> downloadFile -> response', response);\n        if (!response.success) {\n            this.dialogService.showDialog(response.message);\n        }\n        else {\n            this.dialogService.showDialog(`Fichier téléchargé.<br/><br/><a target=\"_blank\" href=\"${response.fileUrl}\">Ouvrir</a>`);\n        }\n    }\n\n    getFileLink(fileId: string) {\n        return MainHelpers.getGdriveFileLink(fileId, true);\n    }\n\n\n\n}\n","<div style=\"display: flex;justify-content: space-between;\">\n  <div [style.visibility]=\"loading ? 'visible':'hidden'\"\n    style=\"display: flex;justify-content: center;align-items: center;\" class=\"nextalysLoaderContainer\">\n    <mat-spinner diameter=\"30\" strokeWidth=\"3\"></mat-spinner> <i style=\"padding: 0 10px;\">Chargement...</i>\n  </div>\n  <h3 style=\"text-align: center\">Fichiers sur Google Drive</h3>\n  <div style=\"display: flex;justify-content: center;align-items: center;\">\n    <mat-form-field>\n      <mat-label>Id répertoire</mat-label>\n      <input matInput placeholder=\"Id répertoire\" [(ngModel)]=\"rootFolder\" [disabled]=\"loading\" />\n    </mat-form-field>\n    <button mat-icon-button [disabled]=\"loading\" (click)=\"loadFiles()\">\n      <mat-icon>arrow_right_alt</mat-icon>\n    </button>\n  </div>\n</div>\n<div>\n  <button mat-raised-button [disabled]=\"selectedFilesCount === 0 || loading\" (click)=\"removeSelectedFiles()\">Supprimer\n    les fichiers\n    sélectionnés</button>\n</div>\n<ul style=\"padding-left: 0\">\n  <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n    <mat-nested-tree-node *matTreeNodeDef=\"let file;\">\n      <li [class.tree-bordered]=\"file.isRootFolder\">\n        <div class=\"mat-tree-node\">\n          <button (click)=\"treeNodeClick(file)\"\n            *ngIf=\"!file.isContentLoading && file.mimeType==='application/vnd.google-apps.folder'\" mat-icon-button\n            matTreeNodeToggle [attr.aria-label]=\"'toggle ' + file.name\">\n            <mat-icon class=\"mat-icon-rtl-mirror\">\n              {{file.expanded ? 'expand_more' : 'chevron_right'}}\n            </mat-icon>\n          </button>\n          <div *ngIf=\"file.isContentLoading\">\n            <mat-spinner style=\"margin:4px\" diameter=\"24\" strokeWidth=\"3\"></mat-spinner>\n          </div>\n          <div (click)=\"treeNodeClick(file)\"\n            [ngClass]=\"{'mat-tree-node-content':true,'clickable-tree-node':file.mimeType==='application/vnd.google-apps.folder'}\">\n            <!-- <div> {{file.id}}</div> -->\n            <div style=\"display: flex;align-items: center;\">\n              <ng-container *ngIf=\"file.mimeType==='application/vnd.google-apps.folder'\">\n                <mat-icon *ngIf=\"file.expanded && hasChildren(file)\">folder_open\n                </mat-icon>\n                <mat-icon *ngIf=\"!file.expanded || !hasChildren(file)\">folder</mat-icon>\n              </ng-container>\n              <div style=\"display: flex;justify-content: center;align-items: center;\"\n                *ngIf=\"file.mimeType!=='application/vnd.google-apps.folder'\">\n                <mat-checkbox [disabled]=\"loading\" [(ngModel)]=\"file.checked\"></mat-checkbox>\n                <mat-icon style=\"margin-left:10px\">file_copy</mat-icon>\n              </div>\n              <div style=\"margin-left:6px\">\n                <a target=\"_blank\" *ngIf=\"file.mimeType!=='application/vnd.google-apps.folder'\"\n                  [href]=\"getFileLink(file.id)\">\n                  {{file.name}}\n                </a>\n                <span *ngIf=\"file.mimeType==='application/vnd.google-apps.folder'\">\n                  {{file.name}}\n                </span>\n              </div>\n            </div>\n            <div class=\"right-container\">\n              <!-- <mat-chip-list class=\"desktopOnly\">\n                                <mat-chip>\n                                    {{file.id}}\n                                </mat-chip>\n                                <mat-chip *ngIf=\"file.createdTime && !file.modifiedTime\">\n                                    {{file.createdTime | date:'dd/MM/yyyy - HH:mm'}}\n                                </mat-chip>\n                                <mat-chip *ngIf=\"file.modifiedTime\">{{file.modifiedTime | date:'dd/MM/yyyy - HH:mm'}}\n                                </mat-chip>\n                                <mat-chip *ngIf=\"file.size\">{{file.size | bytes}} </mat-chip>\n                                <mat-chip *ngIf=\"file.mimeType\">\n                                    <ng-container *ngIf=\"file.mimeType==='application/vnd.google-apps.folder'\">\n                                        Folder\n                                    </ng-container>\n                                    <ng-container *ngIf=\"file.mimeType!=='application/vnd.google-apps.folder'\">\n                                        {{file.mimeType}}\n                                    </ng-container>\n                                </mat-chip>\n\n                            </mat-chip-list> -->\n              <button *ngIf=\"file.mimeType!=='application/vnd.google-apps.folder'\" matTooltip=\"Télécharger\"\n                mat-icon-button (click)=\"downloadFile(file)\" [disabled]=\"loading\">\n                <mat-icon>cloud_download</mat-icon>\n              </button>\n              <button matTooltip=\"Supprimer\" mat-icon-button (click)=\"deleteFileConfirm(file)\" [disabled]=\"loading\">\n                <mat-icon>delete</mat-icon>\n              </button>\n            </div>\n          </div>\n        </div>\n        <ul [class.tree-invisible]=\"!file.expanded\">\n          <ng-container matTreeNodeOutlet></ng-container>\n        </ul>\n      </li>\n    </mat-nested-tree-node>\n  </mat-tree>\n</ul>","import { Pipe, PipeTransform } from '@angular/core';\n\nexport type ByteUnit = 'B' | 'kB' | 'KB' | 'MB' | 'GB' | 'TB';\nexport function isNumber(value: any): value is number {\n\n    return typeof value === 'number';\n}\n\nexport function isNumberFinite(value: any): value is number {\n\n    return isNumber(value) && isFinite(value);\n}\n// Not strict positive\nexport function isPositive(value: number): boolean {\n    return value >= 0;\n}\nexport function toDecimal(value: number, decimal: number): number {\n    return Math.round(value * Math.pow(10, decimal)) / Math.pow(10, decimal);\n}\nexport function isInteger(value: number): boolean {\n    // No rest, is an integer\n    return (value % 1) === 0;\n}\n\n\n@Pipe({\n    name: 'bytes',\n    standalone: false\n})\nexport class BytesPipe implements PipeTransform {\n\n    static formats: { [key: string]: { max: number, prev?: ByteUnit } } = {\n        'B': { max: 1024 },\n        'kB': { max: Math.pow(1024, 2), prev: 'B' },\n        'KB': { max: Math.pow(1024, 2), prev: 'B' }, // Backward compatible\n        'MB': { max: Math.pow(1024, 3), prev: 'kB' },\n        'GB': { max: Math.pow(1024, 4), prev: 'MB' },\n        'TB': { max: Number.MAX_SAFE_INTEGER, prev: 'GB' }\n    };\n    static formatResult(result: number, unit: string): string {\n        return `${result} ${unit}`;\n    }\n\n    static calculateResult(format: { max: number, prev?: ByteUnit }, bytes: number) {\n        const prev = format.prev ? BytesPipe.formats[format.prev] : undefined;\n        return prev ? bytes / prev.max : bytes;\n    }\n\n    transform(input: any, decimal: number = 0, from: ByteUnit = 'B', to?: ByteUnit): any {\n\n        if (!(isNumberFinite(input) &&\n            isNumberFinite(decimal) &&\n            isInteger(decimal) &&\n            isPositive(decimal))) {\n            return input;\n        }\n\n        let bytes = input;\n        let unit = from;\n        while (unit !== 'B') {\n            bytes *= 1024;\n            unit = BytesPipe.formats[unit].prev!;\n        }\n\n        if (to) {\n            const format = BytesPipe.formats[to];\n\n            const result = toDecimal(BytesPipe.calculateResult(format, bytes), decimal);\n\n            return BytesPipe.formatResult(result, to);\n        }\n\n        for (const key in BytesPipe.formats) {\n            const format = BytesPipe.formats[key];\n            if (bytes < format.max) {\n\n                const result = toDecimal(BytesPipe.calculateResult(format, bytes), decimal);\n\n                return BytesPipe.formatResult(result, key);\n            }\n        }\n    }\n\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GDriveFileManagerComponent } from './gdrive-file-manager.component';\n// import { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { FormsModule } from '@angular/forms';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BytesPipe } from './bytes.pipe';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { NxsDialogModule } from 'nxs-dialog';\n\n@NgModule({\n  declarations: [\n    GDriveFileManagerComponent,\n    BytesPipe,\n  ],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    MatProgressSpinnerModule,\n    MatCheckboxModule,\n    MatTreeModule,\n    FormsModule,\n    MatTooltipModule,\n    MatButtonModule,\n    MatInputModule,\n    NxsDialogModule,\n  ],\n  exports: [GDriveFileManagerComponent],\n  providers: [],\n})\nexport class GDriveFileManagerModule { }\n","/* eslint-disable no-underscore-dangle */\nimport { Component, Input, forwardRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { MainHelpers } from 'nextalys-js-helpers';\nconst noop = () => {\n};\n@Component({\n    selector: 'nxs-multiple-select',\n    templateUrl: './multiple-select.component.html',\n    styles: [`\n         .mat-option.nxs-mat-option-unselect-all .mat-pseudo-checkbox{\n           display: none;\n        }\n        `],\n    encapsulation: ViewEncapsulation.None,\n    providers: [{\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => MultipleSelectComponent),\n            multi: true,\n        }],\n    standalone: false\n})\nexport class MultipleSelectComponent implements ControlValueAccessor {\n\n    //Placeholders for the callbacks which are later provided\n    //by the Control Value Accessor\n    private onTouchedCallback: () => void = noop;\n    private onChangeCallback: (_: any) => void = noop;\n\n    get value(): any[] {\n        if (!this._valueForSelect)\n            return [];\n        return this._valueForSelect.filter(x => x !== -1);\n    }\n\n    public _valueForSelect: any[];\n\n    @Input()\n    public source: any[];\n    @Input()\n    setBorderColor: boolean = false;\n    @Input()\n    public appearance: string;\n\n    @Input()\n    public valueField: string;\n\n    @Input()\n    public labelField: string;\n\n    @Input()\n    public label: string;\n\n    @Input()\n    public showSelectAllButton: boolean = true;\n    @Input()\n    public showUnselectAllButton = false;\n    @Input()\n    public selectAllSeparator: boolean = true;\n    @Input()\n    public selectAllLabel: string = 'Sélectionner tout';\n\n    @ViewChild('allSelected') allSelected: MatOption;\n    @Input()\n    public unselectAllLabel: string = 'Désélectionner tout';\n\n    @Input()\n    public valueFieldName: string;\n    @Input()\n    public getLabelFunction: (element: any) => string;\n\n    constructor() {\n    }\n    public getLabel(element: any): string {\n        if (!element)\n            return \"\";\n        if (!!this.getLabelFunction) {\n            return this.getLabelFunction(element);\n        }\n        if (this.labelField && typeof element !== 'number' && typeof element !== 'string')\n            return element[this.labelField];\n        else\n            return element.toString();\n    }\n\n    togglePerOne(all: any) {\n        if (this.allSelected?.selected) {\n            this.allSelected?.deselect();\n            return false;\n        }\n        if (this.value.length === this.source.length)\n            this.allSelected?.select();\n    }\n\n    get valueForSelect(): any[] {\n        return this._valueForSelect;\n    }\n\n    set valueForSelect(v: any[]) {\n        if (v !== this._valueForSelect) {\n            const oldValue = Array.from(this.value);\n            this._valueForSelect = v;\n            if (!MainHelpers.arraysEqual(oldValue, this.value))\n                this.onChangeCallback(this.value);\n        }\n    }\n    toggleAllSelection() {\n        if (this.allSelected.selected) {\n            this.valueForSelect = [-1, ...this.source];\n        } else {\n            this.valueForSelect = [];\n        }\n    }\n\n    writeValue(value: any[]): void {\n        if (value !== this._valueForSelect) {\n            this._valueForSelect = value;\n        }\n    }\n    registerOnChange(fn: any): void {\n        this.onChangeCallback = fn;\n    }\n    registerOnTouched(fn: any): void {\n        this.onTouchedCallback = fn;\n    }\n    onBlur() {\n        this.onTouchedCallback();\n    }\n    unselectAll() {\n        if (!!this.valueForSelect?.length) {\n            this.valueForSelect = [];\n        }\n    }\n\n}","<mat-form-field [class]=\"value.length>0 && setBorderColor ? 'matFormFieldCustom' : ''\" class=\"responsive-input\"\n    [appearance]=\"appearance\">\n    <mat-label>{{label}}</mat-label>\n    <mat-select [placeholder]=\"label\" [(ngModel)]=\"valueForSelect\" multiple>\n        <mat-option *ngIf=\"showSelectAllButton\" #allSelected (click)=\"toggleAllSelection()\" [value]=\"-1\">\n            {{selectAllLabel}}</mat-option>\n        <mat-option [disabled]=\"!valueForSelect?.length\" class=\"nxs-mat-option-unselect-all\"\n            *ngIf=\"showUnselectAllButton\" (click)=\"unselectAll()\">\n            {{unselectAllLabel}} ({{valueForSelect?.length || 0}})</mat-option>\n        <hr *ngIf=\"selectAllSeparator && (showSelectAllButton || showUnselectAllButton)\" />\n        <mat-option *ngFor=\"let element of source\" [value]=\"!!valueFieldName ? element[valueFieldName] : element\"\n            (click)=\"togglePerOne(allSelected?.viewValue)\">\n            {{getLabel(element)}}\n        </mat-option>\n    </mat-select>\n</mat-form-field>","import { MultipleSelectComponent } from './multiple-select.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n    declarations: [\n        MultipleSelectComponent,\n    ],\n    imports: [\n        CommonModule,\n        MatSelectModule,\n        FormsModule,\n    ],\n    exports: [MultipleSelectComponent],\n})\nexport class NxsMultipleSelectModule { }","import { Component, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nconst noop = () => {\n};\n@Component({\n    selector: 'nxs-duration-picker',\n    templateUrl: './nxs-duration-picker.component.html',\n    styleUrls: ['./nxs-duration-picker.component.scss'],\n    providers: [{\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => NxsDurationPickerComponent),\n            multi: true\n        }],\n    standalone: false\n})\nexport class NxsDurationPickerComponent implements ControlValueAccessor {\n\n    @Input()\n    required = false;\n    @Input()\n    hourPlaceholder = 'Heures';\n    @Input()\n    minutesPlaceholder = 'Minutes';\n    @Input()\n    appearance = 'outline';\n    private innerValue: number;\n    private onTouchedCallback: () => void = noop;\n    private onChangeCallback: (_: any) => void = noop;\n    get value(): number {\n        return this.innerValue;\n    }\n\n    set value(v: number) {\n        if (v !== this.innerValue) {\n            this.innerValue = v;\n            this.onChangeCallback(v);\n        }\n    }\n    hours = 0;\n    minutes = 0;\n    constructor() { }\n\n    writeValue(value: number): void {\n        if (value !== this.innerValue) {\n            this.innerValue = value;\n            this.setInputsFromTotalDuration();\n        }\n    }\n    registerOnChange(fn: any): void {\n        this.onChangeCallback = fn;\n\n    }\n    registerOnTouched(fn: any): void {\n        this.onTouchedCallback = fn;\n    }\n    setDisabledState?(isDisabled: boolean): void {\n    }\n    setInputsFromTotalDuration() {\n        const hours = (this.innerValue / 60);\n        this.hours = Math.floor(hours);\n        this.minutes = Math.round((hours - this.hours) * 60);\n    }\n    setTotalDuration() {\n        this.value = this.hours * 60 + this.minutes;\n    }\n}\n","<mat-form-field [appearance]=\"appearance\" style=\"width: 90px;\">\n    <mat-label>{{hourPlaceholder | translate}}</mat-label>\n    <input [(ngModel)]=\"hours\" (ngModelChange)=\"setTotalDuration()\" step=\"1\" [placeholder]=\"hourPlaceholder | translate\"\n        type=\"number\" matInput [required]=\"required\" min=\"0\">\n    <span matSuffix>h</span>\n</mat-form-field>\n\n<mat-form-field [appearance]=\"appearance\" style=\"width: 90px;\">\n    <mat-label>{{minutesPlaceholder | translate}}</mat-label>\n    <input [(ngModel)]=\"minutes\" (ngModelChange)=\"setTotalDuration()\" step=\"1\"\n        [placeholder]=\"minutesPlaceholder | translate\" type=\"number\" matInput min=\"0\" max=\"59\">\n    <span matSuffix>m</span>\n</mat-form-field>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NxsDurationPickerComponent } from './nxs-duration-picker.component';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\n\n@NgModule({\n    declarations: [\n        NxsDurationPickerComponent,\n    ],\n    imports: [\n        CommonModule,\n        MatFormFieldModule,\n        FormsModule,\n        MatInputModule,\n        TranslateModule,\n    ],\n    exports: [\n        NxsDurationPickerComponent,\n    ],\n    providers: [],\n})\nexport class NxsDurationPickerModule { }","import { Component, ViewEncapsulation, forwardRef, Input, Injectable } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { DateAdapter, NativeDateAdapter } from \"@angular/material/core\";\nimport { MatDatepicker } from \"@angular/material/datepicker\";\nimport { MainHelpers } from \"nextalys-js-helpers\";\n@Injectable()\nexport class CustomDateAdapter extends NativeDateAdapter {\n    format(date: Date, displayFormat: any): string {\n        // const days = date.getDate();\n        const months = date.getMonth() + 1;\n        const year = date.getFullYear();\n        return MainHelpers.pad(months.toString(), 2, '0') + '/' + year;\n    }\n}\n\n@Component({\n    selector: 'nxs-year-month-picker',\n    templateUrl: './year-month-picker.component.html',\n    styleUrls: ['./year-month-picker.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [{\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => NxsYearMonthPicker),\n            multi: true,\n        },\n        { provide: DateAdapter, useClass: CustomDateAdapter },\n    ],\n    standalone: false\n})\nexport class NxsYearMonthPicker {\n    @Input()\n    label: string = 'MM/AAAA';\n    @Input()\n    placeholder: string = 'MM/AAAA';\n    @Input()\n    appearance: string = 'outline';\n    @Input()\n    disabled = false;\n    private onTouchedCallback: () => void = () => { };\n    private onChangeCallback: (_: any) => void = () => { };\n\n    private innerValue: Date;\n    get value(): Date {\n        return this.innerValue;\n    }\n\n    //set accessor including call the onchange callback\n    set value(v: Date) {\n        if (v !== this.innerValue) {\n            this.innerValue = v;\n            this.onChangeCallback(v);\n        }\n    }\n\n    writeValue(value: Date): void {\n        if (value !== this.innerValue) {\n            this.innerValue = value;\n        }\n    }\n    registerOnChange(fn: any): void {\n        this.onChangeCallback = fn;\n    }\n    registerOnTouched(fn: any): void {\n        this.onTouchedCallback = fn;\n    }\n    onBlur() {\n        this.onTouchedCallback();\n    }\n    monthSelected(datepicker: MatDatepicker<any>, date: Date) {\n        datepicker.close();\n\n        let dayOfMonth = 1;\n        // console.log(\"Log ~ file: year-month-picker.component.ts ~ line 58 ~ NxsYearMonthPicker ~ monthSelected ~ date\", date);\n        if (this.value)\n            dayOfMonth = this.value.getDate();\n        const newDate = new Date(date.getFullYear(), date.getMonth(), dayOfMonth, 0, 0, 0, 0);\n        newDate.setDate(1);\n        this.value = newDate;\n        // this.value = DateHelpers.toUtcDate(new Date(date.getFullYear(), date.getMonth(), 0, 0, 0, 0, 0));\n        // console.log(\"Log ~ file: year-month-picker.component.ts ~ line 74 ~ NxsYearMonthPicker ~ monthSelected ~   this.value\", this.value);\n    }\n}","<mat-form-field [appearance]=\"appearance\" (click)=\"datePicker.open()\">\n    <mat-label>{{label}}</mat-label>\n    <input [readonly]=\"disabled\" matInput [matDatepicker]=\"datePicker\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\">\n    <mat-datepicker-toggle *ngIf=\"!disabled\" matSuffix [for]=\"datePicker\"></mat-datepicker-toggle>\n    <mat-datepicker startView=\"multi-year\" #datePicker (monthSelected)=\"monthSelected(datePicker,$event)\">\n    </mat-datepicker>\n</mat-form-field>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { NxsYearMonthPicker } from './year-month-picker.component';\n@NgModule({\n    declarations: [NxsYearMonthPicker],\n    imports: [\n        CommonModule,\n        MatFormFieldModule,\n        MatInputModule,\n        MatDatepickerModule,\n        FormsModule,\n        MatNativeDateModule,\n    ],\n    exports: [NxsYearMonthPicker],\n    providers: [],\n})\nexport class NxsYearMonthPickerModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i4","i2","i1","i5","i6","i7","i9","i10","i11","noop"],"mappings":"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"}