ngx-ode-ui 4.5.0 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-ode-ui.js","sources":["ng://ngx-ode-ui/lib/services/dynamicModuleImports.service.ts","ng://ngx-ode-ui/lib/services/inputFile.service.ts","ng://ngx-ode-ui/lib/services/labels.service.ts","ng://ngx-ode-ui/lib/services/spinner.service.ts","ng://ngx-ode-ui/lib/components/datepicker/datepicker.component.ts","ng://ngx-ode-ui/lib/components/ellipsis/ellipsis.component.ts","ng://ngx-ode-ui/lib/components/form-errors/form-errors.component.ts","ng://ngx-ode-ui/lib/components/form-field/form-field.component.ts","ng://ngx-ode-ui/lib/components/item-tree/item-tree.component.ts","ng://ngx-ode-ui/lib/components/lightbox/lightbox.component.ts","ng://ngx-ode-ui/lib/components/lightbox-confirm/lightbox-confirm.component.ts","ng://ngx-ode-ui/lib/components/list/list.component.ts","ng://ngx-ode-ui/lib/components/list-checkable/list-checkable.component.ts","ng://ngx-ode-ui/lib/components/message-box/message-box.component.ts","ng://ngx-ode-ui/lib/directives/dynamic-component/component-descriptor.model.ts","ng://ngx-ode-ui/lib/directives/dynamic-component/dynamic-component.directive.ts","ng://ngx-ode-ui/lib/components/message-sticker/message-sticker.component.ts","ng://ngx-ode-ui/lib/components/mono-select/mono-select.component.ts","ng://ngx-ode-ui/lib/components/multi-combo/multi-combo.component.ts","ng://ngx-ode-ui/lib/components/multi-select/multi-select.component.ts","ng://ngx-ode-ui/lib/components/panel-section/panel-section.component.ts","ng://ngx-ode-ui/lib/components/portal/portal.component.ts","ng://ngx-ode-ui/lib/components/push-panel/push-panel.component.ts","ng://ngx-ode-ui/lib/components/search-input/search-input.component.ts","ng://ngx-ode-ui/lib/components/side-layout/side-layout.component.ts","ng://ngx-ode-ui/lib/components/side-panel/side-panel.component.ts","ng://ngx-ode-ui/lib/components/spinner-cube/spinner-cube.component.ts","ng://ngx-ode-ui/lib/components/table/pager.component.ts","ng://ngx-ode-ui/lib/components/tooltip/tooltip.component.ts","ng://ngx-ode-ui/lib/components/upload-files/upload-files.component.ts","ng://ngx-ode-ui/lib/components/value-editable/simple-select.component.ts","ng://ngx-ode-ui/lib/components/wizard/wizard.component.ts","ng://ngx-ode-ui/lib/directives/anchor.directive.ts","ng://ngx-ode-ui/lib/directives/drag-and-drop-files.directive.ts","ng://ngx-ode-ui/lib/directives/dynamictemplate.directive.ts","ng://ngx-ode-ui/lib/directives/object-url.directive.ts","ng://ngx-ode-ui/lib/utils/math.ts","ng://ngx-ode-ui/lib/pipes/bytes.pipe.ts","ng://ngx-ode-ui/lib/pipes/filter.pipe.ts","ng://ngx-ode-ui/lib/pipes/flattenObjArray.pipe.ts","ng://ngx-ode-ui/lib/pipes/keys.pipe.ts","ng://ngx-ode-ui/lib/pipes/limit.pipe.ts","ng://ngx-ode-ui/lib/pipes/localizedDate.pipe.ts","ng://ngx-ode-ui/lib/pipes/orderBy.pipe.ts","ng://ngx-ode-ui/lib/pipes/store.pipe.ts","ng://ngx-ode-ui/lib/pipes/length.pipe.ts","ng://ngx-ode-ui/lib/utils/string.ts","ng://ngx-ode-ui/lib/utils/testing.ts","ng://ngx-ode-ui/lib/components/dropdown/dropdown.component.ts","ng://ngx-ode-ui/lib/components/search-toolbar/search-toolbar.component.ts","ng://ngx-ode-ui/lib/ngx-ode-ui.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class DynamicModuleImportsService {\n imports = [];\n}\n","\nimport {throwError as observableThrowError, Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class InputFileService {\n public validateFiles(files: FileList, maxFilesNumber: number, allowedExtensions: string[]): Observable<File[]> {\n if (!files) {\n return observableThrowError('files is empty');\n }\n if (files.length > maxFilesNumber) {\n return observableThrowError(`Only ${maxFilesNumber} file(s) allowed`);\n }\n\n const validFiles: File[] = [];\n const invalidFiles: File[] = [];\n for (let i = 0; i < files.length; i++) {\n const filenameSplit = files[i].name.split('.');\n const ext = filenameSplit[filenameSplit.length - 1];\n if (allowedExtensions.lastIndexOf(ext.toLowerCase()) !== -1) {\n validFiles.push(files[i]);\n } else {\n invalidFiles.push(files[i]);\n }\n }\n\n return new Observable(observer => {\n if (validFiles.length > 0) {\n observer.next(validFiles);\n }\n if (invalidFiles.length > 0) {\n observer.error(`Extension not allowed. Allowed extensions: ${allowedExtensions}`);\n }\n observer.complete();\n });\n }\n\n public isSrcExternalUrl(src: string): boolean {\n if (src) {\n return src.startsWith('http://') || src.startsWith('https://');\n } else {\n return false;\n }\n }\n\n public isSrcWorkspace(src: string): boolean {\n if (src) {\n return src.startsWith('/workspace');\n } else {\n return false;\n }\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class LabelsService {\n\n private labels = {\n 'select.all': 'Select all',\n 'deselect.all': 'Deselect all',\n search: 'Search'\n };\n\n static withLabels(labels: Object) {\n const newService = new LabelsService();\n for (const prop in labels) {\n newService.labels[prop] = labels[prop];\n }\n return newService;\n }\n\n getLabel(label: string) {\n return this.labels[label] || label;\n }\n\n mixin(labels: Object) {\n for (const property in labels) {\n this.labels[property] = labels[property];\n }\n }\n}\n","import {ApplicationRef, ChangeDetectorRef, Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Injectable()\nexport class SpinnerService {\n\n constructor(private appRef: ApplicationRef) {}\n\n timer = 250;\n\n private loading = new Set<any>();\n private timers = new Map<any, number>();\n\n private _trigger = new Subject();\n get trigger() {\n return this._trigger;\n }\n\n isLoading(something, pending = false): boolean {\n return this.loading.has(something) ||\n (pending && this.timers.has(something));\n }\n\n perform<T>(something: any, promise: Promise<T>, timer?: number): Promise<T> {\n this.load(something, timer);\n return promise.catch( err => {\n this.done(something);\n throw err;\n }).then( _ => {\n this.done(something);\n return _;\n });\n }\n\n load(something: any, timer?: number): void {\n if (this.timers.has(something)) {\n window.clearTimeout(this.timers.get(something));\n }\n\n const addToQueue = () => {\n this.loading.add(something);\n this.timers.delete(something);\n this.appRef.tick();\n this.trigger.next(true);\n };\n\n if (timer === 0) {\n addToQueue();\n } else {\n this.timers.set(something, window.setTimeout(addToQueue, timer || this.timer));\n }\n }\n\n done(something): void {\n window.clearTimeout(this.timers.get(something));\n this.timers.delete(something);\n this.loading.delete(something);\n this.trigger.next(true);\n this.appRef.tick();\n }\n\n wrap = (func: (...params) => Promise<any>, label: string,\n props: { delay?: number, binding?: any, cdRef?: ChangeDetectorRef } = {}, ...args) => {\n\n this.load(label, props.delay);\n const promise = props.binding ?\n func.bind(props.binding)(...args) :\n func(...args);\n\n promise.catch((err) => {\n this.done(label);\n throw err;\n }).then(_ => {\n this.done(label);\n return _;\n });\n if (props.cdRef) { props.cdRef.markForCheck(); }\n\n return promise;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef,\n Input, OnDestroy, Output, Renderer2, ViewChild, Injector } from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\n\nimport {LabelsService} from '../../services/labels.service';\nimport Flatpickr from 'flatpickr';\nimport French from 'flatpickr/dist/l10n/fr.js';\n\n// access ngmodel\nconst NOOP = () => {\n};\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'ode-date-picker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n providers: [ CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR ]\n})\nexport class DatepickerComponent extends OdeComponent implements OnDestroy, AfterViewInit, ControlValueAccessor {\n\n constructor(private renderer: Renderer2,\n private labelsService: LabelsService,\n injector: Injector) {\n super(injector);\n }\n\n get value(): any {\n return this.innerValue;\n }\n\n set value(v: any) {\n let init = false;\n if (this.innerValue === undefined) {\n init = true;\n }\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n if (!init) {\n this.changeDate.emit(v);\n }\n\n }\n }\n\n private innerValue: any = '';\n\n @ViewChild('datePickerElement', { static: false })\n datePickerElement: ElementRef;\n\n @ViewChild('inputRef', { static: false })\n inputElement: ElementRef;\n\n // instance flatpickr\n private datePickerInst: Flatpickr;\n\n @ViewChild(NgModel, { static: false })\n model: NgModel;\n\n @Input()\n disabled = false;\n\n @Input()\n set readonly( val:boolean ) {\n this._readonly = val;\n if( this.datePickerInst && this.datePickerInst.altInput ) {\n // Apply the readonly attribute addition/removal to the visible input (wrapped)\n if( val ) this.datePickerInst.altInput.setAttribute('readonly', \"\");\n else this.datePickerInst.altInput.removeAttribute('readonly');\n }\n }\n get readonly():boolean {\n return this._readonly;\n }\n _readonly = false;\n\n @Input()\n enableTime = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n minDate;\n\n @Input()\n maxDate;\n\n @Output()\n changeDate: EventEmitter<string> = new EventEmitter<string>();\n\n private onChangeCallback: (_: any) => void = NOOP;\n private onTouchedCallback: () => void = NOOP;\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n // add attr data-input, mandatory for the picker to work in wrap mode\n this.renderer.setAttribute(this.inputElement.nativeElement, 'data-input', '');\n\n // disabled case\n if (this.disabled === true) {\n this.model.control.disable();\n }\n\n const navigatorLanguage = navigator.language.split('-')[0];\n let datePickerLocale = {};\n if (navigatorLanguage === 'fr') {\n datePickerLocale = French.fr;\n }\n\n // options for the flatpickr instance\n const options = {\n altInput: !this.disabled,\n altFormat: 'd/m/Y', // date format displayed to user\n dateFormat: 'Y-m-d', // date format sent to server\n allowInput: false,\n enableTime: this.enableTime,\n minDate: this.minDate,\n maxDate: this.maxDate,\n clickOpens: false,\n wrap: true, // to add input decoration (calendar icon and delete icon)\n locale: datePickerLocale\n };\n\n this.datePickerInst = new Flatpickr(this.datePickerElement.nativeElement, options);\n if( !this.disabled ) {\n this.datePickerInst.altInput.addEventListener('click', e => {\n if( !this.readonly ) {\n this.datePickerInst.toggle();\n }\n });\n }\n\n // Force updating the date input readonly attribute :\n this.readonly = this._readonly;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.datePickerInst.destroy();\n }\n\n writeValue(value: any): void {\n if (value !== this.innerValue && this.datePickerInst) {\n this.innerValue = value;\n this.datePickerInst.setDate(value);\n this.onChangeCallback(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, Input, Injector } from '@angular/core';\n\ntype EllipsisBehavior = 'expand' | 'hide';\n\n/**\n * A simple ellipsis component that switches text-overflow on click.\n * Add an ellipsis={'hide'| 'expand'} attirubute on your element.\n * Default behavior is 'hide', so that it's the same than the raw CSS\n */\n@Component({\n selector: '[ellipsis]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./ellipsis.component.scss'],\n host: {\n '(click)': 'onClick()',\n }\n})\nexport class EllipsisComponent extends OdeComponent {\n constructor(private eltRef: ElementRef, injector: Injector ) {\n super(injector);\n }\n\n private _ellipsis: EllipsisBehavior = 'hide';\n @Input()\n set ellipsis(value: EllipsisBehavior) {\n if (!!value) {\n this._ellipsis = value;\n if (this._ellipsis == 'expand') {\n this.eltRef.nativeElement.className = 'expand';\n }\n }\n }\n\n private isExpanded = false;\n\n private initialStyle = Object.assign({}, this.eltRef.nativeElement.style);\n onClick(): void {\n if (this._ellipsis == 'hide') {\n return;\n }\n if (!this.isExpanded) {\n this.isExpanded = true;\n Object.assign(this.eltRef.nativeElement.style, {\n textOverflow: 'clip',\n overflow: 'auto',\n whiteSpace: 'normal',\n });\n } else {\n this.isExpanded = false;\n this.eltRef.nativeElement.style = this.initialStyle;\n }\n\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Input, Injector } from '@angular/core';\nimport {AbstractControl} from '@angular/forms';\n\nimport {LabelsService} from '../../services/labels.service';\n\n@Component({\n selector: 'ode-form-errors',\n templateUrl: './form-errors.component.html',\n styleUrls: ['./form-errors.component.scss']\n})\nexport class FormErrorsComponent extends OdeComponent {\n constructor(private labelsService: LabelsService, injector: Injector) {\n super(injector);\n }\n\n @Input('control')\n ref: AbstractControl;\n\n @Input('expectedPatternMsg')\n expectedPatternMsg: string;\n\n\n getErrorsArray() {\n const errorsArray = [];\n for (const prop in this.ref.errors) {\n errorsArray.push({ name: prop, value: this.ref.errors[prop]});\n }\n return errorsArray;\n }\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n}\n","import { Component, Input, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\n@Component({\n selector: 'ode-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss']\n})\nexport class FormFieldComponent extends OdeComponent {\n @Input() label: string;\n @Input() help: string;\n @Input() required: boolean;\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, ContentChild, TemplateRef, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-item-tree',\n templateUrl: './item-tree.component.html'\n})\nexport class ItemTreeComponent<T> extends OdeComponent implements OnInit {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n /**** Inputs ****/\n\n // Items\n @Input() items: Array<any> = [];\n\n // Property containing the list of child objects.\n @Input('children') childrenProperty = 'children';\n // Property to display in the list\n @Input('display') displayProperty = 'label';\n @Input() displayTemplate: TemplateRef<any>;\n // Filter pipe argument\n @Input() filter: (Object | string | Function) = '';\n // OrderBy pipe argument\n @Input() order: (Array<any> | string | Function) = [];\n // Reverse the order pipe\n @Input() reverse: any = false;\n // Flatten the tree on the specified properties\n @Input()\n set flatten(flattenProps: Array<string>) {\n if (!this.isFlattened() && flattenProps.length > 0) {\n this._selectedItem = this._lastSelectedItem;\n } else if (this.isFlattened && flattenProps.length < 1) {\n this.flagIfParent();\n }\n this._flattenProps = flattenProps;\n }\n get flatten(): Array<string> {\n return this._flattenProps;\n }\n private _flattenProps: Array<string> = [];\n\n // Disable the opener icon\n @Input() disableOpener = false;\n\n // Use checkboxes instead of selecting items\n @Input() checkboxMode = false;\n\n /**** Outputs ****/\n\n @Output() onSelect: EventEmitter<T> = new EventEmitter<T>();\n\n @Output() onCheck: EventEmitter<T> = new EventEmitter<T>();\n\n /**** View ****/\n\n @ViewChild(ItemTreeComponent, { static: false }) childItemTree: ItemTreeComponent<T>;\n\n /**** Internal Logic ****/\n\n @Input('lastSelected') _lastSelectedItem: T;\n private _selectedItem: T;\n @Input('depth') _depth = 0;\n private unfolded: T[] = [];\n\n ngOnInit() {\n super.ngOnInit();\n this.flagIfParent();\n }\n\n public selectItem(item: T) {\n this._selectedItem = item;\n if (this.childItemTree) {\n delete this.childItemTree._selectedItem;\n }\n const idx = this.unfolded.indexOf(item);\n if (!this.disableOpener && idx < 0) {\n this.unfolded.push(item);\n } else {\n this.unfolded.splice(idx, 1);\n }\n this.bubbleSelect(item);\n }\n\n public checkItem(item: T) {\n this.onCheck.emit(item);\n }\n\n public bubbleSelect(item: T) {\n this._lastSelectedItem = item;\n this.onSelect.emit(item);\n }\n\n public isSelected(item) {\n return (this.disableOpener ? this._selectedItem : this._lastSelectedItem) === item;\n }\n\n public toggleFold(event: Event, item: T) {\n event.stopPropagation();\n const idx = this.unfolded.indexOf(item);\n if (idx < 0) {\n this.unfolded.push(item);\n } else {\n this.unfolded.splice(idx, 1);\n }\n }\n\n public isFolded(item: T) {\n return this.disableOpener ? !this.isSelected(item) : this.unfolded.indexOf(item) < 0;\n }\n\n public display(item: T) {\n return this.displayProperty && item[this.displayProperty];\n }\n\n public getChildren(item) {\n return item[this.childrenProperty] || [];\n }\n\n public hasChildren(item) {\n return this.getChildren(item).length > 0;\n }\n\n isFlattened() {\n return this._flattenProps.length;\n }\n\n private flagIfParent() {\n if (!this._lastSelectedItem) {\n return;\n }\n\n const findSubItem = (item, target) => {\n if (item === target) {\n return true;\n }\n if (this.hasChildren(item)) {\n return this.getChildren(item).find(subItem => {\n return findSubItem(subItem, target);\n });\n }\n return false;\n };\n\n for (const i in this.items) {\n const item = this.items[i];\n\n if (item === this._lastSelectedItem ||\n findSubItem(item, this._lastSelectedItem)) {\n this._selectedItem = item;\n this.unfolded = [item];\n break;\n }\n }\n\n this.changeDetector.markForCheck();\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-lightbox',\n templateUrl: './lightbox.component.html',\n styleUrls: ['./lightbox.component.scss'],\n host: {\n '(click)': 'onClick($event)'\n }\n\n})\nexport class LightBoxComponent extends OdeComponent {\n\n constructor(\n injector: Injector,\n private renderer: Renderer2,\n private host: ElementRef) {\n super(injector);\n }\n\n @Input()\n set show(s: boolean) {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n if (s) {\n this._show = true;\n this.timer = window.setTimeout(() => {\n this.renderer.addClass(this.host.nativeElement, 'shown');\n this.timer = null;\n this.changeDetector.markForCheck();\n }, 100);\n } else {\n const wait = parseFloat(this.section &&\n window.getComputedStyle(this.section.nativeElement)['transition-duration']);\n this.renderer.removeClass(this.host.nativeElement, 'shown');\n this.timer = window.setTimeout(() => {\n this._show = false;\n this.timer = null;\n this.changeDetector.markForCheck();\n }, wait * 1000);\n }\n }\n\n get show(): boolean {\n return this._show;\n }\n\n _show = false;\n\n @Input() showCloseButton = true;\n\n @Output() onClose = new EventEmitter<any>();\n\n @ViewChild('section', { static: false }) section: ElementRef;\n @ViewChild('overlay', { static: false }) overlay: ElementRef;\n\n private timer: number;\n\n onClick(event: MouseEvent) {\n if (this.overlay.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n public close() {\n this.show = false;\n this.onClose.emit();\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-lightbox-confirm',\n templateUrl: './lightbox-confirm.component.html',\n styleUrls: ['./lightbox-confirm.component.scss']\n})\nexport class LightboxConfirmComponent extends OdeComponent {\n\n @Input() lightboxTitle: string;\n @Input() show: boolean;\n @Input() cancelText: string = \"cancel\";\n @Input() confirmText: string = \"confirm\";\n @Input() extraButtons: Array<String> = [];\n @Input() disableConfirm: boolean = false;\n\n @Output() onConfirm: EventEmitter<void> = new EventEmitter<void>();\n @Output() onCancel: EventEmitter<void> = new EventEmitter<void>();\n @Output() onExtra: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent extends OdeComponent {\n\n set storedElements(list) {\n this._storedElements = list;\n this.listChange.emit(list);\n }\n\n get storedElements() {\n return this._storedElements;\n }\n\n /* Store pipe */\n self = this;\n _storedElements = [];\n\n @Input() model;\n @Input() filters;\n @Input() inputFilter;\n @Input() sort;\n @Input() limit: number;\n @Input() searchPlaceholder = 'search';\n @Input() noResultsLabel = 'list.results.no.items';\n @Input() placeholder = 'list.placeholder';\n @Input() isSearchActive = true;\n @Input() isSearchButtonDisabled: boolean = false;\n @Input() searchInput: boolean = false;\n @Input() searchDelay: number;\n @Input() searchSubmit: () => void;\n\n @Output() inputChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() listChange: EventEmitter<any> = new EventEmitter();\n @Output() scrolledDown: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(TemplateRef, {static: false}) templateRef: TemplateRef<any>;\n @Input() isSelected = (arg?: any) => false;\n @Input() isDisabled = (arg?: any) => false;\n @Input() ngClass = (arg?: any) => ({});\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, Injector } from '@angular/core';\n\n/**\n * ListCheckableComponent is an alternative to the ListComponent to easily select rows by using a checkbox.\n * \n * \n```\n<ode-list-checkable\n [readOnly]=\"a_boolean\"\n [model]=\"an_array_of_items\"\n [filters]=\"\"\n [sort]=\"'+displayName'\"\n [limit]=\"a_number\"\n [noResultsLabel]=\"text_to_display_when_no_item_in_model\"\n [isChecked]=\"a_lambda_which_takes_1_item_argument_and_returns_a_boolean\"\n [areAllChecked]=\"a_lambda_with_no_argument_which_returns_a_boolean\"\n [ngClass]=\"a_lambda_which_takes_1_item_argument_and_returns_an_object\"\n (onCheck)=\"emits_an_$event_like_{item:any; checked:boolean}\"\n (listChange)=\"\"\n (scrolledDown)=\"\"\n >\n\n <ng-template let-item>\n <span>{{item.displayName|translate}}</span>\n </ng-template>\n \n</ode-list-checkable>\n`̀``\n */\n\ntype OnCheckData = {item:any, checked:boolean};\n\n@Component({\n selector: 'ode-list-checkable',\n templateUrl: './list-checkable.component.html',\n styleUrls: ['./list-checkable.component.scss']\n})\nexport class ListCheckableComponent extends OdeComponent {\n @Input() model = [];\n @Input() filters;\n @Input() sort;\n @Input() limit: number;\n @Input() noResultsLabel = 'list.results.no.items';\n @Input() readOnly: boolean = false;\n\n @Output() onCheck: EventEmitter<OnCheckData> = new EventEmitter();\n @Output() listChange: EventEmitter<any> = new EventEmitter();\n @Output() scrolledDown: EventEmitter<void> = new EventEmitter();\n\n @ContentChild(TemplateRef, {static: false}) templateRef: TemplateRef<any>;\n\n @Input() areAllChecked = () => false;\n @Input() isChecked = (arg?: any) => false;\n @Input() isDisabled = (arg?: any) => false;\n @Input() ngClass = (arg?: any) => ({});\n\n /* Store pipe */\n self = this;\n _storedElements = [];\n set storedElements(list) {\n this._storedElements = list;\n this.listChange.emit(list);\n }\n get storedElements() {\n return this._storedElements;\n }\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n public toggleAll( checkAll:boolean ) {\n this.model.forEach( item => {\n const isChecked = this.isChecked(item);\n if( !this.isDisabled(item)\n && ((isChecked && !checkAll) || (!isChecked && checkAll)) ) {\n this.onCheck.emit( {item:item, checked:checkAll} );\n }\n })\n }\n\n}\n","import { HostBinding } from '@angular/core';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\nexport type MessageType = 'info' | 'success' | 'warning' | 'danger';\n\nexport const icons = {\n info : 'fa-question-circle',\n warning : 'fa-exclamation-circle',\n danger : 'fa-ban',\n success : 'fa-check-circle'\n};\n\n@Component({\n selector: 'message-box',\n templateUrl: './message-box.component.html',\n styleUrls: ['./message-box.component.scss']\n})\nexport class MessageBoxComponent extends OdeComponent implements OnInit {\n constructor(\n private eltRef: ElementRef,\n injector: Injector) {\n super(injector);\n }\n\n @Input() type: MessageType;\n @Input() header: string;\n\n // type (string | [string,Object])[] enable to pass an array of String where String is i18n key\n // or an array of tuple<String, Object> where String is i18n key and Object is 118n params\n private _messages: [string, {}][];\n @Input() set messages(value: (string | [string, {}])[]) {\n this._messages = [];\n\n for (const message of value) {\n if (typeof message == 'string') {\n this._messages.push([message, {}]);\n }\n else if (typeof message == 'object') {\n this._messages.push(message);\n }\n }\n }\n get messages() {\n return this._messages;\n }\n\n private _position: 'absolute' | 'inherit' = 'inherit';\n @Input() set position(value: 'absolute' | 'inherit') {\n this._position = value;\n }\n\n /**\n * `gravity` set the relative position of the message box if its position is 'absolute'.\n * No effect when position is 'inherit'.\n */\n @Input() gravity: 'left' | 'right' = 'left';\n @HostBinding('class.gravity-left') get isGravityLeft() { return this.gravity === 'left' }\n @HostBinding('class.gravity-right') get isGravityRight() { return this.gravity === 'right' }\n\n hidden = false;\n @Output('onHide') hideEvent: EventEmitter<void>;\n canHide(): boolean {\n if (this._position == 'absolute') {\n return true;\n }\n return false;\n }\n hide(): void {\n this.hidden = true;\n this.hideEvent.emit();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.type == undefined) {\n throw new Error('MessageSticker : type\\' property must be set');\n }\n this.eltRef.nativeElement.style.position = this._position;\n if (this._position == 'absolute') {\n this.eltRef.nativeElement.style.width = '450px';\n // TODO: Maybe use a static counter to push on top the last open MessageBox ?\n this.eltRef.nativeElement.style.zIndex = '10';\n }\n\n }\n}\n\n","import {Type} from '@angular/core';\n\n/**\n* Usefull to desccribe (type and input data) a component\n* that will be dynamically instanciate\n*/\nexport class ComponentDescriptor {\n constructor(\n public type: Type<any>,\n public data: any\n ) {}\n\n assignData(data: any): ComponentDescriptor {\n Object.assign(this.data, data);\n return this;\n }\n}\n","import {ComponentFactoryResolver, ComponentRef, Directive, Input, ViewContainerRef, } from '@angular/core';\nimport {ComponentDescriptor} from './component-descriptor.model';\n\n/**\n* Dynamically load the component describe with the @input dynamic-component\n*/\n@Directive({\n selector: '[dynamic-component]',\n})\nexport class DynamicComponentDirective {\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n public componentRef: ComponentRef<any>;\n\n @Input('dynamic-component')\n componentDesc: ComponentDescriptor;\n\n load(data?: any): void {\n if (this.isLoaded()) { return; }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentDesc.type);\n this.viewContainerRef.clear();\n this.componentRef = this.viewContainerRef.createComponent(componentFactory);\n\n if (data != undefined) {\n this.componentDesc.assignData(data);\n }\n for (const attribute in this.componentDesc.data) {\n this.componentRef.instance[attribute] = this.componentDesc.data[attribute];\n if (attribute == 'hideEvent') {\n this.componentRef.instance.hideEvent.subscribe(e => {\n this.destroy();\n });\n }\n }\n }\n\n isLoaded(): boolean {\n if (this.componentRef == undefined) {\n return false;\n }\n else {\n return this.componentRef.instance != null;\n }\n }\n\n destroy(): void {\n if (this.componentRef.instance.hideEvent != undefined) {\n this.componentRef.instance.hideEvent.unsubscribe();\n }\n // FIXME: this.componentRef.destroy(); => This one usually should work, better to use but do nothing...\n delete this.componentRef;\n this.viewContainerRef.clear();\n }\n}\n\n\n\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, OnInit, ViewChild, Injector } from '@angular/core';\nimport {icons, MessageBoxComponent, MessageType} from '../message-box/message-box.component';\nimport { DynamicComponentDirective } from '../../directives/dynamic-component/dynamic-component.directive';\nimport { ComponentDescriptor } from '../../directives/dynamic-component/component-descriptor.model';\n\n@Component({\n selector: 'ode-message-sticker',\n templateUrl: './message-sticker.component.html',\n styleUrls: ['./message-sticker.component.scss']\n})\nexport class MessageStickerComponent extends OdeComponent implements OnInit {\n @Input() type: MessageType;\n @Input() header: string;\n @Input() messages: (string | [string, {}])[];\n @Input() gravity: 'left' | 'right' = 'left';\n @ViewChild(DynamicComponentDirective, { static: false }) dComponent: DynamicComponentDirective;\n\n readonly icons = icons;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.type === undefined) {\n throw new Error('MessageSticker : type\\' property must be set');\n }\n }\n\n newMessageBox(): ComponentDescriptor {\n return new ComponentDescriptor(MessageBoxComponent, {\n type: this.type,\n header: this.header,\n messages: this.messages,\n position: 'absolute',\n gravity: this.gravity,\n hideEvent: new EventEmitter<void>()\n });\n }\n\n loadMessageBox(): void {\n this.dComponent.load();\n }\n}\n","import { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {SelectOption} from '../multi-select/multi-select.component';\nimport { OdeComponent } from 'ngx-ode-core';\n\n@Component({\n selector: 'ode-mono-select',\n templateUrl: './mono-select.component.html',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MonoSelectComponent),\n multi: true\n }],\n host: {\n '(document:click)': 'onClickOnDocument($event)',\n '(click)': 'onClickOnHost()'\n }\n})\nexport class MonoSelectComponent<K> extends OdeComponent implements ControlValueAccessor {\n @Input()\n public placeholder = 'monoselect.placeholder.default';\n\n @Input()\n public options: Array<SelectOption<K>> = [];\n\n @Input()\n public trackByFn: (optionValue: K) => number | string;\n\n @Input()\n public translateOptions: boolean = true;\n\n public opened = false;\n\n public selectedOption: SelectOption<K> = null;\n\n @Input()\n public disabled = false;\n\n public optionClicked(option?: SelectOption<K>) {\n this.selectedOption = option;\n this.opened = false;\n this.onChange(this.selectedOption != null ? this.selectedOption.value : null);\n }\n\n constructor(private elementRef: ElementRef, injector: Injector) {\n super(injector);\n }\n\n public onClickOnDocument(event: MouseEvent) {\n if (this.opened &&\n !this.elementRef.nativeElement.querySelector('.lct-form-select').contains(event.target)) {\n this.opened = false;\n }\n return true;\n }\n\n public onClickOnHost() {\n if (!this.opened && !this.disabled) {\n this.opened = true;\n } else {\n this.opened = false;\n }\n }\n\n private onChange = (_: K) => {\n }\n\n private onTouched = () => {\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(obj: K): void {\n this.selectedOption = this.options.find(option => option.value === obj);\n this.onChange(this.selectedOption ? this.selectedOption.value : null);\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';\nimport {LabelsService} from '../../services/labels.service';\nimport { OdeComponent } from 'ngx-ode-core';\n\n/* If you need to use multi-combo in a form you should give a look to the MultiSelectComponent. */\n\n@Component({\n selector: 'ode-multi-combo',\n templateUrl: './multi-combo.component.html',\n styleUrls: ['./multi-combo.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class MultiComboComponent extends OdeComponent {\n\n constructor(\n private _eref: ElementRef,\n private labelsService: LabelsService,\n injector: Injector) {\n super(injector);\n }\n\n @Input()\n set comboModel(model) {\n this._comboModel = model;\n\n if (!model) {\n this.filteredModel = [];\n return;\n }\n\n for (let i = 0; i < this.filteredModel.length; i++) {\n const idx = model.indexOf(this.filteredModel[i]);\n if (idx < 0) {\n this.filteredModel.splice(idx, 1);\n i--;\n }\n }\n }\n @Input('outputModel') filteredModel = [];\n @Input() title = 'Select';\n @Input() display: string | Function;\n @Input() filter: string;\n @Input() orderBy: (string | Array<(string | Function)> | Function);\n @Input() reverse = false;\n @Input('max') maxSelected: number;\n @Input() disabled = false;\n\n @Output() onSelectItem = new EventEmitter<any>();\n @Output() onDeselectItem = new EventEmitter<any>();\n @Output('outputModelChange') filteredModelChange = new EventEmitter<any>();\n @Output() onOpen = new EventEmitter<any>();\n @Output() onClose = new EventEmitter<any>();\n\n self = this;\n _comboModel = [];\n\n filteredComboModel = [];\n\n search = {\n input: '',\n reset() {\n this.input = '';\n }\n };\n\n show = false;\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n\n toggleVisibility() {\n this.show = !this.show;\n if (this.show) {\n this.search.reset();\n this.onOpen.emit();\n } else {\n this.onClose.emit();\n }\n }\n\n isSelected(item) {\n return this.filteredModel && this.filteredModel.indexOf(item) >= 0;\n }\n\n isDisabled() {\n return this.filteredModel && this.maxSelected &&\n this.maxSelected <= this.filteredModel.length;\n }\n\n toggleItem(item) {\n const idx = this.filteredModel.indexOf(item);\n if (idx >= 0) {\n this.filteredModel.splice(idx, 1);\n this.onDeselectItem.emit(item);\n } else if (!this.maxSelected ||\n this.filteredModel.length < this.maxSelected) {\n this.filteredModel.push(item);\n this.onSelectItem.emit(item);\n }\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n selectAll() {\n this.filteredModel = [];\n for (let i = 0; i < this.filteredComboModel.length; i++) {\n this.filteredModel.push(this.filteredComboModel[i]);\n }\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n deselectAll() {\n this.filteredModel = [];\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n displayItem(item) {\n return item instanceof Object ?\n this.display && typeof this.display === 'string' ?\n item[this.display] :\n item.toString() :\n this.display && this.display instanceof Function ?\n this.display(item || '') :\n item;\n }\n\n onClick(event) {\n if (this.show && !this._eref.nativeElement.contains(event.target)) {\n this.toggleVisibility();\n }\n return true;\n }\n\n getFilter() {\n if (!this.filter) {\n return '';\n }\n let filter: string | {} = '';\n if (this._comboModel.length > 0 ) {\n if (typeof this._comboModel[0] === 'string') {\n filter = this.search.input;\n } else {\n filter = {};\n filter[this.filter] = this.search.input;\n }\n }\n return filter;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n/* MultiSelectComponent is a rewrite of MultiComboComponent to integrate it easily in angular forms */\n\nexport interface SelectOption<K> {\n label: string;\n value: K;\n}\n\n@Component({\n selector: 'ode-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: ['./multi-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n }],\n host: {\n '(document:click)': 'closeIfOpened($event)'\n }\n})\nexport class MultiSelectComponent<K> extends OdeComponent implements ControlValueAccessor {\n @Input()\n public label = '';\n\n @Input()\n public options: Array<SelectOption<K>> = [];\n\n @Input()\n public preview = false;\n\n @Input()\n public trackByFn: (optionValue: K) => number | string;\n\n public model: Array<K> = [];\n\n public isDisabled = false;\n\n public isOptionsVisible = false;\n\n constructor(injector: Injector, private elementRef: ElementRef) {\n super(injector);\n }\n\n public optionClicked(option: SelectOption<K>) {\n if (this.model) {\n const index = this.getIndexOfOptionInModel(option);\n if (index < 0) {\n this.model.push(option.value);\n } else {\n this.model.splice(index, 1);\n }\n } else {\n this.model = [option.value];\n }\n this.onChange(this.model);\n }\n\n public selectAll(): void {\n this.options.forEach(option => {\n if (!this.model.includes(option.value)) {\n this.model.push(option.value);\n }\n });\n this.onChange(this.model);\n }\n\n public deselectAll(): void {\n this.model = [];\n this.onChange(this.model);\n }\n\n public toggleOptionsVisibility(): void {\n this.isOptionsVisible = !this.isOptionsVisible;\n }\n\n public isSelected(option: SelectOption<K>): boolean {\n return this.model ? (this.getIndexOfOptionInModel(option) >= 0) : false;\n }\n\n public closeIfOpened(event: any) {\n if (this.isOptionsVisible\n && !this.elementRef.nativeElement.querySelector('.lct-multi-select__options-container').contains(event.target)\n && !this.elementRef.nativeElement.querySelector('.lct-multi-select__toggle').contains(event.target)) {\n this.isOptionsVisible = false;\n }\n return true;\n }\n\n private getIndexOfOptionInModel(option: SelectOption<K>): number {\n return this.model.map(this.trackByFn).indexOf(this.trackByFn(option.value));\n }\n\n private onChange = (_: Array<K>) => {\n }\n\n private onTouched = () => {\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n writeValue(obj: Array<K>): void {\n this.model = obj;\n this.onChange(this.model);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Input, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-panel-section',\n templateUrl: './panel-section.component.html',\n styleUrls: ['./panel-section.component.scss']\n})\nexport class PanelSectionComponent extends OdeComponent {\n @Input('section-title') sectionTitle: string;\n @Input() folded: boolean = null;\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-portal',\n templateUrl: './portal.component.html',\n styleUrls: ['./portal.component.scss']\n})\nexport class PortalComponent extends OdeComponent {\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-push-panel',\n templateUrl: './push-panel.component.html',\n styleUrls: ['./push-panel.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class PushPanelComponent extends OdeComponent {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n @Input() private set toggle(toggle: boolean) {\n this._opened = toggle;\n }\n _opened: boolean;\n\n @Input() private opener;\n\n @Output() private onClose = new EventEmitter<boolean>();\n\n @ViewChild('inside', { static: false }) private inside: ElementRef;\n\n public onClick(event) {\n const checkOpener = this.opener &&\n (this.opener.contains && this.opener.contains(event.target)) ||\n (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));\n\n if (this._opened &&\n !this.inside.nativeElement.contains(event.target) &&\n !checkOpener) {\n this._opened = false;\n this.onClose.emit();\n }\n return true;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild, Injector } from '@angular/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {debounceTime, distinctUntilChanged} from 'rxjs/operators';\n\n\n@Component({\n selector: 'ode-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss']\n})\nexport class SearchInputComponent extends OdeComponent implements OnInit, OnDestroy {\n\n constructor(injector: Injector,\n private _elRef: ElementRef,\n private _renderer: Renderer2) {\n super(injector);\n }\n\n /* Inputs / Outputs / View */\n @Input() isSearchActive: boolean = false;\n @Input() isSearchButtonDisabled: boolean = false;\n @Input() searchInput: boolean = false;\n @Input() searchSubmit: () => void;\n @Input() set delay(d: number) {\n this._delay = d;\n this.observable = this.$searchTerms.pipe(debounceTime(this.delay), distinctUntilChanged());\n if (this.observer) {\n this.observer.unsubscribe();\n }\n this.observer = this.observable.subscribe(val => {\n this.onChange.emit(val);\n });\n }\n get delay() {\n return this._delay;\n }\n private _delay = 200;\n\n @Output() onChange: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('searchBox', { static: false}) searchBox: ElementRef;\n\n /* Internal logic */\n\n private $searchTerms = new Subject<string>();\n private observable: Observable<string>;\n private observer: Subscription;\n\n private evalAttributes() {\n const element = this._elRef.nativeElement;\n if (element && this.searchBox) {\n for (let i = 0; i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n this._renderer.setAttribute(this.searchBox.nativeElement, attr.name, attr.value);\n }\n }\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (!this.observable) {\n this.observable = this.$searchTerms\n .pipe(\n debounceTime(this.delay),\n distinctUntilChanged()\n );\n this.observer = this.observable.subscribe(val => {\n this.onChange.emit(val);\n });\n }\n setTimeout(() => this.evalAttributes(), 20);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.observer.unsubscribe();\n }\n\n search(str: string) {\n this.$searchTerms.next(str);\n }\n\n handleSubmit() {\n this.searchSubmit();\n this.searchBox.nativeElement.value = '';\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-side-layout',\n templateUrl: './side-layout.component.html',\n styleUrls: ['./side-layout.component.scss']\n})\nexport class SideLayoutComponent extends OdeComponent {\n @Input() showCompanion = false;\n @Output('closeCompanion') close: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class SidePanelComponent extends OdeComponent {\n opened: boolean;\n\n constructor(injector: Injector, private elementRef: ElementRef) {\n super(injector);\n }\n\n @Input() set toggle(toggle: boolean) {\n this.opened = toggle;\n }\n\n @Input() opener;\n @Output() onClose = new EventEmitter<boolean>();\n\n onClick(event) {\n const checkOpener = this.opener &&\n (this.opener.contains && this.opener.contains(event.target)) ||\n (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));\n\n if (this.opened &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !checkOpener) {\n this.opened = false;\n this.onClose.emit();\n }\n return true;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Injector } from '@angular/core';\nimport { SpinnerService } from '../../services/spinner.service';\n\n@Component({\n selector: 'ode-spinner-cube',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './spinner-cube.component.html',\n styleUrls: ['./spinner-cube.component.scss']\n})\nexport class SpinnerCubeComponent extends OdeComponent implements OnInit {\n\n @Input('waitingFor')\n set loadingProp(prop: string) {\n this._loadingProp = prop;\n }\n get loadingProp() { return this._loadingProp; }\n private _loadingProp: string;\n\n\n constructor(\n injector: Injector,\n public spinner: SpinnerService) {\n super(injector);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions.add(this.spinner.trigger.subscribe(() => {\n this.changeDetector.markForCheck();\n }));\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, Injector } from '@angular/core';\nimport {BundlesService} from 'ngx-ode-sijil';\n\n\n@Component({\n selector: 'ode-pager',\n templateUrl: './pager.component.html',\n styles: [`\n i {cursor: pointer; padding: 0 2px;}\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PagerComponent extends OdeComponent implements OnInit {\n constructor(\n injector: Injector,\n private bundles: BundlesService\n ) {\n super(injector);\n }\n\n @Input() limit: number;\n\n @Input() offset: number;\n @Output() offsetChange = new EventEmitter<number>();\n\n @Input() total: number;\n\n translate = (...args) => (this.bundles.translate as any)(...args);\n\n ngOnInit() {}\n\n previousPage(): void {\n if (this.offset - this.limit >= 0) {\n this.offset = this.offset - this.limit;\n } else {\n this.offset = 0;\n }\n this.offsetChange.emit(this.offset);\n }\n\n nextPage(): void {\n if (this.offset + this.limit <= this.total) {\n this.offset = this.offset + this.limit;\n }\n this.offsetChange.emit(this.offset);\n }\n\n offsetLimit(): number {\n return this.offset + this.limit < this.total ?\n this.offset + this.limit : this.total;\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, Input, Renderer2, Injector } from '@angular/core';\n\n@Component({\n selector: '[tooltip]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./tooltip.component.scss'],\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class TooltipComponent extends OdeComponent {\n\n constructor(injector: Injector,\n private ref: ElementRef,\n private renderer: Renderer2) {\n super(injector);\n }\n\n @Input('tooltip') tooltipContents: string;\n @Input() position: 'top' | 'left' | 'right' | 'bottom' = 'bottom';\n @Input() offset = 5;\n\n private tooltipElt: HTMLElement;\n\n onMouseEnter(): void {\n const r = this.renderer;\n\n if (!this.tooltipElt) {\n this.tooltipElt = this.renderer.createElement('div');\n let tooltipText = this.renderer.createText(this.tooltipContents);\n this.renderer.appendChild(this.tooltipElt, tooltipText);\n this.renderer.addClass(this.tooltipElt, \"tooltip\");\n this.renderer.appendChild(document.getElementsByTagName('body')[0], this.tooltipElt);\n }\n const tip = this.tooltipElt;\n const pos = this.getPosition(this.ref.nativeElement, tip, this.position);\n for (const prop in pos) {\n this.renderer.setStyle(tip, prop, pos[prop] + 'px');\n }\n this.renderer.addClass(tip, 'shown');\n }\n\n onMouseLeave(): void {\n const wait = this.tooltipElt &&\n parseFloat(window.getComputedStyle(this.tooltipElt)['transition-duration']);\n this.renderer.removeClass(this.tooltipElt, 'shown');\n setTimeout(this.onTransitionEnd, wait * 1000);\n }\n\n onTransitionEnd = () => {\n if (this.tooltipElt && !this.tooltipElt.classList.contains('shown')) {\n this.tooltipElt.parentNode.removeChild(this.tooltipElt);\n this.tooltipElt = null;\n }\n }\n\n private getPosition(elt, tip, pos) {\n const rect = {\n top: elt.getBoundingClientRect().top + window.scrollY,\n left: elt.getBoundingClientRect().left + window.scrollX\n };\n let left, top;\n\n switch (pos) {\n\n case 'top':\n top = rect.top - tip.offsetHeight - this.offset;\n left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;\n break;\n case 'left':\n top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;\n left = rect.left - tip.offsetWidth - this.offset;\n break;\n case 'right':\n top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;\n left = rect.left + elt.offsetWidth + this.offset;\n break;\n case 'bottom':\n default:\n top = rect.top + elt.offsetHeight + this.offset;\n left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;\n }\n\n if (left < 0 ) {\n left = rect.left + elt.offsetWidth + this.offset;\n }\n if (top < 0) {\n top = rect.top + elt.offsetHeight + this.offset;\n }\n if (left + tip.offsetWidth >= window.pageXOffset + window.innerWidth) {\n left = rect.left - tip.offsetWidth - this.offset;\n }\n if (top - tip.offsetHeight >= window.pageYOffset + window.innerHeight) {\n top = rect.top - tip.offsetHeight - this.offset;\n }\n\n return {\n top: top < 5 ? 5 : top,\n left: left < 5 ? 5 : left\n };\n }\n\n ngOnDestroy(): void {\n if (this.tooltipElt) {\n this.tooltipElt.parentNode.removeChild(this.tooltipElt);\n this.tooltipElt = null;\n }\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, Injector } from '@angular/core';\nimport {InputFileService} from '../../services/inputFile.service';\n\n@Component({\n selector: 'ode-upload-files',\n templateUrl: './upload-files.component.html',\n styleUrls: ['./upload-files.component.scss']\n})\nexport class UploadFilesComponent extends OdeComponent implements OnInit {\n @Input()\n fileSrc: string;\n @Input()\n allowedExtensions: Array<string>;\n @Input()\n maxFilesNumber: number;\n @Input()\n disabled: boolean;\n\n @Output()\n upload: EventEmitter<File[]> = new EventEmitter();\n @Output()\n invalidUpload: EventEmitter<string> = new EventEmitter();\n\n @ViewChild('inputFileRef', { static: false })\n inputFileRef: ElementRef;\n\n public multiple: boolean;\n\n constructor(injector: Injector,\n public inputFileService: InputFileService) {\n super(injector);\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n this.multiple = this.maxFilesNumber > 1;\n }\n\n public onChange($event): void {\n if ($event.target) {\n this.inputFileService\n .validateFiles($event.target.files, this.maxFilesNumber, this.allowedExtensions)\n .subscribe(files => this.upload.emit(files)\n , error => this.invalidUpload.emit(error));\n }\n }\n\n public onClickDropzoneInput($event: Event): void {\n $event.stopPropagation();\n const inputFileElement = this.inputFileRef.nativeElement;\n inputFileElement.click();\n }\n\n public onDragAndDrop($event: File[]): void {\n this.upload.emit($event);\n }\n\n public onInvalidDragAndDrop($event: string): void {\n this.invalidUpload.emit($event);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n\nexport interface Option {\n value: string;\n label: string;\n}\n\n\n@Component({\n selector: 'ode-simple-select',\n templateUrl: './simple-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleSelectComponent extends OdeComponent {\n @Input() selected: string;\n @Input() model: {[key: string]: string};\n @Input() options: Option[];\n @Input() ignoreOption: Option[];\n @Output() selectChange: EventEmitter<string> = new EventEmitter<string>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n\n","import { OdeComponent } from 'ngx-ode-core';\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Injector\n} from '@angular/core';\n\n@Component({\n selector : 'ode-step',\n template: `<ng-content></ng-content>`,\n styles: [`\n :host {\n display: none;\n overflow: auto;\n padding : 1em;\n }\n :host.active {\n display: block;\n }\n `]\n})\nexport class StepComponent {\n @Input() name: string;\n @Input() isActived: boolean;\n hasError = false;\n isFinished = false;\n}\n\n@Component({\n selector: 'ode-wizard',\n template: `\n <div class=\"wizard\">\n <nav class=\"wizard-menu\">\n <h2 class=\"wizard-menu__title\"><s5l>wizard.steps</s5l></h2>\n <ul>\n <li *ngFor=\"let step of steps\"\n [class.active]=\"step.isActived\"\n [class.finish]=\"step.isFinished\">\n {{step.name}}\n </li>\n </ul>\n </nav>\n <section class=\"wizard-content\">\n <ng-content select=\"ode-step\"></ng-content>\n <nav class=\"wizard-content-nav\" *ngIf=\"activeStep < steps.length - 1\">\n <button class=\"wizard-content-nav__button cancel\"\n (click)=\"cancel.emit()\"\n [title]=\"'cancel' | translate\">\n {{ 'cancel' | translate }}\n </button>\n <button class=\"wizard-content-nav__button previous\"\n (click)=\"onPreviousStep()\"\n *ngIf=\"activeStep > 0\"\n [title]=\"'previous' | translate\">\n {{ 'wizard.previous' | translate }}\n </button>\n <button class=\"wizard-content-nav__button wizard-content-nav__button--next\"\n (click)=\"onNextStep()\"\n [disabled]=\"!canDoNext\"\n [title]=\"'next' | translate\">\n {{ 'wizard.next' | translate }}\n </button>\n </nav>\n </section>\n </div>\n `,\n styles: [`\n .wizard {\n display: flex;\n }\n .wizard-menu {\n background: #5b6472;\n flex: 0 0 240px;\n }\n .wizard-menu ul {\n padding: 10px 30px;\n }\n .wizard-menu ul li {\n color: #eaedf2;\n list-style-type: none;\n padding: 5px 0;\n }\n .wizard-menu ul li.active,\n .wizard-menu ul li.finish {\n font-weight: bold;\n color: white;\n }\n .wizard-menu ul li.finish {\n color: green;\n }\n .wizard-menu__title {\n font-weight: bold;\n font-size: 1.2em;\n color: white;\n padding: 25px 0 0 10px;\n }\n .wizard-content {\n background: #fff;\n flex: auto;\n }\n .wizard-content-nav {\n text-align : right;\n }\n .wizard-content-nav__button {\n margin: 10px 0;\n }\n .wizard-content-nav__button--next {\n margin-right: 16px;\n }\n `]\n})\nexport class WizardComponent extends OdeComponent implements AfterContentInit {\n @Output() cancel: EventEmitter<{}> = new EventEmitter();\n @Output() previousStep: EventEmitter<number> = new EventEmitter();\n @Output() nextStep: EventEmitter<number> = new EventEmitter();\n\n public canDoNext = true;\n\n @ContentChildren(StepComponent) steps: QueryList<StepComponent>;\n activeStep = 0;\n\n constructor(injector: Injector) {\n super(injector);\n }\n doCancel() {\n this.activeStep = 0;\n this.steps.forEach((step, index) => {\n index === 0 ? step.isActived = true : step.isActived = false;\n });\n this.canDoNext = true;\n }\n\n onPreviousStep() {\n this.previousStep.emit(this.activeStep);\n }\n\n doPreviousStep() {\n if (this.activeStep > 0) {\n this.steps.toArray()[this.activeStep].isActived = false;\n this.steps.toArray()[this.activeStep - 1].isActived = true;\n this.activeStep--;\n this.canDoNext = true;\n }\n }\n\n onNextStep() {\n this.nextStep.emit(this.activeStep);\n }\n doNextStep(error?: boolean) {\n if (this.activeStep < this.steps.length - 1) {\n this.canDoNext = !error;\n this.steps.toArray()[this.activeStep].isActived = false;\n this.steps.toArray()[this.activeStep + 1].isActived = true;\n this.activeStep++;\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n if (this.steps.length === 0) {\n throw new Error('<wizard> component musts nest at least 1 <step> compoent');\n }\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\n\n@Directive({ selector: '[anchor]' })\nexport class AnchorDirective {\n\n @Input('anchor') anchor: string;\n @Input('offset') offset = 50;\n\n @HostListener('click')\n onClick() {\n const element = document.getElementById(this.anchor);\n window.scrollBy(0, element.getBoundingClientRect().top - this.offset);\n }\n\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {InputFileService} from '../services/inputFile.service';\n\n@Directive({\n selector: '[dragAndDropFiles]'\n})\nexport class DragAndDropFilesDirective {\n @Input()\n allowedExtensions: Array<string> = [];\n @Input()\n maxFilesNumber = 1;\n @Input()\n disabled: boolean;\n\n @Output()\n dragAndDrop: EventEmitter<File[]> = new EventEmitter();\n @Output()\n invalidDragAndDrop: EventEmitter<string> = new EventEmitter();\n\n @HostBinding('style.background')\n public backgroundColor = '#fafafa';\n @HostBinding('style.border-color')\n public borderColor = '#ddd';\n\n constructor(private inputFileService: InputFileService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n if (!this.disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this.highlightColors();\n }\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n if (!this.disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this.resetColors();\n }\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event) {\n if (!this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.dataTransfer) {\n this.inputFileService\n .validateFiles(event.dataTransfer.files, this.maxFilesNumber, this.allowedExtensions)\n .subscribe(files => this.dragAndDrop.emit(files)\n , error => this.invalidDragAndDrop.emit(error));\n }\n\n this.resetColors();\n }\n }\n\n private resetColors() {\n this.backgroundColor = '#fafafa';\n this.borderColor = '#ddd';\n }\n\n private highlightColors() {\n this.backgroundColor = '#ffd1b6';\n this.borderColor = '#ff8352';\n }\n}\n","import {Compiler, Component, Directive, ElementRef, Input, NgModule, Injector, Type, ViewContainerRef} from '@angular/core';\n\nimport {CommonModule} from '@angular/common';\nimport {DynamicModuleImportsService} from '../services/dynamicModuleImports.service';\n\n@Directive({\n selector: 'dynamic-template'\n})\nexport class DynamicTemplateDirective {\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private compiler: Compiler,\n private dynamicModuleImports: DynamicModuleImportsService\n ) {}\n\n @Input('template')\n set templateContents(html: string) {\n if (html) {\n this._html = html;\n const cmpType = this._createDynamicComponent();\n const moduleType = this._createDynamicModule(cmpType);\n const injector: Injector = Injector.create({\n providers: [],\n parent: this.viewContainer.parentInjector,\n });\n\n this.compiler.compileModuleAndAllComponentsAsync<any>(moduleType)\n .then(factory => {\n let cmpFactory: any;\n for (let i = factory.componentFactories.length - 1; i >= 0; i--) {\n if (factory.componentFactories[i].selector === this._selector) {\n cmpFactory = factory.componentFactories[i];\n break;\n }\n }\n return cmpFactory;\n })\n .then(cmpFactory => {\n if (cmpFactory && this.viewContainer) {\n this.viewContainer.clear();\n this.viewContainer.createComponent(cmpFactory, 0, injector);\n }\n });\n } else {\n this._html = '';\n this.viewContainer.clear();\n }\n }\n\n private _html = '';\n private _selector = 'dynamic-view';\n\n @Input() private context: Object;\n\n private _createDynamicComponent(): Type<any> {\n const metadata = {\n selector: this._selector,\n template: this._html,\n inputs: ['template']\n };\n class _cmp_ {}\n _cmp_.prototype = this.context;\n return Component(metadata)(_cmp_);\n }\n\n private _createDynamicModule(componentType: Type<any>) {\n class _mod_ {}\n return NgModule({\n imports: [\n CommonModule,\n ...this.dynamicModuleImports.imports ],\n declarations: [componentType],\n providers: []\n })(_mod_);\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n/**\n*\n* see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n*/\n@Directive({ selector: '[object-url]' })\nexport class ObjectURLDirective {\n\n constructor(\n private elementRef: ElementRef,\n ) {}\n\n private objectURL;\n\n // TODO provide more specific method like createJSON, createCSV, createPDF\n // to free directive consumer from using Blog API\n create(blob: Blob, filename: string): void {\n if (this.objectURL !== null) {\n window.URL.revokeObjectURL(this.objectURL);\n }\n this.objectURL = window.URL.createObjectURL(blob);\n this.elementRef.nativeElement.href = this.objectURL;\n this.elementRef.nativeElement.download = filename;\n }\n\n}\n","export interface Unit {\n /** i18n key of unit translation. */\n label: string;\n value: number;\n}\n\nexport const UNITS: Array<Unit> = [\n { label: \"quota.byte\", value: 1 },\n { label: \"quota.kilobyte\", value: 1024 },\n { label: \"quota.megabyte\", value: Math.pow(1024, 2) },\n { label: \"quota.gigabyte\", value: Math.pow(1024, 3) }\n];\n\nexport function toDecimal (value: number, decimal: number): number {\n return Math.round(value * Math.pow(10, decimal)) / Math.pow(10, decimal);\n}\n\nexport function getUnit(bytes: number): Unit {\n let unit = 0;\n let finalValue = bytes;\n while(finalValue >= 1024 && unit < 3) {\n finalValue = finalValue / 1024;\n unit++;\n }\n return UNITS[unit];\n}","import {Pipe, PipeTransform} from '@angular/core';\nimport { toDecimal } from '../utils/math';\n\n@Pipe({\n name: 'bytes'\n})\nexport class BytesPipe implements PipeTransform {\n\n transform(value: number, unit: number, decimal?: number): number {\n if (decimal) {\n return toDecimal((value / unit), decimal);\n }\n return Math.round(value / unit);\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'filter', pure: false})\nexport class FilterPipe implements PipeTransform {\n\n private stringFullCompare(str1: string, str2: string): boolean {\n return str1.match(new RegExp(str2, 'i')) !== null;\n }\n\n private _filterString(value, filter, arrayRef: Array<String>) {\n if (typeof value === 'string' &&\n typeof filter === 'string' &&\n filter.trim() &&\n this.stringFullCompare(value, filter)) {\n arrayRef.push(value);\n return true;\n }\n return false;\n }\n\n private _filterObject(object, filter, objectRef, arrayRef: Array<Object>) {\n if (typeof object == 'object' && typeof filter === 'object') {\n let check = true;\n for (const property in filter) {\n if (!check) {\n break;\n }\n\n const filterValue = filter[property];\n const propsToCheck = property.split(\",\");\n\n const objectValues = new Array(propsToCheck.length);\n for(let i = propsToCheck.length; i-- > 0;)\n objectValues[i] = object[propsToCheck[i].trim()];\n\n if (filterValue instanceof Function) {\n check = filterValue.apply(null, objectValues);\n } else if (filterValue instanceof Object) {\n if(propsToCheck.length > 1)\n throw \"Multi-argument object filtering is not yet supported\";\n return this._filterObject(objectValues[0], filterValue, objectRef, arrayRef);\n }\n else\n {\n for(let i = objectValues.length; i-- > 0;)\n {\n if(!check)\n break;\n\n const objectValue = objectValues[i];\n\n if (typeof objectValue === 'undefined' && typeof filterValue === 'string' && filterValue.length > 0 ) {\n check = false;\n } else if (objectValue instanceof Array && typeof filterValue === 'string') {\n check = this.stringFullCompare(objectValue.join(), filterValue);\n } else if (typeof filterValue === 'string' && typeof objectValue === 'string') {\n check = this.stringFullCompare(objectValue, filterValue);\n } else if (filterValue instanceof Array && typeof objectValue === 'string') {\n for (let i = 0; i < filterValue.length; i++) {\n check = this.stringFullCompare(objectValue, filterValue[i]);\n if (check) { break; }\n }\n }\n }\n }\n }\n if (check) {\n arrayRef.push(objectRef);\n }\n return true;\n }\n return false;\n }\n\n private _filterFunction(value, filter, arrayRef: Array<any>) {\n if (typeof filter === 'function') {\n if (filter(value)) {\n arrayRef.push(value);\n }\n return true;\n }\n return false;\n }\n\n transform(array: Array<string | Object>, by: (string | Object | Function)) {\n if (!array || !by) {\n return array;\n }\n\n const filteredArray = [];\n\n array.forEach(item => {\n this._filterString(item, by, filteredArray) ||\n this._filterObject(item, by, item, filteredArray) ||\n this._filterFunction(item, by, filteredArray);\n });\n\n return filteredArray;\n }\n\n}\n","import {Pipe} from '@angular/core';\n\n@Pipe({ name: 'flattenObjArray' })\nexport class FlattenObjectArrayPipe {\n\n transform(array: Array<Object>, onlyProps?: Array<String>) {\n if (!array) {\n return [];\n }\n if (onlyProps.length < 1) {\n return array;\n }\n\n let flattenedArray = Array.from(array);\n\n const flatten = (array: Array<Object>) => {\n array.forEach(item => {\n for (const prop in item) {\n const val = item[prop];\n if (val instanceof Array &&\n !onlyProps ||\n onlyProps.indexOf(prop) > -1) {\n flattenedArray = [...flattenedArray, ...val];\n flatten(val);\n }\n }\n });\n };\n flatten(array);\n\n return Array.from(new Set<Object>(flattenedArray));\n\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'keys'})\nexport class KeysPipe implements PipeTransform {\n transform(obj, args?: string[]): any {\n const keys = [];\n for (const key in obj) {\n if (key) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'limit',\n pure: false\n})\nexport class LimitPipe implements PipeTransform {\n\n transform(array: Array<any>, limit: number, offset: number = 0) {\n return array.slice(offset, limit);\n }\n\n}\n","import {DatePipe} from '@angular/common';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {BundlesService} from 'ngx-ode-sijil';\n\n@Pipe({\n name: 'localizedDate',\n pure: false\n})\nexport class LocalizedDatePipe implements PipeTransform {\n\n constructor(private bundlesService: BundlesService) {\n }\n\n transform(value: any, pattern: string = 'mediumDate'): any {\n const datePipe: DatePipe = new DatePipe(this.bundlesService.currentLanguage);\n return datePipe.transform(value, pattern);\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({ name: 'orderBy' })\nexport class OrderPipe implements PipeTransform {\n\n transform(array, sortPredicate, reverseOrder?, compareFn?) {\n if (array == null || !sortPredicate) { return array; }\n\n /*** ***/\n const isString = (value) => {\n return typeof value === 'string';\n };\n\n const isFunction = (value) => {\n return typeof value === 'function';\n };\n\n const isArray = (value) => {\n return value && value instanceof Array;\n };\n\n const isObject = (value) => {\n return typeof value === 'object';\n };\n\n const isPrimitive = (value) => {\n switch (typeof value) {\n case 'number': /* falls through */\n case 'boolean': /* falls through */\n case 'string':\n return true;\n default:\n return false;\n }\n };\n\n const hasCustomToString = (value) => {\n return value &&\n typeof value.toString === 'function' &&\n value.toString !== Object.prototype.toString;\n };\n\n const getComparisonObject = (value, index) => {\n // NOTE: We are adding an extra `tieBreaker` value based on the element's index.\n // This will be used to keep the sort stable when none of the input predicates can\n // distinguish between two elements.\n return {\n value,\n tieBreaker: { value: index, type: 'number', index },\n predicateValues: predicates.map(function(predicate) {\n return getPredicateValue(predicate.get(value), index);\n })\n };\n };\n\n const doComparison = (v1, v2) => {\n for (let i = 0, ii = predicates.length; i < ii; i++) {\n const result = compare(v1.predicateValues[i], v2.predicateValues[i]);\n if (result) {\n return result * predicates[i].descending * descending;\n }\n }\n\n return compare(v1.tieBreaker, v2.tieBreaker) * descending;\n };\n\n const processPredicates = (sortPredicates) => {\n return sortPredicates.map(function(predicate) {\n let descending = 1, get = (value) => value;\n\n if (isFunction(predicate)) {\n get = predicate;\n } else if (isString(predicate)) {\n if ((predicate.charAt(0) === '+' || predicate.charAt(0) === '-')) {\n descending = predicate.charAt(0) === '-' ? -1 : 1;\n predicate = predicate.substring(1);\n }\n if (predicate !== '') {\n get = (value) => value[predicate];\n }\n }\n return { get, descending };\n });\n };\n\n const objectValue = (value) => {\n // If `valueOf` is a valid function use that\n if (isFunction(value.valueOf)) {\n value = value.valueOf();\n if (isPrimitive(value)) { return value; }\n }\n // If `toString` is a valid function and not the one from `Object.prototype` use that\n if (hasCustomToString(value)) {\n value = value.toString();\n if (isPrimitive(value)) { return value; }\n }\n\n return value;\n };\n\n const getPredicateValue = (value, index) => {\n let type = typeof value;\n if (value === null) {\n type = 'string';\n value = 'null';\n } else if (type === 'object') {\n value = objectValue(value);\n }\n return { value, type, index };\n };\n\n const defaultCompare = (v1, v2) => {\n let result = 0;\n const type1 = v1.type;\n const type2 = v2.type;\n\n if (type1 === type2) {\n let value1 = v1.value;\n let value2 = v2.value;\n\n if (type1 === 'string') {\n // Compare strings case-insensitively\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n\n result = value1.localeCompare(value2);\n } else if (type1 === 'object') {\n // For basic objects, use the position of the object\n // in the collection instead of the value\n if (isObject(value1)) { value1 = v1.index; }\n if (isObject(value2)) { value2 = v2.index; }\n\n if (value1 !== value2) {\n result = value1 < value2 ? -1 : 1;\n }\n }\n } else {\n result = type1 < type2 ? -1 : 1;\n }\n\n return result;\n };\n /*** ***/\n\n if (!isArray(sortPredicate)) {\n sortPredicate = [sortPredicate];\n }\n if (sortPredicate.length === 0) {\n sortPredicate = ['+'];\n }\n\n const predicates = processPredicates(sortPredicate);\n\n const descending = reverseOrder ? -1 : 1;\n\n // Define the `compare()` function. Use a default comparator if none is specified.\n const compare = isFunction(compareFn) ? compareFn : defaultCompare;\n\n // The next three lines are a version of a Swartzian Transform idiom from Perl\n // (sometimes called the Decorate-Sort-Undecorate idiom)\n // See https://en.wikipedia.org/wiki/Schwartzian_transform\n const compareValues = Array.prototype.map.call(array, getComparisonObject);\n compareValues.sort(doComparison);\n array = compareValues.map(function(item) { return item.value; });\n\n return array;\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'store'\n})\nexport class StorePipe implements PipeTransform {\n\n transform(value, context, prop = '_storedRef') {\n context[prop] = value;\n return value;\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'length',\n pure: false\n})\nexport class LengthPipe implements PipeTransform {\n\n transform(source: Array<any> | string ) {\n return source.length;\n }\n\n}\n","export function trim(text: string): string {\n if (text && text.length > 0) {\n return text.trim();\n }\n return text;\n}\n\nexport function standardise(str: string): string{\n return removeAccents(str != null ? str : '').toLowerCase().replace('\\\\s+', ' ');\n}\n\nexport const removeAccents = (str: string) => str.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n","import { DebugElement } from '@angular/core';\n\nexport function getText(el: DebugElement): string {\n return el.nativeElement.textContent.trim();\n}\n\nexport function clickOn(el: DebugElement): void {\n return el.triggerEventHandler('click', null);\n}\n","import { Component, OnInit, Input, Output, EventEmitter, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\n/**\n * DropdownComponent is an alternative to the MonoSelectComponent.\n * Accept everything inside <ng-content> but should work with <ode-list> component\n * \n * Simple Dropdown Component without search:\n * [isSearchActive] can be set to false to disable search input in <ode-list>\n```\n<ode-dropdown\n [name]=\"option_name\"\n [isDropdownOpened]=\"a_boolean\"\n (onDropdown)=\"toggle_func\"\n >\n <ode-list\n [model]=\"model\"\n [filters]=\"filters\"\n (onSelect)=\"func_to_select_elem($event)\"\n (inputChange)=\"a_string_for_input_value = $event\"\n noResultsLabel=\"text_to_display\"\n searchPlaceholder=\"default_placeholder_text\"\n >\n <ng-template let-item>\n <div>{{ item.name }}</div>\n </ng-template>\n </ode-list>\n </ode-dropdown>\n`̀``\n */\n\n@Component({\n selector: 'ode-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent extends OdeComponent implements OnInit {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n @Input() name: string = '';\n @Input() isDropdownOpened: boolean = false;\n\n @Output() onDropdown: EventEmitter<void> = new EventEmitter<void>();\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n}\n","import { Component, EventEmitter, Injector, Input, Output } from \"@angular/core\";\nimport { OdeComponent } from \"ngx-ode-core\";\n\n/**\n * Search Toolbar component.\n * Used within List component, Search Toolbar will display following information:\n * - Label of the search filter section (example: 'Search by')\n * - List of search type filters (example: 'Name', 'Email' , ...)\n * - Number of items returned by the search\n *\n```\n<ode-search-toolbar\n [label]=\"'user.searchType.label'\"\n [searchTypes]=\"searchTypes\"\n [nbItem]=\"nbUser || 0\"\n [nbItemLabel]=\"'list.results.users'\"\n (selectSearchType)=\"handleSelectSearchType($event)\"\n>\n</ode-search-toolbar>\n```\n */\n\n@Component({\n selector: 'ode-search-toolbar',\n templateUrl: './search-toolbar.component.html',\n styleUrls: ['./search-toolbar.component.scss']\n})\nexport class SearchToolbarComponent extends OdeComponent {\n\n @Input() label: string;\n @Input() searchTypes: Array<{label: string, value: string}>;\n @Input() nbItem: number = 0;\n @Input() nbItemLabel: string;\n @Output() selectSearchType: EventEmitter<string> = new EventEmitter();\n\n selectedSearchTypeValue: string;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.searchTypes && this.searchTypes.length > 0) {\n this.selectedSearchTypeValue = this.searchTypes[0].value;\n }\n }\n\n public handleSearchTypeClick(searchTypeValue: string): void {\n this.selectedSearchTypeValue = searchTypeValue;\n this.selectSearchType.emit(searchTypeValue);\n }\n}\n","import { NgModule, ModuleWithProviders, Provider } from '@angular/core';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { InputFileService } from './services/inputFile.service';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgxOdeSijilModule } from 'ngx-ode-sijil';\nimport { DatepickerComponent } from './components/datepicker/datepicker.component';\nimport { FormErrorsComponent } from './components/form-errors/form-errors.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { ItemTreeComponent } from './components/item-tree/item-tree.component';\nimport { LightBoxComponent } from './components/lightbox/lightbox.component';\nimport { LightboxConfirmComponent } from './components/lightbox-confirm/lightbox-confirm.component';\nimport { ListComponent } from './components/list/list.component';\nimport { ListCheckableComponent } from './components/list-checkable/list-checkable.component';\nimport { MonoSelectComponent } from './components/mono-select/mono-select.component';\nimport { MultiSelectComponent } from './components/multi-select/multi-select.component';\nimport { MultiComboComponent } from './components/multi-combo/multi-combo.component';\nimport { PanelSectionComponent } from './components/panel-section/panel-section.component';\nimport { PortalComponent } from './components/portal/portal.component';\nimport { PushPanelComponent } from './components/push-panel/push-panel.component';\nimport { SearchInputComponent } from './components/search-input/search-input.component';\nimport { SideLayoutComponent } from './components/side-layout/side-layout.component';\nimport { SidePanelComponent } from './components/side-panel/side-panel.component';\nimport { StepComponent, WizardComponent } from './components/wizard/wizard.component';\nimport { TooltipComponent } from './components/tooltip/tooltip.component';\nimport { SimpleSelectComponent } from './components/value-editable/simple-select.component';\nimport { MessageStickerComponent } from './components/message-sticker/message-sticker.component';\nimport { MessageBoxComponent } from './components/message-box/message-box.component';\nimport { UploadFilesComponent } from './components/upload-files/upload-files.component';\nimport { AnchorDirective } from './directives/anchor.directive';\nimport { DynamicTemplateDirective } from './directives/dynamictemplate.directive';\nimport { DynamicComponentDirective } from './directives/dynamic-component/dynamic-component.directive';\nimport { DragAndDropFilesDirective } from './directives/drag-and-drop-files.directive';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { FlattenObjectArrayPipe } from './pipes/flattenObjArray.pipe';\nimport { LimitPipe } from './pipes/limit.pipe';\nimport { OrderPipe } from './pipes/orderBy.pipe';\nimport { StorePipe } from './pipes/store.pipe';\nimport { LocalizedDatePipe } from './pipes/localizedDate.pipe';\nimport { BytesPipe } from './pipes/bytes.pipe';\nimport { DynamicModuleImportsService } from './services/dynamicModuleImports.service';\nimport { LabelsService } from './services/labels.service';\nimport { SpinnerCubeComponent } from './components/spinner-cube/spinner-cube.component';\nimport { PagerComponent } from './components/table/pager.component';\nimport { EllipsisComponent } from './components/ellipsis/ellipsis.component';\nimport { KeysPipe } from './pipes/keys.pipe';\nimport { ObjectURLDirective } from './directives/object-url.directive';\nimport { LengthPipe } from './pipes/length.pipe';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { SearchToolbarComponent } from './components/search-toolbar/search-toolbar.component';\n\n@NgModule({\n declarations: [\n // components\n DatepickerComponent,\n FormErrorsComponent,\n FormFieldComponent,\n ItemTreeComponent,\n LightBoxComponent,\n LightboxConfirmComponent,\n ListComponent,\n ListCheckableComponent,\n MonoSelectComponent,\n MultiSelectComponent,\n MultiComboComponent,\n PanelSectionComponent,\n PortalComponent,\n PushPanelComponent,\n SearchInputComponent,\n SideLayoutComponent,\n SidePanelComponent,\n StepComponent,\n TooltipComponent,\n WizardComponent,\n SimpleSelectComponent,\n MessageStickerComponent,\n MessageBoxComponent,\n UploadFilesComponent,\n SpinnerCubeComponent,\n PagerComponent,\n EllipsisComponent,\n // directives\n AnchorDirective,\n DynamicTemplateDirective,\n DynamicComponentDirective,\n DragAndDropFilesDirective,\n ObjectURLDirective,\n // pipes\n FilterPipe,\n FlattenObjectArrayPipe,\n LimitPipe,\n OrderPipe,\n StorePipe,\n LocalizedDatePipe,\n BytesPipe,\n KeysPipe,\n LengthPipe,\n DropdownComponent,\n SearchToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgxOdeSijilModule.forChild(),\n InfiniteScrollModule\n ],\n exports: [\n // components\n DatepickerComponent,\n FormErrorsComponent,\n FormFieldComponent,\n ItemTreeComponent,\n LightBoxComponent,\n LightboxConfirmComponent,\n ListComponent,\n ListCheckableComponent,\n MonoSelectComponent,\n MultiSelectComponent,\n MultiComboComponent,\n PanelSectionComponent,\n PortalComponent,\n PushPanelComponent,\n SearchInputComponent,\n SideLayoutComponent,\n SidePanelComponent,\n StepComponent,\n TooltipComponent,\n WizardComponent,\n SimpleSelectComponent,\n MessageStickerComponent,\n MessageBoxComponent,\n UploadFilesComponent,\n SpinnerCubeComponent,\n PagerComponent,\n EllipsisComponent,\n DropdownComponent,\n SearchToolbarComponent,\n // directives\n AnchorDirective,\n DynamicTemplateDirective,\n DynamicComponentDirective,\n DragAndDropFilesDirective,\n ObjectURLDirective,\n // pipes\n FilterPipe,\n FlattenObjectArrayPipe,\n LimitPipe,\n OrderPipe,\n StorePipe,\n LocalizedDatePipe,\n BytesPipe,\n KeysPipe,\n LengthPipe\n ],\n providers: [InputFileService, OrderPipe],\n entryComponents: [SimpleSelectComponent, MessageBoxComponent]\n})\nexport class NgxOdeUiModule {\n static forRoot(labelsProvider: Provider): ModuleWithProviders {\n return {\n ngModule: NgxOdeUiModule,\n providers: [\n DynamicModuleImportsService,\n labelsProvider || LabelsService\n ]\n };\n }\n\n static forChild(): ModuleWithProviders {\n return {\n ngModule: NgxOdeUiModule,\n providers: []\n }\n }\n}\n"],"names":["observableThrowError"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-ode-ui.js","sources":["ng://ngx-ode-ui/lib/services/dynamicModuleImports.service.ts","ng://ngx-ode-ui/lib/services/inputFile.service.ts","ng://ngx-ode-ui/lib/services/labels.service.ts","ng://ngx-ode-ui/lib/services/spinner.service.ts","ng://ngx-ode-ui/lib/components/datepicker/datepicker.component.ts","ng://ngx-ode-ui/lib/components/ellipsis/ellipsis.component.ts","ng://ngx-ode-ui/lib/components/form-errors/form-errors.component.ts","ng://ngx-ode-ui/lib/components/form-field/form-field.component.ts","ng://ngx-ode-ui/lib/components/item-tree/item-tree.component.ts","ng://ngx-ode-ui/lib/components/lightbox/lightbox.component.ts","ng://ngx-ode-ui/lib/components/lightbox-confirm/lightbox-confirm.component.ts","ng://ngx-ode-ui/lib/components/list/list.component.ts","ng://ngx-ode-ui/lib/components/list-checkable/list-checkable.component.ts","ng://ngx-ode-ui/lib/components/message-box/message-box.component.ts","ng://ngx-ode-ui/lib/directives/dynamic-component/component-descriptor.model.ts","ng://ngx-ode-ui/lib/directives/dynamic-component/dynamic-component.directive.ts","ng://ngx-ode-ui/lib/components/message-sticker/message-sticker.component.ts","ng://ngx-ode-ui/lib/components/mono-select/mono-select.component.ts","ng://ngx-ode-ui/lib/components/multi-combo/multi-combo.component.ts","ng://ngx-ode-ui/lib/components/multi-select/multi-select.component.ts","ng://ngx-ode-ui/lib/components/panel-section/panel-section.component.ts","ng://ngx-ode-ui/lib/components/portal/portal.component.ts","ng://ngx-ode-ui/lib/components/push-panel/push-panel.component.ts","ng://ngx-ode-ui/lib/components/search-input/search-input.component.ts","ng://ngx-ode-ui/lib/components/side-layout/side-layout.component.ts","ng://ngx-ode-ui/lib/components/side-panel/side-panel.component.ts","ng://ngx-ode-ui/lib/components/spinner-cube/spinner-cube.component.ts","ng://ngx-ode-ui/lib/components/table/pager.component.ts","ng://ngx-ode-ui/lib/components/tooltip/tooltip.component.ts","ng://ngx-ode-ui/lib/components/upload-files/upload-files.component.ts","ng://ngx-ode-ui/lib/components/value-editable/simple-select.component.ts","ng://ngx-ode-ui/lib/components/wizard/wizard.component.ts","ng://ngx-ode-ui/lib/directives/anchor.directive.ts","ng://ngx-ode-ui/lib/directives/drag-and-drop-files.directive.ts","ng://ngx-ode-ui/lib/directives/dynamictemplate.directive.ts","ng://ngx-ode-ui/lib/directives/object-url.directive.ts","ng://ngx-ode-ui/lib/utils/math.ts","ng://ngx-ode-ui/lib/pipes/bytes.pipe.ts","ng://ngx-ode-ui/lib/pipes/filter.pipe.ts","ng://ngx-ode-ui/lib/pipes/flattenObjArray.pipe.ts","ng://ngx-ode-ui/lib/pipes/keys.pipe.ts","ng://ngx-ode-ui/lib/pipes/limit.pipe.ts","ng://ngx-ode-ui/lib/pipes/localizedDate.pipe.ts","ng://ngx-ode-ui/lib/pipes/orderBy.pipe.ts","ng://ngx-ode-ui/lib/pipes/store.pipe.ts","ng://ngx-ode-ui/lib/pipes/length.pipe.ts","ng://ngx-ode-ui/lib/utils/string.ts","ng://ngx-ode-ui/lib/utils/testing.ts","ng://ngx-ode-ui/lib/components/dropdown/dropdown.component.ts","ng://ngx-ode-ui/lib/components/search-toolbar/search-toolbar.component.ts","ng://ngx-ode-ui/lib/ngx-ode-ui.module.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class DynamicModuleImportsService {\n imports = [];\n}\n","\nimport {throwError as observableThrowError, Observable} from 'rxjs';\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class InputFileService {\n public validateFiles(files: FileList, maxFilesNumber: number, allowedExtensions: string[]): Observable<File[]> {\n if (!files) {\n return observableThrowError('files is empty');\n }\n if (files.length > maxFilesNumber) {\n return observableThrowError(`Only ${maxFilesNumber} file(s) allowed`);\n }\n\n const validFiles: File[] = [];\n const invalidFiles: File[] = [];\n for (let i = 0; i < files.length; i++) {\n const filenameSplit = files[i].name.split('.');\n const ext = filenameSplit[filenameSplit.length - 1];\n if (allowedExtensions.lastIndexOf(ext.toLowerCase()) !== -1) {\n validFiles.push(files[i]);\n } else {\n invalidFiles.push(files[i]);\n }\n }\n\n return new Observable(observer => {\n if (validFiles.length > 0) {\n observer.next(validFiles);\n }\n if (invalidFiles.length > 0) {\n observer.error(`Extension not allowed. Allowed extensions: ${allowedExtensions}`);\n }\n observer.complete();\n });\n }\n\n public isSrcExternalUrl(src: string): boolean {\n if (src) {\n return src.startsWith('http://') || src.startsWith('https://');\n } else {\n return false;\n }\n }\n\n public isSrcWorkspace(src: string): boolean {\n if (src) {\n return src.startsWith('/workspace');\n } else {\n return false;\n }\n }\n}\n","import {Injectable} from '@angular/core';\n\n@Injectable()\nexport class LabelsService {\n\n private labels = {\n 'select.all': 'Select all',\n 'deselect.all': 'Deselect all',\n search: 'Search'\n };\n\n static withLabels(labels: Object) {\n const newService = new LabelsService();\n for (const prop in labels) {\n newService.labels[prop] = labels[prop];\n }\n return newService;\n }\n\n getLabel(label: string) {\n return this.labels[label] || label;\n }\n\n mixin(labels: Object) {\n for (const property in labels) {\n this.labels[property] = labels[property];\n }\n }\n}\n","import {ApplicationRef, ChangeDetectorRef, Injectable} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Injectable()\nexport class SpinnerService {\n\n constructor(private appRef: ApplicationRef) {}\n\n timer = 250;\n\n private loading = new Set<any>();\n private timers = new Map<any, number>();\n\n private _trigger = new Subject();\n get trigger() {\n return this._trigger;\n }\n\n isLoading(something, pending = false): boolean {\n return this.loading.has(something) ||\n (pending && this.timers.has(something));\n }\n\n perform<T>(something: any, promise: Promise<T>, timer?: number): Promise<T> {\n this.load(something, timer);\n return promise.catch( err => {\n this.done(something);\n throw err;\n }).then( _ => {\n this.done(something);\n return _;\n });\n }\n\n load(something: any, timer?: number): void {\n if (this.timers.has(something)) {\n window.clearTimeout(this.timers.get(something));\n }\n\n const addToQueue = () => {\n this.loading.add(something);\n this.timers.delete(something);\n this.appRef.tick();\n this.trigger.next(true);\n };\n\n if (timer === 0) {\n addToQueue();\n } else {\n this.timers.set(something, window.setTimeout(addToQueue, timer || this.timer));\n }\n }\n\n done(something): void {\n window.clearTimeout(this.timers.get(something));\n this.timers.delete(something);\n this.loading.delete(something);\n this.trigger.next(true);\n this.appRef.tick();\n }\n\n wrap = (func: (...params) => Promise<any>, label: string,\n props: { delay?: number, binding?: any, cdRef?: ChangeDetectorRef } = {}, ...args) => {\n\n this.load(label, props.delay);\n const promise = props.binding ?\n func.bind(props.binding)(...args) :\n func(...args);\n\n promise.catch((err) => {\n this.done(label);\n throw err;\n }).then(_ => {\n this.done(label);\n return _;\n });\n if (props.cdRef) { props.cdRef.markForCheck(); }\n\n return promise;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef,\n Input, OnDestroy, Output, Renderer2, ViewChild, Injector } from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\n\nimport {LabelsService} from '../../services/labels.service';\nimport Flatpickr from 'flatpickr';\nimport French from 'flatpickr/dist/l10n/fr.js';\n\n// access ngmodel\nconst NOOP = () => {\n};\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'ode-date-picker',\n templateUrl: './datepicker.component.html',\n styleUrls: ['./datepicker.component.scss'],\n providers: [ CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR ]\n})\nexport class DatepickerComponent extends OdeComponent implements OnDestroy, AfterViewInit, ControlValueAccessor {\n\n constructor(private renderer: Renderer2,\n private labelsService: LabelsService,\n injector: Injector) {\n super(injector);\n }\n\n get value(): any {\n return this.innerValue;\n }\n\n set value(v: any) {\n let init = false;\n if (this.innerValue === undefined) {\n init = true;\n }\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n if (!init) {\n this.changeDate.emit(v);\n }\n\n }\n }\n\n private innerValue: any = '';\n\n @ViewChild('datePickerElement', { static: false })\n datePickerElement: ElementRef;\n\n @ViewChild('inputRef', { static: false })\n inputElement: ElementRef;\n\n // instance flatpickr\n private datePickerInst: Flatpickr;\n\n @ViewChild(NgModel, { static: false })\n model: NgModel;\n\n @Input()\n disabled = false;\n\n @Input()\n set readonly( val:boolean ) {\n this._readonly = val;\n if( this.datePickerInst && this.datePickerInst.altInput ) {\n // Apply the readonly attribute addition/removal to the visible input (wrapped)\n if( val ) this.datePickerInst.altInput.setAttribute('readonly', \"\");\n else this.datePickerInst.altInput.removeAttribute('readonly');\n }\n }\n get readonly():boolean {\n return this._readonly;\n }\n _readonly = false;\n\n @Input()\n enableTime = false;\n\n @Input()\n placeholder = '';\n\n @Input()\n minDate;\n\n @Input()\n maxDate;\n\n @Output()\n changeDate: EventEmitter<string> = new EventEmitter<string>();\n\n private onChangeCallback: (_: any) => void = NOOP;\n private onTouchedCallback: () => void = NOOP;\n\n ngAfterViewInit(): void {\n super.ngAfterViewInit();\n // add attr data-input, mandatory for the picker to work in wrap mode\n this.renderer.setAttribute(this.inputElement.nativeElement, 'data-input', '');\n\n // disabled case\n if (this.disabled === true) {\n this.model.control.disable();\n }\n\n const navigatorLanguage = navigator.language.split('-')[0];\n let datePickerLocale = {};\n if (navigatorLanguage === 'fr') {\n datePickerLocale = French.fr;\n }\n\n // options for the flatpickr instance\n const options = {\n altInput: !this.disabled,\n altFormat: 'd/m/Y', // date format displayed to user\n dateFormat: 'Y-m-d', // date format sent to server\n allowInput: false,\n enableTime: this.enableTime,\n minDate: this.minDate,\n maxDate: this.maxDate,\n clickOpens: false,\n wrap: true, // to add input decoration (calendar icon and delete icon)\n locale: datePickerLocale\n };\n\n this.datePickerInst = new Flatpickr(this.datePickerElement.nativeElement, options);\n if( !this.disabled ) {\n this.datePickerInst.altInput.addEventListener('click', e => {\n if( !this.readonly ) {\n this.datePickerInst.toggle();\n }\n });\n }\n\n // Force updating the date input readonly attribute :\n this.readonly = this._readonly;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.datePickerInst.destroy();\n }\n\n writeValue(value: any): void {\n if (value !== this.innerValue && this.datePickerInst) {\n this.innerValue = value;\n this.datePickerInst.setDate(value);\n this.onChangeCallback(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, Input, Injector } from '@angular/core';\n\ntype EllipsisBehavior = 'expand' | 'hide';\n\n/**\n * A simple ellipsis component that switches text-overflow on click.\n * Add an ellipsis={'hide'| 'expand'} attirubute on your element.\n * Default behavior is 'hide', so that it's the same than the raw CSS\n */\n@Component({\n selector: '[ellipsis]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./ellipsis.component.scss'],\n host: {\n '(click)': 'onClick()',\n }\n})\nexport class EllipsisComponent extends OdeComponent {\n constructor(private eltRef: ElementRef, injector: Injector ) {\n super(injector);\n }\n\n private _ellipsis: EllipsisBehavior = 'hide';\n @Input()\n set ellipsis(value: EllipsisBehavior) {\n if (!!value) {\n this._ellipsis = value;\n if (this._ellipsis == 'expand') {\n this.eltRef.nativeElement.className = 'expand';\n }\n }\n }\n\n private isExpanded = false;\n\n private initialStyle = Object.assign({}, this.eltRef.nativeElement.style);\n onClick(): void {\n if (this._ellipsis == 'hide') {\n return;\n }\n if (!this.isExpanded) {\n this.isExpanded = true;\n Object.assign(this.eltRef.nativeElement.style, {\n textOverflow: 'clip',\n overflow: 'auto',\n whiteSpace: 'normal',\n });\n } else {\n this.isExpanded = false;\n this.eltRef.nativeElement.style = this.initialStyle;\n }\n\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Input, Injector } from '@angular/core';\nimport {AbstractControl} from '@angular/forms';\n\nimport {LabelsService} from '../../services/labels.service';\n\n@Component({\n selector: 'ode-form-errors',\n templateUrl: './form-errors.component.html',\n styleUrls: ['./form-errors.component.scss']\n})\nexport class FormErrorsComponent extends OdeComponent {\n constructor(private labelsService: LabelsService, injector: Injector) {\n super(injector);\n }\n\n @Input('control')\n ref: AbstractControl;\n\n @Input('expectedPatternMsg')\n expectedPatternMsg: string;\n\n\n getErrorsArray() {\n const errorsArray = [];\n for (const prop in this.ref.errors) {\n errorsArray.push({ name: prop, value: this.ref.errors[prop]});\n }\n return errorsArray;\n }\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n}\n","import { Component, Input, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\n@Component({\n selector: 'ode-form-field',\n templateUrl: './form-field.component.html',\n styleUrls: ['./form-field.component.scss']\n})\nexport class FormFieldComponent extends OdeComponent {\n @Input() label: string;\n @Input() help: string;\n @Input() required: boolean;\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild, ContentChild, TemplateRef, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-item-tree',\n templateUrl: './item-tree.component.html'\n})\nexport class ItemTreeComponent<T> extends OdeComponent implements OnInit {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n /**** Inputs ****/\n\n // Items\n @Input() items: Array<any> = [];\n\n // Property containing the list of child objects.\n @Input('children') childrenProperty = 'children';\n // Property to display in the list\n @Input('display') displayProperty = 'label';\n @Input() displayTemplate: TemplateRef<any>;\n // Filter pipe argument\n @Input() filter: (Object | string | Function) = '';\n // OrderBy pipe argument\n @Input() order: (Array<any> | string | Function) = [];\n // Reverse the order pipe\n @Input() reverse: any = false;\n // Flatten the tree on the specified properties\n @Input()\n set flatten(flattenProps: Array<string>) {\n if (!this.isFlattened() && flattenProps.length > 0) {\n this._selectedItem = this._lastSelectedItem;\n } else if (this.isFlattened && flattenProps.length < 1) {\n this.flagIfParent();\n }\n this._flattenProps = flattenProps;\n }\n get flatten(): Array<string> {\n return this._flattenProps;\n }\n private _flattenProps: Array<string> = [];\n\n // Disable the opener icon\n @Input() disableOpener = false;\n\n // Use checkboxes instead of selecting items\n @Input() checkboxMode = false;\n\n /**** Outputs ****/\n\n @Output() onSelect: EventEmitter<T> = new EventEmitter<T>();\n\n @Output() onCheck: EventEmitter<T> = new EventEmitter<T>();\n\n /**** View ****/\n\n @ViewChild(ItemTreeComponent, { static: false }) childItemTree: ItemTreeComponent<T>;\n\n /**** Internal Logic ****/\n\n @Input('lastSelected') _lastSelectedItem: T;\n private _selectedItem: T;\n @Input('depth') _depth = 0;\n private unfolded: T[] = [];\n\n ngOnInit() {\n super.ngOnInit();\n this.flagIfParent();\n }\n\n public selectItem(item: T) {\n this._selectedItem = item;\n if (this.childItemTree) {\n delete this.childItemTree._selectedItem;\n }\n const idx = this.unfolded.indexOf(item);\n if (!this.disableOpener && idx < 0) {\n this.unfolded.push(item);\n } else {\n this.unfolded.splice(idx, 1);\n }\n this.bubbleSelect(item);\n }\n\n public checkItem(item: T) {\n this.onCheck.emit(item);\n }\n\n public bubbleSelect(item: T) {\n this._lastSelectedItem = item;\n this.onSelect.emit(item);\n }\n\n public isSelected(item) {\n return (this.disableOpener ? this._selectedItem : this._lastSelectedItem) === item;\n }\n\n public toggleFold(event: Event, item: T) {\n event.stopPropagation();\n const idx = this.unfolded.indexOf(item);\n if (idx < 0) {\n this.unfolded.push(item);\n } else {\n this.unfolded.splice(idx, 1);\n }\n }\n\n public isFolded(item: T) {\n return this.disableOpener ? !this.isSelected(item) : this.unfolded.indexOf(item) < 0;\n }\n\n public display(item: T) {\n return this.displayProperty && item[this.displayProperty];\n }\n\n public getChildren(item) {\n return item[this.childrenProperty] || [];\n }\n\n public hasChildren(item) {\n return this.getChildren(item).length > 0;\n }\n\n isFlattened() {\n return this._flattenProps.length;\n }\n\n private flagIfParent() {\n if (!this._lastSelectedItem) {\n return;\n }\n\n const findSubItem = (item, target) => {\n if (item === target) {\n return true;\n }\n if (this.hasChildren(item)) {\n return this.getChildren(item).find(subItem => {\n return findSubItem(subItem, target);\n });\n }\n return false;\n };\n\n for (const i in this.items) {\n const item = this.items[i];\n\n if (item === this._lastSelectedItem ||\n findSubItem(item, this._lastSelectedItem)) {\n this._selectedItem = item;\n this.unfolded = [item];\n break;\n }\n }\n\n this.changeDetector.markForCheck();\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-lightbox',\n templateUrl: './lightbox.component.html',\n styleUrls: ['./lightbox.component.scss'],\n host: {\n '(click)': 'onClick($event)'\n }\n\n})\nexport class LightBoxComponent extends OdeComponent {\n\n constructor(\n injector: Injector,\n private renderer: Renderer2,\n private host: ElementRef) {\n super(injector);\n }\n\n @Input()\n set show(s: boolean) {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n if (s) {\n this._show = true;\n this.timer = window.setTimeout(() => {\n this.renderer.addClass(this.host.nativeElement, 'shown');\n this.timer = null;\n this.changeDetector.markForCheck();\n }, 100);\n } else {\n const wait = parseFloat(this.section &&\n window.getComputedStyle(this.section.nativeElement)['transition-duration']);\n this.renderer.removeClass(this.host.nativeElement, 'shown');\n this.timer = window.setTimeout(() => {\n this._show = false;\n this.timer = null;\n this.changeDetector.markForCheck();\n }, wait * 1000);\n }\n }\n\n get show(): boolean {\n return this._show;\n }\n\n _show = false;\n\n @Input() showCloseButton = true;\n\n @Output() onClose = new EventEmitter<any>();\n\n @ViewChild('section', { static: false }) section: ElementRef;\n @ViewChild('overlay', { static: false }) overlay: ElementRef;\n\n private timer: number;\n\n onClick(event: MouseEvent) {\n if (this.overlay.nativeElement.contains(event.target)) {\n this.close();\n }\n }\n\n public close() {\n this.show = false;\n this.onClose.emit();\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-lightbox-confirm',\n templateUrl: './lightbox-confirm.component.html',\n styleUrls: ['./lightbox-confirm.component.scss']\n})\nexport class LightboxConfirmComponent extends OdeComponent {\n\n @Input() lightboxTitle: string;\n @Input() show: boolean;\n @Input() cancelText: string = \"cancel\";\n @Input() confirmText: string = \"confirm\";\n @Input() extraButtons: Array<String> = [];\n @Input() disableConfirm: boolean = false;\n\n @Output() onConfirm: EventEmitter<void> = new EventEmitter<void>();\n @Output() onCancel: EventEmitter<void> = new EventEmitter<void>();\n @Output() onExtra: EventEmitter<number> = new EventEmitter<number>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss']\n})\nexport class ListComponent extends OdeComponent {\n\n set storedElements(list) {\n this._storedElements = list;\n this.listChange.emit(list);\n }\n\n get storedElements() {\n return this._storedElements;\n }\n\n /* Store pipe */\n self = this;\n _storedElements = [];\n\n @Input() model;\n @Input() filters;\n @Input() inputFilter;\n @Input() sort;\n @Input() limit: number;\n @Input() searchPlaceholder = 'search';\n @Input() noResultsLabel = 'list.results.no.items';\n @Input() placeholder = 'list.placeholder';\n @Input() isSearchActive = true;\n @Input() isSearchButtonDisabled: boolean = false;\n @Input() searchInput: boolean = false;\n @Input() searchDelay: number;\n @Input() searchSubmit: () => void;\n\n @Output() inputChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() listChange: EventEmitter<any> = new EventEmitter();\n @Output() scrolledDown: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(TemplateRef, {static: false}) templateRef: TemplateRef<any>;\n @Input() isSelected = (arg?: any) => false;\n @Input() isDisabled = (arg?: any) => false;\n @Input() ngClass = (arg?: any) => ({});\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, Injector } from '@angular/core';\n\n/**\n * ListCheckableComponent is an alternative to the ListComponent to easily select rows by using a checkbox.\n * \n * \n```\n<ode-list-checkable\n [readOnly]=\"a_boolean\"\n [model]=\"an_array_of_items\"\n [filters]=\"\"\n [sort]=\"'+displayName'\"\n [limit]=\"a_number\"\n [noResultsLabel]=\"text_to_display_when_no_item_in_model\"\n [isChecked]=\"a_lambda_which_takes_1_item_argument_and_returns_a_boolean\"\n [areAllChecked]=\"a_lambda_with_no_argument_which_returns_a_boolean\"\n [ngClass]=\"a_lambda_which_takes_1_item_argument_and_returns_an_object\"\n (onCheck)=\"emits_an_$event_like_{item:any; checked:boolean}\"\n (listChange)=\"\"\n (scrolledDown)=\"\"\n >\n\n <ng-template let-item>\n <span>{{item.displayName|translate}}</span>\n </ng-template>\n \n</ode-list-checkable>\n`̀``\n */\n\ntype OnCheckData = {item:any, checked:boolean};\n\n@Component({\n selector: 'ode-list-checkable',\n templateUrl: './list-checkable.component.html',\n styleUrls: ['./list-checkable.component.scss']\n})\nexport class ListCheckableComponent extends OdeComponent {\n @Input() model = [];\n @Input() filters;\n @Input() sort;\n @Input() limit: number;\n @Input() noResultsLabel = 'list.results.no.items';\n @Input() readOnly: boolean = false;\n\n @Output() onCheck: EventEmitter<OnCheckData> = new EventEmitter();\n @Output() listChange: EventEmitter<any> = new EventEmitter();\n @Output() scrolledDown: EventEmitter<void> = new EventEmitter();\n\n @ContentChild(TemplateRef, {static: false}) templateRef: TemplateRef<any>;\n\n @Input() areAllChecked = () => false;\n @Input() isChecked = (arg?: any) => false;\n @Input() isDisabled = (arg?: any) => false;\n @Input() ngClass = (arg?: any) => ({});\n\n /* Store pipe */\n self = this;\n _storedElements = [];\n set storedElements(list) {\n this._storedElements = list;\n this.listChange.emit(list);\n }\n get storedElements() {\n return this._storedElements;\n }\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n public toggleAll( checkAll:boolean ) {\n this.model.forEach( item => {\n const isChecked = this.isChecked(item);\n if( !this.isDisabled(item)\n && ((isChecked && !checkAll) || (!isChecked && checkAll)) ) {\n this.onCheck.emit( {item:item, checked:checkAll} );\n }\n })\n }\n\n}\n","import { HostBinding } from '@angular/core';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\nexport type MessageType = 'info' | 'success' | 'warning' | 'danger';\n\nexport const icons = {\n info : 'fa-question-circle',\n warning : 'fa-exclamation-circle',\n danger : 'fa-ban',\n success : 'fa-check-circle'\n};\n\n@Component({\n selector: 'message-box',\n templateUrl: './message-box.component.html',\n styleUrls: ['./message-box.component.scss']\n})\nexport class MessageBoxComponent extends OdeComponent implements OnInit {\n constructor(\n private eltRef: ElementRef,\n injector: Injector) {\n super(injector);\n }\n\n @Input() type: MessageType;\n @Input() header: string;\n\n // type (string | [string,Object])[] enable to pass an array of String where String is i18n key\n // or an array of tuple<String, Object> where String is i18n key and Object is 118n params\n private _messages: [string, {}][];\n @Input() set messages(value: (string | [string, {}])[]) {\n this._messages = [];\n\n for (const message of value) {\n if (typeof message == 'string') {\n this._messages.push([message, {}]);\n }\n else if (typeof message == 'object') {\n this._messages.push(message);\n }\n }\n }\n get messages() {\n return this._messages;\n }\n\n private _position: 'absolute' | 'inherit' = 'inherit';\n @Input() set position(value: 'absolute' | 'inherit') {\n this._position = value;\n }\n\n /**\n * `gravity` set the relative position of the message box if its position is 'absolute'.\n * No effect when position is 'inherit'.\n */\n @Input() gravity: 'left' | 'right' = 'left';\n @HostBinding('class.gravity-left') get isGravityLeft() { return this.gravity === 'left' }\n @HostBinding('class.gravity-right') get isGravityRight() { return this.gravity === 'right' }\n\n hidden = false;\n @Output('onHide') hideEvent: EventEmitter<void>;\n canHide(): boolean {\n if (this._position == 'absolute') {\n return true;\n }\n return false;\n }\n hide(): void {\n this.hidden = true;\n this.hideEvent.emit();\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.type == undefined) {\n throw new Error('MessageSticker : type\\' property must be set');\n }\n this.eltRef.nativeElement.style.position = this._position;\n if (this._position == 'absolute') {\n this.eltRef.nativeElement.style.width = '450px';\n // TODO: Maybe use a static counter to push on top the last open MessageBox ?\n this.eltRef.nativeElement.style.zIndex = '10';\n }\n\n }\n}\n\n","import {Type} from '@angular/core';\n\n/**\n* Usefull to desccribe (type and input data) a component\n* that will be dynamically instanciate\n*/\nexport class ComponentDescriptor {\n constructor(\n public type: Type<any>,\n public data: any\n ) {}\n\n assignData(data: any): ComponentDescriptor {\n Object.assign(this.data, data);\n return this;\n }\n}\n","import {ComponentFactoryResolver, ComponentRef, Directive, Input, ViewContainerRef, } from '@angular/core';\nimport {ComponentDescriptor} from './component-descriptor.model';\n\n/**\n* Dynamically load the component describe with the @input dynamic-component\n*/\n@Directive({\n selector: '[dynamic-component]',\n})\nexport class DynamicComponentDirective {\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n public componentRef: ComponentRef<any>;\n\n @Input('dynamic-component')\n componentDesc: ComponentDescriptor;\n\n load(data?: any): void {\n if (this.isLoaded()) { return; }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentDesc.type);\n this.viewContainerRef.clear();\n this.componentRef = this.viewContainerRef.createComponent(componentFactory);\n\n if (data != undefined) {\n this.componentDesc.assignData(data);\n }\n for (const attribute in this.componentDesc.data) {\n this.componentRef.instance[attribute] = this.componentDesc.data[attribute];\n if (attribute == 'hideEvent') {\n this.componentRef.instance.hideEvent.subscribe(e => {\n this.destroy();\n });\n }\n }\n }\n\n isLoaded(): boolean {\n if (this.componentRef == undefined) {\n return false;\n }\n else {\n return this.componentRef.instance != null;\n }\n }\n\n destroy(): void {\n if (this.componentRef.instance.hideEvent != undefined) {\n this.componentRef.instance.hideEvent.unsubscribe();\n }\n // FIXME: this.componentRef.destroy(); => This one usually should work, better to use but do nothing...\n delete this.componentRef;\n this.viewContainerRef.clear();\n }\n}\n\n\n\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, OnInit, ViewChild, Injector } from '@angular/core';\nimport {icons, MessageBoxComponent, MessageType} from '../message-box/message-box.component';\nimport { DynamicComponentDirective } from '../../directives/dynamic-component/dynamic-component.directive';\nimport { ComponentDescriptor } from '../../directives/dynamic-component/component-descriptor.model';\n\n@Component({\n selector: 'ode-message-sticker',\n templateUrl: './message-sticker.component.html',\n styleUrls: ['./message-sticker.component.scss']\n})\nexport class MessageStickerComponent extends OdeComponent implements OnInit {\n @Input() type: MessageType;\n @Input() header: string;\n @Input() messages: (string | [string, {}])[];\n @Input() gravity: 'left' | 'right' = 'left';\n @ViewChild(DynamicComponentDirective, { static: false }) dComponent: DynamicComponentDirective;\n\n readonly icons = icons;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.type === undefined) {\n throw new Error('MessageSticker : type\\' property must be set');\n }\n }\n\n newMessageBox(): ComponentDescriptor {\n return new ComponentDescriptor(MessageBoxComponent, {\n type: this.type,\n header: this.header,\n messages: this.messages,\n position: 'absolute',\n gravity: this.gravity,\n hideEvent: new EventEmitter<void>()\n });\n }\n\n loadMessageBox(): void {\n this.dComponent.load();\n }\n}\n","import { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {SelectOption} from '../multi-select/multi-select.component';\nimport { OdeComponent } from 'ngx-ode-core';\n\n@Component({\n selector: 'ode-mono-select',\n templateUrl: './mono-select.component.html',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MonoSelectComponent),\n multi: true\n }],\n host: {\n '(document:click)': 'onClickOnDocument($event)',\n '(click)': 'onClickOnHost()'\n }\n})\nexport class MonoSelectComponent<K> extends OdeComponent implements ControlValueAccessor {\n @Input()\n public placeholder = 'monoselect.placeholder.default';\n\n @Input()\n public options: Array<SelectOption<K>> = [];\n\n @Input()\n public trackByFn: (optionValue: K) => number | string;\n\n @Input()\n public translateOptions: boolean = true;\n\n public opened = false;\n\n public selectedOption: SelectOption<K> = null;\n\n @Input()\n public disabled = false;\n\n public optionClicked(option?: SelectOption<K>) {\n this.selectedOption = option;\n this.opened = false;\n this.onChange(this.selectedOption != null ? this.selectedOption.value : null);\n }\n\n constructor(private elementRef: ElementRef, injector: Injector) {\n super(injector);\n }\n\n public onClickOnDocument(event: MouseEvent) {\n if (this.opened &&\n !this.elementRef.nativeElement.querySelector('.lct-form-select').contains(event.target)) {\n this.opened = false;\n }\n return true;\n }\n\n public onClickOnHost() {\n if (!this.opened && !this.disabled) {\n this.opened = true;\n } else {\n this.opened = false;\n }\n }\n\n private onChange = (_: K) => {\n }\n\n private onTouched = () => {\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(obj: K): void {\n this.selectedOption = this.options.find(option => option.value === obj);\n this.onChange(this.selectedOption ? this.selectedOption.value : null);\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';\nimport {LabelsService} from '../../services/labels.service';\nimport { OdeComponent } from 'ngx-ode-core';\n\n/* If you need to use multi-combo in a form you should give a look to the MultiSelectComponent. */\n\n@Component({\n selector: 'ode-multi-combo',\n templateUrl: './multi-combo.component.html',\n styleUrls: ['./multi-combo.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class MultiComboComponent extends OdeComponent {\n\n constructor(\n private _eref: ElementRef,\n private labelsService: LabelsService,\n injector: Injector) {\n super(injector);\n }\n\n @Input()\n set comboModel(model) {\n this._comboModel = model;\n\n if (!model) {\n this.filteredModel = [];\n return;\n }\n\n for (let i = 0; i < this.filteredModel.length; i++) {\n const idx = model.indexOf(this.filteredModel[i]);\n if (idx < 0) {\n this.filteredModel.splice(idx, 1);\n i--;\n }\n }\n }\n @Input('outputModel') filteredModel = [];\n @Input() title = 'Select';\n @Input() display: string | Function;\n @Input() filter: string;\n @Input() orderBy: (string | Array<(string | Function)> | Function);\n @Input() reverse = false;\n @Input('max') maxSelected: number;\n @Input() disabled = false;\n\n @Output() onSelectItem = new EventEmitter<any>();\n @Output() onDeselectItem = new EventEmitter<any>();\n @Output('outputModelChange') filteredModelChange = new EventEmitter<any>();\n @Output() onOpen = new EventEmitter<any>();\n @Output() onClose = new EventEmitter<any>();\n\n self = this;\n _comboModel = [];\n\n filteredComboModel = [];\n\n search = {\n input: '',\n reset() {\n this.input = '';\n }\n };\n\n show = false;\n\n labels(label) {\n return this.labelsService.getLabel(label);\n }\n\n toggleVisibility() {\n this.show = !this.show;\n if (this.show) {\n this.search.reset();\n this.onOpen.emit();\n } else {\n this.onClose.emit();\n }\n }\n\n isSelected(item) {\n return this.filteredModel && this.filteredModel.indexOf(item) >= 0;\n }\n\n isDisabled() {\n return this.filteredModel && this.maxSelected &&\n this.maxSelected <= this.filteredModel.length;\n }\n\n toggleItem(item) {\n const idx = this.filteredModel.indexOf(item);\n if (idx >= 0) {\n this.filteredModel.splice(idx, 1);\n this.onDeselectItem.emit(item);\n } else if (!this.maxSelected ||\n this.filteredModel.length < this.maxSelected) {\n this.filteredModel.push(item);\n this.onSelectItem.emit(item);\n }\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n selectAll() {\n this.filteredModel = [];\n for (let i = 0; i < this.filteredComboModel.length; i++) {\n this.filteredModel.push(this.filteredComboModel[i]);\n }\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n deselectAll() {\n this.filteredModel = [];\n this.filteredModelChange.emit(this.filteredModel);\n }\n\n displayItem(item) {\n return item instanceof Object ?\n this.display && typeof this.display === 'string' ?\n item[this.display] :\n item.toString() :\n this.display && this.display instanceof Function ?\n this.display(item || '') :\n item;\n }\n\n onClick(event) {\n if (this.show && !this._eref.nativeElement.contains(event.target)) {\n this.toggleVisibility();\n }\n return true;\n }\n\n getFilter() {\n if (!this.filter) {\n return '';\n }\n let filter: string | {} = '';\n if (this._comboModel.length > 0 ) {\n if (typeof this._comboModel[0] === 'string') {\n filter = this.search.input;\n } else {\n filter = {};\n filter[this.filter] = this.search.input;\n }\n }\n return filter;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, forwardRef, Input, Injector } from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n/* MultiSelectComponent is a rewrite of MultiComboComponent to integrate it easily in angular forms */\n\nexport interface SelectOption<K> {\n label: string;\n value: K;\n}\n\n@Component({\n selector: 'ode-multi-select',\n templateUrl: './multi-select.component.html',\n styleUrls: ['./multi-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n }],\n host: {\n '(document:click)': 'closeIfOpened($event)'\n }\n})\nexport class MultiSelectComponent<K> extends OdeComponent implements ControlValueAccessor {\n @Input()\n public label = '';\n\n @Input()\n public options: Array<SelectOption<K>> = [];\n\n @Input()\n public preview = false;\n\n @Input()\n public trackByFn: (optionValue: K) => number | string;\n\n public model: Array<K> = [];\n\n public isDisabled = false;\n\n public isOptionsVisible = false;\n\n constructor(injector: Injector, private elementRef: ElementRef) {\n super(injector);\n }\n\n public optionClicked(option: SelectOption<K>) {\n if (this.model) {\n const index = this.getIndexOfOptionInModel(option);\n if (index < 0) {\n this.model.push(option.value);\n } else {\n this.model.splice(index, 1);\n }\n } else {\n this.model = [option.value];\n }\n this.onChange(this.model);\n }\n\n public selectAll(): void {\n this.options.forEach(option => {\n if (!this.model.includes(option.value)) {\n this.model.push(option.value);\n }\n });\n this.onChange(this.model);\n }\n\n public deselectAll(): void {\n this.model = [];\n this.onChange(this.model);\n }\n\n public toggleOptionsVisibility(): void {\n this.isOptionsVisible = !this.isOptionsVisible;\n }\n\n public isSelected(option: SelectOption<K>): boolean {\n return this.model ? (this.getIndexOfOptionInModel(option) >= 0) : false;\n }\n\n public closeIfOpened(event: any) {\n if (this.isOptionsVisible\n && !this.elementRef.nativeElement.querySelector('.lct-multi-select__options-container').contains(event.target)\n && !this.elementRef.nativeElement.querySelector('.lct-multi-select__toggle').contains(event.target)) {\n this.isOptionsVisible = false;\n }\n return true;\n }\n\n private getIndexOfOptionInModel(option: SelectOption<K>): number {\n return this.model.map(this.trackByFn).indexOf(this.trackByFn(option.value));\n }\n\n private onChange = (_: Array<K>) => {\n }\n\n private onTouched = () => {\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n writeValue(obj: Array<K>): void {\n this.model = obj;\n this.onChange(this.model);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Input, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-panel-section',\n templateUrl: './panel-section.component.html',\n styleUrls: ['./panel-section.component.scss']\n})\nexport class PanelSectionComponent extends OdeComponent {\n @Input('section-title') sectionTitle: string;\n @Input() folded: boolean = null;\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-portal',\n templateUrl: './portal.component.html',\n styleUrls: ['./portal.component.scss']\n})\nexport class PortalComponent extends OdeComponent {\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, ViewChild, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-push-panel',\n templateUrl: './push-panel.component.html',\n styleUrls: ['./push-panel.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class PushPanelComponent extends OdeComponent {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n @Input() private set toggle(toggle: boolean) {\n this._opened = toggle;\n }\n _opened: boolean;\n\n @Input() private opener;\n\n @Output() private onClose = new EventEmitter<boolean>();\n\n @ViewChild('inside', { static: false }) private inside: ElementRef;\n\n public onClick(event) {\n const checkOpener = this.opener &&\n (this.opener.contains && this.opener.contains(event.target)) ||\n (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));\n\n if (this._opened &&\n !this.inside.nativeElement.contains(event.target) &&\n !checkOpener) {\n this._opened = false;\n this.onClose.emit();\n }\n return true;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild, Injector } from '@angular/core';\nimport {Observable, Subject, Subscription} from 'rxjs';\nimport {debounceTime, distinctUntilChanged} from 'rxjs/operators';\n\n\n@Component({\n selector: 'ode-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss']\n})\nexport class SearchInputComponent extends OdeComponent implements OnInit, OnDestroy {\n\n constructor(injector: Injector,\n private _elRef: ElementRef,\n private _renderer: Renderer2) {\n super(injector);\n }\n\n /* Inputs / Outputs / View */\n @Input() isSearchActive: boolean = false;\n @Input() isSearchButtonDisabled: boolean = false;\n @Input() searchInput: boolean = false;\n @Input() searchSubmit: () => void;\n @Input() set delay(d: number) {\n this._delay = d;\n this.observable = this.$searchTerms.pipe(debounceTime(this.delay), distinctUntilChanged());\n if (this.observer) {\n this.observer.unsubscribe();\n }\n this.observer = this.observable.subscribe(val => {\n this.onChange.emit(val);\n });\n }\n get delay() {\n return this._delay;\n }\n private _delay = 200;\n\n @Output() onChange: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('searchBox', { static: false}) searchBox: ElementRef;\n\n /* Internal logic */\n\n private $searchTerms = new Subject<string>();\n private observable: Observable<string>;\n private observer: Subscription;\n\n private evalAttributes() {\n const element = this._elRef.nativeElement;\n if (element && this.searchBox) {\n for (let i = 0; i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n this._renderer.setAttribute(this.searchBox.nativeElement, attr.name, attr.value);\n }\n }\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (!this.observable) {\n this.observable = this.$searchTerms\n .pipe(\n debounceTime(this.delay),\n distinctUntilChanged()\n );\n this.observer = this.observable.subscribe(val => {\n this.onChange.emit(val);\n });\n }\n setTimeout(() => this.evalAttributes(), 20);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.observer.unsubscribe();\n }\n\n search(str: string) {\n this.$searchTerms.next(str);\n }\n\n handleSubmit() {\n this.searchSubmit();\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-side-layout',\n templateUrl: './side-layout.component.html',\n styleUrls: ['./side-layout.component.scss']\n})\nexport class SideLayoutComponent extends OdeComponent {\n @Input() showCompanion = false;\n @Output('closeCompanion') close: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n@Component({\n selector: 'ode-side-panel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.scss'],\n host: {\n '(document:click)': 'onClick($event)',\n }\n})\nexport class SidePanelComponent extends OdeComponent {\n opened: boolean;\n\n constructor(injector: Injector, private elementRef: ElementRef) {\n super(injector);\n }\n\n @Input() set toggle(toggle: boolean) {\n this.opened = toggle;\n }\n\n @Input() opener;\n @Output() onClose = new EventEmitter<boolean>();\n\n onClick(event) {\n const checkOpener = this.opener &&\n (this.opener.contains && this.opener.contains(event.target)) ||\n (this.opener.nativeElement && this.opener.nativeElement.contains(event.target));\n\n if (this.opened &&\n !this.elementRef.nativeElement.contains(event.target) &&\n !checkOpener) {\n this.opened = false;\n this.onClose.emit();\n }\n return true;\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Injector } from '@angular/core';\nimport { SpinnerService } from '../../services/spinner.service';\n\n@Component({\n selector: 'ode-spinner-cube',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './spinner-cube.component.html',\n styleUrls: ['./spinner-cube.component.scss']\n})\nexport class SpinnerCubeComponent extends OdeComponent implements OnInit {\n\n @Input('waitingFor')\n set loadingProp(prop: string) {\n this._loadingProp = prop;\n }\n get loadingProp() { return this._loadingProp; }\n private _loadingProp: string;\n\n\n constructor(\n injector: Injector,\n public spinner: SpinnerService) {\n super(injector);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.subscriptions.add(this.spinner.trigger.subscribe(() => {\n this.changeDetector.markForCheck();\n }));\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, Injector } from '@angular/core';\nimport {BundlesService} from 'ngx-ode-sijil';\n\n\n@Component({\n selector: 'ode-pager',\n templateUrl: './pager.component.html',\n styles: [`\n i {cursor: pointer; padding: 0 2px;}\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PagerComponent extends OdeComponent implements OnInit {\n constructor(\n injector: Injector,\n private bundles: BundlesService\n ) {\n super(injector);\n }\n\n @Input() limit: number;\n\n @Input() offset: number;\n @Output() offsetChange = new EventEmitter<number>();\n\n @Input() total: number;\n\n translate = (...args) => (this.bundles.translate as any)(...args);\n\n ngOnInit() {}\n\n previousPage(): void {\n if (this.offset - this.limit >= 0) {\n this.offset = this.offset - this.limit;\n } else {\n this.offset = 0;\n }\n this.offsetChange.emit(this.offset);\n }\n\n nextPage(): void {\n if (this.offset + this.limit <= this.total) {\n this.offset = this.offset + this.limit;\n }\n this.offsetChange.emit(this.offset);\n }\n\n offsetLimit(): number {\n return this.offset + this.limit < this.total ?\n this.offset + this.limit : this.total;\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, Input, Renderer2, Injector } from '@angular/core';\n\n@Component({\n selector: '[tooltip]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./tooltip.component.scss'],\n host: {\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class TooltipComponent extends OdeComponent {\n\n constructor(injector: Injector,\n private ref: ElementRef,\n private renderer: Renderer2) {\n super(injector);\n }\n\n @Input('tooltip') tooltipContents: string;\n @Input() position: 'top' | 'left' | 'right' | 'bottom' = 'bottom';\n @Input() offset = 5;\n\n private tooltipElt: HTMLElement;\n\n onMouseEnter(): void {\n const r = this.renderer;\n\n if (!this.tooltipElt) {\n this.tooltipElt = this.renderer.createElement('div');\n let tooltipText = this.renderer.createText(this.tooltipContents);\n this.renderer.appendChild(this.tooltipElt, tooltipText);\n this.renderer.addClass(this.tooltipElt, \"tooltip\");\n this.renderer.appendChild(document.getElementsByTagName('body')[0], this.tooltipElt);\n }\n const tip = this.tooltipElt;\n const pos = this.getPosition(this.ref.nativeElement, tip, this.position);\n for (const prop in pos) {\n this.renderer.setStyle(tip, prop, pos[prop] + 'px');\n }\n this.renderer.addClass(tip, 'shown');\n }\n\n onMouseLeave(): void {\n const wait = this.tooltipElt &&\n parseFloat(window.getComputedStyle(this.tooltipElt)['transition-duration']);\n this.renderer.removeClass(this.tooltipElt, 'shown');\n setTimeout(this.onTransitionEnd, wait * 1000);\n }\n\n onTransitionEnd = () => {\n if (this.tooltipElt && !this.tooltipElt.classList.contains('shown')) {\n this.tooltipElt.parentNode.removeChild(this.tooltipElt);\n this.tooltipElt = null;\n }\n }\n\n private getPosition(elt, tip, pos) {\n const rect = {\n top: elt.getBoundingClientRect().top + window.scrollY,\n left: elt.getBoundingClientRect().left + window.scrollX\n };\n let left, top;\n\n switch (pos) {\n\n case 'top':\n top = rect.top - tip.offsetHeight - this.offset;\n left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;\n break;\n case 'left':\n top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;\n left = rect.left - tip.offsetWidth - this.offset;\n break;\n case 'right':\n top = rect.top + elt.offsetHeight / 2 - tip.offsetHeight / 2;\n left = rect.left + elt.offsetWidth + this.offset;\n break;\n case 'bottom':\n default:\n top = rect.top + elt.offsetHeight + this.offset;\n left = rect.left + elt.offsetWidth / 2 - tip.offsetWidth / 2;\n }\n\n if (left < 0 ) {\n left = rect.left + elt.offsetWidth + this.offset;\n }\n if (top < 0) {\n top = rect.top + elt.offsetHeight + this.offset;\n }\n if (left + tip.offsetWidth >= window.pageXOffset + window.innerWidth) {\n left = rect.left - tip.offsetWidth - this.offset;\n }\n if (top - tip.offsetHeight >= window.pageYOffset + window.innerHeight) {\n top = rect.top - tip.offsetHeight - this.offset;\n }\n\n return {\n top: top < 5 ? 5 : top,\n left: left < 5 ? 5 : left\n };\n }\n\n ngOnDestroy(): void {\n if (this.tooltipElt) {\n this.tooltipElt.parentNode.removeChild(this.tooltipElt);\n this.tooltipElt = null;\n }\n }\n\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, Injector } from '@angular/core';\nimport {InputFileService} from '../../services/inputFile.service';\n\n@Component({\n selector: 'ode-upload-files',\n templateUrl: './upload-files.component.html',\n styleUrls: ['./upload-files.component.scss']\n})\nexport class UploadFilesComponent extends OdeComponent implements OnInit {\n @Input()\n fileSrc: string;\n @Input()\n allowedExtensions: Array<string>;\n @Input()\n maxFilesNumber: number;\n @Input()\n disabled: boolean;\n\n @Output()\n upload: EventEmitter<File[]> = new EventEmitter();\n @Output()\n invalidUpload: EventEmitter<string> = new EventEmitter();\n\n @ViewChild('inputFileRef', { static: false })\n inputFileRef: ElementRef;\n\n public multiple: boolean;\n\n constructor(injector: Injector,\n public inputFileService: InputFileService) {\n super(injector);\n }\n\n public ngOnInit(): void {\n super.ngOnInit();\n this.multiple = this.maxFilesNumber > 1;\n }\n\n public onChange($event): void {\n if ($event.target) {\n this.inputFileService\n .validateFiles($event.target.files, this.maxFilesNumber, this.allowedExtensions)\n .subscribe(files => this.upload.emit(files)\n , error => this.invalidUpload.emit(error));\n }\n }\n\n public onClickDropzoneInput($event: Event): void {\n $event.stopPropagation();\n const inputFileElement = this.inputFileRef.nativeElement;\n inputFileElement.click();\n }\n\n public onDragAndDrop($event: File[]): void {\n this.upload.emit($event);\n }\n\n public onInvalidDragAndDrop($event: string): void {\n this.invalidUpload.emit($event);\n }\n}\n","import { OdeComponent } from 'ngx-ode-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, Injector } from '@angular/core';\n\n\nexport interface Option {\n value: string;\n label: string;\n}\n\n\n@Component({\n selector: 'ode-simple-select',\n templateUrl: './simple-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SimpleSelectComponent extends OdeComponent {\n @Input() selected: string;\n @Input() model: {[key: string]: string};\n @Input() options: Option[];\n @Input() ignoreOption: Option[];\n @Output() selectChange: EventEmitter<string> = new EventEmitter<string>();\n\n constructor(injector: Injector) {\n super(injector);\n }\n}\n\n","import { OdeComponent } from 'ngx-ode-core';\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Injector\n} from '@angular/core';\n\n@Component({\n selector : 'ode-step',\n template: `<ng-content></ng-content>`,\n styles: [`\n :host {\n display: none;\n overflow: auto;\n padding : 1em;\n }\n :host.active {\n display: block;\n }\n `]\n})\nexport class StepComponent {\n @Input() name: string;\n @Input() isActived: boolean;\n hasError = false;\n isFinished = false;\n}\n\n@Component({\n selector: 'ode-wizard',\n template: `\n <div class=\"wizard\">\n <nav class=\"wizard-menu\">\n <h2 class=\"wizard-menu__title\"><s5l>wizard.steps</s5l></h2>\n <ul>\n <li *ngFor=\"let step of steps\"\n [class.active]=\"step.isActived\"\n [class.finish]=\"step.isFinished\">\n {{step.name}}\n </li>\n </ul>\n </nav>\n <section class=\"wizard-content\">\n <ng-content select=\"ode-step\"></ng-content>\n <nav class=\"wizard-content-nav\" *ngIf=\"activeStep < steps.length - 1\">\n <button class=\"wizard-content-nav__button cancel\"\n (click)=\"cancel.emit()\"\n [title]=\"'cancel' | translate\">\n {{ 'cancel' | translate }}\n </button>\n <button class=\"wizard-content-nav__button previous\"\n (click)=\"onPreviousStep()\"\n *ngIf=\"activeStep > 0\"\n [title]=\"'previous' | translate\">\n {{ 'wizard.previous' | translate }}\n </button>\n <button class=\"wizard-content-nav__button wizard-content-nav__button--next\"\n (click)=\"onNextStep()\"\n [disabled]=\"!canDoNext\"\n [title]=\"'next' | translate\">\n {{ 'wizard.next' | translate }}\n </button>\n </nav>\n </section>\n </div>\n `,\n styles: [`\n .wizard {\n display: flex;\n }\n .wizard-menu {\n background: #5b6472;\n flex: 0 0 240px;\n }\n .wizard-menu ul {\n padding: 10px 30px;\n }\n .wizard-menu ul li {\n color: #eaedf2;\n list-style-type: none;\n padding: 5px 0;\n }\n .wizard-menu ul li.active,\n .wizard-menu ul li.finish {\n font-weight: bold;\n color: white;\n }\n .wizard-menu ul li.finish {\n color: green;\n }\n .wizard-menu__title {\n font-weight: bold;\n font-size: 1.2em;\n color: white;\n padding: 25px 0 0 10px;\n }\n .wizard-content {\n background: #fff;\n flex: auto;\n }\n .wizard-content-nav {\n text-align : right;\n }\n .wizard-content-nav__button {\n margin: 10px 0;\n }\n .wizard-content-nav__button--next {\n margin-right: 16px;\n }\n `]\n})\nexport class WizardComponent extends OdeComponent implements AfterContentInit {\n @Output() cancel: EventEmitter<{}> = new EventEmitter();\n @Output() previousStep: EventEmitter<number> = new EventEmitter();\n @Output() nextStep: EventEmitter<number> = new EventEmitter();\n\n public canDoNext = true;\n\n @ContentChildren(StepComponent) steps: QueryList<StepComponent>;\n activeStep = 0;\n\n constructor(injector: Injector) {\n super(injector);\n }\n doCancel() {\n this.activeStep = 0;\n this.steps.forEach((step, index) => {\n index === 0 ? step.isActived = true : step.isActived = false;\n });\n this.canDoNext = true;\n }\n\n onPreviousStep() {\n this.previousStep.emit(this.activeStep);\n }\n\n doPreviousStep() {\n if (this.activeStep > 0) {\n this.steps.toArray()[this.activeStep].isActived = false;\n this.steps.toArray()[this.activeStep - 1].isActived = true;\n this.activeStep--;\n this.canDoNext = true;\n }\n }\n\n onNextStep() {\n this.nextStep.emit(this.activeStep);\n }\n doNextStep(error?: boolean) {\n if (this.activeStep < this.steps.length - 1) {\n this.canDoNext = !error;\n this.steps.toArray()[this.activeStep].isActived = false;\n this.steps.toArray()[this.activeStep + 1].isActived = true;\n this.activeStep++;\n }\n }\n\n ngAfterContentInit() {\n super.ngAfterContentInit();\n if (this.steps.length === 0) {\n throw new Error('<wizard> component musts nest at least 1 <step> compoent');\n }\n }\n\n}\n","import {Directive, HostListener, Input} from '@angular/core';\n\n@Directive({ selector: '[anchor]' })\nexport class AnchorDirective {\n\n @Input('anchor') anchor: string;\n @Input('offset') offset = 50;\n\n @HostListener('click')\n onClick() {\n const element = document.getElementById(this.anchor);\n window.scrollBy(0, element.getBoundingClientRect().top - this.offset);\n }\n\n}\n","import {Directive, EventEmitter, HostBinding, HostListener, Input, Output} from '@angular/core';\nimport {InputFileService} from '../services/inputFile.service';\n\n@Directive({\n selector: '[dragAndDropFiles]'\n})\nexport class DragAndDropFilesDirective {\n @Input()\n allowedExtensions: Array<string> = [];\n @Input()\n maxFilesNumber = 1;\n @Input()\n disabled: boolean;\n\n @Output()\n dragAndDrop: EventEmitter<File[]> = new EventEmitter();\n @Output()\n invalidDragAndDrop: EventEmitter<string> = new EventEmitter();\n\n @HostBinding('style.background')\n public backgroundColor = '#fafafa';\n @HostBinding('style.border-color')\n public borderColor = '#ddd';\n\n constructor(private inputFileService: InputFileService) {\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(evt) {\n if (!this.disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this.highlightColors();\n }\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(evt) {\n if (!this.disabled) {\n evt.preventDefault();\n evt.stopPropagation();\n this.resetColors();\n }\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event) {\n if (!this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.dataTransfer) {\n this.inputFileService\n .validateFiles(event.dataTransfer.files, this.maxFilesNumber, this.allowedExtensions)\n .subscribe(files => this.dragAndDrop.emit(files)\n , error => this.invalidDragAndDrop.emit(error));\n }\n\n this.resetColors();\n }\n }\n\n private resetColors() {\n this.backgroundColor = '#fafafa';\n this.borderColor = '#ddd';\n }\n\n private highlightColors() {\n this.backgroundColor = '#ffd1b6';\n this.borderColor = '#ff8352';\n }\n}\n","import {Compiler, Component, Directive, ElementRef, Input, NgModule, Injector, Type, ViewContainerRef} from '@angular/core';\n\nimport {CommonModule} from '@angular/common';\nimport {DynamicModuleImportsService} from '../services/dynamicModuleImports.service';\n\n@Directive({\n selector: 'dynamic-template'\n})\nexport class DynamicTemplateDirective {\n\n constructor(\n private elementRef: ElementRef,\n private viewContainer: ViewContainerRef,\n private compiler: Compiler,\n private dynamicModuleImports: DynamicModuleImportsService\n ) {}\n\n @Input('template')\n set templateContents(html: string) {\n if (html) {\n this._html = html;\n const cmpType = this._createDynamicComponent();\n const moduleType = this._createDynamicModule(cmpType);\n const injector: Injector = Injector.create({\n providers: [],\n parent: this.viewContainer.parentInjector,\n });\n\n this.compiler.compileModuleAndAllComponentsAsync<any>(moduleType)\n .then(factory => {\n let cmpFactory: any;\n for (let i = factory.componentFactories.length - 1; i >= 0; i--) {\n if (factory.componentFactories[i].selector === this._selector) {\n cmpFactory = factory.componentFactories[i];\n break;\n }\n }\n return cmpFactory;\n })\n .then(cmpFactory => {\n if (cmpFactory && this.viewContainer) {\n this.viewContainer.clear();\n this.viewContainer.createComponent(cmpFactory, 0, injector);\n }\n });\n } else {\n this._html = '';\n this.viewContainer.clear();\n }\n }\n\n private _html = '';\n private _selector = 'dynamic-view';\n\n @Input() private context: Object;\n\n private _createDynamicComponent(): Type<any> {\n const metadata = {\n selector: this._selector,\n template: this._html,\n inputs: ['template']\n };\n class _cmp_ {}\n _cmp_.prototype = this.context;\n return Component(metadata)(_cmp_);\n }\n\n private _createDynamicModule(componentType: Type<any>) {\n class _mod_ {}\n return NgModule({\n imports: [\n CommonModule,\n ...this.dynamicModuleImports.imports ],\n declarations: [componentType],\n providers: []\n })(_mod_);\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n/**\n*\n* see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n*/\n@Directive({ selector: '[object-url]' })\nexport class ObjectURLDirective {\n\n constructor(\n private elementRef: ElementRef,\n ) {}\n\n private objectURL;\n\n // TODO provide more specific method like createJSON, createCSV, createPDF\n // to free directive consumer from using Blog API\n create(blob: Blob, filename: string): void {\n if (this.objectURL !== null) {\n window.URL.revokeObjectURL(this.objectURL);\n }\n this.objectURL = window.URL.createObjectURL(blob);\n this.elementRef.nativeElement.href = this.objectURL;\n this.elementRef.nativeElement.download = filename;\n }\n\n}\n","export interface Unit {\n /** i18n key of unit translation. */\n label: string;\n value: number;\n}\n\nexport const UNITS: Array<Unit> = [\n { label: \"quota.byte\", value: 1 },\n { label: \"quota.kilobyte\", value: 1024 },\n { label: \"quota.megabyte\", value: Math.pow(1024, 2) },\n { label: \"quota.gigabyte\", value: Math.pow(1024, 3) }\n];\n\nexport function toDecimal (value: number, decimal: number): number {\n return Math.round(value * Math.pow(10, decimal)) / Math.pow(10, decimal);\n}\n\nexport function getUnit(bytes: number): Unit {\n let unit = 0;\n let finalValue = bytes;\n while(finalValue >= 1024 && unit < 3) {\n finalValue = finalValue / 1024;\n unit++;\n }\n return UNITS[unit];\n}","import {Pipe, PipeTransform} from '@angular/core';\nimport { toDecimal } from '../utils/math';\n\n@Pipe({\n name: 'bytes'\n})\nexport class BytesPipe implements PipeTransform {\n\n transform(value: number, unit: number, decimal?: number): number {\n if (decimal) {\n return toDecimal((value / unit), decimal);\n }\n return Math.round(value / unit);\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'filter', pure: false})\nexport class FilterPipe implements PipeTransform {\n\n private stringFullCompare(str1: string, str2: string): boolean {\n return str1.match(new RegExp(str2, 'i')) !== null;\n }\n\n private _filterString(value, filter, arrayRef: Array<String>) {\n if (typeof value === 'string' &&\n typeof filter === 'string' &&\n filter.trim() &&\n this.stringFullCompare(value, filter)) {\n arrayRef.push(value);\n return true;\n }\n return false;\n }\n\n private _filterObject(object, filter, objectRef, arrayRef: Array<Object>) {\n if (typeof object == 'object' && typeof filter === 'object') {\n let check = true;\n for (const property in filter) {\n if (!check) {\n break;\n }\n\n const filterValue = filter[property];\n const propsToCheck = property.split(\",\");\n\n const objectValues = new Array(propsToCheck.length);\n for(let i = propsToCheck.length; i-- > 0;)\n objectValues[i] = object[propsToCheck[i].trim()];\n\n if (filterValue instanceof Function) {\n check = filterValue.apply(null, objectValues);\n } else if (filterValue instanceof Object) {\n if(propsToCheck.length > 1)\n throw \"Multi-argument object filtering is not yet supported\";\n return this._filterObject(objectValues[0], filterValue, objectRef, arrayRef);\n }\n else\n {\n for(let i = objectValues.length; i-- > 0;)\n {\n if(!check)\n break;\n\n const objectValue = objectValues[i];\n\n if (typeof objectValue === 'undefined' && typeof filterValue === 'string' && filterValue.length > 0 ) {\n check = false;\n } else if (objectValue instanceof Array && typeof filterValue === 'string') {\n check = this.stringFullCompare(objectValue.join(), filterValue);\n } else if (typeof filterValue === 'string' && typeof objectValue === 'string') {\n check = this.stringFullCompare(objectValue, filterValue);\n } else if (filterValue instanceof Array && typeof objectValue === 'string') {\n for (let i = 0; i < filterValue.length; i++) {\n check = this.stringFullCompare(objectValue, filterValue[i]);\n if (check) { break; }\n }\n }\n }\n }\n }\n if (check) {\n arrayRef.push(objectRef);\n }\n return true;\n }\n return false;\n }\n\n private _filterFunction(value, filter, arrayRef: Array<any>) {\n if (typeof filter === 'function') {\n if (filter(value)) {\n arrayRef.push(value);\n }\n return true;\n }\n return false;\n }\n\n transform(array: Array<string | Object>, by: (string | Object | Function)) {\n if (!array || !by) {\n return array;\n }\n\n const filteredArray = [];\n\n array.forEach(item => {\n this._filterString(item, by, filteredArray) ||\n this._filterObject(item, by, item, filteredArray) ||\n this._filterFunction(item, by, filteredArray);\n });\n\n return filteredArray;\n }\n\n}\n","import {Pipe} from '@angular/core';\n\n@Pipe({ name: 'flattenObjArray' })\nexport class FlattenObjectArrayPipe {\n\n transform(array: Array<Object>, onlyProps?: Array<String>) {\n if (!array) {\n return [];\n }\n if (onlyProps.length < 1) {\n return array;\n }\n\n let flattenedArray = Array.from(array);\n\n const flatten = (array: Array<Object>) => {\n array.forEach(item => {\n for (const prop in item) {\n const val = item[prop];\n if (val instanceof Array &&\n !onlyProps ||\n onlyProps.indexOf(prop) > -1) {\n flattenedArray = [...flattenedArray, ...val];\n flatten(val);\n }\n }\n });\n };\n flatten(array);\n\n return Array.from(new Set<Object>(flattenedArray));\n\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'keys'})\nexport class KeysPipe implements PipeTransform {\n transform(obj, args?: string[]): any {\n const keys = [];\n for (const key in obj) {\n if (key) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'limit',\n pure: false\n})\nexport class LimitPipe implements PipeTransform {\n\n transform(array: Array<any>, limit: number, offset: number = 0) {\n return array.slice(offset, limit);\n }\n\n}\n","import {DatePipe} from '@angular/common';\nimport {Pipe, PipeTransform} from '@angular/core';\nimport {BundlesService} from 'ngx-ode-sijil';\n\n@Pipe({\n name: 'localizedDate',\n pure: false\n})\nexport class LocalizedDatePipe implements PipeTransform {\n\n constructor(private bundlesService: BundlesService) {\n }\n\n transform(value: any, pattern: string = 'mediumDate'): any {\n const datePipe: DatePipe = new DatePipe(this.bundlesService.currentLanguage);\n return datePipe.transform(value, pattern);\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({ name: 'orderBy' })\nexport class OrderPipe implements PipeTransform {\n\n transform(array, sortPredicate, reverseOrder?, compareFn?) {\n if (array == null || !sortPredicate) { return array; }\n\n /*** ***/\n const isString = (value) => {\n return typeof value === 'string';\n };\n\n const isFunction = (value) => {\n return typeof value === 'function';\n };\n\n const isArray = (value) => {\n return value && value instanceof Array;\n };\n\n const isObject = (value) => {\n return typeof value === 'object';\n };\n\n const isPrimitive = (value) => {\n switch (typeof value) {\n case 'number': /* falls through */\n case 'boolean': /* falls through */\n case 'string':\n return true;\n default:\n return false;\n }\n };\n\n const hasCustomToString = (value) => {\n return value &&\n typeof value.toString === 'function' &&\n value.toString !== Object.prototype.toString;\n };\n\n const getComparisonObject = (value, index) => {\n // NOTE: We are adding an extra `tieBreaker` value based on the element's index.\n // This will be used to keep the sort stable when none of the input predicates can\n // distinguish between two elements.\n return {\n value,\n tieBreaker: { value: index, type: 'number', index },\n predicateValues: predicates.map(function(predicate) {\n return getPredicateValue(predicate.get(value), index);\n })\n };\n };\n\n const doComparison = (v1, v2) => {\n for (let i = 0, ii = predicates.length; i < ii; i++) {\n const result = compare(v1.predicateValues[i], v2.predicateValues[i]);\n if (result) {\n return result * predicates[i].descending * descending;\n }\n }\n\n return compare(v1.tieBreaker, v2.tieBreaker) * descending;\n };\n\n const processPredicates = (sortPredicates) => {\n return sortPredicates.map(function(predicate) {\n let descending = 1, get = (value) => value;\n\n if (isFunction(predicate)) {\n get = predicate;\n } else if (isString(predicate)) {\n if ((predicate.charAt(0) === '+' || predicate.charAt(0) === '-')) {\n descending = predicate.charAt(0) === '-' ? -1 : 1;\n predicate = predicate.substring(1);\n }\n if (predicate !== '') {\n get = (value) => value[predicate];\n }\n }\n return { get, descending };\n });\n };\n\n const objectValue = (value) => {\n // If `valueOf` is a valid function use that\n if (isFunction(value.valueOf)) {\n value = value.valueOf();\n if (isPrimitive(value)) { return value; }\n }\n // If `toString` is a valid function and not the one from `Object.prototype` use that\n if (hasCustomToString(value)) {\n value = value.toString();\n if (isPrimitive(value)) { return value; }\n }\n\n return value;\n };\n\n const getPredicateValue = (value, index) => {\n let type = typeof value;\n if (value === null) {\n type = 'string';\n value = 'null';\n } else if (type === 'object') {\n value = objectValue(value);\n }\n return { value, type, index };\n };\n\n const defaultCompare = (v1, v2) => {\n let result = 0;\n const type1 = v1.type;\n const type2 = v2.type;\n\n if (type1 === type2) {\n let value1 = v1.value;\n let value2 = v2.value;\n\n if (type1 === 'string') {\n // Compare strings case-insensitively\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n\n result = value1.localeCompare(value2);\n } else if (type1 === 'object') {\n // For basic objects, use the position of the object\n // in the collection instead of the value\n if (isObject(value1)) { value1 = v1.index; }\n if (isObject(value2)) { value2 = v2.index; }\n\n if (value1 !== value2) {\n result = value1 < value2 ? -1 : 1;\n }\n }\n } else {\n result = type1 < type2 ? -1 : 1;\n }\n\n return result;\n };\n /*** ***/\n\n if (!isArray(sortPredicate)) {\n sortPredicate = [sortPredicate];\n }\n if (sortPredicate.length === 0) {\n sortPredicate = ['+'];\n }\n\n const predicates = processPredicates(sortPredicate);\n\n const descending = reverseOrder ? -1 : 1;\n\n // Define the `compare()` function. Use a default comparator if none is specified.\n const compare = isFunction(compareFn) ? compareFn : defaultCompare;\n\n // The next three lines are a version of a Swartzian Transform idiom from Perl\n // (sometimes called the Decorate-Sort-Undecorate idiom)\n // See https://en.wikipedia.org/wiki/Schwartzian_transform\n const compareValues = Array.prototype.map.call(array, getComparisonObject);\n compareValues.sort(doComparison);\n array = compareValues.map(function(item) { return item.value; });\n\n return array;\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'store'\n})\nexport class StorePipe implements PipeTransform {\n\n transform(value, context, prop = '_storedRef') {\n context[prop] = value;\n return value;\n }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({\n name: 'length',\n pure: false\n})\nexport class LengthPipe implements PipeTransform {\n\n transform(source: Array<any> | string ) {\n return source.length;\n }\n\n}\n","export function trim(text: string): string {\n if (text && text.length > 0) {\n return text.trim();\n }\n return text;\n}\n\nexport function standardise(str: string): string{\n return removeAccents(str != null ? str : '').toLowerCase().replace('\\\\s+', ' ');\n}\n\nexport const removeAccents = (str: string) => str.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, '');\n","import { DebugElement } from '@angular/core';\n\nexport function getText(el: DebugElement): string {\n return el.nativeElement.textContent.trim();\n}\n\nexport function clickOn(el: DebugElement): void {\n return el.triggerEventHandler('click', null);\n}\n","import { Component, OnInit, Input, Output, EventEmitter, Injector } from '@angular/core';\nimport { OdeComponent } from 'ngx-ode-core';\n\n/**\n * DropdownComponent is an alternative to the MonoSelectComponent.\n * Accept everything inside <ng-content> but should work with <ode-list> component\n * \n * Simple Dropdown Component without search:\n * [isSearchActive] can be set to false to disable search input in <ode-list>\n```\n<ode-dropdown\n [name]=\"option_name\"\n [isDropdownOpened]=\"a_boolean\"\n (onDropdown)=\"toggle_func\"\n >\n <ode-list\n [model]=\"model\"\n [filters]=\"filters\"\n (onSelect)=\"func_to_select_elem($event)\"\n (inputChange)=\"a_string_for_input_value = $event\"\n noResultsLabel=\"text_to_display\"\n searchPlaceholder=\"default_placeholder_text\"\n >\n <ng-template let-item>\n <div>{{ item.name }}</div>\n </ng-template>\n </ode-list>\n </ode-dropdown>\n`̀``\n */\n\n@Component({\n selector: 'ode-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss']\n})\nexport class DropdownComponent extends OdeComponent implements OnInit {\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n @Input() name: string = '';\n @Input() isDropdownOpened: boolean = false;\n\n @Output() onDropdown: EventEmitter<void> = new EventEmitter<void>();\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n}\n","import { Component, EventEmitter, Injector, Input, Output } from \"@angular/core\";\nimport { OdeComponent } from \"ngx-ode-core\";\n\n/**\n * Search Toolbar component.\n * Used within List component, Search Toolbar will display following information:\n * - Label of the search filter section (example: 'Search by')\n * - List of search type filters (example: 'Name', 'Email' , ...)\n * - Number of items returned by the search\n *\n```\n<ode-search-toolbar\n [label]=\"'user.searchType.label'\"\n [searchTypes]=\"searchTypes\"\n [nbItem]=\"nbUser || 0\"\n [nbItemLabel]=\"'list.results.users'\"\n (selectSearchType)=\"handleSelectSearchType($event)\"\n>\n</ode-search-toolbar>\n```\n */\n\n@Component({\n selector: 'ode-search-toolbar',\n templateUrl: './search-toolbar.component.html',\n styleUrls: ['./search-toolbar.component.scss']\n})\nexport class SearchToolbarComponent extends OdeComponent {\n\n @Input() label: string;\n @Input() searchTypes: Array<{label: string, value: string}>;\n @Input() nbItem: number = 0;\n @Input() nbItemLabel: string;\n @Output() selectSearchType: EventEmitter<string> = new EventEmitter();\n\n selectedSearchTypeValue: string;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit(): void {\n if (this.searchTypes && this.searchTypes.length > 0) {\n this.selectedSearchTypeValue = this.searchTypes[0].value;\n }\n }\n\n public handleSearchTypeClick(searchTypeValue: string): void {\n this.selectedSearchTypeValue = searchTypeValue;\n this.selectSearchType.emit(searchTypeValue);\n }\n}\n","import { NgModule, ModuleWithProviders, Provider } from '@angular/core';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { InputFileService } from './services/inputFile.service';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgxOdeSijilModule } from 'ngx-ode-sijil';\nimport { DatepickerComponent } from './components/datepicker/datepicker.component';\nimport { FormErrorsComponent } from './components/form-errors/form-errors.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { ItemTreeComponent } from './components/item-tree/item-tree.component';\nimport { LightBoxComponent } from './components/lightbox/lightbox.component';\nimport { LightboxConfirmComponent } from './components/lightbox-confirm/lightbox-confirm.component';\nimport { ListComponent } from './components/list/list.component';\nimport { ListCheckableComponent } from './components/list-checkable/list-checkable.component';\nimport { MonoSelectComponent } from './components/mono-select/mono-select.component';\nimport { MultiSelectComponent } from './components/multi-select/multi-select.component';\nimport { MultiComboComponent } from './components/multi-combo/multi-combo.component';\nimport { PanelSectionComponent } from './components/panel-section/panel-section.component';\nimport { PortalComponent } from './components/portal/portal.component';\nimport { PushPanelComponent } from './components/push-panel/push-panel.component';\nimport { SearchInputComponent } from './components/search-input/search-input.component';\nimport { SideLayoutComponent } from './components/side-layout/side-layout.component';\nimport { SidePanelComponent } from './components/side-panel/side-panel.component';\nimport { StepComponent, WizardComponent } from './components/wizard/wizard.component';\nimport { TooltipComponent } from './components/tooltip/tooltip.component';\nimport { SimpleSelectComponent } from './components/value-editable/simple-select.component';\nimport { MessageStickerComponent } from './components/message-sticker/message-sticker.component';\nimport { MessageBoxComponent } from './components/message-box/message-box.component';\nimport { UploadFilesComponent } from './components/upload-files/upload-files.component';\nimport { AnchorDirective } from './directives/anchor.directive';\nimport { DynamicTemplateDirective } from './directives/dynamictemplate.directive';\nimport { DynamicComponentDirective } from './directives/dynamic-component/dynamic-component.directive';\nimport { DragAndDropFilesDirective } from './directives/drag-and-drop-files.directive';\nimport { FilterPipe } from './pipes/filter.pipe';\nimport { FlattenObjectArrayPipe } from './pipes/flattenObjArray.pipe';\nimport { LimitPipe } from './pipes/limit.pipe';\nimport { OrderPipe } from './pipes/orderBy.pipe';\nimport { StorePipe } from './pipes/store.pipe';\nimport { LocalizedDatePipe } from './pipes/localizedDate.pipe';\nimport { BytesPipe } from './pipes/bytes.pipe';\nimport { DynamicModuleImportsService } from './services/dynamicModuleImports.service';\nimport { LabelsService } from './services/labels.service';\nimport { SpinnerCubeComponent } from './components/spinner-cube/spinner-cube.component';\nimport { PagerComponent } from './components/table/pager.component';\nimport { EllipsisComponent } from './components/ellipsis/ellipsis.component';\nimport { KeysPipe } from './pipes/keys.pipe';\nimport { ObjectURLDirective } from './directives/object-url.directive';\nimport { LengthPipe } from './pipes/length.pipe';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { SearchToolbarComponent } from './components/search-toolbar/search-toolbar.component';\n\n@NgModule({\n declarations: [\n // components\n DatepickerComponent,\n FormErrorsComponent,\n FormFieldComponent,\n ItemTreeComponent,\n LightBoxComponent,\n LightboxConfirmComponent,\n ListComponent,\n ListCheckableComponent,\n MonoSelectComponent,\n MultiSelectComponent,\n MultiComboComponent,\n PanelSectionComponent,\n PortalComponent,\n PushPanelComponent,\n SearchInputComponent,\n SideLayoutComponent,\n SidePanelComponent,\n StepComponent,\n TooltipComponent,\n WizardComponent,\n SimpleSelectComponent,\n MessageStickerComponent,\n MessageBoxComponent,\n UploadFilesComponent,\n SpinnerCubeComponent,\n PagerComponent,\n EllipsisComponent,\n // directives\n AnchorDirective,\n DynamicTemplateDirective,\n DynamicComponentDirective,\n DragAndDropFilesDirective,\n ObjectURLDirective,\n // pipes\n FilterPipe,\n FlattenObjectArrayPipe,\n LimitPipe,\n OrderPipe,\n StorePipe,\n LocalizedDatePipe,\n BytesPipe,\n KeysPipe,\n LengthPipe,\n DropdownComponent,\n SearchToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n NgxOdeSijilModule.forChild(),\n InfiniteScrollModule\n ],\n exports: [\n // components\n DatepickerComponent,\n FormErrorsComponent,\n FormFieldComponent,\n ItemTreeComponent,\n LightBoxComponent,\n LightboxConfirmComponent,\n ListComponent,\n ListCheckableComponent,\n MonoSelectComponent,\n MultiSelectComponent,\n MultiComboComponent,\n PanelSectionComponent,\n PortalComponent,\n PushPanelComponent,\n SearchInputComponent,\n SideLayoutComponent,\n SidePanelComponent,\n StepComponent,\n TooltipComponent,\n WizardComponent,\n SimpleSelectComponent,\n MessageStickerComponent,\n MessageBoxComponent,\n UploadFilesComponent,\n SpinnerCubeComponent,\n PagerComponent,\n EllipsisComponent,\n DropdownComponent,\n SearchToolbarComponent,\n // directives\n AnchorDirective,\n DynamicTemplateDirective,\n DynamicComponentDirective,\n DragAndDropFilesDirective,\n ObjectURLDirective,\n // pipes\n FilterPipe,\n FlattenObjectArrayPipe,\n LimitPipe,\n OrderPipe,\n StorePipe,\n LocalizedDatePipe,\n BytesPipe,\n KeysPipe,\n LengthPipe\n ],\n providers: [InputFileService, OrderPipe],\n entryComponents: [SimpleSelectComponent, MessageBoxComponent]\n})\nexport class NgxOdeUiModule {\n static forRoot(labelsProvider: Provider): ModuleWithProviders {\n return {\n ngModule: NgxOdeUiModule,\n providers: [\n DynamicModuleImportsService,\n labelsProvider || LabelsService\n ]\n };\n }\n\n static forChild(): ModuleWithProviders {\n return {\n ngModule: NgxOdeUiModule,\n providers: []\n }\n }\n}\n"],"names":["observableThrowError"],"mappings":"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"}